You are on page 1of 36

암호학 (03)

순천향대학교 정보보호학과
이선영

1
지난 강의 요약

 스트림 암호
 동기식 스트림 암호
 자기 동기식 스트림 암호
 블록 암호
 대칭키 암호와 비대칭키 암호 ( 공개키 암호 )
 블록의 개념
 평문을 블록으로 나누어 암호화 수행

 블록 암호의 사용모드
 ECB
 CBC

2
블록 암호의 사용 모드

 Cryptographic mode
 블록 암호를 사용하는 방법 정의
 피드백 (Feedback), 단순 연산 (Simple operations), 기본 암호
(Basic cipher) 와 결합하여 사용
 안전성은 모드에 의존하지 않고 암호 알고리즘에 의존

 사용 모드의 요구조건
 평문의 패턴 숨김
 효율성 : 모드는 알고리즘의 효율성에 큰 영향을 주어서는 안됨
 Fault-tolerance

3
ECB Mode
(Electronic Codebook Mode)
P1 P2 Pi

K E K E … K E

C1 C2 Ci
 Pi 는 평문 블록 , Ci 는  특징
암호문 블록  가장 간단한 모드
 평문은 특정 크기의 블록으로
 평문 블록을 암호문 블록으로
나누어 암호화 수행
암호화
 평문 블록에 대한 패딩
 동일 키를 이용할 때 동일한
(padding) 절차 필요함
 E 는 암호 알고리즘
평문 블록은 항상 같은
암호문으로 암호화 됨
 K 는 비밀키 / 대칭키
 각 블록은 독립적으로 암호화

4
CBC Mode
(Cipher Block Chaining Mode)
Pi Pi+1 Ci-1 Ci Ci+1
Pi-1

⊕ ⊕ ⊕
IV DK DK DK

EK EK EK ⊕ ⊕ ⊕

Ci-1 Ci Ci+1
Pi-1 Pi Pi+1
암호화 복호

 수식 표현

 오류 전파 있음

5
CFB Mode
(Cipher – FeedBack Mode)
Shift Register Shift Register

Ci Ci

K E K E

ti ti

Pi ⊕ Ci Ci ⊕ Pi
암호화 복호

6
 블록 크기보다 작은 단위로 암호화
 8-bit CFB, 1-bit CFB, n-bit CFB
 초기 벡터 IV
 비밀일 필요 없음
 유일한 값이어야 함
 오류 전파
 평문의 오류
 이후의 모든 암호문에 영향을 미치나 복호에서 복원
 암호문의 오류
 m 을 블록크기라 할 때 , n-bit CFB 에서 1 개의 암호문 오류 발생하면
개의 암호문 블록에 영향을 미침

7
OFB Mode
(Output – FeedBack Mode)
Shift Register Shift Register

ti ti

K E K E

ti ti

Pi ⊕ Ci Ci ⊕ Pi

복호
암호화

 오류 확장 없음

8
CTR Mode
(Counter mode)
 수식표현

 K는키
 Nonce 는 고유번호 , 한번만 사용해야 하며 비밀 아님

 스트림 암호 모드
 암호화와 복호 동일

9
암호 모드의 선택
 ECB
 가장 빠르고 간단
 공격에 취약
 CBC
 File 암호화에 적함
 CFB
 각 문자가 개개로 다루어져야 할 문자열 암호화
 OFB
 오류가 자주 나타나는 환경에서 사용
 CTR
 다양한 응용에서 사용가능

10
DES
(Data Encryption
Standard)

11
DES 의 조건

 High level security


 정확한 규정 , 이해하기 쉬움
 안전성은 키에 의존해야 함
 알고리즘의 비밀성에 의존하면 안됨
 모든 사용자가 이용 가능
 다양한 응용에 적용 가능
 경제적인 구현
 전자 장치로서 제품화 간단 , 사용이 간단
 알고리즘의 타당성 검증에 협조
 수출 가능

12
DES(Data Encryption Standard)

 미국의 표준 암호 알고리즘 (1977 년 )

 1998 년까지만 사용 (1993 년 )

 현재는 미국 표준에서 삭제됨

 3-DES 는 표준으로 유지되고 있음

 Feistel 구조

 블록 길이 64 비트 , 키 56 비트

 Substitution( 치환 ), Permutation( 전치 ), Exclusive-OR

 공격

 차분 공격 , 선형 공격

13
DES 에 대한 기술적 이해

 대칭키 암호 알고리즘
 블록 단위 암호화 / 복호
 블록 단위 처리를 위한 패딩과정 필요함
 전체 암호문의 크기는 블록 크기의 배수가 됨
 단순한 연산의 반복을 통하여 암호화 수행
 XOR, 순환 시프트 , 비트 치환 등의 연산자 사용
 일련의 단순 연산들을 모아 Round 를 구성함
 Round 는 암호화를 위한 최소 연산 단위

