Download presentation
Presentation is loading. Please wait.
Published byHeiko Frank Modified 5년 전
1
암호-3장. 대칭키 암호 ㅎㅎ 정보보호 기능의 가장 핵심적 기술인 암호를 다룬다. 흥미로운 암호의 역사를 소개하고, 고전적인 암호체계로부터 현대적인 디지털 암호체계에 이르는 기술의 발전을 살펴보고 현대의 고급 암호분석 기법을 소개한다. 한빛미디어(주)
2
학습목표 3장. 대칭키 암호 현대 대칭키 암호체계를 다룬다.
스트림암호로 A5/1, RC4를, 블록암호로 DES를 설명하면서 취약점을 제시한다. 블록암호를 사용해 데이터 무결성을 보장하는 방법을 보여준다.
3
대칭키 암호 분류 Section 01 개요 스트림 암호-일회성 암호 형태 블록 암호-코드북 개념 형태 키가 상대적으로 짧다.
키가 긴 키 스트림으로 쭉 뻗는다. 키스트림은 일회성 암호 키 같이 사용된다. 블록 암호-코드북 개념 형태 블록암호 키가 한 권의 코드북을 결정한다. 각 키가 다른 코드북을 결정한다. 혼돈과 확산 모두가 적용된다.
4
스트림 암호는 과거에 많이 활용 스트림 암호의 미래? 스트림 암호 H/W에서 효율적 음성 암호화 위해서 속도 요구 등.
프로세스의 속도 증가로 S/W 기반 암호도 충분한 속도 가능 스트림 암호의 미래? 샤미르: “스트림 암호의 사망”
5
Section 03 블록 암호-(반복되는) 블록 암호
평문과 암호문이 고정된 크기의 블록으로 구성 암호문은 평문의 반복되는 회전 함수로 생산 회전 함수 입력은 전번 회전 출력과 키로 구성 통상적으로 S/W로 구축
6
Data Encryption Standard
DES: 1970년대 개발 IBM Lucifer 암호를 기반 미 정부 표준 DES 개발은 논쟁이 있었음 NSA가 비밀리에 관련되었음 설계과정이 비공개 키 길이가 줄었음 Lucifer 알고리즘의 교묘한 변경
7
DES는 페이스텔 암호 각 회전은 단순 안전성은 주로 “S-box들”에 의존 DES 수비학(數秘學) 64 비트 블록 길이
56 비트 키 길이 16 회전 각 회전에서 48 비트의 보조키 사용 각 회전은 단순 안전성은 주로 “S-box들”에 의존 각 S-boxe들은 6 비트를 4비트 로 매핑
8
DES의 한 회전 L R expand shift key S-boxes compress 28 48 32 Ki P box
9
DES 확장 순열 입력 32 비트 출력 48 비트
10
8 “교환 박스” 또는 S-박스 각 S-박스는 6 비트를 4 비트로 매핑 1번 S-박스 DES S-box 입력 비트(0, 5)
입력 비트 (1, 2, 3, 4) | 00 | 01 | 10 | 11 |
11
30년간의 강도 높은 분석으로 “백도어”가 없음을 밝혀 냈음 오늘날 공격은 전수키 조사를 사용 피할 수 없는 결론
DES의 안전성 DES의 안전성은 다수의 S-box에 의존 DES의 나머지는 모두 선형 30년간의 강도 높은 분석으로 “백도어”가 없음을 밝혀 냈음 오늘날 공격은 전수키 조사를 사용 피할 수 없는 결론 DES 설계자들은 그들이 무엇을 하고 있는지를 알고 있었다. DES 설계자들은 그들의 시대를 앞서가고 있었다.
12
P = 평문 블록 C = 암호문 블록 암호문 C를 얻기 위해 키 K로 P를 암호화 평문 P를 얻기 위해 키 K로 C를 복호화
블록 암호 표기 P = 평문 블록 C = 암호문 블록 암호문 C를 얻기 위해 키 K로 P를 암호화 C = E(P, K) 평문 P를 얻기 위해 키 K로 C를 복호화 P = D(C, K) 아래 사항을 주의 P = D(E(P, K), K) 그리고 C = E(D(C, K), K)
13
하지만 DES가 도처에서 사용중: 어떻게 해야 하나? 삼중 DES 또는 3DES (112 비트 키)
블록 암호 표기 현재, 56 비트DES 키는 너무 작다 하지만 DES가 도처에서 사용중: 어떻게 해야 하나? 삼중 DES 또는 3DES (112 비트 키) C = E(D(E(P,K1),K2),K1) P = D(E(D(C,K1),K2),K1) 왜 2개 키로 암호화-복호화-암호화(EDE) 하는가? 단독 DES와 호환성: E(D(E(P,K),K),K) = E(P,K) 그리고 112 비트면 안전성을 위해 충분
14
왜 C = E(E(P,K),K)가 아닌가 ? 왜 C = E(E(P,K1),K2)가 아닌가 ? 3DES 여전히 56 비트 키
현실성이 있는 알려진 평문 공격 모든 가능한 키 K1 에 대해 E(P,K1) 의 선계산 테이블을 작성 (결과 테이블은 256 입력) 그러면 각 가능한 K2 에 대해 D(C,K2)가 테이블 내에 일치하는 요소가 발견될 때까지 계산 일치되는 요소가 발견되면, E(P,K1) = D(C,K2) 결과적으로 키는 C = E(E(P,K1),K2)
15
Advanced Encryption Standard
DES를 대치 AES 경쟁 (90년대 후반) NSA 가 공개적으로 관여 투명한 진행 많은 강력한 알고리즘들이 제안 라인댈(Rijndael) 알고리즘이 선정 “Rain Doll” 또는 “Rhine Doll”로 발음 반복되는 블록 암호 (DES와 동일) 페이스텔 암호가 아님 (DES와 상이)
16
블록 크기: 128, 192 또는 256 비트 키 길이: 128, 192 또는 256 비트 (블록크기와는 독립적)
AES 개요 블록 크기: 128, 192 또는 256 비트 키 길이: 128, 192 또는 256 비트 (블록크기와는 독립적) 10 에서 14 회전 (키 길이에 따라) 각 회전은 4개의 함수들을 사용 (3개 “계층”) ByteSub (비선형 계층) ShiftRow (선형혼합 계층) MixColumn (비선형 계층) AddRoundKey (키추가 계층)
17
두 수학적 연산의 비선형 합성 (그러나 역은 존재) 192 비트 블록으로 가정: 4x6 바이트
AES ByteSub ByteSub는 AES의 “S-box” 두 수학적 연산의 비선형 합성 (그러나 역은 존재) 192 비트 블록으로 가정: 4x6 바이트
18
AES “S-box” 입력 뒤의 4 비트 입력 앞의 4비트
19
AES ShiftRow 회전 이동
20
AES MixColumn (거대한) 룩업 테이블로 구축 각 행에 비선형, 역산 연산자 적용
21
회전키(보조키)는 키 스케줄 알고리즘에 의해 결정 블록과 보조키의 XOR
AES AddRoundKey 회전키(보조키)는 키 스케줄 알고리즘에 의해 결정 블록과 보조키의 XOR 블록 보조키
22
복호화를 위해서, 진행 과정은 역산이 가능해야만 함 는 그 자체가 역산이므로 MixAddRoundKey의 역산 가능
AES 복호화 복호화를 위해서, 진행 과정은 역산이 가능해야만 함 는 그 자체가 역산이므로 MixAddRoundKey의 역산 가능 MixColumn은 역산 가능 (역산은 룩업 테이블로 구축됨) ShiftRow의 역산은 쉽게 됨 (cyclic shift 의 다른 방향) ByteSub는 역산 가능 (역산은 룩업 테이블로 구축됨)
23
무결성 인가되지 않은 데이터의 수정을 방지 하거나 적어도 탐지 하는 것 예제: 인터넷 은행에서 자금 이동
Section 05 무결성 -데이터 무결성 무결성 인가되지 않은 데이터의 수정을 방지 하거나 적어도 탐지 하는 것 예제: 인터넷 은행에서 자금 이동 비밀성은 제공이 용이하나 무결성은 심각 암호화는 비밀성을 제공 암호화 자체만으로 무결성을 확신할 수 없음.
Similar presentations