chap 4. 관용 암호 방식 알고리즘

58
1/58 Chap 4. Chap 4. 관관 관관 관관 관관 관관 관관 관관관관 관관관관

Upload: martin-kaufman

Post on 03-Jan-2016

188 views

Category:

Documents


0 download

DESCRIPTION

Chap 4. 관용 암호 방식 알고리즘. 과제물. 현대 관용 암호의 개념을 토대로 자신만의 비밀키 암호 시스템 설계 입력 : 64 비트 키크기 : 128 비트 기본 모듈 : Feistel 구조나 그 변형 매개변수 키생성 알고리즘 F 함수의 구성 S 박스의 구성. 4.1 3 중 DES. DES 의 brute-force 공격에 대한 잠재적인 취약성 => 대안책 필요 DES 와 다른 완전히 새로운 알고리즘 설계 IDEA Blowfish RC5 CAST-128 AES - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chap 4.  관용 암호 방식           알고리즘

1/58

Chap 4. Chap 4. 관용 암호 방식관용 암호 방식 알고리즘 알고리즘

Page 2: Chap 4.  관용 암호 방식           알고리즘

2/58

과제물과제물

현대 관용 암호의 개념을 토대로 자신만의 비밀키 현대 관용 암호의 개념을 토대로 자신만의 비밀키 암호 시스템 설계암호 시스템 설계 입력 : 64 비트 키크기 : 128 비트 기본 모듈 : Feistel 구조나 그 변형

매개변수 • 키생성 알고리즘• F 함수의 구성• S 박스의 구성

Page 3: Chap 4.  관용 암호 방식           알고리즘

3/58

4.1 34.1 3 중 중 DESDES

DESDES 의 의 brute-force brute-force 공격에 대한 잠재적인 취약성 공격에 대한 잠재적인 취약성 => => 대안책 필요대안책 필요 DES 와 다른 완전히 새로운 알고리즘 설계

• IDEA

• Blowfish

• RC5

• CAST-128

• AES

• SEED 기존의 소프트웨어와 장비에 암호화 강화

• DES + 다중키 => 다중 암호화 => Triple DES

Page 4: Chap 4.  관용 암호 방식           알고리즘

4/58

4.1 24.1 2 중 중 DESDES

22 중 중 DESDES

C=EK2[EK1[P]]

P=DK1[DK2[C]]

Page 5: Chap 4.  관용 암호 방식           알고리즘

5/58

4.1 24.1 2 중 중 DESDES

키 길이 • 56 * 2 = 112

• 암호학적 강도 강화 단일 단계로의 축소

• DES 의 56 비트 키 K1 과 K2 에 대해서 K3 가 존재 한다고 가정

– EK2[EK1[P]]=EK3[P]

– 1992 년 가정이 타당하지 않음이 증명됨

Page 6: Chap 4.  관용 암호 방식           알고리즘

6/58

4.1 24.1 2 중 중 DESDES

중간 결과에 의한 공격

• X=EK1[P]=DK2[C]

• 평문 P 를 2^56 개의 가능한 모든 키 K1 으로 암호한 다음 결과를 테이블로 저장

• 암호문 C 를 키 K2 의 가능한 모든 2^56 개의 값으로 복호화

Page 7: Chap 4.  관용 암호 방식           알고리즘

7/58

4.2 34.2 3 중 중 DESDES

33 키에 의한 키에 의한 33 중 중 DESDES 3 단계 암호화 과정을 이용 기지 평문 공격의 복잡도

• 2^112

• 현실성 없는 공격법 => 공격 불가능 문제점

• 56*3 = 168 비트의 키를 사용• 사실상 사용하기가 어려움

Page 8: Chap 4.  관용 암호 방식           알고리즘

8/58

4.2 34.2 3 중 중 DESDES

22 키에 의한 키에 의한 33 중 중 DESDES

Page 9: Chap 4.  관용 암호 방식           알고리즘

9/58

4.2 34.2 3 중 중 DESDES

