상용 관용 암호 방식

114
Cryptology, 1 st term, 2009 orea College of Information & Technology 상상 상상 상상 상상 2009 년 3 년 30 년 (5 년년 ) 년 년 년 ([email protected])

Upload: hammett-maxwell

Post on 30-Dec-2015

351 views

Category:

Documents


4 download

DESCRIPTION

상용 관용 암호 방식. 2009 년 3 월 30 일 (5 주차 ) 유 승 석 ([email protected]). 수업 내용. DES DES 의 규칙성 DES 의 안전성 문제 SEED AES 운용 모드 Questions & Answers. DES. DES 개요. DEA(Data Encryption Algorithm) 대칭키 암호 시스템 , 암호화 / 복호화 키가 동일 IBM 의 홀스트 파이스텔에 의해 개발됨 , 루시퍼 (1975, IBM) 알고리즘의 변형 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

상용 관용 암호 방식

2009 년 3 월 30 일 (5 주차 )유 승 석 ([email protected])

Page 2: 상용 관용 암호 방식

2

Cryptology, 1st term, 2009

Korea College of Information & Technology

수업 내용

• DES• DES 의 규칙성• DES 의 안전성 문제• SEED• AES• 운용 모드• Questions & Answers

• DES• DES 의 규칙성• DES 의 안전성 문제• SEED• AES• 운용 모드• Questions & Answers

Page 3: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES

Page 4: 상용 관용 암호 방식

4

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 개요

• DEA(Data Encryption Algorithm)• 대칭키 암호 시스템 , 암호화 / 복호화 키가

동일• IBM 의 홀스트 파이스텔에 의해 개발됨 ,

루시퍼 (1975, IBM) 알고리즘의 변형• ATM(Auto Teller Machines), POS(Point of Sa

le) 단말장치의 PIN 암호화 및 데이터 내용 변조 방지를 위해 사용됨– PIN : Personal Identification Number

• DEA(Data Encryption Algorithm)• 대칭키 암호 시스템 , 암호화 / 복호화 키가

동일• IBM 의 홀스트 파이스텔에 의해 개발됨 ,

루시퍼 (1975, IBM) 알고리즘의 변형• ATM(Auto Teller Machines), POS(Point of Sa

le) 단말장치의 PIN 암호화 및 데이터 내용 변조 방지를 위해 사용됨– PIN : Personal Identification Number

Page 5: 상용 관용 암호 방식

5

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES (Data Encryption Standard)

• DES 공모 – 1 차 1973 년 NBS( 현 NIST 의 전신 ) 공개

모집• NBS(National Bureau of Standards, 미국규격표준

국 )

– 2 차 1974 년 NBS 공개 모집 • IBM Tuchman, Meyer 응모

• 1977 년 미연방 표준 암호 알고리즘으로 선정 (FIPS PUB 46)

• DES 공모 – 1 차 1973 년 NBS( 현 NIST 의 전신 ) 공개

모집• NBS(National Bureau of Standards, 미국규격표준

국 )

– 2 차 1974 년 NBS 공개 모집 • IBM Tuchman, Meyer 응모

• 1977 년 미연방 표준 암호 알고리즘으로 선정 (FIPS PUB 46)

Page 6: 상용 관용 암호 방식

6

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES ( 계속 )

• 공모 조건 – 높은 안전성 – 알고리즘 간단 – 안전성이 키에만 의존 – 응용이 다양 – 제작자 및 사용자 이용 가능 – 전자장치 간단 – 제작자의 알고리즘 타당성 검토 협력 – 수출 가능

• 공모 조건 – 높은 안전성 – 알고리즘 간단 – 안전성이 키에만 의존 – 응용이 다양 – 제작자 및 사용자 이용 가능 – 전자장치 간단 – 제작자의 알고리즘 타당성 검토 협력 – 수출 가능

Page 7: 상용 관용 암호 방식

7

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 특징

• 64 비트 블록 단위로 암호화• 56 비트 키 (Active Key) + 8 비트

패리티체크 (Parity Check) 비트 • 56 비트가 암호화 및 복호화에 사용된다 .• 16 라운드의 치환 (P-Box) 과 대치 (S-Box) 를

사용• 정보이론의 아버지 클로드 샤논이 제안했던

기술을 구현한 것

• 64 비트 블록 단위로 암호화• 56 비트 키 (Active Key) + 8 비트

패리티체크 (Parity Check) 비트 • 56 비트가 암호화 및 복호화에 사용된다 .• 16 라운드의 치환 (P-Box) 과 대치 (S-Box) 를

사용• 정보이론의 아버지 클로드 샤논이 제안했던

기술을 구현한 것

Page 8: 상용 관용 암호 방식

8

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호화 진행 과정 Overview1. 평문을 입력 64 비트

2. 초기전치 (재배열 )

3. 좌우 분리 32비트씩

4. Feistel 연산

5. 원래의 키로부터 만들어 낸 키

6. 초기전치의 역전치 (거꾸로 )

7. 암호문 비트

Page 9: 상용 관용 암호 방식

9

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호화 진행 과정 Overview

Page 10: 상용 관용 암호 방식

10

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호화 과정 Overview - 초기전치 IP (initial permutation)

• 1) 평문을 64 비트씩 자른다 .– 64 비트 자른 평문을 이라고 하자 .– 평문 M 은 초기치환 IP 를 거쳐 으로

바뀐다 .– IP 는 1 번 자리에 58 번째 비트를 놓고 , 2 번 자리에 5

