th network security essentialslily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호...

94
NETWORK SECURITY 네트워크 보안 에센셜 ESSENTIALS 4 th EDITION

Upload: others

Post on 19-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

NETWORK SECURITY

네트워크 보안 에센셜

ESSENTIALS

4th EDITION

Page 2: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.1 메시지 인증 방법

3.2 안전 해시함수

3.3 메시지 인증 코드

3.4 공개키 암호 원리

3.5 공개키 암호 알고리즘

3.6 디지털 서명

제3장 공개키 암호와 메시지 인증

Page 3: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.1 메시지 인증 방법

• 근원지 인증

• 메시지 인증

3

Page 4: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

관용 암호를 이용한 인증

• 송신자와 수신자가 동일한 키를 가지고 있다고 가정

• 오직 진짜 송신자만이 수신자에게 보내는 메시지를 성공적으로 암호화할 수 있다.

4

Page 5: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

메시지 암호화 없는 메시지인증

• 인증 꼬리표(authentication tag) 붙여 보내기

• 메시지 자체는 암호화 하지 않고 전송

• 기밀성 보장 없음

5

Page 6: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

메시지 암호 없는 메시지인증

• 브로드캐스팅: 네트워크 경고

• 메시지 복호화 시간이 부족할 때

• 컴퓨터 프로그램은 평문인 채로 인증하는 게 더 편리

6

Page 7: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

메시지 인증코드

7

Page 8: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

메시지 인증코드를 이용한 메시지인증

8

Page 9: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

일방향 해시함수

• 일방향 해시함수(one-way hash function)

• 해시=H(M)

– H: 해시함수

– M: 메시지

• 키가 필요 없음

9

Page 10: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

메시지 인증방법

• 관용암호 사용 방법

• 공개키 암호 사용 방법

• 비밀값 사용 방법

10

Page 11: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

관용암호 사용 메시지 인증

11

Page 12: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키암호 사용 메시지 인증

12

Page 13: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

비밀값 사용 메시지 인증

13

Page 14: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

암호화 없는 메시지인증 이유

• 암호 소프트웨어의 느린 속도

• 고가의 암호 장비비용

• 암호 장비는 대용량 데이터처리에 적합

– 작은 데이터처리에 오버헤드 발생

• 암호 알고리즘 수출제약

14

Page 15: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.2 안전 해시함수

• 해시함수용도

– 메시지 인증

– 디지털 서명

• 안전한 해시함수 필수조건

• SHA(Secure Hash Algorithm)

• 파일, 메시지, 데이터 블록에 대한‘지문(fingerprint)’을 생성

15

Page 16: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

해시 함수 요건

1. 임의 크기의 데이터 블록에 적용

2. 일정한 길이의 출력

3. 계산 용이성과 구현 가능성

4. 일방향 성질(one-way property)

5. 약한 충돌 저항성(weak collision resistance)

6. 강한 충돌 저항성(strong collision resistance)

16

Page 17: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

일 방향 성질

17

Page 18: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

약한 충돌 저항성

18

Page 19: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

약한 충돌성이 없는 해시사용시 위험

• 메시지와 암호화된 해시코드 가로채기

• 메시지로부터 암호화되지 않은 해시코드 생성

• 동일한 해시코드를 갖는 변조된 메시지를 생성

19

Page 20: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

강한 충돌 저항성

20

Page 21: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

메시지 다이제스트 역할

• 인증

• 무결성도 제공

21

Page 22: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

해시함수 보안

22

Page 23: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

단순 해시 함수

23

Page 24: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

비트별 XOR 단순 해시 함수

24

Page 25: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

단순 해시 취약점 해결

25

Page 26: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

단순 XOR과 CBC 모드 사용의 약점

26

Page 27: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

27

Page 28: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

SHA 안전 해시 함수

• 1993년에 FIPS PUB 180

• SHA-1 – 1995년에 FIPS PUB 180-1: MD4 해시 함수에

기초, 설계: MD4를 모델

• SHA-2 – SHA-256, SHA-384, SHA-512

• SHA-3: – 2008년에 수정된 문서가 FIP PUB 180-3

– SHA-224

28

Page 29: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

SHA 매개변수 비교

29

Page 30: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

SHA-512

• 입력메시지 크기

– 최대 길이가 2128 비트 이하인 메시지

• 출력

– 512비트 해시

• 처리 단위

– 1024비트 블록

30

Page 31: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

SHA-512 처리 단계

