암호 기술의 기초와 응용
비밀 키 K와 메시지 m을 이은 값의 해시값 SHA-256(K ‖ m)을 변조 검출용 태그로 사용하는 것은 위험하다고 여겨진다. 그 이유로 올바른 것은?
- A태그와 입력의 길이를 알면, K를 모르더라도 m 뒤에 데이터를 덧붙인 메시지의 태그를 계산할 수 있기 때문에
- BSHA-256의 출력으로부터 입력의 앞에 둔 키 K 부분만을 역산하는 효율적인 방법이 발견되었기 때문에
- C키 K를 메시지 앞에 두면 입력이 길어져, SHA-256에서는 충돌이 발견되기 쉬워지기 때문에
정답과 해설 보기
정답: A. 태그와 입력의 길이를 알면, K를 모르더라도 m 뒤에 데이터를 덧붙인 메시지의 태그를 계산할 수 있기 때문에
SHA-256 같은 Merkle–Damgård 구조의 해시 함수에서는 출력되는 해시값이 마지막 블록을 처리한 후의 내부 상태 그 자체입니다. 그래서 공격자는 태그를 내부 상태로 삼아 계산을 이어 가, K ‖ m에 정해진 형태의 패딩과 임의의 데이터를 붙인 메시지의 해시값을 K를 모른 채 계산할 수 있습니다(길이 확장 공격). HMAC은 키로부터 만든 두 값을 사용하여, 안쪽 해시값을 한 번 더 키와 함께 해시하는 구조로 이 공격을 막습니다. SHA-3은 구조상 이 공격을 받지 않으므로, 키를 앞에 붙이기만 하는 KMAC이라는 방식도 표준화되어 있습니다.