SHA-1이란?
SHA-1 (Secure Hash Algorithm 1) 160비트 다이제스트(40-헥스 문자)를 출력합니다. 설계자는 NSA 그리고 출판됨 NIST 1995년(FIPS 180-1)에, 디지털 서명, 파일 체크섬 및 버전 관리 시스템에 널리 사용되었습니다.
보안 참고: SHA-1은 깨졌습니다 — 새로운 시스템에는 SHA-256, SHA-3 또는 BLAKE3를 사용하세요.
SHA-1 작동 방식
- 메시지 패딩 → 길이 ≡ 448 (mod 512) 비트
- 원본 메시지의 64비트 길이 추가
- 다섯 개의 32비트 단어(A–E) 초기화
- 512비트 블록을 80회 연산(4 라운드) 처리
- 최종 160비트 다이제스트 출력
보안 상태
- 2005 — 최초 이론적 충돌 공격
- 2017 — Google & CWI 암스테르담이 실제 충돌(“SHAttered” PDF) 시연
- 브라우저는 이제 SHA-1 TLS 인증서를 신뢰하지 않음
- NIST는 2011년에 디지털 서명용 SHA-1 사용 중단 권고
예시 해시
Input | SHA-1 해시 |
---|---|
Hello World | 0a4d55a8d778e5022fab701977c5d840bbc486d0 |
password | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
test123 | 7288edd0fc3ffcbe93a0cf06e3568e28521687bc |
(비어 있음) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
SHA-1과 다른 해시 함수 비교
Algorithm | Output | Security | Speed |
---|---|---|---|
MD5 | 128 비트 | ❌ 깨짐 | ⚡ 매우 빠름 |
SHA-1 | 160 비트 | ❌ 손상됨 | ⚡ 빠름 |
SHA-256 | 256 비트 | ✅ 안전함 | 🚀 보통 |
SHA-3 | Variable | ✅ 매우 안전함 | 🚀 보통 |
BLAKE3 | 256 비트 | ✅ 안전함 | ⚡ 매우 빠름 |
자주 묻는 질문
SHA-1은 비밀번호에 안전한가요?
아니요. 대신 bcrypt, Argon2 또는 PBKDF2를 사용하세요.
SHA-1 충돌이란?
충돌은 서로 다른 두 입력이 같은 해시를 생성할 때 발생합니다. 2017년 “SHAttered” 공격은 실제 충돌을 증명했습니다.
왜 Git은 아직도 SHA-1을 사용하나요?
Git의 설계는 취약성을 제한하지만, 프로젝트는 SHA-256으로 이전 중입니다.