I부 암호.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

8. 현대 대칭키 암호를 이용한 암호화 기법 경일대학교 사이버보안학과 김현성 교수.
불특정 공격에 무너진 H 사 업무 시스템 서서히 저하 내부에서 원인 불명으로 네트워크의 속도가 서서히 저하 되는 현상이 발생 공격의 발생 핵심 장 비 서비스가 되다 되지 않는 현상이 심해지고 결국 핵심 장 비는 장애가 발생하게 됨 장비 장애 발생 핵심 장비 장애 전체.
1 정보보안 경일대학교컴퓨터공학과 김 현 성 2 강의구성  교과목 소개 (1 주 )  산업체 전문가 특강실시 (2 주 )  소프트웨어 공학 (3 주 ~7 주 : 5 주 )  산업체 전문가 특강실시 (8 주 )  팀 프로젝트 (9 주.
순천향대학교 정보보호연구회 김현민 DES (Data Encryption Standard)
5장. 현대 대칭키 암호 소개 경일대학교 사이버보안학과 김현성 교수.
제 3 장 블록암호 및 DES 단순 DES의 동작 원리 블록 암호방식의 개념 Feistel 암호구조
컴퓨터와 인터넷.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
제3장 관용암호: 현대적 암호기법
제14장 동적 메모리.
Entity Relationship Diagram
암호-4장. 공개키 암호 ㅎㅎ 정보보호 기능의 가장 핵심적 기술인 암호를 다룬다. 흥미로운 암호의 역사를 소개하고, 고전적인 암호체계로부터 현대적인 디지털 암호체계에 이르는 기술의 발전을 살펴보고 현대의 고급 암호분석 기법을 소개한다. 한빛미디어(주)
Chapter 3 Symmetric Key Crypto
Chap 4. 관용 암호 방식 알고리즘.
연결리스트(linked list).
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
Chapter 3 Symmetric Key Crypto
5장 Mysql 데이터베이스 한빛미디어(주).
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
Chapter 3 Symmetric Key Crypto
교과목 소개 정보보호.
Chapter 02 순환 (Recursion).
SSL (Secure Sockets Layers Protocol)
File Depender 중간 발표.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
23 장 OSI 상위계층 23.1 세션(session)층 23.2 표현(presentation)층
질의 사항 Yield Criteria (1) 소재가 평면응력상태에 놓였을 때(σ3=0), 최대전단응력조건과 전단변형에너지 조건은σ1 – σ2 평면에서 각각 어떤 식으로 표시되는가? (2) σ1 =σ2인 등이축인장에서 σ = Kεn로 주어지는 재료의 네킹시 변형율을 구하라.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
전자상거래 보안 (암호학과 네트워크보안) Chul Ho Rhee
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
10 장 데이터 링크 제어(Data Link Control)
Chapter 6 Contemporary Symmetric Ciphers
TCP/IP Socket Programming…
5장 Mysql 데이터베이스 한빛미디어(주).
Grade Server Team14. Attention Seeker
전자상거래 보안 (암호학과 네트워크보안) ) Chul Ho Rhee
JA A V W. 03.
자바 5.0 프로그래밍.
프로그래밍 개요
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
메모리 관리 & 동적 할당.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
논리회로 설계 및 실험 5주차.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
알고리즘 알고리즘이란 무엇인가?.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
오라클 11g 보안.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
Chapter 10 데이터 검색1.
제 4 장 Record.
암호 시스템 (Crypto system) 신효철
 6장. SQL 쿼리.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
암호-3장. 대칭키 암호 ㅎㅎ 정보보호 기능의 가장 핵심적 기술인 암호를 다룬다. 흥미로운 암호의 역사를 소개하고, 고전적인 암호체계로부터 현대적인 디지털 암호체계에 이르는 기술의 발전을 살펴보고 현대의 고급 암호분석 기법을 소개한다. 한빛미디어(주)
C++ Espresso 제15장 STL 알고리즘.
6 객체.
Presentation transcript:

I부 암호

대칭키 암호 3장

대칭키 암호 분류 스트림 암호  일회성 암호 형태 블록 암호  코드북 개념 형태 키가 상대적으로 짧다. 키가 긴 키스트림으로 쭉 뻗는다. 그리고 키스트림은 일회성 암호 키 같이 사용된다. 블록 암호  코드북 개념 형태 블록암호 키가 한 권의 코드북을 결정한다. 각 키가 다른 코드북을 결정한다. 혼돈과 확산 모두가 적용된다.

