1
Chap 3. Chap 3. 관용 암호 방식관용 암호 방식 현대적 기법 현대적 기법
2
목차목차 3.1 3.1 단순 단순 DESDES 3.2 3.2 블록 암호 기법의 원리블록 암호 기법의 원리 3.3 DES3.3 DES
DES DES 의 공격 방법 DES 작동 모드
3
과제물과제물 단순 단순 DES DES 의 암호화의 암호화 // 복호화복호화 입력 입력
평문 : 본인의 영문 이름 키 : 원하는 10 비트 키를 사용 ( 예 : 10 0110 0001)
제출방법 제출방법 : A4: A4 에 손으로 암호화 과정 및 복호화 과정에 손으로 암호화 과정 및 복호화 과정
4
3.1 3.1 단순 단순 DESDES
DES (Data Encryption Standard)DES (Data Encryption Standard) IBM 에서 Lucifer System 을 개선하여 만듬 1977 년 미 상무성의 국립 표준국 (NBS) 에서 표준 암호 알고리즘으로
채택 64 비트 블럭 암호 알고리즘 56 비트 키를 사용
– 64 비트 중 8 비트는 parity check 로 사용 기본 구조
• round 수 : 16 round
• 복호화는 암호화의 역순 단순 단순 DESDES
교육용 알고리즘 • 8 비트 평문 블럭 과 10 비트 키를 사용
5
6
기본 함수기본 함수 IP (Initial Permutation) : 초기순열 함수 fK
• 전치 (transposition)• 치환 (substitution)
SW : 데이터의 두 절반을 상호 교환하는 함수 함수 fK
IP-1 (Inverse Initial Permutation) : 초기 순열의 역인 순열 함수 암호화암호화 // 복호화복호화
Ciphertext = IP-1(fK2(SW(fK1(IP(Plaintext))))) Plaintext = IP-1(fK1(SW(fK2(IP(Ciphertext)))))
7
8
키생성키생성 S-DES 는 10-bit Key 를 사용
• 두개의 8-bit sub key 생성 P10( k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) =( k3, k5, k2, k7, k4, k10, k1, k9, k8, k6)
P10P10
입력 입력 : 1 2 3 4 5 6 7 8 9 10: 1 2 3 4 5 6 7 8 9 10
출력 출력 : 3 5 2 7 4 10 1 9 8 6: 3 5 2 7 4 10 1 9 8 6
ex : Key(1010000010) --> (1000001100)ex : Key(1010000010) --> (1000001100)
9
LS-1 : 1 비트 Circular Left Shift 연산 ex : (10001) --> (00011)ex : (10001) --> (00011)
P8 • 입력 : 10 비트• 출력 : 8 비트• P8( k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) =( k6, k3, k7, k4, k8, k5, k10, k9)
P8P8
6 3 7 4 8 5 10 9 6 3 7 4 8 5 10 9
10
1 0 0 1 0 0 1 1 1 0
33 5 2 7 4 10 1 9 8 65 2 7 4 10 1 9 8 60 0 0 1 1 0 1 1 1 0
1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10
0 0 1 1 0 1 1 1 0 0
6 3 7 4 8 5 10 96 3 7 4 8 5 10 9
1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10
1 1 1 1 1 0 0 0
0 1 1 0 0 1 1 0 0 11 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10
6 3 7 4 8 5 10 96 3 7 4 8 5 10 91 1 1 0 0 0 1 0
11
12
13
암호화 과정암호화 과정 입력 : 8 비트 출력 : 8 비트
IP( 초기 순열 ) 과 IP-1( 역 초기 순열 )
• M = (IP-1(IP(M))
IPIP
입력 입력 : : 11 2 3 4 5 6 7 8 2 3 4 5 6 7 8출력 출력 : : 2 6 3 2 6 3 11 4 8 5 7 4 8 5 7
IPIP-1-1
출력 출력 : 4 1 3 5 7 2 8 6: 4 1 3 5 7 2 8 6
14
함수 함수 ffKK 전치 (transposition) 치환 (substitution) 입력 8 비트
• L (Left most 4 bits)
• R (Right most 4 bits) 처리
• fK = ( L XOR F( R, SK ), R )
• SK (Sub Key = K1 or K2)
• 함수 F() 사용
15
16
E/P (Expansion/Permutation)E/P (Expansion/Permutation) 입력 : 4 비트 출력 : 8 비트
P4P4
E/PE/P
4 1 2 3 2 3 4 14 1 2 3 2 3 4 1
P4P4
2 4 3 12 4 3 1
17
S-Box S-Box 입력 : 4 비트 ( 1 0 1 0 ) 처리
• 행 : 1 번째와 4 번째 비트 ( 1 0 )
• 열 : 2 번째와 3 번째 비트 ( 0 1 )
00 11 22 33
00 11 00 33 22
11 33 22 11 00
22 00 22 11 33
33 33 11 33 22
S0 S1
00 11 22 33
00 00 11 22 33
11 22 00 11 33
22 33 00 11 00
33 22 11 00 33
18
19
S-DESS-DES 분석분석 Brute force 공격 가능
• 10 비트 키로 단지 2^10 = 1024 가지의 가능성 암호해독 가능
• 기지 평문 공격 : 단일평문과 그 출력 암호문이 알려져 있을때
• 10 개의 미지수 ( 키 ) 를 갖는 8 개의 비 선형 방정식 (p, c)으로 나타낼 수 잇음
=> 공격 가능
20
3.2 3.2 블록암호 기법의 원리블록암호 기법의 원리 스트림 암호와 블록 암호 기법스트림 암호와 블록 암호 기법
스트림 암호 기법 • 한번에 1 비트 혹은 1 바이트의 디지털 데이터 스트림을
암호화 • Vigenere 암호 , Vernam 암호
블록 암호 기법• 평문 블록 전체를 가지고 같은 크기의 암호문 블록을 생성• 전형적으로 64 비트를 사용• 스트림 암호보다 더 넓은 범위에 응용 가능• 대부분의 네트워크 암호는 블록 암호 방식을 따름• Feistel 블록 암호 기법의 구조에 따름
21
Feistel Feistel 암호 구조의 유도암호 구조의 유도 입력 : n 비트 출력 : n 비트 암호화가 역이 성립하기 위한 조건
• Reversible
• Mapping
Reversible Mapping
P C
00 11
01 10
10 00
11 01
Irreversible Mapping
P C
00 11
01 10
10 01
11 01
22
그림 3.4 참조• N=4 일때 블록 치환• 작은 블록으로 인해 취약점 존재
적당한 크기의 n 설정 방법• 크면 클수록 암호화 강도는 높아짐• 작으면 작을수록 구현과 성능 면에서는 좋음
=> 적당한 암호학적 강도를 갖고 구현이 용이할 정도의 크기선택
23
Feistel Feistel 암호방식암호방식 적 (product) 암호의 개념을 이용하여 단순한 치환 암호를
개략적으로 설계할 수 있음을 제안 치환과 순열을 번갈아 수행하는 암호 방식의 사용을 제안 혼돈 (confusion) 함수와 확장 (diffusion) 함수를 번갈아 수행
현재 사용하고 있는 모든 중요한 대칭 블록 암호의 기본구조
24
확산과 혼돈확산과 혼돈 통계적 분석에 기초한 암호 해독 방지법 => Claude Shannon
에 의해 소개된 방법 확산 (diffusion)
• 평문의 통계적 구조가 암호문의 광범위한 통계 값에 분산되어 버리는 방식
• 각 평문 숫자 (digit) 가 다수의 암호문 숫자 값에 영향을 주게 함으로서 가능
• 예 > 문자 메시지 M = m1 m2 m3 … 를 통하여 하나의 암호 문자 yn 을 생성하는 방식
yn = sum( 1 <= i <= k ) mn+i mod 26
25
혼돈• 키를 발견하기 어렵게 하기 위한 방법• 암호문에 대한 통계 값과 암호 키 값 사이의 관계를 가능한
복잡하게 만드는 것• 복잡한 치환 알고리즘을 사용함으로 가능
26
Plaintext(2w bits)
w bits w bits
XOR F
XOR F
XOR F
Ciphertext(2w bits)
Round1L0 R0
L1 R1
K1
Roundi
Li Ri
Ki
Roundn
Ln Rn
Kn
Ln+1 Rn+1
Feistel 암호구조
27
Feistel Feistel 암호 구조암호 구조 왼쪽 반의 데이터에 치환 (substitution) 이 수행됨 치환 다음에는 데이터의 두 개의 반을 교환하는 순열 (permut
ation) 이 수행됨 SDESSDES 와 와 Feistel Feistel 의 차이점의 차이점
알고리즘이 순열 함수로 시작되고 종료됨• IP
• IP-1
28
Feistel Feistel 네트워크의 매개변수네트워크의 매개변수 블록크기 : 64 비트의 블록 크기이면 적당 키 크기 : 64 비트 또는 그 이하의 키 크기는 부적절하며 128
비트가 일반적 반복 수 : 단일 과정은 보안에 부적절하지만 다중 반복
과정은 보안성을 증가시킴 , 전형적인 반복 횟수는 16 회 서브키 생성 알고리즘 : 알고리즘이 복잡할수록 암호해독이
어려워짐 반복 함수 : 역시 함수가 복잡할수록 일반적으로 암호
해독에 더 강해짐
29
Plaintext(2w bits)
w bits w bits
XOR F
LE0 RE0K1
XORF
K2RE1 LE1
XOR F
LE14 RE14K15
XORF
K16RE15 LE15
LE16 RE16
RE16 LE16
Ciphertext(2w bits)
Plaintext(2w bits)
w bits w bits
K1
K2
K15
K16
XORF
XOR F
XORF
XOR F
LD0=RE16 RD0=LE16
Ciphertext(2w bits)
RD1=LE15 LD1=RE15
LD2=RE14 RD2=LE14
LD14=RE2 RD14=LE2
RD15=LE1 LD15=RE1
LD16=RE0 RD16=LE0
LD16=RE0RD16=LE0
30
암호화 과정암호화 과정 LE16 = RE15 RE16 = LE15 XOR F(RE15,K16)
복호화 과정복호화 과정 LD1 = RD0 = LE16 = RE15 RD1 = LD0 XOR F(RD0,K16)
= RE16 XOR F(RE15,K16)
= LE15 XOR F(RE15,K16) XOR F(RE15,K16)
31
특징특징 IBM 에서 Lucifer System 을 개선하여 만듬 1977 년 미 상무성의 국립 표준국 (NBS) 에서 표준 암호
알고리즘으로 채택 64 비트 블럭 암호 알고리즘 56 비트 키를 사용
– 64 비트 중 8 비트는 parity check 로 사용 기본 구조
• round 수 : 16 round
• 복호화는 암호화의 역순 최근에는 DES 암호화를 세 개의 키로 세 번 반복함으로써
암호의 강도를 높인 Triple-DES 를 사용
3.3 DES 3.3 DES (Data Encryption Standard)(Data Encryption Standard)
32
DESDES 의 역사의 역사 전용 암호시스템 : 타 그룹간의 통신에 불리 ==> 데이터 암호화
표준이 필요 공개암호 표준 : 미국 연방 정부가 움직임 표준화 검토 (1972), 적합한 암호 알고리즘 조사 1973 년 5 월 : 암호방식 공모 (1 차 )
1974 년 8 월 :
2 차 공모 ==>IBM 이 요건을 갖춤
==>NBS 가 요건을 NSP 에 의뢰
33
조사에 대한 요구조사에 대한 요구
1. It must provide a high level of security.
2. It must be completely specified and easy to understand.
3. The security provided by the algorithm must not be based on the
secrecy of the algorithm.
4. It must be all users and suppliers.
34
조사에 대한 요구 조사에 대한 요구 (( 계속계속 ))
5. It must be adaptable for use in diverse applications.
6. It must be economical to implement in electronic devices and be
efficient to use.
7. It must be amenable to validation.
8. It must be exportable.
35
DESDES 의 역사의 역사 (( 계속계속 ))
1975 년 ~1977: 일반 comment, 계약 체결
1977:NBS(NIST) 가 DES 를 표준 암호 알고리즘으로 채택
U.S.banks have been adopted DES
NBS postponed guarantee term of DES from till 1988 to till 1993
NSA proposed CCEP(Commercial COMSEC Endorsement Program; 상용
통신 안전 보증 계획 )instead of DES
U.S. bank expect to continue the use of DES
36
3.3.1 DES3.3.1 DES DESDES 의 기본 구조 의 기본 구조 (( 데이타 암호화부데이타 암호화부 ))
입 력입 력
K1
K2
::
초기 치환초기 치환
LL00
LL11
LL22
RR00
RR11
RR22
::
f
f
RR1616 LL1616
f
역초기 치환역초기 치환
출 력출 력
K16
Li = Ri-1 Ri = Li-1 XOR f (Ri-1, Ki)
37
초기 치환 초기 치환 IPIP
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
38
ff 함수의 구성도함수의 구성도
R(32bit)R(32bit)
확장순열
48bit48bit K (48bit)K (48bit)
S1S1 S2S2 S8S8S7S7. . . .
P
32 bit32 bit
S-box table
39
확장순열 확장순열
32 1 2 3 4 532 1 2 3 4 5
4 5 6 7 8 94 5 6 7 8 9
8 9 10 11 12 138 9 10 11 12 13
12 13 14 15 16 1712 13 14 15 16 17
16 17 18 19 20 2116 17 18 19 20 21
20 21 22 23 24 2520 21 22 23 24 25
24 25 26 27 28 2924 25 26 27 28 29
28 29 30 31 32 1 28 29 30 31 32 1
치환 치환 PP
16 7 20 2116 7 20 21
29 12 28 1729 12 28 17
1 15 23 261 15 23 26
5 18 31 105 18 31 10
2 8 24 142 8 24 14
32 27 3 932 27 3 9
19 13 30 619 13 30 6
22 11 4 2522 11 4 25
40
S-box TableS-box Table
S1S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 714 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 80 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 04 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 1315 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
• 예 ) 1 0 1 1 0 1 ------ 6 비트 입력
행 (3 행 ) 열 (6 열 ) 10 진수 ‘ 1’ 를 4 비트로 출력 : 0 0 0 10 0 0 1
41
DESDES 의 기본 구조 의 기본 구조 (( 키 생성부키 생성부 ))
키키
순열선택순열선택 11
cc00
좌측 시프트좌측 시프트
cc11
cc22
좌측 시프트좌측 시프트
cc1515
좌측 시프트좌측 시프트
dd00
좌측 시프트좌측 시프트
dd11
dd22
좌측 시프트좌측 시프트
dd1515
좌측 시프트좌측 시프트
순열선택순열선택 22
순열선택 순열선택 22
순열선택 순열선택 22
K1
K2
K16
::
::
::
42
순열선택 1(PC1)
57 49 41 33 25 17 957 49 41 33 25 17 9
1 58 50 42 34 26 181 58 50 42 34 26 18
10 2 59 51 43 35 2710 2 59 51 43 35 27
19 11 3 60 52 44 3619 11 3 60 52 44 36
63 55 47 39 31 23 1563 55 47 39 31 23 15
7 62 54 46 38 30 227 62 54 46 38 30 22
14 6 61 53 45 37 2914 6 61 53 45 37 29
21 13 5 28 20 12 421 13 5 28 20 12 4
순열선택 2(PC2)
14 17 11 24 1 5 14 17 11 24 1 5
3 28 15 6 21 103 28 15 6 21 10
23 19 2 4 26 823 19 2 4 26 8
16 7 27 20 13 216 7 27 20 13 2
41 52 31 37 47 5541 52 31 37 47 55
30 40 51 45 33 3830 40 51 45 33 38
44 49 39 56 34 5344 49 39 56 34 53
46 42 50 36 29 3246 42 50 36 29 32
43
쉬프트 스케줄 쉬프트 스케줄 라운드 수 좌측 쉬프트 수 1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 2 11 2 12 2 13 2 14 2 15 2 16 1
44
DESDES 는 강한 쇄도 효과는 강한 쇄도 효과 (Avalanche Effet)(Avalanche Effet) 를 갖는다를 갖는다 ..
DESDES 에 관한 우려사항에 관한 우려사항
미 정부의 채택이후 DES 의 보안 수준에 대한 우려가 지속 .
• 알고리즘의 성질을 이용한 암호 해독의 가능성– 예 ) s - box 의 약점에 대한 공격 가능성 주장 제기됨 그러나 , 약점을 발견한 사람은 현재 존재 하지 않음
• 키 길이에 관한 우려– Key Serarch Machine ( 기지 평문 공격 )
Cost Expected search Time $ 100,000 35hours $1,000,000 3.5hours $10,000,000 21minutes
45
– Brute force Attack
; 1970 년대 /80 년대 --- low computing power
90 년대 --- high computing power
– 미국 수출 허용 기준인 40 비트의 키 : Michael Wienerd 의 key search machine 으로 0.2 초만에 해독
가능
Key size Number of One Encryption 10Key size Number of One Encryption 1066 Encryption Encryption
Alternative Keys per micro sec per micro sec
32bits 232bits 22323 = 4.3 * 10 = 4.3 * 1099 35.8 minutes 2.15ms 35.8 minutes 2.15ms
56bits 256bits 25656 = 7.2 * 10 = 7.2 * 101616 1142years 10.01h 1142years 10.01h
128bits 2128bits 2128128 = 3.4 * 10 = 3.4 * 103838 10 102424years 5.4 * 10years 5.4 * 101818 years years
46
3.3.2 DES3.3.2 DES 의 공격 방법의 공격 방법 공격 방법공격 방법
차분 암호 해독 (Differential Cryptanalysis)
• DES 에 적용해서 널리 알려짐• 255 미만의 복잡도로 DES 를 해독• 247 의 선택평문을 가지고 247 차수로 DES 를 해독
선형 암호 해독 (Linear Cryptanalysis)
• 247 기지 평문으로 해독가능• 기지 평문이 선택 평문보다 구하기 쉽지만 DES
공격으로서의 선형 암호 해독은 가능성이 없다 .
• 선형 암호 해독의 타당성의 주장이 약하다 .
47
3.3.3 DES 3.3.3 DES 작동 모드작동 모드운용모드 설명 전형적인 응용
ECB 블록이 독립적으로 암호화 단일 값의 기밀 전송 (예:암호키)
CBC 암호알고리즘의 입력이 다음 평문 64 비트 선행 64 비트의 XOR의 결과
범용 블록형 전송 (인증)
CFB 입력은 한 번에 j 비트씩 처리됨 선행 암호문 블록이 암호 알고리즘의 입력으로 사용되어 의사난수 출력을 생성하고, 이것은 다시 평문과 XOR되어 암호 블록을 생성
범용 스트림형 전송 (인증)
OFB CFB 와 유사한 방식이며 암호 알고리즘의 입력으로 선행단계의 DES출력을 사용
잡음있는 채널상의 스트림형 전송
(예: 위성통신)
48
ECB (Electronic Codebook) ECB (Electronic Codebook) 모드의 특징모드의 특징 평문은 64 비트씩 처리
마지막 비트가 64 비트 미만이면 나머지 비트를 채운 후 진행
동일한 블록이 입력되면 암호문도 같다 .
--> 해독될 위험성이 있다 .
중요 데이타가 같은 위치에 있을 때 취약블럭이 상호 결합하지 않음
=> 연속적인 블럭 암호화법 ; Chaining 기법
49
ECB (Electronic Codebook) ECB (Electronic Codebook) 모드모드 암호화
DES
암호화
P1
C1
K DES
암호화
P2
C2
KDES
암호화
PN
CN
K......
DES
복호화
C1
P1
K
복호화
DES
복호화
CN
PN
KDES
복호화
C2
P2
K ......
50
CBC (Cipher Block Chaining) CBC (Cipher Block Chaining) 모드의 특징모드의 특징
하나의 암호화 스텝의 출력을 사용하여 다음 입력으로 수정
각각의 암호 블럭은 서로 영향을 받음
선행하는 평문 블럭 전체에 좌우됨
Cn : 모든 평문 블럭 P1, P2, ..., Pn 의 함수
암호화 : Cn=Ek(Pn+C n-1)
복호화 : Qn=Dk (Cn) + C n-1 =Pn
Padding
Self-Recovering 기능
51
CBC (Cipher Block Chaining) CBC (Cipher Block Chaining) 모드모드 암호화
복호화
DES
복호화
C1
P1
K
DES
암호화
P2
C2
K
DES
암호화
PN
CN
K
......C C N-1N-1
DES
암호화
P1
C1
K
DES
복호화
C2
P2
K
DES
복호화
CN
PN
K
C C N-1N-1
......
52
CFB (Cipher Feedback) CFB (Cipher Feedback) 모드의 특징모드의 특징 문자의 길이 : m(1<m<64)
암호화 하기 위한 m 비트 : DES 출력의 m 비트
DES 알고리즘이 회선 양단에서 암호화로서 사용
Shift Register : 매번 새로운 비트로 교체
암호문은 선행하는 평문 모두의 함수
53
CFB (Cipher Feedback) CFB (Cipher Feedback) 모드모드 암호화
64 비트 레지스터
DES 암호화
선택 j 비트
KK
PP11 CC11
64 비트 레지스터
DES 암호화
선택 j 비트
KK
PP22 CC22
64 비트 레지스터
DES 암호화
선택 j 비트
KK
PPNN CCNN
......CCN-1N-1
복호화
64 비트 레지스터
DES 복호화
선택 j 비트
KK
PP11 CC11
64 비트 레지스터
DES 복호화
선택 j 비트
KK
PP22 CC22
64 비트 레지스터
DES 복호화
선택 j 비트
KK
PPNN CCNN
......CCN-1N-1
54
OFB (Output Feedback) OFB (Output Feedback) 모드의 특징모드의 특징
CBC, CFB 의 Error Extention 에 대한 응용
Vernam type
키 스트림 : 주기성이 있음
Feedback 의 출발 위치를 제외하고는 CFB 와 유사
55
OFB (Output Feedback) OFB (Output Feedback) 모드모드
64 비트 레지스터
DES 암호화
선택 j 비트
KK
PP11 CC11
64 비트 레지스터
DES 암호화
선택 j 비트
KK
PP22 CC22
64 비트 레지스터
DES 암호화
선택 j 비트
KK
PPNN CCNN
......OON-1N-1
64 비트 레지스터
DES 복호화
선택 j 비트
KK
PP11 CC11
64 비트 레지스터
DES 복호화
선택 j 비트
KK
PP22 CC22
64 비트 레지스터
DES 복호화
선택 j 비트
KK
PPNN CCNN
......OON-1N-1
복호화
암호화
Top Related