Galois / Counter 모드 (GCM)에서 인증 태그를 계산하려면 먼저 암호를 통해 GHASH 를 사용하여 MAC을 계산합니다. 텍스트 및 추가 데이터. 그 후에이 MAC은 GCTR (첫 번째 카운터 사용)을 사용하여 암호화됩니다.

제 질문은 :이 마지막 암호화 단계가 필요한 이유는 무엇입니까? GHASH 의 출력을 인증 태그로 직접 사용한 경우 보안 문제는 무엇입니까?

Answer

GHASH 출력을 인증 태그로 직접 사용한 경우 보안 문제는 무엇입니까?

그러면 암호화 된 메시지를 듣는 사람이 $ H $ 를 복구 할 수 있습니다. 그 중 하나가 맞습니다.

GHASH의 출력 비밀 값 $ H $ 에서 평가되는 공개 다항식 (암호문 및 AAD 기반)입니다. 이러한 다항식이 주어지면 다항식을 $ \로 다시 작성하여 $ H $ 를 효율적으로 복구 할 수 있습니다. mathrm {GHASH} (H) + \ mathrm {Tag} = 0 $ , 그 근본을 복구 (유한 필드에서 수행 할 수 있음)하거나 더 쉽게 이러한 암호문 두 개를 가져 와서 둘 다 다시 작성 확장 된 유클리드 값을 사용하여 공통 루트를 복구합니다.

$ H $ 가 주어지면 공격자는 암호화 된 메시지를 임의적으로 수정할 수 있습니다. ; 예, 그게 나쁩니다.

댓글

  • 한 가지 추가 질문 : GCTR을 사용하여 GHASH 블록을 암호화하는 데 필요한 이유 $ Enc_H (GHASH) $를 태그로 사용 하시겠습니까? 이렇게하면 IV없이 GMAC를 사용할 수 있습니다.
  • @mat : $ H $를 키로 사용하여 AES를 통해 $ GHASH $를 보내는 것을 의미합니다. )? 사실, 그런 종류의 작업이 작동하고 (글쎄, 저는 ' $ H $를 키로 사용하지 않지만 그 외에는 …) 더 보수적 인 디자인. 그러나 GCM은 원래 파이프 라인 가능 모드로 설계되었습니다. 즉, AES 하드웨어 구현을 통해 구현 될 수 있습니다 .AES 하드웨어 구현에서는 모든 클럭 사이클이 하드웨어에 다음 일반 텍스트 블록을 제공하고 모든 클럭 사이클은 10-14주기 전의 암호문이 나타납니다. GHASH에서 암호화를 수행하여 ' 파이프 라인을 차단합니다 …
  • 단순한 GCTR을 사용하는 대신 GHASH의 ECB 암호화 ($ H $ 또는 $ K $를 키로 사용). GMAC가 더 이상 임시 값이 필요하지 않기 때문에 ' GMAC가 사용하기 더 쉽다는 이점이 있습니다. 어쨌든 태그의 암호화는 GCM에서 수행되는 마지막 단계이므로 pipelinig는 문제가되지 않습니다. 따라서 파이프 라인은이 단계에서 확실히 비어 있습니다.
  • @David 天宇 Wong : 대부분 성능 ( GHASH는 패럴 라이즈 가능하고 키가 지정되지 않은 해시는 일반적으로 ' t)
  • @David 天宇 Wong : 아, 맞아요, 그것도 …

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다