8. 현대 대칭키 암호를 이용한 암호화 기법

45
1 경경경경경 경경경경경경경 경경경 경경

Upload: deirdra-lombard

Post on 01-Jan-2016

119 views

Category:

Documents


0 download

DESCRIPTION

8. 현대 대칭키 암호를 이용한 암호화 기법. 경일대학교 사이버보안학과 김현성 교수. 목차. 8.1 현대 블록 암호의 사용 8.2 스트림 암호의 사용 8.3 기타. 8.1 현대 블록암호의 사용. 블록 암호 블록 단위로 데이터를 암호 또는 복호화 예 ) DES : 64 비트 , AES : 128 비트 등 운영 모드 실제 응용 환경에서 임의의 길이의 데이터를 블록 단위로 암호화하는 방법인 운영모드가 필요. 8.1 현대 블록암호의 사용 – ECB 모드. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 8.  현대  대칭키  암호를 이용한  암호화 기법

1

경일대학교 사이버보안학과김현성 교수

Page 2: 8.  현대  대칭키  암호를 이용한  암호화 기법

2

목차8.1 현대 블록 암호의 사용8.2 스트림 암호의 사용8.3 기타

Page 3: 8.  현대  대칭키  암호를 이용한  암호화 기법

3

8.1 현대 블록암호의 사용블록 암호

블록 단위로 데이터를 암호 또는 복호화예 ) DES : 64 비트 , AES : 128 비트 등

운영 모드실제 응용 환경에서 임의의 길이의 데이터를 블록

단위로 암호화하는 방법인 운영모드가 필요

Page 4: 8.  현대  대칭키  암호를 이용한  암호화 기법

4

8.1 현대 블록암호의 사용 – ECB 모드Electronic Codebook (ECB) 모드

가장 간단한 모드평문을 N 개의 n 비트 블록으로 분할평문 크기가 블록 크기의 배수가 아니면 패딩

(padding)각 블록을 독립된 것으로 하여 개별적으로 암호화하고

복호화하는 방식

Page 5: 8.  현대  대칭키  암호를 이용한  암호화 기법

5

8.1 현대 블록암호의 사용 – ECB 모드 ( 계속 )[ 그림 8.2] Electronic Codebook (ECB) 모드

Page 6: 8.  현대  대칭키  암호를 이용한  암호화 기법

6

8.1 현대 블록암호의 사용 – ECB 모드 ( 계속 )[ 예제 8.1]

Bob 은 Alice 가 암호화한 평문 블록을 정확하게 복구할 수 있다 . 왜냐하면 암호화와 복호화는 서로 역관계에 있기 때문이다 .

Pi = DK(Ci) = DK(EK(Pi)) = Pi

[ 예제 8.2] ECB 모드는 두 개의 열에 2n 개의 성분을 갖는 2k 개의

코드북을 사전 수집할 수 있으므로 Electronic codebook으로 불린다 . 각각의 성분은 평문과 그에 대응하는 암호문을 목록화 할 수 있다 . 하지만 , k 와 n 이 커지면 코드북을 사전 수집하고 유지하는 것이 매우 어려워진다 .

Page 7: 8.  현대  대칭키  암호를 이용한  암호화 기법

7

8.1 현대 블록암호의 사용 – ECB 모드 ( 계속 )안전성 문제

동일한 블록은 동일한 암호문을 생성Eve 는 블록 간의 독립성을 이용해 특정 암호문을 변조 가능

[ 예제 8.3] Eve 가 회사에서 한 달에 단지 몇 시간만 일을 하고 그녀의

급여가 매우 적다고 가정하자 . 그리고 Eve 는 회사가 각 고용자의 계좌에 지급해야 할 금액에 대한 정보가 17 번째 블록에 저장된다는 사실을 알고 있다고 하자 .

Eve 는 월말에 회사가 은행에 보내는 암호문을 가로채서 풀타임 일을 한 동료의 급여 정보를 갖는 블록을 복사하여 자신의 급여 정보를 갖는 블록과 대체할 수 있다 . 매달 Eve 는 자신이 일한 대가보다 훨씬 더 많은 급여를 받을 수 있다 .

