ch05_해시함수와 기타

Download Report

Transcript ch05_해시함수와 기타

I부
암호
1
5장
해시함수와 기타
2
해쉬함수 동기
 앨리스가 M에 서명한다고 가정

앨리스는 M과 S = [M]앨리스 를 밥에게 전송

밥은 M = {S}앨리스 을 확인

참고사항: S 만 전송하면 괜찮은가?
 만약 M이 크면 [M]앨리스 을 계산 비용 큼
 앨리스가 M 보다 훨씬 적은 h(M)에 서명하다고
가정

앨리스는 M 과 S = [h(M)]앨리스 를 밥에게 전송

밥은 h(M) = {S}앨리스
3
암호학적 해시함수
 암호 해시 함수 h(x) 는 다음을 제공해야 함






압축 (Compression)  출력길이가 작아야 함
효율성 (Efficiency)  어떤 x에 대해서도 h(x) 를 계산하기가
쉬워야 함
단방향 (One-way)  주어진 y값에 대해 h(x)=y를 만족하는 x
값을 찾는 것이 어려워야 함
약한 충돌 방지 (Weak collision resistance)  주어진 x와
h(x)에 대해 h(y) = h(x)를 만족하는 y  x 를 찾기 어려워야 함
강한 충돌 방지 (Strong collision resistance)  h(x) = h(y) 를
만족하면서 x  y 인 어떤 x와 y도 찾기 어려워야 함
많은 충돌들이 존재하지만, 찾기가 어려워함 함
4
생일 문제를 위한…
 한 방에 N 사람이 있다고 가정
 어떤 사람이 나와 같은 생일일 확률이 ½
보다 크기 위해서 N이 얼마나 커야 하나?

해답: 1/2 = 1  (364/365)N

N = 253
5
생일 문제
 한 방에 있는 사람들 중에 2명 또는 그 이상이
같은 생일일 확률이 ½보다 크기 위해서는
얼마나 많은 사람들이 있어야 하나?

1  365/365  364/365   (365N+1)/365

위의 값이 ½과 같기 위해서는: N = 23
 놀라운 일인가? 역설적인가?
 아니다: “그렇게 되어야만 한다” x와 y의 모든 쌍
들을 비교해야 함으로 365의 제곱근의 대략
값이 그렇게 된다.
6
해시와 생일
 만약 h(x)가 N비트이면, 2N 의 다른 해시 값들이
가능
 sqrt(2N) = 2N/2
 그러므로 대략 2N 의 임의 값들을 해시하면
하나의 충돌이 기대된다
 함축된 의미: 안전한 N 비트의 대칭키는
“해독”하기 위해 2N-1 의 작업이 필요하고,
안전한 N 비트의 해시는 “해독”하기 위해 2N/2
작업이 필요하다
7
비 암호 해시 (1)
 X = (X0,X1,X2,…,Xn-1), 각 Xi 는 한 바이트
 hash(X) = X0+X1+X2+…+Xn-1 이라고 가정
 이것은 안전한가?
 예제: X = (10101010,00001111)
 해시는 10111001
 그러나 Y = (00001111,10101010)의 해시도 동일하다.
 쉽게 충돌을 찾을 수 있어 안전하지 않다…
8
비 암호 해시 (2)
 X = (X0,X1,X2,…,Xn-1)
 아래와 같은 해시를 가정

h(X) = nX0+(n-1)X1+(n-2)X2+…+1Xn-1
 이 해시는 안전한가?
 앞 슬라이드와 달리 적어도 아래는 다르다

h(10101010,00001111)h(00001111,10101010)
 그러나 (00000001,00001111) 해시는
(00000000,00010001) 해시와 동일하다
 단방향은 아니지만 이 해시는 전송 오류를 찾는 (비 암호)
응용분야에 사용
9
비 암호 해시 (3)
 Cyclic Redundancy Check (CRC)
 근본적으로 CRC는 긴 나눗셈 문제의
나머지
 전송 오류 탐지에 유용
 그러나 충돌을 만들기는 쉬움.
 CRC 는 가끔 암호 응용 분야(WEP)에
사용되고 있으나 이는 잘못된 것임.
10
인기 있는 암호 해시들
 MD5  리베스트가 발명

128 bit output

Note: MD5 collision recently found
 SHA-1  미 정부 표준 (MD5와 유사)

180 비트 출력
 많은 다른 해시들이 있지만 MD5와 SHA-1 이
가장 널리 사용
 해시는 블록내의 해싱 메시지에 적용
11
암호 해시 설계
 요구되는 특성: 쇄도효과 (avalanche effect)

입력의 1 비트의 변경이 출력 비트의 절반에 영향을
주어야 함
 암호 해시 함수들은 수 회전들로 구성
 보안과 속도를 요구

