상세 컨텐츠

본문 제목

해쉬(Hash) 함수

암호학

by 나야홍박사 2026. 4. 9. 17:41

본문

1. 해시 함수의 5가지 요구 조건

  • 어떤 크기의 메시지 $M$에도 적용 가능해야 합니다.
  • 함수 $H$는 고정된 크기의 해시 코드를 만들어야 합니다.
  • 주어진 $M$에 대해 $H(M)$을 계산하는 것이 쉬워야 합니다.
  • (One-way): 해시 코드 $h$가 주어졌을 때, $H(M) = h$를 만족하는 원본 $M$을 찾는 것이 계산적으로 실행 불가능해야 합니다.
  • (Collision-free): $H(M') = H(M)$이 되는 서로 다른 $M$과 $M'$를 찾거나, 이런 동일한 해시값을 갖는 임의의 쌍을 찾는 것이 계산적으로 실행 불가능해야 합니다.
  • 참고: 아주 단순한 해시 함수는 메시지를 $n$ 비트 블록 $m$개로 나누고, 이 블록들을 서로 XOR 연산하여 해시 코드를 추출하는 방식도 있습니다.

2. 해시 함수의 종류 및 알고리즘 비교

디지털 서명과 인증 등에 폭넓게 사용되는 대표적인 해시 알고리즘들을 살펴봅니다.

알고리즘 메시지 다이제스트 길이 비고
SHA-1 160비트 1995년 표준화 (FIPS 180-1로 정의)
HAS-160 160 비트 SHA-1 기반으로 만들어져 1998년 한국 정부가 표준화
MD5 128 비트 1991년 RSA사가 개발, 충돌 문제 있음
MD2 128 비트 RSA사가 개발, 충돌 문제 있음
RIPEMD-160 160 비트 유럽의 표준 알고리즘

 

💡 SHA와 MD5의 상세 스펙 차이

구분 MD5 SHA (SHA-1)
다이제스트 길이 128 비트 160 비트
처리 기본 단위 64번 (16번 x 4라운드) 80번
최대 메시지 크기 무한대 2^64
기약논리 함수 4 3
덧셈 상수 64개 4개

'암호학' 카테고리의 다른 글

전자 서명과 PKI  (0) 2026.04.09
키 관리  (0) 2026.04.09
공개키 암호  (0) 2026.04.09
비밀키 암호  (0) 2026.04.09
암호의 개념과 고전 암호  (1) 2026.03.18

관련글 더보기