1979 년 Tuchman 에 의해 제안 키 관리 표준 ANS X9.17 과 ISO 8732 에 의해 채택 현재까지 실용적인 암호 분석 공격이 없음 Coppersmith

• Brute-force 공격 : 2^112 = 5*10^33 차수로 가능• 차분 암호 해독은 단일 DES 와 비교하여 10^52 이 넘는

지수적인 복잡도를 가짐 장래의 성공적인 공격 가능 유형

• Merkle & Hellman

• OORS 90

Page 10: Chap 4.  관용 암호 방식           알고리즘

10/58

33 중 중 DES DES 에 대한 기지평문 공격에 대한 기지평문 공격

Page 11: Chap 4.  관용 암호 방식           알고리즘

11/58

4.3 4.3 국제 데이터 암호 국제 데이터 암호 알고리즘알고리즘 (IDEA : International Data Encryption (IDEA : International Data Encryption

Algorithm)Algorithm) 스위스 연방 기술 연구소의 스위스 연방 기술 연구소의 Xueja LaiXueja Lai 와 와 James James

MasseyMassey 에 의해 에 의해 19901990 년에 개발년에 개발 DESDES 를 대체하기 위해 제안된 관용 암호 알고리즘 중 를 대체하기 위해 제안된 관용 암호 알고리즘 중

하나하나 가장 성공적인 가장 성공적인 DESDES 의 대체 알고리즘의 대체 알고리즘

대부분의 암호 공격으로부터 안전 E-mail 암호를 위한 PGP 에 포함

설계원리설계원리 64 비트 블록의 데이터 입력 128 비트의 키를 사용 블록 암호

Page 12: Chap 4.  관용 암호 방식           알고리즘

12/58

IDEA IDEA 암호화 암호화

Page 13: Chap 4.  관용 암호 방식           알고리즘

13/58

4.3 IDEA4.3 IDEA

암호학적 강도암호학적 강도 블록길이

• 통계적 분석을 막을 수 있을 만큼 길어야 함• 64 비트 블록이면 충분

키 길이• 모든 키의 탐색 (Exhaustive Search) 을 효율적으로 막을 수 있을

만큼 커야 함• 128 비트면 향후에도 안전할 것이라고 여겨짐

혼돈 (Confusion) • 목적 : 암호문의 통계적 성질이 평문의 통계적 성질에

의존하는지에 대한 결정을 복잡하게 만드는 것• 세가지 연산 : XOR, 덧셈 , 곱셈

확산 (Diffusion)• 목적 : 각 평문 비트는 모든 암호문 비트에 영향을 끼쳐야 하고 ,

각 키 비트는 모든 암호문 비트에 영향을 주어야 함

Page 14: Chap 4.  관용 암호 방식           알고리즘

14/58

4.3 IDEA4.3 IDEA

혼돈을 위한 연산혼돈을 위한 연산 입력 : 16 비트 출력 : 16 비트 연산

• XOR 연산• 덧셈연산 : 법을 2^16 로 하는 덧셈• 곱셈연산 : 법을 2^16+1 로 하는 곱셈

=> 세가지 연산을 조합함으로써 DES 보다 암호해독을 더 어렵게 함

Page 15: Chap 4.  관용 암호 방식           알고리즘

15/58

4.3 IDEA4.3 IDEA

확산을 위한 구조확산을 위한 구조 곱셈 / 덧셈 구조에 의해 제공

효율적인 확산을 위해 8 번 반복

: bit by-bit exclusive-OR : Addition of integers modulo 216

⊙ : Multiplication of integers modulo 216 + 1

Page 16: Chap 4.  관용 암호 방식           알고리즘

16/58

4.3 IDEA4.3 IDEA

구현상의 고려 사항구현상의 고려 사항 소프트웨어 구현을 위한 설계 원칙

• 서브블록의 사용– 암호연산은 소프트웨어에 대해 당연히 8, 16, 32 비트와 같은 서브

블록에서 동작하도록 한다– IDEA 는 16 비트 서브 블록을 사용

• 간단한 연산의 사용– 덧셈 , 자리 이동 등을 사용하여 쉽게 프로그램 되어야 함– IDEA 의 기본 연산은 이 요구사항을 만족

