암호 기술(정보보호 기술)

Download Report

Transcript 암호 기술(정보보호 기술)

암호 분석 기법
- 고전암호를 중심으로 2006. 12. 21
김병수
([email protected])
1
차
례
• 암호 개요
• 암호 역사
• 암호 종류
• 고전암호 분석기법
2
암호 개요
• 암호의 정의
– 통신문의 내용을 제3자가 판독할 수 없는 글자, 숫자, 부호 등
으로 변경시킨 것
- 동아대백과사전 
– 통신의 내용이 밖으로 새지 않도록, 제3자는 모르고, 저희 편끼리
만 알게 한 비밀한 신호나 부호
 한국어 대사전 
– The art of writing or deciphering messages in code. The system
used in a code or cipher.
 Webster’s New World Dictionary 
– The art and science of keeping message secure
 Applied Cryptography (Bruce Schneier) 
– 평문을 해독 불가능한 형태로 변형하거나 또는 암호화된 통신문
을 해독 가능한 형태로 변환하기 위한 원리, 수단, 방법 등을 취
급하는 기술 또는 과학  암호학 기초 (한국전자통신연구원) 
3
암호 개요
• 암호학(cryptology)
– 암호제작(cryptography) : 평문을 보호하기
위한 암호화 알고리즘을 연구
– 암호해독(cryptanalysis) : 평문으로 해독하기
위하여 암호문과 암호화 과정을 연구
4
암호 개요
• 암호를 사용하는 목적
– 비밀성 유지 (Confidentiality) : 인가자만이 정보에
접근할 수 있어야 함
– 자료에 대한 무결성 유지 (Data Integrity) : 정보가
위조 또는 변조되었는지 확인할 수 있어야 함
– 사용자 또는 자료의 출처 인증 (Authentication for
Entity and Data) : 정보의 생산이 정당한지 검증
되어야 함
– 부인방지 (Non-repudiation) : 정보처리를 실행한 후
사용자가 이를 거부할 수 없도록 해야 함
5
암호 개요
• 암호시스템 개요
암호화 키
평문
암호알고리즘
(암호화)
복호화 키
암호문
암호알고리즘
(복호화)
암호문
송신자
평문
수신자
암호
해독
평문
도청자
6
암호 역사
• 1세대 암호시스템
– 고대~19세기말
– 단순한 문자 환자(換字) 및 환치(換置) 방법 사용
• 2세대 암호시스템
– 20세기초~1940년대 말
– 복잡한 암호기계 이용
• 3세대 암호시스템 (현대 암호)
– 1940년대 말 Shannon의 논문 발표 이후
– 각종 이론 등에 부합하는 복잡도가 높은 암호
알고리즘
7
암호 역사
(1세대 암호시스템)
• 환자(換字) 암호 (substitution cipher)
– 평문의 문자를 다른 문자로 바꾸어 암호문 생성
• 환치(換置) 암호 (transposition cipher)
– 평문에서 문자의 순서만을 바꾸어 암호문 생성
• 혼합 암호
– 환자 환치 암호
– 난수 암호
8
암호 역사
(2세대 암호시스템)
• 1933~1945년 독일군은 Enigma 라 불리는
암호문 작성기를 이용, 암호통신 실시
• 1937년부터 일본은 외교통신을 암호화
하고자 암호문 작성기를 사용하였으며,
미국은 이를 ‘Purple Machine’ 이라 부름
• 1942년부터 미군은 Hagelin 이 발명한
M-209 암호문 작성기를 사용
9
Enigma
10
Purple Machine
Switching Unit
Housing for
stepping switch
Stepping Switch
11
Hagelin Machine (M-209)
12
암호 역사
(3세대 암호시스템)
• 1948년 Claude E. Shannon은 ‘Mathematical
Theory of Communication’ 을 발표하여 정보의
가치를 엔트로피로 계량화
– 엔트로피 : 주어진 정보를 가능한 한 압축하여 비트로
표현할 때 필요한 비트의 수
– 혼동(confusion)과 확산(diffusion) 기법을 사용하여
복잡도가 높은 암호시스템 구현 가능
H =  Pi log2 Pi
i
13
암호 역사
(3세대 암호시스템)
• 1970년 H. Feistel 등은 DES의 모체가 된 LUCIFER를
개발하였고, block 암호의 기본구조로 널리 사용되는
Feistel 구조를 고안
P0
P1
K
C0 = P1
F
C0
[암호화]
C1 = P0  F(P1, K)
C1
 : exclusive or
