1 / 57

Chap 9. 해쉬 알고리즘

Chap 9. 해쉬 알고리즘. 1. MD5 메시지 다이제스트 알고리즘. MIT 의 Ron Rivest 에 의해 개발됨 MD5 입력 : 임의의 길이의 메시지 출력 : 128비트 메시지 다이제스트 입력처리 : 512비트 불록단위로 처리. Mess. Length (K mod 2^64). 512. 512. 512. 512. Padding (1 to 512 bits). L*512 bits = N * 32 bits. K bits. Message. 100…0. Y 0. Y 1. Y q.

inge
Download Presentation

Chap 9. 해쉬 알고리즘

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chap 9. 해쉬 알고리즘

  2. 1. MD5 메시지 다이제스트 알고리즘 • MIT의 Ron Rivest에 의해 개발됨 • MD5 • 입력 : 임의의 길이의 메시지 • 출력 : 128비트 메시지 다이제스트 • 입력처리 : 512비트 불록단위로 처리

  3. Mess. Length (K mod 2^64) 512 512 512 512 Padding (1 to 512 bits) L*512 bits = N * 32 bits K bits Message 100…0 Y0 Y1 Yq YL-1 512 512 512 512 HMD5 HMD5 HMD5 HMD5 128 128 128 128 IV CV1 CVq CVL-1 Digest

  4. 단계1 : 패딩 비트의 부가 하나의 ‘1’비트 뒤에 필요한 개수의 ‘0’ 비트들을 붙여서 구성 • 단계2 : 메시지 길이의 부가 512비트의 정수배가 되도록 메시지 길이 구성 • 단계3 : MD 버퍼의 초기화 Little endian 형태로 4개의 레지스터에 1부터 값을 초기화 • 단계4 : 512 비트(16단어) 블록의 메시지 처리 4개의 라운드로 구성된 압축함수 모듈 통과

  5. Yq CVq 128 32 A B C D 512 F, T[1…16], X[i] 16steps A B C D G, T[17…32], X[p2i] 16steps A B C D H, T[33…48], X[p3i] 16steps A B C D I, T[49…64], X[p4i] 16steps + + + + Addition is mod 2^32 CVq+1

  6. 입력 : 128비트 버퍼 값 ABCD • 각 라운드 : 사인함수로 구성되는 T[1..64]의 ¼ 사용 • T의 i번째 요소는 2^32 * abs(sin(i))의 정수부분과 일치하는 값 • i는 라디안 • Abs(sin(i)) : 0과 1사이의 값 • T의 각 요소는 32비트 정수 • 테이블은 347페이지 표 9.1 참조 • 네번째 라운드의 출력은 첫번째 라운드의 입력이었던 CVq와 더해져서 CVq+1생성 • 단계5 : 출력

  7. MD5의 과정요약 CV = IVCVq+1 = SUM32(CVq, RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]]) MD = CVL • IV : 3단계에서 정의된 ABCD 초기 버퍼값 • Yq : 메시지의 q번째 512비트 블록 • L : 메시지의 블록수 • CVq : 메시지의 q번째 블록과 함께 처리되는 체인변수 • RFx : 기약 논리 함수 x를 사용하는 라운드 함수 • MD : 최종 메시지 다이제스트 값 • SUM32 : 입력 쌍의 각 단어에 제각기 수행되는 법 2^32 덧셈

  8. MD5 압축 함수 • 각 단계의 형식은 다음과 같다 a <- b + ((a + g(b,c,d) + X[k] + T[i]) <<< s) • a,b,c,d : 버퍼의 4단어, 단계에 따라 상이한 순서로 되어있음 • g : 기약함수 F,G,H,I 중의 하나 • <<< s : s 비트에 의한 32비트 매개변수의 순환좌측쉬프트 • X[k] : 메시지의 q번째 512비트 블록 중에서 k번째 32비트단어 • T[i] : 매트릭스 T에서 i번째 32비트 단어 • + : 법 2^32 덧셈

  9. A B C D + g X[k] + T[i] + CLSs + A B C D

  10. MD4 • MD4는 MD5의 이전버전 • MD4의 목적 • 안전성 : 해쉬코드에 대한 일반적인 요구사항 • 속도 : 빠른 시행에 적합 -> 32비트 구조로 연산 • 단순성과 간결성 : 프로그램과 표현이 단순 • Little-endian구조의 선호

  11. MD4 vs MD5 • 라운드 • MD4 : 16단계의 3라운드 • MD5 : 16단계의 4라운드 • 덧셈 • MD4는 첫번째 라운드에서 덧셈 사용 않고, 두번째 라운드에서 각 단계에서 같은 덧셈상수 사용, 세번째 라운드에서 각 단계에 서로 다른 덧셈 상수 사용 • MD5는 64단계의 각각에 다른 덧셈 상수 T[I]사용 • 논리함수 • MD4 : 각라운드에 한번씩 3개의 기약 함수 사용 • MD5 : 각 라운드에서 한번씩 4개의 기약 논리 함수 사용 • 이전 단계와의 연결 • MD5 : 이전 단계의 결과의 데이터 이용 =>더 큰 쇄도효과

  12. 디지털 서명 과 인증 프로토콜

  13. 목 차 1. 디지털 서명 개요 2. 직접적 디지털 서명 3. 중재된 디지털 서명

  14. 암호학적 점검값의 기본 사용 예 K1 EK2[M || CK1(M)] M M C || E D 비교 C K2 K2 CK1(M) K1

  15. 송신자와 수신자의 완벽한 신뢰가 없는 상황에서 인증 이상의 어떤 것이 필요 디지털 서명 해결책 1. 디지털 서명 • 적용 예 • 전자식 자금 전달의 경우 • 수신자 : 1. 전달된 자금의 양을 증가 2. 송신자로부터 해당 금액이 왔다고 주장 • 주식 매매 요청의 경우 • 송신자 : 1. 단말기를 통해 주식 매매 요청 2. 주식 값이 하락 3. 자신이 요청을 한 적이 없다고 주장

  16. 1. 디지털 서명 • 배경 1) 종이 문서 사회에서 정보화 사회로의 진전으로 다양한 서비스 요구 2) 데이타 무결성 및 사용자 인증 서비스가 필수적 • 정의 • 공개키 암호화를 사용하여 구현하며, 보낸 사람과 메시지를 연결하는 방법을 제공하고, 구매시 사이버스페이스에서 서명하는 것이다. • 목적 • 신뢰성 확보 ( 내용의 위·변조 및 신분 확인에 사용)

  17. 디지털 서명 특징 • 그 서명의 저자와 날짜와 시간을 확인할 수 있어야 한다. • 서명할 때의 내용을 인증할 수 있어야 한다. • 서명은 분쟁을 해결하기 위해서, 제3자에 의해서 확인할 수 있어야 한다.

  18. 디지털 서명 요구 조건 • 서명은 서명되는 메시지에 의존하는 비트 형태이어야 한다. • 서명은 위조와 부인을 방지하기 위해서 송신자에 대한 유일한 어떤 정보를 이용해야만 한다. • 디지털 서명을 만들기가 비교적 쉬워야 한다. • 디지털 서명을 인식하고 확인하기가 쉬워야 한다. • 기존의 디지털 서명에 대한 새로운 메시지를 구성하거나 또는 주어진 메시지에 대한 거짓 디지털 서명을 구성함으로써 디지털 서명을 위조하는 것이 계산적으로 실행 불가능해야 한다. • 기억장소에 디지털 서명의 복사본을 유지하는 것이 실용적이어야 한다.

  19. 2. 직접적 디지털 서명 • 오직 통신하는 상대방(출신, 목적지)만을 포함 • 직접적 디지털 서명 방식 • 송신자의 개인키를 가지고 전체 메시지를 암호화 • 송신자의 개인키를 가지고 메시지의 해쉬 코드를 암호화 • 비밀성을 위해 • 수신자의 공개키 또는 공유 비밀키를 가지고 서명된 메시지를 암호화 • 단점 • 구조의 정당성은 송신자의 개인키에 달려 있음 • 송신자가 개인키를 분실, 도난 당했다고 주장이 가능

  20. KRa KUa M M E D EKRa(M) Authentication and signature • 메시지 암호화의 기본 사용법

  21. 3. 중재된 디지털 서명 기법 • 관용 암호 방식(1) • 중재자에게 메시지 노출 • Alice와 Carol 간에 비밀키 공유 : KCA • Carol과 Bob 간에 비밀키 공유 : KCB 2. Verification Carol 3.EKCB[IDA || M || EKCA[IDA || H(M) || T] 1. M || EKCA[IDA || H(M)] Bob Alice

  22. 관용 암호 방식(1) • Bob은 Alice의 서명을 직접 검사할 수 없다. • 서명은 분쟁 해결을 위해 존재 • Alice와 Bob은 Carol에게 높은 신뢰를 가지고 있어야 한다. • Carol이 KCA를 노출 시키지 않는다. • EKCA[IDA || H(M)] 형태의 거짓 서명을 만들지 않는다. • Bob은 서명이 A에 의해서만 만들어졌을 때만, • EKCB[IDA || M || EKCA[IDA || H(M) || T]를 보낸다는 것을 신뢰

  23. 2. Verification Carol 1. IDA || EKAB[M] || EKAC[IDA || H(EKAB[M])] 3.EKCB[IDA || EKAB[M] || EKAC[IDA || H(EKAB[M]), T] Bob Alice 관용 암호 방식(2) • 메시지 비밀 유지 • Alice와 Bob이 비밀키를 공유 : KAB

  24. 관용 암호 방식(2) • 장점 • Carol은 메시지 내용을 읽을 수 없다. • Carol은 Alice와 Bob의 부정을 막을 수 있다. • 단점 • Carol은 Alice와 함께 서명된 메시지를 부인할 수 있다. • Carol은 Bob과 함께 Alice의 서명을 위조할 수 있다.

  25. 2. Verification Carol 1. IDA || EKRA[ IDA || EKUB(EKRA[M])] 3.EKRC[IDA || EKUB(EKRA[M])], T] Bob Alice 공개키 암호 방식 • 메시지 비밀 유지 • 관용 암호 방식에서 발생할 수 있는 문제점 해결 가능

  26. 공개키 암호 방식 • 장점 • 통신 전에 통신의 상대자간에 공유해야 할 정보가 없다. • KRa가 노출되었다고 할지라도 KRC가 노출되지 않았으면 부정확한 날짜가 매겨진 메시지가 보내질 수 없다. • Alice로부터 Bob에게 온 메시지의 내용은 Carol과 다른 모든 사람들에게 있어서 비밀이다.

  27. 인증 프로토콜

  28. 목차 • 상호인증 • 관용암호방식 • 공개키 암호화 방식 • 일방향 인증 • 관용 암호 방식 • 공개키 암호 방식

  29. 1. 상호 인증(1) • 상호 인증 프로토콜 • 신분 확인에 대해 상호 만족시킴 • 세션키를 교환할 수 있게 함 • 인증된 키 교환 문제에 있어서 두 가지 고려할 점 • 기밀성(confidentiality) • 신분 위장 방지 : 신원 증명이 필요 • 세션키의 손상 방지 : 암호화 형태로 통신되어야 함 • 적시성(timeliness) • 메시지 재전송의 위협 방지 • 메시지 재전송 • 공격자가 세션키를 손상 • 다른 상대방을 흉내 초점 : 키 분배

  30. 1. 상호 인증(2) • 재전송 공격의 예 • 단순 재전송 • 공격자가 메시지를 단순히 복사하고 후에 재전송하는 것 • 시간 범위 내에서 재전송 • 공격자는 유효한 시간 윈도우 내에서 타임 스탬프가 있는 메시지를 재전송할 수 있다. • 발견될 수 없는 재전송 • 원본 메시지의 사용을 정지시켜서 목적지에 도착하지 않고 오직 재전송 메시지만 도착할 경우에 일어날 수 있다. • 수정 없이 역방향 재전송 • 메시지 송신자에 대한 재전송 반환. 송신자가 보낸 메시지들과 받은 메시지들 사이의 내용적 차이를 쉽게 알 수 없을 때 가능.

  31. 1. 상호 인증(3) • 재전송 공격에 대항하기 위한 접근 방법 • 각 메시지에 대한 일련 번호 부여 • 일련 번호가 적절한 일련 번호일 경우에만 수신 • 단점 • 마지막 메시지의 일련 번호 유지 요구 ∴인증과 키 교환에 일반적으로 사용하지 않음

  32. 1. 상호 인증(4) • 일반적인 접근 방법 • 타임 스탬프(Timestamp) • A는 메시지가 현재 시간에 대하여 충분히 밀접하다고 판단하는 타임스탬프를 포함할 때만 메시지를 선명한 것으로 받아들인다. • 다양한 참가자들 사이에 동기화된 시계를 요구하기 때문에 어렵다. • 신청/응답(Challenge/Response) • A는 B로 부터의 선명한 메시지를 기대 • B에게 임시비표(신청)을 보냄 • B로 부터 수신되는 메시지(응답)가 정확한 임시비표 값을 포함 할 것을 요구

  33. 2. 관용 암호 방식(1) • KDC(Key Distribution Center)역할 • 각 통신 주체는 비밀키를 KDC와 공유한다. • KDC는 통신 상대방 사이의 연결에 대한 세션키를 만든다. • 키 전달 보호를 위해 마스터키를 이용하여 키들을 할당한다. • Needham과 Schroeder[NEED78] 프로토콜 • A KDC : IDA Ⅱ IDB ⅡN1 • KDC A : EKa[Ks Ⅱ IDB Ⅱ N1 Ⅱ EKb [Ks Ⅱ IDA]] • A B : EKb[KS ⅡIDA] • B A : EKs[N2] • A B : EKs[f(N2)] 이 프로토콜의 목적은 A와 B에서 세션키 Ks를 안전하게 배포하는 것이다.

  34. 2. 관용 암호 방식(2) • Needham - Schnoeder 방식 1. IDA || IDB || N1 KDC 2. EKA[KS || IDB || N1 || EKB[KS || IDA]] 3. EKB[KS || IDA] 4. EKS[N2] 5. EKS[f(N2)] Alice Bob • 재전송 공격에 대해 여전히 취약 Denning 방식 제안

  35. 2. 관용 암호 방식(3) • 각 단계 설명 비밀키 Ka 와 Kb는 각각 A와 KDC사이, B와 KDC사이에서 공유된다. • 1단계 • 세션키 요구 메시지를 보냄 • 전송 내용 - A와 B의 신원, 유일한 식별자 • 2단계 • 응답 메시지를 마스터키 Ka 로 암호화하여 전송 • 전송 내용 - 일회용 세션키 Ks, 1단계에서 전송 받은 메시지 - B에게 전송될 메시지를 Kb로 암호화 (EKb[KS ⅡIDA])

  36. 2. 관용 암호 방식(4) • 3단계 • 세션키를 저장하고, EKb[KS ⅡIDA]를 B에게 전송 • Kb로 암호화되었기 때문에 도청 불가능 A와 B는 세션키 KS를 공유 • 4단계 • B는 A에게 임시비표 N2 를 세션키로 암호화하여 전송 • 5단계 • A는 B에게 f(N2)를 세션키로 암호화하여 전송 목적 : 재전송 공격 방해하기 위해 BUT!! 여전히 재전송 공격에 취약하다. X는 과거의 키를 사용하여 단계 3을 단순히 재전송 함으로써 A인 체 하고 B를 속일 수 있다.

  37. 2. 관용 암호 방식(5) • Denning[DENN81, DENN82]프로토콜 - 타임 스탬프를 추가함으로써 Needham/Schroeder 프로토콜을 보완 • A KDC : IDA Ⅱ IDB • KDC A : EKa[Ks Ⅱ IDB Ⅱ TⅡ EKb [Ks Ⅱ IDA ⅡT]] • A B : EKb[KS ⅡIDA ⅡT] • B A : EKs[N1] • A B : EKs[f(N1)] • 네트워크 전체에 걸쳐서 동기화된 클럭에 대한 신뢰를 요구한다. • 지연-재전송 공격(suppress-replay attack)에 취약. • T는 A와 B에서 세션키가 시간에 적합하게 바로 만들어진 것이라는 것을 보장해주는 역할을 한다

  38. 2. 관용 암호 방식(6) • Denning은 단계 2와 3에 timestamp를 추가 • 가정 • 마스터 키 KA와 KB가 안전하다. 1. IDA || IDB KDC 2. EKA[KS || IDB || T || EKB[KS || IDA || T]] 3. EKB[KS || IDA || T] 4. EKS[N1] 5. EKS[f(N1)] Alice Bob

  39. 2. 관용 암호 방식(7) • [NEUM93a] 프로토콜 - 지연-재전송 공격에 강하다. • A B : IDA ⅡNa • B KDC : IDB Ⅱ Nb Ⅱ EKb [IDA Ⅱ Na ⅡTb]] • KDC A : EKa[IDB Ⅱ Na Ⅱ Ks ⅡTb] EKb[IDA Ⅱ Ks ⅡTb Ⅱ Nb] • A B : EKb[IDA Ⅱ Ks ⅡTb ]EKs[ Nb] • 각 단계 설명 • 1단계 • 인증교환 시작 • 전송 내용 - 임시비표 Na, 식별자 • 2단계 • B가 KDC에게 세션키 요청 • 전송 내용 - 임시비표 Nb, 식별자, 비밀키로 암호화된 블록

  40. 2. 관용 암호 방식(8) • 3단계 • 전송 내용 - B의 임시비표, B 와 KDC에 의해 공유되는 비밀키로 암호화한 블록(인증을 위해),A와 KDC에 의해 공유되는 비밀키로 암호화된 블록 • 4단계 • EKs[ Nb]은 메시지가 A로 부터 왔고 재전송이 아니라는 것을 인증한다. 프로토콜에 의해서 설립된 시간 범위 안에서 A가 B와의 새로운 세션을 희망한다면!!!

  41. 3. 공개키 암호화 방식(1) • 각각이 상대방의 현재 공개키를 가지고 있다고 가정. • [DENN81] 타임 스탬프를 사용하는 프로토콜 • A AS : IDA Ⅱ IDB • AS A : EKRas[IDAⅡ KUaⅡTⅡ EKRas[IDBⅡ KUbⅡT] • A B : EKRas[IDAⅡ KUaⅡTⅡ EKRas[IDBⅡ KUbⅡT]Ⅱ EKUb [EKRa [KsⅡT]] • AS는 인증서버로 간주된다. AS는 공개키 인증서를 제공한다. • 간결하지만 앞에서와 같이 클럭의 동기화를 요구한다.

  42. 3. 공개키 암호화 방식(2) 5. EKRAuth[IDA || KUA] || EKUB[NA || KS || IDA || IDB]] 1. IDA || IDB KDC 2. EKRAuth[IDB || KUB] 4. IDA || IDB || EKUAuth[NA] 3. KUB[NA || IDA] 6. EKUA[EKRAuth[NA || KS || IDA || IDB] || NB ] 7. EKS[NB] Alice Bob

  43. 3. 공개키 암호화 방식(3) • Woo와 Lam[WOO92a] 임시비표를 이용한 프로토콜 • A KDC : IDA Ⅱ IDB • KDC A : EKRauth[IDBⅡ KUb] • A B : EKUb [Na Ⅱ IDA ] • B KDC : IDB Ⅱ IDA ⅡEKUauth[Na ] • KDC B : EKUauth[IDAⅡKUa]ⅡEKUb[EKRauth[NaⅡKsⅡ IDB]] • B A : EKUa[ EKUauth [NaⅡKsⅡ IDB]ⅡNb] • A B : EKS [Nb] • 각 단계 설명 • 1단계 : A는 B와의 연결 의도를 알린다. • 2단계 : B의 공개키 인증서의 복사본을 반송 • 3단계 : A는 B에게 통신 요청, 임시비표를 보낸다

  44. 3. 공개키 암호화 방식(4) • 4단계 : B는 KDC에게 A의 공캐키 인증서를 요구, 세션키를 요구 • 5단계 : A의 공개키 인증서 사본, 정보[ NaⅡKsⅡ IDB ]를 반송 • 6단계 : [ NaⅡKsⅡ IDB ]은 KDC의 개인키로 암호화한 상태로 Nb와 함께 A에게 중계 • 7단계 : 세션키에 대한 A의 지식을 B에게 보증 위 프로토콜의 개선된 버전 • A의 식별자 IDa 가 단계 5와 6에서 KDC의 개인키로 암호화된 항목들의 집합에 추가된다. • IDa 의 포함은 A에 의해서 만들어진 모든 임시비표중에서만 유일한것이다.

  45. 4. 일방향 인증 (1) • 수신자는 메시지가 합법적 송신자로부터 왔다는 보장을 요구 • 관용 암호 방식 • 대표적인 예…… 전자 우편(e-mail) • 요구사항 • 우편처리 시스템이 복호키를 가지고 있지 않아도 되는 범위에서 전자우편 메시지가 암호화되어야 한다. • 수신측은 메시지가 합법적 송신자로부터 왔다는 것의 어떤 보장을 원한다.(인증)

  46. 4. 일방향 인증 (2) 1. IDA || IDB || N1 KDC 2. EKA[KS || IDB || N1 || EKB[KS || IDA]] 3. EKB[KS, IDA] || EKS(M) Bob Alice • 메시지의 의도된 수신자만이 해당 메시지를 읽을 수 있다는 것을 보증 • 메시지 재전송 공격에 취약

  47. 5. 관용 암호 방식 • 암호화된 전자우편 (개선된 KDC전략) A, B 동시에 온라인 일 수 없기 때문에 앞의 암호화된 전자우편과 같이 4번과 5번을 제외 삭제 된다. • A KDC : IDA Ⅱ IDB ⅡN1 • KDC A : EKa[Ks Ⅱ IDB Ⅱ N1 Ⅱ EKb Ⅱ [Ks Ⅱ IDA]] • A B : EKb[Ks ⅡIDA]ⅡEKs[M] 의도된 수신자만이 메시지를 읽을 수 있다는 것을 보증한다.

  48. 6. 공개키 암호화 방식 (1) • 비밀성이 주요 관심이라면 오직 B만이 복호 할 수 있다. • 인증이 주요 관심이라면 (디지털 서명 만족) A가 메시지를 보냈다는 것을 부인할 수 없다. A B : EKUB(KS) || EKS(M) A B : M || EKRA(H(M))

  49. 공개키 암호화 방식 (2) • 메시지와 서명 둘 다 만족 (수신자의 공개키로 암호화) • 디지털 인증서 (시기적으로 적절하다는확신이 요구 됨) A B : EKUB(M || EKRA(H(M))) A B : M || EKRA[H(M)] || EKRAS(T || IDA || KUA)

  50. 디지털 서명의 표준

More Related