해시함수
임의의 길이를 가지는 메시지를 고정된 길이의 값으로 바꾸어주는 함수
일방향 해시함수¶
출력 값 = 해시 값 = 메시지 다이제스트
- 일방향성
- 해시값으로부터 메시지 역산 불가
- 충돌
- 해시 값 하나에 여러 메시지 존재
- 충돌을 발견하기란 어려움
- 이러한 성질을
충돌 내성
이라 함 - 따라서 데이터 변조가 어렵고, 무결성이 확보됨
- 이러한 성질을
공격 기법¶
- 무차별 공격
- 약한 충돌 내성을 깨기 위한 공격
- 일치블록 연쇄공격
- 사전에 해시 값을 다양하게 생성 후 공격하고자 하는 메시지의 해시 값과 동일한 것을 찾는 공격
- 중간자 연쇄공격
- 전체 해시 값이 아닌 해시 중간 결과에 대한 충돌 쌍을 찾음
- 고정점 연쇄공격
- 메시지 블록과 연쇄변수 쌍을 얻어 연쇄변수가 발생하는 특정한 점에 임의의 동등한 블록들을 메시지 중간에 삽입해도 전체 해시 값이 변하지 않음
- 차분 연쇄공격
- 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 찾는 공격
보안 요구사항¶
무결성 점검¶
암호학적 해시함수를 사용하여 이전 해시값과 새로운 해시값이 동일하다면 메시지가 변경되지 않았음을 확인할 수 있다.
암호학적 해시함수 기준¶
암호학에서 사용될 수 있는 안전하다고 여겨지는 해시 함수를 암호학적 해시함수
라 한다. 아래는 암호학적 해시함수가 되기 위한 필요조건이다.
- 프리이미지 저항성(역상 저항성)
- 주어진
해시함수 h
와y=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
Created : 26 mai 2020