GCM 모드와 CBC 간의 차이점에 대해 자세히 알아 보려고합니다. GCM이 메시지 인증에 사용되는 MAC을 제공한다는 것을 이미 알고 있습니다. 내가 읽은 것과 내가 본 코드 스 니펫에서 GCM은 배타적이거나 CBC와 매우 유사하지만 배타적 또는 반대가 무엇인지 확실하지 않습니다. CBC 모드에서 exclusive-or는 임의 IV를 사용하는 첫 번째 블록을 제외하고 이전 암호문 블록에 대한 일반 텍스트입니다. GCM은 똑같은 일을합니까, 아니면 배타적 인 일을합니까, 아니면 다른 일에 대해 일합니까? 그렇다면 누군가 GCM이 IV를 사용하는 방법과 독점 또는 수행 방법을 간단히 설명해 주시겠습니까?
댓글
- 인증을 무시하는 경우, GCM은 CBC 모드가 아닌 CTR 모드처럼 작동합니다. 위키 백과에서 찾아보세요.
- 이 페이지에 정의되지 않았기 때문에 ' … GCM = Galois / Counter Mode, CBC = Cipher Block Chaining … 다른 정의로는 MAC (메시지 인증 코드), IV (초기화 벡터) 및 CTR (CounTeR 모드)이 있습니다.
Answer
GCM 및 CBC 모드는 내부적으로 매우 다르게 작동합니다. 둘 다 블록 암호와 배타적-또는을 포함하지만 서로 다른 방식으로 사용합니다.
CBC 모드에서는 현재 일반 텍스트 블록을 가져 와서 해당 블록을 배타적으로 사용하여 데이터 블록을 암호화합니다. 이전 암호문 블록 (또는 IV), 그리고 그 결과를 블록 암호를 통해 전송합니다. 블록 암호의 출력은 암호문 블록입니다.
GCM 모드는 프라이버시 (암호화)와 무결성을 모두 제공합니다. 암호화를 제공하기 위해 GCM은 카운터를 유지합니다. 각 데이터 블록에 대해 블록 암호를 통해 카운터의 현재 값을 보냅니다. 그런 다음 블록 암호의 출력을 가져와 암호문을 형성하기 위해 일반 텍스트와 함께 배타적 또는 “s를 사용합니다.
두 가지 주요 차이점에 유의하십시오.
-
“배타적”또는 “배타적”항목, CBC 모드에서 일반 텍스트는 공격자가 알고있는 데이터 (IV 또는 이전 암호문 블록)와 함께 배타적이거나 “배타적입니다.” 따라서 그 자체로는 고유 한 보안을 제공하지 않습니다 (대신 블록 암호를 통해 동일한 블록을 두 번 보낼 가능성을 최소화하기 위해 수행합니다). GCM 모드에서 일반 텍스트는 배타적이거나 블록 암호의 출력과 함께 사용됩니다. 공격자가 해당 출력을 추측 할 수없는 보안 모델에 내재되어 있습니다 (일반 텍스트와 암호 텍스트를 이미 알고 있지 않은 경우).
-
블록 암호를 통해 전송되는 내용; CBC 모드에서는 일반 텍스트가 블록 암호를 통해 전송됩니다 (배타적 또는 “무작위 화”된 후). GCM 모드에서는 블록 암호를 통해 전송되는 내용이 실제로 데이터에 의존하지 않습니다. 암호화되었지만 내부 상태에서만 가능합니다.
GCM이 IV를 사용하는 방법에 관해서는 (개인적으로 GCM이 사용하는 것에 대해 “nonce”가 더 나은 용어라고 생각합니다. GCM을 사용하면 동일한 키에 대해 동일한 임시 값을 두 번 사용할 수 없습니다. 카운터를 초기화하는 데 사용됩니다.
댓글
- 매우 흥미 롭습니다 … 내가 올바르게 이해한다면 GCM 모드에서 블록의 암호문이 배타적이거나 방금 암호를 통해 입력 된 일반 텍스트에 대해 '된다고 말하는 것입니다. 그러면 해당 블록이 전송됩니다. 이것이 사실이면 해당 블록은 어떻게 복호화됩니까? ' 데이터 복호화에 AES (예 :)의 암호 텍스트가 필요하지 않습니까? 방법 또한, o 원래의 암호화 된 텍스트를 얻은 다음 배타적 또는 일반 텍스트를 반환하고 더 이상의 암호 해독이 필요하지 않은 전송 된 암호 텍스트에 사용할 수 있습니다 … I ' 뭔가 누락되었습니다 .. .
- 아니요, GCM에서는 카운터를 가져 와서 블록 암호를 통해 보낸 다음 배타적 또는 일반 텍스트를 사용하여 암호문을 구성합니다. 복호화 측면에서는 동일한 카운터를 유지하고 블록 암호를 통해 전송 한 다음 배타적 또는 일반 텍스트를 형성하는 암호 텍스트와 함께 전송합니다.
- @poncho GCM에서는 필요하지 않습니다. 블록 암호의 “복호화”부분? 양쪽에서 “암호화”를 사용하기 때문입니다.
- 같은 키로 동일한 임시 값을 두 번 사용하면 어떤 공격을받을 수 있습니까?
- @RobertSiemer : 두 가지 공격 : a) 공격자는 동일한 nonce로 암호화 된 두 메시지의 상당한 양의 정보를 얻습니다 (두 콘텐츠를 모두 추론하기에 충분할 수 있음). b) 공격은 탐지되지 않고 메시지를 변경할 수있는 정보를 얻습니다.