더북(TheBook)

이제 해시 함수를 이야기할 차례입니다. ‘해시 함수 A 유형’ 열을 보면 해시 함수에 필요한 키 길이가 ‘대칭 키 알고리즘의 두 배 이상’이라는 것을 알 수 있습니다. ‘해시 함수 B 유형’에서도 아래쪽 몇 칸을 제외하면 마찬가지입니다. 대칭 키 알고리즘과 비교했을 때 키 길이가 두 배이어야 하는 상황은 왜 발생했고, 해시 함수의 유형에 따라 요구하는 키 길이는 왜 다른지 궁금할 것입니다.

그 이유를 이해하려면 해시 함수가 무엇인지부터 알아야 합니다. 해시 함수는 임의의 길이를 가진 데이터를 ‘특정 길이의 데이터’로 변환하는 과정을 의미합니다. 블록 암호화는 원래 값을 각 블록으로 나눠 전체 데이터를 온전히(원본 데이터와 같거나 더 큰 크기로) 암호화했습니다. 반면에 해시 함수는 원본 데이터 값이 얼마큼 길든 상관없이 정해진 길이로 줄여서 변환해 버립니다. 원본 일부가 손실되는 압축과 비슷하다고 생각하면 됩니다. 다음 그림에서 입력 값(M)의 길이는 상관없지만, 출력되는 해시 값(H)의 길이는 고정합니다.

참고로 암호화 알고리즘과 달리 해시 함수에는 키가 없습니다. 그 대신에 해시 값의 길이가 암호화 알고리즘에서 키 길이와 동일한 역할을 합니다.

 

| 해시 함수의 개념 모델 |

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