Chapter 3 Symmetric Key Crypto

Slides:



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

최성락 최인석 나주한. 특징 : 공개키 n, g 를 사용하여 키 분배가 가능. (g 는 Zn 의 primitive element) Discrete logarithm 에 기반. 두 명 이상의 경우에도 적용가능. 키 교환 없이도.
8. 현대 대칭키 암호를 이용한 암호화 기법 경일대학교 사이버보안학과 김현성 교수.
1 정보보안 경일대학교컴퓨터공학과 김 현 성 2 강의구성  교과목 소개 (1 주 )  산업체 전문가 특강실시 (2 주 )  소프트웨어 공학 (3 주 ~7 주 : 5 주 )  산업체 전문가 특강실시 (8 주 )  팀 프로젝트 (9 주.
1 Chap 3. 관용 암호 방식 현대적 기법. 2
순천향대학교 정보보호연구회 김현민 DES (Data Encryption Standard)
Chapter 8 현대 대칭키 암호를 이용한 암호화 기법
컴퓨터와 인터넷.
전자파 연구실 Fast Beamforming of Electronically Steerable Parasitic Array Radiator Antennas: Theory and Experiment 세미나 자료 발표자 : 이동현 1.
제3장 관용암호: 현대적 암호기법
I부 암호.
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
박 종 혁 3장. 블록 암호 및 DES 박 종 혁
Chapter 3 Symmetric Key Crypto
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
Secure Socket Layer.
DES (Data Encryption Standard)
제 4장 블록 암호 모드.
Windows Server 장. 사고를 대비한 데이터 백업.
Chapter 3 Symmetric Key Crypto
대칭알고리즘 AES ▪ 발표자 : 최명현.
File Depender 중간 발표.
공개키 암호화 프로그래밍 전자상거래보안.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
8장. 원격지 시스템 관리하기.
전자상거래 보안 (암호학과 네트워크보안) Chul Ho Rhee
2009년 3월 30일 (5주차) 유 승 상용 관용 암호 방식 2009년 3월 30일 (5주차) 유 승
23 장 OSI 상위계층 23.1 세션(session)층 23.2 표현(presentation)층
DES를 이용한 GPS 위치 정보 암호화 송신 2조 김민수 문형진 안인석 조우람.
제10장 메시지 인증과 해쉬 함수 Message Authentication and Hash Functions
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
전자상거래 보안 (암호학과 네트워크보안) Chul Ho Rhee
Error Detection and Correction
PSW : PROGRAM STATUS WORD
Chapter 6 Contemporary Symmetric Ciphers
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
순천향대학교 정보보호연구회 민성의 AES 순천향대학교 정보보호연구회 민성의
전자상거래 보안 (암호학과 네트워크보안) ) Chul Ho Rhee
프로그래밍 개요
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
웹어플리케이션보안 암호프로그래밍, crypto-js
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
뇌를 자극하는 Windows Server 2012 R2
전자서명의 형태 수기서명 디지털서명. 전자서명의 형태 수기서명 디지털서명 전자서명의 필요성.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
16 장 네트워크 보안 : 방화벽과 VPN 16.1 개요 16.2 기밀성 16.3 전자 서명 16.4 인터넷 보안
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
알고리즘 알고리즘이란 무엇인가?.
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
에어 PHP 입문.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
오라클 11g 보안.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
상관계수.
Numerical Analysis Programming using NRs
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
암호 시스템 (Crypto system) 신효철
1. 강의 소개 컴퓨팅적 사고와 문제해결.
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
암호-3장. 대칭키 암호 ㅎㅎ 정보보호 기능의 가장 핵심적 기술인 암호를 다룬다. 흥미로운 암호의 역사를 소개하고, 고전적인 암호체계로부터 현대적인 디지털 암호체계에 이르는 기술의 발전을 살펴보고 현대의 고급 암호분석 기법을 소개한다. 한빛미디어(주)
C++ Espresso 제15장 STL 알고리즘.
Presentation transcript:

Chapter 3 Symmetric Key Crypto 블록 암호(Block cipher) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 블록 암호 평문과 암호문은 고정된 길이의 블록으로 구성된다. 설계 목표: 보안과 효율성 하지만 두 가지 목표를 만족하는 블록 암호 방식을 찾는 것은 쉽지 않다. Chapter 3 Symmetric Key Crypto 2