3장. 대칭키 암호 스트림 암호

STREAM 암호 1 Stream 암호 2 RC4 알고리즘

Stream 암호 일반 블럭 암호 스트림 암호 평문: M=m1m2m3… 암호문: C= EK(m1) EK(m2) EK(m3)… 알고리즘 n 비트 평문 암호문 m 비트 키 평문: M=m1m2m3… 암호문: C= EZ1(m1) EZ2(m2) EZ3(m3)… 초기값 이진 키수열 이진 평문 수열 일반 블럭 암호 스트림 암호

Stream 암호 평 문 1 0 1 1 1 0 1 1 암호문 0 1 1 1 1 1 1 0 키계열 1 1 0 0 0 1 0 1 키계열 1 1 0 0 0 1 0 1 암호문 0 1 1 1 1 1 1 0 평 문 1 0 1 1 1 0 1 1 송신자 키계열 평문 M 암호문 C 수신자

Stream 암호

Stream 암호 송수신자간에 사전에 공유된 비밀키(secret key)와 현재의 스트림 암호시스템상태(initial state)로부터 도출되는 키 수열(key steam)이 평문과 결합되어 암호문을 생성 키 수열의 길이는 평문의 길이와 동일하고 단 한번만 사용됨 예 : I LOVE YOU 메시지 -> 11001001 10100000 11001100 키 -> 01000001 01000010 11000011 (eXclusive OR) 암호문 -> 10001001 11100010 00001111 활용 : 블럭암호에 비해서 빠르게 운영 이동통신에서 전송되는 data의 암호화에 사용

Stream 암호 키 스트림 주기 주기적 (periodic) 스트림 암호 : 키 스트림이 어떤 주기를 갖고 반복 비주기적 스트림 암호 : 키가 반복 없이 표현되는 일회용 패드(one-time pad)방식 평문과 키의 관계 동기식 스트림 암호(Synchronous Stream Cipher) 암호문을 복호화하여 평문을 찾을때 키 스트림과 암호문 사이에 동기가 필요 키 스트림이 평문과 관계없이 생성되므로 암호문과 암호문에 들어있는 키 스트림이 독립적이어서 정보유출의 가능성이 적다 선형 귀한 치환 레지스터(Linear Feedback Shift Register)

Stream 암호 평문과 키의 관계 자기 동기식 스트림 암호(Self-Synchronous Stream Cipher) 키 스트림이 평문과 암호문과 관계를 갖는다. 키 스트림은 평문 또는 암호문으로 부터 함수 관계에 의해 생성 전송 중 암호문의 비트가 손실 또는 변경되더라도 그 오류의 영향이 유한하게 된다. 오류 정정의 기능을 포함 가능 키 스트림과 암호문의 종속성으로 인해 해독하기 쉽다. 암호문 귀한자동키 (Feedback autokey)암호시스템 동기식 스트림 암호 시스템에 자기동기식 스트림암호의 장점을 결합하여 사용가능

Stream 암호 스트림 암호 시스템의 장점과 사용 군사 및 외교용으로 널리 사용 이동통신 환경에서 구현이 용이 안전성을 수학적으로 엄밀하게 분석 가능 이동통신 등의 무선 통신 데이터 보호에 적합 종류 RC4 SEAL

RC4 알고리즘 1987년 Rivest에 의해 설계된 가변 키 길이 지원 원래는 미공개 1994년 인터넷 뉴스그룹에 익명으로 공개된 알고리즘 Netscape Navigator의 데이타 보호용으로 사용되고 있으며, 다른 인터넷 응용들에서도 널리 사용되는 스트림 암호이다.

스트림 암호 스트림 암호는 과거에 많이 활용 스트림 암호의 미래? H/W에서 효율적 음성 암호화 위해서 속도 요구 등. 오늘날, 프로세스의 속도 증가로 S/W 기반 암호도 충분한 속도 가능 스트림 암호의 미래? 샤미르: “스트림 암호의 사망”논문발표

3장. 대칭키 암호 블록 암호

