일방향 암호화 방식

일방향 암호화 방식(One-way Encryption) 또는 해시 암호화 방식은 임의 길이의 입력을 받아 고정된 길이의 해시값을 출력하는 암호 방식이다. “한 방향”이라는 이름 그대로, 해시값으로부터 원문을 역산할 수 없다는 특성을 가진다.

핵심 성질

  • 고정 길이 출력: 입력 크기와 무관하게 결과는 항상 같은 길이
  • 비가역성: 해시값 → 원문 복원 불가
  • 충돌 저항성: 서로 다른 두 입력이 같은 해시값을 가지기 어려움
  • 결정성: 같은 입력은 언제나 같은 해시값
  • 눈사태 효과: 입력이 1비트만 바뀌어도 해시값이 완전히 달라짐

대표 해시 알고리즘

알고리즘해시 길이상태
MD5128비트취약 (사용 금지)
SHA-1160비트취약 (사용 금지)
SHA-256256비트현재 표준
SHA-3가변최신 표준
bcrypt / scrypt / Argon2가변비밀번호 전용

활용

  • 비밀번호 저장: 원문을 저장하지 않고 해시값만 보관 (Salt 필수)
  • 무결성 검증: 파일/데이터가 변조되지 않았는지 확인 → 무결성
  • 디지털 서명: DSA, RSA 서명의 입력
  • 블록체인: 블록 연결과 검증 → 블록체인
  • 중복 검출: 해시값으로 동일 데이터 식별

주의점

  • 레인보우 테이블 공격: 흔한 비밀번호는 미리 계산된 해시로 뚫린다 → Salt로 대응
  • 느린 해시 함수: 비밀번호에는 일부러 느리게 설계된 bcrypt, Argon2 사용
  • 단순 해시는 데이터 보호가 아니라 무결성 검증 도구임을 기억할 것

관련 노트

  • DSA: 해시 위에서 동작하는 디지털 서명
  • 블록체인: 해시 체인으로 구현된 분산 원장
  • 무결성 · 기밀성: 해시가 기여하는 보안 원칙
  • ECC · Elgamel: 함께 쓰이는 공개키 암호