Page 8: 8.  현대  대칭키  암호를 이용한  암호화 기법

8

8.1 현대 블록암호의 사용 – ECB 모드 ( 계속 )오류 파급 (Error Propagation)

전송 도중에 발생하는 단일 비트의 에러는 대응되는 블록 내의 비트들에만 에러를 발생시킴

알고리즘

Page 9: 8.  현대  대칭키  암호를 이용한  암호화 기법

9

8.1 현대 블록암호의 사용 – ECB 모드 ( 계속 )응용

안전하지 않은 채널을 통하여 두 개 이상의 블록을 갖는 메시지를 암호화하여 전송하는 수단으로 적당하지 않음

메시지 크기가 한 블록 이하라면 안전성 및 오류 파급은 문제가 되지 않음

데이터베이스에 암호화된 레코드를 저장하거나 암호화된 레코드를 복호화할 때는 암호문 블록의 독립성이 유용 데이터베이스에 랜덤하게 접근 가능 다른 레코드에 영향을 주지 않고 중간 레코드 수정 가능 큰 데이터베이스를 암호화할 때 병렬적으로 처리 가능

Page 10: 8.  현대  대칭키  암호를 이용한  암호화 기법

10

8.1 현대 블록암호의 사용 – CBC모드Cipher Block Chaining(CBC) 모드

각각의 평문 블록은 암호화되기 전에 이전 블록의 암호문과 XOR 됨 암호문은 다음 블록을 암호화할 때 사용되기 위해 메모리에

저장되어야 함 첫 블록을 암호화 할 때는 초기벡터 (IV) 를 사용

Page 11: 8.  현대  대칭키  암호를 이용한  암호화 기법

11

8.1 현대 블록암호의 사용 – CBC모드 ( 계속 )[ 그림 8.3] Cipher block chaining (CBC) 모드

Page 12: 8.  현대  대칭키  암호를 이용한  암호화 기법

12

8.1 현대 블록암호의 사용 – CBC모드 ( 계속 )[ 예제 8.4]

Alice 가 암호화한 평문 블록을 Bob 은 정확하게 복구할 수 있다 . 왜냐하면 암호화와 복호화 과정은 서로 역관계에 있기 때문이다 .

초기벡터 (Initialization Vector : IV)송신자와 수신자간에 공유되어야 하지만 반드시 비밀일

필요는 없음변조되어서는 안됨효과적인 방법 : 송신자가 난수 선택 후 안전하게 전송

Page 13: 8.  현대  대칭키  암호를 이용한  암호화 기법

13

8.1 현대 블록암호의 사용 – CBC모드 ( 계속 )오류 파급 (Error Propagation)

암호문 블록 Cj 가 전송 도중 한 비트 오류가 발생하였다고 가정하자 . 그러면 복호화 과정에서는 평문 블록 Pj 에서는 대부분의 비트에서 오류가 발생되고 , 평문 블록 Pj+1 에서는 Cj 의 오류 비트와 같은 위치에서 한 비트 오류가 발생

Pj+2 부터 PN 까지의 평문 블록은 이러한 한 비트 에러에 영향 받지 않음 . 그러므로 암호문의 한 비트 에러는 자기 복구가 이루어짐

안전성 문제한 메시지 내에서 동일한 평문 블록들은 다른 암호문 블록으로

암호화되지만 다른 두 메시지 내의 동일한 평문 블록에서는 IV 가 같다면 동일

Eve 는 암호문의 끝에 특정 암호문 블록을 덧붙일 수 있음

Page 14: 8.  현대  대칭키  암호를 이용한  암호화 기법

14

8.1 현대 블록암호의 사용 – CBC모드 ( 계속 )알고리즘

응용블록간의 연관성 때문에 병렬처리 불가능랜덤하게 선택된 파일 레코드 (DB) 를 암복호할 때 사용

불가능

Page 15: 8.  현대  대칭키  암호를 이용한  암호화 기법

15

8.1 현대 블록암호의 사용 – CFB모드Cipher Feedback (CFB) 모드

블록의 크기가 r(≤n) 단위로 암복호화 가능평문을 직접 블록암호를 사용하여 암호화하지 않음