14
암호 역사
(3세대 암호시스템)
C1
C0
K
[복호화]
F
P1 = C0
P1
P0
P0 = C1  F(C0, K)
15
암호 역사
(3세대 암호시스템)
• 1977년 미국 NBS는 IBM이 개발한 DES
(Data Encryption Standard) 를 연방 표준
암호로 발표
– 구조: Feistel 구조를 반복
•
•
•
•
입·출력 길이 : 64 bit
암호키 길이 : 56 bit
실행 라운드수 : 16 회
非선형인 S-box : 8 개
16
암호 역사
(3세대 암호시스템)
• 1976년 W. Diffie와 M. Hellman은 ‘New Directions
in Cryptography’ 에서 공개키 암호의 개념 발표
• 1978년 R. Rivest, A. Shamir 및 L. Adleman은 큰
정수에 대한 소인수분해가 어렵다는 사실을
이용한 공개키 암호시스템인 RSA 개발
R. Rivest
A.Shamir
L. Adleman
17
암호 역사
(3세대 암호시스템)
• 1990년 X. Lai와 L. Massey는 IDEA를 개발
– IDEA : International Data Encryption Algorithm
• PES  IPES (Improved PES)  IDEA
• 1990년 E. Biham과 A. Shamir는 差分 암호
해독법 (Differential Cryptanalysis) 을 소개
– 주어진 差를 갖는 입력 평문 쌍에 대해 출력되는
암호문의 差를 분석하는 방법
18
암호 역사
(3세대 암호시스템)
• 1991년 R. Zimmermann은 PGP (Pretty
Good Privacy) 개발
– 공개키 암호방식을 사용한 file 및 전자메일
암호화 program
• 1993년 Matsui는 線型 암호해독법
(Linear Cryptanalysis) 소개
– 암호 알고리즘의 입·출력 사이에 주어지는
선형관계를 이용한 분석법
19
암호 역사
(3세대 암호시스템)
• 1994년 W. Shor는 큰 수를 효과적으로
소인수분해할 수 있는 量子計算法 소개
• 1997년 NIST는 DES를 대신할 미국 표준
암호 (AES) 를 공개 모집
– AES : Advanced Encryption Standard
• 1999. 8월 NIST는 AES의 마지막 후보
5개 선정
– MARS, RC6, Rijndael, Serpent, Twofish
20
암호 역사
(3세대 암호시스템)
알고리즘
형태
비고
CAST-256
MFN
CRYPTON
SPN
DEAL
FN
DFC
FN
E2
FN
FROG
Interp.
HPC
OMNI
LOKI97
FN
MAGENTA
FN
SAFER+
SPN
MARS
MFN
RC6
MFN
RIJNDAEL
SPN
美 IBM
美 RSA
벨기에
SERPENT
SPN
英-이스라엘-덴마크
TWOFISH
FN
MFN
한국
일본
: Modified Feistel
Network
SPN : Substitution
Permutation Network
FN : Feistel Network
Interp. : Interpreter design
OMNI : different design
(name by designer)
2000년 10월
최종 선정
美 Counterpane
21
암호 역사
(시대별 보호서비스 비교)
비밀보장
무결성
인증
부인방지
1세대
2세대
3세대
22
암호 역사 (국내)
• 1948. 12월 陸軍이 창설되면서 육군본부 직할부대에
전파감시소를 설치하고 美軍의 도움을 받아 암호를
제작하여 全軍에 배포
• 1950. 6월 육군 전파감시소는 북한의 암호문 解讀
– 대한민국 暗號解讀의 첫걸음
• 1961년 暗號 제작업무를 中央情報部로 이관
– 軍을 포함한 全 행정기관에 확대 적용
23
암호 역사 (국내)
• 1961년부터 中央情報部는 각급 행정부처 및
해외공관에 암호자재를 제작 배포
• 1980년 외교암호 시스템이 컴퓨터를 사용
半自動化
• 1984년 자동화 (전산화) 암호시스템 사용
• 현재 128 비트 이상 키를 사용하는 현대암호
적용
24
암호 역사 (국내)
• 1995. 3월 국내에서 가장 많이 쓰이고 있던
‘아래아한글 2.1’용 암호 해독
• 1997년 한국 國家機關用 표준암호 NEAT 제정
– NEAT : National Encryption AlgoriThm
• 1998년 부가형 전자서명방식(KCDSA)을 한국
정보통신단체 표준으로 확정
– Korean Certificate-based Digital
Signature Algorithm
25
암호 역사 (국내)
• 1998년 Hash algorithm HAS-160을 한국정보
통신단체 표준으로 확정
• 1999년 한국 民間用 표준암호 SEED 제정
– SEED : 정보보호의 씨앗이 되라는 뜻
• 2004.12월 한국 국가 표준 암호 ARIA 제정
– 산업자원부 KS 규격 : KS X 1213
– Academy – Research Institute - Agency
26
암호 종류
암호
고전 암호
현대 암호
사이퍼(cipher)
환자 암호
환치 암호
1948
비밀키 암호
블록 암호
스트림 암호
코드(code)
공개키 암호
etc.
etc.
秘密書法 (隱書), 隱語 등
量子暗號, DNA 暗號 등
27
암호 종류 (고전암호)
• 환자 암호 (substitution cipher)
– 평문의 문자를 다른 문자로 바꾸어 암호문 생성
• 환치 암호 (transposition cipher)
– 평문에서 문자의 순서만을 바꾸어 암호문 생성
• 혼합 암호
– 환자 환치 암호
– 난수 암호
28
환자(換字) 암호
• 단순 환자 암호 : 평문과 암호문 1:1 대응
• 동음이의 환자 암호 : 평문과 암호문 사이에
1:多 대응
• 다표식(多表式) 환자 암호 : 다중 환자를
사용
• 다자(多字) 환자 암호 : 한번에 여러 개의
문자를 암호화
29
단순 환자 암호
(simple substitution cipher)
f
A
B
C D E
X
Y
Z
K
F
O R
G H
I
J
E
B
C D F
A
K
M = KOREA
C = D I MOX
L
M N O P
Q R
G H
L
I
J
S
T
U V
W X
Y
Z
M N P
Q S
T
U V
W
(Key : 3 + KOREA)
(예) 시저암호 : f(a)=a+3
30
단순 환자 암호
(simple substitution cipher)
• 아핀 변환 (affine transformation)
f(x) ≡ 3 x + 5 (mod 26)
f
A
B
C D E
F
F
I
L
U X
O R
G H
A
I
J
K
D G J
L
M N O P
M P
S
V
Y
Q R
S
B
H K
E
T
U V
W X
N Q T
Y
Z
W Z
C
M = KOREA
C = J V ERF
31
동음이의 환자 암호
(homophonic substitution cipher)
• 평문의 각 문자에 암호 문자를 여러개 대응
• 예 : 숫자 100개 (00, 01, 02, …, 99)중
-
e : 암호 13개 할당
a, t : 암호 9개 할당
i, n, o, s : 암호 7개 할당
d, h, r : 암호 5개 할당
f, l, u : 암호 3개 할당
c, m, p, y : 암호 2개 할당
기타 b, g, j, k, q, v, w, x, z : 암호 1개 할당
32
다표식 환자 암호
(poly alphabetic substitution cipher)
• Blaise de Vigenère (1523 ~ 1596)
– 多重文字方式
– Vigenère table ( C ≡ M + K (mod 26) )
– Autokey system
• 1st autokey 방식 : 평문을 암호키로 사용
• 2nd autokey 방식 : 암호문을 암호키로 사용
33
Vigenère Table
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
a
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
b
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
c
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
d
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
e
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
f
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
g
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
h
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
i
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
j
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
k
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
l
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
m
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
n
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
o
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
p
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
q
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
r
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
s
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
t
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
u
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
v
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
w
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
x
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
y
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
z
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
1st Autokey
평 문
This is cipher
암호키
THREE
암호문
MOZWM LJZTL XY
2nd Autokey
평 문
This is cipher
암호키
THREE MOZWM EQ
암호문
MOZWM EQHLT IH
34
다자 환자 암호
(polygram substitution cipher)
• Playfair 암호
암호키 : KOREA
K
B
H
P
V
O
C
IJ
Q
W
R
D
L
S
X
E
F
M
T
Y
A
G
N
U
Z
평 문 : CY BE RT ER RO RZ
암호문 : FW FK ES AE ER AX
35
다자 환자 암호
(polygram substitution cipher)
• Hill 암호
자모
숫자
A
5
B
23
C
2
D
20
E
10
F
15
G
8
A
DELA
H
4
I
18
J
25
K
0
L
16
M
13
N
7
O
3
P
1
Q
19
R
6
8
6
6
9
9
5
5
10
5
8
4
9
10
6
11
4
20, 10, 16, 5
S
12
T
24
25, 2, 3, 14
A
25 = 8  20
2 = 6  20
3 = 5  20
14 = 10  20
+
+
+
+
U
21
V
17
W
14
X
22
Y
11
JCOW
6  10
9  10
8  10
6  10
+
+
+
+
9 
5 
4 
11 
16
16
16
16
+
+
+
+
5 
10 
9 
4 
5
5
5
5
36
Z
9
다자 환자 암호
(polygram substitution cipher)
• Hill 암호
자모
숫자
A
5
B
23
C
2
D
20
E
10
F
15
G
8
A-1 
JCOW
H
4
I
18
J
25
23
2
K
0
L
16
M
13
N
7
O
3
P
1
Q
19
5
18
1
1
2
20
11
20
6
25
25
2
22
25
25, 2, 3, 14
R
6
S
12
T
24
20, 10, 16, 5
A-1
20 = 23  25
10 = 2  25
16 = 2  25
5 = 25  25
+
+
+
+
U
21
V
17
W
14
X
22
Y
11
DELA
20  2
11  2
20  2
2 2
+
+
+
+
5 
18 
6 
22 
3
3
3
3
+
+
+
+
1 
1 
25 
25 
14
14
14
14
37
Z
9
환치(換置) 암호
• 경로(route) 환치 암호
• 원주(columnar) 환치 암호
• 도형(figure) 환치 암호
• 그릴(grille) 환치 암호
38
경로 환치 암호
(route transposition cipher)
• 평문 : 함북 오지에서 삼점육 규모 지진파 탐지
함
북
오
지
에
서
삼
점
육
규
모
지
진
파
탐
지
• 암호문 : 함에육진 북서규파 오삼모탐 지점지지
39
원주 환치 암호
(columnar transposition cipher)
• 평문 : 함북 오지에서 삼점육 규모 지진파 탐지
키워드
사
3
이
4
버
2
테
5
러
1
함
북
오
지
에
서
삼
점
육
규
모
지
진
파
탐
지
• 암호문 : 에규탐오 점진함서 모지북삼 지지육파
40
도형 환치 암호
(figure transposition cipher)
• 평문 : 함북 오지에서 삼점육 규모 지진파 탐지
함
서
지
키워드
5
상
북
삼
진
오
점
파
4
산
6
수
지
육
탐
3
리
에
규
모
지
1
과
7
학
2
관
• 암호문 : 오육지에 모북점탐 서진지함 삼파지규
41
그릴 환치 암호
(grille transposition cipher)
• 평문 : 함북 오지에서 삼점육 규모 지진파 탐지
함
북
오
지
서
에
삼
점
육
모
규
지
진
파
탐
지
• 암호문 : 서모지함 육지삼북 지점파에 진오규탐
42
암호문
울 동 뱃 이 외
섬 새 고 그 아
자 땅 우 독 우
43
혼합 암호
• 환자 환치 암호
– 19세기 말 Delastelle 암호
– 제1차 세계대전시 독일의 ADFGX 암호
및 ADFGVX 암호
• 난수 암호
– 1차로 환자 암호 변환후 2차로 난수 적용
44
환자 환치 암호
(Delastelle cipher)
Keyword
SEVEN SECURITY
4 15 23
4
1
5
2
3
4
S
E
C
U
R
1
ij
T
Y
A
B
5
D
F
G
H
K
2
L
M
N
O
P
3
Q
V
W
X
Z
• 평문 : WAIT T HE ORD ERS
3111 1 54 2 4 5 44 4
5241 1 21 2 3 4 13 4
• 암호문 : VTYLT DLHAQ SEQ
45
환자 환치 암호
(독일 ADFGX cipher)
Keyword
DEUTSCH SECURITY
A
D
F
G
X
A
D
E
U
T
S
D
C
H
A
B
F
F
G
ij
K
L
G
N
O
P
Q
X
V
W
X
Y
• 평문 : W A I T T H E O R D E R S
• 환자 : XD DF FD AG
AG DD AD GD GX AA AD GX AX
S
E
C
U
R
I
T
Y
5
2
1
7
4
3
6
8
M
X
D
D
F
F
D
A
G
R
A
G
D
D
A
D
G
D
G
X
A
A
A
D
G
X
A
X
Z
• 암호문 : DDADG XXDDD FAAXA
GAAGG
FDAGD X
46
암호 종류 (현대암호)
• 비밀키 암호 (대칭키 암호)
– 암호화 키와 복호화 키가 서로 같음
– 블록 암호 : 암복호화시 한번에 복수의 비트 처리
– 스트림 암호 : 암복호화시 비트 1개씩 처리
• 공개키 암호 (비대칭키 암호)
– 암호화 키와 복호화 키가 서로 다름
– 암호화 키는 공개, 복호화 키는 비공개
47
암호 종류 (현대암호)
비밀키 암호 (대칭키 암호)
블록 암호
스트림 암호
非公開
非公開
暗號化 키
復號化 키
48
암호 종류 (비밀키 암호)
• 사용자 : 2
• 사용자 : 5
• 사용자 : n
Key : 1
Key : 10
Key : n(n-1)/2
49
암호 종류 (비밀키 암호)
비밀키 암호의 특징
암호키와의 관계
암호화키 = 복호화키
암호화키
비밀
복호화키
비밀
비밀키 전송
필요
비밀키 관리
문제점
암호화 속도
빠름
50
암호 종류 (Block Cipher)
• DES (Data Encryption Standard)
– 1972년 미국 NBS(現 NIST)에서 표준암호 algorithm을
공모하였으며 IBM에서 개발한 LUCIFER를 변경하여
– 1977년 미국 연방 표준암호로 발표 (64-64-56-16)
• IDEA
(International Data Encryption Algorithm)
– 1990년 X. Lai와 L. Massey가 대수적 구조가 다른
세 가지 연산을 사용한 PES를 발표하였고
– 1991년 Markov 암호라는 개념을 적용, IPES를 발표
– 1992년 IDEA로 이름이 바뀜 (64-64-128-8)
51
암호 종류 (Block Cipher)
• AES (Advanced Encryption Standard)
– 1997년 미국 NIST는 DES를 대체할 차세대 표준
암호를 공모하여 2000년 벨기에 Rijndael 후보를
AES로 최종 선정
– 블록과 키 크기가 가변적(128, 192, 256 비트)이며
라운드 수도 가변적(10, 12, 14)
52
블록 암호 (우리나라)
• NEAT (National Encryption AlgoriThm)
– 1997년 제정된 국가기관용 표준암호
• SEED
– 1999년 개발된 민간용 표준암호
• NES (National Encryption Standard)
– 2003년 제정된 국가기관용 표준암호
• ARIA (Academy - Research Institute - Agency)
– 2004년 제정된 국가 표준암호
– 산업자원부 KS 규격 : KS X 1213
53
DES 암호 알고리즘
64bit
Plaintext
IP
L0
32bit
R0
32bit
32bit
F
R1 = L0F (R0,K1)
L1 = R0
16 round
F
R15 = L14F (R14,K15)
L15 = R14
F
R16 = L15F (R15,K16)
IP-1
L16 = R15
Ciphertext
64bit
54
DES 라운드 함수(F)
R0
32bit
E
48bit
48bit
6bit
6bit
48bit
6bit
S1
S2
S3
S4
4bit
4bit
4bit
6bit
4bit
6bit
S5
4bit
32bit
K1
6bit
6bit
6bit
S6
S7
S8
4bit
4bit
4bit
P
F(R0 ,K1)
32bit
55
DES S-box
• 8개의 S-box
행
- 6 bit 입력 → 4 bit 출력
(abcdef)
열
• S1
열
0
1
2
3
14 4 13
0 15 7
4
1 14
15 12 8
1
4
8
2
4
5
6
7
8
9
10 11 12 13 14 15
11
13
2
1
8
3 10
6 12 5
9
1 10
6 12 11 9
5
11 15 12 9 7
3 10
7
5
11 3 14 10 0
행
0
1
2
3
2 15
14 2
13 6
4
9
0
7
3
8
5
0
6 13
⇒ (100110)이 S1-box에 입력되면 (1000)이 출력
56
DES 취약점
• 표준 제정 당시부터
- 전수조사에 대한 취약성 지적
- S-box의 안전성에 대한 회의적 시각
• 결국 S-box의 충분치 못한 非선형성 때문에
DC 및 LC 공격에 취약 노출
⇒ 2000.10월 AES(차세대 표준암호)로 Rijndael 선정
57
DES 해독작업
해독대회
DES-I
DES-II-1
DES-II-2
DES-III
해독 시작일
1997. 1. 28
1998. 1. 13
1998. 7. 13
1999. 1. 18
Paul Kocher와 그가 설계한
DES-암호열쇠 探索器
해독 성공일
1997. 6. 17
1998. 2. 23
1998. 7. 17
1999. 1. 19
해독자
Rocke Verser
Distributed Net
EFF
Distributed Net, EFF
DES Cracker ‘DEEP CRACK’
microhip: AWT가 개발
소요시간
약 140일
약 39일
약 3일
22시간 15분
1800개가 넘는 microchip들이
DES-암호열쇠를 탐색한다
줄임말
EFF : Electronic Frontier Foundation
AWT : Advanced Wireless Technologies
58
암호 종류 (Stream Cipher)
• 개념도
키
동일키
이진수열
발생기
이진수열
발생기
암호문
평문
평문
59
암호 종류 (Stream Cipher)
• LFSR (Linear Feedback Shift Register)
x0
x1
xn-2
xn-1
…
c0x0 c1x1 ··· cn-1xn-1
- 특성다항식 (characteristic polynomial)
f(x) = 1 +c1x1+c2x2+…+cn-1xn-1+xn (c0=1)
60
암호 종류 (Stream Cipher)
• LFSR (Linear Feedback Shift Register)
– 원시다항식 (primitive polynomial) :
e=2n-1에 대하여 f(x)  (xe+1)이며 0<r<e에 대하여
f(x) † (xr+1) 일때 f(x)를 원시다항식이라 함
– 최대주기 조건 (maximum length LFSR : m-LFSR) :
특성다항식이 f(x)인 LFSR이 주기 2n-1 이 되기 위한
조건  f(x)가 원시다항식
• n차 원시다항식의 갯수 : φ(2n-1) / n
61
암호 종류 (Stream Cipher)
• LFSR (Linear Feedback Shift Register)
– m-LFSR 으로 생성되는 이진수열은 연속적인 2n개의
수열을 가지고 전체 수열을 구할 수 있음
– 몇 개의 m-LFSR을 非선형으로 결합한 非선형 알고
리즘에서 생성되는 이진수열도 어떤 수 M이 존재하여
연속적인 2M개의 수열을 가지고 전체 수열을 구할 수
있음
• 선형 복잡도 (Linear Complexity) : M
• 非선형 알고리즘에서 생성된 이진수열은 하나의 LFSR을
이용하여 발생 가능
62
암호 종류 (Stream Cipher)
• Shrinking Generator (非선형 알고리즘의 예)
– 구성
LFSR1
control
LFSR2
출력
– 동작
•
•
•
•
단계1
단계2
단계3
단계4
:
:
:
:
두 LFSR을 1회 동작
LFSR1의 출력이 0이면 단계4로 감
LFSR1의 출력이 1이면 LFSR2의 내용을 출력
단계1로 감
63
암호 종류 (Stream Ciphers)
• Shrinking Generator (非선형 알고리즘)
– LFSR1과 LFSR2의 특성다항식이 각각 m차 및 n차
원시다항식이고 gcd (2m-1, 2n-1) = 1 일때
• 주기 : 2m-1 (2n-1)
• 선형복잡도 : n(2m-2 ) 보다 크고 n(2m-1 ) 보다 작음
64
암호 종류 (현대암호)
공개키 암호 (비대칭키 암호)
公開
非公開
暗號化 키
復號化 키
65
암호 종류 (공개키 암호)
공개키 암호의 특징
암호키와의 관계
암호화키  복호화키
암호화키
공개
복호화키
비밀
비밀키 전송
불필요
공개키 관리
공개키인증 기반구조 (PKI)
암호화 속도
느림
66
암호 종류 (공개키 암호)
• 배낭꾸리기 문제의 어려움에 기반을 둔 암호
algorithm
– 1978년 R. Merkle과 M. Hellman 이 처음 소개
• 큰 정수를 소인수분해하기 어렵다는 데 기반을
둔 암호 algorithm
– RSA : 1978년 R. Rivest, A. Shamir, L. Adleman 이 개발
• 합성수를 法으로 하여 제곱근을 구하기 어렵다
는데 기반을 둔 암호 algorithm
– 1979년 O. Rabin 이 처음 소개
• 素數를 法으로 한 有限體에서 離散對數를 구하
기 어렵다는 데 기반을 둔 암호 algorithm
– 1984년 T. ElGamal 이 처음 소개
67
암호 종류 (공개키 암호)
• 符號理論에 기반을 둔 암호 algorithm
– 1978년 R. McElice가 代數的 符號인 Goppa 符號에
기반을 둔 암호 algorithm 소개
– 1986년 H. Niederreiter가 線型 誤謬訂正 符號에
기반을 둔 암호 algorithm 소개
• 非가환군인 땋임군(Braid Group)에서 공액
문제의 어려움에 기반을 둔 암호 algorithm
– 2000년 KAIST 고기형교수 외 5명이 소개
68
암호 종류 (공개키 암호)
• 소인수분해 문제 (IFP : Integer Factorization Problem)
- RSA (Rivest, Shamir, Adleman) 암호시스템 (1978년)
• 이산대수 문제 (DLP : Discrete Logarithm Problem)
- ElGamal 암호시스템 (1984년)
• 타원곡선 이산대수문제 (ECDLP : Elliptic Curve DLP)
- 타원곡선 암호시스템
69
RSA 공개키 암호시스템
• 구성
– 두개의 큰 소수 p와 q를 생성하여 n=p  q로 둠
– φ(n)=(p-1)(q-1)과 서로 소가 되는 e를 계산하고
e  d  1 (mod φ(n))이 되는 d를 계산함
• 암호시스템
–
–
–
–
공개키 : n, e
비밀키 : p, q, d
메시지 공간 : {M | 0 < M < n}
암호화 : C=E(M)=Me (mod n)
복호화 : M=D(C)=Cd (mod n)=Med (mod n)
70
RSA 소인수분해 역사
숫자
자릿수
성공 일자
사용된 방법
비 고
RSA-100
100
1991. 4. 1
MPQS
RSA-110
110
1992. 4. 14
MPQS
RSA-120
120
1993. 6. 9
MPQS
RSA-129
129
1994. 4
MPQS
RSA-130
130
1996. 4. 10
GNFS + QS
RSA-140
140
1999. 2. 2
GNFS
네덜란드
RSA-155
155
1999. 8. 22
GNFS
네덜란드
RSA-160
160
2003. 4. 1
GNFS
독일
RSA-576
174
2003. 12. 3
GNFS
독일, 상금 1만불
RSA-640
193
2005. 11. 2
GNFS
독일, 상금 2만불
숫자
자릿수
상금
숫자
자릿수
상금
RSA
RSA-704
212
3만불
RSA-1024
309
10만불
CHALLENGE
RSA-768
232
5만불
RSA-1536
463
15만불
RSA-896
270
7만5천불
RSA-2048
617
20만불
줄임말
MPQS : Multiple Polynomial Quadratic Sieve
GNFS : Generalized Number Field Sieve
QS : Quadratic Sieve
71
고전암호 분석기법
•  - 검정 ( - test)
– 단순 환자 암호 검정
•  - 검정 ( - test)
– 두 분포의 동일성 검정
•  - 검정 ( - test)
– 일치지수 (IC : Index of Coincidence)
72
암호 공격 방법
• 암호문 단독 공격 (ciphertext only attack)
• 알려진 평문 공격 (known plaintext attack)
• 선택 평문 공격 (chosen plaintext attack)
• 선택 암호문 공격 (chosen ciphertext
attack)
73
영문 문자 빈도 통계
(H.Beker & F.Piper, Cipher Systems, Wiley & Sons, 1982)
문자
빈도(%)
문자
빈도(%)
문자
빈도(%)
A
8.167
J
0.153
S
6.327
B
1.492
K
0.772
T
9.056
C
2.782
L
4.025
U
2.758
D
4.253
M
2.406
V
0.978
E
12.703
N
6.749
W
2.360
F
2.228
O
7.507
X
0.150
G
2.015
P
1.929
Y
1.974
H
6.094
Q
0.095
Z
0.074
I
6.966
R
5.987
74
영문 특성
 영어 단어