0 번째 비트를 놓고 , 3 번 자리에 42 번째 비트를 놓는 방식으로 비트열의 자리를 바꾼다 .

• 1) 평문을 64 비트씩 자른다 .– 64 비트 자른 평문을 이라고 하자 .– 평문 M 은 초기치환 IP 를 거쳐 으로

바뀐다 .– IP 는 1 번 자리에 58 번째 비트를 놓고 , 2 번 자리에 5

0 번째 비트를 놓고 , 3 번 자리에 42 번째 비트를 놓는 방식으로 비트열의 자리를 바꾼다 .

646321 mmmmM

646321)( ppppMIP

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

Page 11: 상용 관용 암호 방식

11

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호화 과정 Overview - 16 라운드의 함수계산 ( 치환 )

• 2) IP(M) 은 좌우 각각 32 비트씩 와 로 나누어 1 라운드 암호화 과정에 들어간다 .– 와 를 가지고 다음 단계의 , 을 만든다 .– 이다 .

• 3) 2 라운드의 왼쪽 32 비트 은 오른쪽 32 비트 를 그대로 쓴다 .– 2 라운드의 오른쪽 32 비트 은 를 연산틀에

넣어서 처리한 다음 그 값과 을 XOR 연산한다 .– 한 라운드를 넘기는 과정마다 암호키 열 이

차례대로 작용한다 .

• 2) IP(M) 은 좌우 각각 32 비트씩 와 로 나누어 1 라운드 암호화 과정에 들어간다 .– 와 를 가지고 다음 단계의 , 을 만든다 .– 이다 .

• 3) 2 라운드의 왼쪽 32 비트 은 오른쪽 32 비트 를 그대로 쓴다 .– 2 라운드의 오른쪽 32 비트 은 를 연산틀에

넣어서 처리한 다음 그 값과 을 XOR 연산한다 .– 한 라운드를 넘기는 과정마다 암호키 열 이

차례대로 작용한다 .

3210 ppL 64330 ppR

0L 0R 1L 1R,01 RL ),( 1001 KRfLR

1R

0R1L

0R f

0L

1621 ,,, KKK

Page 12: 상용 관용 암호 방식

12

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호화 과정 Overview - 역전치 IP–1(inverse of initial permutation)

• 4) 16 라운드를 진행하여 와 을 얻고난 다음 좌우를 바꾼 64 비트 에 초기치환 IP 의 역치환 를 적용한다 .– 역치환

• 4) 16 라운드를 진행하여 와 을 얻고난 다음 좌우를 바꾼 64 비트 에 초기치환 IP 의 역치환 를 적용한다 .– 역치환

1IP1IP

