해시 함수(hash function) 또는 해시 알고리즘(hash algorithm)은 임의의 데이터로부터 일종의 짧은 "전자 지문"을 만들어 내는 방법이다. 해시 함수는 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어 내며, 이 결과를 흔히 해시 값(hash value)이라 한다. 해시 함수는 결정론적으로 작동해야 하며, 따라서 두 해시 값이 다르다면 그 해쉬값에 대한 원래 데이터도 달라야 한다. (역은 성립하지 않는다) 해쉬 함수의 질은 기대되는 입력 영역에서 얼마나 적은 해시 충돌(서로 다른 두 데이터의 해시 값이 같은 경우)을 일으키느냐로 결정되는데, 충돌이 많이 날수록 서로 다른 데이터를 구별하기 어려워지고 데이터를 검색하는 비용을 늘리기 때문이다.
[편집] 특징
모든 해시 함수의 가장 기본적인 성질은 두 해시 값이 다르다면 원래의 데이터도 어딘가 다르다는 것이다. 이 특징은 해시 함수가 결정적이기 때문이다. 반대로 해시 함수는 단사 함수가 아니다. 같은 해시 값을 가진다면, 원래의 입력값이 같다는 것을 시사하지만 보장해주지는 않는다. 원래 입력의 한 비트만 바뀌더라도 해시 함수의 성질로 인해 해시 값은 크게 달라진다.
[편집] 같이 보기
Daum 최고의 보안카페 정보보안 전문가 따라잡기 ★정전따★ 쥔장 두환쌤 입니다. 오늘도 항상 행복하시고 좋은 하루 되세요 ^^
기타 빠른문의는 쥔장 두환쌤에게 연락주시면 감사 하겠습니다. 02-747-5983