57
1 Chap 9. 해해 해해해해

Chap 9. 해쉬 알고리즘

  • Upload
    inge

  • View
    75

  • Download
    7

Embed Size (px)

DESCRIPTION

Chap 9. 해쉬 알고리즘. 1. MD5 메시지 다이제스트 알고리즘. MIT 의 Ron Rivest 에 의해 개발됨 MD5 입력 : 임의의 길이의 메시지 출력 : 128비트 메시지 다이제스트 입력처리 : 512비트 불록단위로 처리. Mess. Length (K mod 2^64). 512. 512. 512. 512. Padding (1 to 512 bits). L*512 bits = N * 32 bits. K bits. Message. 100…0. Y 0. Y 1. Y q. - PowerPoint PPT Presentation

Citation preview

Page 1: Chap 9.  해쉬 알고리즘

1

Chap 9. 해쉬 알고리즘

Page 2: Chap 9.  해쉬 알고리즘

2

1. MD5 메시지 다이제스트 알고리즘 MIT 의 Ron Rivest 에 의해 개발됨 MD5

– 입력 : 임의의 길이의 메시지– 출력 : 128 비트 메시지 다이제스트– 입력처리 : 512 비트 불록단위로 처리

Page 3: Chap 9.  해쉬 알고리즘

3

Message 100…0

K bitsL*512 bits = N * 32 bits

Y0 Y1 Yq YL-1

512 512 512 512

HMD5 HMD5 HMD5 HMD5IV

CV1 CVq CVL-1

Digest

512 512 512 512

128128128128

Padding (1 to 512 bits)

Mess. Length(K mod 2^64)

Page 4: Chap 9.  해쉬 알고리즘

4

단계 1 : 패딩 비트의 부가하나의 ‘ 1’ 비트 뒤에 필요한 개수의 ‘ 0’ 비트들을 붙여서 구성

단계 2 : 메시지 길이의 부가512 비트의 정수배가 되도록 메시지 길이 구성

단계 3 : MD 버퍼의 초기화Little endian 형태로 4 개의 레지스터에 1 부터 값을

초기화 단계 4 : 512 비트 (16 단어 ) 블록의 메시지 처리

4 개의 라운드로 구성된 압축함수 모듈 통과

Page 5: Chap 9.  해쉬 알고리즘

5

F, T[1…16], X[i]

+

CVq

A B C D

G, T[17…32], X[p2i]A B C D

H, T[33…48], X[p3i]A B C D

I, T[49…64], X[p4i]A B C D

+ + +

Yq

512

CVq+1

12832

16steps

16steps

16steps

16steps

Addition is mod 2^32

Page 6: Chap 9.  해쉬 알고리즘

6

– 입력 : 128 비트 버퍼 값 ABCD– 각 라운드 : 사인함수로 구성되는 T[1..64] 의 ¼ 사용– T 의 i 번째 요소는 2^32 * abs(sin(i)) 의 정수부분과

일치하는 값• i 는 라디안• Abs(sin(i)) : 0 과 1 사이의 값• T 의 각 요소는 32 비트 정수• 테이블은 347 페이지 표 9.1 참조

– 네번째 라운드의 출력은 첫번째 라운드의 입력이었던 CVq와 더해져서 CVq+1 생성

단계 5 : 출력

Page 7: Chap 9.  해쉬 알고리즘

7

MD5 의 과정요약CV = IVCVq+1 = SUM32(CVq, RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]])

MD = CVL

– IV : 3 단계에서 정의된 ABCD 초기 버퍼값– Yq : 메시지의 q 번째 512 비트 블록– L : 메시지의 블록수– CVq : 메시지의 q 번째 블록과 함께 처리되는 체인변수

– RFx : 기약 논리 함수 x 를 사용하는 라운드 함수– MD : 최종 메시지 다이제스트 값– SUM32 : 입력 쌍의 각 단어에 제각기 수행되는 법 2^32 덧셈

Page 8: Chap 9.  해쉬 알고리즘

