정보보안기사&산업기사 필기 5장 요약 - 해시함수와 응용
정보보안기사 필기 5장 요약내용입니다.
* 2020 조현준 정보보안기사 산업기사 필기 + 핵심기출 1200제 정보보안기사 & 산업기사 필기 교재를 기반으로 요약하였습니다.
Section 05. 해시함수와 응용
1. 일반향 해시 함수
1) 기본 개념
/- 해시 함수 : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 출력하는 함수
/- 정의역을 D, 치역을 R이라 할 때, 해시함수 h = D → R( | D | > | R | ) : 다대일 대응 함수 |
/- 반드시 충돌이 존재
2) 특징
- 임의 길이의 메시지로부터 고정 길이의 해시 값을 계산
- 고속으로 해시 값 계산
- 일방향성 : 메시지를 역산할 수 없음
- 메시지가 다르면 해시 값도 다름 : 무결성 확인을 위해 사용
※ 충돌 : 2개의 다른 메시지가 같은 해시 값을 갖는 것
※ 충돌방지(내성) : 충돌을 찾기 어렵도록 하는 것
3) 해시 함수의 보안 요구사항
* 암호학적 해시 함수 기준
> 프리이미지 저항성, 제 2프리이미지 저항성, 충돌 저항성
(1) 프리이미지 저항성(역상 저항성, 약 일방향성)
- h = H(x) : x는 h의 선 이미지(프리이미지)
- 즉, x는 함수 H를 사용한 해시함 수 결과가 h인 데이터 블록
→ 일방향성
(2) 제 2프리이미지 저항성(두 번째 역상 저항성, 약한 충돌 내성, 강 일방향성)
- 메시지를 쉽게 위조할 수 없도록 하는 성질
(3) 충돌 저항성(충돌 회피성, 강한 충돌 내성)
- 동일한 다이제스트(일방향 해시 함수, 출력되는 해시 값)를 가지는 2개의 메시지를 구하지 못하도록 하는 것
[전자서명에 이용되는 해시 함수의 특성]
- 해시값을 고속으로 계산 : 해시 함수의 성능 조건
- 약 일방향성 : 해시 함수의 안전성, 해시 함수의 역함수 계산 방지
- 강 일방향성 : 해시 함수의 안전성, 해시 함수의 역함수 계산 방지
- 충돌 회피성 : 해시 함수의 안전성, 내부부정 방지
[해시함수의 성질들 사이 관계]
- 충돌 저항성은 두 번째 역상 저항성을 보장
- 두 번째 역상 저항이 역상 저항을 보장하지 못하고, 역상 저항이 두 번째 역상 저항을 보장하지 못한다.
- 충돌 저항성은 역상 저항성을 보장하지 못함다.
[키가 없는 해시함수]
▶ 블록 암호를 기초로 한 해시함수, 전용 해시함수(처음부터 새로 만드는 것), 모듈 연산을 기초로 한 해시함수
> 전용 해시 함수
(1) 메시지 다이제스트(Message Digest)
- MD2 → MD4 → MD5
- MD5는 메시지를 512bits로 된 블록으로 나누고 128bits 다이제스트를 출력
- MD5 라운드 수는 64(14 * 4R) - 128bits 메시지 다이제스트는 충돌 공격에 내성을 갖기에는 길이가 너무 짧다.
- 내부 구조에 대한 약점이 발견되고, 생일 공격에 노출
(2) SHA(Secure Hash Algorithm) : 가장 널리 사용되는 해시함수
- 특징
→ 메시지 길이의 상한 존재
→ 512비트 블록 단위로 처리
→ 160비트 메시지 다이제스트 출력
→ MD5(메시지 다이제스트) 구조를 따르고 유사한 처리과정 수행
> 블록암호 기반 해시 함수
- 반복 암호학적 해시함수에서 일부분에 대해 새로운 압축함수를 만들 필요 없이 검증된 대칭키 알고리즘을 일방향 함수로 사용하여 블록암호의 암호화 기능만 사용하는 것
> 모듈 연산에 기반을 둔 해시 함수
- 압축 함수의 기반을 모듈 연산의 반복적인 수행에 두고 있는 해시함수
[키를 사용하는 해시함수]
- 메시지 인증 기능을 가진 함수
- 함수 자체의 안전성과 키의 비밀성에 안전성을 둠
- CBC 모드
[랜덤 오라클 모델]
(1) 개요
- 해시함수에 대한 이상적인 수학적 모델
- 0과 1로 이루어진 난수 스트링인 고정된 길이의 메시지 다이제스트를 생성해서 제공
- 다이제스트가 존재하는 메시지가 주어지면 저장된 다이제스트를 제공
- 새로운 다이제스트는 기존에 존재하는 다이제스트와는 독립적 : 공식이나 알고리즘을 사용하면 X
(2) 비둘기집 원리
- N + 1마리의 비둘기를 N개의 비둘기집에 집어 넣으면 비둘기가 2마리 이상있는 비둘기집이 적어도 1개가 존재 > 충돌
3) 생일 문제(생일 공격)
- 일방향 해시함수의 강한 충돌 내성을 깨고자 하는 공격
[일방향 해시함수에 대한 공격]
(1) 무자별 공격 : 일방향 해시함수의 약한 충돌 내성을 깨고자 하는 공격
(2) 일치 블록 연쇄공격 : 사전에 해시 값을 다양하게 생성 후 공격하고자 하는 메시지의 해시 값과 같은 것을 찾는 공격
(3) 중간자 연쇄 공격 : 전체 해시 값이 아닌 해시 중간 결과에 대한 충돌 쌍을 찾는 공격
(4) 고정점 연쇄 공격 : 메시지 블록과 연쇄변수 쌍을 얻게 되면 연쇄변수가 발생하는 특정한 점에서의 임의의수의 동등한 블록들을 메시지 중간에 삽입해도 전체 해시 값이 변하지 않음
(5) 차분 연쇄 공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 주로 찾아내는 방법
[메시지 인증 코드(MAC)]
(1) 개요
- 무결성을 확인하고, 메시지에 대한 인증을 하는 기술
- 임의 길이의 메시지와 송신자 및 수신자가 공유하는 키라는 2개의 입력을 기초로 해서 고정 비트 길이의 출력을 계산
- 장점 : 블록 암호나 해시 함수에 기반 : 전자서명보다 빠르다.
- 단점 : 대칭키 암호를 사용함으로써 키 배송 문제 발생
(2) 변경 감지 코드(MDC)
- 메시지의 무결성을 보장하는 메시지 다이제스트 : 해당 메시지가 변경되지 않음을 보장
(3) MAC 구현 사례
- 축소 MAC: 해시 과정이 두 단계로 이루어져 있음.(키도 두 번 사용)
- HMAC : 앞의 H는 해시함수를 의미하며, SHA-1과 같은 일방향 해시함수를 이용하여 MAC를 구성
- CBC-MAC : 블록 암호 모드인 CBC모드와 유사한 방법
- CMAC : CBC-MAC와 같은 종류의 데이터 인증과 무결성을 제공하지만, 조금 더 안전
- CCM(Counter with CBC-MAC) : CTR 모드와 CBC-MAC을 통합. AES 암호 알고리즘, CTR 모드, CBC-MAC 인증 알고리즘으로 구성
- GCM 모드 : CTR 모드에 인증 기능을 추가한 모드
(4) MAC에 대한 공격
- 재전송 공격
- MAC 값을 도청해서 저장해둔 뒤 저장해둔 MAC 값을 반복해서 송신하는 공격 - 보안 대책으로 순서 번호, 타임스탬프, 비표(nonce), 시도/응답이 있다.
(5) MAC가 해결하지 못하는 문제
- 제 3자에 대한 증명 : 두 사람 사이에서는 상대방이 MAC를 계산하였다고 말할 수 있지만, 제 3자에게 MAC 값을 누가 계산
했는지 증명할 방법이 없다.
→ 해결책 : 전자서명으로 증명 가능
- 부인 방지
→ 해결책 : 역시 전자서명으로 부인 방지가 가능해진다.
Leave a comment