정보보안기사 필기 5장 요약내용입니다.

4 minute read

* 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