05.공개키 암호 방식

Download Report

Transcript 05.공개키 암호 방식

Cryptology, 1st term, 2009
공개키 암호 방식
2009년 5월 4일 (10주차)
유 승 석([email protected])
Korea College of Information & Technology
Cryptology, 1st term, 2009
수업 내용
• 공개키 암호 방식의 개요
• RSA 암호 방식
– RSA 암호 방식의 안전성
– RSA 암호 방식의 해독
– RSA 암호 방식의 반복법에 의한 공격
• ElGamal 암호 방식
– 이산 대수 문제
– ElGamal 암호 방식
• Merkle-Hellman의 Knapsack 암호 방식
– Merkle-Hellman I형 Knapsack 암호 방식
– Merkle-Hellman II형 Knapsack 암호 방식
• Questions & Answers
Korea College of Information & Technology
2
Cryptology, 1st term, 2009
공개키 암호 방식의 개요
Korea College of Information & Technology
Cryptology, 1st term, 2009
공개키 암호 방식의 등장 배경
• 기존의 관용 암호 방식에서 발생하는 문제점
– 키 관리, 키 분배
A
Xbe
관용 암호 방식
Xa
e
Xad
Xac
b
Xa
키 개수
n(n-1) / 2
B
E
e
Xc
Xde
Xbc
Xb
d
사용자 수(n)
Xcd
C
D
Korea College of Information & Technology
4
Cryptology, 1st term, 2009
공개키 암호 방식의 개요
• "New directions in cryptography“
– 1976년 Diffie,Hellman, 공개키 암호 방식 이론 발표
– 기존의 관용 암호 방식에서 발생하는 키 관리 문제점을
해결한 암호 방식을 제안
• 공개키 암호 방식
– 키를 두 개로 나누어 하나는 암호화 키로 또 다른 하나
는 복호화 키로 사용한다.
– 암호화 키는 공개목록에 등록 공개하고 복호화 키는 개
인이 비밀리에 보관한다.
– 그러므로 암호화 키는 공개키(public key), 복호화 키는
개인키(private key)라 부른다.
– 키의 사전 분배가 필요 없는 획기적인 방식
Korea College of Information & Technology
5
Cryptology, 1st term, 2009
공개키 암호 방식의 개요
• 대칭키 암호 알고리즘
• 공개키 암호 방식
사용된 키가 동일하다.
사용된 키가 동일하지 않다.
암호화
복호화
사용된 키가 동일한가?
암호화키
평문
암호 알고리즘
복호화키
암호문
Korea College of Information & Technology
암호문
6
복호 알고리즘
평문
Cryptology, 1st term, 2009
공개키 암호 방식의 개요
• 키 구조
Korea College of Information & Technology
7
Cryptology, 1st term, 2009
사용자 수와 키의 개수
대칭키 암호 방식
비대칭키 암호 방식
A
b
Xa
Xa
e
A
Ya
Xa
Xe
Xbe
Xad
Xac
Xb
B
E
B
E
Yc
Xde
e
Xc
Ye
Yd
Xbc
Xb
d
개키
Repository
Yb
Xcd
Xc
C
D
Korea College of Information & Technology
Xd
C
8
D
Cryptology, 1st term, 2009
사용자 수와 키의 개수
관용 암호 방식
키 개수
개키 암호 방식
사용자수가 10,000명이면
관용암호방식 : 49,995,500개의 키 필요
공개키암호방식 : 20,000개의 키 필요
2n
n(n-1) / 2
사용자 수(n)
Korea College of Information & Technology
9
Cryptology, 1st term, 2009
공개키 암호 방식의 개요
• 공개키 암호 방식 구조
Korea College of Information & Technology
10
Cryptology, 1st term, 2009
알고리즘 성능 차이
• 대칭키 알고리즘 vs 공개키 알고리즘 성능 차이
– 동일 강도를 갖는 대칭키 암호 알고리즘과 공개키 암호
알고리즘에 사용되는 키 길이 비교
대칭키 암호 알고리즘용 키 길이
공개키 암호 알고리즘용 키 길이
56 bits
384 bits
64 bits
512 bits
80 bits
768 bits
112 bits
1,792 bits
128 bits
2,304 bits
Korea College of Information & Technology
11
Cryptology, 1st term, 2009
관용 암호방식과 공개키 암호방식비교
구분
관용 암호 방식
공개 키 암호 방식
History
BC 500년 경
1976년
키
대칭키(비밀키)
비대칭키(공개키, 사설키)
암호키 관계
암호화키 = 복호화키
암호화키 ≠ 복호화키
암호화 키
비밀
공개
복호화 키
비밀
비밀
암호 알고리즘
비밀/공개
공개
키의 개수
N * (N-1) / 2
2*N
장점
계산 속도 빠름
알고리즘이 다양
암호키 사전 공유 불필요
통신 대상의 추가가 용이
단점
키 분배 및 관리의 어려움
계산속도 느림
대표적인 예
DES
RSA
Korea College of Information & Technology
12
Cryptology, 1st term, 2009
공개키 쌍 사용 원칙
• 원칙1
– 암호화와 복호화에 사용되
는 키는 동일인의 키여야 한
다.
• 원칙2
– 사용되는 키 쌍의 각 키는 암
호화/복호화 과정 중 한번씩
만 사용해야 한다.
• 원칙3
– 상대방의 사설키는 사용할
수 없다.
Korea College of Information & Technology
13
암호화 키
복호화 키
위반 규칙
송신자 사설키
송신자 사설키
(2)
송신자 사설키
송신자 공개키
인증 모드
송신자 사설키
수신자 사설키
(1)
송신자 사설키
수신자 공개키
(1)
송신자 공개키
송신자 사설키
(3)
송신자 공개키
송신자 공개키
(2)
송신자 공개키
수신자 사설키
(1)
송신자 공개키
수신자 공개키
(1)
수신자 사설키
송신자 사설키
(1)
수신자 사설키
송신자 공개키
(1)
수신자 사설키
수신자 사설키
(2)
수신자 사설키
수신자 공개키
(3)
수신자 공개키
송신자 사설키
(1)
수신자 공개키
송신자 공개키
(1)
수신자 공개키
수신자 사설키
암호 모드
수신자 공개키
수신자 공개키
(2)
Cryptology, 1st term, 2009
암호 모드
• 평문을 상대방의 공개키(public key)로 암호화하여
암호문 생성
• 암호화에 사용된 공개키와 쌍을 이루는 사설키 소
유자가 복호화 가능
• 송신자
– 수신자의 공개키로 암호화
• 수신자
– 수신자의 사설키로 복호화
• 수신자의 공개키
– 송신자는 공개키 Repository(리파지토리,저장소)에서
가져옴
Korea College of Information & Technology
14
Cryptology, 1st term, 2009
암호 모드
<송 송 송 >
<송 송 송 >
Plaintext
송송
Plaintext
송송
<송 송 송 송 송 송 >
Algorithm
(Encryption)
송송송송송송
<송 송 송 송 송 송 >
Algorithm
(Decryption)
송송송송송송
Insecure Channel
송송송송
(ex. 송 송 송 )
Ciphertext
송송송
Korea College of Information & Technology
Ciphertext
송송송
15
Cryptology, 1st term, 2009
인증 모드
• 평문을 본인의 사설키(private key)로 암호화하여
암호문 생성
• 암호문은 누구라도 해독할 수 있음. 그에 따라 기
밀성이 유지될 수는 없지만, 어떠한 수취인도 그
메시지가 A에 의해서 생성되었음을 확신 가능
• 송신자
– 송신자의 사설키로 암호화 = 독점적 암호화
• 수신자
– 송신자의 공개키로 복호화 함
• 송신자의 공개키
– 수신자는 공개키 저장소에서 가져옴
Korea College of Information & Technology
16
Cryptology, 1st term, 2009
인증 모드
<송 송 송 >
<송 송 송 >
Plaintext
송송
Plaintext
송송
<송 송 송 송 송 송 >
Algorithm
(Encryption)
송송송송송송
<송 송 송 송 송 송 >
Algorithm
(Decryption)
송송송송송송
Insecure Channel
송송송송
(ex. 송 송 송 )
Ciphertext
송송송
Korea College of Information & Technology
Ciphertext
송송송
17
Cryptology, 1st term, 2009
암호모드 + 인증모드
• 인증 먼저, 암호 그 이후
• 디지털 서명
Korea College of Information & Technology
18
Cryptology, 1st term, 2009
암호모드 + 인증모드
<송 송 송 >
<송 송 송 >
Plaintext
송송
송송 송
Repository
(송 송 송 송 송 ,송 송 송 )
<송 송 송 송 송 송 >
Plaintext
송송
<송 송 송 송 송 송 >
Algorithm
(Encryption)
송송송송송송
Algorithm
(Decryption)
송송송송송송
Ciphertext
송송송
Ciphertext
송송송
<송 송 송 송 송 송 >
<송 송 송 송 송 송 >
Algorithm
(Encryption)
송송송송송송
Algorithm
(Encryption)
송송송송송송
Insecure Channel
송송송송
(ex. 송 송 송 )
Ciphertext2
송송송2
Korea College of Information & Technology
Ciphertext2
송송송2
19
Cryptology, 1st term, 2009
공개키 암호 방식의 수학적 분류
• 소인수 분해에 기초한 공개키 암호 방식
– RSA( Rivest, A.Shamir, L.Adleman )
– Rabin
• 이산 대수 문제에 기초한 공개키 암호 방식
– ECC(Elliptic Curve Cryptosystem)
– ElGamal
• Knapsack 문제에 기초한 공개키 암호 방식
– MH 공개키 암호 방식
Korea College of Information & Technology
20
Cryptology, 1st term, 2009
RSA 암호 방식
RSA 암호 방식의 안전성
RSA 암호 방식의 해독
RSA 암호 방식의 반복법에 의한 공격
Korea College of Information & Technology
Cryptology, 1st term, 2009
RSA 암호 방식의 개요
• 1978년 MIT의 Rivest, Shamir와 Adleman이 RSA
공개키 암호 방식을 제안
Korea College of Information & Technology
22
Cryptology, 1st term, 2009
RSA 암호 방식의 개요
• Operating systems.
– Sun, Microsoft, Apple, Novell.
• Hardware.
– Cell phones, ATM machines, wireless Ethernet cards,
Mondex smart cards, Palm Pilots, Palladium.
• Secure Internet communication.
– Browsers, S/MIME, SSL, S/WAN, PGP, Microsoft
Outlook, etc.
Korea College of Information & Technology
23
Cryptology, 1st term, 2009
RSA 암호 방식의 개요
• 합성수의 소인수 분해의 어려움을 이용하여 RSA
암호 방식을 실현함
– 가입자는 백 자리 크기 이상의 두 개의 소수 p, q를 선
택하여 n = p x q 를 계산한다.
– 이 때 p와 q를 알고 있는 사람은 n을 계산하기 쉽지만 n
만 알고 있는 사람은 n으로 부터 p와 q를 찾는 소인수
분해가 어렵다
Korea College of Information & Technology
24
Cryptology, 1st term, 2009
RSA Key Generation
• RSA key generation.
– Select two large prime numbers p and q at random.
– Compute n = pq.
• Euler 함수 값 φ(n) = (p – 1) (q – 1) 계산
• φ(n)과 서로소인 Ke를 선택한다.
–
gcd (Ke, φ (n)) = 1 인 Ke 선택
• 다시 유클리드 호제법을 이용하여 Kd를 계산
– Ke × Kd ≡ 1 mod φ (n)
• Ke와 n은 공개목록에 등록하여 공개
– (Ke, n) : 공개키
• Kd는 비밀리에 보관
– (Kd, n) : 개인키
Korea College of Information & Technology
25
Cryptology, 1st term, 2009
RSA 암호 방식
• 암호화 및 복호화(그림5.2)
Korea College of Information & Technology
26
Cryptology, 1st term, 2009
RSA 암호 방식
• 암호화
C  M Ke mod n
• 복호화
M  C Kd mod n
Korea College of Information & Technology
27
Cryptology, 1st term, 2009
RSA 암호 방식의 복호화 과정
• 공개키(Ke)와 개인키(Kd)는 modφ(n) 상에서 서로
역수 관계이므로 Ke×Kd ≡ 1 mod φ(n)
• 임의의 t에 대해서 K e  K d  (n)  t  1
• 암호문 C  M
Ke
mod n 이므로
C K d  ( M K e ) K d mod n
 (M
 M  ( n )t 1 mod n
 1t  M mod n
 M mod n
M
 ( n )t
 M mod n
Korea College of Information & Technology
28
(n) t
)  M mod n
Cryptology, 1st term, 2009
RSA 암호 방식의 예
• 예
공개키 ( 3, 33 )
개인키 ( 7 )
Korea College of Information & Technology
29
Cryptology, 1st term, 2009
예제
• 소수 p=47, q=59로 RSA 공개키 암호를 구성해 보
자
– 예제 5.1
Korea College of Information & Technology
30
Cryptology, 1st term, 2009
RSA 암호 방식의 안전성
• RSA 암호 방식의 안전성은 소수 p와 q에 달려있음
– n = p × q 계산 p, q : 소수
• 공개키 Ke와 n을 가지고 간단하게 개인키 Kd를 찾
을 수 있다면 RSA 암호 방식은 쉽게 해독된다.
– φ(n) = (p – 1) (q – 1)
– gcd (Ke, φ (n)) = 1 인 Ke 선택
– Ke × Kd ≡ 1 mod φ (n)
• n으로부터 p, q를 찾을 수 있다면, 즉 n의 소인수
분해가 가능하면 Euler 함수 φ(n) 을 찾게 되어 유
클리드 호제법으로 공개키 Ke로부터 개인키 Kd를
간단하게 찾아낼 수 있다.
Korea College of Information & Technology
31
Cryptology, 1st term, 2009
RSA 암호 방식의 안전성
• RSA 암호 방식의 안전성을 보장받기 위한 소수 p
와 q의 선택 조건과 공개키 Ke와 개인키 Kd의 조
건들이 부가적으로 필요함
• 소수 p와 q는 다음 조건을 만족해야 RSA 암호 방
식이 안전하다.
– 조건1. p와 q는 거의 같은 크기의 소수이어야 한다.
– 조건2. p-1과 q-1은 큰 소수를 인수로 가져야 한다.
– 조건3. p-1과 q-1의 최대 공약수는 작아야 한다.
• 위의 조건은 n=pxq의 소인수 분해를 어렵게 함
Korea College of Information & Technology
32
Cryptology, 1st term, 2009
RSA 암호 방식의 안전성
• 소수 p와 q의 크기가 100자리이고 n이 200자리인
합성수라면
• 현재의 소인수 분해 알고리즘과 정보공학 기술로
는 이러한 n을 소인수 분해하는 것은 거의 불가능
한 것으로 알려져 있음
• RSA 암호 방식을 상용화한 장비들은 512비트의 n,
약 155자리 수를 사용하거나 664비트, 1024비트
의 n을 사용한다.
Korea College of Information & Technology
33
Cryptology, 1st term, 2009
RSA 암호 방식의 해독
• 암호 해독자가 RSA 암호 방식의 φ(n)을 안다면, n
이 p x q 이므로 다음과 같이 소인수 분해 가능함
n  pq
(n)  ( p  1)( q  1)
• q=n/p를 대입하면 다음과 같이 미지수 p의 2차 방
정식을 얻을 수 있음
p 2  (n  (n)  1) p  n  0
• 위 방정식의 두 개의 근 p와 q를 구하면 해독됨
Korea College of Information & Technology
34
Cryptology, 1st term, 2009
예제
• 암호 해독자가 n=2419와 φ(n)=2320을 알고 있을
때, 이 정보로부터 n=pxq의 p,q 구하기
http://www.papertablet.com/main/1314
Korea College of Information & Technology
35
Cryptology, 1st term, 2009
RSA 암호 방식의 반복법에 의한 공격
• 공개키 Ke와 암호문 C만을 갖고 평문을 찾는 방법
• 암호문 C와 n, 공개키 Ke만 갖고, 소인수 분해를
통하여 p, q를 찾는 것 보다 훨씬 짧은 시간 내에
평문 M을 구할 수 있음.
• 암호문 C를 공개키 Ke로 반복 암호화하는 방법
– 암호문 C를 공개키 Ke로 반복 암호화하면 다시 암호문
C가 나타난다. 그러면 다시 암호문 C가 나타나기전의
값이 평문 M이 된다.
Korea College of Information & Technology
36
Cryptology, 1st term, 2009
예제
• p=11, q=3 으로 구성되는 작은 n값의 RSA 암호
방식에서의 반복 암호화 공격을 해보자.
– 예제 5.3
Korea College of Information & Technology
37
Cryptology, 1st term, 2009
참고사이트
• RSA, Wikipedia
– http://en.wikipedia.org/wiki/RSA
• RSA암호, 위키백과
– http://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%
98%B8
• Lecture 22: Cryptology
– http://www.cs.princeton.edu/courses/archive/spr05/co
s126/lectures/22.pdf
Korea College of Information & Technology
38
Cryptology, 1st term, 2009
ElGamal 암호 방식
이산 대수 문제
ElGamal 암호 방식
Korea College of Information & Technology
Cryptology, 1st term, 2009
ElGamal 암호 방식의 개요
• 이산 대수 문제를 근간으로 만들어진 공개키 암호
방식
Korea College of Information & Technology
40
Cryptology, 1st term, 2009
이산 대수 문제
• 큰 소수 p로 만들어진 집합 Zp 위에서의 원시원소
x
를 g라 할 때 g  y mod p 의 g와 y값을 알고 있
어도
• log g y  x mod p 을 구하는 것이 어렵다는 문제
를 이용
– 물론, g와 x를 알면 y를 계산하는 것은 간단하다.
Korea College of Information & Technology
41
Cryptology, 1st term, 2009
이산 대수 문제
• 이산 대수를 만드는 Zp 위의 원시원소의 수는
φ(p-1) 개
• 원시원소 g를 차례로 누승을 증가시켜 가면 0을
제외한 Zp의 모든 원소가 나타난다.
Korea College of Information & Technology
42
Cryptology, 1st term, 2009
이산 대수 문제
• 예) Z23 의 원시원소를 알아보자
–
–
–
–
–
Z23 위의 원시원소의 개수는 φ(22) 개 이고
φ(22) = φ(2)Xφ(11) = 1 x 10 = 10 이므로
Z23 위의 원시원소의 개수는 10개 이다.
Z23 의 원시원소={5,7,10,11,14,15,17,19,20,21}
원시원소 하나를 선택(5)하여 p-1(22)과 서로소인 수 i
로 누승하면 모든 원시원소를 찾을 수 있다.
– 참고)Fermat의 소정리
• ap-1=1(mod p)
• a22=1(mod p)
Korea College of Information & Technology
43
Cryptology, 1st term, 2009
이산 대수 문제
• Zp 위에서의 이산 대수 값을 구하는 방법은 앞에
서와 같이 대수표를 만들어 구하는 것이 제일 간
단하지만
• p값이 크면 대수표를 만드는 것이 복잡하므로 이
산 대수 값을 구하는 것이 어렵다.
• g  y mod p 의 g와 y값을 알고 있어도 x를 구하
는 것이 어렵다는 문제를 이용한 암호화 방법이
이산 대수 문제를 이용한 암호화 방법이다.
x
Korea College of Information & Technology
44
Cryptology, 1st term, 2009
ElGamal algorithm
• ElGamal encryption consists of three components
– the key generator
– the encryption algorithm
– the decryption algorithm
Korea College of Information & Technology
45
Cryptology, 1st term, 2009
ElGamal Key generation
• 큰 소수 p를 선정하여 Zp위의 원시원소 g와 함께 p를 공개
한다.
• 가입자 A는 Zp위의 임의의 원소 XA를 비밀정보로 선택하
여 y A  g X A mod p 의 공개정보 YA를 계산
• 가입자 B도 Zp위의 임의의 원소 XB를 비밀정보로 선택하
여 y B  g X B mod p 의 공개정보 YB를 계산
• 가입자 A와 가입자B의 YA, YB, p, g를 공개목록에 등록
• YA – 가입자 A의 공개키, YB – 가입자 B의 공개키
• XA – 가입자 A의 개인키, XB – 가입자 B의 개인키
Korea College of Information & Technology
46
Cryptology, 1st term, 2009
ElGamal encryption algorithm
• 가입자 A가 평문 M을 암호
화하여 암호문 C를 가입자
B에게 전송
• 암호화
rR Z p ( p : 소수)
– Zp상에서 임의의 난수 r 을
선정
K  y B mod p
r
– 수신자 B의 공개 키 YB로 K
값을 계산
C1  g r mod p
– C1, C2 계산
C2  KM mod p ( M : 평문)
C  (C1 , C 2 )
– 암호문 C는 (C1, C2)
Korea College of Information & Technology
47
Cryptology, 1st term, 2009
ElGamal decryption algorithm
• 가입자 B가 가입자 A로부터 수신받은 암호문 C를
평문 M으로 복호화
– 암호문 C1에 가입자 자신의 개인키 XB를 누승하여 K 값
을 계산
– 평문 M을 계산
K  y B mod p로부터
r
K  ( g X B ) r mod p
K  (g )
r XB
K  C1
XB
mod p
[C1  g r mod p]
mod p
M  C2 / K mod p
Korea College of Information & Technology
[ y B  g X B mod p]
48
[C2  KM mod p]
Cryptology, 1st term, 2009
ElGamal 암호 방식
• ElGamal 암호 방식의 구성(그림5.3)
Korea College of Information & Technology
49
Cryptology, 1st term, 2009
예제
• 소수 p=23, 원시원소 g=7일 때 ElGamal 암호 방
식을 구성해 보자.
Korea College of Information & Technology
50
Cryptology, 1st term, 2009
참고사이트
• ElGamal encryption, Wikipedia
– http://en.wikipedia.org/wiki/ElGamal_encryption
Korea College of Information & Technology
51
Cryptology, 1st term, 2009
Merkle-Hellman의
Knapsack 암호 방식
Merkle-Hellman I형 Knapsack 암호 방식
Merkle-Hellman II형 Knapsack 암호 방식
Korea College of Information & Technology
Cryptology, 1st term, 2009
Knapsack 암호 방식의 개요
• Merkle-Hellman 의 Knapsack 암호 방식은 1978년
처음 제안
• 1980년대 초반 변형된 모든 Knapsack 암호 방식
이 모두 해독됨
• 현재, Knapsack 암호 방식은 암호 방식 개념 이해
와 기초적인 암호 기술 연구에 유용하게 사용됨
Korea College of Information & Technology
53
Cryptology, 1st term, 2009
Knapsack 문제
• 어떤 집합 I = {s1, s2, …,
sn}의 부분 집합을 구하는
문제
• 평문 M = m1, m2, …,
mn(단 mi=0 또는 1) 일 때
n
m s
i 1
i i
T
• T를 구하는 문제
Korea College of Information & Technology
54
Cryptology, 1st term, 2009
Knapsack 암호 방식
• Knapsack 문제
Korea College of Information & Technology
55
Cryptology, 1st term, 2009
Knapsack 암호 방식
• Knapsack 문제(계속)
Korea College of Information & Technology
56
Cryptology, 1st term, 2009
Knapsack 암호 방식
Korea College of Information & Technology
57
Cryptology, 1st term, 2009
Knapsack 암호 방식
• 암호화
Korea College of Information & Technology
58
Cryptology, 1st term, 2009
Knapsack 암호 방식
• 복호화
Korea College of Information & Technology
59
Cryptology, 1st term, 2009
참고사이트
• Merkle-Hellman
– http://en.wikipedia.org/wiki/Merkle-Hellman
• Knapsack problem, Wikipedia
– http://en.wikipedia.org/wiki/Knapsack_problem
Korea College of Information & Technology
60
Cryptology, 1st term, 2009
Questions
&
Answers
Korea College of Information & Technology
61