Simplified DES 3.1 S-DES 개요 3.2 S-DES 키의 생성 3.3 S-DES 암호 알고리즘

3.1 S-DES 개요 (1/2) 알고리즘 8비트 평문, 10비트 키 8비트 암호문 생성 알고리즘 구성 초기순열(IP) 순열, 치환 이용 fk 순열 함수 SW 역 순열(IP-1) 암호문 IP-1(fk2(SW(fk1(IP(평문))))) 복호문 IP-1(fk1(SW(fk2(IP(암호문)))))

3.1 S-DES 개요 (2/2)

3.2 S-DES 키의 생성 (1/4) K1 = P8(Shift(P10(key))) K2 = P8(Shift(Shift(P10(key))) S-DES를 위한 키 생성

3.2 S-DES 키의 생성 (2/4) 키생성 K1 = P8(Shift(P10(key))) 10 비트 키 = (k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) P10 순열 = (k3, k5, k2, k7, k4, k10, k1, k9, k8, k6) P10 3 5 2 7 4 10 1 9 8 6 1 2 3 4 5 6 7 8 9 0 예 제 10 bit key = ( 1 0 1 0 0 0 0 0 1 0 ) P10(key) = ( 1 0 0 0 0 0 1 1 0 0 )

3.2 S-DES 키의 생성 (3/4) 키 생성 K1 = P8 ( Shift ( P10 ( key ))) (Shift(P10(key))): LS-1[키의1st 5비트] & LS-1[키의 2nd 5비트] 앞 다섯 비트와 뒤 다섯 비트 좌로 순환 이동(1bit 좌측 순환이동) P10 =( k3, k5, k2, k7, k4, k10, k1, k9, k8, k6 ) Shift =( k5, k2, k7, k4, k3, k1, k9, k8, k6, k10 ) 예제) P10 = ( 1 0 0 0 0 0 1 1 0 0 ) LS-1 = ( 0 0 0 0 1 1 1 0 0 0 ) 1 2 3 4 5 6 7 8 9 0

3.2 S-DES 키의 생성 (4/4) 키생성 K1 = P8(Shift(P10(key))) = P8(LS-1) P8(LS-1) = P8( 0 0 0 0 1 1 1 0 0 0 ) 10 비트에서 8비트 선택 치환 K1 = ( 1 0 1 0 0 1 0 0 ) K2 = P8(Shift(Shift(P10(key)))) = P8(Shift(LS-1)) = P8(LS-2) LS-2 = Shift(LS-1) : LS-1의 결과에 2비트 좌측 순환 이동 K2 = P8(LS-2) = P8( 0 0 1 0 0 0 0 0 1 1 ) = ( 0 1 0 0 0 0 1 1 )

3.3 S-DES 암호 알고리즘 X = ( 1 0 1 1 0 0 1 1 ) IP(X) = ( 0 0 1 1 1 1 0 1 ) 초기 및 최종 순열 함수 입력: 8비트 블록 평문 초기순열(IP) IP-1(IP(X)) = X 예제) X = ( 1 0 1 1 0 0 1 1 ) IP(X) = ( 0 0 1 1 1 1 0 1 ) IP-1(IP(X)) = ( 1 0 1 1 0 0 1 1 ) 최종 순열 1 2 3 4 5 6 7 8

함수 fk (1/4) 순열, 치환 함수 조합 L( Left )  왼쪽 4비트 R( Right )  오른쪽 4비트 fk( L, R ) = (L  F( R, SK ), R ) F 함수(확장 순열) n n3 4 2 1 n4 평문 R: (n1, n2, n3, n4)

함수 fk (2/4) 8비트 서브키 K1 = (k11, k12, k13, k14, k15, k16, k17, k18) XOR 연산 S-Box n k 13 14 17 18 2 4 3 1 11 12 15 16 p 0,0 1,0 0,1 1,1 0,2 1,2 0,3 1,3

함수 fk (3/4) 예제) P = (0100 0111) 이라면 S0: 행 00, 열 10 ; 1,4 요소  행, 2,3 요소  열 S1: 행 01, 열 11 ; 5,8 요소  행, 6,7 요소  열 S0 = 11, S1 = 11 이 된다. (치환 효과) 결과값 1111

함수 fk (4/4) P4 순열 P4출력은 함수 F의 출력이 된다. 스위치 함수(SW) fk는 왼쪽 4비트만 변경 두 번째 fk에서는 K2만 다름

