정보보안산업기사 필기

[암호학] 일방향 해시함수

zzadary1012 2026. 4. 1. 23:06

해시함수 

: 어떠한 길이의 데이터가 입력되더라도 고정된 길이의 해시값 혹은 해시 코드를 출력하는 함수

 

▶ 해시함수 h는 임의의 길이의 문자열을 n비트 문자열로 대응 (n은 고정된 값)

 

Q. 만약 n보다 큰 비트의 문자열을 입력한다면?

A. 그래도 n비트의 문자열이 출력됨

→ 정의역이 치역보다 크기 때문에 h는 다대일 대응 함수가 된다 (충돌이 필연적으로 존재)

 

· 특징

① 어떠한 길이의 메시지여도 고정 길이의 해시값을 출력한다.

② 해시값을 고속으로 계산할 수 있다.

③ 일방향성(one-way) : 해시값으로부터 메시지를 역산할 수 없다.

④ 메시지가 다르면 해시값도 다르다 → 충돌(collision)이 필연적이지만 이 확률이 극도로 낮아야 함

 

※ 충돌 내성 (collision resistance) : 충돌이 발견되기 어려운 성질 ※

 

· 해시함수 관련 용어

1) 일방향 해시함수 ≒ 메시지 다이제스트 함수 ≒ 메시지 요약함수 ≒ 암호학적 해시 함수

2) 입력되는 메시지 ≒ 프리 이미지(pre-image)

3) 출력되는 해시값 ≒ 메시지 다이제스트 ≒ 핑거프린트

4) 무결성 ≒ 완전성 ≒ 보전성

 

 

· 해시함수의 보안 요구사항

(1) 프리이미지 저항성(역상 저항성, pre-image resistance)

: 해시함수 h와 y = h(M)에 대해서 Eve가 y = h(M')를 만족하는 메시지 M'를 찾아내는 것이 매우 힘들어야 한다는 성질

→ 해시값을 통해 메시지를 찾아내는 것이 힘들어야 한다는 것 

 

▶ 역산 불가능성, 일방향성

 

 

(2) 제2 프리이미지 저항성 (두 번째 역상 저항성, second pre-image resistance)

: 메시지를 쉽게 위조할 수 없도록 하는 성질

 

Q. 무슨 소리?

A. Eve가 M과 h(M)을 가로챘을 때, h(M) = h(M')을 만족하는 M'을 생성한다면 메시지를 위조할 수 있음 → 이를 방지

→ 해시 함수에 넣었을 때 해시값이 h(M)이 나오지만 M이 아닌 메시지를 찾을 수 없어야 함

 

▶ 위조 방지, 약한 충돌 내성

 

 

(3) 충돌 저항성(충돌 회피성, collision resistance)

: h(x) = h(x')를 만족하는 임의의 x와 x'를 찾는 것이 불가능함 → 약한 충돌 내성보다 확률이 높기 때문에 강한 충돌 내성이라고 함

 

 

※ 정확한 비교 : 약한 충돌 내성 vs 강한 충돌 내성 ※

● 약한 충돌 내성 : 메시지 M이 이미 주어져 있을 때 똑같은 해시값을 가지는 M'을 찾지 못하는 것 → 타겟 O

● 강한 충돌 내성 : 아무거나 상관 없으니까 해시값이 같은 순서쌍 (x,y)을 찾지 못하는 것 

 

▶ 강한 충돌 내성 개념 안에 약한 충돌 내성이 있음

 

요구사항 설명
다양한 입력 길이 H는 어떤 크기의 데이터 블록에도 적용 가능함
고정된 출력 길이 H는 고정된 크기의 출력을 생성
효율성 H는 실질적으로 H/W , S/W에 적용하기 용이해햐 함 
어떠한 x에 대해서도 계산이 수월해야 함
pre-image resistance H(x) = h 식에서 h를 통해 x를 찾을 수 없음 (일방향성)
second pre-image resistance H(x) = H(y)를 만족하는 y를 찾는 것이 불가능 
collision resistance H(x) = H(y)인 (x,y)를 찾는 것이 불가능 (충돌 저항)

[표 - 암호학적 해시함수의 요구사항]

 

 

 

 

 

 

♠ 2026.04.01 / D-294 ♠

 

오늘은 기타 비대칭키 암호 알고리즘과 해시함수 기초에 대해 공부했다. 생각보다 해시함수의 정의가 되게 별거 없어서 다행이라고 생각했다. 약한 충돌 내성과 강한 충돌 내성을 잘 구분하는 것이 키포인트가 될 것 같다. 나머지는 사실 그냥 읽고 넘길 수 있을만한 수준의 내용들임

 

내일 오랜만에 11:11 축구한다. 대대장님이랑 같은 팀인데 이럴거면 간부랑 병이랑 따로 했으면 좋겠다. 어쨌든 오늘은 이만 하고 자러 가보겠다.