8

MD5 압축 함수

각 단계의 형식은 다음과 같다a <- b + ((a + g(b,c,d) + X[k] + T[i]) <<< s)

– a,b,c,d : 버퍼의 4 단어 , 단계에 따라 상이한 순서로 되어있음

– g : 기약함수 F,G,H,I 중의 하나– <<< s : s 비트에 의한 32 비트 매개변수의 순환좌측쉬프트– X[k] : 메시지의 q 번째 512 비트 블록 중에서 k 번째 32

비트단어– T[i] : 매트릭스 T 에서 i 번째 32 비트 단어– + : 법 2^32 덧셈

Page 9: Chap 9.  해쉬 알고리즘

9

라운드 기약함수 g g(b,c,d)

1 F(b,c,d) (bc)(bc)

2 G(b,c,d) (bd)(cd)

3 H(b,c,d) bcd

4 I(b,c,d) c(bd)

+

A B C D

+

+

CLSs

+

g

X[k]

T[i]

A B C D

Page 10: Chap 9.  해쉬 알고리즘

10

MD4

MD4 는 MD5 의 이전버전 MD4 의 목적

– 안전성 : 해쉬코드에 대한 일반적인 요구사항– 속도 : 빠른 시행에 적합 -> 32 비트 구조로 연산– 단순성과 간결성 : 프로그램과 표현이 단순– Little-endian 구조의 선호

Page 11: Chap 9.  해쉬 알고리즘

11

MD4 vs MD5

라운드– MD4 : 16 단계의 3 라운드– MD5 : 16 단계의 4 라운드

덧셈– MD4 는 첫번째 라운드에서 덧셈 사용 않고 , 두번째

라운드에서 각 단계에서 같은 덧셈상수 사용 , 세번째 라운드에서 각 단계에 서로 다른 덧셈 상수 사용

– MD5 는 64 단계의 각각에 다른 덧셈 상수 T[I] 사용 논리함수

– MD4 : 각라운드에 한번씩 3 개의 기약 함수 사용– MD5 : 각 라운드에서 한번씩 4 개의 기약 논리 함수 사용

이전 단계와의 연결– MD5 : 이전 단계의 결과의 데이터 이용 => 더 큰 쇄도효과

Page 12: Chap 9.  해쉬 알고리즘

12

디지털 서명 과 인증 디지털 서명 과 인증 프로토콜프로토콜

Page 13: Chap 9.  해쉬 알고리즘

13

목 차1. 1. 디지털 서명 개요디지털 서명 개요

2. 2. 직접적 디지털 서명직접적 디지털 서명

3. 3. 중재된 디지털 서명중재된 디지털 서명

Page 14: Chap 9.  해쉬 알고리즘

14

암호학적 점검값의 기본 사용 예

M || E D M C

C

K1

K1

K2 K2

CK1(M)

EK2[M || CK1

(M)]

비교

Page 15: Chap 9.  해쉬 알고리즘

15

1. 디지털 서명

적용 예– 전자식 자금 전달의 경우

• 수신자 : 1. 전달된 자금의 양을 증가

2. 송신자로부터 해당 금액이 왔다고 주장

– 주식 매매 요청의 경우• 송신자 : 1. 단말기를 통해 주식 매매 요청

2. 주식 값이 하락

3. 자신이 요청을 한 적이 없다고 주장

송신자와 수신자의 완벽한 신뢰가 없는

상황에서 인증 이상의 어떤 것이 필요

송신자와 수신자의 완벽한 신뢰가 없는

상황에서 인증 이상의 어떤 것이 필요디지털 서명디지털 서명

해 결 책

Page 16: Chap 9.  해쉬 알고리즘

16

1. 디지털 서명

배경

1) 종이 문서 사회에서 정보화 사회로의 진전으로 다양한 서비스 요구

2) 데이타 무결성 및 사용자 인증 서비스가 필수적

정의 – 공개키 암호화를 사용하여 구현하며 , 보낸 사람과 메시지를 연결하는

