1.17k likes | 2.09k Views
상용 관용 암호 방식. 2009 년 3 월 30 일 (5 주차 ) 유 승 석 (aviteria@gmail.com). 수업 내용. DES DES 의 규칙성 DES 의 안전성 문제 SEED AES 운용 모드 Questions & Answers. DES. DES 개요. DEA(Data Encryption Algorithm) 대칭키 암호 시스템 , 암호화 / 복호화 키가 동일 IBM 의 홀스트 파이스텔에 의해 개발됨 , 루시퍼 (1975, IBM) 알고리즘의 변형
E N D
상용 관용 암호 방식 2009년 3월 30일 (5주차) 유 승 석(aviteria@gmail.com)
수업 내용 • DES • DES의 규칙성 • DES의 안전성 문제 • SEED • AES • 운용 모드 • Questions & Answers
DES 개요 • DEA(Data Encryption Algorithm) • 대칭키 암호 시스템, 암호화/복호화 키가 동일 • IBM의 홀스트 파이스텔에 의해 개발됨, 루시퍼(1975, IBM) 알고리즘의 변형 • ATM(Auto Teller Machines), POS(Point of Sale) 단말장치의 PIN 암호화 및 데이터 내용 변조 방지를 위해 사용됨 • PIN : Personal Identification Number
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 (계속) • 공모 조건 • 높은 안전성 • 알고리즘 간단 • 안전성이 키에만 의존 • 응용이 다양 • 제작자 및 사용자 이용 가능 • 전자장치 간단 • 제작자의 알고리즘 타당성 검토 협력 • 수출 가능
DES의 특징 • 64비트 블록 단위로 암호화 • 56비트 키(Active Key) + 8비트 패리티체크(Parity Check) 비트 • 56 비트가 암호화 및 복호화에 사용된다. • 16라운드의 치환(P-Box)과 대치(S-Box)를 사용 • 정보이론의 아버지 클로드 샤논이 제안했던 기술을 구현한 것
DES 암호화 진행 과정 Overview 1. 평문을 입력 64비트 2. 초기전치(재배열) 3. 좌우 분리 32비트씩 4. Feistel 연산 5. 원래의 키로부터 만들어 낸 키 6. 초기전치의 역전치(거꾸로) 7. 암호문 비트
DES 암호화 과정 Overview - 초기전치 IP (initial permutation) • 1) 평문을 64비트씩 자른다. • 64비트 자른 평문을 이라고 하자. • 평문 M은 초기치환 IP를 거쳐 으로 바뀐다. • IP는 1번 자리에 58번째 비트를 놓고, 2번 자리에 50번째 비트를 놓고, 3번 자리에 42번째 비트를 놓는 방식으로 비트열의 자리를 바꾼다.
DES 암호화 과정 Overview - 16라운드의 함수계산(치환) • 2) IP(M)은 좌우 각각 32비트씩 와 로 나누어 1라운드 암호화 과정에 들어간다. • 와 를 가지고 다음 단계의 , 을 만든다. • 이다. • 3) 2라운드의 왼쪽 32비트 은 오른쪽 32비트 를 그대로 쓴다. • 2라운드의 오른쪽 32비트 은 를 연산틀에 넣어서 처리한 다음 그 값과 을 XOR연산한다. • 한 라운드를 넘기는 과정마다 암호키 열 이 차례대로 작용한다.
DES 암호화 과정 Overview -역전치IP–1(inverse of initial permutation) • 4) 16라운드를 진행하여 와 을 얻고난 다음 좌우를 바꾼 64비트 에 초기치환 IP의 역치환 를 적용한다. • 역치환
S-box DES의 안전성에 중요한 역할 8 개의 비선형 함수로 구성됨 48 비트를 다시 32 비트로 변환 E : Expansion(확대전치E) 비트 확장표를 이용하여 32 비트를 48 비트로 확장 XOR 연산 키 스케줄러에서 생성된 라운드 별 Subkey와 XOR 연산 DES의 f함수 • P-box(평형전치P) • 선형전치표
DES의 f함수 • 확대전치 E
DES의 f함수 • 평형전치 P
DES의 f함수 • S-Box
DES의 f함수 • S-Box 예
The Key-schedule of DES • 키계열 생성 알고리즘 • 키 스케줄러라 불리움 • Subkey 16 개 생성 • K1, K2, K3, …, K16 • 과정 • 64비트 키 데이터 입력 • 선택치환 • PC1 : Permuted Choice1 • 8bit 패리티 체크 비트 제거 56 bit 생성 • 28비트 씩 양분 • 라운드 별 지정된 수 만큼 좌측 시프트 • 선택치환 • PC2 : Permuted Choice2 • 48 비트의 라운드 키 생성됨 • 16라운드(회) 반복
The Key-schedule of DES • 키 스케줄러에서 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라운드(회) 반복
The Key-schedule of DES • 키전치 PC-1 • 816 24 32 404856 64 제거
The Key-schedule of DES • 축약전치 PC-2 • 9 18 22 25 35 43 54 제거
The Key-schedule of DES • 키 스케쥴러 LS
DES 복호화 과정 • 암호문CIP역라운드IP–1평문M
DES 암호의 규칙성 • 보수 특성
취약 키 • 취약키로 평문을 암호화하고 다시 한 번 암호화하면 평문이 나타남
유사 취약 키 • 취약키와 상당히 비슷한 특성을 갖는 키 조합
DES의 안전성 문제 • 1975년 DES 알고리즘 발표 뒤 두가지 문제점이 제기됨 • 키의 길이가 짧다 • S-Box의 트랩도어나 의도적인 약점이 포함되어 있을 수 있다. • DES의 소모적 공격 • 암호기에 평문을 입력시켜 모든 키를 차례로 사용하면서 원하는 암호문이 출력될 때 까지 반복 • 여러 개를 만들어 동시에 공격하면 시간 단축
DES의 안전성 문제 • 1998년 미국 RSA사에서 DES 해독 • 미 정부는 DES를 1998년 11월부터 사용하고 있지 않음 • 1997년 3-DES(Triple DES, 트리플 DES) 로 보완 • DES를 사용하는 세 번의 암호화 • 2002년 AES(Advanced Encryption Standard)로 데체됨
DES (계속) • 2중 DES • 1비트 증가 효과
DES (계속) • 3중 DES • 강한 암호 가능 • 키의 길이가 2배 확대된 효과
참고자료 • DES supplementary material • details the various tables referenced in the Data Encryption Standard (DES) block cipher. • http://en.wikipedia.org/wiki/DES_supplementary_material
SEED 개요 • 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 1999년 2월 한국정보보호진흥원과 국내 암호전문가들이 순수 국내기술로 개발 • 128비트 블록암호알고리즘 • 128비트 key 사용 • 1999년 9월 정보통신단체표준(TTA)으로 제정 • 2005년에는 국제 표준화 기구인 ISO/IEC 국제 블록암호알고리즘 표준으로 제정됨 • 참고사이트 • http://www.kisa.or.kr/kisa/seed/jsp/seed_1010.jsp
f함수의 입력 값 64비트 REi 32비트 X, Y 로 분리 64비트 암호화 보조키 Ki+1 32비트 KK0, KK1으로 분리 SEED의 f함수
SEED의 G함수 • S-Box 치환 • G함수의 입력 32비트를 • 4개의 8비트 블록 X3X2X1X0으로 분할한 후 • S-Box S2S1S2S1에 입력 • S2(X3), S1(X2), S2(X1), S1(X0) 를 출력함 • Bit-wise 연산
SEED의 G함수 & : bit-wise AND
SEED의 S–Box • SEED의 안전성을 결정하는 중요한 요소 • 8비트가 입력, 8비트가 출력되는 치환과정 • 미분해독기법(differential cryptanalysis)및 선형해독기법(linear cryptanalysis) 특성이 가장 우수한 n=247, 251을 선택하여 전단사 함수 Xn을 적용함 • GF(28)을 이용 Z256 = { 0, 1, 2, … , 255 }
SEED의 S–Box • S-Box
SEED –보조키 생성 알고리즘 • 128비트의 키는 네 개의 32비트 블록으로 나누어져 키 생성 알고리즘에 입력됨(A,B,C,D)
SEED –보조키 생성 알고리즘 • 키 생성 상수
SEED 참고자료 • KISA SEED/ARIA 블록암호알고리즘 • http://www.kisa.or.kr/kisa/seed/jsp/seed_1010.jsp • SEED 알고리즘 상세 명세서 • http://www.kisa.or.kr/kisa/seed/down/SEED_Specification_korean.pdf • SEED 개발 및 분석 보고서 • http://www.kisa.or.kr/kisa/seed/down/SEED_Self_Evaluation-Korean.pdf
[참고] ARIA 블록암호알고리즘 • ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발된 블록 암호 알고리즘 • 블록 크기 : 128비트 • 키 크기 : 128/192/256비트 (AES와 동일 규격) • 라운드 수 : 12/14/16 (키 크기에 따라 결정됨) • ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성됨 • 2004년에 국가표준기본법에 의거, 지식경제부에 의하여 국가표준(KS)으로 지정
[참고] ARIA 블록암호알고리즘 • 안정성과 효율성 • ARIA 소스코드 • 국가정보원에서는 C와 JAVA로 작성된 ARIA 소스코드를 제공하고 있음 • http://www.kecs.go.kr/pw_certified/aria_open.jsp
[참고] ARIA 블록암호알고리즘 • 참고사이트 • KISA : http://www.kisa.or.kr/kisa/seed/jsp/seed_5010.jsp • IT보안인증사무국http://www.kecs.go.kr/pw_certified/aria_open.jsp
AES Advanced Encryption Standard