3.4 S-DES의 분석 Brute-force 공격 가능 10비트 키 210= 1024 기지 평문/암호문 쌍 평문: ( p1, p2, p3, p4, p5, p6, p7, p8) 출력 암호문: ( c1, c2, c3, c4, c5, c6, c7, c8 ) 미지의 키: (k1, k2, k3, k4, k5, k6, k7, k8, k9, k10) 기지 평문 공격: 각 ci는 pj와 kj의 다항식 함수햐 알고리즘은 10개의 미지수를 갖는 8개의 비선형 방정식 알고리즘에서 각각의 순열과 합 연산은 선형 사상 S박스를 통하여 비선형성을 도출 선형 사상 비선형 사상: 암호해독을 난해하게 하는 효과

Data Encryption Standard DES: 1970년대 개발 IBM Lucifer 암호를 기반 미 정부 표준 DES 개발은 논쟁이 있었음 NSA 가 비밀리에 관련되었음 설계과정이 비공개 128bit 에서 64bit로 키 길이가 줄었음 Lucifer 알고리즘의 교묘한 변경

DES DES는 페이스텔 암호 각 회전은 단순 안전성은 주로 “S-box들”에 의존 64 비트 블록 길이 56 비트 키 길이 16 회전 각 회전에서 48 비트의 보조키 사용 각 회전은 단순 안전성은 주로 “S-box들”에 의존 각 S-boxe들은 6비트를 4비트로 매핑

DES의 한 회전 L R expand shift key S-boxes compress 28 48 32 Ki P box 

DES 확장 순열 입력 32 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 출력 48 비트 31 0 1 2 3 4 3 4 5 6 7 8 7 8 9 10 11 12 11 12 13 14 15 16 15 16 17 18 19 20 19 20 21 22 23 24 23 24 25 26 27 28 27 28 29 30 31 0

DES S-box 8 “교환 박스” 또는 S-박스 각 S-박스는 6 비트를 4 비트로 매핑 1번 S-박스 입력 비트(0,5)  입력 비트 (1,2,3,4) | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ------------------------------------------------------------------------------------ 00 | 1110 0100 1101 0001 0010 1111 1011 1000 0011 1010 0110 1100 0101 1001 0000 0111 01 | 0000 1111 0111 0100 1110 0010 1101 0001 1010 0110 1100 1011 1001 0101 0011 1000 10 | 0100 0001 1110 1000 1101 0110 0010 1011 1111 1100 1001 0111 0011 1010 0101 0000 11 | 1111 1100 1000 0010 0100 1001 0001 0111 0101 1011 0011 1110 1010 0000 0110 1101

DES P-box 입력 32 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 출력 32 비트 15 6 19 20 28 11 27 16 0 14 22 25 4 17 30 9 1 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24

DES 보조키 56 비트 DES 키: 0,1,2,…,55 좌 반쪽 키 비트: LK 우 반쪽 키 비트: RK 49 42 35 28 21 14 7 0 50 43 36 29 22 15 8 1 51 44 37 30 23 16 9 2 52 45 38 31 우 반쪽 키 비트: RK 55 48 41 34 27 20 13 6 54 47 40 33 26 19 12 5 53 46 39 32 25 18 11 4 24 17 10 3

DES 보조키 i=1,2,. . .,16 번째 회전에서 LK = (LK를 ri 만큼 왼쪽으로 회전 이동) RK = (RK를 ri 만큼 왼쪽으로 회전 이동) 보조키 Ki의 왼쪽 절반이 LK 비트 13 16 10 23 0 4 2 27 14 5 20 9 22 18 11 3 25 7 15 6 26 19 12 1 보조키 Ki의 오른쪽 절반이 RK 비트 12 23 2 8 18 26 1 11 22 16 4 19 15 20 10 27 5 24 17 13 21 7 0 3

DES 보조키 회전 1, 2, 9, 16에서 ri 는 1, 나머지 회전 ri 는 2 각 회전 LK의 비트 8,17,21,24 생략 각 회전 RK의 비트 6, 9,14, 25 생략 압축 순열은 56 bits of LK 와 RK의 56 비트에서 48 비트 보조키 Ki 생산 위 키 스케줄은 보조키를 생산