• 단계 1: 패딩 비트 붙이기(Appending padding bits)

• 단계 2: 길이 붙이기(Append length)

• 단계 3: MD 버퍼 초기화(Initialize MD buffer)

• 단계 4: 1024-비트 블록 메시지 처리(Process message in 1024-bit blocks)

• 단계 5: 출력(Output)

31

Page 32: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

패딩 비트 붙이기

• 총 길이를 896 (mod 1024)가 되게 만든다

• 메지시 길이가 1024의 배수이어도 패딩을 추가

• 패딩을 구성하는 비트는 첫 번째 비트가 1 이고 나머지 비트는 모두 0

32

Page 33: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

• 메시지 길이가 1010일 때 패딩을 구성해보아라

33

Page 34: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

길이 붙이기

• 128 비트 블록을 메시지에 추가

34

Page 35: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

SHA-512를 사용하는 메시지 다이제스트 생성

35

Page 36: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

MD 버퍼 초기화

• 512-비트 버퍼를 해시함수의 중간 값과 최종 값을 저장하기 위해 사용

• 버퍼를 8 개의 64-비트 레지스터(a, b, c, d, e, f, g, h)로 나타낸다

a = 6A09E667F3BCC908 e = 510E527FADE682D1

b = BB67AE8584CAA73B f = 9B05688CEB3E6C1F

c = 3C6EF372FE94F82B g = 1F83D9ABFB41BD6B

d = A54FF53A5F1D36F1 h = 5BE0CDI9137E2179

36

Page 37: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

SHA-512를 이용한 메시지

다이제스트 생성

37

Page 38: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

1024-비트(128-워드)블록 메시지 처리

• 각 라운드가 80 라운드

– 512-비트 버퍼 값인 abcdefgh를 입력으로 사용하고 이 버퍼의 내용을 갱신

38

Page 39: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

출력

• N 개의 1024-비트 블록 모두가 처리된 뒤에 N 번째 단계에서 512-비트 메시지 다이제스트를 출력

39

Page 40: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.3 메시지 인증 코드

40

Page 41: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

HMAC

• 암호적 해시코드를 이용한 MAC 방법

• 키를 사용하는 HASH

• HMAC(hashed MAC)

– IP Security 용 필수 MAC

– TLS 프로토콜에서 사용

– SET(Secure Electronic Transaction) 프로토콜에서도 사용

41

Page 42: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

HMAC의 필요성

• 빠른 속도 – 암호적 해시함수는 일반적으로 관용암호 알고리

즘인 DES에 비해 소프트웨어에서 빠르게 실행

• 코드 획득 용이 – 암호적 해시함수에 대한 코드를 쉽게 구할 수 있

다.

• 수출규제 없음 – 관용암호 알고리즘이나 MAC에서 사용하는 관용

암호 알고리즘까지 수출 규제 – 암호적 해시함수에 대해 미국이나 다른 나라가 수

출규제 없음

42

Page 43: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

HMAC 설계 목표

• 수정하지 않고 쓸 수 있는 해시함수 – 특히 소프트웨어에서 잘 돌아가고 무료코드 제공

• 모듈형 – 더 빠르고 안전 해시함수로 교환 가능

• 기능저하 없이 해시함수의 원래 성능을 유지 • 용이한 키 처리 • 인증메커니즘의 투명성

– 내장된 해시함수를 통한 인증 메커니즘의 강도를 확실히 파악

– 암호해독을 확실히 파악

43

Page 44: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

HMAC 알고리즘

• H =내장된 해시함수(예를 들면 SHA-1) • M =HMAC의 입력 메시지(내장된 해시함수에 필요한 패딩까

지 포함해서) • Yi =M 의 i 번째 블록, 0≤ i ≤(L-1) • L =M 의 블록 수 • b =블록의 비트 수 • n =내장된 해시함수에 의해 생성된 해시코드의 길이 • K =비밀키, 키의 길이가 b 보다 길면 n-비트 키를 생성하는

해시함수에 입력으로 사용된다. • K+ =K 의 왼쪽에 0을 붙여서 길이가 b 비트가 되도록 한 것 • ipad =00110110(16진법수 36)를 b/8 번 반복한 2진 수열 • opad =01011100(16진법수 5C)를 b/8 번 반복한 2진 수열

44

Page 45: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

HMAC 알고리즘

HMACK(M) =H[(K+ ⨁ opad)‖H[(K+ ⨁ ipad)‖M]]

45