몇 회전 후에는 쇄도 효과가 나타나야 함

그러나 회전들은 단순해야 함
 블록 암호 설계와 유사
12
MD5
13
MD5
HMD5 처리 과정
CVq
Yq
512
128
A
B
C
fF , ABCD, Yq, T [1-16] 16회
A
B
C
fG , ABCD, Yq, T [17-32] 16회
A
B
C
fH , ABCD, Yq, T [33-48] 16회
A
B
C
fI , ABCD, Yq, T [49-64] 16회
D
D
D
D
mod 232
CVq+1
14
MD5
MD5 초기값
A = 0x 0 1 2 3 4 5 6 7
B = 0x 8 9 A B C D E F
C = 0x F E D C B A 9 8
D = 0x 7 6 5 4 3 2 1 0
15
MD5
 MD5의 HMD5 상수 T [i]의 값

T [i ] = 232 * ABS (sin (i )) 정수부분; i 는 라디안
T[1] = D76AA478
T[17] = F61E2562
T[33] = FFFA3942
T[49] = F4292244
T[2] = E8C7B756
T[18] = C040B340
T[34] = 8771F681
T[50] = 432AFF97
T[3] = 242070DB
T[19] = 265E5A51
T[35] = 699D6122
T[51] = AB9423A7
T[4] = C1BDCEEE
T[20] = E9B6C7AA
T[36] = FDE5380C
T[52] = FC93A039
T[5] = F57C0FAF
T[21] = D62F105D
T[37] = A4BEEA44
T[53] = 655B59C3
T[6] = 4787C62A
T[22] = 02441453
T[38] = 4BDECFA9
T[54] = 8F0CCC92
T[7] = A8304613
T[23] = D8A1E681
T[39] = F6BB4B60
T[55] = FFEFF47D
T[8] = FD469501
T[24] = E7D3FBC8
T[40] = BEBFBC70
T[56] = 85845DD1
T[9] = 698098D8
T[25] = 21E1CDE6
T[41] = 289B7EC6
T[57] = 6FA87E4F
T[10] = 8B44F7AF
T[26] = C33707D6
T[42] = EAA127FA
T[58] = FE2CE6E0
T[11] = FFFF5BB1
T[27] = F4D50D87
T[43] = D4EF3085
T[59] = A3014314
T[12] = 895CD7BE
T[28] = 455A14ED
T[44] = 04881D039
T[60] = 4E0811A1
T[13] = 6B901122
T[29] = A9E3E905
T[45] = D9D4D039
T[61] = F7537E82
T[14] = FD987193
T[30] = FCEFA3F8
T[46] = E6DB99E5
T[62] = BD3AF235
T[15] = A679438E
T[31] = 676F02D9
T[47] = 1FA27CF8
T[63] = 2AD7D2BB
T[16] = 49B40821
T[32] = 8D2A4C8A
T[48] = C4AC5665
T[64] = EB86D391
16
MD5
 MD5의 HMD5 의 기본 동작
A
B
C
D
A, B, C, D : 버퍼의 4 단어
g
g
: 기약 함수 F, G, H, I 중의 하나
CLSS=<<<s :32 비트 순환 좌측 쉬프트(로
테이션)
X[K]
T [i]
X[k] : 메시지의 q번째 512비트 블록 중에서
k번째 단어(32비트)
CLSS
A
T[i] : 행렬 T에서 i번째 단어(32비트)
32
: 법 2 의 덧셈
B
C
D
라운드
기약함수 g
g(b,c,d)
1
F(B,C,D)
(BC)+(B D)
2
G(B,C,D)
(BD)+(CD)
3
H(B,C,D)
BCD
4
I(B,C,D)
17
C(B+D)
MD5
라운드
기약함수 g
g(b,c,d)
1
F(B,C,D)
(BC)+(B D)
2
G(B,C,D)
(BD)+(CD)
3
H(B,C,D)
BCD
4
I(B,C,D)
C(B+D)
BCD
FGHI
000
001
010
011
100
101
110
111
0001
1010
0110
1001
0011
0101
1100
1110
18
SHA 알고리즘
Secure Hash Algorithm

NIST(National Institute of Standards and
Technology)에서 개발

1993년에 표준으로 발표 (FIPS 180)

1995년에 개선된 버전 발표 (FIPS 180-1) SHA-1

해쉬길이: 160 비트(5개의 32 비트 워드)

입력: 264 비트 보다 작은 임의의 크기의 입력
 512비트 단위로 적용
 전체 입력의 크기가 512 비트의 배수가 아니면
padding을 한다.
– 마지막 64 비트에는 실제 크기를 기록한다.
19
SHA 알고리즘
 80 word 입력 생성