DES 마지막 최초 회전 전의 최초 순열 P 마지막 회전 후에 반씩을 교환 마지막 순열(P의 역)을 (R16,L16)에 적용함으로 암호문 생산 위 작업은 보안과는 무관

DES의 안전성 DES의 안전성은 다수의 S-box에 의존 30년간의 강도 높은 분석으로 “백도어”가 없음을 밝혀 냈음 오늘날 공격은 전수키 조사를 사용 피할 수 없는 결론 DES 설계자들은 그들이 무엇을 하고 있는지를 알고 있었다. DES 설계자들은 그들의 시대를 앞서가고 있었다.

블록 암호 표기 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)

삼중 DES 현재, 56 비트DES 키는 너무 작다 하지만 DES가 도처에서 사용중: 어떻게 해야 하나? 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 비트면 안전성을 위해 충분

3DES 왜 C = E(E(P,K),K)가 아닌가 ? 왜 C = E(E(P,K1),K2)가 아닌가 ? 여전히 56 비트 키 현실성이 있는 알려진 평문 공격 모든 가능한 키 K1 에 대해 E(P,K1) 의 선계산 테이블을 작성 (결과 테이블은 256 입력) 그러면 각 가능한 K2 에 대해 D(C,K2)가 테이블 내에 일치하는 요소가 발견될 때까지 계산 일치되는 요소가 발견되면, E(P,K1) = D(C,K2)

Advanced Encryption Standard DES를 대치 AES 경쟁 (90년대 후반) NSA 가 공개적으로 관여 투명한 진행 많은 강력한 알고리즘들이 제안 라인댈(Rijndael) 알고리즘이 선정 “Rain Doll” 또는 “Rhine Doll”로 발음 반복되는 블록 암호 (DES와 동일) 페이스텔 암호가 아님 (DES와 상이)

AES 개요 블록 크기: 128, 192 또는 256 비트 키 길이: 128, 192 또는 256 비트 (블록크기와는 독립적) 10 에서 14 회전 (키 길이에 따라) 각 회전은 4개의 함수들을 사용 (3개“계층) ByteSub (비선형 계층) ShiftRow (선형혼합 계층) MixColumn (비선형 계층) AddRoundKey (키추가 계층)

AES ByteSub ByteSub는 AES의 “S-box” 두 수학적 연산의 비선형 합성 (그러나 역은 존재) 두 수학적 연산의 비선형 합성 (그러나 역은 존재) 192 비트 블록으로 가정: 4x6 바이트

AES “S-box” 입력 뒤의 4 비트 입력 앞의 4비트

AES ShiftRow 회전 이동

AES MixColumn (거대한) 룩업 테이블로 구축 각 행에 비선형, 역산 연산자 적용

AES AddRoundKey 회전키(보조키)는 키 스케줄 알고리즘에 의해 결정 블록과 보조키의 XOR 블록 보조키

AES 복호화 복호화를 위해서, 진행 과정은 역산이 가능해야만 함  는 그 자체가 역산이므로 MixAddRoundKey의 역산 가능 MixColumn은 역산 가능 (역산은 룩업 테이블로 구축됨) ShiftRow의 역산은 쉽게 됨 (cyclic shift 의 다른 방향) ByteSub는 역산 가능 (역산은 룩업 테이블로 구축됨)

블록 암호의 다른 종류들 간단히 설명 할 암호… IDEA Blowfish RC6 보다 상세히 설명할 암호… TEA

IDEA “제임스 메세이”가 발명 64-비트 블록, 128-비트 키 혼합 모드 연산 다른 수학 연산들 결합 현대 암호의 거인 중 한 명 64-비트 블록, 128-비트 키 혼합 모드 연산 다른 수학 연산들 결합 최초로 이러한 접근 방법을 사용 오늘날 자주 사용되는 방법

Blowfish “브루스 쉬네이어”가 발명 64-비트 블록, 키는 448비트까지 변화 가능 페이스텔 암호 형태 Ri = Li1  Ki Li = Ri1  F(Li1  Ki) 회전 함수 F 는 4개의 S-box를 사용 각 S-box는 8 비트를 32 비트로 매핑 키에 의존하는 S-box 키에 의해 S-box들이 결정

