상용 관용 암호 방식

Post on 30-Dec-2015

351 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

Transcript

Cryptology, 1st term, 2009

Korea College of Information & Technology

상용 관용 암호 방식

2009 년 3 월 30 일 (5 주차 )유 승 석 (aviteria@gmail.com)

2

Cryptology, 1st term, 2009

Korea College of Information & Technology

수업 내용

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

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

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES

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

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)

6

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES ( 계속 )

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

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

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) 를

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

기술을 구현한 것

8

Cryptology, 1st term, 2009

Korea College of Information & Technology

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

2. 초기전치 (재배열 )

3. 좌우 분리 32비트씩

4. Feistel 연산

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

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

7. 암호문 비트

9

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호화 진행 과정 Overview

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

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

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

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)– 선형전치표

14

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

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

15

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

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

16

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• S-Box • S-Box

17

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 f 함수

• S-Box 예• S-Box 예

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 라운드 ( 회 ) 반복

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 라운드 ( 회 ) 반복

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 제거

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 제거

22

Cryptology, 1st term, 2009

Korea College of Information & Technology

The Key-schedule of DES

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

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

24

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 암호의 규칙성

• 보수 특성 • 보수 특성

)(

)(

MEC

MEC

k

k

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 ))((

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

27

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES 의 안전성 문제

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

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

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

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

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

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

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

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

년228410365243600

26

56

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) 로 데체됨

29

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES ( 계속 )

• 2 중 DES

• 1 비트 증가 효과

• 2 중 DES

• 1 비트 증가 효과

30

Cryptology, 1st term, 2009

Korea College of Information & Technology

DES ( 계속 )

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

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

CMEDE

CMEDE

KKK

KKK

)))(((

)))(((

123

121

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

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED

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

34

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 암호화 과정

1516

16151516

12

2112

01

1001

),(

),(

),(

RELE

KREfLERE

RELE

KREfLERE

RELE

KREfLERE

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

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

37

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED 의 G 함수

& : bit-wise AND

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 }

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

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

41

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – S1 Box 변환표

42

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – S2 Box 변환표

43

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – 보조키 생성 알고리즘

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

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

44

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – 보조키 생성 알고리즘

01

01

1

0

KCDBGK

KCCAGK

45

Cryptology, 1st term, 2009

Korea College of Information & Technology

SEED – 보조키 생성 알고리즘

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

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

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) 으로 지정

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

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

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES

Advanced Encryption Standard

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 로 등록

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

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

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

55

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 개요

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

연산을 수행한다 .

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

연산을 수행한다 .

56

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 덧셈 (Addition)

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

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

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 에서 사용하는 기약 다항식

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

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 암호화 과정

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

61

Cryptology, 1st term, 2009

Korea College of Information & Technology

The number of Rounds (Nr)

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

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

62

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 암호화 과정

63

Cryptology, 1st term, 2009

Korea College of Information & Technology

Round Transformation

• 4 개의 다른 transformation 으로 구성

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

• 4 개의 다른 transformation 으로 구성

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

64

Cryptology, 1st term, 2009

Korea College of Information & Technology

Pseudo Code for the AES cipher

65

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

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 는 두 가지 변환으로 구성

67

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

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

68

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

69

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation

70

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubByte( ) Transformation Example

71

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

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

73

Cryptology, 1st term, 2009

Korea College of Information & Technology

ShiftRow() Transformation(2/2)

74

Cryptology, 1st term, 2009

Korea College of Information & Technology

ShiftRow() Transformation Example

75

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

76

Cryptology, 1st term, 2009

Korea College of Information & Technology

MixColumn() Transformation(1/2)

77

Cryptology, 1st term, 2009

Korea College of Information & Technology

MixColumn() transformation(2/2)

78

Cryptology, 1st term, 2009

Korea College of Information & Technology

MixColumn() transformation Example

79

Cryptology, 1st term, 2009

Korea College of Information & Technology

SubBytes stepShiftRows stepMixColumns stepAddRoundKey step

80

Cryptology, 1st term, 2009

Korea College of Information & Technology

AddRoundKey() Transformation

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

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

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

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

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

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

81

Cryptology, 1st term, 2009

Korea College of Information & Technology

AddRoundKey() Transformation - Example

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 복호화 과정

83

Cryptology, 1st term, 2009

Korea College of Information & Technology

AES 의 복호화 과정

84

Cryptology, 1st term, 2009

Korea College of Information & Technology

Inverse Cipher

85

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvSubByte() Transformation(1/2)

86

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvSubByte() Transformation(2/2)

87

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvShiftRow() Transformation

88

Cryptology, 1st term, 2009

Korea College of Information & Technology

InvMixColumn() Transformation

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

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

Cryptology, 1st term, 2009

Korea College of Information & Technology

KeyExpansion using Rijndael's key schedule

90

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion

91

Cryptology, 1st term, 2009

Korea College of Information & Technology

Psedo code for Key Expansion

92

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion

93

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(1/4)

94

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(2/4)

95

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(3/4)

96

Cryptology, 1st term, 2009

Korea College of Information & Technology

Key Expansion – Example(4/4)

97

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(1/4)

98

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(2/4)

99

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(3/4)

100

Cryptology, 1st term, 2009

Korea College of Information & Technology

Cipher – Example(4/4)

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

Cryptology, 1st term, 2009

Korea College of Information & Technology

운용 모드

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)

104

Cryptology, 1st term, 2009

Korea College of Information & Technology

ECB(Electronic Codebook) 모드

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

105

Cryptology, 1st term, 2009

Korea College of Information & Technology

CBC(Cipher Block Chaining) 모드

106

Cryptology, 1st term, 2009

Korea College of Information & Technology

CBC(Cipher Block Chaining) 모드

107

Cryptology, 1st term, 2009

Korea College of Information & Technology

CBC(Cipher Block Chaining) 모드

108

Cryptology, 1st term, 2009

Korea College of Information & Technology

CFB(Cipher Feed Back) 모드

109

Cryptology, 1st term, 2009

Korea College of Information & Technology

CFB(Cipher Feed Back) 모드

110

Cryptology, 1st term, 2009

Korea College of Information & Technology

CFB(Cipher Feed Back) 모드

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

타나지 않도록 함

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

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

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

타나지 않도록 함

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

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

111

Cryptology, 1st term, 2009

Korea College of Information & Technology

OFB(Output Feed Back) 모드

112

Cryptology, 1st term, 2009

Korea College of Information & Technology

OFB(Output Feed Back) 모드

113

Cryptology, 1st term, 2009

Korea College of Information & Technology

OFB(Output Feed Back) 모드

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

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

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

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

114

Cryptology, 1st term, 2009

Korea College of Information & Technology

Questions&

Answers

top related