14
DES 의 개요
 블록 크기 : 64 비트
 64 비트 평문 블록 -> 64 비트 암호문 블록
 평문 메시지를 64 비트 블록 단위로 나눔
 패딩 과정 필요

 암호화와 복호에서 같은 키 사용
 64 비트 키 선택하여 56 비트만 이용 (8,16,24,32,40,48, 56,64 번째
비트 무시 )
 라운드 수와 같은 수의 서브키 (subkey) 생성하여 이용

 라운드 (Round)
 암호화 과정을 위한 최소 연산 단위
 연산을 16 회 사용 => DES 는 총 16 라운드

15
DES 알고리즘 개요
32 bit

64 비트 평문 블록 확대 전치
초기전치 48 bit

32 비트 Ln 32 비트 Rn
⊕ 48 bit
Kn

S-Box
f K 32 bit

P-Box
⊕ 1 라운드
32 bit

32 비트 Ln+1 32 비트 Rn+1
Ln

32 비트 Rn+1
역전치

64 비트 암호문 블록

16
초기 전치 (Initial Permutation; IP)
 1 라운드 시작전에 초기
58 50 42 34 26 18 10 2
전치 수행 60 52 44 36 28 20 12 4
 입력 평문 블록 64 bit 62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
들의 위치를 표와 같이 65 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
안전성과 관련 없음

평문의 58 번째 비트값

17
f 함수 – 확대 전치 E
(Expansion Permutation)
 32bit Ri 를 48bit 로 확장
 Ri 를 서브키와 같은 크기로 만들어 서브키와 XOR

32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1

18
S-Box
(S-Box Substitution)
 8 개의 S-Box 에 의해 치환 수행
 확대 전치의 결과 48bit 를 6 개씩 묶어 8 개를 만든 후 8
개의 S-box 에 입력
 6bit 의 입력을 받아 S-Box 는 4bit 를 출력함

48 비트 Ri 48 비트 Ki

s1 s2 … s8

19
S-Box
(S-Box Substitution)
 각 S-box 는 4 행 16 열로 구성됨
 각 구성요소의 값은 4 비트로 표현 가능한 수
 입력의 6bit 로 출력의 행과 열 정의
 S-box 의 입력 6bit 2 진수 b5b4b3b2b1b0

b5b4b3b2b1b0
행 열 행

 예제 : S6 의 입력 110011 의 출력은 ?
 행 11(2) = 3
열 1001(2) = 9
 S6 의 3 번행 9 번 열의 값 = 14 =1110(2)
 110011 의 S6-box 출력은 1110

20
3 번행 9 번열

* 현대암호학제 5 판 , , pp.109-110, 원동호 저 , 도서출판 그린 21


평형 전치 P
(P-Box Permutation)
 S-box 의 치환 결과 32 비트를 P-box 에 의해 나열
 P-box permutation 의 결과는 Li 와 XOR 됨
 f- 함수 완료
16 7 20 21
29 12 28 17
1 15 23 36
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25

22
f- 함수 이후

 f- 함수 결과는 오른쪽 32 비트 Rn+1 이 됨

 이전 단계의 Rn 은 다음 단계의 Ln+1 이 됨


 1 라운드 완료 됨

 Rn+1 과 Ln+1 을 이용하여 다시 다음 라운드 시작함

 f- 함수 , XOR 연산 수행

 총 16 회 라운들 반복함

23
최종 전치 ( 역전치 )

 전체 16 라운드 연산을 모두 수행한 후 64 비트 블록을 만든

후 최종 전치 수행한
 초기 전치의 역 전치

 1 블록에 대한 모든 암호화 과정 완료됨

24
키 스케줄
(Key Schedule)

 정의

 각 라운드에서 사용될 서브키 ( 라운드키 ) 를 생성하는 알고리즘

 사용자는 64 비트 암호화 / 복호키 지정

 알고리즘에서 8 비트를 제외한 56 비트를 키 K 로 사용함

 키 K 를 바탕으로 f- 함수에서 사용되는 Kn 을 생성함

 Kn 을 서브키 ( 또는 라운드키 ) 라고 부름

 각 라운드마다 다른 서브키 Kn 을 생성하는 것이 목적임

 Rotation( 순환 시프트 ), 축약전치를 연산자로 사용함

25
DES 알고리즘 개요
32 bit

64 비트 평문 블록 확대 전치
초기전치 48 bit

32 비트 Ln 32 비트 Rn
⊕ 48 bit
Kn

S-Box
f K 32 bit

P-Box
⊕ 1 라운드
32 bit