Page 46: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

HMAC 구조

46

Page 47: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

블록 암호 기반 MAC

• 암호-기반 메시지 인증 코드코드(Cipher-based Message Authentication Code(CMAC))

• 운용모드: – AES: b=128 – 3DES: b=64

• 메시지: n개 블록: M1,M2,…, Mn • k-비트 암호키 K

– AES: 128, 192, 256비트 – 3DES: 112, 168비트

• n-비트 키 K1

47

Page 48: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

CMAC 계산 C1 = E(K, M1)

C2 = E(K, [M2 ⨁ C1])

C3 = E(K, [M3 ⨁ C2])

Cn = E(K, [MN ⨁ Cn-1 ⨁ K1])

T = MSBTlen(Cn)

여기서

T = 메시지 인증 코드, 또는‘태그(tag)’라고도 한다.

Tlen = T의 비트 길이

MSBs(X) = 비트열 X의 왼쪽부터 s개 비트

48

Page 49: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

암호-기반 메시지 인증 코드(CMAC) (메시지길이가 블록길이의 정수배)

49

Page 50: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

암호-기반 메시지 인증 코드(CMAC) (메시지길이가 블록길이의 정수배 아님)

50

Page 51: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

암호블록체인카운터-메시지인증코드 (인증)

51

Page 52: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

암호블록체인카운터-메시지인증코드 (암호화)

52

Page 53: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.4 공개키 암호 원리

• 공개키 암호의 기본 개념

• 키 분배(key distribution) 문제

• RSA 알고리즘

• Diffie-Hellman 알고리즘

• 디지털 서명

53

Page 54: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호 구조

• 1976년에 Diffie 와 Hellman 에 의해 최초로 제안

• 수학적 함수에 근거

• 서로 다른 두 개의 키를 이용하는 비대칭 방식

• 기밀성, 키 분배, 인증에서 뛰어난 성능

54

Page 55: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호에 대한 오해

• 공개키 암호가 관용 암호보다 암호해독에 있어서 더 안전하다(X)

• 공개키 암호 기술이 일반화 되어 관용 암호를 더 이상 사용하지 않게 된다(X)

• 관용 암호의 키 분배보다 공개키를 사용하는 키 분배가 더 쉽다(X)

55

Page 56: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호 핵심 요소

• 평문(Plaintext):

• 암호 알고리즘(Encryption algorithm):

• 공개키와 개인키(Public and private key):

• 암호문(Ciphertext):

• 복호 알고리즘(Decryption algorithm):

56

Page 57: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키로 암호화하기

57

Page 58: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

개인키로 암호화하기

58

Page 59: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호의 특성

• 한 쌍의 키 필요

– 하나는 메시지 암호화에 사용하고 다른 하나는 복호화에 사용

• 공개키를 등록

– 공개키와 한 쌍을 이루는 키는 개인키

• 메시지 암호화는 수신자 공개키로 암호화

• 암호문은 수신자의 개인키로 복호화

59

Page 60: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

키 명칭

• 대칭암호(관용암호)

– 비밀키(secret key)

• 공개키암호(비대칭 암호)

– 공개키(public key)

– 개인키(private key)

60

Page 61: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호시스템 응용

61

Page 62: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호의 응용

• 암호화/복호화(Encryption/decryption):

– 수신자의 공개키로 메시지 암호화

• 디지털 서명(Digital signature):

– 송신자 자신의 개인키로 메시지 암호화(서명).

• 키 교환(Key exchange):

– 세션 키를 교환(공유)한다

62

Page 63: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호 요건

63

Page 64: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공개키 암호 요건

64

Page 65: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.5 공개키 암호 알고리즘

• RSA

• Diffie-Hellman 알고리즘

• 디지털 서명 표준

• 타원곡선암호

65

Page 66: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 공개키 암호 알고리즘

66

Page 67: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA

• 송신자와 수신자 모두는 𝑛 과 𝑒 를 알고 있어야 하고, 오직 수신자만이 𝑑 값을 알고 있어야 한다.

• 공개키 𝑃𝑈 = {𝑒, 𝑛}

• 개인키 𝑃𝑅 = {𝑑, 𝑛}

67

Page 68: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 공개키 암호 요구 조건

1. 𝑛 보다 작은 모든 정수 𝑀 에 대해서 𝑀 = 𝑀𝑒𝑑 𝑚𝑜𝑑 𝑛 을 만족하는 값 𝑒, 𝑑, 𝑛 을구할 수 있어야 한다.

