일방향 암호화 방식
일방향 암호화 방식(One-way Encryption) 또는 해시 암호화 방식은 임의 길이의 입력을 받아 고정된 길이의 해시값을 출력하는 암호 방식이다. “한 방향”이라는 이름 그대로, 해시값으로부터 원문을 역산할 수 없다는 특성을 가진다.
핵심 성질
- 고정 길이 출력: 입력 크기와 무관하게 결과는 항상 같은 길이
- 비가역성: 해시값 → 원문 복원 불가
- 충돌 저항성: 서로 다른 두 입력이 같은 해시값을 가지기 어려움
- 결정성: 같은 입력은 언제나 같은 해시값
- 눈사태 효과: 입력이 1비트만 바뀌어도 해시값이 완전히 달라짐
대표 해시 알고리즘
| 알고리즘 | 해시 길이 | 상태 |
|---|---|---|
| MD5 | 128비트 | 취약 (사용 금지) |
| SHA-1 | 160비트 | 취약 (사용 금지) |
| SHA-256 | 256비트 | 현재 표준 |
| SHA-3 | 가변 | 최신 표준 |
| bcrypt / scrypt / Argon2 | 가변 | 비밀번호 전용 |
활용
- 비밀번호 저장: 원문을 저장하지 않고 해시값만 보관 (Salt 필수)
- 무결성 검증: 파일/데이터가 변조되지 않았는지 확인 → 무결성
- 디지털 서명: DSA, RSA 서명의 입력
- 블록체인: 블록 연결과 검증 → 블록체인
- 중복 검출: 해시값으로 동일 데이터 식별
주의점
- 레인보우 테이블 공격: 흔한 비밀번호는 미리 계산된 해시로 뚫린다 → Salt로 대응
- 느린 해시 함수: 비밀번호에는 일부러 느리게 설계된 bcrypt, Argon2 사용
- 단순 해시는 데이터 보호가 아니라 무결성 검증 도구임을 기억할 것