Chapter 3 Symmetric Key Crypto (반복) 블록 암호 암호문은 평문에 반복되는 회전 함수(round function)를 적용하여 생성 회전 함수의 입력은 키와 이전 단계의 회전 함수의 결과이다. 항상 소프트웨어로 구현된다. 전형적인 형태가 Feistel Cipher이다. Chapter 3 Symmetric Key Crypto 3

페이스텔 암호(Feistel Cipher) 평문의 블록을 좌우 반쪽으로 나눈다: Plaintext = (L0,R0) 각 단계(i=1,2,...,n) 다음과 같이 계산한다. Li= Ri1 Ri= Li1  F(Ri1,Ki-1) 여기서 F는 회전 함수, K는 서브키(subkey) 최종 암호문 = (Ln,Rn) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 페이스텔 암호 복호화: 암호문 = (Ln,Rn) 각 단계(i=n,n1,…,1)에서 다음과 같이 계산한다., Ri1 = Li Li1 = Ri  F(Ri1,Ki-1) 여기서 F는 회전 함수, Ki는 서브키 평문 = (L0,R0) 이 방식은 어떤 함수 F에서도 적용된다. 하지만 함수 F는 안전한(secure) 함수이어야 한다. 예: 모든 Ri-1와 Ki 에 대해서 F(Ri-1, Ki) = 0 인 함수는 안전하지 않다. Chapter 3 Symmetric Key Crypto

Data Encryption Standard (DES) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES 1970년대에 개발 IBM Lucifer cipher에 기반을 둠 U.S. 정부 표준 DES 개발에는 논란이 있었다. NSA가 비밀리에 개입됨 개발 단계가 공개되지 않음 키 길이가 축소됨 Lucifer 알고리즘을 약간 변경 Chapter 3 Symmetric Key Crypto

National Security Agency/ Central Security Service Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES DES는 페이스텔 암호 체계를 따른다. 블록 길이 : 64 bits 키 길이 : 56 bits 16 단계(round) 매 단계에서 48 bit의 키를 사용(subkey) 매 단계의 절차는 간단하다. (for a block cipher) 안전성은 주로 “S-boxes”에 달려 있다. 각 S-boxe는 6 bit를 4 bit로 매핑한다. 총 8개의 S-boxes numerology [njù:merled¥i|-rl-] n. 수점술(數占術), 수비학(數秘學) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto One Round of DES L expand R S-boxes(8) P Box key Compress 48 32 28 Chapter 3 Symmetric Key Crypto

DES 확장 순열(Expand permutation) Input 32 bits 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 Output 48 bits 31 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 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES S-box (치환 박스) 8개의 치환 박스(substitution boxes) 각각의 S-box는 6 bit를 4 bit로 매핑한다. 첫번째 S-box의 매핑 input bits (0,5)  input bits (1,2,3,4) 00 01 10 11 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES P-box (순열 박스) Input 32 bits 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 Output 32 bits 15 6 19 20 28 11 27 16 14 22 25 4 17 30 9 1 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES 서브키(Subkey) 56 bit DES key : (0,1,2,…,55) Left half key bits, LK 49 42 35 28 21 14 7 50 43 36 29 22 15 8 1 51 44 37 30 23 16 9 2 52 45 38 31 Right half key bits, 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 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES 서브키(Subkey) For rounds i=1,2,...,16 Let LK = (LK circular shift left by ri) Let RK = (RK circular shift left by ri) Left half of subkey Ki(24bits)는 다음과 같은 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 Right half of subkey Ki(24bits)는 다음과 같은 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 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES 서브키(Subkey) 단계 1, 2, 9, 16에서 shift ri = 1, 그리고 나머지 단계에서는 ri = 2 LK의 비트 8,17,21,24는 매 단계에서 생략된다. RK의 비트 6,9,14,25는 매 단계에서 생략된다. Compression permutation은 LK와 RK의 56비트 중에서 48비트의 서브키를 생성해 낸다. Key schedule은 서브키를 생성한다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 마지막으로 DES에 대해서 첫 단계 전에 초기 순열 P를 수행한다. 마지막 단계에서 좌우측 반쪽을 교환한다. 암호문을 생성하기 위해서 (R16,L16)에 마지막 순열 (inverse of P)을 적용한다. 이러한 것은 보안과는 상관이 없다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto DES의 안전성(security) DES의 안전성은 대부분 S-boxes에 달려 있다. S-box를 제외한 다른 것들은 선형(linear) 30년 동안의 치밀한 분석 결과 DES에 “뒷 문(back door)”은 없는 것으로 밝혀졌다. 공격은 exhaustive key search를 사용한다. 결론 DES의 설계자들은 그들이 무엇을 하는지를 알았고 그들의 시대에 훨씬 앞서 있었다. Chapter 3 Symmetric Key Crypto

