810 likes | 1.32k Views
1. 정보보호 개론 (2). 목 차. 1. 해쉬 함수 2. 메시지 인증 3. 전자서명. 1.1 해쉬함수 모델. 1.2 해쉬함수 종류. 전용 해쉬 함수 MD4, MD5, SHA, SHA-1, RIPEMD-128/160, HAS-160 블록 암호 기반 해쉬 함수 -DES 기반 Single length MDCs ※ M atyas- M eyer- O seas, D avies- M eyer, M iyaguchi- P reneel MDC-2 MDC-4 모듈러 연산에 기반 해쉬 함수
E N D
목 차 1. 해쉬 함수 2. 메시지 인증 3. 전자서명 2
1.2 해쉬함수 종류 • 전용 해쉬 함수 • MD4, MD5, SHA, SHA-1, RIPEMD-128/160, HAS-160 • 블록 암호 기반 해쉬 함수-DES 기반 • Single length MDCs ※ Matyas-Meyer-Oseas, Davies-Meyer, Miyaguchi-Preneel • MDC-2 • MDC-4 • 모듈러 연산에 기반 해쉬 함수 • MASH-1, MASH-2 4
1.3 전용 해쉬 알고리즘 • MD5 • SHA-1 • RIPEMD-128/160 • HAS-160 5
MD5 알고리즘 6
MD5 알고리즘 (계속) • HMD5 처리 과정 CVq 128 Yq A B C D 512 fF , ABCD, Yq, T [1-16] 16회 A B C D fG , ABCD, Yq, T [17-32] 16회 A B C D fH , ABCD, Yq, T [33-48] 16회 A B C D fI , ABCD, Yq, T [49-64] 16회 mod232 CVq+1 7
MD5 알고리즘 (계속) • MD5 초기값 A = 0x 0 1 2 3 4 5 6 7 B = 0x 8 9 A B C D E F C = 0x F E D C B A 9 8 D = 0x 7 6 5 4 3 2 1 0 8
MD5 알고리즘 (계속) • MD5의 HMD5상수 T [i]의 값 • T [i] = 232 * ABS (sin(i)) 정수부분; i는 라디안 9
g CLSS CLSS MD5 알고리즘 (계속) • MD5의 HMD5 의 기본 동작 A, B, C, D : 버퍼의 4 단어 g : 기약 함수 F, G, H, I 중의 하나 CLSS=<<<s :32 비트 순환 좌측 쉬프트(로테이션) X[k] : 메시지의 q번째 512비트 블록 중에서 k번째 단어(32비트) T[i] : 행렬 T에서 i번째 단어(32비트) : 법 232의 덧셈 X[K] T [i] 10
SHA-1 알고리즘 • Secure Hash Algorithm • NIST(National Institute of Standards and Technology)에서 개발 • 1993년에 표준으로 발표 (FIPS 180) • 1995년에 개선된 버전 발표 (FIPS 180-1) SHA-1 • 해쉬길이: 160 비트(5개의 32 비트 워드) • 입력: 264비트 보다 작은 임의의 크기의 입력 • 512비트 단위로 적용 • 전체 입력의 크기가 512 비트의 배수가 아니면 padding을 한다. • 마지막 64 비트에는 실제 크기를 기록한다. 11
SHA-1 알고리즘 (계속) • SHA • 서명문 형식 • 패딩 패턴 : 1000 • 64비트 : 서명문 길이 표시 상위 32비트와 하위 32비트 교환 L512비트=N 32비트 서명문 M 100 0 64 서명문 M 100 0 64 448 mod 512 12
SHA-1 알고리즘 (계속) • 512 비트 입력은 80개의 32비트 블록으로 확장 • Wt= Mt, t = 0,…,15 • Wt= (Wt-3 . Wt-8 . Wt-14 . Wt-16) <<< 1, t = 16,…,79 • <<<: circular left shift • 4 라운드 • 라운드 당 20 단계 • 5 개의 32 비트 초기 값을 사용 • A = 0x67452301 • B = 0xefcdab89 • C = 0x98badcfe • D = 0x10325476 • E = 0xc3d2e1f0 13
RIPEMD–160 알고리즘 • RIPEMD–160 • 서명문 형식 • 패딩 패턴 : 1000 • 64비트 : 서명문 길이 표시 상위 32비트와 하위 32비트 교환 L512비트=N 32비트 서명문 M 100 0 64 서명문 M 100 0 64 448 mod 512 16
RIPEMD–160 알고리즘 (계속) • RIPEMD–160해쉬 512비트 512비트 512비트 512비트 Y0Y1 Yq YL–1 512 512 512 512 160 160 160 160 160 HRIP-160 HRIP-160 HRIP-160 HRIP-160 ABCDE CV0= IV CV1 CVq CVL–1 CVL 17
RIPEMD–160 알고리즘 (계속) • RIPEMD 초기값 A = 0 1 2 3 4 5 6 7 B = 8 9 A B C D E F C = F E D C B A 9 8 D = 7 6 5 4 3 2 1 0 E = 0 F E 1 D 2 C 3 18
CVq Yq Yq f1, K1, Xi 16 steps f5, K´1, Xi 16 steps A B C D E B´ B´ B´ C´ C´ C´ D´ D´ D´ E´ E´ E´ A´ A´ A´ f2, K2, X(i) 16 steps f4, K´2, X(i) 16 steps A B C D E f3, K´3, X 2(i) 16 steps f3, K3, X 2 (i) 16 steps A B C D E f2, K´4, X 3(i) 16 steps f4, K4, X 3 (i) 16 steps A B C D E A´ B´ C´ D´ E´ f1, K´4, X 4(i) 16 steps f5, K5, X 4 (i) 16 steps : mod 232 CVq+1 CVq+1 RIPEMD–160 알고리즘 (계속) 19
RIPEMD–160 알고리즘 (계속) • RIPEMD의 HRIP–160상수 j = 0 ~ 15 K1= 00000000 K1´= 50A28BE6 j = 16 ~ 31 K2= 5A827999 K2´= 5C4DD124 j = 32 ~ 47 K3= 6ED9EBA1 K3´= 6D703EF3 j = 48 ~ 63 K4= 8F1BBCDC K4´= 7A6D76E9 j = 64 ~ 79 K5= A953FD4E K5´= 00000000 20
RIPEMD–160 알고리즘 (계속) • RIPEMD의 논리함수 21
HRIP–160기본 동작 A, B, C, D, E = 32비트 버퍼 A', B', C', D', E' = 32비트 버퍼 j = 스텝 수 (0≤j≤79) rols(j) = rotation(회전) Xj = 512비트 입력 값에서 선택된 32비트 Kj = 상수 RIPEMD–160 알고리즘 (계속) 22
HAS-160 알고리즘 • HAS-160 • 한국 디지탈 서명 표준인 KCDSA에서 사용할 목적으로 개발 • 160비트의 해쉬 값 • 512비트 단위로 입력 값 • 패딩 규칙은 SHA-1과 동일하다. 23
HAS-160 알고리즘 (계속) 초 기 화 값 각 라운드 상수 값 24
HAS-160 알고리즘 (계속) • A, B, C, D, E = 32비트 버퍼 • t = 라운드 수 (0≤t≤79) • Ft = 라운드 함수 • CLS(1)S/CLS(2)s = 32비트에서 s비트 순환 좌측 쉬프트 • X[t] =512비트 입력 값에서 선택된 32비트, • Kt : 상수 값 기 본 동 작 25
해쉬 함수 요약 • 전용 해쉬 함수 요약 26
Destination Source M M C | | Compare K K CK(M) C 2. 메시지 인증 • 메시지 인증 일반 모델 만일 수신된 MAC과 계산된 MAC이 일치한다면 • 수신자는 메시지가 변경되지 않았다고 확신할 수 있음 • 수신자는 합법적 송신자로부터 메시지가 왔다고 확신함 K 27
2. 메시지 인증 2.1 메시지 암호화 2.2 메시지 인증 코드 2.3 해쉬 함수 28
2.1 메시지 암호화 1) 관용 암호 방식의 이용 • 기밀성 제공 • A와 B만이 K를 공유하고 암/복호화 가능 • 단순한 인증 제공 • K를 아는 A만이 해당 암호문 작성 가능 • 서명 제공 불가 • 수신자가 메시지 위조 가능; 송신자가 메시지 부인 그림 11.1(b) 29
M M E D EKU (M) KR KU b b b 2.1 메시지 암호화 (계속) 2) 단순 공개키 암호 방식의 이용 • 기밀성 제공: • 메시지를 복호화할 수 있는 사용자는 B 뿐임 • 인증은 제공하지 못함: • 아무나 B의 공개키를 이용할 수 있음 그림 11.1(b) 30
M M E D EKR (M) KU KR a a a 그림 11.1(c) 2.1 메시지 암호화 (계속) 3) 단순 공개키 암호 방식의 이용(2) • 인증과 디지털 서명은 제공하나 기밀성은 제공하지 않음 • 기밀성 제공 • 누구나 A의 공개키를 가질 수 있고 복호화가 가능 • 인증과 디지털 서명 제공 • A 만이 메시지를 생성할 수 있음 • B도 암호문의 구성은 할 수 없음 31
EKR (M) EKR (M) KR KU KU KR b b a a a a M M E D D E EKU [EKR (M)] a b 2.1 메시지 암호화 (계속) 4) 공개키 암호방식의 2중 적용 • 인증과 디지털 서명 제공 • KUa 로 복호화 될 수 있는 암호문은 KRa소유자만 작성 가능 • 기밀성 제공 • KUb로 암호화된 이미지는 KRb소유자만 복호화 가능 그림 11.1(d) 32
2.2 메시지 인증 코드 • 암호학적 점검 값인 MAC을메시지에 추가하는 방식 • 암호학적 점검값 • 비밀키를 사용하여 생성된 작은 크기의 데이터 블록 • 메시지와 키의 함수 : MAC = Ck(M) • 메시지+MAC을전송하고 수신측에서는 계산한 MAC 과수신한 MAC을비교하여 인증 • 수신자는 메시지 변경이 없음을 확신함 • 수신자는 합법적인 송신자로부터 메시지가 왔음을 확신함 • 메시지 내에 순서번호가 있는 경우 수신자는 합법적 순서를 확신함 • 송수신자 같은 키를 사용하므로 디지털 서명 기능은 제공하지 못함 33
Destination Source M M C | | Compare K K CK(M) C 2.2 메시지 인증 코드 (계속) 1) 암호학적 점검값 사용(1) • 메시지 내용 인증 • K를 모르는 공격자가 메시지와 대응되는 점검값 구성 불가 • 출처 인증 • K를 아는 A만이 올바른 점검값 작성하여 전송 가능 34
Source Destination M M C | | E D Compare K1 K2 K2 K1 EK [M||CK (M)] 2 1 CK (M) C 1 2.2 메시지 인증 코드 (계속) 2) 암호학적 점검값 사용(2) • 인증 제공 : A와 B만이 K1을 공유 • 기밀성 제공 : A와 B만이 K2를 공유 평문+인증: 평문 즉시 사용 가능, 인증은 필요시 수행 35
EK [M] 2 M E | | D M C K2 K2 K1 Compare K1 CK (EK [M]) C 1 2 2.2 메시지 인증 코드 (계속) 3) 암호학적 점검값 사용(3) • 인증 제공 : A와 B만이 K1을 공유 • 기밀성 제공 : A와 B만이 K2를 공유 암호문+인증:복호화후 평문 사용가능,인증을 위해서는 암호문 필요 36
Destination Source M M H | | E D Compare K K EK[M||H(M)] H(M) H (a) 2.3 해쉬 함수 1) 해쉬 함수 사용 (1) • 인증 제공 • H(M)을 관용키 암호화 방식으로 보호함 • 기밀성 제공 • A와 B만이 K를 공유 37
H M M | | K Compare K D EK[H(M)] H E 2.3 해쉬 함수 (계속) 2) 해쉬 함수 사용(2) • 인증 제공 • H(M)만을 관용키 방식으로 암호학적 보호 • 메시지 내용 무결성 보장 • 기밀성을 요구하지 않는 응용에서 처리부하 경감 38
Destination Source H M M | | KU Compare a KR a D EKR [H(M)] a H E 2.3 해쉬 함수 (계속) 3) 해쉬 함수 사용(3) • 인증 제공 • H(M)을 공개키 암호 방식으로 보호 • 디지털 서명 • A만이 EKRa[H(M)]을 생성 가능 39
M M H | | E D Compare KUa KRa K K EK[M||EKR [H(M)]] a EKR H(M) H E D a 2.3 해쉬 함수 (계속) 4) 해쉬 함수 사용(4) • 인증(디지털 서명) 제공 • 공개키 방식 사용, EKRa[H(M)] • 기밀성 제공 • 메시지도 암호화, A와 B만이 K를 공유 40
M M | | s | | H Compare H(M||S) | | s H 2.3 해쉬 함수 (계속) 5) 해쉬 함수 + 비밀값 사용(1) • S : A 와 B 공통의 비밀값 • 인증 제공: A와 B만이 S를 공유 • 암호화 회피 이유 • 암호화 소프트웨어는 느리고, 하드웨어는 비용 증대 • 아주 작은 데이터 블록에도 동일한 암호화 절차 필요 41
M M | | E D | | s H Compare K K EK[M||H(M||S)] | | H s H(M||S) 2.3 해쉬 함수 (계속) 6) 해쉬 함수 + 비밀값 사용(2) • 인증 제공 • A와 B만이 S를 공유 • 기밀성 제공 • A와 B만이 암/복호키 K를 공유 42
구 분 종이문서 전자문서 기록매체 종이 전자기록 매체 전달방법 우편, 인편 네트워크를 통한 전송 위•변조가 비교적 어려움 종이의 물리적 특성으로 위•변조 식별 가능 위•변조가 용이함 전자기록매체의 물리적 특성으로 위•변조 식별불가능 안전•신뢰성 출처 증명 수기서명, 날인 전자서명 3. 전자 서명 전자서명(디지털서명)의 정의 • 서명자를 확인하고 서명자가 당해 전자문서에 서명하였음을 나타내는데 이용하기 위하여 당해 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보 (전자서명법 제 2조) 전자문서의 특성 43
3. 전자 서명 (계속) • 전자 서명의 요구 조건 • 서명은 메시지에 의존하는 비트 형태이어야 함 • 위조와 부인 방지 위해, 송신자의 유일한 정보 비트를 이용해야 함 • 서명문을 만들기가 쉬워야 함 • 서명문을 인식, 확인 하기가 쉬워야 함 • 서명문을 위조하는 것이 계산적으로 실행 불가능 • 기억장소에 서명문의 복사본을 유지하는 것이 실용적이어야 함 44
3.1 전자 서명 접근방식 (계속) • RSA 접근 방식 • M : 메시지 • H : 해쉬 함수 • E : 공개키 암호 함수 • EKRa[H(M)] : 메시지 M의 해쉬값을 A의 개인키로 암호화 • DSS 접근 방식 • M : 메시지 • H : 해쉬 함수 • s, r : 서명 • k : 난수 • KUG : 전역적 공개키 • Sig : 서명 함수, Ver : 확인 함수 46
3.2 전자 서명 알고리즘 1) 서명 준비 과정 • 사용자 집단에 공통적이며, 공개되는 3개의 매개 변수 • 160 비트 길이의 소수 q • 512~1024 비트 사이의 소수 p ⇒ (p-1)이 q로 나누어짐 • h (p-1)/q mod p 형태의 g(1 < h < (p - 1)) • 각 사용자는 개인키를 선택하고 공개키를 생성 • 랜덤 개인키 x 선택 (1 ≤ x ≤ q-1) • 개인키 x 로부터 공개키 y 계산 • y = gx mod p 47
3.2 전자 서명 알고리즘 (계속) 1) 서명 생성 과정 • 메시지별로 고유한 정수 k를 랜덤하게 생성(0 < k < q) • 서명 • r = (gk mod p) mod q : 메시지의 함수가 아님 • s = [k-1 (H(M)+xr)] mod q • Signature = (r, s) 2) 서명 검증 과정 • 수신한 r’과 s’으로부터 계산한 v를 r’과 비교하여 검증 • w = s-1 mod q • u1 =[(H(M)w)] mod q • u2 = rw mod q • v = [(gu1 yu2 ) mod p] mod q, y : 사용자 공개키 48
3.3 특수 전자서명 • 전자서명일반 전자서명+특수 전자서명 • 특수 전자서명: 전자서명의 목적과 기능을 고려한 서명 • 부인 방지 서명 • 의뢰 부인 방지 서명 • 수신자 지정 서명 • 은닉 서명 • 대리 서명 • 위임 서명 • 다중 서명 50