Hash - O(1)의 시간복잡도를 가짐 - Hash는 하나의 문자열을 더 짧은 길이의 값이나 키로 변환하는 것 - 정보의 위조 또는 변조를 확인하기 위한, 정보의 '무결성'을 확인하기 위함 - 전자서명, 전자화폐 등 전자상거래 기능을 구현할 수 있음 - 대표적 해시 알고리즘 : MD5 Hash 정의 - 압축 (짧은 출력 길이) - 효율성 (어떤 x에 대해서도 Hash(x)를 계산하기 쉬워야 함) - 단방향 (주어진 y에 대해 Hash(x)=y를 만족하는 x 값을 찾는 것이 어려워야 함) - 약한 충돌 방지 (주어진 x와 Hash(x)에 대해 Hash(y)=Hash(x)를 만족하며 같지 않은 y와 x를 찾기 어려워야함) - 강한 충돌 방지 (Hash(x) = Hash(y)를 만족하되, 같지 않은 x와 y..