Page 16: 8.  현대  대칭키  암호를 이용한  암호화 기법

16

8.1 현대 블록암호의 사용 – CFB모드 ( 계속 )평문 블록과 암호문 블록 사이의 관계

SelectLeftr : 입력값의 왼쪽 최상위 r 비트를 출력하는 함수

ShiftLeftr : 입력값을 왼쪽으로 r 비트 이동시키는 함수 ( 왼쪽 최상위 r 비트는 소실됨 )

Page 17: 8.  현대  대칭키  암호를 이용한  암호화 기법

17

8.1 현대 블록암호의 사용 – CFB모드 ( 계속 )스트림 암호로서의 CFB 모드

블록 암호를 위한 운영 모드이지만 그 결과는 스트림 암호와 동일

키 스트림이 암호문에 의존하는 비동기식 스트림 암호

Page 18: 8.  현대  대칭키  암호를 이용한  암호화 기법

18

8.1 현대 블록암호의 사용 – CFB모드 ( 계속 )알고리즘

Page 19: 8.  현대  대칭키  암호를 이용한  암호화 기법

19

8.1 현대 블록암호의 사용 – CFB모드 ( 계속 )안전성

블록 단위의 패턴이 유지되지 않음Alice 는 메시지를 전송할 때마다 다른 IV 를 사용해야

함Eve 는 암호문의 끝에 특정 암호문 블록을 덧붙일 수

있음오류파급

전송 도중 암호문에 한 비트 오류가 발생하면 복호 시에 평문의 같은 비트 위치에 한 비트 오류 발생하지만 다음 평문 블록에는 대부분의 비트에 오류가 발생

Page 20: 8.  현대  대칭키  암호를 이용한  암호화 기법

20

8.1 현대 블록암호의 사용 – OFB모드Output Feedback(OFB) 모드

모든 암호문 블록의 각 비트는 이전 암호문 비트들과 독립전송 중 오류가 발생해도 다음 블록 비트에 영향주지 않음

Page 21: 8.  현대  대칭키  암호를 이용한  암호화 기법

21

8.1 현대 블록암호의 사용 – OFB모드 ( 계속 )스트림 암호로서의 OFB 모드

CFB 와 같이 블록암호를 기반으로 한 스트림 암호키 스트림은 평문 /암호문과는 독립인 동기식 스트림

암호

Page 22: 8.  현대  대칭키  암호를 이용한  암호화 기법

22

8.1 현대 블록암호의 사용 – OFB모드 ( 계속 )알고리즘

Page 23: 8.  현대  대칭키  암호를 이용한  암호화 기법

23

8.1 현대 블록암호의 사용 – OFB모드 ( 계속 )안전성

블록 단위의 패턴이 유지되지 않음암호문이 임의로 변조된다면 수신자가 복호화하는

평문에 영향을 줌

오류 파급암호문의 한 비트 오류는 단지 대응되는 평문의 한

비트에만 영향

Page 24: 8.  현대  대칭키  암호를 이용한  암호화 기법

24

8.1 현대 블록암호의 사용 – CTR모드Counter(CTR) 모드

암호화 시 피드백이 존재하지 않음키 스트림의 의사난수성은 카운터를 사용함으로써 성취됨n 비트 카운터는 IV 값으로 초기화되고 규칙에 따라 증가블록 크기는 블록 암호 (DES, AES) 의 블록 크기와 동일이전 암호문 블록과 독립인 키 스트림을 생성하지만

피드백을 사용하지 않음서로 독립인 n 비트 암호문 블록을 생성실시간 프로세싱에 사용될 수 없고 완전한 n 비트 블록이

입력되어야 암호화 수행 시작랜덤하게 접근한 파일을 암복호 가능

Page 25: 8.  현대  대칭키  암호를 이용한  암호화 기법

25

8.1 현대 블록암호의 사용 – CTR모드 ( 계속 )

Page 26: 8.  현대  대칭키  암호를 이용한  암호화 기법

26

8.1 현대 블록암호의 사용 – CTR모드 ( 계속 )스트림 암호로서의 Counter (CTR) 모드