20
SHA 알고리즘
 SHA
 서명문
형식
L512비트=N  32비트
서명문 M
100  0
64
448 mod 512
 패딩
패턴 : 1000
: 서명문 길이 표시 상위 32비트와 하위
32비트 교환
 64비트
21
SHA 알고리즘
 512 비트 입력은 80개의 32비트 블록으로 확장
 4 라운드, 라운드 당 20 단계
 5 개의 32 비트 초기 값을 사용

A = 0x67452301

B = 0xefcdab89

C = 0x98badcfe

D = 0x10325476

E = 0xc3d2e1f0
22
SHA 알고리즘
23
SHA 알고리즘
24
SHA-1과 MD5의 차이점
특성
다이제스트
길이
처리의
기본단위
처리 단계수
최대 메시지
크기
MD5
SHA-1
128비트
160비트
512비트
512비트
64(16*4)
80(20*4)
무한대
264
4
25
4
HMAC(Hashed-MAC)
 대칭 블록 암호에 기반한 MAC계산 FIPS PUB 113
(데이터인증)
 암호 해쉬 코드를 이용한 MAC 사용 증가 이유

암호 해쉬 함수가 대칭 블록 암호보다 빠름

암호 해쉬 함수에 대한 라이브러리 코드의 입수 용이

암호 해쉬 함수에 대한 수출 제한 없음
 MD5와 같은 해쉬 함수는 비밀키에 의존하지 않음
=> 비밀키를 기존의 해쉬 알고리즘에 결합
 HMAC : RFC 2104, IP보안을 위한 MAC의무 구현사항
선정(SSL에서 사용)
26
HMAC 설계 목표
 가용한 해쉬 함수를 변경 없이 사용 가능해야 함
 해쉬 함수는 소프트웨어로 구현 가능, 무상입수 용이
 내장 해쉬 함수 교체 용이(해쉬함수의 블랙 박스화)
 성능 저하 없이 해쉬 함수의 원래 성능 계속 유지
 간단한 방법으로 키 조작
 인증 메커니즘의 암호학적 분석 이해가능
27
HMAC 구조
00110110을 b/8번 반복
01011010을 b/8번 반복
28
처리과정
1. b비트 스트링 K+ 생성 : 비밀키 K의 왼쪽에 0을 첨가
2. b비트 블록 Si를 생성 : K+ 와 ipad를 XOR
3. M을 Si 에 추가 : Msg1=[Si||M]
4. 3단계의 Msg1에 해쉬를 적용
5. b비트 블록 S0를 생성 : K+ 와 opad를 XOR
6. 단계 4에서 만들어진 해쉬함수 적용결과에 S0를 추가
7. 6단계의 결과에 해쉬함수를 다시 적용
HMACK(M)=H[(K+ XOR opad)||H(K+ XOR ipad)||M]]
29
HMAC의 안전성
 공격 시나리오
: 공격자는 해쉬 알고리즘과 디폴트 IV를 알고 있음.
그러나 K(비밀키)를 모르기 떄문에 메시지와 코드의 짝을
생성할 수 없음.
->128비트 길이의 해쉬코드 공격을 위해서는 동일한 키로
생성된 264의 블록(273 bit)을 필요로 함

250,000년 동안 키의 변경없이 연속적인 메시지
스트림 조사
 속도가 중요한 경우, 내장 해쉬함수로 SHA-1나
RIPEMD160 보다 MD5 사용이 바람직함.(속도가 빠름)
30
해시 용도
 인증 (HMAC)
 메시지 무결성 (HMAC)
 메시지 지문
 데이터 변조 탐지
 전자서명 효율성
 대칭키 암호가 할 수 있는 어떤 것도 가능
31
온라인 입찰
 앨리스, 밥, 찰리가 입찰자라 하자.
 앨리스는 A, 밥은 B, 찰리는 C 금액으로 입찰
 상호 입찰금이 비밀로 지키질 것을 신뢰하지
못함.

앨리스, 밥, 찰리는 해시 h(A), h(B), h(C)를 제출

모든 해시는 온라인 상에 게시

그리고 A, B, C 를 공개
 해시는 입찰금을 공개하지 않음.(단방향)
 해시 전송후는 입찰금을 변경할 수 없음.(충돌)
32
5장. 해시함수 및 기타
비밀 공유
33
샤미르의 비밀 공유
Y
(X1,Y1)
(X0,Y0)

두 점이 한 선을 결정

(X0,Y0): 앨리스

(X1,Y1): 밥

앨리스와 밥은 비밀 S를 찾기
위해 서로 협조해야만 함
(0,S)
X

실수보다 이산수로 작업