방법을 제공하고 , 구매시 사이버스페이스에서 서명하는 것이다 .

목적– 신뢰성 확보 ( 내용의 위 · 변조 및 신분 확인에 사용 )

Page 17: Chap 9.  해쉬 알고리즘

그 서명의 저자와 날짜와 시간을 확인할 수 있어야 한다 .

서명할 때의 내용을 인증할 수 있어야 한다 .

서명은 분쟁을 해결하기 위해서 , 제 3 자에 의해서 확인할 수 있어야 한다 .

디지털 서명 특징

Page 18: Chap 9.  해쉬 알고리즘

18

서명은 서명되는 메시지에 의존하는 비트 형태이어야 한다 .

서명은 위조와 부인을 방지하기 위해서 송신자에 대한 유일한 어떤

정보를 이용해야만 한다 .

디지털 서명을 만들기가 비교적 쉬워야 한다 .

디지털 서명을 인식하고 확인하기가 쉬워야 한다 .

기존의 디지털 서명에 대한 새로운 메시지를 구성하거나 또는 주어진 메시지에 대한 거짓 디지털

서명을 구성함으로써 디지털 서명을 위조하는 것이 계산적으로 실행 불가능해야 한다 .

기억장소에 디지털 서명의 복사본을 유지하는 것이 실용적이어야 한다 .

디지털 서명 요구 조건

Page 19: Chap 9.  해쉬 알고리즘

19

2. 직접적 디지털 서명

오직 통신하는 상대방 ( 출신 , 목적지 ) 만을 포함

직접적 디지털 서명 방식– 송신자의 개인키를 가지고 전체 메시지를 암호화– 송신자의 개인키를 가지고 메시지의 해쉬 코드를 암호화

비밀성을 위해– 수신자의 공개키 또는 공유 비밀키를 가지고 서명된 메시지를

암호화

단점– 구조의 정당성은 송신자의 개인키에 달려 있음– 송신자가 개인키를 분실 , 도난 당했다고 주장이 가능

Page 20: Chap 9.  해쉬 알고리즘

20

메시지 암호화의 기본 사용법

MM E D

KRa

EKRa(M)Authentication and signature

KUa

Page 21: Chap 9.  해쉬 알고리즘

21

3. 중재된 디지털 서명 기법

관용 암호 방식 (1)– 중재자에게 메시지 노출– Alice 와 Carol 간에 비밀키 공유 : KCA

– Carol 과 Bob 간에 비밀키 공유 : KCB

