Professional Documents
Culture Documents
빅데이터암호학 03
빅데이터암호학 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 의 조건
12
DES(Data Encryption Standard)
Feistel 구조
블록 길이 64 비트 , 키 56 비트
공격
차분 공격 , 선형 공격
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 번열
22
f- 함수 이후
f- 함수 , XOR 연산 수행
총 16 회 라운들 반복함
23
최종 전치 ( 역전치 )
후 최종 전치 수행한
초기 전치의 역 전치
24
키 스케줄
(Key Schedule)
정의
Kn 을 서브키 ( 또는 라운드키 ) 라고 부름
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)
암호화 알고리즘을 그대로 사용함
29
DES 의 규칙성
보수 특성
30
DES 의 규칙성
취약키
0101010101010101
FEFEFEFEFEFEFEFE
1F1F1F1F0E0E0E0E
E0E0E0E0F1F1F1F1
31
DES 의 안전성
키의 소모적 공격
키의 소모적 공격
암호기에 평문 입력 후 모든 키를 차례로 입력
2 중 DES 의 사용
안전성 향상 안됨
32
Triple DES(3 중 DES) : 키의 길이가 2 배 확대된 효과 (
안전성 향상 )
𝐸𝐾 1
( 𝐷𝐾 (𝐸𝐾
2 1
( 𝑃 ) ) )= 𝐶
S-box 의 선택
33
DES 에 대한 공격
블록 암호에 대한 공격
공격의 목적은 키의 발견
전수 공격보다 효율적인 공격을 성공적인 공격이라고 함
차분 분석 (Differential Cryptanalysis)
Biham & Shamir(1990)
선택 평문 공격
입력의 변화에 의해 출력 변화의 분포에 편중이 있을 때 사용
입력 차분 (input difference) 이 어떤 출력 차분 (output difference)
으로 높은 확률로 전파되는지 검색
라운드 수를 늘임으로써 공격에 대해 대응
34
DES 에 대한 공격
선형 분석 (Linear Cryptanalysis)
Matsui(1993 년 )
기지 평문 공격 (Known-plaintext attack)
이용하여 키 추정
선형 분석에 대한 대응
라운드 수 늘림
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