Page 27: 8.  현대  대칭키  암호를 이용한  암호화 기법

27

8.1 현대 블록암호의 사용 – CTR모드 ( 계속 )알고리즘

Page 28: 8.  현대  대칭키  암호를 이용한  암호화 기법

28

8.1 현대 블록암호의 사용 – CTR모드 ( 계속 )안전성

OFB 모드의 안전성과 동일

오류 파급암호문의 한 비트 오류는 단지 대응되는 평문의 한

비트에만 영향

Page 29: 8.  현대  대칭키  암호를 이용한  암호화 기법

29

8.1 현대 블록암호의 사용 – CTR모드 ( 계속 )다른 운영 모드와의 비교

Page 30: 8.  현대  대칭키  암호를 이용한  암호화 기법

30

8.2 스트림 암호의 사용개요

다섯 가지 운영 모드가 메시지나 , 큰 단위 (ECB, CBC, CTR 모드 ) 의 파일과 작은 단위 (CFB, OFB 모드 ) 의 데이터를 암호화하기 위하여 이용될 수 있음

그러나 문자나 비트와 같은 작은 단위의 데이터를 암호화하기 위하여 스트림 암호가 필요

스트림 암호는 real-time 프로세싱에서 좀 더 효율성을 갖음

몇몇 스트림 암호는 지난 수십년 동안 다양한 프로토콜에서 사용되기도 하였음

Page 31: 8.  현대  대칭키  암호를 이용한  암호화 기법

31

8.2 스트림 암호의 사용 – RC41984년 Ronald Rivest 에 의해 설계현재 , 다수의 데이터통신 , SSL/TLS, IEEE

802.11 무선 LAN 표준을 포함하는 네트워킹 프로토콜에서 사용

바이트 단위 스트림 암호로서 , 평문 1 바이트 (8 비트 ) 와 키 1 바이트가 XOR 되어 암호문의 1 바이트를 생성

키 스트림을 생성하는 키는 1~256 바이트 사이의 어떤 값이어도 됨

Page 32: 8.  현대  대칭키  암호를 이용한  암호화 기법

32

8.2 스트림 암호의 사용 – RC4 ( 계속 )State

RC4 는 State 개념을 사용State 는 256 바이트 배열로 구성

원소의 인덱스는 0~255 사이에 있는 값이고 ,각 원소의 항목도 0~255 사이의 값을 갖는 1 바이트

Page 33: 8.  현대  대칭키  암호를 이용한  암호화 기법

33

8.2 스트림 암호의 사용 – RC4 ( 계속 )RC4 스트림 암호의 개괄적 암호화 과정

Page 34: 8.  현대  대칭키  암호를 이용한  암호화 기법

34

8.2 스트림 암호의 사용 – RC4 ( 계속 )초기화

2 단계로 수행

키 스트림 생성키 스트림의 키는 한 개씩 생성

Page 35: 8.  현대  대칭키  암호를 이용한  암호화 기법

35

8.2 스트림 암호의 사용 – RC4 ( 계속 )알고리즘

Page 36: 8.  현대  대칭키  암호를 이용한  암호화 기법

36

8.2 스트림 암호의 사용 – RC4 ( 계속 )알고리즘 ( 계속 )

Page 37: 8.  현대  대칭키  암호를 이용한  암호화 기법

37

8.2 스트림 암호의 사용 – RC4 ( 계속 )안전성

비밀키 크기가 적어도 128 비트 (16바이트 ) 라면 RC4 는 안전하다고 여겨짐

다른 세션에 대하여 다른 키를 사용하기를 권장 : Eve가 차분 분석법을 이용하여 암호를 분석하는 것으로부터 보호

Page 38: 8.  현대  대칭키  암호를 이용한  암호화 기법

38

8.2 스트림 암호의 사용 – A5/1개요

비트 스트림을 생성하기 위하여 LFSR 을 이용휴대전화 통신을 위한 네트워크 GSM 에서 사용

GSM 상에서 전화통신은 228 비트 프레임의 수열로서 수행

각 프레임은 4.6 ms 동안 지속

Page 39: 8.  현대  대칭키  암호를 이용한  암호화 기법

