1 Chap 7. 암호 알고리즘. 2 목 차목 차 1. MD5 메시지 다이제스트 알고리즘 2. 안전한 해쉬 알고리즘 3. 국제 데이터 암호 알고리즘 (IDEA) 4. SKIPJACK 5. LUC 공개키 암호.

Slides:



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

1 정보보안 경일대학교컴퓨터공학과 김 현 성 2 강의구성  교과목 소개 (1 주 )  산업체 전문가 특강실시 (2 주 )  소프트웨어 공학 (3 주 ~7 주 : 5 주 )  산업체 전문가 특강실시 (8 주 )  팀 프로젝트 (9 주.
순천향대학교 정보보호연구회 김현민 DES (Data Encryption Standard)
제3장 관용암호: 현대적 암호기법
(c) Byoungcheon Lee, Joongbu Univ.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Chapter 18 네트워크층 보안: IPSec
Chapter 3 Symmetric Key Crypto
Chap 4. 관용 암호 방식 알고리즘.
Chapter 17 전송층 보안: SSL과 TLS
연결리스트(linked list).
제 9 장 구조체와 공용체.
제12장 해쉬 알고리즘 12.1 MD Seure Hash Algorithm (SHA) 12.3 RIPEMD-160
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
교과목 소개 정보보호.
암호학 응용 Applied cryptography
SSL (Secure Sockets Layers Protocol)
해쉬 알고리즘.
File Depender 중간 발표.
공개키 암호화 프로그래밍 전자상거래보안.
암호에 대한 이해 정보 보안 개론 7장.
23 장 OSI 상위계층 23.1 세션(session)층 23.2 표현(presentation)층
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
전자상거래 보안 (암호학과 네트워크보안) Chul Ho Rhee
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
Chap 4. 공개키 암호.
Chapter 6 Contemporary Symmetric Ciphers
행렬 기본 개념 행렬의 연산 여러가지 행렬 행렬식 역행렬 연립 일차 방정식 부울행렬.
제9장 공개키 암호 (I) Public-key Cryptography
11장. 1차원 배열.
제4장 제어 시스템의 성능.
전자상거래 보안 (암호학과 네트워크보안) ) Chul Ho Rhee
프로그래밍 개요
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
웹어플리케이션보안 암호프로그래밍, crypto-js
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
제11장 해쉬 알고리즘 The Hash Algorithm
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
1. 2진 시스템.
논문작성을 위한 연구모형 설정 양동훈.
비대칭 암호화 알고리즘 공개키 암호화 알고리즘 소속 : 한세사이버보안고등학교 조장 : 안도현
계산기.
CHAP 21. 전화, SMS, 주소록.
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
통신망 정보보호 이재광, 이임영, 소우영, 최용락.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
AT MEGA 128 기초와 응용 I 기본적인 구조.
오라클 11g 보안.
논리회로 설계 및 실험 4주차.
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
시리얼 UART 정리 정보통신•컴퓨터 공학부 송명규
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
Chapter 08. 암호에 대한 이해 : 숨기고자 하는 이들의 싸움
(c) Byoungcheon Lee, Joongbu Univ.
제 4 장 Record.
수치해석 ch3 환경공학과 김지숙.
암호 시스템 (Crypto system) 신효철
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
6 객체.
20 XMLHttpRequest.
Presentation transcript:

1 Chap 7. 암호 알고리즘

2 목 차목 차 1. MD5 메시지 다이제스트 알고리즘 2. 안전한 해쉬 알고리즘 3. 국제 데이터 암호 알고리즘 (IDEA) 4. SKIPJACK 5. LUC 공개키 암호

3 1. MD5 메시지 다이제스트 알고리즘 MIT 의 Ron Rivest 에 의해 개발 (RSA 개발자 중의 한사람 ) MD5 로직 – 입력 : 임의의 길이의 메시지 – 출력 : 128 비트 메시지 다이제스트 5 단계로 구성

4 그림 7.1 MD5 를 이용한 메시지 다이제스트 생성 페딩 (1-512bit) 메시지 길이 (K mod 2 64 ) L Y 512bits = N Y 32bits K bits 메시지 Y 0 Y Yq Y L ABCD HMD5 HMD5 128bit HMD5 HMD5 128bit digest