Exhaustive Key Search 시간 Key size (bits) 가능한 키의 수 실행 시간 (만약 1 decypt/μs) (만약 106 decypt/μs) 32 56 128 168 232=4.3X109 256=7.2X1016 2128=4.3X1038 2168=4.3X1050 231μs=35.8 min 255 μs=1142 yrs 2127 μs=5.4X1024 yr 2167 μs=5.9X1036 yr 2.15 ms 10.01 hrs 5.4X1018 yrs 5.9X1030 yr

Chapter 3 Symmetric Key Crypto 블록 기호 표기법 P = 평문 블록 C = 암호문 블록 암호문 C를 얻기 위해서 평문 P를 키 K를 사용하여 암호화한다. C = E(P, K) 평문 P를 얻기 위해서 암호문 C를 키 K를 사용하여 복호화한다. P = D(C, K) 주목! P = D(E(P, K), K) and C = E(D(C, K), K) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Double DES DES의 키는 오늘날 적절하지 않다. 확실한 방법은 DES의 키를 확장하는 것이다: “double DES” C = E(E(P,K),K) ? 문제: 여전히 56 bit 키를 사용하는 것과 같다. C = E(E(P,K1),K2) ? DES를 사용하는 것과 같이 만드는 공격이 있을 수 있다. 비록 이 공격이 비현실적이기는 하지만 실제로 일어날 수 있는 가능성이 전혀 없는 것은 아니다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Double DES 공격(1) C = E(E(P,K1),K2) 공격: 선택 평문 공격 특정 P에 대해서, 모든 가능한 키 K에 대해서 테이블 E(P,K)를 사전에 계산한다.(이 테이블은 256 항목을 갖는다.) 테이블 항목 < C= E(P,K), K > C는 선택된 P에 대응하는 암호문 그리고 위에서 사용한 P에 대응되는 C를 사용하여, 가능한 모든 K2에 대해서, 테이블에 맞는 값이 나올 때까지 D(C,K2)을 계산한다. 여기서, P = D(C,K2) → E(P,K2) = E(D(C,K2), K2) = C, 즉, D(C,K2)는 테이블에 있어야 한다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Double DES 공격(2) 매치되는 값이 발견되면, E(P,K1) = D(C,K2) 따라서 C = E(E(P,K1),K2) 결론적으로 K1과 K2를 찾아내었고 C는 복호화되었다. 사전에 테이블을 만드는 일을 무시하면, 이 작업은 테이블에 매치되는 값을 찾을 때까지 D(C,K)을 계산하는 것이다. 이것은 255 탐색이 요구된다. single DES의 exhausted key search 시간과 같다. 따라서, double DES는 안전하지 않다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Triple DES 논리적 접근 방법은 triple DES 키를 3배로 한다. 하지만 실제로, Triple DES는 C = E(D(E(P,K1),K2),K1) P = D(E(D(C,K1),K2),K1) 실제 키의 크기는 112 bit이다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Triple DES 왜 2개의 키를 사용하여 Encrypt-Decrypt-Encrypt (EDE)으로 암호화하는가? (왜 3개의 키를 사용하여 EEE로 하지 않는가?) Single DES와의 Backward compatible를 위해서 If K1=K2=K then E(D(E(P,K),K),K) = E(P,K) 그리고, 키의 길이는 112 bits이면 충분히 안전하다. 오늘날 3DES는 널리 사용되고 있으나, AES의 등장으로 3DES는 시간이 지날수록 사라져 갈 것이다. Chapter 3 Symmetric Key Crypto