2. 𝑛 보다 작은 모든 정수 𝑀 에 대해서 𝑀𝑒와 𝐶𝑑를 구하는 것이 비교적 쉬워야 한다.

3. 𝑒 와 𝑛 이 주어졌을 때 𝑑 를 구하는 것이 불가능해야 한다.

68

Page 69: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 알고리즘(키 생성)

𝜙(𝑛): 오일러(Euler) 함수로서 𝑛 보다 작으면서 𝑛 과 서로소인 양의 정수의 개수를 나타낸다.

69

Page 70: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 알고리즘(암호화/복호화)

70

Page 71: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 알고리즘 예

1. 두 소수 𝑝 = 17과 𝑞 = 11을 선택한다. 2. 𝑛 = 𝑝𝑞 = 17 × 11 = 187을 계산한다. 3. 𝜙(𝑛) = (𝑝 − 1)(𝑞 − 1) = 16 × 10 = 160을 계산한다. 4. 𝜙(𝑛) = 160보다 작으면서 𝜙(𝑛) 과 서로소인 수 𝑒 를 선택한

다. 여기서는 𝑒 = 7을 선택한다. 5. 𝑑<160이면서 𝑑𝑒 𝑚𝑜𝑑 160 = 1인 수 𝑑 를 결정한다. 여기에

적합한 수는 𝑑 = 23이다. 왜냐하면 23 × 7 = 161 = 1 ×160 + 1이기 때문이다.

71

Page 72: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 알고리즘 예

• 공개키:𝑃𝑈 = {7,187}

• 개인키:𝑃𝑅 = {23,187}

• 평문 𝑀 = 88을 암호화 해보자

𝐶 = 887 𝑚𝑜𝑑 187을 계산

72

Page 73: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

암호화 단계

• 887 𝑚𝑜𝑑 187 = [(884 𝑚𝑜𝑑 187) × (882 𝑚𝑜𝑑 187) ×(881 𝑚𝑜𝑑 187)] 𝑚𝑜𝑑 187

• 881 𝑚𝑜𝑑 187 = 88

• 882 𝑚𝑜𝑑 187 = 7744 𝑚𝑜𝑑 187 = 77

• 884 𝑚𝑜𝑑 187 = 59,969,536 𝑚𝑜𝑑 187 = 132

• 887 𝑚𝑜𝑑 187 = (88 × 77 × 132) 𝑚𝑜𝑑 187 = 894,432 𝑚𝑜𝑑 187 = 11

73

Page 74: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

복호화

• 복호화

𝑀 = 1123 𝑚𝑜𝑑 187를 계산

74

Page 75: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

복호화 단계

• 1123 𝑚𝑜𝑑 187 = [(111 𝑚𝑜𝑑 187) × (112 𝑚𝑜𝑑 187) ×(114 𝑚𝑜𝑑 187) × (118 𝑚𝑜𝑑 187) ×(118 𝑚𝑜𝑑 187)] 𝑚𝑜𝑑 187

• 111 𝑚𝑜𝑑 187 = 11

• 112 𝑚𝑜𝑑 187 = 121

• 114 𝑚𝑜𝑑 187 = 14,641 𝑚𝑜𝑑 187 = 55

• 118 𝑚𝑜𝑑 187 = 214,358,881 𝑚𝑜𝑑 187 = 33

• 1123 𝑚𝑜𝑑 187 = (11 × 121 × 55 × 33 × 33) 𝑚𝑜𝑑 187 = 79,720,245 𝑚𝑜𝑑 187 = 88

75

Page 76: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

RSA 알고리즘을 깨는 방법

• 전수공격

– 가능한 모든 개인키를 시도

– 𝑒와 𝑑의 비트 수가 크면 클수록 알고리즘은 안전

• 𝑛을 두 개의 소인수의 곱으로 인수분해

– 효과적 인수분해 방법 없음

– 대부분의 RSA 응용에 1024-비트 키(대략 300자리 10진수)를 사용하고 있어서 충분히 안전

76

Page 77: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie-Hellman 키교환

• Diffie-Hellman 키교환(key exchange)

• 두 사용자가 비밀키(대칭키)를 안전하게 교환해서 메시지를 암호화하려는 목적

• 이산 대수 문제(discrete logarithms problem)를 푸는 것이 어렵다는 데 근거

77

Page 78: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

이산대수문제

• 소수 𝑝의 원시근(primitive root)

