반응형
해시는 왜 복호화가 안될까
많은 사람들이 처음 해시(Hash)를 배우면 이렇게 생각한다.
"암호화했으니까 복호화하면 원본이 나오겠지?"
하지만 해시는 암호화(Encryption)가 아니다.
핵심 차이는 여기 있다.
암호화는 되돌릴 수 있지만,
해시는 되돌릴 수 없다.
즉 해시는 애초에:
복호화를 전제로 만든 기술이 아니다.
1. 해시는 "요약값" 생성 기술
해시는 데이터를 입력받아:
고정 길이의 결과값(Hash Value)
을 만든다.
예:
"hello"
→ SHA-256:
2cf24dba5fb0...
중요한 건:
입력 길이와 관계없이
결과 길이는 고정
이라는 점이다.
예:
| 입력 데이터 | 결과 길이 |
| a | 256bit |
| hello | 256bit |
| 10GB 파일 | 256bit |
2. 왜 복호화가 불가능한가?
핵심 이유는:
정보가 압축되면서
원본 정보가 사라지기 때문
이다.
예를 들어 생각해보자.
사람 이름을 다음처럼 변환한다고 가정:
김철수 → 1234
이영희 → 5678
이건 단순 매핑이라 다시 복원 가능하다.
하지만 해시는 다르다.
해시는:
엄청나게 큰 입력 공간
을
제한된 고정 길이 출력
으로 변환한다.
즉:
원본 정보 일부가 버려진다
3. 비유하면 이런 느낌
예를 들어:
소설책 전체
를 입력받아:
책의 지문 하나
만 남기는 것과 비슷하다.
지문은:
- 동일 여부 확인은 가능하지만
- 원래 책 내용을 복원할 수는 없다.
4. 해시는 수학적으로 일방향 함수
해시는:
One-Way Function
이라고 부른다.
즉:
계산은 쉽지만,
역산은 현실적으로 불가능
한 함수다.
예:
h=H(m)h = H(m)
- m
→ 원본 데이터 - H
→ 해시 함수 - h
→ 해시값
중요한 건:
h만 보고
m을 찾는 게 현실적으로 불가능
하도록 설계됐다는 것.
5. "복호화"가 없는 이유
암호화는 원래:
복원 목적
이 있다.
즉:
- 암호화
- 복호화
가 한 쌍이다.
하지만 해시는 목적 자체가 다르다.
해시 목적은:
원본 비교
무결성 검증
이다.
즉:
"같은 데이터인가?"
를 빠르게 확인하려는 기술이다.
6. 비밀번호 저장에 해시를 쓰는 이유
만약 비밀번호를 암호화해서 저장하면:
복호화 키가 털리는 순간
모든 비밀번호 유출
가능하다.
그래서 비밀번호는 보통:
- bcrypt
- Argon2
- PBKDF2
같은 해시 기반 방식으로 저장한다.
로그인 시:
입력 비밀번호 → 해시
를 다시 계산해서 비교한다.
즉 서버도:
원래 비밀번호를 모른다
7. 그런데 왜 "해시 복호화 사이트"가 있나?
사실 그건 복호화가 아니다.
대부분:
미리 계산된 값 비교
다.
예:
123456
의 SHA-256을 미리 저장해두고:
같은 해시값 발견
시 원문을 알려주는 것.
즉:
역산한 게 아니라
사전(Dictionary) 매칭
이다.
8. 그래서 Salt를 사용한다
예를 들어:
password123
를 모든 사용자가 쓰면:
같은 해시값
이 나온다.
그래서 랜덤값(Salt)을 추가한다.
예:
hash(password + salt)
그러면:
같은 비밀번호라도
매번 다른 해시값
이 생성된다.
9. 해시의 핵심 특징
좋은 해시는:
1) 일방향성
복원이 현실적으로 불가능
2) 결정성
같은 입력 → 같은 결과
3) Avalanche Effect
입력 한 글자만 바뀌어도:
결과가 완전히 달라짐
4) 빠른 계산
대부분 매우 빠르다.
(단 bcrypt 같은 패스워드 해시는 일부러 느리게 설계)
10. 결국 해시의 본질
해시는 데이터를 숨기기 위한 기술이 아니라:
데이터의 동일성과 무결성을 검증하기 위한 기술
이다.
그리고 복호화가 안 되는 이유는:
애초에 되돌릴 수 있도록 설계되지 않았기 때문
이라고 볼 수 있다.
반응형
'system_fundamentals > security_cryptography' 카테고리의 다른 글
| SHA-256은 어떻게 동작하는가 (0) | 2026.05.13 |
|---|---|
| MD5는 왜 위험해졌는가 (0) | 2026.05.13 |
| 현대 인터넷은 어떻게 신뢰를 만드는가 (0) | 2026.05.13 |
| 신뢰 문제와 암호화 (0) | 2026.05.13 |
| CIA Triad (기밀성/무결성/가용성) (0) | 2026.05.13 |
댓글