Advanced Encryption STD (AES) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 역사(1) DES를 대체할 암호 방식이 필요 DES는 이미 과거의 유물이 됨 exhaustive key search에 안전하지 않음: 특수 목적의 DES 크랙커와 인터넷에서 분산 계산 공격 3DES는 공격에는 안전하다. 하지만, 효율적인 소프트웨어 코드가 없다. 너무 속도가 느리다: DES를 3번 해야 된다. 64-bit 블록 크기: 효율과 안전을 위해서 더 큰 블록 크기가 필요 그래서, 3DES는 장기적으로 해결책이 되지 못함 1997년, NIST는 공식적으로 발전된 암호 알고리즘 표준을 정하기 위해서 공모를 하였다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 역사(2) 목표: 정부와 민간 부문에서 사용할 DES를 대체할 수 있는 알고리즘을 찾음 AES 요구사항 저작권 없이 전세계에서 사용할 수 있도록 비밀없는(unclassified), 공개된 암호화 알고리즘 알고리즘은 반드시 대칭키(symmetric key) 방식이어야 함 블록 암호 방식과 블록 크기는 최소한 128 비트, 키 크기는 128- , 192-, 그리고 256 비트 1998년 NIST 15개의 AES 후보 알고리즘을 발표 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 역사(3) AES를 선택하는 기준: 안전성, 견고성(Robustness), 속도 1999년 15개 중에서 5개로 후보를 좁혔다. MARS, RC6, Rijndael, Serpent, and Twofish. 5개의 알고리즘 모두 안전한 것으로 인정받았다. 2000년 10월 2일 NIST는 Rijndael 을 선정 발표 Joan Daemen과 Vincent Rijmen이 만듬 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 특징(1) 다양한 플랫폼에서 사용할 수 있으며 소프트웨어와 하드웨어에서 효율적으로 동작할 수 있도록 설계 페이스텔 암호 형태가 아님 반복적인 블록 암호 (DES와 같음) 페이스텔 암호 형태가 아님(DES와 다름) 256-bit AES keys will be “secure forever.” – Shamir Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 특징(2) 제안된 Rijndael 가변의 블록 크기 : 128,192, 256-bits, 가변의 키 크기 : 128-, 192-, or 256-bits. 가변의 반복 단계(round) : (10, 12, 14): 10 if B = K = 128 bits 12 if either B or K= 192 and the other≤ 192 14 if either B or K = 256 bits 그러나 주목할 점은 AES의 블록 크기는 128-bit. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 개요(1) 정의: State→ 4X4 array of bytes 128 bits = 16 bytes 가변의 rounds (10, 12, 14): 10 if K = 128 bits 12 if K = 192 bites 14 if K = 256 bits 각 round에서 128-bit round key 사용 128 bits = 16 bytes = 4 words Nr rounds에 대해서 Nr+1 round key가 필요 10 rounds, 128-bit 키에 대해서 44 words 필요 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 개요(2) 각 round는 4개의 함수 사용 (3 “계층”) 4 함수: 1 순열과 3 치환 3 계층: 선형, 비선형, 키 덧셈 순열(Permutation) 선형 혼합 계층: ShiftRow (State) 치환(Substitution) 비선형 계층: ByteSub (State, S-box) 비선형 계층: MixColumn (State) 키 덧셈 계층: AddRoundKey (State, KeyNr) Chapter 3 Symmetric Key Crypto