• 최대 빈도 길이 : 4
• 평균 길이 : 5.2
 빈도 순위
•
•
•
•
1문자
2연접
3연접
4연접
:
:
:
:
E T A O I N S H R …
EN RE ER NT TH ON IN TE …
ENT ION AND ING IVE TIO FOR …
TION EVEN TEEN ENTY …
75
한글 문자 빈도 통계
(강범모•김흥규, 한글 사용빈도의 분석, 고려대 민족문화연구소, 1997)
문자
빈도(%)
문자
빈도(%)
문자
빈도(%)
ㄱ
7.33
ㅈ
3.39
ㅓ
5.85
ㄴ
8.25
ㅊ
0.88
ㅕ
1.95
ㄷ
4.12
ㅋ
0.19
ㅗ
4.82
ㄹ
5.92
ㅌ
0.54
ㅛ
0.38
ㅁ
2.90
ㅍ
0.49
ㅜ
3.01
ㅂ
2.35
ㅎ
2.88
ㅠ
0.20
ㅅ
5.92
ㅏ
10.62
ㅡ
5.53
ㅇ
11.51
ㅑ
0.27
ㅣ
10.70
76
한글 특성
 빈도 순위
• 초성 : ㅇ(23.2%) ㄱ(14.3%) ㄷ(10.6%) ㅅ ㅈ …
• 중성 : ㅣ(24.7%) ㅏ(24.5%) ㅓ(13.5%) ㅡ ㅗ …
• 종성 : ㄴ(31.3%) ㄹ(18.2%) ㅇ(14.3%) ㅅ ㄱ …
* 전체 글자 중 46.0%가 종성 있음
 자모 빈도 순위
