Upload
xantha-dennis
View
65
Download
1
Embed Size (px)
DESCRIPTION
Chapter 6 Contemporary Symmetric Ciphers. Overview. 1.Double DES 2.Triple DES(Two Key and Three Key) 3.Block Cipher Modes of Operation 4. RC5. 1. Doublie DES. Triple DES Brute-frorce 공격에 DES 의 잠재적인 취약점으로 인해 그 대안을 찾는 것이 고려됨 . 완전히 새로운 알고리즘 설계 DES 의 알고리즘과 Key 를 여러 번 사용 Double DES - PowerPoint PPT Presentation
Citation preview
Chapter 6Contemporary Symmetric Ciphers
2Network & Information Security LabNetwork & Information Security Lab
Overview
1.Double DES 2.Triple DES(Two Key and Three Key) 3.Block Cipher Modes of Operation 4. RC5
3Network & Information Security LabNetwork & Information Security Lab
Triple DES Brute-frorce 공격에 DES 의 잠재적인 취약점으로 인해 그 대안을
찾는 것이 고려됨 . 완전히 새로운 알고리즘 설계 DES 의 알고리즘과 Key 를 여러 번 사용
Double DES 복수 암호화의 가장 단순한 방법은 두번의 암호화 방법과 두개의
키를 가지는 것 . Encryption
C = Ek2[Ek1[P]]
Ciphertext plaintext
Key
1. Doublie DES
4Network & Information Security LabNetwork & Information Security Lab
Double DES 의 형태
1. Doublie DES
5Network & Information Security LabNetwork & Information Security Lab
2. Triple DES
6Network & Information Security LabNetwork & Information Security Lab
Reduction to a Single Stage 2 개의 키를 사용하는 DES 의 경우 56Bit Key 값을 가지는 두 Key K1 과 K2 가
주어진다면 간단하게 K3 의 Key 를 찾을 수 있음
이러한 속성 때문에 , 이중 암호화 경우 그 결과가 56Bit Key 를 가진 단일 암호화와 암호문의 강도가 같기 때문에 효과적이지 못함
2 1 3[ [ ]] [ ]K K KE E P E P
2. Triple DES
7Network & Information Security LabNetwork & Information Security Lab
Meet-in-the-Middle Attack DIFF77 에 의하여 처음 알려졌으며 , (P,C) 와 같은 알려진 평문과 암호문이 쌍으로 주어진다면 아래와 같은
공격이 가능
평문 P 를 256 개의 가능한 모든 키 K1 으로 암호화 하여 생성된 암호문을 테이블에 저장
암호문 C 를 키 K2 의 가능한 모든 256 개의 값으로 복호화한 복호문을 테이블에 저장
각각의 두 테이블이 일치하는지 확인 위 과정이 일치한다면 새로운 (P,C) 쌍에 대하여 두 Key 검사 두 Key 정확한 암호문을 만든다면 Key 검출 성공
1 2[ ] [ ]K KX E P D C
2. Triple DES
8Network & Information Security LabNetwork & Information Security Lab
Meet-in-the-Middle Attack
56( 1 , ), 1,...., 2iiA E K P i
56( 2 , ), 1,...., 2jiB D K C j
??i jA B( 2 , ( 1 , )) ??j i
New NewC E K E K P
1 1
2 2
i
j
K K
K K
2. Triple DES
9Network & Information Security LabNetwork & Information Security Lab
Triple-DES with Two-Keys Meet-in-the-middle attack 공격의 확실한 대응책
세 개의 다른 Key 로 세 번 암호화
기법은 위에 언급된 평문 공격시 필요한 비용을 2112 로 증가시킴 2 X 56 = 112 의 다소 큰 키 길이를 요구하는 단점이 존재함 Tuchman 은 두개의 Key 를 사용하는 Triple DES 제안
이 함수는 E – D – E 순서를 가지며 , C = EK1[DK2[EK1[P]]] 로 수식화 할 수 있음 .
Key 관리는 ANSI X.97 과 ISO8732 사용에 채택 현재 3DES 에 대한 실질적인 암호학적 공격이 존재하지 않음
2. Triple DES
10Network & Information Security LabNetwork & Information Security Lab
3DES 에 제안된 유효한 공격 기법 Merkel and Hellman 의 제안
처음 중간 값을 생성하는 평문 값을 발견하여 키를 검출하는 기법 두 키를 결정하는 Meet-in-the-middle Attack 중간 평문 A 와 C 를 알 수 있다면 Double DES 과 유사하게 공격가능
보통 공격자는 2 개의 암호키 없이는 A 와 B 값을 알 수 없음 공격자는 A 가 될 가능성이 있는 값을 선택 A 를 생성하는 평문 / 암호문 (P,C) 쌍을 발견했다고 가정
( 1) ( 2) ( 1)
) ( 1, ), ( 2, ), ( 1, )E K D K E K
A E K P B D K A C E K B
P A B C
예
2. Triple DES
11Network & Information Security LabNetwork & Information Security Lab
공격자의 공격 단계 1 단계
P,C 쌍을 획득했다고 가정하며 , 이 값을 테이블에 위치 시킴 .
2 단계 A 를 찾기 위한 임의의 값 a 를 선택하고 P = Di[a] 로 정의된 두 번째
테이블을 생성 256 개의 가능한 키 K1=i 에 의해 생성될 수 있어야 함
56
( 1 , ), 1 2
Select a
P D K a K Number
( 1) ( 2) ( 1)E K D K E KP A B C a
2. Triple DES
12Network & Information Security LabNetwork & Information Security Lab
다음과 같은 방법으로 B 의 값을 생성하여 세번째 테이블에 채움 . B = Di[C]
B
( 1) ( 2) ( 1)E K D K E KP A B C
a
56( 1, ), 1 2B D K C K Number
2. Triple DES
13Network & Information Security LabNetwork & Information Security Lab
3 단계 테이블 2 에서 K1 의 후보 값을 가지고 있고 , K2 의 값을 찾을 수 있다 . 256 개의 가능한 키 K2=j 각각에 대하여 선택된 a 의 값으로 두 번째
중간 값을 구한다 . Bj = Dj [a]
56( 2 , ), 2 2B D K a K Number
B
( 1) ( 2) ( 1)E K D K E KP A B C
( 2, )E K a ????
2. Triple DES
14Network & Information Security LabNetwork & Information Security Lab
4 단계 각 1,2,3 단계에서 산출한 키를 다른 (P,C) 쌍에 적용 키 쌍이 정상적인 암호문을 생성 한다면 작업 완료 성공한 쌍이 존재 하지 않는다면 새로운 a 로 1 단계 부터 반복
예산 되는 공격 실행 시간 (256)264/n = 2120-log
2n
2. Triple DES
15Network & Information Security LabNetwork & Information Security Lab
Triple-DES with Three-Keys 위에서 언급된 공격에 대해 저항성을 가짐 보다 강한 보안성을 위해 3 개의 암 / 복호용 키를 사용함 세 개의 크기를 가진 3DS 는 168Bit 의 키 크기를 가짐 C = EK3[DK2[EK1[P]]]
Triple 는 PGP 와 S/mime 과 같은 인터넷 기반의 응용프로그램에 최적화 되어 있으며 보편적으로 사용되고 있는 암호 알고리즘의 하나임
2. Triple DES
16Network & Information Security LabNetwork & Information Security Lab
3. Block Cipher Modes of Operration 암호화 알고리즘의 효과적인 사용을 위하여 다양한 형태로 암 /
복호화 를 수행할 수 있음 ECB Mode CBC Mode Feedback Mode Counter Mode
3. Block Cipher Modes of Operation
17Network & Information Security LabNetwork & Information Security Lab
ECB Mode
매 시간마다 각각의 블록을 동일한 키로 암 / 복호화 시키는 기법 통신 수행 시 Signal value 의 기밀성을 유지하기 위해 사용함 동일한 패턴에 의해 암 / 복호화 작업이 수행되므로 이러한 규칙저인 패턴을 파악 ,
암호 키를 알아낼 수 있다는 문제점이 존재
Encrypt
1P
K Encrypt
2P
K Encrypt
nP
K………………
1Time 2Time Time n
Encrypt
1P
1C
K Encrypt
2P
2C
K Encrypt
nP
nC
K………………
( , ), ( 1,...., )
( , ), ( 1,...., )
i
i
C E K Pi i n
P E K Ci i n
3. Block Cipher Modes of Operation
18Network & Information Security LabNetwork & Information Security Lab
CBC Mode
암호문 블록을 다음 번 암호화 작업에 Input 데이터로 사용하는 기법 일반적으로 긴 길이의 블록 데이터 전송 및 인증용 MAC 등에 사용 데이터 암호화시 평문에 이전의 암호문을 XOR 연산시켜 암호화
함으로써 , 동일한 키를 사용했음에도 불구하고 불규칙한 패턴에 의해 암호문 생성
Encrypt
1C
1P
K Encrypt
2C
2P
K Encrypt
nC
nP
K………………
1Time 2Time Time n
Encrypt
1P
K Encrypt
2P
K Encrypt
nP
K………………
1nC
IV
1nC
1 0( , ), ( 1,...., )i i iC E K C P i n C IV 1 0( , ), ( 2,...., )i i iP C D K C i n C IV
3. Block Cipher Modes of Operation
19Network & Information Security LabNetwork & Information Security Lab
첫번째 암호문 블록 생성시 평문 데이터에 IV(initialization vector) 를 XOR 연산 한 후 암호용 키로 암호화
이후 암호문 블록 생성시 평문 데이터의 이전 암호문을 XOR 연산 한 후 암호용 키로 암호화
복호화 작업은 암호화 작업과 반대로 행해지며 복호화시 암호키와 IV 값이 필요함
송 수신자간에 알고 있는 IV 값은 제 3 자에 의해 전송되거나 , ECB Mode 로 암호화하여 전송될 수 있음
1 1( , )C E K IV P
1( , )i i iC E K C P
1
1 1
( , )
( , )
i i iP C D K C
P IV D K C
3. Block Cipher Modes of Operation
20Network & Information Security LabNetwork & Information Security Lab
Cipher Feedback Mode(CFB)
블록암호가 스트림모드처럼 동작하도록 함 블록 크기보다 작은 데이터를 암호화 할수 있으며 , 단 1 개의 비트부터
블록까지의 다양한 크기의 데이터를 암호화 할수 있음 일반적으로 긴 길이의 블록 데이터 전송 및 인증용 MAC 등에 사용
Encrypt
1P
K
Shift register
Select Discard
IV
1C
Encrypt
2P
K
Shift register
Select Discard
2C
Encrypt
nP
K
Shift register
Select Discard
nC
1nC
3. Block Cipher Modes of Operation
21Network & Information Security LabNetwork & Information Security Lab
암호화 초기 입력버퍼 부분은 IV 로 채워지며 암호 키로 암호화 됨
암호화된 버퍼의 최 좌단 비트와 평문은 XOR 연산되며 , 결과같은 암호문이 됨
암호화Key
암호화 된 버퍼
평문
평문 만큼의 크기
암호문1P 1C
IV
3. Block Cipher Modes of Operation
22Network & Information Security LabNetwork & Information Security Lab
암호화에 사용된 부분은 폐기되며 나머지 버퍼는 다음 암호화에 사용 폐기되어 비워진 비트만큼 왼쪽으로 쉬프트함
쉬프트로 인해 빈 구간은 암호문이 대신함 , 남은 버퍼는 다음 암호화에 계속 사용되며 동일한 방법으로 암호화 수행 , 이 과정이 계속되면 버퍼는 암호문으로 채워짐
암호화 된 버퍼 암호문
암호문
암호화 된 버퍼
1C 2C 3C 4C 5C
3. Block Cipher Modes of Operation
23Network & Information Security LabNetwork & Information Security Lab
복호화 초기 입력버퍼 부분은 IV 로 채워지며 암호 키로 암호화 됨
암호화된 버퍼의 최 좌단 비트와 암호문은 XOR 연산되며 , 결과값은 평문이 됨
일반적인 암호화는 특정 부분의 입력이 전체 암호문에 영향을 미치지만 CFB 모드의 경우 특정 구간에 오류가 발생하더라도 암호문 전체에 큰 영향을 미치지 않음
암호화Key
암호화 된 버퍼
암호문
암호문 만큼의 크기
평문
IV
1C 2C 3C 4C 5C
1P
3. Block Cipher Modes of Operation
24Network & Information Security LabNetwork & Information Security Lab
Output Feedback Mode(OFB)
블록암호가 스트림모드처럼 동작하도록 함 블록 크기보다 작은 데이터를 암호화 할수 있으며 , 단 1 개의 비트부터
블록까지의 다양한 크기의 데이터를 암호화 할수 있음 CFB 모드와 유사함
Encrypt
1P
K
Shift register
K
Select Discard
IV
1C
Encrypt
2P
K
Shift register
Select Discard
2C
Encrypt
nP
K
Shift register
Select Discard
nC
1nC
3. Block Cipher Modes of Operation
25Network & Information Security LabNetwork & Information Security Lab
암호화 초기 입력버퍼 부분은 IV 로 채워지며 암호 키로 암호화 됨
암호화된 버퍼의 최 좌단 비트와 평문은 XOR 연산되며 , 결과같은 암호문이 됨
암호화Key
암호화 된 버퍼
평문
평문 만큼의 크기
암호문1P 1C
IV
3. Block Cipher Modes of Operation
26Network & Information Security LabNetwork & Information Security Lab
암호화에 사용된 부분은 폐기되며 , 남은 공간은 다음 암호화에 사용 폐기된 공간만큼 왼쪽으로 쉬프트함
빈 구간이 암호문으로 채워지는 CFB 와 달리 빈 구간은 0 으로 채워지며 남은 버퍼는 다음 암호화에 계속 사용되며 동일한 방법으로 암호화 수행 , 이 과정이 계속되면 버퍼는 0 으로 채워짐
암호화 된 버퍼 00
암호화 된 버퍼
0000……
3. Block Cipher Modes of Operation
27Network & Information Security LabNetwork & Information Security Lab
Counter Mode
암호문 작성시 IV 값과 카운터를 기초로 암호문을 작성하는 기법 초기값 IV 를 Counter 로 증가시킨 값을 암호 키로 암호화 한 다음
평문과 XOR 연산하는 방법으로 , CBC 기법보다 빨라 보통 빠른 암호화를 요구하는 경우에 사용됨
빠르며 , 패턴이 비교적 불규칙하다는 이점이 있지만 동일한 IV 와 암호키를 사용할 경우 안전성 문제가 발생할 수 있음
Encrypt
1C
(0)IV Counter
K
1P
Encrypt
2C
(1)IV Counter
K
2P
Encrypt
nC
( 1)IV Counter n
K
nP
3. Block Cipher Modes of Operation
28Network & Information Security LabNetwork & Information Security Lab
RC5 의 특징 비교적 간단한 연산으로 거의 모든 하드웨어에 적합
덧셈 , 뺄셈 , XOR 과 좌 / 우 로테이션 등의 간단한 산술연산을 사용
빠른 암 / 복호화 연산 RC5 내부 로직이 산술연산 위주이므로 암 / 복호화 작업 시 빠른 연산을
수행함 워드 단위로 처리하며 한번에 암호화 작업을 수행
가변적인 평문 크기를 가짐 한 워드의 비트의 수를 가변적으로 지정해 줄 수 있음 (W)
가변적인 라운드 라운드의 수는 역시 가변적으로 지정해 줄 수 있음 ( R) 라운드 수는 암호문의 보안성에 영향을 줌
5. RC5
29Network & Information Security LabNetwork & Information Security Lab
가변적인 키의 길이 키 길이 역시 가변적으로 지정이 가능함 (B). 키의 길이는 암호문의
보안성 강도에 영향을 줌
낮은 메모리 요구사항 RC5 는 제한된 메모리를 가진 시스템에 적합함
높은 보안성 가변적으로 매개변수를 설정하여 높은 보안성을 지원함
5. RC5
30Network & Information Security LabNetwork & Information Security Lab
RC5 파라미터
RC5 는 32, 64, 128 비트 길이의 평문 블록을 같은 길이의 암호문으로 출력함
키 길이의 범위는 0 에서 2040 비트 RC5-w/r/b
예 )RC5-32/12/16 32 bit word(64bit plaintext and ciphertext) 12 rounds in the en/decryption algorithm,
16 bytes key length(128bits)
매개변수 정의 값의 범위
w 평문으로 사용할 워드 크기 16, 32, 64
r 라운드의 수 0, 1, ... , 255
b 비밀키의 바이트 수 0, 1, ... , 255
5. RC5
31Network & Information Security LabNetwork & Information Security Lab
RC5 키 확장
(1) 매개변수 r 과 w 에 의해 서브키 수열 S[0]~S[t-1] 을 초기화 (2) 입력 받은 b 바이트의 암호키 K[0….b-1] 을 c 단어배열 L[0…c-1]배열로 변환
(3) 초기화된 서브키 수열과 단어배열을 Mix 하여 , 암호용 키 수열을 생성
Initialize
Mix
Convert
S[0] S[1] S[t-1]……..
S[0] S[1] S[t-1]……..
r, wK[0] K[1] K[b-1]……..
L[0] L[1] K[c-1]……..
(1) (2)
(3)
5. RC5
32Network & Information Security LabNetwork & Information Security Lab
RC5 는 암호 키를 입력 받아 t=2(r+1) 수만큼의 키 수열로 확장함 키 수열은 라운드 와 비례하며 ( 예 : 12 라운드 라면 총 26 개의 Sub-K
ey 로 구성된 키 수열을 가짐 ), 이러한 키 수열 생성에는 PW 값과 QW
값을 사용
e=2.178281828459... ( 자연로그 ) ∮=1.618033988749 ...( 황금비율 ) = ( ) Odd[x] 는 x 에 가장 가까운 홀수인 정수이다 .
Odd[e] = 3 과 Odd[ ] = 1∮ 일 때의 QW, PW 값은 다음과 같다 .
2
51
w 16 32 64
Pw
Qw
B7E19E37
B7E151639E3779B9
B7E151628AED2A6B9E3779B97F4A7C15
[( 2)2 ]
[( 2)2 ]
wW
wW
P Odd e
Q Odd
5. RC5
33Network & Information Security LabNetwork & Information Security Lab
Pw 와 Qw 를 이용한 키 수열 S 의 초기화
초기화된 배열 S[0]~s[t] 를 Mixing 하여 Secret key 배열로 생성함
0;
3 max( , ) :
[ ] ( [ ] ) 3;
[ ];
( 1) mod ( );
[ ] ( [ ] ) ( );
[ ];
( 1) mod ( );
i j X Y
do t c times
S i S i X Y
X S i
i i t
L i L i X Y X Y
Y L i
j j c
2( 1)
/ 8
/
t r
u w
c b u
w
[0] ;
i=1 to t-1 do
S[i]=S[i-1]+Q
wS P
for
5. RC5
34Network & Information Security LabNetwork & Information Security Lab
Encryption RC5 는 기본적인 세 가지 연산을 사용 .
Addition 암호화 + , 복호화 -
Bitwise execusive-OR Left circular rotation
암호화 : x<<<y, 복호화 : x>>>y
5. RC5
35Network & Information Security LabNetwork & Information Security Lab
Encryption 알고리즘 평문 데이터를 A 와 B 비트로 나누어 수열 S 로 암호화 연산
0
0
i i-1 i-1 i-1
i i-1 i i
LE A S[0];
RE B S[1];
for i 1 to r do
LE ((LE RE ) RE ) S[2 i];
RE ((RE LE ) LE ) [2 i 1];
i-1LE i-1RE
iLE iRE
S[2 i] S[2 i+1]
i Round
5. RC5
36Network & Information Security LabNetwork & Information Security Lab
Decryption 암호문의 2 개의 비트는 LDi 과 RDi 라 가정
Decryption 알고리즘
i-1 i i i
i-1 i i-1 i-1
0
0
for i r to 1 do
RD ((RD - S[2 i 1] LD ) LD ;
LD ((LD - S[2 i] RD ) RD ;
B RD - S[1];
A LD - S[0];
i-1LD i-1RE
iLD iRD
S[2 i] S[2 i+1]
i Round
5. RC5
37Network & Information Security LabNetwork & Information Security Lab
5. RC5
38Network & Information Security LabNetwork & Information Security Lab
RC5 는 Feistel 기반의 DES 와 같은 암호 알고리즘에 비하여 많은 보안적 , 효율적인 이점을 가지고 있음 가변적 키 길이
만약 암호 알고리즘의 키 길이는 분석공격에 대한 저항성과 비례한다 . 키가 길수록 전사공격에 강하다 . RC5 는 이러한 키의 길이는 설정할 수
있도록 가변적 키 길이를 제공한다 . 혼합된 연산자
많은 연산의 사용은 비선형성을 제공하여 암호분석을 어렵게한다 . RC5 알고리즘은 이러한 이점을 제공한다 .
데이터 의존적 순환 보안에 필요한 충분한 라운드 수를 가지며 이것은 암호분석을 더욱
어렵게 한다 . 키 의존적 보안성
DES 에서 사용되는 고정된 S-box 를 사용하지 않는다 . RC5 는 단지 키 수열에 의존하여 암호화를 수행한다 .
5. RC5
39Network & Information Security LabNetwork & Information Security Lab
긴 키 스케쥴 알고리즘 sub-key 로 구성된 키 수열은 단일 암호화나 복호화의 그것보다 훨씬
길다 . 이러한 특성은 암호문 분석을 더욱 어렵게 할 수 있다 .
가변적 평문 / 암호문 블록 길이 평문 블록의 길이는 보안의 강도와 비례하며 RC5 는이것을 가변적으로
설정할 수 있다 .
가변적 라운드 수 라운드 수는 해독공격에 대한 저항성을 결정 할 수 있다 . 즉 많은
라운드 수를 가질수록 보안성이 증가하지만 암 / 복호화시 오랜 시간이 걸린다 . RC5 는 이러한 라운드를 가변적으로 변경할 수 있다 .
암호화 시 양쪽 데이터 모두 연산 DES 와 같은 Feistel 기반의 암호 알고리즘은 평문을 2 개의 블록으로
나누어 한쪽 부분에 대해서만 연산 작업을 수행하나 , RC5 는 2 개의 모든 블록에 대해서도 연산작업을 수행하여 보안 강도를 높일 수 있다 .
5. RC5