AES: High-Level Description State: 4 X 4 바이트 행렬: 128 bits = 16 bytes State = X AddRoundKey(State, Key0) (op1) for r = 1 to Nr - 1 SubBytes(State, S-box) (op2) ShiftRows(State) (op3) MixColumns(State) (op4) AddRoundKey(State, KeyNr) endfor SubBytes(State, S-box) ShiftRows(State) Y = State Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES AddRoundKey 서브키와 블록을XOR: 128-bits 블록으로 가정 RoundKey (subkey) 는 key schedule 알고리즘에 의해서 결정 AES key schedule 알고리즘의 설명은 생략 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES BytesSub Assume 128 bit block, 즉 4ⅹ4 bytes ByteSub은 AES의 “S-box” 두 수학적 연산의 비선형(nonlinear) (하지만 역 가능) 결합 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES BytesSub 비선형 S-Box (각각의 바이트에 독립적으로)를 사용한 바이트 치환 S-box는 16x16 array로 표현, 열과 행은 16진수 비트로 인덱스된다. 8 bits는 다음과 같이 대체된다.: 8 bits : hexadecimal number (r,c), 그러면 (sr,sc) = binary(Sbox(r, c)) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES “S-box” 예: 16진수 53 은 ED로 대체된다. Last 4 bits of input First 4 bits of input Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES ShiftRow Cyclic shift rows Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES MixColumn 각 행에 적용되는 비선형, 역가능 연산 (커다란)lookup table로 구현된다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto AES 복호화 복호화를 위해서 절차는 반드시 역가능(invertible)해야 한다. AddRoundKey의 역은 용이:  는 자신이역(inverse)이다. MixColumn는 역가능하다 : 역(inverse)도 lookup table로 구현 가능 ShiftRow의 역은 용이: 다른 방향으로 cyclic shift하면 된다. ByteSub도 역가능: 역(inverse)도 역시lookup table로 구현 가능 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Block Cipher Modes Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 여러 블록으로 구성된 메시지 여러 개의 블록으로 구성된 메시지를 어떻게 암호화할 것인가? 각 블록 마다 다른 키를 사용할 것인가? 각 블록을 독립적으로 암호화할 것인가? 현재 블록의 암호화는 이전 블록과 연관(chain)을 갖도록 하면 어떨까? 블록으로 채워지지 않을 경우 어떻게 할 것인가? Chapter 3 Symmetric Key Crypto

동작 모드(Modes of Operation) Electronic Codebook (ECB) mode 가장 명료하다. 각 블록을 독립적으로 암호화한다. 하지만 심각한 문제점이 존재한다. Cipher Block Chaining (CBC) mode 블록들을 연결하여 암호화한다. ECB보다 훨씬 안전하고 실질적으로 별도의 작업을 요구하지 않는다. Counter Mode (CTR) mode 스트림 암호와 같이 동작 랜덤 액세스 경우 주로 사용된다. Chapter 3 Symmetric Key Crypto

ECB(Electronic Codebook) Mode 표기법: 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)를 갖고, 전자 코드북을 만드는 방법이다. 새로운 키에 대해서 새로운 코드북이 만들어진다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto ECB Mode Chapter 3 Symmetric Key Crypto

ECB 복사-붙여쓰기(Cut and Paste) 공격 평문이 다음과 같다고 하자. “Alice digs Bob. Trudy digs Tom.” 64-bit 블록을 사용한다고 가정하자: P0 = “Alice di”, P1 = “gs Bob. ”, P2 = “Trudy di”, P3 = “gs Tom. ” 암호문: C0, C1, C2, C3 Trudy가 다음과 같이 복사-붙여넣기 공격을 했다: C0, C3, C2, C1 그러면 복호화된 평문은 다음과 같다. “Alice digs Tom. Trudy digs Bob.” Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto ECB의 약점 Pi = Pj라고 하자. 그러면 Ci = Cj이 되고 Trudy는 Pi = Pj임을 알 수 있다. 이것은 Trudy가 Pi 혹은 Pj 를 모른다고 하더라도 약간의 정보를 알려주는 셈이다. 공격자에게 암호해석을 위해서 공짜로 어떤 정보도 제공해서는 안 된다. Trudy는 Pi을 알고 있을지도 모른다. 이것이 심각한 문제일까? -> 다음의 슬라이드 Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto ECB 모드로 암호화된 Alice Alice의 압축되지 않은 이미지를 ECB (TEA)를 사용하여 암호화하였다. 어떻게 이렇게 되었는가? 동일한 평문의 블록  동일한 암호문! 해결책은??? -> 다음 슬라이드 Chapter 3 Symmetric Key Crypto

Cipher Block Chaining(CBC) Mode 랜덤 초기 벡터(random initialization vector), 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),… Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto CBC 모드 약점 암호화가 순차적으로 이루어진다. (즉, 병렬화를 할 수 없다.), 메시지는 블록 크기에 맞추어져야 한다.(블록 크기에 맞지 않을 경우 padding 필요) Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto CBC 모드 동일한 평문 블록은 다른 암호문 블록을 만들어 낸다. 복사와 붙여넣기(Cut and paste) 공격은 여전히 가능하다. 하지만 훨씬 복잡하다. 한가지 걱정은 에러가 발생했을 경우이다. 만약 C1에 오류가 발생하였다면, 즉, C1이 G가 되었다면, P1  C0  D(G, K), P2  G  D(C2, K) 하지만 P3 = C2  D(C3, K), P4 = C3  D(C4, K),… 오류로부터 자동적으로 복원할 수 있다! Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto CBC 모드로 암호화된 Alice Alice의 압축되지 않은 이미지를 CBC (TEA)를 사용하여 암호화하였다. 왜 이렇게 되었는가? 동일한 평문일지라도 다른 암호문을 만들어낸다! Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Counter (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),… EBC도 랜덤 액세스에서 사용할 수 있다!!! Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto Counter (CTR) Mode Chapter 3 Symmetric Key Crypto