하드웨어 구현에 대한 설계 원칙• 암호화 복호화의 유사성

– 암호화와 복호화는 키를 사용하는 방법에서만 달라야 함• 정규구조

– VLSI 구현을 용이하게 하기 위한 정규적인 모듈 구조를 가져야 함

Page 17: Chap 4.  관용 암호 방식           알고리즘

17/58

IDEA IDEA 암호화 암호화

Page 18: Chap 4.  관용 암호 방식           알고리즘

18/58

4.3 IDEA4.3 IDEA

IDEA IDEA 암호화암호화 입력

• 평문 64 비트• 키 128 비트

반복횟수 : 전체 8 라운드 알고리즘

• 입력을 4 개의 16 비트 서브블록으로 분해• 각 반복은 4 개의 16 비트 서브블록들을 처리• 서브키 (52 개 )

– 각 라운드에 6 개의 16 비트 서브키를 이용– 6*8 = 48– 최종 변환은 4 개의 서브키 사용

Page 19: Chap 4.  관용 암호 방식           알고리즘

19/58

단일 과정단일 과정

Transformation

Sub-encryption

44 개의 서브키개의 서브키 (Z1 ~ Z4)(Z1 ~ Z4) 44 개의 입력 블록개의 입력 블록 (X1~X4)(X1~X4)

덧셈덧셈 , , 곱셈연산을 이용해서 곱셈연산을 이용해서 키와 입력 블록을 조합키와 입력 블록을 조합 ((변환과정변환과정 ))

조합된 결과를 조합된 결과를 XORXOR

MAMA 빌딩블록은 빌딩블록은 확산확산성질의 성질의 효과를 증대효과를 증대 (( 서브 암호화 서브 암호화 과정과정 ))

두번째와 세번째의 결과 두번째와 세번째의 결과 교환교환 (( 혼돈혼돈성질의 증가 및 성질의 증가 및 차분해독에 견딜 수 있는 차분해독에 견딜 수 있는 성질성질 ))

Page 20: Chap 4.  관용 암호 방식           알고리즘

20/58

1010

0001

1010

1111

0101

Page 21: Chap 4.  관용 암호 방식           알고리즘

21/58

출력 변환 단계출력 변환 단계

Page 22: Chap 4.  관용 암호 방식           알고리즘

22/58

서브키 생성서브키 생성

z1 z2 z3 z4 z5 z6 z7 z8

Z(128bits)

z15 z16 z9 z10 z11 z12 z13 z14 z1525

z23 z24 z17 z18 z19 z20 z21 z2250

128128 비트의 암호키 입력비트의 암호키 입력1) Z1, Z2, …, Z8 까지의 8 개의 서브키 생성 <= 각각 16 비트2) 키를 25 비트 왼쪽 순환 이동

• 첫 비트부터 그 다음의 서브키를 8 개 생성3) 52 개의 서브키를 추출할 때까지 2 번 반복

Page 23: Chap 4.  관용 암호 방식           알고리즘

23/58

암호암호 // 복호화복호화

Page 24: Chap 4.  관용 암호 방식           알고리즘

24/58

IDEA IDEA 복호화복호화 복호를 위한 서브키 생성

• Z1-1, -Z2, -Z3, Z4

-1

기존 알고리즘의 연산• XOR=> XOR 하면 이전 값 복원

예 ) 키 : 1111, 연산값 : 1001 • XOR: 1111(+)1001(+)1111 • 덧셈 : 1111+1001-1111• 곱셈 : 1111*1001*x• 1111*x mod 2^5-1 = 1

Page 25: Chap 4.  관용 암호 방식           알고리즘

25/58

IDEAIDEA 의 동작 모드의 동작 모드 DESDES 와 유사한 와 유사한 44 가지 동작 모드가지 동작 모드 ECBECB

64 비트의 각 평문 블록이 독립적으로 암호화 작은 블록의 데이터 암호화에 유용

CBCCBC 평문의 다음 64 비트와 암호문의 이전 64 비트에 대한 XOR 같은 64 비트 평문이라도 매번 다른 암호문 생성

