해시함수

[요약] 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수

해시함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 출력하는 함수이다. 해시함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 많이 사용하며, 큰 파일에서 중복되는 기록을 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색을 빠르게 처리할 수 있다.

해시함수는 암호학적 해시함수(Cryptographic Hash Function)와 비암호학적 해시함수로 구분한다. 암호학적 해시함수의 종류로는 MD5, SHA 계열 해시함수가 있으며 비암호학적 해시함수로는 CRC32 등이 있다. 암호학적 해시함수는 역상, 제2역상, 충돌쌍에 대하여 안전성을 가져야 하며 인증에 이용된다. 암호학적 해시함수는 임의의 길이를 입력 받기는 하지만 MD Strength Padding할 때 길이 정보가 입력되므로 최대 길이에 대한 제한이 있다. 예를 들어 패딩 시 하위 8비트에 길이정보가 입력되는 경우에는 해시 가능한 최대 길이는 0xFF가 되어 255바이트가 된다.(실제 길이정보는 패딩 방식에 따라 다를 수 있다.