Skip to content

해시함수

임의의 길이를 가지는 메시지를 고정된 길이의 값으로 바꾸어주는 함수

일방향 해시함수

  • 출력 값 = 해시 값 = 메시지 다이제스트
  • 일방향성
  • 해시값으로부터 메시지 역산 불가
  • 충돌
  • 해시 값 하나에 여러 메시지 존재
  • 충돌을 발견하기란 어려움
    • 이러한 성질을 충돌 내성이라 함
    • 따라서 데이터 변조가 어렵고, 무결성이 확보됨

공격 기법

  • 무차별 공격
  • 약한 충돌 내성을 깨기 위한 공격
  • 일치블록 연쇄공격
  • 사전에 해시 값을 다양하게 생성 후 공격하고자 하는 메시지의 해시 값과 동일한 것을 찾는 공격
  • 중간자 연쇄공격
  • 전체 해시 값이 아닌 해시 중간 결과에 대한 충돌 쌍을 찾음
  • 고정점 연쇄공격
  • 메시지 블록과 연쇄변수 쌍을 얻어 연쇄변수가 발생하는 특정한 점에 임의의 동등한 블록들을 메시지 중간에 삽입해도 전체 해시 값이 변하지 않음
  • 차분 연쇄공격
  • 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 찾는 공격

보안 요구사항

무결성 점검

암호학적 해시함수를 사용하여 이전 해시값과 새로운 해시값이 동일하다면 메시지가 변경되지 않았음을 확인할 수 있다.

암호학적 해시함수 기준

암호학에서 사용될 수 있는 안전하다고 여겨지는 해시 함수를 암호학적 해시함수라 한다. 아래는 암호학적 해시함수가 되기 위한 필요조건이다.

  • 프리이미지 저항성(역상 저항성)
  • 주어진 해시함수 hy=h(M)에 대하여 제 3자가 y=h(M')를 만족하는 M'를 발견하는 것이 매우 힘들어야 한다는 성질
  • 프리이미지(preimage)
    • 해시값 h=H(x)에 대해 x는 h의 프리이미지(선 이미지)라 한다.
    • H가 다대일 대응이므로 특정 해시 값 h에 여러 개의 선 이미지 존재
  • 제2프리이미지 저항성(약한 충돌 내성)
  • 메시지를 쉽게 위조할 수 없게 하는 특성
  • 제 3자가 메시지 M과 그것의 다이제스트 h(M)을 가로챘을 경우, h(M) = h(M')을 만족하는 또 다른 메시지 M'을 생성하기 매우 어려워야 한다는 성질
  • 충돌 저항성(강한 출동 내성)
  • 제3자가 동일한 메시지 다이제스트를 갖는 2개의 메시지 쌍을 구하지 못하게 하는 성질

전자서명에 이용되는 해시함수 특성

  • 해시 값을 고속으로 계산 가능
  • 암호학적 해시함수 기준 3가지 모두 충족

암호학적 해시함수

메시지 다이제스트

  • MD2 -> MD4 -> MD5
  • MD5는 메시지를 512bit로 된 블록으로 나누어 128bit 다이제스트를 출력
  • 128bit 메시지 다이제스트는 길이가 짧아 충돌 공격에 내성을 갖기 어려움

SHA(Secure Hash Algorithm)

MD4 기반, 안전 해시 알고리즘

  • SHA-1
  • 해시값: 160bit
  • 강한 충돌 내성이 깨졌음
  • 안정성 문제로 SHA-2로 마이그레이션 진행
  • SHA-2
  • 동일한 암호화 결함을 가짐
  • 긴 해시길이로 SHA-1보다 안전
  • 종류
    • SHA-224
    • SHA-256
    • SHA-384
    • SHA-512
    • SHA-512/224
    • SHA-512/256

Last update : 4 juin 2023
Created : 26 mai 2020