해시 테이블의 효율성에 매우 중요하며 다양한 암호화 작업에서 중요한 역할
해시 함수 효율성 기준들
균일한 분포
좋은 해시 함수는 해시 테이블 전체에 키를 균일하게 배포
즉, 테이블의 각 버킷이 선택될 가능성이 동일해야 하며
충돌 가능성이 줄임 (두 키가 동일한 인덱스에 해시되는 경우)
결정적
해시 함수는 결정적
즉, 동일한 입력이 항상 동일한 해시 값을 생성한다는 의미
이는 해시 테이블에서 항목을 검색하는 데 필수적
빠른 계산
함수는 계산 속도가 빨라야 하며 해시 값을 빠르게 제공해야 하며
이는 실시간 애플리케이션과 같이 속도가 중요한 상황에서 특히 중요
충돌 최소화
충돌로부터 완전히 자유로울 수 있는 해시 함수는 없지만
좋은 해시 함수는 충돌을 최소화
충돌이 발생하면 체인 연결이나
개방형 주소 지정과 같은 기술을 통해 관리
눈사태 효과(암호화 해시 함수용)
입력이 조금만 변경되면 상당히 다른 해시가 생성
이는 예측 가능성을 방지하기 위해 암호화 해시 함수에 특히 중요
비역전성(암호화 해시 함수용)
해시 값의 원래 입력을 역엔지니어링하는 것은 계산상 불가능
"사전 이미지 저항"으로 알려진 이 속성은 보안 애플리케이션에 매우 중요
일반 목적
속도가 빠르고 일반적인 키에 대한 좋은 배포를 제공
암호화
암호화 목적으로 설계되어 강력한 눈사태 효과와 충돌 방지 기능을 제공
속도는 느리지만 더 안전하며 보안 비밀번호 저장, 디지털 서명, 체크섬과 같은 애플리케이션에 적합