RC6 “로널드 리베스트”가 발명 변수들 AES 경쟁시 마지막까지 검토된 후보 암호 순환이 테이터에 의존 블록 크기 키 크기 회전의 수 AES 경쟁시 마지막까지 검토된 후보 암호 순환이 테이터에 의존 알고리즘의 한 부분이 자료에 의존하는 것이 다른 알고리즘과 다른 점

Tiny Encryption Algorithm 64 비트 블록, 128 비트 키 32-비트 연산 컴퓨터를 가정 회전의 수는 가변적 (32회 정도면 안전) 간단한 회전함수를 사용하므로 상대적으로 많은 회수의 회전 필요

TEA 암호화 32개 회전을 가정 (K[0],K[1],K[2],K[3]) = 128 bit key (L,R) = plaintext (64-bit block) delta = 0x9e3779b9 sum = 0 for i = 1 to 32 sum += delta L += ((R<<4)+K[0])^(R+sum)^((R>>5)+K[1]) R += ((L<<4)+K[2])^(L+sum)^((L>>5)+K[3]) next i ciphertext = (L,R)

TEA 복호화 32개 회전을 가정 (K[0],K[1],K[2],K[3]) = 128 bit key (L,R) = ciphertext (64-bit block) delta = 0x9e3779b9 sum = delta << 5 for i = 1 to 32 R = ((L<<4)+K[2])^(L+sum)^((L>>5)+K[3]) L = ((R<<4)+K[0])^(R+sum)^((R>>5)+K[1]) sum = delta next i plaintext = (L,R)

TEA 코멘트 페이스텔 암호 형태 구축하기가 간단하고 쉬우며, 빠르고 작은 메모리를 요구 등 “관련 키” 공격이 가능  (XOR)대신에 + 와 - 사용 구축하기가 간단하고 쉬우며, 빠르고 작은 메모리를 요구 등 “관련 키” 공격이 가능 확장된 TEA (XTEA)는 관련 키 공격을 제거할 수 있음(약간 더 복잡) 단순화된 TEA (STEA)  암호분석의 예제로 사용, 안전하지 않은 버전

3장. 대칭키 암호 블록 암호 운용 모드

다수의 블록 다수 블록을 어떻게 암호화 할 수 있는가? 각 블록 마다 새로운 키를 준다? 각 블록을 독립적으로 암호화 한다? 일회성 암호처럼 문제가 있다! 각 블록을 독립적으로 암호화 한다? 앞 블록에 의존하도록 암호화한다? 즉 블록들을 “체인”으로 연결한다? 블록에서 남은 부분은 어떻게 처리하는가?

운용 모드 운용모드는 종류가 많으나 여기서는 3종류만 토의 전자 코드북 (ECB) 모드 각 블록을 독립적으로 암호화 한 가지 약점이 있음 암호블록 연결 (CBC) 모드 블록을 체인처럼 함께 연결 ECB 모드 보다 안전, 실질적으로 추가 작업 없음 카운트 (CTR) 모드 스트림 암호처럼 작동 임의 접근에 대중적으로 사용

ECB 모드 표기: C=E(P,K) 주어진 평문 P0,P1,…,Pm,… 블록 암호를 사용하는 확실한 방법 암호화 복호화 C0 = E(P0, K), P0 = D(C0, K), C1 = E(P1, K), P1 = D(C1, K), C2 = E(P2, K),… P2 = D(C2, K),… 고정키 K에 대해 코드북 암호의 전자적 버전 각 키에 대해 새로운 코드북

ECB 복사-붙여넣기 공격 평문을 아래와 같이 가정 Alice digs Bob. Trudy digs Tom. 64-비트 블록과 8-비트 ASCII를 가정: P0 = “Alice di”, P1 = “gs Bob. ”, P2 = “Trudy di”, P3 = “gs Tom. ” 암호문: C0,C1,C2,C3 트루디가 복사-붙여넣기 공격 시행: C0,C3,C2,C1 복호화는 다음과 같음 Alice digs Tom. Trudy digs Bob.

ECB 약점 Pi = Pj 라고 가정 그러면 Ci = Cj ,그리고 트루디가 Pi = Pj임을 알고 있다고 가정

앨리스는 ECB 모드를 싫어한다 앨리스의 압축되지 않은 이미지와 ECB모드(TEA)로 암호화한 그림 왜 이런 현상이 일어나는가? 같은 평문 블록  같은 암호문!

