해시함수
: 어떠한 길이의 데이터가 입력되더라도 고정된 길이의 해시값 혹은 해시 코드를 출력하는 함수
▶ 해시함수 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 축구한다. 대대장님이랑 같은 팀인데 이럴거면 간부랑 병이랑 따로 했으면 좋겠다. 어쨌든 오늘은 이만 하고 자러 가보겠다.
'정보보안산업기사 필기' 카테고리의 다른 글
| [암호학] 메시지 인증코드(MAC) (1) | 2026.04.05 |
|---|---|
| [암호학] 다양한 해시함수 (0) | 2026.04.05 |
| [암호학] 기타 비대칭키 암호 알고리즘 (0) | 2026.04.01 |
| [암호학] RSA (3) | 2026.03.31 |
| [암호학] 공개키 암호 (Public-key Cryptography) (0) | 2026.03.31 |