CFBCFB 입력은 한번에 J 비트로 처리 J 비트 암호문이 다음 암호화에 입력

OFB(Output feedback)OFB(Output feedback) 평문과 XOR 되기 이전의 IDEA 출력이 다음 암호화에 입력 잡음이 있는 채널에서의 스트림 전송에 유효

Page 26: Chap 4.  관용 암호 방식           알고리즘

26/58

4.4 Blowfish4.4 Blowfish

Bruce SchneierBruce Schneier 에 의해 개발된 대칭 블록 암호 방식에 의해 개발된 대칭 블록 암호 방식 특성특성

빠른 속도 : 32 비트 마이크로 프로세서에서 1 바이트 당 18클럭 사이클의 속도로 암호화

간결성 : 5K 이내의 메모리에서도 실행가능 단순성 : 간단한 구조로 구현이 쉽고 알고리즘의 강도

결정이 용이함 보안의 가변성 : 키의 길이는 가변적이며 448 비트만큼

길어질 수 있어 높은 속도와 보안성 사이의 균형이 가능 6464 비트 블록의 평문을 암호화비트 블록의 평문을 암호화

Page 27: Chap 4.  관용 암호 방식           알고리즘

27/58

Page 28: Chap 4.  관용 암호 방식           알고리즘

28/58

Page 29: Chap 4.  관용 암호 방식           알고리즘

29/58

키키 사이즈 : 32 비트에서 448 비트 범위 생성

• 18 개의 32 비트 서브키• 32 비트 엔트리를 갖는 4 개의 8*32 S 박스 생성

키는 K-배열에 저장• K1, K2, …, Kj 1<= j <= 14

서브키는 P-배열에 저장• P1, P2, …, P18

Page 30: Chap 4.  관용 암호 방식           알고리즘

30/58

P-P-배열과 배열과 S-S- 박스 생성 법박스 생성 법1. 우선 P-배열과 4 개의 S- 박스를 차례로 상수 phi 의 소수부

비트를 이용하여 초기화함 . 그러므로 phi 의 소수부의 맨 왼쪽 32비트 부터 계속 P1, P2, …, P18 이 됨 .

2. 필요 시 K-배열의 워드를 재 사용하여 P-배열과 K-배열을 비트 단위 XOR 연산을 수행P1= P1 XOR K1, P2= P2 XOR K2 …

3. 현재의 P-배열과 S-배열을 이용하여 모두 0 인 64 비트 블록을 암호화 , P1 과 P2 를 암호문으로 대체

4. 현재의 P-배열과 S-배열을 이용하여 단계 3) 의 결과를 암호화하고 P3 와 P4 를 암호문으로 대체

5. 이 과정을 계속하여 P 의 모든 요소와 S 의 모든 요소를 차례로 매 단계마다 계속 변하는 Blowfish 알고리즘의 결과를 이용하여 갱신

Page 31: Chap 4.  관용 암호 방식           알고리즘

31/58

갱신 처리 과정갱신 처리 과정 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]

EP,S[Y] 는 배열 S 와 P 로 Blowfish 를 이용하여 Y 를 암호화해서 생성된 암호문

Page 32: Chap 4.  관용 암호 방식           알고리즘

32/58

최종적인 최종적인 SS 와 와 PP 를 생성키 위해서 를 생성키 위해서 Blowfish Blowfish 암호 암호 알고리즘이 총 알고리즘이 총 521521회 필요회 필요

비밀키가 자주 바뀌는 응용에는 적합하지 않음비밀키가 자주 바뀌는 응용에는 적합하지 않음 빠른 실행을 위해서는 빠른 실행을 위해서는 PP 와 와 S-S-배열은 알고리즘이 배열은 알고리즘이

사용될 때마다 키로부터 유도하기 보다는 테이블에 사용될 때마다 키로부터 유도하기 보다는 테이블에 저장저장