– 자신의 거듭제곱을 이용하면 1부터 𝑝 − 1까지의 정수를 모두 생성해 낼 수 있는 수

– 어떤 수 𝑎가 소수 𝑝의 한 원시근 이라면, 다음 수

𝑎 mod 𝑝, 𝑎2 mod 𝑝, … , 𝑎𝑝−1mod 𝑝

은 서로 다르고 정수 1부터 𝑝 − 1까지의 수를 치환해놓은 것과 같다.

78

Page 79: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

이산대수문제

• 𝑝보다 작은 임의의 정수 𝑏와 𝑝의 원시근 𝑎에 대해서 다음을 만족하는 유일한 지수 𝑖를 찾을 수 있다.

𝑏 = 𝑎𝑖mod 𝑝, 여기서 0 ≤ 𝑖 ≤ 𝑝 − 1

• 여기에서 지수(exponent) 𝑖를 밑수 𝑎를 갖는 𝑏의 이산대수(discrete logarithm) 혹은 지수(index)라고 한다. 이 수를

𝑖 = dlog𝑎,𝑝(𝑏)

• 라고 쓴다.

79

Page 80: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie Hellman 알고리즘

• 양측 A와 B에게 주어진 정보:

– 하나의 소수 𝑞와 𝑞의 한 원시근 𝛼

• A는 한 랜덤넘버 𝑋𝐴 < 𝑞를 선택하고𝑌𝐴 = 𝛼𝑋𝐴mod 𝑞 를 계산

• B는 한 랜덤넘버 𝑋𝐵 < 𝑞를 선택하고𝑌𝐵 = 𝛼𝑋𝐵mod 𝑞 를 계산

• 양측은 𝑋를 개인값으로 보관하고 𝑌를 상대방이 사용할 수 있도록 공개

80

Page 81: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie Hellman 알고리즘

• A는 𝐾 = (𝑌𝐵)𝑋𝐴mod 𝑞를 이용해서 키 계산 • B는 𝐾 = (𝑌𝐴)𝑋𝐵mod 𝑞를 이용해서 키 계산

𝐾 = (𝑌𝐵)𝑋𝐴mod 𝑞 = (𝛼𝑋𝐵mod 𝑞)𝑋𝐴mod 𝑞

= (𝛼𝑋𝐵)𝑋𝐴 mod 𝑞 = 𝛼𝑋𝐵𝑋𝐴 mod 𝑞 = 𝛼𝑋𝐴𝑋𝐵 mod 𝑞

= (𝛼𝑋𝐴)𝑋𝐵 mod 𝑞 = (𝛼𝑋𝐴mod 𝑞)𝑋𝐵mod 𝑞

= (𝑌𝐴)𝑋𝐵mod 𝑞=K

81

Page 82: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie-Hellman 키

교환 알고리즘

82

Page 83: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

공격자가에게 주어지는 정보

• 알 수 없는 정보: 𝑋𝐴, 𝑋𝐵

• 알 수 있는 정보: 𝑞, 𝛼, 𝑌𝐴, 𝑌𝐵

• A, B의 비밀값 𝑋𝐴, 𝑋𝐵 를 알려면 공격자는 반드시 이산대수문제를 풀어야 한다.

𝑋𝐴 = dlog𝛼,𝑞(𝑌𝐴)

𝑋𝐵 = dlog𝛼,𝑞(𝑌𝐵)

아는 값 알고 싶은 값

83

Page 84: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie Hellman 키교환 예

• 하나의 소수 𝑞 = 353, 𝑞의 한 원시근 𝛼 = 3

• A는 한 랜덤넘버 𝑋𝐴 = 97 < 353 선택𝑌𝐴 = 𝛼𝑋𝐴mod 𝑞 = 397mod 353 = 40 계산

• B는 한 랜덤넘버 𝑋𝐵 = 233 < 353 선택𝑌𝐵 = 𝛼𝑋𝐵mod 𝑞 = 3233mod 353 = 248 계산

• A와 B는 𝑌𝐴 와 𝑌𝐵를 교환

84

Page 85: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie Hellman 키교환 예

• A가 하는 계산:

𝐾 = (𝑌𝐵)𝑋𝐴mod 𝑞 = (248)97mod 353 = 160

• B가 하는 계산 :

𝐾 = (𝑌𝐴)𝑋𝐵mod 𝑞 = (40)233mod 353 = 160

85

Page 86: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie Hellman 키교환 예에 대한 공격

