암호화 해시 함수

위키백과, 우리 모두의 백과사전.

SHA
개념
해시 함수 · SHA · DSA
주요 개념
SHA-0 · SHA-1 · SHA-2 · SHA-3

암호화 해시 함수(cryptographic hash function)은 해시 함수의 일종으로, 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 성질을 가지는 경우를 의미한다. 암호화 해시 함수가 가져야 하는 성질은 다음과 같다.[1]

  • 역상 저항성(preimage resistance): 주어진 해시 값에 대해, 그 해시 값을 생성하는 입력값을 찾는 것이 계산상 어렵다. 즉, 제 1 역상 공격에 대해 안전해야 한다. 이 성질은 일방향함수와 연관되어 있다.
  • 제 2 역상 저항성(second preimage resistance): 입력 값에 대해, 그 입력의 해시 값을 바꾸지 않으면서 입력을 변경하는 것이 계산상 어렵다. 제 2 역상 공격에 대해 안전해야 한다.
  • 충돌 저항성(collision resistance): 해시 충돌에 대해 안전해야 한다. 같은 해시 값을 생성하는 두 개의 입력값을 찾는 것이 계산상 어려워야 한다.

즉, 입력값과 해시 값에 대해서, 해시 값을 망가뜨리지 않으면서 입력값을 수정하는 공격에 대해 안전해야 한다. 이러한 성질을 가지는 해시 값은 원래 입력값을 의도적으로 손상시키지 않았는지에 대한 검증 장치로 사용할 수 있다.

순환 중복 검사(CRC)와 같은 몇몇 해시 함수는 암호 안전성에 필요한 저항성을 가지지 않으며, 우연적인 손상을 검출할 수는 있지만 의도적인 손상의 경우 검출되지 않도록 하는 것이 가능하기도 하다. 가령, 유선 동등 프라이버시(WEP)의 경우 암호화 해시 함수로 CRC를 사용하나, CRC의 암호학적 취약점을 이용한 암호공격이 가능하다는 것이 밝혀져 있다.

암호화 해시 함수의 비교[편집]

가장 널리 사용되는 해시 함수에는 MD5SHA-1이 있으나, 이들은 안전하지 않다는 것이 알려져 있다. 미국 US-CERT에서는 2008년 MD5를 사용하지 말아야 한다고 발표했다.[2] NIST에서는 2008년 SHA-1의 사용을 중지하며 SHA-2를 사용할 것이라고 발표했다.[3]

2008년 미국 국립표준기술연구소(NIST)에서는 SHA-3로 부를 새로운 안전한 암호화 해시 함수에 대한 공모전을 열었다. 2012년 8월 현재 SHA-3의 후보는 다섯 개가 있으며, 2012년 중으로 이들 중 최종 후보를 뽑을 예정이다.[4]

다음은 널리 알려진 암호화 해시 함수 알고리즘의 목록이다. 이들 중에는 안전하지 않다는 것이 밝혀진 것도 있다.

알고리즘 출력 비트 수 내부 상태 크기[c 1] 블록 크기 Length size Word size 라운드 수 공격 가능성 (복잡도:최대 라운드 수)[c 2]
충돌 2차 역상 역상
GOST 256 256 256 256 32 256 2105 2192 2192
HAVAL 256/224/192/160/128 256 1,024 64 32 160/128/96 가능
MD2 128 384 128 - 32 864 263.3 273
MD4 128 128 512 64 32 48 3 264 278.4
MD5 128 128 512 64 32 64 220.96 2123.4
PANAMA 256 8,736 256 - 32 - 가능
RadioGatún Up to 608/1,216 (19 words) 58 words 3 words - 1–64 - 2352 또는 2704
RIPEMD 128 128 512 64 32 48 218
RIPEMD-128/256 128/256 128/256 512 64 32 64
RIPEMD-160 160 160 512 64 32 80 251:48
RIPEMD-320 320 320 512 64 32 80
SHA-0 160 160 512 64 32 80 233.6
SHA-1 160 160 512 64 32 80 251
SHA-256/224 256/224 256 512 64 32 64 228.5:24 2248.4:42
SHA-512/384 512/384 512 1,024 128 64 80 232.5:24 2494.6:42
Tiger(2)-192/160/128 192/160/128 192 512 64 64 24 262:19 2184.3
WHIRLPOOL 512 512 512 256 8 10 2120:4.5
  1. Merkle-Damgård 방식에서 각 라운드 시 생성되는 내부 해시의 크기.
  2. 라운드 수가 표시되지 않은 경우 전체 라운드에 대한 공격을 의미한다.

각주[편집]

  1. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. 《Handbook of Applied Cryptography》. 
  2. “Vulnerability Note VU#836068: MD5 vulnerable to collision attacks”. 
  3. “NIST Brief Comments on Recent Cryptanalytic Attacks on Secure Hashing Functions and the Continued Security Provided by SHA-1” (PDF). 2011년 6월 4일에 원본 문서 (PDF)에서 보존된 문서. 2012년 8월 11일에 확인함. 
  4. 국립표준기술연구소. “Tentative Timeline of the Development of New Hash Functions”. 2012년 8월 12일에 확인함.