소요되는 메모리는 소요되는 메모리는 4K 4K 바이트가 넘는다바이트가 넘는다 .. BlowfishBlowfish 는 메모리 용량이 제한된 스마트카드와 같은 는 메모리 용량이 제한된 스마트카드와 같은 응용에는 적합하지 않음응용에는 적합하지 않음

Page 33: Chap 4.  관용 암호 방식           알고리즘

33/58

암호화 및 복호화암호화 및 복호화 기본연산

• 덧셈 : 2^32 을 법으로 하는 연산• 비트 XOR 연산

알고리즘

for i = 1 to 16 do REi = LEi-1 Pi; LEi = F[REi] REi-1;LE17 = RE16 P18 ;

RE17 = LE16 P17;

Page 34: Chap 4.  관용 암호 방식           알고리즘

34/58

F[a,b,c,d]=((S1,a+S2,b) S3,c)+S4,d

Page 35: Chap 4.  관용 암호 방식           알고리즘

35/58

복호화복호화 서브키의 역순을 사용 암호화와 같은 방향으로 복호화 수행 알고리즘

for i = 1 to 16 do RDi = LDi-1 P19-1; LDi = F[RDi] RDi-1;LD17 = RD16 P1 ;

RD17 = LD16 P2;

Page 36: Chap 4.  관용 암호 방식           알고리즘

36/58

논의 사항논의 사항 Blowfish 의 특성

• 암호해독이 매우 어려움– 서브키와 S 박스들이 Blowfish 자신의 반복 적용에 의해

생성• 데이터 양쪽 모두에 대해서 연산이 수행됨

– 고전 Feistel 암호와의 차이점• 실행속도가 매우 빠름

Page 37: Chap 4.  관용 암호 방식           알고리즘

37/58

펜티엄 컴퓨터상의 블록 암호 속도 비교펜티엄 컴퓨터상의 블록 암호 속도 비교

알고리즘 반복별 클럭 사이클 반복 수 암호 바이트별 클럭 사이클 수

Blowfish 9 16 18 RC5 12 16 23 DES 18 16 45 IDEA 50 8 50

Triple- DES 18 48 108

Page 38: Chap 4.  관용 암호 방식           알고리즘

38/58

4.5 RC54.5 RC5 Ron RivestRon Rivest 에 의해 개발된 대칭 암호 알고리즘에 의해 개발된 대칭 암호 알고리즘 RSA RSA 데이터 보안회사의 데이터 보안회사의 BSAFE, JSAFE, S/MAILBSAFE, JSAFE, S/MAIL 등에 사용등에 사용 특성특성

하드웨어 및 소프트웨어의 적합성 : 마이크로프로세서에서 일반적으로 사용되는 기본 연산만 사용

빠른 속도 : 단어 단위로 처리 , 기본 연산은 한번에 데이터 단어 전체를 처리 다른 단어 길이 프로세서에의 적응성 : 단어 당 비트수를 매개변수로 이용 ,

매개변수가 다르면 다른 알고리즘이 됨 반복 수의 가변성 가변 길이의 키 단순성 : 구현이 쉽고 알고리즘의 강도 결정이 용이 낮은 메모리 요구량 : 스마트 카드나 기타 한정된 메모리를 사용하는 장치에

적당 높은 보안성 : 적당한 매개변수로 높은 보안성 제공 데이터 의존적인 순환 이동 : 데이터 양에 따라 결정되는 회전 이동을 채용 =>

암호 해독에 대한 알고리즘의 강도를 높여 줌

Page 39: Chap 4.  관용 암호 방식           알고리즘

39/58

RC5 RC5 매개변수매개변수 w : 단어의 비트 수 , 16, 32, 64 r : 반복횟수 , 0,1,…,255 b : 비밀 키 K 내의 8 비트 바이트수 0,1,…,255

특정버전 특정버전 : RC5-w/r/b: RC5-w/r/b RC5-32/12/16

• 32 비트 단어 (64 비트 블록 처리 )

• 12회 반복의 암호 및 복호 처리• 16 바이트 키 (128 비트 )

Page 40: Chap 4.  관용 암호 방식           알고리즘

40/58

키 확장과정키 확장과정