5 1 단계 : 패딩 비트 부가 – 패딩비트 범위 : 비트 – 하나의 1 과 원하는 길이의 0 으로 패딩 – 메시지가 원하는 길이일 지라도 패딩은 항상 부가 2 단계 : 부가된 길이 – 본래 메시지에 64 비트가 첨가 –1, 2 단계에 의해 길이가 512 비트의 정수배가 되는 메시지를 얻음 3 단계 : MD 버퍼의 초기화 – 버퍼의 용도 : 해수함수의 중간과 최종 결과 보관 – 버퍼 : 버퍼는 4 개의 32 비트 레지스터 (A,B,C,D) 로 표현 – 레지스터들은 다음과 같은 16 진수의 값으로 초기화 A = B = 89ABCDEF C = FEDCBA98D =

6 4 단계 : 512(16 단어 ) 블럭의 메시지 처리 입력 : 512 비트 블럭, 128 비트 버퍼값 (A,B,C,D), 사인 함수로 구성되는 64 비트 요소. Algorithm : 4 개의 라운드 처리로 구성된 모듈 같은 함수구조를 가지면서 서로 다른 기약함수에 의존 테이블중에 각 라운드마다 1/4 를 사용 T[i] 에서 i 번째 요소는 2 32 * abs(sin(i)) 의 정수 부분과 일치 압축 함수 : F(U,V,W) = (U  V) V (~U  W) G(U,V,W) = (U  V) V (U  ~W) H(U,V,W) = U+V+W I (U,V,W) = V+ V (U  ~W) 3 개의 32 비트단어를 입력으로 취하고 하나의 32 비트 단어 출력

7 5 단계 : 출력 512 비트 입력으로 128 비트 출력이 나옴 단계 연산 설명 - ABCD 에서 16 단계 처리 계열로 구성 A := B + CLS S (A+G(B,C,D) + X[k] + T[i]) A,B,C,D : 버퍼의 4 단어 G : 기약 함수 F,G,H,I 의 하나 CLS S : 32 비트에서 s 비트 순환 좌측 쉬프트 ( 로테이션 ) X[K] : 메시지의 q 번째 512 비트 블럭에서 k 번째의 32 비트 단어 T[i] : 행렬 T 에서 i 번째 32 비트 단어 + : 법 2 32 의 덧셈

8 32 비트 단어 배열 는 현재 처리되고 있는 512 비트 블럭값을 가진다. 입력의 각 32 비트 32 비트 단어는 라운드마다 한 번씩 4 번 사용되고, 의 64 개 의 32 비트 단어 요소의 각각은 정확히 한번 사용된다. 각 단계에 대하여 버퍼의 4 바이트중 하나만이 갱신. 각 바이트는 라운드 동안 16 번 갱신.

9 [PIC3. MD5 의 기본 동작 ] ABCD G + + X[k] + T[i] CLS S +

10 MD4 해쉬함수 출력 : 128 비트 입력 : 512 비트 메시지 블럭 (16 개의 32 비트 워드 ) 과 상수 초기값 : IV0= EFCDEAB89 98BADCFE 패딩 : 패딩은 (512 의 배수 - 64) 가 될 때까지 한다. 추가 패딩 : 메시지의 길이의 64 비트 표현으로 남은 64 비트를 채운다. 상수 : K1 = 5A827999, K2 = 6ED9EBA1 압축 함수 : F(U,V,W) = (U  U)V(~ U  W) G(U,V,W)= (U  U)V(~U  W)V(V  W) H(U,V,W) = U+V+W 단계 연산 :FF(a,b,c,d,Z,s) | a := (a + F(b,c,d) + Z)<<s FF(a,b,c,d,Z,s) | a := (a + F(b,c,d) + Z)<<s

11 MD4 와 MD5 의 차이점 비교  MD4 는 16 단계의 3 라운드를 사용하나, MD5 는 16 단계의 4 라운드를 사용한다.  MD4 는 각 라운드에서 한 번씩 3 개의 기약함수를 사용한다. 그러나 MD5 는 각 라운드에서 한번씩 4 개의 기약 논리 함수를 사용한다.  MD5 의 각 단계는 이전 단계의 결과에 부가된다.

12 2. 안전한 해쉬 알고리즘 (SHA, SHS) 출력 : 160 비트 해쉬 입력 : 512 비트 메시지 블럭과 상수 초기값 : A= B=EFCDAB89 C=98BADCFE B= E=C3D2E1F0 패딩 : 패딩은 (512 의 배수 - 64) 가 될 때까지 한다. 추가 패딩 : 메시지의 길이의 64 비트 표현으로 남은 64 비트를 채운다. 상수 :0 t 19 Kt = 5A t 39 Kt = 6ED9EBA1 40 t 59 Kt = 8F1BBCDC 60 t 79 Kt = CA62C1D6 압축함수 : F(U,V,W) = (U  V) V(~U  W) (0<=t<=19) G(U,V,W) = U+V+W (20<=t<=39,60<=t<=79) H(U,V,W) = (U  V) V (U  W) V (V  W) (40<=t<=59)

