desktools.run
35 명 접속 중|5.4천 회 이용
블로그 목록으로 돌아가기
CybersecuritySeptember 14, 2026

해시 함수의 모든 것: MD5, SHA-1의 취약점과 SHA-256의 보안성 비교

Official desktools.run Article

해시 함수의 모든 것: MD5, SHA-1의 취약점과 SHA-256의 보안성 비교

우리가 인터넷에서 파일을 다운로드할 때 체크섬(Checksum)을 확인하거나, 비밀번호를 데이터베이스에 안전하게 저장할 때 가장 핵심적인 역할을 담당하는 기술이 바로 암호학적 해시 함수(Cryptographic Hash Function)입니다.

과거 널리 사용되던 MD5와 SHA-1은 오늘날 왜 보안 알고리즘으로서 공식 폐기(Deprecated)되었을까요? 그리고 SHA-256은 어떻게 현대 인터넷 보안과 블록체인의 절대적인 표준으로 자리 잡았을까요?


🔒 1. 암호학적 해시 함수의 3대 필수 속성

해시 함수는 임의의 길이의 입력 데이터를 고정된 길이의 해시 문자열(Digest)로 변환하는 단방향(One-way) 수학 함수입니다.

1.
역상 저항성 (Pre-image Resistance - 단방향성):
결과 해시값 `h`가 주어졌을 때, 원래 입력값 `x`를 역산해 내는 것이 계산적으로 불가능해야 합니다.
2.
제2 역상 저항성 (Second Pre-image Resistance - 약한 충돌 저항성):
특정 입력값 `x`가 있을 때, 동일한 해시값을 갖는 또 다른 입력값 `x'`를 찾는 것이 불가능해야 합니다.
3.
충돌 저항성 (Collision Resistance - 강한 충돌 저항성):
서로 다른 두 입력값 `x`와 `y`가 동일한 해시값을 출력하는 경우(`H(x) = H(y)`)를 찾아내는 것이 극도로 어려워야 합니다.
4.
눈사태 효과 (Avalanche Effect):
입력 데이터의 단 1비트만 바뀌어도 결과 해시값의 50% 이상이 완전히 다른 무작위 값으로 변경되는 현상입니다.

⚠️ 2. MD5와 SHA-1이 무너진 이유: 충돌 공격 (Collision Attack)

MD5 (Message Digest 5 - 128비트 출력):
1991년 개발된 MD5는 속도가 빨라 널리 쓰였으나, 2004년 중국 산둥대 왕샤오윈 교수 연구팀에 의해 수 분 만에 의도적으로 동일한 해시값을 갖는 서로 다른 두 파일을 생성하는 충돌 공격이 증명되었습니다.
현재는 일반 파일의 단순 전송 오류 체크용으로만 제한적으로 사용되며, 비밀번호 저장이나 디지털 서명 용도로는 절대 사용해서는 안 됩니다.
SHA-1 (Secure Hash Algorithm 1 - 160비트 출력):
2017년 Google 연구팀과 CWI 암스테르담이 세계 최초로 실제 충돌하는 두 개의 PDF 파일(SHAttered 공격)을 생성하는 데 성공하면서 보안 인증서(SSL/TLS) 발급에서 전면 퇴출되었습니다.

🛡️ 3. SHA-256 (SHA-2 제품군)의 강력한 보안성

SHA-256은 미국 국립표준기술연구소(NIST)에 의해 제정된 암호화 표준으로, 256비트(64자리 16진수)의 해시값을 생성합니다:

천문학적인 경우의 수: 2의 256승($2^{256} \approx 1.15 \times 10^{77}$)가지의 고유한 결과값을 가집니다. 이는 관측 가능한 전 우주의 원자 개수($10^{80}$)에 필적하는 수치입니다.
무결성 검증의 표준: 리눅스 배포판 패키지 검증, Git 커밋 무결성, TLS 인증서, 비트코인(Bitcoin) 작업 증명(PoW) 합의 알고리즘에 핵심으로 사용됩니다.

📊 해시 알고리즘 비교 요약표

| 알고리즘 | 다이제스트 크기 | 충돌 저항성 상태 | 권장 용도 | | :--- | :--- | :--- | :--- | | MD5 | 128 bit (32자) | ❌ 취약 (충돌 발견됨) | 단순 파일 무결성 체크용 (비보안) | | SHA-1 | 160 bit (40자) | ❌ 취약 (2017년 깨짐) | 레거시 호환용 외 사용 금지 | | SHA-256 | 256 bit (64자) | ✅ 매우 안전 (표준) | 비밀번호 해싱, API 서명, 블록체인 | | SHA-512 | 512 bit (128자)| ✅ 매우 안전 (최고 등급) | 고보안 암호화 통신 및 금융 시스템 |


서버 전송 없이 브라우저 메모리 상에서 안전하게 문자열 및 파일의 해시값을 계산하려면 desktools.run의 [Hash Generator](file:///tools/hash-generator) 도구를 활용해 보세요!