CBC 모드 C0 = E(IV  P0, K), P0 = IV  D(C0, K), 블록들은 함께 “체인”으로 연결 임의 초기화 벡타 (IV)가 CBC 모드 초기화를 위해 필요 IV 는 임의수 이나 비밀이 필요 없음 암호화 복호화 C0 = E(IV  P0, K), P0 = IV  D(C0, K), C1 = E(C0  P1, K), P1 = C0  D(C1, K), C2 = E(C1  P2, K),… P2 = C1  D(C2, K),…

CBC 모드 같은 평문 블록도 다른 암호문 블록을 생산 복사-붙여넣기 공격이 가능하나 더욱 복잡 오류의 영향이 있을 수 있음 만약 C1에 오류가 발생, 오류를 G라 하면 P1  C0  D(G, K), P2  G  D(C2, K) 그러나 P3 = C2  D(C3, K), P4 = C3  D(C4, K),… 자동적으로 오류 수정!

앨리스는 CBC 모드를 좋아한다 앨리스의 압축되지 않은 이미지와 ECB모드(TEA)로 암호화한 그림 왜 이런 현상이 발생하는가? 같은 평문이라도 다른 암호문을 생산!

카운트 모드 (CTR) CTR는 임의 접근에 많이 사용 블록 암호를 스트림 암호처럼 사용 암호화 복호화 C0 = P0  E(IV, K), P0 = C0  E(IV, K), C1 = P1  E(IV+1, K), P1 = C1  E(IV+1, K), C2 = P2  E(IV+2, K),… P2 = C2  E(IV+2, K),… CBC도 임의 접근을 위해 사용될 수 있다.!!!

3장. 대칭키 암호 무결성

데이터 무결성 무결성  인가되지 않은 데이터의 수정을 방지 하거나 적어도 탐지 하는 것 예제: 인터넷 은행에서 자금 이동 비밀성은 제공이 용이하나 무결성은 심각 암호화는 비밀성을 제공 암호화 자체만으로 무결성을 확신할 수 없음. (일회성 암호와 ECB 공격을 상기)

메시지 인증 코드(MAC) 메시지 인증 코드 (MAC) MAC은 CBC의 나머지로 계산 데이터 무결성을 위해 사용 무결성은 비밀성과 동일하지 않음 MAC은 CBC의 나머지로 계산 Compute CBC 암호화를 계산하여 암호문 블록의 마지막만 저장

MAC 계산 MAC 계산 (N 블록으로 가정) C0 = E(IV  P0, K), MAC은 평문과 함께 전송 C1 = E(C0  P1, K), C2 = E(C1  P2, K),… CN1 = E(CN2  PN1, K) = MAC MAC은 평문과 함께 전송 수신자는 같은 방법으로 계산하여 그 결과가 MAC과 일치 여부를 검검 수신자는 키 K 를 알고 있어야 함

MAC이 왜 동작되는가? 앨리스가 4개의 평문 블록을 가지고 있다고 가정 앨리스가 다음을 계산 C0 = E(IVP0,K), C1 = E(C0P1,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC 앨리스가 밥에게 IV,P0,P1,P2,P3,MAC을 전송 트루디가 P1을 X로 변경했다고 가정 밥은 다음을 계산 C0 = E(IVP0,K), C1 = E(C0X,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC  MAC 오류가 MAC 속으로 전파 (CBC 복호화와 상이) 키 K를 알지 못하고는 트루디가 MAC을 MAC으로 변경불가

비밀성과 무결성 한 키로 암호화하고 다른 키로 MAC 계산 왜 같은 키를 사용하지 않는가? 보안성을 추가할 수가 없음! 한번의 “암호화”로 비밀성과 무결성을 제공하는 것은 연구과제이다.

대칭 암호 용어들 비밀성 무결성 (MAC) 인증 프로토콜 (나중에…) 해시 함수로 할 수 있는 어떤 것들 (다음 장에서…) 데이터를 보안성이 없는 채널에서 전송 보안성이 없는 미디어에서 안전하게 저장 무결성 (MAC) 인증 프로토콜 (나중에…) 해시 함수로 할 수 있는 어떤 것들 (다음 장에서…)