ns_ch4 최신 관용암호 기법

Download Report

Transcript ns_ch4 최신 관용암호 기법

정보보호기초강의
제 4장 최신 관용암호 기법
Contemporary Symmetric Ciphers
2007. 10.
네트워크보안연구실 / 문형진
([email protected])
http://www.ezpia.biz
[[email protected]]
목차
4.1 3중 DES (Triple DES)
4.1.1 2중 DES
4.1.2 2 키에 의한 3중 DES
4.1.3 3 키에 의한 3중 DES
4.2 Blowfish
4.2.1 서브 키와 S-박스의 생성
4.2.2 암호화 및 복호화
4.2.3 논의 사항
4.3 RC5
4.4 개선된 대칭 블록암호의 특징
4.5 RC4 Stream Cipher
2007-02 정보보호기초
2
4.1 3중 DES
 2중 DES
 2 키에 의한 3중 DES
 3 키에 의한 3중 DES
2007-02 정보보호기초
3
DES 알고리즘
2007-02 정보보호기초
4
4.1 3중 DES
 DES의 brute-force 공격에 대한 취약성 보완 대안
 차세대 암호 알고리즘 표준의 개발

AES (Advanced Encryption Standard) : Rijndael 채택
 DES에 다중 키 사용(기존 설비의 활용 측면)

2중 DES , 3중 DES
2007-02 정보보호기초
5
4.1.1 2중 DES (1/2)
 2개의 암호화 단계와 2 개의 키 사용
 암호화 C = EK2[EK1[P]]
 복호화 P = DK1[DK2[C]]
 암호화 키가 112 비트로 증가되어 암호의 강도가 증가
그림 6.1 (a)
2007-02 정보보호기초
6
4.1.1 2중 DES (2/2)
1) 단일 단계로의 축소
 키 K3 존재에 대한 가정


단일 단계로 축소 : EK 2[EK 1[P]]= EK 3[P]
단일 DES와 같은 결과를 가지므로 2중 DES는 의미가 없음
 키 K3 존재하지 않는 경우 의미가 있음
2) 중간결과에 의한 공격(Meet-in-the-middle Attack)
 DES의 특성 때문이 아닌 블록 암호화에 대한 공격임
 C = EK2[EK1[P]] 이면 X = EK1[P] = DK2[C]
 기지 평문-암호문 쌍((P, C)에 대한 공격 복잡도 : 256
 단일 DES의 경우 : 255
2007-02 정보보호기초
7
4.1.2 2키 3중 DES (1/2)
 중간결과에 대한 공격 대책 : 3 단계 암호화
 [TUCH79] : 2키 3중 암호 방법 제안
 암호화 C = EK1[DK2[EK1[P]]]
 복호화 P = DK1[EK2[DK1[C]]][C]]]
그림 6.1 (b)
2007-02 정보보호기초
8
4.1.2 2키 3중 DES (2/2)
그림 6.2 3중 DES에 대한 기지 평문 공격
2007-02 정보보호기초
9
4.1.3 3키 3중 DES
 2키 3중 DES에 대한 공격이 어렵지만 우려가 존재
 [KALI96]: 3키 3중 DES를 제안
 56 x 3 =168비트 길이: 긴 키를 사용하는 단점
 C = EK3[DK2[EK1[P]]] P = DK1[EK2[DK3[C]]]
 PGP, S/MIME, 인터넷 응용 등에서 사용
2007-02 정보보호기초
10
4.2 Blowfish
4.2.1 서브 키와 S-박스의 생성
4.2.2 암호화 및 복호화
4.2.3 논의 사항
2007-02 정보보호기초
11
4.2 Blowfish
 Blowfish
 DES 대체 암호화 알고리즘
 32~488 비트까지 가변적인 길이의 키를 사용
 대칭 블록 암호 알고리즘
 Blowfish는 기존의 암호화 알고리즘의 대안
 1993년 Bruce Schneier에 의해 설계
 Blowfish는 32비트 명령어 프로세서를 염두에 두고 설계
 그래서 DES에 비해 현저히 빠르다.
 사용
 특허 미등록으로 사용승인이 필요 없고, 모든 용도에 사용 가능