m  n 경우 “n 중의 m” 체계를
만들기 용이
2 중의 2
34
샤미르의 비밀 공유

Y

(X0,Y0)
(X1,Y1)


(X2,Y2)

(0,S)

(X0,Y0) : 앨리스
(X1,Y1) : 밥
(X2,Y2) : 찰리
세 사람 중 두 사람만 협조하면
비밀 S를 찾을 수 있다.
한 사람이 S를 찾을 수는 없다.
“3 중에 2” 체계
X
3 중에 2
35
샤미르의 비밀 공유
Y
(X0,Y0)
(X1,Y1)
(X2,Y2)

(X0,Y0) : 앨리스

(X1,Y1) : 밥

(X2,Y2) : 찰리

3 점이 포물선을 결정

비밀 S를 찾기 위해서는
세명이 모두 협조
(0,S)
X

“3 중에 3” 체계

“4 중에 3” 체계를 만들 수 있나?
3 out of 3
36
정보공유의 예
 조건부 키  키가 어떤 곳에 저장된다는 가정
 키는 법원의 명령에 의해 사용될 수 있다
 키를 저장하는 FBI를 신뢰할 수가 없는 것이
문제
 이 경우 비밀 공유 체계를 사용

세 개의 정부 기관이 있다고 하면

키를 사용하기 위해 적어도 두 개 기관이 협조하도록
할 수 있다
37
정보공유의 예제
대칭키: K
 Point (X0,Y0) : FBI
 Point (X1,Y1) : DoJ
 Point (X2,Y2) : DoC
 키 K를 복구하기 위해서는
3개의 기관 중 2개 이상이
협조해야만 한다.
 한 개의 기관은 K를 복구할
수 없다.

Y
(X0,Y0)
(X1,Y1)
(X2,Y2)
(0,K)
X
38
5장. 해시함수 및 기타
암호학에서 난수
39
난수
 난수는 키를 생산하기 위해 사용되었다

대칭키

RSA: 소수들

디피-헬먼: 비밀 값
 임시로 사용될 때 난수가 사용


가끔은 순서대로 하는 것이 괜찮을 때가 있음.
또 다른 경우는 임시로 사용되는 수가 난수일 필요가
있음.
 난수들은 시뮬레이션, 통계 등의 응용
분야에서도 사용. 그러나 이 때는 “통계적”
난수들이 통상 사용됨.
40
무작위
 진정한 난수는 정의하기 어려움.
 엔트로피가 무작위 측정으로 사용
 “진정한” 무작위 의 좋은 근원

방사능 물질의 붕괴  그러나 핵 컴퓨터는
대중적이지 않음.

H/W 장비  시장에서 가용

용암램프  무질서의 행동에서 무작위 추출
41
5장. 해시함수 및 기타
정보 은닉
42
정보 은닉
 디지털 워터마킹


예제: “투명” 식별자를 자료에 첨가
음악이나 소프트웨어의 불법 배포를 막기
위해 사용
 스테가노그래피

비밀 통로 채널

코보트 채널 형태

예제: 자료를 음악이나 이미지에 은닉
43
워터마크
 “마크”를 데이터에 첨가
 여러 종류의 워터마크

투명  마크가 미디어 내 인지되지 않은 상태

가시  일급비밀 마크

강한  공격 시에도 읽을 수 있는 상태

약한  공격 시에는 손상
44
워터마크
 강하고 투명한 마크- 디지털 음악에 첨가

만약 해적 음악이 인터넷에서 출현하면, 근원지를
추적할 수 있다
 약하고 투명한 마크- 디지털 음성파일에 첨가

만약 워터마크를 읽을 수 없으면, 수신자는
음성파일이 변경되었음을 알 수 있다 (무결성)
 여러 형태의 혼합형들이 사용 될 수 있다

즉, 가시적이며 강하고 투명한 워터 마크
45
워터마크 예제 (1)
 미 지폐에 포함된 워터마크
 우측 부분에 이미지 삽입

지폐를 불빛에 보면 삽입 정보를 볼 수 있음.
46
워터마크 예제 (2)
 투명 워터마크를 사진에 첨가
 1 인치2 전체 사진을 재생하기에 충분한
정보
 만약에 사진이 손상되면, 워터마킹을 읽어
전체 사진을 재생할 수 있다고 주장!
47
스테가노그래피
 헤로도토스에 의하면 (그리스 440BC)

노예의 머리를 면도

메시지를 쓴 후에

머리카락이 자란 후에

메시지 전달을 위해 노예를 보냄

메시지를 읽기 위해 노예 머리를 다시
면도(페르시아의 침공 경고 내용)
 역사적으로 보면, 스테가노그래피가
암호보다 더 많이 사용 되었음!
48