• ㅇ ㅏ ㅣ ㄴ ㄱ ㄹ ㅓ ㅅ ㅡ … (1979년)
• ㅇ ㅣ ㅏ ㄴ ㄱ ㄹ ㅡ ㅓ ㅅ … (1980년, 98,522자)
• ㅇ ㅣ ㅏ ㄴ ㄱ ㄹ ㅅ ㅓ ㅡ … (1997년, 2,951만자)
 음절 빈도 순위
• 이(3.68%) 다(3.04%) 는(2.64%) 의(1.99%) 에(1.95%) 을(1.85%) …
77
 - 검정 ( - test)
•  = Σ fi (fi-1) 로 정의하면
– E() = s2N(N-1)
– Var() = 4N3(s3–s22)+2N2(5s22+s2-6s3)
+2N(4s3-s2-3s22)
– 여기서 N = Σ fi ,
s2 = Σ pi2 (영문 : 0.0661, 랜덤 : 0.0385)
s3 = Σ pi3 (영문 : 0.00546, 랜덤 : 0.00148)
78
 - 검정 ( - test)
구분
E()
Var()
영문 0.0661N(N-1) 0.004344N3+0.1104N2-0.1148N
랜덤
0.0385N(N-1)
문장
0.07396N(N-1)
79
 - 검정 ( - test)