3.EKCB[IDA || M || EKCA

[IDA || H(M) || T]1. M || EKCA[IDA || H(M)]

2. Verification

Alice Bob

Carol

Page 22: Chap 9.  해쉬 알고리즘

22

– Bob 은 Alice 의 서명을 직접 검사할 수 없다 .

– 서명은 분쟁 해결을 위해 존재

– Alice 와 Bob 은 Carol 에게 높은 신뢰를 가지고 있어야

한다 .

• Carol 이 KCA 를 노출 시키지 않는다 .

• EKCA[IDA || H(M)] 형태의 거짓 서명을 만들지 않는다 .

• Bob 은 서명이 A 에 의해서만 만들어졌을 때만 ,

• EKCB[IDA || M || EKCA[IDA || H(M) || T] 를 보낸다는 것을 신뢰

관용 암호 방식 (1)

Page 23: Chap 9.  해쉬 알고리즘

23

관용 암호 방식 (2)

메시지 비밀 유지 Alice 와 Bob 이 비밀키를 공유 : KAB

1. IDA || EKAB[M] || EKAC

[IDA || H(EKAB[M])]

2. Verification

3.EKCB[IDA || EKAB

[M] || EKAC[IDA || H(EKAB

[M]), T]

Alice Bob

Carol

Page 24: Chap 9.  해쉬 알고리즘

24

– 장점

• Carol 은 메시지 내용을 읽을 수 없다 .

• Carol 은 Alice 와 Bob 의 부정을 막을 수 있다 .

– 단점

• Carol 은 Alice 와 함께 서명된 메시지를 부인할 수 있다 .

• Carol 은 Bob 과 함께 Alice 의 서명을 위조할 수 있다 .

관용 암호 방식 (2)

Page 25: Chap 9.  해쉬 알고리즘

25

공개키 암호 방식

메시지 비밀 유지 관용 암호 방식에서 발생할 수 있는 문제점 해결 가능

1. IDA || EKRA[ IDA || EKUB

(EKRA[M])]

2. Verification

3.EKRC[IDA || EKUB

(EKRA[M])], T]

Alice Bob

Carol

Page 26: Chap 9.  해쉬 알고리즘

26

– 장점

• 통신 전에 통신의 상대자간에 공유해야 할 정보가 없다 .

• KRa 가 노출되었다고 할지라도 KRC가 노출되지 않았으면

부정확한 날짜가 매겨진 메시지가 보내질 수 없다 .

• Alice 로부터 Bob 에게 온 메시지의 내용은 Carol 과 다른

모든 사람들에게 있어서 비밀이다 .

공개키 암호 방식

Page 27: Chap 9.  해쉬 알고리즘

인증 프로토콜

Page 28: Chap 9.  해쉬 알고리즘

28

목차

1. 상호인증2. 관용암호방식3. 공개키 암호화 방식4. 일방향 인증5. 관용 암호 방식6. 공개키 암호 방식

Page 29: Chap 9.  해쉬 알고리즘

29

1. 상호 인증 (1)

상호 인증 프로토콜• 신분 확인에 대해 상호 만족시킴• 세션키를 교환할 수 있게 함

인증된 키 교환 문제에 있어서 두 가지 고려할 점

– 기밀성 (confidentiality)

• 신분 위장 방지 : 신원 증명이 필요

• 세션키의 손상 방지 : 암호화 형태로 통신되어야 함

– 적시성 (timeliness)

• 메시지 재전송의 위협 방지

• 메시지 재전송

– 공격자가 세션키를 손상

– 다른 상대방을 흉내

초점 : 키 분배초점 : 키 분배

Page 30: Chap 9.  해쉬 알고리즘

30

1. 상호 인증 (2) 재전송 공격의 예

• 단순 재전송 공격자가 메시지를 단순히 복사하고 후에 재전송하는 것

• 시간 범위 내에서 재전송 공격자는 유효한 시간 윈도우 내에서 타임 스탬프가 있는

메시지를 재전송할 수 있다 .• 발견될 수 없는 재전송

원본 메시지의 사용을 정지시켜서 목적지에 도착하지 않고 오직 재전송 메시지만 도착할 경우에 일어날 수 있다 .

• 수정 없이 역방향 재전송 메시지 송신자에 대한 재전송 반환 . 송신자가 보낸 메시지들과 받은 메시지들 사이의 내용적 차이를 쉽게 알 수 없을 때 가능 .

Page 31: Chap 9.  해쉬 알고리즘

31

1. 상호 인증 (3)

재전송 공격에 대항하기 위한 접근 방법– 각 메시지에 대한 일련 번호 부여– 일련 번호가 적절한 일련 번호일 경우에만 수신– 단점

• 마지막 메시지의 일련 번호 유지 요구

∴인증과 키 교환에 일반적으로 사용하지 않음∴인증과 키 교환에 일반적으로 사용하지 않음

Page 32: Chap 9.  해쉬 알고리즘

32

1. 상호 인증 (4) 일반적인 접근 방법

• 타임 스탬프 (Timestamp) A 는 메시지가 현재 시간에 대하여 충분히 밀접하다고 판단하는 타임스탬프를 포함할 때만 메시지를 선명한 것으로 받아들인다 .

다양한 참가자들 사이에 동기화된 시계를 요구하기 때문에 어렵다 .

• 신청 / 응답 (Challenge/Response)A 는 B 로 부터의 선명한 메시지를 기대B 에게 임시비표 ( 신청 ) 을 보냄B 로 부터 수신되는 메시지 (응답 ) 가 정확한 임시비표

값을 포함 할 것을 요구

Page 33: Chap 9.  해쉬 알고리즘

33

2. 관용 암호 방식 (1) KDC(Key Distribution Center)역할

• 각 통신 주체는 비밀키를 KDC 와 공유한다 .• KDC 는 통신 상대방 사이의 연결에 대한 세션키를 만든다 .• 키 전달 보호를 위해 마스터키를 이용하여 키들을 할당한다 .

Needham 과 Schroeder[NEED78] 프로토콜① A KDC : IDA Ⅱ IDB Ⅱ N1

② KDC A : EKa[Ks Ⅱ IDB Ⅱ N1 Ⅱ EKb [Ks Ⅱ IDA]]③ A B : EKb[KS Ⅱ IDA]④ B A : EKs[N2]⑤ A B : EKs[f(N2)]

이 프로토콜의 목적은 A 와 B 에서 세션키 Ks를 안전하게 배포하는 것이다 .

Page 34: Chap 9.  해쉬 알고리즘

34

2. 관용 암호 방식 (2)

Needham - Schnoeder 방식

1. IDA || IDB || N1

Alice Bob

KDC

2. EKA[KS || IDB || N1 || EKB

[KS || IDA]]

3. EKB[KS || IDA]

4. EKS[N2]

5. EKS[f(N2)]

• 재전송 공격에 대해 여전히 취약

Denning 방식 제안 Denning 방식 제안

Page 35: Chap 9.  해쉬 알고리즘

35

2. 관용 암호 방식 (3) 각 단계 설명 비밀키 Ka 와 Kb 는 각각 A 와 KDC 사이 , B 와 KDC

사이에서 공유된다 . • 1 단계

세션키 요구 메시지를 보냄 전송 내용 - A 와 B 의 신원 , 유일한 식별자

• 2 단계 응답 메시지를 마스터키 Ka 로 암호화하여 전송 전송 내용 - 일회용 세션키 Ks, 1 단계에서 전송 받은 메시지

- B 에게 전송될 메시지를 Kb로 암호화 (EKb[KS Ⅱ IDA])

Page 36: Chap 9.  해쉬 알고리즘

36

2. 관용 암호 방식 (4)• 3 단계

세션키를 저장하고 , EKb[KS Ⅱ IDA] 를 B 에게 전송 Kb로 암호화되었기 때문에 도청 불가능 A 와 B 는 세션키

KS를 공유

• 4 단계 B 는 A 에게 임시비표 N2 를 세션키로 암호화하여 전송

• 5 단계 A 는 B 에게 f(N2) 를 세션키로 암호화하여 전송

목적 : 재전송 공격 방해하기 위해

BUT!! 여전히 재전송 공격에 취약하다 . X 는 과거의 키를 사용하여 단계 3 을 단순히 재전송 함으로써 A

인 체 하고 B 를 속일 수 있다 .

Page 37: Chap 9.  해쉬 알고리즘

37

2. 관용 암호 방식 (5) Denning[DENN81, DENN82] 프로토콜 - 타임 스탬프를 추가함으로써 Needham/Schroeder 프로토콜을 보완

① A KDC : IDA Ⅱ IDB

② KDC A : EKa[Ks Ⅱ IDB Ⅱ T Ⅱ EKb [Ks Ⅱ IDA ⅡT]]

③ A B : EKb[KS Ⅱ IDA ⅡT]

④ B A : EKs[N1]

⑤ A B : EKs[f(N1)]

• 네트워크 전체에 걸쳐서 동기화된 클럭에 대한 신뢰를 요구한다 .• 지연 - 재전송 공격 (suppress-replay attack) 에 취약 .• T 는 A 와 B 에서 세션키가 시간에 적합하게 바로 만들어진

것이라는 것을 보장해주는 역할을 한다

Page 38: Chap 9.  해쉬 알고리즘

38

2. 관용 암호 방식 (6)

Denning 은 단계 2 와 3 에 timestamp 를 추가 가정

– 마스터 키 KA 와 KB 가 안전하다 .

1. IDA || IDB

Alice Bob

KDC

2. EKA[KS || IDB || T || EKB

[KS || IDA || T]]

3. EKB[KS || IDA || T]

4. EKS[N1]

5. EKS[f(N1)]

Page 39: Chap 9.  해쉬 알고리즘

39

2. 관용 암호 방식 (7) [NEUM93a] 프로토콜 - 지연 - 재전송 공격에 강하다 .

① A B : IDA ⅡNa

② B KDC : IDB Ⅱ Nb Ⅱ EKb [IDA Ⅱ Na Ⅱ Tb]]

③ KDC A : EKa[IDB Ⅱ Na Ⅱ Ks Ⅱ Tb] EKb[IDA Ⅱ Ks Ⅱ Tb Ⅱ Nb]

④ A B : EKb[IDA Ⅱ Ks Ⅱ Tb ] EKs[ Nb]

각 단계 설명• 1 단계

인증교환 시작 전송 내용 - 임시비표 Na, 식별자

• 2 단계 B 가 KDC 에게 세션키 요청 전송 내용 - 임시비표 Nb, 식별자 , 비밀키로 암호화된 블록

Page 40: Chap 9.  해쉬 알고리즘

40

2. 관용 암호 방식 (8)

• 3 단계전송 내용 - B 의 임시비표 , B 와 KDC 에 의해 공유되는 비밀키로

암호화한 블록 ( 인증을 위해 ),A 와 KDC 에 의해 공유되는 비밀키로 암호화된 블록

• 4 단계EKs[ Nb] 은 메시지가 A 로 부터 왔고 재전송이 아니라는

것을 인증한다 .

프로토콜에 의해서 설립된 시간 범위 안에서 A 가 B 와의 새로운 세션을 희망한다면 !!!

Page 41: Chap 9.  해쉬 알고리즘

41

3. 공개키 암호화 방식 (1)

각각이 상대방의 현재 공개키를 가지고 있다고 가정 .

[DENN81] 타임 스탬프를 사용하는 프로토콜① A AS : IDA Ⅱ IDB

② AS A : EKRas[IDAⅡ KUaⅡTⅡ EKRas[IDBⅡ KUbⅡT]

③ A B : EKRas[IDAⅡ KUaⅡTⅡ EKRas[IDBⅡ KUbⅡT]Ⅱ EKUb [EKRa

[KsⅡT]]

• AS 는 인증서버로 간주된다 . AS 는 공개키 인증서를 제공한다 .• 간결하지만 앞에서와 같이 클럭의 동기화를 요구한다 .

Page 42: Chap 9.  해쉬 알고리즘

42

3. 공개키 암호화 방식 (2)

1. IDA || IDB

Alice Bob

KDC

2. EKRAuth[IDB || KUB]

3. KUB[NA || IDA]

4. IDA || IDB || EKUAuth[NA]

5. EKRAuth[IDA || KUA] ||

EKUB[NA || KS || IDA || IDB]]

6. EKUA[EKRAuth

[NA || KS || IDA || IDB] || NB ]

7. EKS[NB]

Page 43: Chap 9.  해쉬 알고리즘

43

3. 공개키 암호화 방식 (3)

Woo 와 Lam[WOO92a] 임시비표를 이용한 프로토콜① A KDC : IDA Ⅱ IDB ② KDC A : EKRauth[IDBⅡ KUb]③ A B : EKUb [Na Ⅱ IDA ]④ B KDC : IDB Ⅱ IDA Ⅱ EKUauth[Na ]⑤ KDC B : EKUauth[IDAⅡKUa]ⅡEKUb[EKRauth[NaⅡKsⅡ

IDB]]⑥ B A : EKUa[ EKUauth [NaⅡKsⅡ IDB]ⅡNb] ⑦ A B : EKS [Nb]

각 단계 설명• 1 단계 : A 는 B 와의 연결 의도를 알린다 .• 2 단계 : B 의 공개키 인증서의 복사본을 반송• 3 단계 : A 는 B 에게 통신 요청 , 임시비표를 보낸다

Page 44: Chap 9.  해쉬 알고리즘

44

3. 공개키 암호화 방식 (4)

• 4 단계 : B 는 KDC 에게 A 의 공캐키 인증서를 요구 , 세션키를 요구

• 5 단계 : A 의 공개키 인증서 사본 , 정보 [ NaⅡKsⅡ IDB ] 를 반송

• 6 단계 : [ NaⅡKsⅡ IDB ] 은 KDC 의 개인키로 암호화한 상태로 Nb 와 함께 A 에게 중계

• 7 단계 : 세션키에 대한 A 의 지식을 B 에게 보증

위 프로토콜의 개선된 버전• A 의 식별자 IDa 가 단계 5 와 6 에서 KDC 의 개인키로

암호화된 항목들의 집합에 추가된다 .• IDa 의 포함은 A 에 의해서 만들어진 모든

임시비표중에서만 유일한것이다 .

Page 45: Chap 9.  해쉬 알고리즘

45

4. 일방향 인증 (1) 수신자는 메시지가 합법적 송신자로부터 왔다는 보장을 요구 관용 암호 방식

대표적인 예…… 전자 우편 (e-mail)

요구사항• 우편처리 시스템이 복호키를 가지고 있지 않아도 되는 범위에서 전자우편

메시지가 암호화되어야 한다 .• 수신측은 메시지가 합법적 송신자로부터 왔다는 것의 어떤 보장을 원한다 .

( 인증 )

Page 46: Chap 9.  해쉬 알고리즘

46

4. 일방향 인증 (2)

Alice Bob

KDC

1. IDA || IDB || N1

2. EKA[KS || IDB || N1 || EKB

[KS || IDA]]

3. EKB[KS, IDA] || EKS

(M)

• 메시지의 의도된 수신자만이 해당 메시지를 읽을 수 있다는 것을 보증• 메시지 재전송 공격에 취약

Page 47: Chap 9.  해쉬 알고리즘

47

5. 관용 암호 방식 암호화된 전자우편 ( 개선된 KDC 전략 ) A, B 동시에 온라인 일 수 없기 때문에 앞의 암호화된 전자우편과 같이 4 번과 5 번을 제외 삭제

된다 .① A KDC : IDA Ⅱ IDB Ⅱ N1

② KDC A : EKa[Ks Ⅱ IDB Ⅱ N1 Ⅱ EKb Ⅱ [Ks Ⅱ IDA]]

③ A B : EKb[Ks Ⅱ IDA]ⅡEKs[M]

의도된 수신자만이 메시지를 읽을 수 있다는 것을 보증한다 .

Page 48: Chap 9.  해쉬 알고리즘

48

6. 공개키 암호화 방식 (1) 비밀성이 주요 관심이라면

오직 B 만이 복호 할 수 있다 .

인증이 주요 관심이라면 ( 디지털 서명 만족 )

A 가 메시지를 보냈다는 것을 부인할 수 없다 .

A B : EKUB(KS) || EKS

(M)A B : EKUB(KS) || EKS

(M)

A B : M || EKRA(H(M))A B : M || EKRA

(H(M))

Page 49: Chap 9.  해쉬 알고리즘

49

공개키 암호화 방식 (2)

메시지와 서명 둘 다 만족 ( 수신자의 공개키로 암호화 )

디지털 인증서 ( 시기적으로 적절하다는 확신이 요구 됨 )

A B : EKUB(M || EKRA

(H(M)))A B : EKUB(M || EKRA

(H(M)))

A B : M || EKRA[H(M)] || EKRAS

(T || IDA || KUA)A B : M || EKRA[H(M)] || EKRAS

(T || IDA || KUA)

Page 50: Chap 9.  해쉬 알고리즘

디지털 서명의 표준

Page 51: Chap 9.  해쉬 알고리즘

51

10.3 디지털 서명의 표준◈ DSS (Digital Signature Standards)

♦ 1991년 미국 NIST 에서 표준안으로 개발

♦ 안전한 해쉬 알고리즘을 사용하면서 새로운 디지털 서명기술 즉 , 디지털 서명 알고리즘을 나타냄 ♦ 디지털 서명 기술을 제공하기 위해 설계된 알고리즘 사용 ( 암호화나 키 교환에 사용되지 않음 ) ♦ 공개키 기반의 알고리즘

♦ 이산대수의 어려움에 기반을 둔 알고리즘

Page 52: Chap 9.  해쉬 알고리즘

52

DSS 접근법 비교 ◈ RSA 접근방식

♦ 서명되는메시지는 고정된 길이의 비밀 해쉬코드를 생성하는 해쉬함수 입력 ♦ 해쉬코드는 서명을 형성하기 위해 송신자의 개인키를 사용 하여 암호화

♦ 수신자는 메시지를 받고 해쉬코드를 생성

♦ 수신자는 송신자의 공개키를 사용하여 서명을 복호화

♦ 계산된 해쉬코드가 복호화된 서명과 일치한다면 서명은 유효한 것으로 인정

Page 53: Chap 9.  해쉬 알고리즘

53

DSS 접근법 비교

◈ DSS 접근 방식♦ RSA 와는 달리 해쉬코드는 특정한 서명을 위해 생성된

K와 함께 서명함수 (Sig) 에 입력으로서 제공 ♦ 송신자의 개인키와 전체적인 공개키 ( 통신 주체의 집단에 알 려진 매개변수의 집합 ) 도서명함수의 입력요소 ♦ 서명함수의 결과는 s와 r 로 표시된 두개의 요소로 구성 ♦ 수신자는 메시지의 해쉬코드 생성 이것은 서명과 함께 확인함수의 입력이됨 ♦ 확인함수는 송신자의 공개키와 전체적인 공개키에 의존 ♦ 확인함수의 출력은 서명이 유효하다면 서명구성요소 r 과같음 ♦ 서명함수는 개인키에 대해 알고 있는 송신자만이 유효한 서명을 생성할수 있음

Page 54: Chap 9.  해쉬 알고리즘

54

DSS 접근법 비교

M

H E

| | MH

D

비교

EKRa[H(M)]

KRa KUa

M

H Sig

| | Ms

H

Ver 비교KUG KRa

KUG

k

rKUa

RSA

DSA

Page 55: Chap 9.  해쉬 알고리즘

55

DSA (Digital Signature Algorlthm)

준비과정

◈ 모든 사용자 집단에 공통적으로 사용되는 세개의 매개변수

♦ 160 비트 길이의 소수 q 선택

♦ 512 ~ 1024 비트 사이의 소수 p 선택

♦ g = h (p-1)/q mod p ( 1<h<(p-1) )

◈ 비밀키 선택 , 공개키 생성

♦ 랜덤한 비밀키 x 선택 (0<x<q) ♦ 공개키 y 계산 y=gx mod p

Page 56: Chap 9.  해쉬 알고리즘

56

DSA (Digital Signature Algorlthm)

서명 과정

◈ 메시지별 비밀번호 k 를 랜덤하게 생성 (0<k<q)

◈ 서명 ♦ r=(gk mod p) mod q ♦ s=[k-1(H(M)+xr)] mod q ♦ Signature = (r, s)

M H f1

x qk

f2

p q g

s

r

Page 57: Chap 9.  해쉬 알고리즘

57

DSA (Digital Signature Algorlthm)

확인과정

◈ 확인w=s-1 mod qu1=[(H(M)w)] mod qu2= rw mod qv=[(gu1 yu2) mod p] mod qTEST : v = r

M

s

H

f3

비교

r

f4 q

y q g