개념
복사 금지! 원본 증명, 긴 데이터를 짧게 “압축 요약”하는 함수
예를 들어
입력값 | 해쉬값 (sha-256) |
apple | 3a7bd3e2360a... (64자리) |
apple! | 16a3ffba907a... (완전히 다름) |
핵심은?
입력이 1글자만 달라도 완전히 다른 결과가 나온다
같은 입력은 언제 해도 항상 같은 결과 > 즉, 해시는 데이터의 지문
특징
① 해시는 단방향이다! 즉, 한 번 들어가면 못 나간다
- `abc` → `900150983cd24fb0...`
- 하지만 이걸 거꾸로 `abc`로 되돌릴 수는 없다!
- 단방향이기 때문에 보안 기술에서 자주 사용됨. (비밀번호 저장, 블록체인 거래 기록, 디지털 서명)
② 같은 건 항상 같고, 다르면 무조건 다르다?
✔️ 같은 입력 → 항상 같은 해시
❌ 다른 입력 → 해시가 무조건 다르다? → 아니요! 이론상 해시 충돌이 존재합니다.
하지만 SHA-256, SHA-3 같은 안전한 해시는 충돌 가능성이 거의 0에 가까움. 즉, 다른 사람이 나랑 똑같은 지문을 가질 확률은 거의 없다는거와 같음
③ 길이와 상관없다 입력값이 10글자든, 100만 글자든 해시값의 길이는 항상 같다!
예: SHA-256 → 항상 256bit (=64자리 16진수)
④ 대표적인 해시 함수 이름들
- MD5: 빠르지만 보안 약함 (요즘은 비추천)
- SHA-1: 옛날에 많이 씀 (지금은 충돌 발견됨 → 비추천)
- SHA-256: 지금도 많이 씀 (안전함)
- SHA-3: 비교적 최신 (더 안전하게 설계됨) → `SHA`는 `Secure Hash Algorithm`의 약자!
해시는 어디에 쓰이나?
쓰임새 | 설명 |
비밀번호 저장 | 비밀번호 자체는 저장하지 않고 해시값만 저장 |
파일 무결성 확인 | 다운로드 받은 파일의 해시값과 원본 해시값을 비교 |
블록체인 | 거래 정보의 해시값으로 블록 연결 |
디지털 서명 | 전자문서의 ‘내용 요약’으로 사용 |
해시와 체크섬은 뭐가 다르지?
항목 | 체크섬 | 해시 |
목적 | 단순 오류 검출 | 정교한 변조 탐지, 인증 |
예시 | TCP, QR 코드 | 비밀번호 저장, 서명 |
보안성 | 약함 | 강함 |
충돌 회피 | 신경 안 씀 | 매우 중요함 |
요약
그래서 해시는?
- 단방향이다 (돌이킬 수 없다)
- 입력이 같으면 해시도 같다
- 길이 상관없이 고정된 길이 결과
- 대표 해시 함수 이름 외우기: `MD5`, `SHA-1`, `SHA-256`, `SHA-3`
- 해시 = 데이터 지문 (체크섬은 “오타 검출용”,)
'IT > security' 카테고리의 다른 글
#6 인터넷에서는 비대칭키를 어떻게 활용할까? (0) | 2025.05.10 |
---|---|
#5 디지털 서명 (0) | 2025.05.10 |
#4 비대칭키 (Asymmetric Key) (0) | 2025.05.10 |
#3 대칭키 (Symmetric Key) (0) | 2025.05.10 |
#1 checksum 이란 (0) | 2025.05.09 |