본문 바로가기
IT/security

#2 hash 기본

by 내일은교양왕 2025. 5. 9.

개념
복사 금지! 원본 증명, 긴 데이터를 짧게 “압축 요약”하는 함수
 
예를 들어

입력값해쉬값 (sha-256)
apple3a7bd3e2360a... (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