16L 16R

),( 1616 LR

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

1IP

Page 13: 상용 관용 암호 방식

13

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• S-box– DES 의 안전성에 중요한 역할– 8 개의 비선형 함수로 구성됨– 48 비트를 다시 32 비트로 변환

• S-box– DES 의 안전성에 중요한 역할– 8 개의 비선형 함수로 구성됨– 48 비트를 다시 32 비트로 변환

• E : Expansion( 확대전치 E)– 비트 확장표를 이용하여 32

비트를 48 비트로 확장• XOR 연산

– 키 스케줄러에서 생성된 라운드 별 Subkey 와 XOR 연산

• E : Expansion( 확대전치 E)– 비트 확장표를 이용하여 32

비트를 48 비트로 확장• XOR 연산

– 키 스케줄러에서 생성된 라운드 별 Subkey 와 XOR 연산

• P-box( 평형전치P)– 선형전치표

• P-box( 평형전치P)– 선형전치표

Page 14: 상용 관용 암호 방식

14

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• 확대전치 E • 확대전치 E

Page 15: 상용 관용 암호 방식

15

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• 평형전치 P • 평형전치 P

Page 16: 상용 관용 암호 방식

16

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• S-Box • S-Box

Page 17: 상용 관용 암호 방식

17

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• S-Box 예• S-Box 예

Page 18: 상용 관용 암호 방식

18

Cryptology, 1st term, 2009

Korea College of Information & Technology

The Key-schedule of DES

• 키계열 생성 알고리즘– 키 스케줄러라 불리움– Subkey 16 개 생성

• K1, K2, K3, …, K16

• 과정– 64 비트 키 데이터 입력– 선택치환

• PC1 : Permuted Choice1• 8bit 패리티 체크 비트 제거 56 bit 생성

– 28 비트 씩 양분– 라운드 별 지정된 수 만큼 좌측 시프트 – 선택치환

• PC2 : Permuted Choice2• 48 비트의 라운드 키 생성됨

– 16 라운드 ( 회 ) 반복

• 키계열 생성 알고리즘– 키 스케줄러라 불리움– Subkey 16 개 생성

• K1, K2, K3, …, K16

• 과정– 64 비트 키 데이터 입력– 선택치환

• PC1 : Permuted Choice1• 8bit 패리티 체크 비트 제거 56 bit 생성

– 28 비트 씩 양분– 라운드 별 지정된 수 만큼 좌측 시프트 – 선택치환

• PC2 : Permuted Choice2• 48 비트의 라운드 키 생성됨

– 16 라운드 ( 회 ) 반복

Page 19: 상용 관용 암호 방식

19

Cryptology, 1st term, 2009

Korea College of Information & Technology

The Key-schedule of DES

• 키 스케줄러에서 Subkey 16 개 생성 ( K1, K2, K3, …, K16 )• 키 스케줄러에서 Subkey 16 개 생성 ( K1, K2, K3, …, K16 )

– 64 비트 키 데이터 입력– 키전치 PC-1

• Permuted Choice1• 8bit 패리티 체크 비트

제거 56 bit 생성– 28 비트 씩 양분 ( C0, D0, … )– 라운드 별 지정된 수 만큼 좌측

시프트 (LS1, LS2, …), 표 4-8– 축약전치 PC-2

• PC2 : Permuted Choice2• 48 비트의 라운드 키

생성됨

위의 과정들을 16 라운드 ( 회 ) 반복

– 64 비트 키 데이터 입력– 키전치 PC-1

• Permuted Choice1• 8bit 패리티 체크 비트

제거 56 bit 생성– 28 비트 씩 양분 ( C0, D0, … )– 라운드 별 지정된 수 만큼 좌측

시프트 (LS1, LS2, …), 표 4-8– 축약전치 PC-2

• PC2 : Permuted Choice2• 48 비트의 라운드 키

생성됨

위의 과정들을 16 라운드 ( 회 ) 반복

Page 20: 상용 관용 암호 방식

20

Cryptology, 1st term, 2009

Korea College of Information & Technology

The Key-schedule of DES

• 키전치 PC-1

– 8 16 24 32 40 48 56 64 제거

• 키전치 PC-1

– 8 16 24 32 40 48 56 64 제거

Page 21: 상용 관용 암호 방식

21

Cryptology, 1st term, 2009

Korea College of Information & Technology

The Key-schedule of DES

• 축약전치 PC-2

– 9 18 22 25 35 43 54 제거

• 축약전치 PC-2

– 9 18 22 25 35 43 54 제거

Page 22: 상용 관용 암호 방식

22

Cryptology, 1st term, 2009

Korea College of Information & Technology

The Key-schedule of DES

• 키 스케쥴러 LS • 키 스케쥴러 LS

Page 23: 상용 관용 암호 방식

23

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 복호화 과정

• 암호문 CIP 역라운드 IP–1 평문 M• 암호문 CIP 역라운드 IP–1 평문 M

016

016

15

1615161515

1616161515

16016

16001

151601

15160

161515160

),(),(

),(),(

),(

),(

),(

LERD

RELD

LE

KREfKREfLE

KLEfKREfLE

KRDfRE

KRDfLDRD

RELERDLD

RELERD

KREfLERELD

Page 24: 상용 관용 암호 방식

24

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호의 규칙성

• 보수 특성 • 보수 특성

)(

)(

MEC

MEC

k

k

Page 25: 상용 관용 암호 방식

25

Cryptology, 1st term, 2009

Korea College of Information & Technology

취약 키

• 취약키로 평문을 암호화하고 다시 한 번 암호화하면 평문이 나타남

• 취약키로 평문을 암호화하고 다시 한 번 암호화하면 평문이 나타남

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1F E F E F E F E F E F E F E F E1 F 1 F 1 F 1 F 0 E 0 E 0 E 0 E E 0 E 0 E 0 E 0 F 1 F 1 F 1 F 1

MMEE kk ))((

Page 26: 상용 관용 암호 방식

26

Cryptology, 1st term, 2009

Korea College of Information & Technology

유사 취약 키

• 취약키와 상당히 비슷한 특성을 갖는 키 조합

• 취약키와 상당히 비슷한 특성을 갖는 키 조합 MMEE kk ))(( '

0 1 F E 0 1 F E 0 1 F E 0 1 F EF E 0 1 F E 0 1 F E 0 1 F E 0 1 1 F E 0 1 F E 0 0 E F 1 0 E F 1 E 0 1 F E 0 1 F F 1 0 E F 1 0 E

0 1 E 0 0 1 E 0 0 1 F 1 0 1 F 1 E 0 0 1 E 0 0 1 F 1 0 1 F 1 0 1

1 F F E 1 F F E 0 E F E 0 E F E F E 1 F F E 1 F F E 0 E F E 0 E

0 1 1 F 0 1 1 F 0 1 0 E 0 1 0 E 1 F 0 1 1 F 0 1 0 E 0 1 0 E 0 1

E 0 F E E 0 F E F 1 F E F 1 F E F E E 0 F E E 0 F E F 1 F E F 1

Page 27: 상용 관용 암호 방식

27

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 안전성 문제

• 1975 년 DES 알고리즘 발표 뒤 두가지 문제점이 제기됨– 키의 길이가 짧다– S-Box 의 트랩도어나 의도적인 약점이 포함되어 있을 수 있다 .

• DES 의 소모적 공격– 암호기에 평문을 입력시켜 모든 키를 차례로

사용하면서 원하는 암호문이 출력될 때 까지 반복

– 여러 개를 만들어 동시에 공격하면 시간 단축

• 1975 년 DES 알고리즘 발표 뒤 두가지 문제점이 제기됨– 키의 길이가 짧다– S-Box 의 트랩도어나 의도적인 약점이 포함되어 있을 수 있다 .

• DES 의 소모적 공격– 암호기에 평문을 입력시켜 모든 키를 차례로

사용하면서 원하는 암호문이 출력될 때 까지 반복

– 여러 개를 만들어 동시에 공격하면 시간 단축

년228410365243600

26

56

Page 28: 상용 관용 암호 방식

28

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 안전성 문제

• 1998 년 미국 RSA 사에서 DES 해독– 미 정부는 DES 를 1998 년 11 월부터

사용하고 있지 않음• 1997 년 3-DES(Triple DES, 트리플 DES)

로 보완• DES 를 사용하는 세 번의 암호화

• 2002 년 AES(Advanced Encryption Standard) 로 데체됨

• 1998 년 미국 RSA 사에서 DES 해독– 미 정부는 DES 를 1998 년 11 월부터

사용하고 있지 않음• 1997 년 3-DES(Triple DES, 트리플 DES)

로 보완• DES 를 사용하는 세 번의 암호화

• 2002 년 AES(Advanced Encryption Standard) 로 데체됨

Page 29: 상용 관용 암호 방식

29

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES ( 계속 )

• 2 중 DES

• 1 비트 증가 효과

• 2 중 DES

• 1 비트 증가 효과

Page 30: 상용 관용 암호 방식

30

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES ( 계속 )

• 3 중 DES– 강한 암호 가능– 키의 길이가 2 배 확대된 효과

• 3 중 DES– 강한 암호 가능– 키의 길이가 2 배 확대된 효과

CMEDE

CMEDE

KKK

KKK

)))(((

)))(((

123

121

Page 31: 상용 관용 암호 방식

31

Cryptology, 1st term, 2009

Korea College of Information & Technology

참고자료

• DES supplementary material– details the various tables referenced in the

Data Encryption Standard (DES) block cipher. – http://

en.wikipedia.org/wiki/DES_supplementary_material

• DES supplementary material– details the various tables referenced in the

Data Encryption Standard (DES) block cipher. – http://

en.wikipedia.org/wiki/DES_supplementary_material

Page 32: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED

Page 33: 상용 관용 암호 방식

33

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 개요

• 전자상거래 , 금융 , 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 1999년 2 월 한국정보보호진흥원과 국내 암호전문가들이 순수 국내기술로 개발

• 128 비트 블록암호알고리즘• 128 비트 key 사용• 1999 년 9 월 정보통신단체표준 (TTA) 으로 제정• 2005 년에는 국제 표준화 기구인 ISO/IEC 국제

블록암호알고리즘 표준으로 제정됨• 참고사이트

– http://www.kisa.or.kr/kisa/seed/jsp/seed_1010.jsp

• 전자상거래 , 금융 , 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 1999년 2 월 한국정보보호진흥원과 국내 암호전문가들이 순수 국내기술로 개발

• 128 비트 블록암호알고리즘• 128 비트 key 사용• 1999 년 9 월 정보통신단체표준 (TTA) 으로 제정• 2005 년에는 국제 표준화 기구인 ISO/IEC 국제

블록암호알고리즘 표준으로 제정됨• 참고사이트

– http://www.kisa.or.kr/kisa/seed/jsp/seed_1010.jsp

Page 34: 상용 관용 암호 방식

34

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 암호화 과정

1516

16151516

12

2112

01

1001

),(

),(

),(

RELE

KREfLERE

RELE

KREfLERE

RELE

KREfLERE

Page 35: 상용 관용 암호 방식

35

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 f 함수 • f 함수의 입력 값– 64 비트 REi 32 비트

X, Y 로 분리– 64 비트 암호화 보조키

Ki+1 32 비트 KK0, KK1 으로 분리

• f 함수의 입력 값– 64 비트 REi 32 비트

X, Y 로 분리– 64 비트 암호화 보조키

Ki+1 32 비트 KK0, KK1 으로 분리

BXY

BAGX

KYAGB

KYKXGA

K

KK

''

)('

))((

))()((

1

10

Page 36: 상용 관용 암호 방식

36

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 G 함수

• S-Box 치환– G함수의 입력 32 비트를– 4 개의 8 비트 블록 X3X2X1X0 으로 분할한 후

– S-Box S2S1S2S1 에 입력

– S2(X3), S1(X2), S2(X1), S1(X0) 를 출력함

• Bit-wise 연산

• S-Box 치환– G함수의 입력 32 비트를– 4 개의 8 비트 블록 X3X2X1X0 으로 분할한 후

– S-Box S2S1S2S1 에 입력

– S2(X3), S1(X2), S2(X1), S1(X0) 를 출력함

• Bit-wise 연산

fxmxcfmxfmxfcmANDwisebit

mXSmXSmXSmXSZ

mXSmXSmXSmXSZ

mXSmXSmXSmXSZ

mXSmXSmXSmXSZ

30 ,0 ,30 ,0, &

]&)([]&)([]&)([]&)([

]&)([]&)([]&)([]&)([

]&)([]&)([]&)([]&)([

]&)([]&)([]&)([]&)([

3210

3322211120010

0323212121011

1320213122012

2321210123013

Page 37: 상용 관용 암호 방식

37

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 G 함수

& : bit-wise AND

Page 38: 상용 관용 암호 방식

38

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 S–Box

• SEED 의 안전성을 결정하는 중요한 요소• 8 비트가 입력 , 8 비트가 출력되는

치환과정• 미분해독기법 (differential cryptanalysis) 및

선형해독기법 (linear cryptanalysis) 특성이 가장 우수한 n=247, 251 을 선택하여 전단사 함수 Xn 을 적용함

• GF(28) 을 이용 Z256 = { 0, 1, 2, … , 255 }

• SEED 의 안전성을 결정하는 중요한 요소• 8 비트가 입력 , 8 비트가 출력되는

치환과정• 미분해독기법 (differential cryptanalysis) 및

선형해독기법 (linear cryptanalysis) 특성이 가장 우수한 n=247, 251 을 선택하여 전단사 함수 Xn 을 적용함

• GF(28) 을 이용 Z256 = { 0, 1, 2, … , 255 }

Page 39: 상용 관용 암호 방식

39

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 S–Box

bxAxS

GF

xxxxxp

n

)()(

)2(

1)(8

568

00101000

00010001

01000010

10100010

10000100

01111111

10100001

01010001

A

T

T

b

b

]00011100[

]10010101[

2

1

Page 40: 상용 관용 암호 방식

40

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 S–Box

• S-Box • S-Box

7 6 ,5 1

6 4 ,3 2

)()(

)()(

)2(

)1(

2251)2(

2

1247)1(

1

행렬교환한행을행과행행과의

행렬교환한행을행과행행과의

AA

AA

bxAxS

bxAxS

Page 41: 상용 관용 암호 방식

41

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – S1 Box 변환표

Page 42: 상용 관용 암호 방식

42

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – S2 Box 변환표

Page 43: 상용 관용 암호 방식

43

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – 보조키 생성 알고리즘

• 128 비트의 키는 네 개의 32 비트 블록으로 나누어져 키 생성 알고리즘에 입력됨(A,B,C,D)

• 128 비트의 키는 네 개의 32 비트 블록으로 나누어져 키 생성 알고리즘에 입력됨(A,B,C,D)

Page 44: 상용 관용 암호 방식

44

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – 보조키 생성 알고리즘

01

01

1

0

KCDBGK

KCCAGK

Page 45: 상용 관용 암호 방식

45

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – 보조키 생성 알고리즘

• 키 생성 상수• 키 생성 상수

Page 46: 상용 관용 암호 방식

46

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 참고자료

• KISA SEED/ARIA 블록암호알고리즘– http://www.kisa.or.kr/kisa/seed/jsp/seed_1010.js

p

• SEED 알고리즘 상세 명세서– http://www.kisa.or.kr/kisa/seed/down/SEED_Spec

ification_korean.pdf

• SEED 개발 및 분석 보고서– http://www.kisa.or.kr/kisa/seed/down/SEED_Self_

Evaluation-Korean.pdf

• KISA SEED/ARIA 블록암호알고리즘– http://www.kisa.or.kr/kisa/seed/jsp/seed_1010.js

p

• SEED 알고리즘 상세 명세서– http://www.kisa.or.kr/kisa/seed/down/SEED_Spec

ification_korean.pdf

• SEED 개발 및 분석 보고서– http://www.kisa.or.kr/kisa/seed/down/SEED_Self_

Evaluation-Korean.pdf

Page 47: 상용 관용 암호 방식

47

Cryptology, 1st term, 2009

Korea College of Information & Technology

[ 참고 ] ARIA 블록암호알고리즘

• ARIA 는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발된 블록 암호 알고리즘– 블록 크기 : 128 비트 – 키 크기 : 128/192/256 비트 (AES 와 동일 규

격 ) – 라운드 수 : 12/14/16 ( 키 크기에 따라 결정됨 )

• ARIA 가 사용하는 대부분의 연산은 XOR 과 같은 단순한 바이트 단위 연산으로 구성됨

• 2004 년에 국가표준기본법에 의거 , 지식경제부에 의하여 국가표준 (KS) 으로 지정

• ARIA 는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발된 블록 암호 알고리즘– 블록 크기 : 128 비트 – 키 크기 : 128/192/256 비트 (AES 와 동일 규

격 ) – 라운드 수 : 12/14/16 ( 키 크기에 따라 결정됨 )

• ARIA 가 사용하는 대부분의 연산은 XOR 과 같은 단순한 바이트 단위 연산으로 구성됨

• 2004 년에 국가표준기본법에 의거 , 지식경제부에 의하여 국가표준 (KS) 으로 지정

Page 48: 상용 관용 암호 방식

48

Cryptology, 1st term, 2009

Korea College of Information & Technology

[ 참고 ] ARIA 블록암호알고리즘

• 안정성과 효율성

• ARIA 소스코드– 국가정보원에서는 C 와 JAVA 로 작성된 ARIA

소스코드를 제공하고 있음– http://www.kecs.go.kr/pw_certified/aria_o

pen.jsp

• 안정성과 효율성

• ARIA 소스코드– 국가정보원에서는 C 와 JAVA 로 작성된 ARIA

소스코드를 제공하고 있음– http://www.kecs.go.kr/pw_certified/aria_o

pen.jsp

Page 49: 상용 관용 암호 방식

49

Cryptology, 1st term, 2009

Korea College of Information & Technology

[ 참고 ] ARIA 블록암호알고리즘

• 참고사이트– KISA :

http://www.kisa.or.kr/kisa/seed/jsp/seed_5010.jsp

– IT 보안인증사무국http://www.kecs.go.kr/pw_certified/aria_open.jsp

• 참고사이트– KISA :

http://www.kisa.or.kr/kisa/seed/jsp/seed_5010.jsp

– IT 보안인증사무국http://www.kecs.go.kr/pw_certified/aria_open.jsp

Page 50: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES

Advanced Encryption Standard

Page 51: 상용 관용 암호 방식

51

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 공모• DES 에 대한 여러 공격 방법들의 발표로 인해 새로운

표준암호 알고리즘의 필요성 대두– 56-bit DES key : exhaustive key search feasible– 64-bit DES block (and Triple DES) : MAC(Message Authentication Co

de) weakness

• 미국의 NIST 는 1998 년 AES 알고리즘을 공모 – Round 1(1998. 8 – 1999. 4) : CAST-256, CRYPTON, DEAL, DFC, E

2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish

– Round 2(1999. 8 – 2000. 5): MARS, RC6, Rijndael, Serpent, Twofish

• 2000 년 10 월 2 일 AES 알고리즘 선정 발표 – Rijndael (Submitted by Joan Daeman and Vincent Rijman) – 2001 년 11 월 FIPS-197 로 등록

• DES 에 대한 여러 공격 방법들의 발표로 인해 새로운 표준암호 알고리즘의 필요성 대두– 56-bit DES key : exhaustive key search feasible– 64-bit DES block (and Triple DES) : MAC(Message Authentication Co

de) weakness

• 미국의 NIST 는 1998 년 AES 알고리즘을 공모 – Round 1(1998. 8 – 1999. 4) : CAST-256, CRYPTON, DEAL, DFC, E

2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish

– Round 2(1999. 8 – 2000. 5): MARS, RC6, Rijndael, Serpent, Twofish

• 2000 년 10 월 2 일 AES 알고리즘 선정 발표 – Rijndael (Submitted by Joan Daeman and Vincent Rijman) – 2001 년 11 월 FIPS-197 로 등록

Page 52: 상용 관용 암호 방식

52

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 특징

• 입력 평문의 길이는 128 비트로 고정• 사용하는 암호화 키의 길이는 128, 192, 256

비트 중 하나를 선택할 수 있음– 참고 ) Rijndel 알고리즘은 키의 길이와 입력 평문의 길이를 128, 192, 256 비트 중 선택 가능

• 지금까지 알려진 모든 공격법에 대해 안전하도록 설계됨

• 모든 플랫폼에서 속도와 code compactness 면에서 효율적– Design simplicity – Suited for Smart cards

• 입력 평문의 길이는 128 비트로 고정• 사용하는 암호화 키의 길이는 128, 192, 256

비트 중 하나를 선택할 수 있음– 참고 ) Rijndel 알고리즘은 키의 길이와 입력 평문의 길이를 128, 192, 256 비트 중 선택 가능

• 지금까지 알려진 모든 공격법에 대해 안전하도록 설계됨

• 모든 플랫폼에서 속도와 code compactness 면에서 효율적– Design simplicity – Suited for Smart cards

Page 53: 상용 관용 암호 방식

53

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 개요

• 평문을 128 비트 단위로 나누어 암호화 , 복호화를 수행– Input / output : sequence of 128 bits(block)

• 각각의 128 비트를 4x4 행렬로 표현하여 연산을 수행함

• 암호화 키 – Cipher key : sequence of 128, 192, 256 bits

• 평문을 128 비트 단위로 나누어 암호화 , 복호화를 수행– Input / output : sequence of 128 bits(block)

• 각각의 128 비트를 4x4 행렬로 표현하여 연산을 수행함

• 암호화 키 – Cipher key : sequence of 128, 192, 256 bits

Page 54: 상용 관용 암호 방식

54

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 개요

• State – 4x4 행렬로 표현– 암호화 , 복호화 과정의 중간 단계 결과물 – (4, Nb) 의 이차원 행렬로 표현

• Nb : 블록 길이 / 32 = 4

• State – 4x4 행렬로 표현– 암호화 , 복호화 과정의 중간 단계 결과물 – (4, Nb) 의 이차원 행렬로 표현

• Nb : 블록 길이 / 32 = 4

Page 55: 상용 관용 암호 방식

55

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 개요

• AES 의 기본 연산은 Byte 단위로 수행• 각 바이트를 유한체 GF(28) 위의 다항식으로 표현하여

연산을 수행한다 .

• AES 의 기본 연산은 Byte 단위로 수행• 각 바이트를 유한체 GF(28) 위의 다항식으로 표현하여

연산을 수행한다 .

Page 56: 상용 관용 암호 방식

56

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 덧셈 (Addition)

• GF(28) 에서의 두 원소의 덧셈은 각 계수를 (mod 2) 상에서 더한 결과

• GF(28) 에서의 두 원소의 덧셈은 각 계수를 (mod 2) 상에서 더한 결과

Page 57: 상용 관용 암호 방식

57

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 곱셈 (Multiplication)

• GF(28) 에서의 곱셈은 mod 8 차 기약다항식 상에서의 곱셈 – 기약 다항식 (irreducible polynomial) : 1 과

자기 자신만을 인수로 갖는 다항식 – AES 에서 사용하는 기약 다항식

• GF(28) 에서의 곱셈은 mod 8 차 기약다항식 상에서의 곱셈 – 기약 다항식 (irreducible polynomial) : 1 과

자기 자신만을 인수로 갖는 다항식 – AES 에서 사용하는 기약 다항식

Page 58: 상용 관용 암호 방식

58

Cryptology, 1st term, 2009

Korea College of Information & Technology

[ 참고 ]

• 다항식의 연산 방법 – http://math.kongju.ac.kr/mathcom/poly/p

oly1.htm

• 다항식의 연산 방법 – http://math.kongju.ac.kr/mathcom/poly/p

oly1.htm

Page 59: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 암호화 과정

Page 60: 상용 관용 암호 방식

60

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 암호화 과정• KeyExpansion using Rijndael's key schedule

• Initial Round – AddRoundKey

• Rounds – SubBytes : a non-linear substitution step where each byte is replaced with

another according to a lookup table. – ShiftRows : a transposition step where each row of the state is shifted cyc

lically a certain number of steps. – MixColumns : a mixing operation which operates on the columns of the st

ate, combining the four bytes in each column – AddRoundKey : each byte of the state is combined with the round key; eac

h round key is derived from the cipher key using a key schedule.

• Final Round (no MixColumns) – SubBytes – ShiftRows – AddRoundKey

• KeyExpansion using Rijndael's key schedule

• Initial Round – AddRoundKey

• Rounds – SubBytes : a non-linear substitution step where each byte is replaced with

another according to a lookup table. – ShiftRows : a transposition step where each row of the state is shifted cyc

lically a certain number of steps. – MixColumns : a mixing operation which operates on the columns of the st

ate, combining the four bytes in each column – AddRoundKey : each byte of the state is combined with the round key; eac

h round key is derived from the cipher key using a key schedule.

• Final Round (no MixColumns) – SubBytes – ShiftRows – AddRoundKey

Page 61: 상용 관용 암호 방식

61

Cryptology, 1st term, 2009

Korea College of Information & Technology

The number of Rounds (Nr)

• 사용하는 암호화 키 (Nk) 의 길이에 따라 암호 및 복호화 과정에 필요한 라운드 수는 다르다 .

• 사용하는 암호화 키 (Nk) 의 길이에 따라 암호 및 복호화 과정에 필요한 라운드 수는 다르다 .

Page 62: 상용 관용 암호 방식

62

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 암호화 과정

Page 63: 상용 관용 암호 방식

63

Cryptology, 1st term, 2009

Korea College of Information & Technology

Round Transformation

• 4 개의 다른 transformation 으로 구성

※ 마지막 라운드에는 MixColumn 단계가 없음

• 4 개의 다른 transformation 으로 구성

※ 마지막 라운드에는 MixColumn 단계가 없음

Page 64: 상용 관용 암호 방식

64

Cryptology, 1st term, 2009

Korea College of Information & Technology

Pseudo Code for the AES cipher

Page 65: 상용 관용 암호 방식

65

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

Page 66: 상용 관용 암호 방식

66

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

• Non-linear byte substitution • 바이트 단위로 invertible 한 S-box 에 적용 • S-Box 는 두 가지 변환으로 구성

• Non-linear byte substitution • 바이트 단위로 invertible 한 S-box 에 적용 • S-Box 는 두 가지 변환으로 구성

Page 67: 상용 관용 암호 방식

67

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

• S[02], 02 = x • S[02], 02 = x

Page 68: 상용 관용 암호 방식

68

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

Page 69: 상용 관용 암호 방식

69

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

Page 70: 상용 관용 암호 방식

70

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation Example

Page 71: 상용 관용 암호 방식

71

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

Page 72: 상용 관용 암호 방식

72

Cryptology, 1st term, 2009

Korea College of Information & Technology

ShiftRow( ) Transformation(1/2)

• State 의 각 행을 왼쪽으로 cyclic shift – 0 행 : -– 1 행 : 1 byte – 2 행 : 2 byte– 3 행 : 3 byte

• State 의 각 행을 왼쪽으로 cyclic shift – 0 행 : -– 1 행 : 1 byte – 2 행 : 2 byte– 3 행 : 3 byte

Page 73: 상용 관용 암호 방식

73

Cryptology, 1st term, 2009

Korea College of Information & Technology

ShiftRow() Transformation(2/2)

Page 74: 상용 관용 암호 방식

74

Cryptology, 1st term, 2009

Korea College of Information & Technology

ShiftRow() Transformation Example

Page 75: 상용 관용 암호 방식

75

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

Page 76: 상용 관용 암호 방식

76

Cryptology, 1st term, 2009

Korea College of Information & Technology

MixColumn() Transformation(1/2)

Page 77: 상용 관용 암호 방식

77

Cryptology, 1st term, 2009

Korea College of Information & Technology

MixColumn() transformation(2/2)

Page 78: 상용 관용 암호 방식

78

Cryptology, 1st term, 2009

Korea College of Information & Technology

MixColumn() transformation Example

Page 79: 상용 관용 암호 방식

79

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

Page 80: 상용 관용 암호 방식

80

Cryptology, 1st term, 2009

Korea College of Information & Technology

AddRoundKey() Transformation

• 라운드 키는 각 state 에 bitwise XOR 로 적용

• Cipher key 로부터 키 스케줄러를 이용하여 라운드 키 생성

• 라운드 키의 길이 = 블록 길이 Nb

• 라운드 키는 각 state 에 bitwise XOR 로 적용

• Cipher key 로부터 키 스케줄러를 이용하여 라운드 키 생성

• 라운드 키의 길이 = 블록 길이 Nb

Page 81: 상용 관용 암호 방식

81

Cryptology, 1st term, 2009

Korea College of Information & Technology

AddRoundKey() Transformation - Example

Page 82: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 복호화 과정

Page 83: 상용 관용 암호 방식

83

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 복호화 과정

Page 84: 상용 관용 암호 방식

84

Cryptology, 1st term, 2009

Korea College of Information & Technology

Inverse Cipher

Page 85: 상용 관용 암호 방식

85

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvSubByte() Transformation(1/2)

Page 86: 상용 관용 암호 방식

86

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvSubByte() Transformation(2/2)

Page 87: 상용 관용 암호 방식

87

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvShiftRow() Transformation

Page 88: 상용 관용 암호 방식

88

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvMixColumn() Transformation

• MixColumn 에서 사용한 a(x) 의 inverse 를 곱한다 .

• MixColumn 에서 사용한 a(x) 의 inverse 를 곱한다 .

Page 89: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

KeyExpansion using Rijndael's key schedule

Page 90: 상용 관용 암호 방식

90

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion

Page 91: 상용 관용 암호 방식

91

Cryptology, 1st term, 2009

Korea College of Information & Technology

Psedo code for Key Expansion

Page 92: 상용 관용 암호 방식

92

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion

Page 93: 상용 관용 암호 방식

93

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(1/4)

Page 94: 상용 관용 암호 방식

94

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(2/4)

Page 95: 상용 관용 암호 방식

95

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(3/4)

Page 96: 상용 관용 암호 방식

96

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(4/4)

Page 97: 상용 관용 암호 방식

97

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(1/4)

Page 98: 상용 관용 암호 방식

98

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(2/4)

Page 99: 상용 관용 암호 방식

99

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(3/4)

Page 100: 상용 관용 암호 방식

100

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(4/4)

Page 101: 상용 관용 암호 방식

101

Cryptology, 1st term, 2009

Korea College of Information & Technology

참고

• Advanced Encryption Standard– http://en.wikipedia.org/wiki/Advanced_Encrypti

on_Standard

• Rijndael S-box– http://en.wikipedia.org/wiki/Rijndael_S-box

• Rijndael key schedule– http://en.wikipedia.org/wiki/Rijndael_key_sche

dule

• Advanced Encryption Standard– http://en.wikipedia.org/wiki/Advanced_Encrypti

on_Standard

• Rijndael S-box– http://en.wikipedia.org/wiki/Rijndael_S-box

• Rijndael key schedule– http://en.wikipedia.org/wiki/Rijndael_key_sche

dule

Page 102: 상용 관용 암호 방식

Cryptology, 1st term, 2009

Korea College of Information & Technology

운용 모드

Page 103: 상용 관용 암호 방식

103

Cryptology, 1st term, 2009

Korea College of Information & Technology

블록 암호 방식의 운용 모드

• ECB (Electronic Codebook Mode) • CBC (Cipher Block Chaining Mode) • CFB (Cipher Feed Back Mode) • OFB (Output Feed Back Mode)

• ECB (Electronic Codebook Mode) • CBC (Cipher Block Chaining Mode) • CFB (Cipher Feed Back Mode) • OFB (Output Feed Back Mode)

Page 104: 상용 관용 암호 방식

104

Cryptology, 1st term, 2009

Korea College of Information & Technology

ECB(Electronic Codebook) 모드

• 동일한 평문에 대해 동일한 암호문 출력•짧은 길이의 평문 암호화에 사용 • 동일한 평문에 대해 동일한 암호문 출력•짧은 길이의 평문 암호화에 사용

Page 105: 상용 관용 암호 방식

105

Cryptology, 1st term, 2009

Korea College of Information & Technology

CBC(Cipher Block Chaining) 모드

Page 106: 상용 관용 암호 방식

106

Cryptology, 1st term, 2009

Korea College of Information & Technology

CBC(Cipher Block Chaining) 모드

Page 107: 상용 관용 암호 방식

107

Cryptology, 1st term, 2009

Korea College of Information & Technology

CBC(Cipher Block Chaining) 모드

Page 108: 상용 관용 암호 방식

108

Cryptology, 1st term, 2009

Korea College of Information & Technology

CFB(Cipher Feed Back) 모드

Page 109: 상용 관용 암호 방식

109

Cryptology, 1st term, 2009

Korea College of Information & Technology

CFB(Cipher Feed Back) 모드

Page 110: 상용 관용 암호 방식

110

Cryptology, 1st term, 2009

Korea College of Information & Technology

CFB(Cipher Feed Back) 모드

• 특징 – 동일한 평문 블록에 대해 동일한 암호문이 나

타나지 않도록 함

– 평문 블럭내에 한 비트 오류가 발생하면 모든 암호문에 영향을 미침

– 암호문 블럭내에 한 비트 오류가 발생하면 복 호화된 모든 평문에 영향을 미침

• 특징 – 동일한 평문 블록에 대해 동일한 암호문이 나

타나지 않도록 함

– 평문 블럭내에 한 비트 오류가 발생하면 모든 암호문에 영향을 미침

– 암호문 블럭내에 한 비트 오류가 발생하면 복 호화된 모든 평문에 영향을 미침

Page 111: 상용 관용 암호 방식

111

Cryptology, 1st term, 2009

Korea College of Information & Technology

OFB(Output Feed Back) 모드

Page 112: 상용 관용 암호 방식

112

Cryptology, 1st term, 2009

Korea College of Information & Technology

OFB(Output Feed Back) 모드

Page 113: 상용 관용 암호 방식

113

Cryptology, 1st term, 2009

Korea College of Information & Technology

OFB(Output Feed Back) 모드

• ECB 모드의 단점을 개선하고 CBC/CFB 모드의 오류 전파 특성을 제거한 방식

• 전송 중에 비트 손실이나 삽입에 유의해야 함

• ECB 모드의 단점을 개선하고 CBC/CFB 모드의 오류 전파 특성을 제거한 방식

• 전송 중에 비트 손실이나 삽입에 유의해야 함

Page 114: 상용 관용 암호 방식

114

Cryptology, 1st term, 2009

Korea College of Information & Technology

Questions&

Answers