2007-02 정보보호기초
12
4.2 Blowfish
 특징
 빠른 속도 : 32 비트 마이크로 프로세스에서 1 byte당 18 클럭
소요
 간결성 : 5K 이내의 메모리에서 실행 가능
 단순성 : 구현 용이, 알고리즘 강도 결정 용이
 보안의 가변성 : 키 길이 가변(32 - 448 비트), 속도와 보안성
고려
2007-02 정보보호기초
13
2007-02 정보보호기초
14
4.2.1 서브키와 S-박스의 생성 (1/3)
 키는 K-배열에 저장
 키의 사용(32 비트부터 448 비트까지 가능)
 K1,, K2, … , Kj
(1≤j≤14)
Ki : 32 bit
 18개의 32bit 서브 키와 4개의 S-박스의 생성에 사용
 서브키는 P배열에 저장
 P1, P2, … , P18
Pi : 32 bit
 256(8×32)개의 32 비트 엔트리를 갖는 4 개의 S-박스(
 1024개의 32비트 값 = 4168 바이트
 S박스 1 : S1,0,, S1,1, … , S1,255
 S박스 2 : S2,0,, S2,1, … , S2,255
 S박스 3 : S3,0,, S3,1, … , S3,255
 S박스 4 : S4,0,, S4,1, … , S4,255
2007-02 정보보호기초
15
4.2.1 서브키와 S-박스의 생성 (2/3)
 P 배열과 S-박스의 생성
 상수 π 의 소수부 비트를 이용




P1=243F6A88:π의 소수부 왼쪽부터 첫번째 32비트 (16진수)
P2=85A308D3:π의 소수부 왼쪽부터 2번째 32비트
… …
S1,0 : π 의 소수부 왼쪽부터 19번째 32비트
… …
S4,254 = 578FDFE3 / S4,255 = 3AC372E6
 K-배열의 워드를 재 사용하여 18개의 P 배열을 재 계산
2007-02 정보보호기초
16
4.2.1 서브키와 S-박스의 생성 (3/3)
 현재의 P 배열과 S 배열을 사용하여 0 값을 갖는 초기 평문 64비트 블록을
암호화(P1, P2 의 내용을 대치함)
 앞 단계의 출력인 P1, P2을 입력으로 암호화하여 P3, P4 생성
 이 과정을 계속 진행(
 521회 암호화 수행:: P 배열:: 9회, S박스:: 512회
P1, P2
= EP,S[0]
P3, P4
= EP,S[P1||P2]
…
P17, P18
= EP,S[P15||P16]
S1,0, S1,1
= EP,S[P17||P18]
…
S4,254, S4,255
= EP,S[S4,252, S4,253]
2007-02 정보보호기초
17
4.2.2 암호화/복호화 (1/3)
그림 6.4 Blowfish의 상세 단일 반복
2007-02 정보보호기초
18
4.2.2 암호화/복호화 (2/3)
 덧셈과 XOR 연산, S-박스를 사용
 암호화
 64 비트 평문을 32 비트씩 분할((LE0, RE0)
 i 라운드 후의 결과를 LEi, REi
 16개 라운드별 저장된 서브키 32 비트를 각각 적용(P1, P2, …, P16)
F 함수의 32 비트 입력을 4바이트로 나누어 각각 a, b, c, d라 하면
F[a, b, c, d] = ((S1,a + S2,b)  S3,c) + S4,d
 16번째 라운드 결과에 서브키 P18, P17를 적용한 결과가 암호문
2007-02 정보보호기초
19
4.2.2 암호화/복호화 (3/3)
 복호화
 그림 6.3b
 64 비트 암호문을 32 비트씩 분할((LD0, RD0)
 i 라운드 후의 결과를 LDi, RDi
 서브키를 역순으로 사용(P16, …, P2, P1)
 암호화와 같은 방향으로 수행됨
2007-02 정보보호기초
20
4.2.2 논의사항 (1/3)
 소개된 관용암호 알고리즘 중 가장 강력
 서브키와 S-박스 생성에 Blowfish 자신의 반복과정을 적용
 비트열이 토막 잘림은 해독을 난해하게 하는 효과
 데이터의 양쪽 모두에 대하여 연산 수행
 매 반복의 입력에서 Li와 Ri를 교환하여 사용
 암호학적 강도를 더욱 강화
 실행 속도가 매우 빠름(표 6.1)
2007-02 정보보호기초
21
4.2.2 논의사항 (2/3)
알고리즘
라운드별
클록 사이클
라운드 수
암호화 바이트별
클록 사이클
Blowfish
9
16
18
RC5
12
16
23
DES
18
16
45
IDEA
50
8
50
3중 DES
18
48
108
표 6.1 Pentium상의 블록 암호 속도 비교
2007-02 정보보호기초
22
4.2.2 논의사항 (3/3)
 [SCHN93] 설계상의 논의사항
 서브키 생성처리에 소요되는 시간 때문에 본래의 키 길이에 대
한 전사적 공격은 더욱 난해
 함수 F는 우수한 쇄도 효과를 일으키는 결과
 함수 F의 입력 비트는 단 하나의 S-박스 입력으로 사용됨
 CAST와 다르게 함수 F는 반복 과정에 의존적이 아님
2007-02 정보보호기초
23
4.3 RC5
4.3.1 RC5 매개 변수
4.3.2 키 확장
4.3.3 암호화
4.3.4 복호화
4.3.5 RC5 모드
2007-02 정보보호기초
24
4.3 RC5 (1/2)

Ron Rivest에 의해 개발된 대칭 암호 알고리즘

보안제품 BSAFE, JSAFE, S/MAIL등에 사용

특징
1. 하드웨어 및 소프트웨어에의 적합성

CPU에서 일반적으로 사용되는 기본 연산만 사용
2. 빠른 속도


간단한 알고리즘을 사용
기본 연산이 한번에 full word를 처리
3. 다른 단어 길이 프로세서에서의 적응성


단어 당 비트 수는 RC5의 매개변수
다른 단어 길이는 다른 알고리즘이 됨
2007-02 정보보호기초
25
4.3 RC5 (2/2)
4. 반복 수의 가변성과 가변 길이의 키


각각 RC5의 두 번째와 세 번째 매개변수
빠른 속도와 높은 보안 사이의 선택
5. 단순성


간단한 구조로 구현이 용이
알고리즘 강도 결정(보안 허점 탐지)이 용이
6. 낮은 메모리 요구량

스마트 카드나 한정된 메모리를 사용하는 장치에 적당
7. 높은 보안성

적당한 매개변수로 높은 보안성을 제공하도록 설계
8. 데이터 의존적인 순환 이동


데이터의 양에 따라 결정되는 회전 이동(순환비트이동)을
채용
알고리즘 강도에 기여
2007-02 정보보호기초
26
4.3.1 RC5 매개변수
 특정 버전의 표기:: RC5-w/r/b
 예:: RC5-32/12/16
 32 비트 단어(64 비트 블록 처리)
 12 회 반복의 암호 및 복호 처리
 16 바이트 키((128 비트)
2007-02 정보보호기초
27
4.3.2 키 확장
 t 개의 서브키(w 비트 단위) 개념
 각 라운드별 2 개의 서브키 + 별도 연산적용 2 개 (t=2r+2);
S[0], S[1], … S[t-1]
 배열 S의 초기화
 S[0]=Pw;

for i=1 to t-1 do
S[i]=S[i-1] + Qw;
 Pw, Qw : 2 단어 길이의 상수
 키 변환
 ‘b’ byte 키 K[0], …, K[b-1] 를 ‘c’ word 배열 L[0],
…L[c-1]로 변환 (byte word)
 최종 배열 S생성
 L의 내용을 S의 초기화된 값 에 혼합(Mix) 연산 수행
2007-02 정보보호기초
28
4.3.2 키 확장 (cont’)
2007-02 정보보호기초
29
4.3.3 암호화 (1/3)
2007-02 정보보호기초
30
4.3.3 암호화 (2/3)
 평문 2 단어를 w 비트 레지스터 A와 B에 각각 저장
 각 r 라운드에서 좌우 양쪽 치환, 순열, 키 의존치환 처리
 양쪽 단어는 매 라운드마다 갱신
 DES의 2회 반복 과정이 RC5의 1회에 해당
 덧셈 : + 로 표시, 2w 를 법으로 한 덧셈
 뺄셈 : - 로 표시, 2w 를 법으로 한 뺄셈
 좌측순환이동 : 단어 x 의 y 비트 좌측 순환이동은
x <<< y 로 표시
 우측 순환이동 : 단어 x 의 y 비트 우측 순환이동은
x >>> y 로 표시
2007-02 정보보호기초
31
4.3.3 암호화 (3/3)
 먼저 평문 블록을 2개의 32비트 블록으로 나눈다.
(A and B)
LE0 = A + S[0] ;
RE0 = B + S[1];
For i = 1 to r do
LE
i
= ((LE
RE
i
=
출력값은 LE
r
i-1
((RE
,RE
r

i-1
RE
i-1
-1 )  RE
i-1
-1) + S[2Xi];
 LE
i-1
-1 )  LE
i-1
-1)
+ S[2Xi+1];
register에 있다.
2007-02 정보보호기초
32
4.3.4 복호화
 그림 6.6(b)
 암호화의 역방향으로 진행됨
 덧셈은 뺄셈으로
 좌측순환이동은 우측순환이동으로 변경됨
 Plaintext block을 2개 word A, B로 나눈다.
For i = r down to 1 do
RDi-1 =((RDi - S[2  I +1]  LDi )  LDi );
LDi-1 = ((LDi - S[2  i]  RDi )  RDi );
B = RD0- S[1];
A = LD0 – S[0];
“>>>”은 오른쪽 rotation, 모든 add, sub는 mod 232이다
2007-02 정보보호기초
33
4.3.5 RC5 모드 (1/2)
 RC5 블록 암호 모드
 고정크기 입력블록(2w)를 같은 크기 암호 블록 생성
 RC5 ECB 모드라 부름(그림 3.11 참조)
 RC5-CBC 모드
 RC5 CBC 모드(그림 3.12 참조)
 RC5-CBC- Pad 모드
 CBC 유형의 알고리즘;
 블록 길이의 정수배가 아닌 메시지 처리를 위한 패딩
 RC5-CTS (Cipher Text Stealing) 모드
 CBC 유형의 알고리즘
 임의 길이 평문을 입력받아 같은 길이의 암호문 생성
2007-02 정보보호기초
34
4.3.5 RC5 모드 (2/2)
그림 6.7 RC5 Ciphertext Stealing Modes
2007-02 정보보호기초
35
4.4 개선된 대칭블록 암호의 특징 (1/2)
 가변 키 길이
 Blowfish, RC5, CAST-128, RC2
 혼합연산자
 산술 및 부울 연산자 중 하나 이상 사용, 비선형성 제공
 3중-DES를 제외한 알고리즘에서 사용
 데이터 의존 회전 이동
 회전이동은 서브키에 의존하지 않고, 데이터 블록에 의존
 RC5
 키 의존 S-박스
 S-박스의 내용이 키에 의존, 상이한 키는 상이한 S-박스 생성
 높은 비선형성 제공, Blowfish에서 채택
2007-02 정보보호기초
36
4.4 개선된 대칭블록 암호의 특징 (2/2)
 긴 키 스케줄 알고리즘
 서브키 생성이 단일 암호화 또는 복호화 보다 더 오래 걸림
 전사적 공격에 강함, Blowfish에서 채택
 가변적 평문/암호문 블록 길이
 편의성 제공 (알고리즘 응용에 맞출 수 있음), RC5에서 채택
 가변적 반복 횟수
 보안성과 실행속도와의 관계 조정 가능, RC5
2007-02 정보보호기초
37
4.4 개선된 대칭블록 암호의 특징 (2/2)
 매 반복 시 양쪽 데이터 절반의 연산
 최소한의 연산 시간 증가로 높은 보안성 획득
 IDEA, Blowfish, RC5
 가변적 F 함수
 라운드마다 변하는 F함수
 CAST-128 에서 채택
 키 의존 회전 이동
 CAST-128 에서 채택
2007-02 정보보호기초
38
4.4.1 주요 대칭 블록암호의 특징
2007-02 정보보호기초
39
4.5 RC4 STREAM 암호
6.5.1 Stream 암호
6.5.2 RC4 알고리즘
2007-02 정보보호기초
40
4.5.1 Stream 암호
일반 블럭 암호
스트림 암호
m 비트 키
n 비트
평문
암호
알고리즘
n 비트
암호문
n 비트
초기값
암호
알고리즘
이진 키수열
이진 평문 수열
m 비트 키
평문: M=m1m2m3…
암호문: C= EK(m1) EK(m2) EK(m3)…
평문: M=m1m2m3…
암호문: C= EZ1(m1) EZ2(m2) EZ3(m3)…
2007-02 정보보호기초
41
4.5.1 Stream 암호
키계열
송신자
평문 M
평문
키계열
암호문 C
수신자
평문 M
10111011
암호문 0 1 1 1 1 1 1 0
키계열 1 1 0 0 0 1 0 1
키계열 1 1 0 0 0 1 0 1
암호문 0 1 1 1 1 1 1 0
평문
10111011
2007-02 정보보호기초
42
4.5.1 Stream 암호
2007-02 정보보호기초
43
4.5.1 Stream 암호
2007-02 정보보호기초
44
4.5.1 Stream 암호
 송수신자간에 사전에 공유된 비밀키(secret key)와 현재의 스트림 암호시스템
상태(initial state)로부터 도출되는 키 수열(key steam)이 평문과 결합되어 암
호문을 형성
 키 수열의 길이는 평문의 길이와 동일하고 단 한번만 사용됨
예:I
LOVE YOU
메시지 -> 11001001 10100000 11001100
키
-> 01000001 01000010 11000011
(eXclusive OR)
암호문 -> 10001001 11100010 00001111
 활용 : 블럭암호에 비해서 빠르게 운영
 이동통신에서 전송되는 data의 암호화에 사용
2007-02 정보보호기초
45
4.5.1 Stream 암호
 키 스트림 주기
 주기적 (periodic) 스트림 암호 : 키 스트림이 어떤 주기를 갖고 반
복
 비주기적 스트림 암호 : 키가 반복없이 표현되는 일회용 패드
(one-time pad)방식
 평문과 키의 관계
 동기식 스트림 암호(Synchronous Stream Cipher)
 암호문을 복호화하여 평문을 찾을때 키 스트림과 암호문 사이


에 동기가 필요
키 스트림이 평문과 관계없이 생성되므로 암호문과 암호문에
들어있는 키 스트림이 독립적이어서 정보유출의 가능성이 적다
선형 귀한 치환 레지스터(Linear Feedback Shift Register)
2007-02 정보보호기초
46
4.5.1 Stream 암호
 평문과 키의 관계
 자기 동기식 스트림 암호(Self-Synchronous Stream Cipher)






키 스트림이 평문과 암호문과 관계를 갖는다.
키 스트림은 평문 또는 암호문으로 부터 함수 관계에 의해 생성
전송 중 암호문의 비트가 손실 또는 변경되더라도 그 오류의 영향이
유한하게 된다.
오류 정정의 기능을 포함 가능
키 스트림과 암호문의 종속성으로 인해 해독하기 쉽다.
암호문 귀한 자동키 (Feedback autokey)암호시스템
 동기식 스트림 암호 시스템에 자기동기식 스트림암호의 장점을 결합하여 사용
가능
2007-02 정보보호기초
47
4.5.1 Stream 암호
 스트림 암호 시스템의 장점과 사용
 군사 및 외교용으로 널리 사용
 이동통신 환경에서 구현이 용이
 안전성을 수학적으로 엄밀하게 분석 가능
 이동통신 등의 무선 통신 데이터 보호에 적합
 종류
 RC4
 SEAL
2007-02 정보보호기초
48
4.5.2 RC4 알고리즘
 1987년 Rivest에 의해 설계된 가변 키 길이를 지원 원래는 미공개
 1994년 인터넷 뉴스그룹에 익명으로 공개된 알고리즘
 Netscape Navigator의 데이타 보호용으로 사용되고 있으며, 다른
인터넷 응용들에서도 널리 사용되는 스트림 암호이다.
2007-02 정보보호기초
49