13 단계 연산 FF(a,b,c,d,e,Xt,Kt) | a := (a <<5 + F(b,c,d)+e+Xt+Kt) b := a c := b <<30 d := c e := d GG(a,b,c,d,e,Xt,Kt) | a := (a <<5 + G(b,c,d)+e+Xt+Kt) b := a c := b <<30 d := c e := d HH(a,b,c,d,e,Xt,Kt) | a := (a <<5 + H(b,c,d)+e+Xt+Kt) b := a c := b <<30 d := c e := d

14 SHA 해쉬함수 [PIC. SHA 를 이용한 메시지 다이제스트 ] 패딩 (1-512bit) 메시지 길이 (K) Ly 512bits = Ny 32bits K bits 메시지 Y0 Y Yq Y L ABCDE H SHA H SHA 160bit H SHA H SHA 160bit digest

15 [PIC 2. 단일 512 비트 블럭의 SHA 처리 ] Yq(512bit) MDq(160bit) ABCDE ROUND 0 (ABCDE, Yq, K 0 ABCDE ROUND 1 (ABCDE, Yq, K 1 : ABCDE ROUND 79 (ABCDE, Yq, K bit MD q +1

16 [PIC. SHA 기본 동작 ] ABCDE f 1 + CLS W T CLS 30 + K T A B CDE

17 SHA 와 MD5 의 차이점 비교 양쪽 다 MD4 로부터 나왔기 때문에, SHA 와 MD5 는 서로 아주 유사하다. 따라서 그들의 강도와 특성도 비슷하다. MD5 와 SHA 의 비교 MD5 SHA 다이제스트 128 비트 160 비트 처리의 기본단위 64(16 번의 4 라운드 ) 80 최대 메시지 크기 무한대 2 64 기약 논리 함수 4 3 덧셈 상수 64 4

18 3. IDEA(International Data Encryption Alg.) Xuejia Lai, James Massey( 스위스 연방 기술 기관 ) DES 를 대치하기 위한 알고리즘의 하나 가장 성공적인 DES 의 대치 알고리즘 – 대부분의 암호 공격으로부터 안전 – 널리 사용됨 (PGP 에 포함 ) 설계 원리 – 블록암호 : 64 비트 블록 / 128 비트 키 – 강한 강도 – 쉬운 구현

19 암호학적 강도 블록 길이 : 64 비트 ( 통계적 분석 방지 가능 ) 키 길이 : 128 비트 ( 전사적 공격에 안전 ) Confusion ( 혼돈 ) – 암호문의 통계적 성질과 평문의 통계적 성질의 관계를 난해하게 만 드는 성질 –IDEA 는 세가지 연산을 사용하여 confusion 을 달성 –DES 에서는 이러한 성질을 XOR 연산과 비선형 s-box 에 의존 Diffusion( 확산 ) – 각각의 평문 비트와 키 비트는 모든 암호문 비트에 영향을 주어야 한 다. – 이것은 평문의 통계적 구조를 감출 수 있다. –IDEA 는 효율적인 확산을 지원한다.

20 IDEA 의 Confusion / Diffusion Confusion : 세가지 연산을 이용 –XOR, 2 16 (mod 65535) 상에서의 덧셈, 곱셈 – 각각 , +, 로 표기 –XOR 에만 의존하는 DES 보다 암호해독이 어려움 Diffusion – 곱셈 / 덧셈 (MA) 구조에 의해 제공 입력 : 평문에서 유추된 두개의 16 비트, 키에서 유추된 두개의 16 비트 서브키 출력 : 두개의 16 비트 결과 – 효율적인 확산을 위해 8 번 반복

21 곱셈 / 덧셈 (MA) 구조 F1F1 F2F2 Z5Z5 Z6Z6 G1G1 G2G2

22 IDEA 암호화 입력 : 64 비트 평문, 128 비트 키 / 출력 : 64 비트 암호문 8 라운드 입력을 4 개의 16 비트 서브블럭으로 분해 각 라운드는 4 개의 서브 블록을 입력으로 받고, 4 개의 16 비트 결 과물을 생성 모든 서브키는 초기 128 비트 키에서 생성 – 총 52 개의 서브키가 사용됨

23 IDEA 전체 구조 Round 1 Round 2 64bit 평문 … Z1Z1 Z6Z6 … Z7Z7 Z 12 Round 7 출력 변환 … Z1Z1 Z6Z6 … Z7Z7 Z 비트 암호문 Y 서브키 생성기 128 비트 키 Z Z1Z1 Z

24 Round 1 네개의 서브키 (Z 1 ~ Z 4 ) 네개의 입력 블록 (X 1 ~X 4 ) 덧셈, 곱셈연산을 이용해서 키와 입력 블록을 조합 ( 변환과정 ) 조합된 결과를 XOR 두번째와 세번째의 결과 교환 (Confusion 증가 및 차분해독에 견딜 수 있는 성질 )

25 출력 변환 1 라운드의 맨 처음 처리과정과 동일한 단계 즉, 8 라운드의 끝 부분에서 교환을 하지 않은 것과 동일 – 암호화 / 복호화가 동일한 구조를 가지기 위함

26 IDEA 동작 모드 DES 와 유사한 4 가지 동작 모드 ECB –64 비트의 각 평문 블록이 독립적으로 암호화 – 작은 블록의 데이터 암호화에 유용 CBC – 평문의 다음 64 비트와 암호문의 이전 64 비트에 대한 XOR – 같은 64 비트 평문이라도 매번 다른 암호문 생성 CFB – 입력은 한번에 J 비트로 처리 – 이전 암호문은 의사난수 (pseudo random) 값 생성을 위한 입력으로 사용되고, 다 음 평문과 XOR OFB(Output feedback) – 이전 IDEA 의 결과를 입력으로 사용 – 잡음이 있는 채널에서의 스트링 전송에 유효

27 4. SKIPJACK 1993 년 4 월 클린턴 행정부 “ 법 시행의 합법적 필요성을 허 용하는 범위 내에서 전화 통화의 보안성과 프라이버시를 향상 시키기 위한 연방 정부의 참여 ” 선언 합법적인 전자적 감시를 통해 사회를 보호하면서도 국가의 다른 이해관계와 충돌하지 않는 안전체계를 제공하려함. Clipper Project 암호를 사용하는 개인 통화 내용의 감청 허용 DES 보다 강한 암호 알고리즘 비공개 사용은 자유 선택

28 Clipper I ( ) 민간 부분의 암호장비 사용을 가능케 함으로써 개인적인 커뮤니케이션을 보호하는 동시에 정부가 적법한 절차에 의할 때 복호화키에 대한 접근권을 갖음 알고리즘 : SKIPJACK( 비공개 ) 전화 통화에 대한 도청 (wiretap), H/W 적 구현 1 년의 comment 시기 : NIST 가 EES(Encrypted Escrow Standard) 로 표준 (FIPS - 185) 키 위임 정책에 대한 반대 의견 : 민간 privacy 침해, 키 위임을 선호하지 않음 Clipper 에 대한 반대 의견 (Diffie 등 ) : 알고리즘의 비공개 : trapdoor 의 존재 가능성 : NSA 가 주도 : H/W 의존성 : 비용, 호환성 문제

29 Clipper II ( ) 상업적 키 위임 (Commercial key escrow) 법집행 능력의 유지가 아님 키 손질에 따른 데이타 복원 키 보관을 민간 기관도 가능 암호장비 수출 규제에 대한 산업계의 반발 40 비트키 64 비트 이하의 키 ( 키 위임 포함 ) S/W 적으로도 실현 가능한 방식으로 함 민간 부분의 동의를 얻지 못함 ; Clipper Chip : 키 사이즈 80 비트 수출 제한 완화와 키 위임을 결합

30 Clipper III ( ) 공개키 암호 방식의 중요성 인식 키 관리 기반 (KMI, Key Management Infrastructure) 방식 도입 CA (Certification Authority) PAA (Policy Approving Authority) 키 위임기관이 필요 키 관리와 키 위임이 결합 PKI 의 개념과 상이 위임기관의 기준에 대한 언급 결여 키 위임의 강제성이 강화

31 Clipper IV ( ) White House 가 Key escrow 의 최신 버젼을 공포 Key escrow Key recovery 수출 규정 완화 56 비트 암호 시스템의 수출 허용 향후 2 년간 ( 단, key escrow 시스템 개발 ) 그 이후는 금지 관장기관이 State Department 에서 Commerce Department 로

32 SKIPJACK Interactive block cipher 블럭 사이즈 : 64 비트, 키 사이즈 : 84 비트 ECB, CBC, OFB, CFB 모드 사용 가능 32 라운드 1985 ~ 1990 ( NSA ) Capstone ( MYK - 80 ) NSA 에서 개발 Skipjack algorithm (ECB, CBC, CFB, OFB 모드 사용 ) Public - key Exchange Algorithm (Diffie - Hellman Scheme) Digital Signature Algorithm Secure Hash Algorithm For secure electronic commerce and other computer - based application

33 Clipper chip 평가 (by NIST) 민간인 5 명 (Denning, Brckell, 등 ) 30 ~ 40 년간 Exhaustive Search 의 우려가 없음 Shortcut attack 으로 skipjack 이 해독될 우려는 없음 Skipjack 의 안전성은 알고리즘의 비공개와 무관

34 SKIPJACK K F UID A KU A Chip KSKSKSKS K F UID A KU A Chip KSKSKSKS 협약된 세션키 M E K S [M] 암호화된 메시지 법 시행필드 (LEAF) E K F [UID A || E KU A (K S ) || P A ] 법 시행 복호기 UID A E K 1 (KU A 1 ) UID A E K 2 (KU A 2 ) 에스크로우 기관 1 에스크로우 기관 2 DD+DDD K1K1K1K1 K2K2K2K2 M 가로챔 KU A KSKSKSKS E KU A (K S ) A 키 요소 요구 송신자 A 의 안전장치송신자 B 의 안전장치 M 메시지

35 매개 변수 K F = 80 비트 집단키. 집단으로 지정된 모든 장치들에 저장. 그것은 LEAF 를 만드는데 사용된다. UID = 특별한 SKIPJACK 칩에 대한 유일한 식별자 KU = 장치 유일키. 칩과 함께 암호화된 모든 메시지를 푸는데 사용되는 특별한 SKIPJACK 칩에 대한 유일한 암호화 키 KU 1, KU 2 = 키 요소의 쌍. 다음의 항등식을 가진다. KU = KU 1 KU 2 K 1, K 2 = 암호화 비밀키 K S = 세션키 P A = 인증코드. LEAF 가 인정되지 않은 방법으로 비뀌거나 수정되지 않았다는 것을 확신하는데 사용되는 LEAF 에서의 필드 LEAF( 법 시행 필드, Law Enforcemnet Field) = E K F (UID A II EKU A (K S ) II P A )

36 Clipper Mechanism 법 시행 기관 1. 키 구성 요소를 복원한다. KU A 1 = DK 1 [E K 1 (KU A 1 )] KU A 2 = DK 2 [E K 2 (KU A 2 )] 2. 기기 유일키를 생성하다. KU A = KU A 1 + KU A 2 3. 세션키를 복원한다. K S = D KU A [E KU A (K S )] 4. 메세지를 복원한다. M = D K S [E K S (M)]

37 Clipper 의 문제점 Escrow 기관이 모두 행정부 소속 Clipper Chip 의 효용성에 대한 의문 법 제도의 미비 합법적인 도청을 규제하는 법률 미비 도청 허가 신청이 거부된적이 없음 합법적 도청 허가 기간이 끝난 후도 도청이 가능 Clipper Chip 의 Reverse-engineering

38 5. LUC 공개키 암호 뉴질랜드 출신 연구가 집단이 공동개발 암호화, 서명 등에 사용 Lucas 수열 이용 음이 아닌 정수 P 와 Q 를 선택하고 다음과 같은 2 차 방정식을 계산 X 2 - PX + Q = 0 근 : 방정식의 두 근을 ,  라고 하면 다음과 같은 관계 성립  +  = P,   = Q,  -  = 판별식 D

39 Lucas 수열의 정의 LUC 공개키 알고리즘 – 키 생성 소수 p, q 선택 N = pq 계산 정수 e 계산 gcd[(p-1)(q-1)(p+1)(q+1), e] =1 D 계산 D=P 2 -4 S(N) 계산 S(N) = d 계산 d=e -1 mod S(N) 공개키 KU={e, N} 개인키 KR={d, N}

40 암호화 복호화 평문 : P < N 암호문 : C = V e (P, 1) (mod N) 암호문 : C 평문 : P = V d (C, 1) (mod N)

41 LUC 암호화의 예 1. 소수 p=1949, q=2089 선택 2. N=pq = * 2088 * 1950 * 2090 과 서로소인 e= 평문 P = 선택 5. D = (11111) 2 -4= , S(N)=lcm[(1949+1), )] = d=e -1 mod = C=V 1103 (11111, 1) mod = P =V ( , 1) = 11111