39

8.2 스트림 암호의 사용 – A5/1 ( 계속 )키 생성기

각각 길이가 19, 22, 23 개의 셀을 갖는 세 개의 LFSR 을 사용

[ 그림 8.12] A5/1 의 세 개의 LFSR

Page 40: 8.  현대  대칭키  암호를 이용한  암호화 기법

40

8.2 스트림 암호의 사용 – A5/1 ( 계속 )키 생성기 ( 계속 )

초기화 1. 세 개 LFSR 의 모든 셀을 0으로 초기화한다 . 2. 다음 코드에 따라 레지스터의 값을 64 비트 키로 섞는

다 .

3. 22 비트 프레임 넘버를 이용하여 이전 과정을 반복한다

Page 41: 8.  현대  대칭키  암호를 이용한  암호화 기법

41

8.2 스트림 암호의 사용 – A5/1 ( 계속 )키 생성기 ( 계속 )

초기화 ( 계속 ) 100 사이클 동안 전체 생성기를 클럭킹 ( 이동 ) 한다 . 그러나

LFSR 의 클럭은 Majority 함수를 이용한다 .

Majority 함수 만약 , 클럭킹 (clocking) 비트들 중의 2개 이상의 비트가 1이면 ,

Majority(b1, b2, b3) = 1 을 출력 . 예 ) Majority(1, 0, 1) = 1 만약 , 클럭킹 (clocking) 비트들 중의 2개 이상의 비트가 0이면 ,

Majority(b1, b2, b3) = 0 을 출력 . 예 ) Majority(0, 0, 1) = 0

Page 42: 8.  현대  대칭키  암호를 이용한  암호화 기법

42

8.2 스트림 암호의 사용 – A5/1 ( 계속 )키 생성기 ( 계속 )

키 스트림 비트 키 생성기는 매번 1비트 키 스트림을 생성 키가 생성되기 전에 majority 함수가 계산됨 만약 클럭킹 비트가 majority 함수의 출력값과 일치하면

LFSR 이 클럭 ( 이동 ) 됨 , 일치하지 않으면 클럭되지 않음

[ 예제 8.7] 특정 시점에 클럭킹 비트가 1,0,1 이다 . 어떤 LFSR 이 클럭 ( 이동 ) 되는가 ?  majority 함수의 결과값은 Majority(1,0,1)=1 을

만족한다 . LFSR1 과 LFSR3 은 이동되고 LFSR2는 이동되지 않는다 .

Page 43: 8.  현대  대칭키  암호를 이용한  암호화 기법

43

8.2 스트림 암호의 사용 – A5/1 ( 계속 )암호화 /복호화

키 생성기로부터 생성된 비트 스트림은 암호문 프레임을 생성하기 위하여 평문 프레임과 XOR 하기 위한 228 비트 키를 형성하기 위하여 버퍼에 저장

암호화 /복호화는 동시에 한 프레임에 대하여 수행

안전성2000년 Biryukov 등은 작은 기지 평문으로 1분 안에

키를 찾을 수 있는 실시간 공격을 보임 , 그러나 248 의 전처리 필요

2003년 Ekdahl 등은 2~5 분 사이의 평문을 이용하여 몇분 안에 A5/1 을 깰수 있는 공격을 공개

Page 44: 8.  현대  대칭키  암호를 이용한  암호화 기법

44

8.3 기타 - 키관리Alice 와 Bob 이 대칭키 암호를 이용하여 안전하게

통신을 하기 위해서는 그들 사이에 미리 비밀키를 공유해야 함만약 커뮤니티에 n 명의 구성원이 있다면 , 각

구성원은 n-1명과 비밀 통신을 하기 위하여 비밀키가 필요

그러므로 총 n(n − 1)/2 개의 비밀키가 필요예 ) 100 만명 회원이라면 , 5억개의 키 교환 필요

Page 45: 8.  현대  대칭키  암호를 이용한  암호화 기법

45

8.3 기타 - 키생성대칭키 암호는 안전한 키 생성을 위한 효율적인

방법이 필요키는 랜덤하게 선택되어야만 함 : 난수 생성기가 필요