더북(TheBook)

해시 함수의 특성 중 충돌 저항성은 다른 두 특성보다 만족하기가 어렵습니다. NIST에 따르면 해시 함수의 키 길이가 L(비트)일 때 역상 저항성 강도는 키 길이와 동일하며, 제2 역상 저항성 강도도 키 길이가 L이거나 조금 짧다고 합니다.5 하지만 충돌 저항성 강도는 해시 함수 키 길이의 절반(1/2*L)밖에 되지 않습니다. 해시 함수가 대칭 키 알고리즘보다 키 길이가 더 길어야 보안 강도 수준이 비슷하다고 하는 것은 이 때문입니다. NIST가 제공한 자료인 다음 표에서 여러 해시 알고리즘의 보안 강도를 확인할 수 있습니다. 표에 나오는 숫자는 보안 강도가 그대로 드러나는 키 길이의 비트 수를 의미합니다.

 

| 해시 알고리즘의 보안 강도 |

 

SHA-1

SHA-224

SHA-256

SHA-384

SHA-512

SHA-512/224

SHA-512/256

충돌 저항성

< 80

112

128

192

256

112

128

역상 저항성

160

224

256

384

512

224

256

제2 역상

저항성

105-160

201-224

201-256

384

394-512

224

256

 

같은 해시 함수라 하더라도 어떤 용도로, 어떤 방식으로 사용되었냐에 따라 보안 강도가 다릅니다. 암호 알고리즘과 암호 시스템 안전성의 기준을 ‘혼돈’과 ‘확산’을 달성하는 것에 둔 것과 마찬가지로, 해시 함수에서는 ‘확산’을 실현하기 위해서 사용 목적과 방식에 맞게 키 길이를 가이드하는 것입니다. 해시 함수에서 키 길이는 해시 값의 길이입니다. 충돌 저항성이 문제인 환경이라면 충돌 저항성의 보안성을 기준으로 키 길이는 더 길어야 합니다. 역상 저항성만 문제라면 충돌 저항성이 문제일 때보다는 키 길이가 조금 짧아도 안전성을 확보할 수 있습니다. 예를 들어 단일 해시 함수와 전자서명용 해시 함수는 특정 해시 값을 공유하는 두 값이 있을 때는 사용자를 정확하게 인증할 수 없습니다. 그래서 충돌 저항성이 문제가 되므로 키 길이가 길어야 하는 것입니다.

 

 


5 NIST Special Publication 800-107, Revision 1, Recommendation for Applications Using Approved Hash Algorithms, 2012.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.