대칭키 암호화와 무결성(Integrity) Chapter 3 Symmetric Key Crypto

데이터 무결성(Data Integrity) 허락받지 않은 데이터의 변경을 금지한다(적어도 변경된 것을 발견할 수 있도록 한다). 예: 은행간에 계좌 이체 기밀성도 중요하지만 무결성이 절대적으로 요구된다. 암호화는 기밀성을 보장한다. 암호화 자체로는 무결정을 보장해 주지 못한다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto MAC Message Authentication Code (MAC) 메시지에 메시지 인증 코드(MAC)를 덧붙여 보낸다. 데이터의 무결성을 위해서 사용된다. MAC을 계산하는 방법 한가지 방법은 CBC residue로 계산한다. CBC 모드로 암호화하고 마지막 암호문 블록이 MAC이 된다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto MAC 계산 MAC 계산 (메시지가 N개의 블록으로 구성되었다고 가정) C0 = E(IV  P0, K), C1 = E(C0  P1, K), C2 = E(C1  P2, K), …, CN1 = E(CN2  PN1, K) = MAC MAC은 평문과 같이 전송된다. 수신자는 동일한 계산을 수행하여 CN-1을 구하고, 이것을 송신자가 보낸 MAC과 비교한다. 수신자는 반드시 키 K를 알아야 한다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 어떻게 MAC은 무결성을 보장하나? Alice는 4개의 평문 블록을 갖고 있다고 하자. Alice는 다음과 같이 계산한다. C0 = E(IVP0,K), C1 = E(C0P1,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC Alice는 IV,P0,P1,P2,P3와 MAC을 Bob에게 보낸다. 만약 Trudy가 P1을 X로 바꾸었다고 하자. Bob은 다음과 같이 계산한다. C0 = E(IVP0,K), C1 = E(C0X,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC  MAC Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 어떻게 MAC은 무결성을 보장하나? 에러는 MAC에 전파된다.(CBC 복호화와 다르다.) 따라서 에러가 발생해도 메시지 무결성에는 영향을 주지 않는다. 앞에서 CBC 복호화에서는 만약 C1에 에러가 발생했다고 하자. 즉, G로 바뀌었다면 P1  C0  D(G, K), P2  G  D(C2, K) But P3 = C2  D(C3, K), P4 = C3  D(C4, K),… MAC의 계산에서는 C0 = E(IVP0,K), C1 = E(C0X,K), C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC  MAC Trudy는 키 K를 모르면 MAC 값을 변경할 수 없다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 기밀성과 무결성 암호화와 MAC을 만드는 키를 별도로 사용한다. 왜 동일한 키를 사용할 수 없는가? 무결성을 위해서는 평문과 MAC을 동시에 보내야만 한다. Chapter 3 Symmetric Key Crypto

Chapter 3 Symmetric Key Crypto 기밀성과 무결성 암호화와 MAC을 위해서 다른 키를 사용하는 것은 두 배의 일을 요구한다. 동일한 암호화로 기밀성과 무결성을 제공할 수는 없을까? 무결성은 대칭키 암호화 방법 외에 해쉬 함수를 이용하는 방법이 널리 사용된다. 해쉬 함수에 대해서는 5장에서 공부할 것이다. Chapter 3 Symmetric Key Crypto

대칭키 키 분배 (key distribution) Chapter 3 Symmetric Key Crypto

키 분배(key distribution) 대칭키를 사용할 때의 최종 과제는 어떻게 송신자와 수신자가 안전하게(남들은 모르게) 키를 가질 수 있느냐는 문제이다. 대칭키의 분배를 위한 몇 가지 방법이 있는데 이것은 후에 설명하도록 한다. Chapter 3 Symmetric Key Crypto