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