• Edgar Allan Poe, The Gold-Bug
53==+305))6*;4826)4=.)4=);806*;48+8!60))85;1=(;:=*8+
83(88)5*+;46(;88*96*?;8)*=(;485);5*+2:*=(;4956*2(5*4)8!8*;4069285);)6+8)4==;1(=9;48081;8:8=1;48+85;4)485+
528806*81(=9;48;(88;4(=?34;48)4=;161;:188;=?;
(N = 203, 8→33, ;→26)
-  = 3230
- 영어 문장 E()=0.0661*203*202=2710
- 랜덤 문장 E()=0.0385*203*202=1579
80
 - 검정 ( - test)
• 암호문 1
IBMQO PBIUO MBBGA JCZOF MUUQB
(B:5, I:2, M:3, O:3, Q:2, U:3)
=5*4+2*1+3*2+3*2+2*1+3*2=42
• 암호문 2
HKWZA RRPBQ BIVYS MPDMQ MVUDC
(B:2, D:2, M:3, P:2, Q:2, R:2, V:2)
=2*1+2*1+3*2+2*1+2*1+2*1+2*1=18
• 영어 문장 E() = 0.0661*25*24 = 39.7
• 랜덤 문장 E() = 0.0385*25*24 = 23.1
81
특이 사례
• 문장의 글자가 33개일 경우
– 영어 문장 E() = 0.0661*33*32 = 69.8
– 랜덤 문장 E() = 0.0385*33*32 = 40.6
– The quick brown fox jumps over a lazy dog
(a:2, e:2, o:4, r:2, u:2, 기타:1)
→  = 2+2+12+2+2 = 20
• 영문 소설의 단어가 50,000개일 경우
– E(‘e’의 빈도) = 50,000*5.2*12.7% = 33,020
– 1939년 미국 Ernest V. Wright 5만여 단어의
소설 “Gadsby” 완성
82
각국 s2 비교
국별
s2(문장)
s2(랜덤)
문자수
영국
0.0661
0.0385
26
프랑스
0.0778
”
”
독일
0.0762
”
”
이태리
0.0738
”
”
스페인
0.0775
”
”
포르투갈
0.0791
”
”
일본
0.0819
”
”
러시아
0.0529
0.0323
31
한국
0.07046
0.04167
24
비고
로마자化
83
 - 검정 ( - test)
• 암호문 3 (키워드가 40~50 자인 다표식 환자암호)
HSKUS
YPPNE
HQXZS
LIJHW
FCSKT
IEAXO
OARFU
AFROU
KKZLT
VMIZD
PMFHD
USAIG
ACKRK
ARLKF
GOOYB
KAQDW
ERJOY
NYNBD
PHKRT
EPQFV
UJJIX MSPTP
BOOGA OPGPR
VBGHM VSFRY
IJSLT MHKAH
XZVLI JRYAC
EXPYP QHDNO
BDOKE IKDUV
VQOBE GGSHQ
CCOAS BZUGB
KZ
(암호문
OIPCI
HBOUC
YTKHK
QTUVT
DWEJM
JIXNZ
TDVEV
HXOPU
UBBUN
WKZVU
SHPVG
VWZXV
XSMEC
SCAFP
JGNUD
LETDO
ZCOCU
OVTPO
길이 : 282)
84
 - 검정 ( - test)
• 암호문 3 (키워드 50 자로 가정)
Line
1
2
3
…
31
32
33
34
…
48
49
50
1
H
S
K
…
Y
P
P
N
…
G
P
R
2
H
B
O
…
Y
T
K
H
…
L
K
F
3
I
J
S
…
X
Z
V
L
…
A
F
P
4
I
E
A
…
O
A
R
F
…
D
U
V
5
T
D
V
…
H
X
O
P
…
K
R
T
6
C
C
O
…
K
Z

4
0
2
…
2
2
0
0
…
0
0
0
85
 - 검정 ( - test)
• 암호문 3 (키워드 50 자로 가정)
N=6
N=5

w
w

w
w
0
2
4
6
17
13
1
1
0
26
4
6
0
2
4
6
14
4
0
0
0
8
0
0
합계
32
36
합계
18
8
평균 
=36/32
= 1.13
평균 
= 8/18
= 0.44
86
 - 검정 ( - test)
• 암호문 3 (키워드 50 자로 가정)
구 분
N=6
N=5
영어 문장 : SD()
영어 문장 : E()
0.36
1.98
0.40
1.32
평균 관측치
1.13
0.44
랜덤 문장 : E()
1.15
0.26
0.77
0.29
랜덤 문장 : SD()
87
 - 검정 ( - test)
• 암호문 3 (키워드 49 자로 가정)
Line
1
2
3
…
36
37
38
39
…
47
48
49
1
H
S
K
…
U
S
A
I
…
P
G
P
2
R
H
B
…
K
V
W
Z
…
A
R
L
3
K
F
I
…
L
I
J
R
…
M
S
C
4
A
F
P
…
R
F
U
E
…
K
E
I
5
K
D
U
…
X
O
P
U
…
Z
L
T
6
P
H
K
…
K
Z

2
4
2
…
2
0
0
0
…
0
0
0
88
 - 검정 ( - test)
• 암호문 3 (키워드 49 자로 가정)
N=6
N=5

w
w

w
w
0
2
4
6
13
19
4
1
0
38
16
6
0
2
4
6
10
1
0
1
0
2
0
6
합계
37
60
합계
12
8
평균 
=60/37
= 1.62
평균 
= 8/12
= 0.67
89
 - 검정 ( - test)
• 암호문 3 (키워드 49 자로 가정)
구 분
N=6
N=5
영어 문장 : E()
1.98
1.32
평균 관측치
1.62
0.67
랜덤 문장 : E()
1.15
0.77
90
 - 검정 ( - test)
• 암호문 3 (키워드 48 자로 가정)
Line
1
2
3
…
41
42
43
44
…
46
47
48
1
H
S
K
…
B
O
O
G
…
O
P
G
2
P
R
H
…
X
V
L
I
…
H
W
A
3
R
L
K
…
R
Y
A
C
…
W
E
J
4
M
S
C
…
U
E
R
J
…
Y
B
D
5
O
K
E
…
O
P
U
Z
…
O
C
U
6
K
K
Z
…
K
Z

0
4
2
…
0
0
0
0
…
2
0
0
91
 - 검정 ( - test)
• 암호문 3 (키워드 48 자로 가정)
N=6
N=5

w
w

w
w
0
2
4
6
19
19
3
1
0
38
12
6
0
2
4
6
5
1
0
0
0
2
0
0
합계
42
56
합계
6
2
평균 
=56/42
= 1.33
평균 
= 2/6
= 0.33
92
 - 검정 ( - test)
• 암호문 3 (키워드 48 자로 가정)
구 분
N=6
N=5
영어 문장 : E()
1.98
1.32
평균 관측치
1.33
0.33
랜덤 문장 : E()
1.15
0.77
93
 - 검정 ( - test)
• 암호문 3 (키워드 43 자로 가정)
Line
1
2
3
4
5
6
7

1
2
3
…
23
24
25
26
…
41
42
43
H
S
K
…
P
C
I
W
…
B
O
O
G
A
O
…
A
C
K
R
…
H
K
V
W
Z
X
…
A
H
Q
T
…
O
O
Y
B
X
Z
…
E
A
X
O
…
O
J
I
X
N
Z
…
E
I
K
D
…
R
O
U
N
Y
N
O
C
U
K
B
Z
U
G
B
U
…
K
Z
2
0
2
…
4
6
2
0
4
6
2
…
94
 - 검정 ( - test)
• 암호문 3 (키워드 43 자로 가정)
N=7
N=6

w
w
0
12
44
18

0
2
4
6
8
14
w
3
9
4
1
1
1
w
0
18
16
6
8
14
0
2
4
6
4
6
11
3
합계
24
74
합계
19
62
평균 
=74/24
= 3.08
평균 
=62/19
= 3.26
95
 - 검정 ( - test)
• 암호문 3 (키워드 43 자로 가정)
구 분
N=7
N=6
영어 문장 : E()
2.78
1.98
평균 관측치
3.08
3.26
랜덤 문장 : E()
1.62
1.15
96
 - 검정 ( - test)
• 두 분포 {fi}, {f′i}가 주어졌을 때
•  = Σ fi f′i 로 정의하면
– E() = s2N1N2
– 여기서 N1 = Σ fi , N2 = Σ f′i
s2 = Σ pi2 (영문 : 0.0661, 랜덤 : 0.0385)
s3 = Σ pi3 (영문 : 0.00546, 랜덤 : 0.00148)
97
 - 검정 ( - test)
구분
영문
일치
E()
Var()
0.0661N1N2 N1N2[0.001086(N1+N2)+0.05957]
영문
0.0385N1N2 N1N2[0.001063(N1+N2)+0.03486]
불일치
랜덤
문장
0.0385N1N2
0.03698N1N2
98
 - 검정 ( - test)
• 암호문 4 (단순 환자암호)
KARFH DFYFL DUDLR LVSVP DLLVV YREFK
DVSDH KARYE RPDRE UVENP DSKAR FHDFY
FLDUD LERXD VS (암호문 길이 : 72)
• 암호문 5 (단순 환자암호)
XERRS YRFLR RWDHK HIRLF NHRKA DHUEF
XDMRR FEKAO RHREQ RHFQV DLR (암호문 길이
• 암호문 6 (단순 환자암호)
PAOYO NPDHI THJQY FBZDO VZMVJ PINVN
POGBN PAOMN XHXGO KXRPO MBPNB HSOHP
IMN (암호문 길이 : 63)
: 53)
99
 - 검정 ( - test)
구분

영문 E()
랜덤 E()
암호문 4
394
338
197
암호문 5
248
182
106
암호문 6
228
258
150
100
 - 검정 ( - test)
구분

E()
영문 일치
E()
영문 불일치
암호문 4•5
285
252
147
암호문 5•6
99
221
129
암호문 4•6
131
300
175
101
 - 검정 ( - test)
• 문장에서 임의의 두 문자 선택시
일치할 확률 : 
* 일치지수 (IC : Index of Coincidence)
– 영어 문장 : e = Σ pi2 = 0.0661
– 랜덤 문장 : r = Σ pi2 = 0.0385
102
 - 검정 ( - test)
• 암호문 7 (난수 암호)
UXMVN
QWXLE
FHBQM
KMUVR
MELLV
CELAE
RWGKW
OFXTK
TBXLD
QUBKB
PXPPS
EXQLD
EKNQY
FDMLF
UJBBA
LDWTO
HPAVG
HPOQG
BFPQH
WJJUJ
OIQBI
FFMDF
JDHAY
ALQCB
OERKI
GRWBU
EA
SSHKV TDTOE SGEOC UJARM
QYTQR DBUAJ VYIMZ MOXPR
ICOAU OULNX KYGIH SBFMK
MUNAJ SKSIM GYOEO ZOGCI
CZGGE JVWAZ CBVJK MHLWJ
XIMOA MHYQA WDAEN IXHSZ
WMIAS UEZQD FRFIO UPXDN
KMBXJ WKXDJ XUSQE SEGOH
(암호문 길이 : 332)
NDNNC
WEPWY
PQOFF
VYHZQ
IDAEU
EGZVM
MNWWY
FAVAK
103
 - 검정 ( - test)
• 암호문 8 (난수 암호)
RPDKY QVBUB LCBOY EKUID
WJXTF SZZRN XSVJD ZOXQJ
AVFRE JTKPD YBUWT DRPNB
MJPWD SGAPJ FQZPC GVZBY
GQQAK HRMRZ SPCSL RNUTH
XPGQT CFXEW AFLNN TPSTL
REAJW LTKQG LRCVB JLXAS
HEZSM IHHCR XOZHV KEUMV
(암호문 길이 : 313)
KTOKA
CWASF
QLSJW
OPMGU
EHAOM
ZSKBE
EDREP
ETKLI
QULCN
RNRIE
XMHSX
GVFLK
UGVNA
PPDSR
ACWDX
HHQNI
ZYWNH
IWZDQ
HDPIY
XOKXO
YGPMJ
ZCXHV
MPWPR
CSB
IWXMN
MIBXD
ALOKJ
WBQZM
IFWFR
WFXKT
TIISD
104
 - 검정 ( - test)
구분

랜덤 E()
영문 E()
암호문 7
4206
4231
7264
암호문 8
3608
3760
6455
105
 - 검정 ( - test)
구분

암호문 7•8
23
e
r
영어 문장
랜덤 문장
21
12
106
 - 검정 ( - test)
• 암호문 7
UXMVN QUBKB BFPQH SSHKV TDTOE SGEOC UJARM NDNNC
PRESI DENT (평문 1)
FGIDF NQOR (난자)
• 암호문 8
RPDKY QVBUB LCBOY EKUID KTOKA QULCN ZYWNH IWXMN
MJVHT DFND (평문 2)
107
 - 검정 ( - test)
• 암호문 7
UXMVN QUBKB BFPQH SSHKV TDTOE SGEOC UJARM NDNNC
(평문 1) PRES IDENT
(난자)
UJNU FAJAJ
• 암호문 8
RPDKY QVBUB LCBOY EKUID KTOKA QULCN ZYWNH IWXMN
(평문 2) ENAN DWOME
108
질문 및 토의
109
감사합니다.
110