728x90
일방향 해시함수
해시함수란, 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값을 출력하는 함수이다.
일방향 해시함수의 특징
- 임의 길이의 메시지로부터 고정 길이의 해시값을 계산한다.
- 해시값을 고속으로 계산한다.
- 일방향성, 해시값으로부터 메시지를 역산할 수 없는 성질이다.
- 메시지가 다르면 해시값도 다르다.
해시함수의 보안
- 프리이미지 저항성(역상 저항성)
- 제2프리이미지 저항성(두번째 역상 저항성, 약한 충돌 내성)
- 충돌 저항성(충돌 회피성, 강한 충돌 내성)
반복 해시함수
Merkle-Damgrad 구조는 현재 사용되는 많은 암호학적 해시함수 구조의 기본 틀이다.
충돌 내성을 갖는 암축함수를 설계해서 Merkle-Damgrad 구조에 집어넣으면 된다.
키가 없는 해시함수
오늘날 사용되고 있는 전용 해시함수인 SHA-1, RIPEMD, RIPEMD-128, RIPEMD-160, HAVAL등은 모두 MD4를 기초로 디자인했다.
- 메세지 다이제스트(MD)
- SHA(Secure Hash Algorithm)
- RIPEMD-160
- Tiger
- HAVAL
- 블록암호 기반 해시함수
- 모듈 연산에 기반을 둔 해시함수
키가 있는 해시함수
키를 사용하는 해시함수는 메시지 인증 기능을 가진 함수이다.
블록 암호에 기반을 둔 메시지 인증 알고리즘 중 가장 널리 사용되는 방법은 CBC 모드를 사용하는 것이다.
암호학적 해시함수의 응용
- 무결성 점검
- 소프트웨어 변경 검출
- 메시지 인증코드
- 전자서명
랜덤 오라클 모델
해시함수에 대한 이상적인 수학적 모델이다.
- 비둘기집 원리
- 생일 문제(생일 공격)
일방향 해시함수에 대한 공격
- 무차별 공격
- 일차블록 연쇄공격
- 중간자 연쇄공격
- 고정점 연쇄공격
- 차분 연쇄공격
일방향 해시함수는 '조작과 변경'을 검출할 수 있지만, '거짓행세'는 검출하지 못한다.
따라서 인증이라는 절차가 필요하다.
암호학적 해시함수
SHA-512
SHA-3
메시지 인증 코드(MAC)
변경 감지 코드(MDC)
축소 MAC
HMAC
CBC-MAC, CAMC
CCM(Counter with CBC-MAC)
GCM모드
MAC 재전송 공격에 대한 해결방법
- 순서 번호
- 타임스탬프
- 비표
- 시도/응답
MAC으로 해결할 수 없는 문제
- 제 3자에 대한 증명
- 부인 방지