더북(TheBook)

반면에 다음 세 가지 용도로 사용하는 해시 함수는 충돌 저항성보다 역상 저항성이나 다른 조건에 따라 안전성이 좌우됩니다.

 

HMAC(Hash-based Message Authentication Code)

키 유도 함수(Key Derivation Function)

난수 발생(Random Number Generation)

 

HMAC는 원본 데이터에 특정한 값(이 값이 비밀 정보여야 하므로 HMAC의 ‘키’라고 부릅니다)을 더해 함께 해시하는 키 기반 해시(Keyed Hash)로 해시 함수만 수행할 때보다 더 높은 안전성을 확보할 수 있습니다. 키 기반 해시는 난수 형태인 비밀 값을 키 값으로 사용합니다. 안전성 확보 말고도 자신이 생성했음을 인증하려는 목적에서 키를 추가하여 해시하기도 합니다. 키를 추가하면 역상 저항성이 높아져 원본 데이터를 알아내기가 어렵습니다. 충돌 저항성의 관점에서 같은 해시 값을 생성하는 원본 데이터를 노출해도 키를 제외한 부분은 알 수 없으므로 다른 서비스까지 위험하지는 않습니다. 즉, HMAC는 제2 역상 저항성과 비밀 키의 안전성에 따라 보안 강도가 달라집니다.

키 유도 함수는 키 기반 해시에 필요한 키 값을 만드는 ‘키 생성기’로 일종의 난수 생성기라고 이해하면 됩니다. 키 유도 함수는 키를 생성하는 입력 값의 안전성과 해시 함수의 역상 저항성에 따라 보안 강도가 다릅니다.

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