• 공격자가 가진 정보: 𝑞 = 353; 𝛼 = 3; 𝑌𝐴 = 40; 𝑌𝐵 = 248

• 공격자가 할 수 있는 계산

• 3𝑎mod 353 = 40

• 3𝑏mod 353 = 248

• 의 해를 구한다. 즉, 다음 이산대수를 구한다 𝑎 = dlog3,353(40)

𝑏 = dlog3,353(243)

86

Page 87: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

Diffie-Hellman 키 교환 절차

87

Page 88: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

키교환 프로토콜

A: (𝑋𝐴, 𝑌𝐴)

LAN 사용자 그룹

모든 LAN 사용자에게 공개

비밀

공개

Z: (𝑋𝑍, 𝑌𝑍)

B: (𝑋𝐵 , 𝑌𝐵) C: (𝑋𝐶 , 𝑌𝐶)

공개

비밀

소수 𝑞, 𝑞의 한 원시근 𝛼

88

Page 89: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

중간자 다츠의 공격

1. 다츠는 공격을 위해 두 개의 랜덤 개인 키 𝑋𝐷1과 𝑋𝐷2 를 생성한 다음 여기에 해당되는 공개키인 𝑌𝐷1 과 𝑌𝐷2 를 구한다.

2. 앨리스는 𝑌𝐴를 밥에게 전송한다. 3. 다츠는 𝑌𝐴 를 가로채고 𝑌𝐷1 을 밥에게 보낸 다음

𝐾2 = (𝑌𝐴)𝑋𝐷2mod 𝑞를 계산한다. 4. 밥은 𝑌𝐷1 을 받고 𝐾1 = (𝑌𝐷1)𝑋𝐵mod 𝑞를 계산한다. 5. 밥은 𝑌𝐵를 앨리스에게 보낸다. 6. 다츠는 𝑌𝐵 를 가로채고 𝑌𝐷2 를 앨리스에게 보낸다. 다츠

는 𝐾1 = (𝑌𝐵)𝑋𝐷1mod 𝑞 를 계산한다. 7. 앨리스는 𝑌𝐷2 를 받고 𝐾2 = (𝑌𝐷2)𝑋𝐴mod 𝑞 를 계산한다.

89

Page 90: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

중간자 다츠의 공격

• 밥과 앨리스는 자신이 공통의 비밀키를 공유하고 있다고 생각한다.

• 밥과 다츠가 공유하는 것: 비밀키 K1

• 앨리스와 다츠가 공유하는 것: 비밀키 K2

90

Page 91: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

중간자 다츠의 실제 공격

• 앨리스는 암호화된 메시지 𝑀: 𝐸(𝐾2, 𝑀) 을 밥에게 보낸다.

• 다츠는 암호화된 이 메시지를 가로챈 다음 복호화하여 𝑀 을 얻는다.

• 다츠는 밥에게 𝐸(𝐾1, 𝑀) 혹은 𝐸(𝐾1, 𝑀′) 를 보낸다. 여기서 𝑀′는 𝑀과는 다른 메시지

91

Page 92: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

기타 공개키 암호 알고리즘

• 디지털 서명 표준

– (DSS: Digital Signature Standard)

– 서명기능만 제공

– 암호나 키 교환에 사용 못함

• 타원곡선 암호

– (ECC: Elliptic-Curve Cryptography)

– 비트 수가 적어서 계산속도가 빠르다

– 신뢰성이 RSA보다 낮다

92

Page 93: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

3.6 디지털 서명

• 메시지의 출처와 메시지 내용에 대한 확신을 위해 메시지 전체를 암호화하면 된다

• 이렇게 하면 메모리가 많이 든다

• 문서의 기능을 대신하는 작은 비트블록을 암호화하는 방법이 필요

• 작은 비트블록을 인증자(authenticator)라고 한다

93

Page 94: th NETWORK SECURITY ESSENTIALSlily.mmu.ac.kr/lecture/16is/ch03.pdf · –관용암호 알고리즘이나 mac에서 사용하는 관용 암호 알고리즘까지 수출 규제 –암호적

인증자

• 인증자는 변경 없이 문서만 변경하는 것이 불가능

• 인증자를 송신자의 개인키로 암호화했다면 출처, 내용, 순서 확인해주는 서명이다

• SHA-1 같은 안전 해시코드가 이런 역할

• 메시지의 무결성은 보장하지만 기밀성은 보장 못한다

94