32 비트 Ln+1 32 비트 Rn+1
Ln

32 비트 Rn+1
역전치

64 비트 암호문 블록

26
키 스케줄
(Key Schedule)
 Rotation 의 양 , 축약전치 순서는 정해져 있음

56 비트 키
키 전치

28 비트 Cn 28 비트 Dn

Rotation Rotation

48bit
Kn 축약전치

27
키 스케줄에 사용되는 연산

 축약전치  Rotation 의 양
라운드 시프트 라운드 시프트
14 17 11 24 1 5
1 1 9 1
3 28 15 6 21 10
2 1 10 2
23 19 12 4 26 8
3 2 11 2
16 7 27 20 13 2
4 2 12 2
41 52 31 37 47 55
5 2 13 2
30 40 51 45 33 48
6 2 14 2
44 49 39 56 34 53
7 2 15 2
46 42 50 36 29 32
8 2 16 1

28
DES 의 복호 (Decryption)
 암호화 알고리즘을 그대로 사용함

 별도의 복호 알고리즘 필요없음

 암호화 과정의 반대 순서로 서브키 입력

 K16, K15, …., K1

 DES 암호 구조의 특징임

29
DES 의 규칙성
 보수 특성

 취약키 (Weak Key)


 초기키를 이용하여 서브키를 만들 때 안전성이 취약한 키
존재할 수 있음
 서브키 K16, K15, …., K1 가 모두 같은 형태의 계열
 : 암호화를 2 번 하면 평문 드러남

30
DES 의 규칙성
취약키
0101010101010101
FEFEFEFEFEFEFEFE
1F1F1F1F0E0E0E0E
E0E0E0E0F1F1F1F1

유사 취약키 (Semiweak key)


한 쌍의 유사키는 각
01FE01FE01FE01FE 키가 만든 서브키의
F E 0 1 F E 0 1F E 0 1 F E 0 1 순서만 다르고 동일한
모양이 됨
예 : 서브키 K1 은 다른
1FE01FE01FE01FE0 유사취약키로 만든
서브키 K16 과 동일
E01FE01FE01FE01F

31
DES 의 안전성
 키의 소모적 공격

 안전성 평가할 때 키 길이가 중요

 키의 소모적 공격

 공격자는 ( 암호문 , 평문 ) 의 쌍을 알고 있다고 가정

 암호기에 평문 입력 후 모든 키를 차례로 입력

 알고 있는 암호문이 나올 때까지 반복하여 키 알아냄

 2 중 DES 의 사용

 서로 다른 키로 DES 를 반복 적용하면 안전성 향상될 것으로 예측

 안전성 향상 안됨

32
 Triple DES(3 중 DES) : 키의 길이가 2 배 확대된 효과 (

안전성 향상 )

𝐸𝐾 1
( 𝐷𝐾 (𝐸𝐾
2 1
( 𝑃 ) ) )= 𝐶

 S-box 의 선택

 안전한 비선형적 S-box 의 선택이 중요함

33
DES 에 대한 공격
 블록 암호에 대한 공격
 공격의 목적은 키의 발견
 전수 공격보다 효율적인 공격을 성공적인 공격이라고 함

 차분 분석 (Differential Cryptanalysis)
 Biham & Shamir(1990)
 선택 평문 공격
 입력의 변화에 의해 출력 변화의 분포에 편중이 있을 때 사용
 입력 차분 (input difference) 이 어떤 출력 차분 (output difference)
으로 높은 확률로 전파되는지 검색
 라운드 수를 늘임으로써 공격에 대해 대응

34
DES 에 대한 공격
 선형 분석 (Linear Cryptanalysis)

 Matsui(1993 년 )

 기지 평문 공격 (Known-plaintext attack)

 입력의 특정 비트들의 XOR 값 , 출력의 특정 비트들의 XOR 값을

이용하여 키 추정

 선형 분석에 대한 대응

 라운드 수 늘림

 S-box 설계 시 선형 확률이 작아지는 함수 이용

35
DES Challenge
 DES Challenge I
 1997 년 1 월 28 일 개시
 Distributed.net 에 의해 140 일 만에 해독
 인터넷 이용
 DES Challenge II-1
 1998 년 1 월 13 일 개시
 Distributed.net 에 의해 39 일 만에 해독
 인터넷 이용
 DES Challenge II-2
 1998 년 7 월 13 일
 EFF(Electronic Frontier Foundation) 에 의해 56 시간에 해독
 전용 하드웨어 사용
 DES Challenge III
 1999 년 1 월 18 일 개시
 EFF, distributed.net 에 의해 22 시간 15 분에 해독
 전용 하드웨어 + 인터넷 사용

36

You might also like