관용 암호 방식 - DES (Data Encryption Standard)
관용 암호 방식
목 차
1. 암호의 개념
2. 암호 용어
3. 관용 암호 방식 모델
4. 관용 암호 방식 기술
5. DES (Data Encryption Standard)
6. 3중 DES
1. 암호의 개념
통신 당사자들끼리만 아는 비밀스런 신호나 부호
암호화와 복호화하기 위한 원리, 수단, 방법 등을 취급하는 기술이나 과학
2. 암호 용어
3. 관용 암호 방식
암호화 키(Encryption key) = 복호화 키(Decryption key)
대칭키 암호 시스템, 단일키 암호 시스템, 관용 암호 방식
Security
암호 알고리즘의 비도는 키의 비밀성에 의존
장점
다양한 알고리즘 개발, 알고리즘 수행속도 빠르다
단점
키 관리 및 키 분배의 어려움
디지털 서명의 어려움
DES, RC5, SKIPJACK, IDEA, SEAL, RC4 등
3.1 암호시스템의 영역
평문을 암호화하기 위한 연산자의 유형
치환 (Substitution) : 평문의 각 원소를 다른 원소로 사상
전치 (Transpostion) : 평문의 각 원소를 재배열
대부분의 혼합 시스템은 다단계의 치환과 전치사용
사용된 키의 수
관용키 : 송수신자가 같은 키를 사용
공개키 : 송수신자가 다른 키를 사용
평문 처리 방법
블록 암호화 (Block cipher) : 연산을 블럭단위로 처리
스트림 암호화 (Stream cipher) : 입력을 연속적으로 처리
3.2 암호 해독
Cryptanalysis
평문이나 키 또는 이 두 가지를 모두 발견하려는 시도 과정
암호 메시지에 대한 공격의 유형
암호문 단독 공격 (Ciphertext only)
기지 평문 공격 (Known plaintext)
선택 평문 공격 (Chosen plaintext)
선택 암호문 공격 (Chosen ciphertext)
선택 원문 공격 (Chosen text)
4. 관용 암호 방식 기술
평문 메시지의 은닉 방법
Steganograhpy 방법
• 메시지의 존재 자체를 은폐
암호 방법
• 다양한 원문의 변환에 의해 외부인이 그 의미를 알지 못하도록 메시지를 변형
4.1 Steganography
특징
메시지의 존재 자체를 은폐
원문내의 단어나 문자를 적당히 배열 함으로써 실제 메시지를 나타냄
예제
문자 마킹 (Character marking)
• 원문의 문자에 연필로 덧써서 표시를 해 빛을 적당한 각도로 비춰어야만 보임
보이지 않는 잉크 (Invisible ink)
• 종이에 열이나 화학 처리를 해야만 보이는 잉크를 사용
핀 구멍 (Pin punctures)
• 빛을 비춰야만 보이는 작은 구멍을 원문에 넣는 방법
타자 수정 리본 (Typewriter correction ribbon)
• 흑색 리본으로 타자된 줄 사이에 강한 빛에서만 보이는 수정리본을 이용하여 타자하는 방법
Steganography의 장점
비밀통신에 대한 사실이 발견되면 안되는 사용자들에 의해 이용될 수 있다.
Steganography의 단점
상대적으로 적은 정보비트를 은닉하는데 많은 오버헤드 요구
방법 노출시 재사용 불가
4.2 치환 기법
4.2.1 시이저 암호법
쥴리어스 시저에 의해 개발
예제 (Key : 3)
평문 : meet me after the toga party
암호문 : PHHW PH DIWHU WKH WRJD SDUWD
암호화 (문자 p를 암호화)
C = E(p) = (p+3) mod (26)
일반화 : C = E(p) = (p+k) mod (26)
문자 p는 C로 암호화
복호화
p = D(C) = (C -3) mod (26)
일반화 : p = D(C) = (C - k) mod (26)
문자 C는 p로 복호화
단점
암호화 및 해독 알고리즘을 알고 있다.
가능한 키가 25개 뿐이다.
• Brute-force attack이 가능
평문의 언어를 알고 있으며 쉽게 인식할 수 있다.
4.2.2 단일 치환 암호법
각 문자에 26자의 치환 가능
시이저 암호의 키 공간을 급격히 증가
• 시이지 암호 : 25
• 단일 치환 암호법 : 26!
단점
출현 빈도수를 이용해 평문 유추가능
ex) 영어 문장에는 t, e, a, h 등이 많이 나타남
암호문에서도 그에 상응하는 문자가 같은 빈도로 나타남
4.2.3 다중 문자 치환 암호 기법
2자기씩 암호화
playfair 알고리즘은 5 * 5 행렬에 기초
키워드가 monarchy인 행렬
암호화 방법
반복되는 평문은 X와 같은 채움문자로 분리
• balloon : ba lx lo on
같은 행에 두문자가 있을 경우 우측에 있는 문자와 치환
• ar은 RM으로 치환
같은 열에 두문자가 있을 경우 바로 밑에 문자와 치환
• mu는 CM으로 치환
그 외에 평문자쌍는 대각선에 위치한 문자와 치환
• hs는 BP로, ea는 IM(또는 JM)
특징
monoalphabetic 암호기법의 진보된 방법
• 알파벳은 26 가지
• 2중자는 26 * 26 = 676 가지
2중자의 빈도수 분석은 어려움
1, 2차 대전중 미국, 영국 육군에서 사용
단점
평문의 원래 구조가 많이 드러남
수백자의 암호문자로 구조를 알 수 있다.
암호기법은 평문보다 평평한 분포가 가짐. 하지만 해독가에겐 해용한 구조를 가짐
• 그림 2.6 문자 출현의 상대 분표도 참조
4.2.4 다중 단일 문자 치환 암호화
단순 단일 문자 치환 방법을 개량
다중 단일 문자 치환 암호방법의 공통점
하나의 단일 문자 치환 규칙 집합을 사용
주어진 변환에 사용될 규칙은 키에 의해 결정
Vigenere 방법 (표 2.4 참조)
키워드 : deceptive
평문 : We are discovered save yourself”
키 : d e c e p t i v e d e c e p t i v e d e c e p t i v e
평문 : w e a r e d I s c o v e r e d s a v e y o u r s e l f
암호문 : ZICVTWQNGRZGVTMAVZHCQYGLMGJ
특징
평문자에 대한 암호문자가 유일한 키워드에 각 문자에 대하여 여러 개 존재
문자 빈도수에 대한 정보가 불분명해짐다
단점
평문 구조에 대한 정보가 모두 은폐되지는 않는다.
단일 문자나 Vigenere로 암호화 되었는지 아는 것은 쉽다.
• 빈도수에 따라
키워드의 길이를 유추가능 (3이나 9로 유추가능)
• 암호문에서 “VTW”이 나타남
4. 3 전치기법
평문자의 순서를 바꿈
rail fenec 기법
깊이 : 2
평문 : meet me after the toga party
mematrhtgpry
etefeteoaat
암호문 : mematrhtgpryetefeteoaat
4. 3 전치기법
사각형 행렬 사용
키 : 4 3 1 2 5 6 7
평문 : a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
암호화 : TTNAAPTMTSUOAODWCOIXKNIYPETZ
전치 암호기법은 두 단계 이상의 전치를 행함으로써 더 안전성을 높일 수 있다.
4.4 회전자 기계
다단계 암호화의 원리를 적용(그림 2.7 참조, P44)
특징
독립적으로 회전하는 실린더 집합으로 사용
각 실린더는 26개의 입력핀과 출력핀 가지고 있음
단일 실린더
한 문자때에는 단일 문자 치환 암호
• 26개이 평문자를 사용한 후에는 실린더가 초기의 위치로 와서 격국 주기가 26인 다중 단일 문자 치환
세 개의 실린더일 경우 26 * 26 * 26 = 17,576가지의 알다른 알파벳 치환을 가짐
회전자 기계의 강도는 다중 실린더에 기인
5. DES (Data Encryption Standard)
특징
IBM에서 Lucifer System을 개선하여 만듬
1997년 미 상무성의 국립 표준국(NBS)에서 표준 암호 알고리즘으로 채택
64비트 블럭 암호 알고리즘
56비트 키를 사용
– 64비트 중 8비트는 parity check로 사용
기본 구조
• round 수 : 16 round
• 복호화는 암호화의 역순
최근에는 DES암호화를 세 개의 키로 세 번 반복함으로써 암호의 강도를 높인 Triple-DES를 사용
Feistel 암호
블럭의 크기는 짝수(2n)
평문 m을 크기가 n인 두 블럭으로 나눔
m=(m0 , m1)
암호화
라운드 1 :U0=(m0,m1) ==> U1=(m1,m2)
라운드 i :Ui-1(m i-1,mi) ==> Ui=(mi,mi+1)
라운드 h :Uh-1=(mh-1,mh) => Uh=(mh,m h+1)
여기서 mi+1=mi-1 + fki(mi)
NDS와 LUCIFER
NDS(New Data Seal)
• 1975년 Feistel에 의해 설계
• 블럭크기:128비트
• 두개의 s-box이용(4비트 -> 4비트변환)
LUCIFER 암호
• 1973년 IBM의 Host Feistel
• DES의 원형
• 평문및 암호문의 블럭사이즈:128비트
• 암호화 과정:16단계
DES의 역사
전용 암호시스템 : 타 그룹간의 통신에 불리==> 데이터 암호화 표준이 필요
공개암호 표준: 미국 연방 정부가 움직임
표준화 검토(1972),적합한 암호 알고리즘 조사
1973년 5월:암호방식 공모(1차)
1974년 8월:
2차 공모==>IBM이 요건을 갖춤
==>NBS가 요건을 NSP에 의뢰
조사에 대한 요구
1. It must provide a high level of security.
2. It must be completely specified and easy to understand.
3. The security provided by the algorithm must not be based on the secrecy of the algorithm.
4. It must be all users and suppliers.
조사에 대한 요구 (계속)
5. It must be adaptable for use in diverse applications.
6. It must be economical to implement in electronic devices and be efficient to use.
7. It must be amenable to validation.
8. It must be exportable.
DES의 역사(계속)
1975년~1977:일반 comment,계약 체결
1977:NBS(NIST)가 DES를 표준 암호 알고리즘으로 채택
U.S.banks have been adopted DES
NBS postponed guarantee term of DES from till 1988 to till 1993
NSA proposed CCEP(Commercial COMSEC Endorsement Program;상용 통신 안전 보증 계획)instead of DES
U.S. bank expect to continue the use of DES
5.1 DES
초기 치환 IP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 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
f함수의 구성도
비트 선택표
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
치환 P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
S-box Table
S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
• 예) 1 0 1 1 0 1 ------ 6비트 입력
DES의 기본 구조 (키 생성부)
선택 치환 - 1
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
선택 치환 - 2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 2 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 38
44 49 39 56 34 53
46 42 50 36 29 32
쉬프트 스케줄
라운드 수 좌측 쉬프트 수
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1
DES는 강한 쇄도 효과(Avalanche Effet)를 갖는다.
DES에 관한 우려사항
미 정부의 채택이후 DES의 보안 수준에 대한 우려가 지속.
• 알고리즘의 성질을 이용한 암호 해독의 가능성
– 예) s - box의 약점에 대한 공격 가능성 주장 제기됨
그러나, 약점을 발견한 사람은 현재 존재 하지 않음
• 키 길이에 관한 우려
– Key Serarch Machine ( 기지 평문 공격 )
Cost Expected search Time
$ 100,000 35hours
$1,000,000 3.5hours
$10,000,000 21minutes
– Brute force Attack
; 1970년대/80년대 --- low computing power
90년대 --- high computing power
– 미국 수출 허용 기준인 40비트의 키
: Michael Wienerd의 key search machine으로 0.2초만에 해독 가능
Key size Number of One Encryption 106 Encryption
Alternative Keys per micro sec per micro sec
32bits 223 = 4.3 * 109 35.8 minutes 2.15ms
56bits 256 = 7.2 * 1016 1142years 10.01h
128bits 2128 = 3.4 * 1038 1024years 5.4 * 1018 years
5.2 DES의 공격 방법
공격 방법
차분 암호 해독 (Differential Cryptanalysis)
• DES에 적용해서 널리 알려짐
• 255 미만의 복잡도로 DES를 해독
• 247의 선택평문을 가지고 247 차주로 DES를 해독
선형 암호 해독 (Linear Cryptanalysis)
• 247 기지 평문으로 해독가능
• 기지 평문이 선택 평문보다 구하기 쉽기만 DES공격으로서의 선형 암호 해독은 가능성이 없다.
• 선형 암호 해독의 타당성의 주장이 약하다.
5.3 DES 작동 모드
ECB (Electronic Codebook) 모드의 특징
평문은 64비트씩 처리
마지막 비트가 64비트 미만이면 나머지 비트를 채운 후 진행
동일한 블록이 입력되면 암호문도 같다.
--> 해독될 위험성이 있다.
중요 데이타가 같은 위치에 있을 때 취약블럭이 상호 결합하지 않음
=> 연속적인 블럭 암호화법 ; Chaining 기법
ECB (Electronic Codebook) 모드
암호화
CBC (Cipher Block Chaining) 모드의 특징
하나의 암호화 스텝의 출력을 사용하여 다음 입력으로 수정
각각의 암호 블럭은 서로 영향을 받음
선행하는 평문 블럭 전체에 좌우됨
Cn : 모든 평문 블럭 P1, P2, ..., Pn의 함수
암호화 : Cn=Ek(Pn+C n-1)
복호화 : Qn=Dk (Cn) + C n-1 =Pn
Padding
Self-Recovering 기능
CBC (Cipher Block Chaining) 모드
암호화
CBC 그림참조
CFB (Cipher Feedback) 모드의 특징
문자의 길이 : m(1<m<64)
암호화 하기 위한 m비트 : DES 출력의 m비트
DES 알고리즘이 회선 양단에서 암호화로서 사용
Shift Register : 매번 새로운 비트로 교체
암호문은 선행하는 평문 모두의 함수
CFB (Cipher Feedback) 모드
암호화
CFB 그림 참조
OFB (Output Feedback) 모드의 특징
CBC, CFB의 Error Extention에 대한 응용
Vernam type
키 스트림 : 주기성이 있음
Feedback의 출발 위치를 제외하고는 CFB와 유사
OFB (Output Feedback) 모드
OFB 참조 그림
6. 3중 DES
DES의 brute-force공격에 대한 취약성을 보완
새로운 알고리즘 개발 : IDEA (Chap. 7)
DES의 응용 : 3중 DES, 2중 DES
3중 DES
2개의 키를 사용
암호화 : 암호화, 복호화, 암호화
복호화 : 복호화, 암호화, 복호화
brute-force 공격 : 2112
암호화, 복호화 과정
암호화
'myPPT' 카테고리의 다른 글
C프로그램을 이루는 기본 구성요소 (0) | 2016.10.07 |
---|---|
식물의 광합성과 호흡 (0) | 2016.10.03 |
나라조사 - UAE, 유통시장에 대해 알아보자. (0) | 2016.09.26 |
다산 정약용의 답연아[答淵兒]에 대해 알아보자 (0) | 2016.09.22 |
C언어 - 포인터와 참조 (0) | 2016.09.20 |