Page 41: Chap 4.  관용 암호 방식           알고리즘

41/58

키확장키확장 총 t 개의 서브키를 생성

• 두개의 각 서브키가 각 반복에 사용됨• 추가적인 2 개의 서브키는 어떤 반복의 일부가 아닌 별도의 연산에 사용됨

• t = 2r + 2

• 각 서브키의 길이는 한 단어 (w 비트 ) 서브키는 S[0], S[1],…, S[t-1] 라 부르는 t- 단어 배열에 저장

Page 42: Chap 4.  관용 암호 방식           알고리즘

42/58

Page 43: Chap 4.  관용 암호 방식           알고리즘

43/58

암호화암호화LE0 = A + S[0] ;

RE0 = B + S[1];

For i = 1 to r do

LE i = ((LE i-1 1 RE i-1 -1 ) RE i-1 -1) + S[2 i];

RE i = ((RE i-1 - 1 LE i-1 -1 ) LE i-1 -1) + S[2 i+1];

Page 44: Chap 4.  관용 암호 방식           알고리즘

44/58

복호화복호화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];

Page 45: Chap 4.  관용 암호 방식           알고리즘

45/58

RC5 RC5 모드모드 블록 암호 모드 : 고정크기의 입력블록을 취하여 키에 의한

변환을 하여 같은 크기의 암호 블록을 생성 , DES 의 ECB 모드와 동일

CBC 모드 : RC5 를 위한 블록연결 (CBC) 모드 CBC-Pad 모드 : 임의 길이의 평문을 처리하는 CBC 유형의

알고리즘 CTS 모드 : 암호문을 훔쳐내는 모드로서 역시 CBC 유형의

알고리즘 , 임의길이의 평문을 받아서 같은 길이의 암호문을 생성

Page 46: Chap 4.  관용 암호 방식           알고리즘

46/58

4.6 CAST-1284.6 CAST-128

19971997 년 년 Carlisle AdamsCarlisle Adams 와 와 Stafford TavaresStafford Tavares 에 의해 에 의해 개발된 대칭 암호 알고리즘개발된 대칭 암호 알고리즘

4040 비트에서 비트에서 128128 비트 사이에 비트 사이에 8 8 비트씩 증가하는 비트씩 증가하는 다양한 크기의 키를 사용다양한 크기의 키를 사용

6464 비트의 평문블록 비트의 평문블록 => 64=> 64 비트의 암호문블록비트의 암호문블록 1616회 반복하는 고전적 회 반복하는 고전적 Feistel Feistel 네트워크 구조네트워크 구조 각 반복 과정에 두개의 서브키를 사용각 반복 과정에 두개의 서브키를 사용

Page 47: Chap 4.  관용 암호 방식           알고리즘

47/58

암호화암호화 기본연산

• 덧셈과 뺄셈 : 법 2^32 으로 수행• 비트 XOR 연산• 왼쪽 순환 이동 : 단어 x 의 y 비트이동 , x<<<y

암호 알고리즘 L 0 ll R 0 = plaintext

For I= 1 to 16 do

Li = R i-1 ;

Ri = L i-1 Fi [R i-1 ,

Kmi , Kri ];

= ciphertext R16 ll L16

Page 48: Chap 4.  관용 암호 방식           알고리즘

48/58

Page 49: Chap 4.  관용 암호 방식           알고리즘

49/58

치환박스치환박스 8 개의 8*32 S 박스를 사용 S1 ~ S4 : 암호화와 복호화에 사용 S5 ~ S8 : 서브키 생성에 사용

S 박스 : 256 행 32열 배열• 8 비트 입력은 배열의 행을 선정• 그 행의 32 비트 값이 출력• S 박스는 고정된 값을 포함

Page 50: Chap 4.  관용 암호 방식           알고리즘

50/58

서브키 생성서브키 생성 우선 128 비트 키의 각 바이트를 다음과 같이 표기

• X0X1X2X3X4X5X6X7X8X9XAXBXCXDXEXF

• 최상위 바이트는 X0

• 최하위 바이트는 XF

• Km1,…,Km16 : 16 개의 32 비트 마스킹 서브키 (r 1 개 )

• Kr1,…,Kr16 : 16 개의 32 비트 회전 이동 서브키 (r1)

각 서브키의 최하위 5 비트만 사용됨

• z0 …zF : 중간 (임시 ) 바이트• K1,…,K32 : 중간 (임시 ) 32 비트 단어

Page 51: Chap 4.  관용 암호 방식           알고리즘

51/58

Page 52: Chap 4.  관용 암호 방식           알고리즘

52/58

Page 53: Chap 4.  관용 암호 방식           알고리즘

53/58

논의사항논의사항 고정된 S 박스 사용

• 임의의 랜덤 값보다는 암호학적 강도 제공• 길이가 256 인 32 개의 다른 이진 bent 벡터를 선택

Page 54: Chap 4.  관용 암호 방식           알고리즘

54/58

4.7 4.7 개선된 대칭 블록 암호의 특징개선된 대칭 블록 암호의 특징

가변 키 길이가변 키 길이 혼합 연산자혼합 연산자 데이터 의존 회전 이동데이터 의존 회전 이동 키 의존 회전 이동키 의존 회전 이동 키 의존 키 의존 SS 박스박스 긴 키 스케쥴 알고리즘긴 키 스케쥴 알고리즘 가변적 가변적 FF 가변적 평문가변적 평문 // 암호문 블록 길이암호문 블록 길이 가변적 반복 횟수가변적 반복 횟수 매 반복 시 양쪽 데이터 절반의 연산매 반복 시 양쪽 데이터 절반의 연산

Page 55: Chap 4.  관용 암호 방식           알고리즘

55/58

가변 키 길이 가변 키 길이

Blowfish, RC5, CAST-128, RC2

혼합연산자 혼합연산자

산술 및 부울 연산자 중 하나 이상 사용 , 비 선형성 제공

Triple-DES 를 제외한 4 장에서 소개된 모든 알고리즘

데이터 의존 회전 이동 데이터 의존 회전 이동

회전이동은 서브 키에 의존하지 않고 , 움직이는 데이터 블록에 의존

RC5

키 의존 회전 이동 키 의존 회전 이동

CAST-128

개선된 대칭 블록 암호의 특징개선된 대칭 블록 암호의 특징

Page 56: Chap 4.  관용 암호 방식           알고리즘

56/58

키 의존 키 의존 S-BoxS-Box

S-Box 의 내용이 키에 의존 , 상이한 키는 상이한 S-Box 생성

높은 비선형성 제공 , Blowfish 에서 채택

긴 키 스케줄 알고리즘긴 키 스케줄 알고리즘

서브키 생성이 단일 암호화 또는 복호화 보다 더 오래 걸림

전사적 공격에 강함 , Blowfish 에서 채택

가변적 가변적 F F 함수함수

반복과정에 따라 변하는 F 함수 , CAST-128 에서 채택

가변적 평문가변적 평문 // 암호문 블록 길이암호문 블록 길이

편의성 제공 ( 알고리즘 응용에 맞출 수 있음 ), RC5 에서 채택

Page 57: Chap 4.  관용 암호 방식           알고리즘

57/58

가변적 반복 횟수가변적 반복 횟수

보안성과 실행속도와의 관계 조정 가능 , RC5

매 반복 시 양쪽 데이터 절반의 연산매 반복 시 양쪽 데이터 절반의 연산

최소한의 연산 시간 증가로 높은 보안성 획득

IDEA, Blowfish, RC5

Page 58: Chap 4.  관용 암호 방식           알고리즘

58/58

주요 대칭 블록암호의 특징주요 대칭 블록암호의 특징주요특성 IDEA Blowfish RC5 CAST-128 RC2

개발연도 1990 1993 1994 1997 1997

가변 키 길이

혼합연산자

데이터의존

회전이동

키의존

회전이동

키의존 S박스

긴 키 스케줄

알고리즘

가변적 F

가변적 평문/

암호문 블록길이

가변적 반복 횟수

양쪽 데이터

절반의 연산