SlideShare a Scribd company logo
1 of 58
1
7장 암호기술의 이해
2
목 차
7.1 암호시스템 및 분류체계
7.2 암호알고리즘
7.2.1 대칭키 암호 시스템
7.2.2 공개키 암호 시스템
7.2.3 해시 알고리즘
7.3 암호프로토콜
7.3.1 전자서명 프로토콜
7.3.2 은닉서명 프로토콜
7.3.3 전자봉투와 이중서명
7.4 키관리
7.4.1 키관리
7.4.2 키복구/위탁
3
7.1 암호시스템 및 분류체계(1)
• 암호학의 개념
- 평문을 해독 불가능한 암호문으로 변형하거나
암호화된 통신문을 복원 가능한 형태로 변환하기 위한
원리, 수단, 방법 등을 취급하는 기술 또는 과학
평
문
평
문
송신자 수신자
4
7.1 암호시스템 및 분류체계(2)
• 암호학의 역사
- Egypt, Greeks, Rome : 상형문자, Caesar 암호
전쟁과 관련하여 중요한 정보를 적으로부터
보호하고 기밀을 유지시키는 효과적인 방법
- 중세 ~ 근대 (19세기 초반): 고전적 암호시스템
(Classical Cipher)
- 현 대: 정보이론 (Information Theory), DES, RSA,
DSA etc
5
7.1 암호시스템 및 분류체계(3)
• 암호학의 응용분야
- 개방형 통신망 시스템에서의 데이터보호와 개인
프라이버시 유지.
- 대표적 응용분야 : 사용자 인증 (authentication),
안전한 메일교환 , 전자화페 , 전자지불 등
1. E-mail: PGP 및 S/MIME 등을 사용함 으로서 안전한
메일전송 가능
2. 전자상거래: 쇼핑몰과 사용자 사이의 인증문제,
전자지불
6
7.1 암호시스템 및 분류체계(3)
• 광의의 암호학(cryptology)
- 평문(plain text)을 보호하기위한 암호화 알고리즘을
연구하는 암호학(cryptography)
- 암호문(cipher text)을 해독하기 위해서
암호화과정을 연구하는 해독학(crypto analysis)
• 암호시스템
- 평문을 암호문으로 만드는 암호화과정(encryption,
encoding)
- 암호문을 평문으로 변화시키는 복호화과정
(decryption, decoding)
- 암호화와 복호화에서 사용되는 암호화키
(cryptographic key)관리 등 정보보호를 위한
일련의 프로세스
7
7.1 암호시스템 및 분류체계(4)
• 암호시스템의 영역
1. 평문을 암호문으로 변환하기 위한 연산자의 유형
- 두 가지 일반적원리, 대치(substitution)은 각 원소
(비트, 문자)를 다른 원소에 사상, 전치(transposition)는
평문의 원소를 재배열
- 정보손실 없어야, 역전될 수 있어야
- 다단계의 치환과 전위
2. 사용된 키의 수
- 한 개의 키 사용: 송수신자 양측이 같은 키를 사용,
대칭(symmetric), 단일키(single key), 비밀키
(secret-key), 관용암호방식
8
7.1 암호시스템 및 분류체계(5)
- 두개의 키 사용: 송수신자 양측이 다른 키를 사용,
비대칭(asymmetric), 이중키(two-key), 공개키
(public-key) 암호방식
3. 평문처리방법
- 블록 암호화(block cipher): 입력을 한번에 하나의
원소 블록 씩 처리
- 스트림 암호화: 입력을 연속적으로 처리하여
입력이 주어지는 데로 출력을 생성
9
7.1 암호시스템 및 분류체계(6)
• 암호화/복호화 과정
E(M)=C, D(C)=M
Ke(M)=C, Kd(C)=M
10
7.1 암호시스템 및 분류체계(7)
• 암호화시스템의 충족요건
- 암호화 키에 의해 암호화 및 복호화
- 사용이 용이
- 암호화 알고리즘보다는 암호키에 의한 보안
• 암호기술의 기능
- 기밀성(confidentiality): 비인가자가 정보를 입수한 경우에
정보의 내용을 알 수 없도록
- 무결성(integrity); 데이터의 전송도중 또는 DB에 저장되어
있는 동안 위조, 변조의 방지
- 인증(authentication): 송수신자가 상대방의 신원을 확인,
식별
- 부인봉쇄(non-repudiation): 송수신자가 전송된
송수신사실을 부인하는 것을 방지
11
7.1 암호시스템 및 분류체계(8)
• 암호기술의 기능
12
7.1 암호시스템 및 분류체계(9)
• 암호기술의 분류
1. 암호 알고리즘
- 순수 암호학 및 정수론을 기초로 정보처리기술 이용,
데이터의 내용을 암호화하거나 복호화 하는 방법
- 비밀키 암호, 공개키 암호, 해시함수
2. 암호 프로토콜
- 특정정보보호서비스를 얻기 위함
- 인증 프로토콜, 키교환 프로토콜, 디지털서명 프로토콜
- 전자상거래 적용 암호 프로토콜: 전자화폐, 전자결제,
전자공증
3. 키관리의 중요
- 공개키의 생성, 분배, 복구, 폐기등 키의 생명주기 관리
- 공개키인증, 키분배, 키복구(위탁)
13
7.1 암호시스템 및 분류체계(10)
암호 알고리즘
• 대칭키 암호 알고리즘
- 블록 암호 알고리즘
- 스트림 암호 알고리즘
• 공개키 암호 알고리즘
암 호 프 로 토 콜
단 순 복 잡
• 신분확인,전자서명,
인증
• 특수서명
• 영지식 프로토콜
• 전자우편
• 키위탁
• 전자결재
• 전자화폐
• 전자지불
• 전자선거
키관리(Key Management System)
• 암호기술의 분류
14
7.2 암호 알고리즘
7.2.1 대칭키 암호 시스템(1)
• 비밀키, 단일키 알고리즘이라고도 하며 송수신자가
동일한 키에 의하여 암호화 및 복호화 과정을 수행.
• 변환하는 방법에 따라 블록 암호 알고리즘, 스트림
암호 알고리즘으로 구분
• 기존의 정보기술과 상호운용이 쉬움
• 암호화 키의 크기가 작아 효율적
• 내부구조가 간단한 치환과 순열의 조합,
암호알고리즘개발이 쉬움
• 단일키를 공유해야 하므로 여러 사람과의 정보교환
시 키 유지, 관리가 어려움
15
7.2.1 대칭키 암호 시스템(2)
• 블록 암호 알고리즘
- 고정된 크기의 입력 블록을 고정돤 크기의 출력
블록으로 변경
- 미국의 DES(Data Encryption Standard),
Triple-DES, Skipjack, 유럽의 IDEA(International
Data Encryption Algorithm), 일본의 FEAL(Fast
Data Encipher Algorithm), MISTY
16
7.2.1 대칭키 암호 시스템(3)
1. DES
- IBM 에서 개발한 Lucifer시스템을 발전
- 1976년 미국연방표준으로 승인
- 1977년 FIPS PUB46에 “Data Encryption Standard”
로 공표
- 64비트 평문, 64비트 암호문, 64비트의 키
- 64비트의 키(외부키)중 56비트는 실제의 키(내부키)
나머지 8비트는 검사용 비트
- 128비트의 키로 변형된 알고리즘도
- 키는 0~127사이의 8개의 십진수로 구성, random
number generator가 골라내는 숫자
17
7.2.1 대칭키 암호 시스템(4)
- 64비트를 입력으로 받기 위해 블록화(blocking)과정
필요, 즉 평문을 8문자로 나눔
- 16라운드의 반복적인 암호화 과정
- 각 라운드 마다 표에 의해 전치(permutation)및 대치
(substitution)를 거친 평문과 56비트의 내부키 중
48비트가 섞여 암호문
- 확장(expansion)과 압축(compression)을 혼합 사용
- 키와 평문을 혼합하는 연산은 논리합
(exclusive-OR)
- 복호화는 사용되는 키가 역순으로 작용
- 미국 연방정부로부터 보증을 얻음
18
7.2.1 대칭키 암호 시스템(5)
plaintext
i
p
key
56bit 중
48bit 선택
L I -1 R I -1
Expansion
Permutation
S-Box Sbstitution
P-Box Permutation
L I R I
48bit
32bit 6input -> 4output
32bit
Shift Shift
Compression Permutation
key
IP
-1 ciphertext
16
번
반복
16
번
라운드
중
하나
• 대칭키 암호시스템의 개념도
f함수
데이터암호화
키생성
19
7.2.1 대칭키 암호 시스템(6)
입 력
K1
K2
:
:
초기 전치
L0
L1
L2
R0
R1
R2
:
:
f
f
R16 L16
f
역초기
전치
출 력
K16
Li
= Ri-1
Ri
= Li-1
XOR f (Ri-1
, Ki
)
- DES의 기본 구조 (데이타 암호화부)
20
7.2.1 대칭키 암호 시스템(7)
- DES기본구조(f함수의 구성도)
R(32bit)
확장전치 (비트 선택표 )
48bit K (48bit)
S1 S2 S8
S7
. . . .
P-box 전치
32 bit
S-box table
대치
21
7.2.1 대칭키 암호 시스템(8)
- DES기본구조(키 생성부)(7-6)
키
선택
전치1
c0
좌측 시프트
c1
c2
좌측
시프트
c15
좌측
시프트
d0
좌측 시프트
d1
d2
좌측
시프트
d15
좌측
시프트
선택전
치2
선택전
치2
선택전
치2
K1
K2
K16
:
:
:
:
:
:
22
7.2.1 대칭키 암호 시스템(9)
2.Skipjack
- 미국의 NSA(National Security, Agency)에 의해
1985년에서 1990년 사이에 개발
- 1993년에 대칭키 알고리즘으로 발표
- 향후 30~40년은 안전하다고 주장
- 일종의 스마트 카드인 클리퍼칩(FORTEZZA
PCMCIA카드)에 적용이 용이
- 64비트의 블록사용, 80비트의 키, 32라운드의
암호방식
23
7.2.1 대칭키 암호 시스템(10)
3. IDEA(International Data Encryption Algorithm)
- DES를 대체하기 위해 스위스 연방 기술 기관에서
개발
- 128 비트 키 이용
- 64 비트 블록을 암호화
- 8 라운드
- DES 보다 2배 정도 빠름
- brute-force attack에 보다 효율적으로 대응
24
7.2.1 대칭키 암호 시스템(11)
• 스트림 암호 알고리즘
- 이진화 된 평문과 키이진수열을 비트단위 이진연산
(exclusive-OR)으로 결합하여 암호문생성
- 키 스트림 이라 불리는 키이진수열의 특성과
발생방법이 핵심
- 키스트림의 주기에 따라 주기적암호시스템,
비주기적 암호시스템
- 키스트림의 평문 과의 관계에 따라 동기식
(synchronous stream cryptosystem), 비동기식
(self-synchronous stream cryptosystem)
25
7.2.1 대칭키 암호 시스템(12)
- 동기식(synchronous stream cryptosystem)은 키
스트림이 평문에 관계없이 생성되어 키스트림과
암호문의 독립성으로 정보노출의 위험이 적고 대부분
주기적
- 비동기식(self-synchronous stream
cryptosystem)은 키스트림이 평문 또는 암호문과
관련되어 해독되기 쉽고 비주기적 암호시스템인
암호문 귀환 자동키 시스템(Feedback Autokey)이
대표적. 전송 중 암호문의 비트가 손실, 변경되더라도
오류의 전파가 유효
26
7.2.1 대칭키 암호 시스템(13)
키 동일한 키
키스트림 생성자
암호문
평문 평문
키스트림 생성자
- 스트림 암호시스템의 개념도(7-8)
27
7.2.2 공개키 암호 시스템(1)
• 공개키 암호의 단순 모델
A가 B에게 암호화 메시지를 보내는 경우
암호
알고리즘
복호 알고리즘
사용자A 사용자 B
평문 암호문 평문
B의 공개키 B의 개인키
1. 공개키와 개인키 생성
2. 공개키는 공개하고 개인키는 개인이 소유
3. A는 B의 공개키로 메시지를 암호화
4. B는 자신의 개인키로 메시지 복호화
(B의 개인키를 모르는 제 3자는 메시지 복호 불가능)
28
7.2.2 공개키 암호 시스템(2)
• 공개키 암호 방식
- 두 개의 다른 키 사용
- 공개키 : 모든 사람이 접근 가능한 키 (공개)
- 개인키 : 각 사용자 자신만이 소유 (비밀)
(관용 암호에 사용되는 키는 비밀키라고 함)
• 공개키 알고리즘의 특징
- 암호 알고리즘과 공개키를 알아도 개인키 계산 불가능
- 두 개의 키 중 하나는 암호에 다른 하나는 복호에 사용
• 종류
- RSA, ElGamal, ECC등
29
7.2.2 공개키 암호 시스템(3)
• RSA
- 1978년, MIT의 Rivest, Shamir, Adleman
- 소인수 분해의 어려움에 근거
- 시스템 구성
- 공개키 : n(=p*q), e
- 비밀키 : p, q, d
- 암호화 : C = E(M) = Me
(mod n)
- 복호화 : M = D(E(M)) = (Me
)d
(mod n) = M
- Encryption Speed: 약 DES보다 100배(s/w) ~
1000배(h/w) 정도 느림
30
7.2.2 공개키 암호 시스템(4)
• RSA 알고리즘 정리
• 키 생성
• 임의의 p, q 선택 ( p, q는 소수 )
• n = p × q 계산
• 오일러 파이 함수 φ(n) 계산 : 1부터 n-1까지의 정수
중에서 n과 서로 소의 관계에 있는 정수들의 개수
• n이 소수일때 φ(n) = n-1
• n이 소수 p,q의 곱일때 φ(n) = (p-1)(q-1)
• 정수 d 선택 ( gcd(φ(n),d) =1, 1<d< φ(n) ) : 즉
파이함수값보다 작으며 서로 소 관계 (최대공약수가 1)를
갖는 임의의 정수 d를 선택
• e 계산 ( e = d-1
mod φ(n) )
• 공개키 ( KU = {e, n} )
• 개인키 ( KR = {d, n} )
• 암호화 및 복호화
• C = Me
( mod n )
• M = Cd
( mod n )
31
7.2.2 공개키 암호 시스템(5)
• RSA 알고리즘 사용 예
• 공개키와 개인키 생성
1. 두 소수 p = 7, q = 17 을 선택
2. n = p*q = 7 × 17 = 119 계산
3. φ(n) = (p-1)(q-1) = 96 계산
4. φ(n) = 96과 서로소이고 φ(n)보다 작은 e 선택 ( e = 5 )
5. d*e = 1 mod 96이고 d < 96 인 d를 결정 (d = 77)
⇒ 공개키 KU = {5, 119}, 개인키 KR = {77, 119}
32
7.2.2 공개키 암호 시스템(6)
• RSA 알고리즘 사용 예 (계속)
• 암호화와 복호화
: 평문 메시지 M = 19 일 경우
• 암호문 : 195
= 66 mod 119 ⇒ 66
• 복호문 : 6677
= 19 mod 119 ⇒ 19
평문
19
2476099 20807
195
= =
119 나머지 : 66
1.27…×10140
1.06 …×10138
6677
= =
119 나머지 : 19
평문
19
암호문
66
암호화 복호화
KU = 5, 119 KR = 77, 119
33
대칭키 암호 공개키 암호
암호/복호에 동일한 키와 암호/복호에 각각 서로 다른 키 와
동일한 알고리즘 사용 동일한 알고리즘 사용
수신자와 송신자는 키를 수신자와 송신자는 연관된 키쌍 중
교환해야 함 하나를 알아야 함
공유한 키(비밀키)는 비밀로 유지 키 쌍중 하나(개인키)를 비밀로 유지
키 분배의 어려움 공개키를 공개
속도가 빠름 속도가 느림
대칭키 암호 Vs 공개키 암호(7-9)
7.2.2 공개키 암호 시스템(7)
34
7.2.3. 해시 알고리즘(1)
• Hash Function
- Compression function, Message digest
- 디지털 서명, 데이터 무결성 검증에 이용
• 해시 알고리즘
1. 임의의 크기의 입력 M에 적용 가능할 것
2. 일정한 크기 H=h(M)을 출력할 것
3. h와 M이 주어졌을 때 H=h(M)이 계산하기 쉬울 것
4. H=h(M)이 주어졌을 때 M을 구하는 역 계산이
계산상 불가능할 것
Hash function
임의의 비트열 고정 비트열
35
7.2.3. 해시 알고리즘(2)
• 메시지 다이제스트
- 단 방향 해시 함수를 이용하여 주어진 정보를
일정한 길이 내의 아주 큰 숫자 (해시 값)로 변환
- 해시 값으로부터 최초의 정보 복원 불가능
- 정보의 변경여부를 확인하는데 사용
Sender (원본 + 해시 값) vs. Receiver (원본+해시
값+자체 해시 값)
- 해시 값의 암호화 필요
중간에서의 해시 값 변조방지
36
7.2.3. 해시 알고리즘(3)
• 해시 함수의 사용
- 메시지 무결성 확인 모델
- 서명인증 모델
37
7.2.3. 해시 알고리즘(4)
• SHA(Secure Hash Algorithm)
- NIST와 NSA가 설계
- 160-bit의 해시코드 출력, MD4에 기반
- 강도와 특성면에서 MD5와 유사
- Security: MD5보다 긴 해시 코드
MD5 -- 2128
, SHA -- 2160
- Speed: 32비트 구조로 수행
더 많은 단계로 인해 MD5보다 약 25% 정도의 속도
저하
38
7.2.3. 해시 알고리즘(5)
• MD2
• 128-bit one-way hash function, Ron Rivest
• PEM 프로토콜에서 사용
• 다른 hash function들 보다 수행 속도 느림
• MD4
• 1990년, Ron Rivest
• 128-bit one-way hash function
• 32-bit 기반 구조를 가지는 빠른 알고리즘으로 구성
• MD5
• MD4를 개선
• 입력: 512-bit blocks( = 16개의 32-bit sub-blocks)
• 출력:128-bit hash value
• 4개의 round, 각 라운드 당 16번의 서로 다른 연산 수행
39
7.3 암호 프로토콜
• 정보화사회에서 계약당사자간에 상대방의
신분을 확인(개인식별문제), 계약문서의
내용을 확인 하는 것(인증문제), 인감도장을
전자적으로 실현하는 것(전자서명)등을
해결해주는 것
• 기존의 통신 프로토콜에 정보보호이론을
부가하여 고도의 정보처리 및 통신을 함
• 영지식 상호 증명기술: 대화형 증명. 지식을
누출하지 않고 상호 증명하는 방법.
암호프로토콜의 안전성에 관한 모델
• 전자투표
40
7.3.1 전자서명 프로토콜(1)
• 개인의 고유성을 주장하고 인정 받기 위해 전자적
문서에 서명
• 전자문서 교환 같은 상업용 문서에 필요한 서명이나
군사분야에서 컴퓨터 통신망을 통한 작전 명령이자
지휘의 서명에 이용되는 전자서명은 중요성이 확대
• 1976년 Diffe와 Hellman에 의해 처음제시
• 공개키를 사용하는 서명방식과 제3자를 통해 서명을
생성 및 검증하는 방식
• 공개키를 사용하는 방식은 서명의 검증과정에서
메시지가 복원되는 메시지 복원형 전자서명과
메시지를 해시한 결과와 전자서명 맟 공개키를
이용하여 계산된 값을 비교하는 부가형 전자서명으로
나뉨
41
7.3.1 전자서명 프로토콜(2)
• 특성
1. 위조불가(un forgeable): 서명은 서명자만이
생성할 수 있어야
2. 서명자인증(authentic): 서명은 서명자의 의도에
따라 서명 된 것임을 확인
3. 부인방지(non-reputation): 서명자가 서명한
사실을 부인할 수 없어야
4. 변경불가(un alterable):서명한 문서의 내용을
변경할 수 없어야
5. 재사용불가(not reusable): 하나의 문서의 서명을
다른 문서의 서명으로 사용할 수 없음
42
7.3.1 전자서명 프로토콜(3)
• 메시지 복원형 전자서명(digital signature
scheme giving message recovery)
- 기존의 암호 프로토콜 이용
- 메시지를 일정한 크기의 블록으로 나누어 각각의
블록에 대해서 서명을 해야 하므로 서명의 생성이나
검증과정에서 많은 시간이 소요
- 검증을 위해 redundancy(여분, 용장)를 사용하기
때문에 메시지의 길이보다 서명의 길이가 두 배 이상
늘어나는 비효율성
43
7.3.1 전자서명 프로토콜(4)
메시지 복원형 전자서명
44
7.3.1 전자서명 프로토콜(5)
• 부가형 전자서명(digital signature with
appendix)
- 메시지를 해시 알고리즘으로 압축하고
해시알고리즘의 결과와 서명자의 비밀키를 이용하여
전자서명을 생성해서 메시지에 덧붙임
- 서명의 검증은 수신된 메시지를 해시한 결과와
전자서명 및 공개키를 이용하여 계산된 값을 비교
- 메시지이외에 서명을 부가하므로 전송량이 조금
늘어남
- 단 한번의 서명생성과정필요
- 메시지 복원형보다 장점이 더 많아 선호
45
7.3.1 전자서명 프로토콜(6)
• 부가형전자서명
46
7.3.2 은닉서명 프로토콜
• 전자현금시스템에서 전자은행 또는 전자지불회사가
사용자의 현금에 대한 정보(일련번호)를 취득하게
됨이 문제
• 디지 캐시사의 David Chaum이 고안한
전자서명기법- blind signature
• 사용자가 현금의 일련번호를 은행에 제공할 때
불특정 수로 이를 곱해서 보냄
• 묵지를 가진 봉투에 은행이 내용물(일련번호)을 보지
않은 채 겉봉투에 직인을 찍으면 일련번호가 있는
내용물에도 직인이 찍힘.
• 은행이 전자화폐의 일련번호를 모르는 상태에서
가치를 보증할 수 있는 전자서명기술
47
7.3.2 은닉서명 프로토콜
• 은닉서명의 물리적개념
48
7.3.3 전자봉투와 이중서명(1)
• 전자봉투
- 메시지와 메시지암호화에 사용된 암호키를
수신자에게 보낼 때 사용
- 데이터의 암호화는 대칭형 알고리즘, 일회용 DES
키를 임의로 생성하여 수행하고 DES키는 공개키
알고리즘, 즉 수신자의 공개키로 암호화하여 보내는
방법.
- 수신자는 자신의 개인키로 DES키를 구하고 이를
DES키로 메시지 암호를 해독하는 방법
49
7.3.3 전자봉투와 이중서명(2)
• 전자봉투와 이중서명
50
7.3.3 전자봉투와 이중서명(3)
• 전자봉투의 개봉
51
7.3.3 전자봉투와 이중서명(4)
• 이중서명(Dual Signature)
- SET프로토콜에서 사용되는 알고리즘
- 고객의 사생활침해를 방지하기위해 도입
- 두개의 메시지연결에 사용
- 예: 주문정보와 지불정보
1. 주문정보와 지불정보를 각각 해시함수를 적용시킨
후
2. 두 해시 값에 대한 해시 값을 다시 구하고
3. 이 값을 서명 알고리즘으로 서명
4. 카드소지자가 상점에게만 주문정보를 전달
5. 금융기관에게만 지불명령을 전달하고자 할 때
52
7.3.3 전자봉투와 이중서명(5)
• 이중전자서명의 사용예제
53
7.4. 키관리
• 암호시스템에서 가장 어려운 부분이 키 관리
• 암호알고리즘을 구현하는 것보다 안전한 키
관리가 힘이 듬
• 키를 알아내어 암호시스템을 깨트림
54
7.4.1 키관리서비스(1)
• 키 관리 절차들은 사용된 알고리즘, 키의 사용의도,
사용에 대한 보안정책등에 좌우됨
• 키의 노출, 변경, 파괴, 재 사용 등의 문제에 대해서
보호
• 특히 키 생성키(마스터키)의 보호는 훨씬 중요
• 키 자료의 보호는 암호화 기술을 이용
• 비 암호기술을 이용한 키 자료 보호방법으로
타임스탬프(time stamp)와 일련번호(sequence
number)등이 있음
• 키 계층조직: 1차 키(primary key)는 데이터 암호화키
(data encryption key) 또는 session key라하며 2차
키(secondary key)는 키 암호화키 또는 terminal
key라 함
55
7.4.1 키관리서비스(2)
키관리 서비스 내 용
키 생성
키 등록
키 확인서 생성
키 분배
키 설치
키 저장
키 파생
키 보관
키 취소
키 말소/ 폐기
강한 안전성을 가진 키를 안전하게 생성할 수 있는 절차를 제공한다
키와 사용자를 연결시키는 서비스로 키 등록기관에 의해 제공된다.
공개키와 사용자의 연관성을 보장하는 것이며, 인증기관에 의해 제공된다.
인가된 사용자들에게 키관리 정보 객체들을 안전하게 제공해 주는 절차
제공
키를 사용하기전에 필요, 키가 위험하지 않은 방식으로 배치한다.
미래에 사용하거나 백업을 위해 생성된 키들을 안전하게 저장해 준다
파생키라고 불리는 비밀 근원키를 이용해 새로운 세션키들을 생성
일반적인 사용후에 키를 안전하게 보관하기 위한 일련의 절차 제공
키의 노출, 확인서 사용기간의 만료시 사용자가 키를 취소할 수 있다
키와 사용자의 연결을 단절, 안전하게 폐기
암호 시스템에서 키들을 안전하게 다루기 위한 일련의
절차
56
7.4.2 키복구/위탁(1)
• 키 없이 암호를 해독할 수 없다는 아이러니한
상황, 암호화 데이터소유자나 합법적
열람권을 가진 자도 키의 손실이나
손상위험으로부터 자유로울 수 없는 문제점에
대한 안전장치 필요
• 암호 사용 규제 등 여러 제안이 있으나
• 안전한 키 위탁 방식과 관련된 기술의
자발적인 채택을 유도
57
7.4.2 키복구/위탁(2)
• 키 위탁(key escrow)은 특정조건이 만족되었을 때
평문을 쉽게 얻을 수 있도록 제3자에게 키를 위임.
상황과 제안에 따라 Key escrow와 Key recovery.
• Key escrow: 합법적인 범죄수사나 불법적
암호사용의 규제 등 국가의 공권력집행을 위한 경우
• Key recovery: 상업적인 암호사용에서 키 분실 이나
손상 시 복구를 위한 경우, Key escrow보다 포괄적인
의미
• DRF암호문: 암호화된 데이터에 Data Recovery
Field를 추가하여 복구능력제공
58
7.4.2 키 복구/위탁(3)
키 복구 시스템

More Related Content

Similar to 20020418.ppt.pdf

Hash algorithm
Hash algorithmHash algorithm
Hash algorithmBill Kim
 
암호의 이해
암호의 이해암호의 이해
암호의 이해kdalma
 
05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향Youngsun Lee
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본Lee Sang-Ho
 
암호화 기법.Ver2
암호화 기법.Ver2암호화 기법.Ver2
암호화 기법.Ver2Sein Jang
 
컴퓨터 보안 2015-2019년 출석수업대체시험
컴퓨터 보안 2015-2019년 출석수업대체시험컴퓨터 보안 2015-2019년 출석수업대체시험
컴퓨터 보안 2015-2019년 출석수업대체시험Lee Sang-Ho
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreihpark92
 
Redis data design by usecase
Redis data design by usecaseRedis data design by usecase
Redis data design by usecaseKris Jeong
 
화이트 박스 암호기법
화이트 박스 암호기법화이트 박스 암호기법
화이트 박스 암호기법Seungyong Lee
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and ProtocolWonjun Hwang
 
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...GangSeok Lee
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview병준 김
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
Encryption
EncryptionEncryption
EncryptionBill Kim
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규ChangKyu Song
 
해시암호와 비밀번호 - 9th KUSISWALL
해시암호와 비밀번호 - 9th KUSISWALL해시암호와 비밀번호 - 9th KUSISWALL
해시암호와 비밀번호 - 9th KUSISWALLHajin Jang
 
Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stackcodevania
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 

Similar to 20020418.ppt.pdf (20)

Hash algorithm
Hash algorithmHash algorithm
Hash algorithm
 
암호의 이해
암호의 이해암호의 이해
암호의 이해
 
컴퓨터개론13
컴퓨터개론13컴퓨터개론13
컴퓨터개론13
 
05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향
 
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 컴퓨터 보안 과제물 제출본
 
암호화 기법.Ver2
암호화 기법.Ver2암호화 기법.Ver2
암호화 기법.Ver2
 
컴퓨터 보안 2015-2019년 출석수업대체시험
컴퓨터 보안 2015-2019년 출석수업대체시험컴퓨터 보안 2015-2019년 출석수업대체시험
컴퓨터 보안 2015-2019년 출석수업대체시험
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_core
 
Redis data design by usecase
Redis data design by usecaseRedis data design by usecase
Redis data design by usecase
 
Network researching
Network researchingNetwork researching
Network researching
 
화이트 박스 암호기법
화이트 박스 암호기법화이트 박스 암호기법
화이트 박스 암호기법
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and Protocol
 
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
[2009 CodeEngn Conference 03] hkpco - DEFCON CTF 2009 Binary Leetness 100-500...
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
Encryption
EncryptionEncryption
Encryption
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
 
해시암호와 비밀번호 - 9th KUSISWALL
해시암호와 비밀번호 - 9th KUSISWALL해시암호와 비밀번호 - 9th KUSISWALL
해시암호와 비밀번호 - 9th KUSISWALL
 
Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stack
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 

20020418.ppt.pdf

  • 2. 2 목 차 7.1 암호시스템 및 분류체계 7.2 암호알고리즘 7.2.1 대칭키 암호 시스템 7.2.2 공개키 암호 시스템 7.2.3 해시 알고리즘 7.3 암호프로토콜 7.3.1 전자서명 프로토콜 7.3.2 은닉서명 프로토콜 7.3.3 전자봉투와 이중서명 7.4 키관리 7.4.1 키관리 7.4.2 키복구/위탁
  • 3. 3 7.1 암호시스템 및 분류체계(1) • 암호학의 개념 - 평문을 해독 불가능한 암호문으로 변형하거나 암호화된 통신문을 복원 가능한 형태로 변환하기 위한 원리, 수단, 방법 등을 취급하는 기술 또는 과학 평 문 평 문 송신자 수신자
  • 4. 4 7.1 암호시스템 및 분류체계(2) • 암호학의 역사 - Egypt, Greeks, Rome : 상형문자, Caesar 암호 전쟁과 관련하여 중요한 정보를 적으로부터 보호하고 기밀을 유지시키는 효과적인 방법 - 중세 ~ 근대 (19세기 초반): 고전적 암호시스템 (Classical Cipher) - 현 대: 정보이론 (Information Theory), DES, RSA, DSA etc
  • 5. 5 7.1 암호시스템 및 분류체계(3) • 암호학의 응용분야 - 개방형 통신망 시스템에서의 데이터보호와 개인 프라이버시 유지. - 대표적 응용분야 : 사용자 인증 (authentication), 안전한 메일교환 , 전자화페 , 전자지불 등 1. E-mail: PGP 및 S/MIME 등을 사용함 으로서 안전한 메일전송 가능 2. 전자상거래: 쇼핑몰과 사용자 사이의 인증문제, 전자지불
  • 6. 6 7.1 암호시스템 및 분류체계(3) • 광의의 암호학(cryptology) - 평문(plain text)을 보호하기위한 암호화 알고리즘을 연구하는 암호학(cryptography) - 암호문(cipher text)을 해독하기 위해서 암호화과정을 연구하는 해독학(crypto analysis) • 암호시스템 - 평문을 암호문으로 만드는 암호화과정(encryption, encoding) - 암호문을 평문으로 변화시키는 복호화과정 (decryption, decoding) - 암호화와 복호화에서 사용되는 암호화키 (cryptographic key)관리 등 정보보호를 위한 일련의 프로세스
  • 7. 7 7.1 암호시스템 및 분류체계(4) • 암호시스템의 영역 1. 평문을 암호문으로 변환하기 위한 연산자의 유형 - 두 가지 일반적원리, 대치(substitution)은 각 원소 (비트, 문자)를 다른 원소에 사상, 전치(transposition)는 평문의 원소를 재배열 - 정보손실 없어야, 역전될 수 있어야 - 다단계의 치환과 전위 2. 사용된 키의 수 - 한 개의 키 사용: 송수신자 양측이 같은 키를 사용, 대칭(symmetric), 단일키(single key), 비밀키 (secret-key), 관용암호방식
  • 8. 8 7.1 암호시스템 및 분류체계(5) - 두개의 키 사용: 송수신자 양측이 다른 키를 사용, 비대칭(asymmetric), 이중키(two-key), 공개키 (public-key) 암호방식 3. 평문처리방법 - 블록 암호화(block cipher): 입력을 한번에 하나의 원소 블록 씩 처리 - 스트림 암호화: 입력을 연속적으로 처리하여 입력이 주어지는 데로 출력을 생성
  • 9. 9 7.1 암호시스템 및 분류체계(6) • 암호화/복호화 과정 E(M)=C, D(C)=M Ke(M)=C, Kd(C)=M
  • 10. 10 7.1 암호시스템 및 분류체계(7) • 암호화시스템의 충족요건 - 암호화 키에 의해 암호화 및 복호화 - 사용이 용이 - 암호화 알고리즘보다는 암호키에 의한 보안 • 암호기술의 기능 - 기밀성(confidentiality): 비인가자가 정보를 입수한 경우에 정보의 내용을 알 수 없도록 - 무결성(integrity); 데이터의 전송도중 또는 DB에 저장되어 있는 동안 위조, 변조의 방지 - 인증(authentication): 송수신자가 상대방의 신원을 확인, 식별 - 부인봉쇄(non-repudiation): 송수신자가 전송된 송수신사실을 부인하는 것을 방지
  • 11. 11 7.1 암호시스템 및 분류체계(8) • 암호기술의 기능
  • 12. 12 7.1 암호시스템 및 분류체계(9) • 암호기술의 분류 1. 암호 알고리즘 - 순수 암호학 및 정수론을 기초로 정보처리기술 이용, 데이터의 내용을 암호화하거나 복호화 하는 방법 - 비밀키 암호, 공개키 암호, 해시함수 2. 암호 프로토콜 - 특정정보보호서비스를 얻기 위함 - 인증 프로토콜, 키교환 프로토콜, 디지털서명 프로토콜 - 전자상거래 적용 암호 프로토콜: 전자화폐, 전자결제, 전자공증 3. 키관리의 중요 - 공개키의 생성, 분배, 복구, 폐기등 키의 생명주기 관리 - 공개키인증, 키분배, 키복구(위탁)
  • 13. 13 7.1 암호시스템 및 분류체계(10) 암호 알고리즘 • 대칭키 암호 알고리즘 - 블록 암호 알고리즘 - 스트림 암호 알고리즘 • 공개키 암호 알고리즘 암 호 프 로 토 콜 단 순 복 잡 • 신분확인,전자서명, 인증 • 특수서명 • 영지식 프로토콜 • 전자우편 • 키위탁 • 전자결재 • 전자화폐 • 전자지불 • 전자선거 키관리(Key Management System) • 암호기술의 분류
  • 14. 14 7.2 암호 알고리즘 7.2.1 대칭키 암호 시스템(1) • 비밀키, 단일키 알고리즘이라고도 하며 송수신자가 동일한 키에 의하여 암호화 및 복호화 과정을 수행. • 변환하는 방법에 따라 블록 암호 알고리즘, 스트림 암호 알고리즘으로 구분 • 기존의 정보기술과 상호운용이 쉬움 • 암호화 키의 크기가 작아 효율적 • 내부구조가 간단한 치환과 순열의 조합, 암호알고리즘개발이 쉬움 • 단일키를 공유해야 하므로 여러 사람과의 정보교환 시 키 유지, 관리가 어려움
  • 15. 15 7.2.1 대칭키 암호 시스템(2) • 블록 암호 알고리즘 - 고정된 크기의 입력 블록을 고정돤 크기의 출력 블록으로 변경 - 미국의 DES(Data Encryption Standard), Triple-DES, Skipjack, 유럽의 IDEA(International Data Encryption Algorithm), 일본의 FEAL(Fast Data Encipher Algorithm), MISTY
  • 16. 16 7.2.1 대칭키 암호 시스템(3) 1. DES - IBM 에서 개발한 Lucifer시스템을 발전 - 1976년 미국연방표준으로 승인 - 1977년 FIPS PUB46에 “Data Encryption Standard” 로 공표 - 64비트 평문, 64비트 암호문, 64비트의 키 - 64비트의 키(외부키)중 56비트는 실제의 키(내부키) 나머지 8비트는 검사용 비트 - 128비트의 키로 변형된 알고리즘도 - 키는 0~127사이의 8개의 십진수로 구성, random number generator가 골라내는 숫자
  • 17. 17 7.2.1 대칭키 암호 시스템(4) - 64비트를 입력으로 받기 위해 블록화(blocking)과정 필요, 즉 평문을 8문자로 나눔 - 16라운드의 반복적인 암호화 과정 - 각 라운드 마다 표에 의해 전치(permutation)및 대치 (substitution)를 거친 평문과 56비트의 내부키 중 48비트가 섞여 암호문 - 확장(expansion)과 압축(compression)을 혼합 사용 - 키와 평문을 혼합하는 연산은 논리합 (exclusive-OR) - 복호화는 사용되는 키가 역순으로 작용 - 미국 연방정부로부터 보증을 얻음
  • 18. 18 7.2.1 대칭키 암호 시스템(5) plaintext i p key 56bit 중 48bit 선택 L I -1 R I -1 Expansion Permutation S-Box Sbstitution P-Box Permutation L I R I 48bit 32bit 6input -> 4output 32bit Shift Shift Compression Permutation key IP -1 ciphertext 16 번 반복 16 번 라운드 중 하나 • 대칭키 암호시스템의 개념도 f함수 데이터암호화 키생성
  • 19. 19 7.2.1 대칭키 암호 시스템(6) 입 력 K1 K2 : : 초기 전치 L0 L1 L2 R0 R1 R2 : : f f R16 L16 f 역초기 전치 출 력 K16 Li = Ri-1 Ri = Li-1 XOR f (Ri-1 , Ki ) - DES의 기본 구조 (데이타 암호화부)
  • 20. 20 7.2.1 대칭키 암호 시스템(7) - DES기본구조(f함수의 구성도) R(32bit) 확장전치 (비트 선택표 ) 48bit K (48bit) S1 S2 S8 S7 . . . . P-box 전치 32 bit S-box table 대치
  • 21. 21 7.2.1 대칭키 암호 시스템(8) - DES기본구조(키 생성부)(7-6) 키 선택 전치1 c0 좌측 시프트 c1 c2 좌측 시프트 c15 좌측 시프트 d0 좌측 시프트 d1 d2 좌측 시프트 d15 좌측 시프트 선택전 치2 선택전 치2 선택전 치2 K1 K2 K16 : : : : : :
  • 22. 22 7.2.1 대칭키 암호 시스템(9) 2.Skipjack - 미국의 NSA(National Security, Agency)에 의해 1985년에서 1990년 사이에 개발 - 1993년에 대칭키 알고리즘으로 발표 - 향후 30~40년은 안전하다고 주장 - 일종의 스마트 카드인 클리퍼칩(FORTEZZA PCMCIA카드)에 적용이 용이 - 64비트의 블록사용, 80비트의 키, 32라운드의 암호방식
  • 23. 23 7.2.1 대칭키 암호 시스템(10) 3. IDEA(International Data Encryption Algorithm) - DES를 대체하기 위해 스위스 연방 기술 기관에서 개발 - 128 비트 키 이용 - 64 비트 블록을 암호화 - 8 라운드 - DES 보다 2배 정도 빠름 - brute-force attack에 보다 효율적으로 대응
  • 24. 24 7.2.1 대칭키 암호 시스템(11) • 스트림 암호 알고리즘 - 이진화 된 평문과 키이진수열을 비트단위 이진연산 (exclusive-OR)으로 결합하여 암호문생성 - 키 스트림 이라 불리는 키이진수열의 특성과 발생방법이 핵심 - 키스트림의 주기에 따라 주기적암호시스템, 비주기적 암호시스템 - 키스트림의 평문 과의 관계에 따라 동기식 (synchronous stream cryptosystem), 비동기식 (self-synchronous stream cryptosystem)
  • 25. 25 7.2.1 대칭키 암호 시스템(12) - 동기식(synchronous stream cryptosystem)은 키 스트림이 평문에 관계없이 생성되어 키스트림과 암호문의 독립성으로 정보노출의 위험이 적고 대부분 주기적 - 비동기식(self-synchronous stream cryptosystem)은 키스트림이 평문 또는 암호문과 관련되어 해독되기 쉽고 비주기적 암호시스템인 암호문 귀환 자동키 시스템(Feedback Autokey)이 대표적. 전송 중 암호문의 비트가 손실, 변경되더라도 오류의 전파가 유효
  • 26. 26 7.2.1 대칭키 암호 시스템(13) 키 동일한 키 키스트림 생성자 암호문 평문 평문 키스트림 생성자 - 스트림 암호시스템의 개념도(7-8)
  • 27. 27 7.2.2 공개키 암호 시스템(1) • 공개키 암호의 단순 모델 A가 B에게 암호화 메시지를 보내는 경우 암호 알고리즘 복호 알고리즘 사용자A 사용자 B 평문 암호문 평문 B의 공개키 B의 개인키 1. 공개키와 개인키 생성 2. 공개키는 공개하고 개인키는 개인이 소유 3. A는 B의 공개키로 메시지를 암호화 4. B는 자신의 개인키로 메시지 복호화 (B의 개인키를 모르는 제 3자는 메시지 복호 불가능)
  • 28. 28 7.2.2 공개키 암호 시스템(2) • 공개키 암호 방식 - 두 개의 다른 키 사용 - 공개키 : 모든 사람이 접근 가능한 키 (공개) - 개인키 : 각 사용자 자신만이 소유 (비밀) (관용 암호에 사용되는 키는 비밀키라고 함) • 공개키 알고리즘의 특징 - 암호 알고리즘과 공개키를 알아도 개인키 계산 불가능 - 두 개의 키 중 하나는 암호에 다른 하나는 복호에 사용 • 종류 - RSA, ElGamal, ECC등
  • 29. 29 7.2.2 공개키 암호 시스템(3) • RSA - 1978년, MIT의 Rivest, Shamir, Adleman - 소인수 분해의 어려움에 근거 - 시스템 구성 - 공개키 : n(=p*q), e - 비밀키 : p, q, d - 암호화 : C = E(M) = Me (mod n) - 복호화 : M = D(E(M)) = (Me )d (mod n) = M - Encryption Speed: 약 DES보다 100배(s/w) ~ 1000배(h/w) 정도 느림
  • 30. 30 7.2.2 공개키 암호 시스템(4) • RSA 알고리즘 정리 • 키 생성 • 임의의 p, q 선택 ( p, q는 소수 ) • n = p × q 계산 • 오일러 파이 함수 φ(n) 계산 : 1부터 n-1까지의 정수 중에서 n과 서로 소의 관계에 있는 정수들의 개수 • n이 소수일때 φ(n) = n-1 • n이 소수 p,q의 곱일때 φ(n) = (p-1)(q-1) • 정수 d 선택 ( gcd(φ(n),d) =1, 1<d< φ(n) ) : 즉 파이함수값보다 작으며 서로 소 관계 (최대공약수가 1)를 갖는 임의의 정수 d를 선택 • e 계산 ( e = d-1 mod φ(n) ) • 공개키 ( KU = {e, n} ) • 개인키 ( KR = {d, n} ) • 암호화 및 복호화 • C = Me ( mod n ) • M = Cd ( mod n )
  • 31. 31 7.2.2 공개키 암호 시스템(5) • RSA 알고리즘 사용 예 • 공개키와 개인키 생성 1. 두 소수 p = 7, q = 17 을 선택 2. n = p*q = 7 × 17 = 119 계산 3. φ(n) = (p-1)(q-1) = 96 계산 4. φ(n) = 96과 서로소이고 φ(n)보다 작은 e 선택 ( e = 5 ) 5. d*e = 1 mod 96이고 d < 96 인 d를 결정 (d = 77) ⇒ 공개키 KU = {5, 119}, 개인키 KR = {77, 119}
  • 32. 32 7.2.2 공개키 암호 시스템(6) • RSA 알고리즘 사용 예 (계속) • 암호화와 복호화 : 평문 메시지 M = 19 일 경우 • 암호문 : 195 = 66 mod 119 ⇒ 66 • 복호문 : 6677 = 19 mod 119 ⇒ 19 평문 19 2476099 20807 195 = = 119 나머지 : 66 1.27…×10140 1.06 …×10138 6677 = = 119 나머지 : 19 평문 19 암호문 66 암호화 복호화 KU = 5, 119 KR = 77, 119
  • 33. 33 대칭키 암호 공개키 암호 암호/복호에 동일한 키와 암호/복호에 각각 서로 다른 키 와 동일한 알고리즘 사용 동일한 알고리즘 사용 수신자와 송신자는 키를 수신자와 송신자는 연관된 키쌍 중 교환해야 함 하나를 알아야 함 공유한 키(비밀키)는 비밀로 유지 키 쌍중 하나(개인키)를 비밀로 유지 키 분배의 어려움 공개키를 공개 속도가 빠름 속도가 느림 대칭키 암호 Vs 공개키 암호(7-9) 7.2.2 공개키 암호 시스템(7)
  • 34. 34 7.2.3. 해시 알고리즘(1) • Hash Function - Compression function, Message digest - 디지털 서명, 데이터 무결성 검증에 이용 • 해시 알고리즘 1. 임의의 크기의 입력 M에 적용 가능할 것 2. 일정한 크기 H=h(M)을 출력할 것 3. h와 M이 주어졌을 때 H=h(M)이 계산하기 쉬울 것 4. H=h(M)이 주어졌을 때 M을 구하는 역 계산이 계산상 불가능할 것 Hash function 임의의 비트열 고정 비트열
  • 35. 35 7.2.3. 해시 알고리즘(2) • 메시지 다이제스트 - 단 방향 해시 함수를 이용하여 주어진 정보를 일정한 길이 내의 아주 큰 숫자 (해시 값)로 변환 - 해시 값으로부터 최초의 정보 복원 불가능 - 정보의 변경여부를 확인하는데 사용 Sender (원본 + 해시 값) vs. Receiver (원본+해시 값+자체 해시 값) - 해시 값의 암호화 필요 중간에서의 해시 값 변조방지
  • 36. 36 7.2.3. 해시 알고리즘(3) • 해시 함수의 사용 - 메시지 무결성 확인 모델 - 서명인증 모델
  • 37. 37 7.2.3. 해시 알고리즘(4) • SHA(Secure Hash Algorithm) - NIST와 NSA가 설계 - 160-bit의 해시코드 출력, MD4에 기반 - 강도와 특성면에서 MD5와 유사 - Security: MD5보다 긴 해시 코드 MD5 -- 2128 , SHA -- 2160 - Speed: 32비트 구조로 수행 더 많은 단계로 인해 MD5보다 약 25% 정도의 속도 저하
  • 38. 38 7.2.3. 해시 알고리즘(5) • MD2 • 128-bit one-way hash function, Ron Rivest • PEM 프로토콜에서 사용 • 다른 hash function들 보다 수행 속도 느림 • MD4 • 1990년, Ron Rivest • 128-bit one-way hash function • 32-bit 기반 구조를 가지는 빠른 알고리즘으로 구성 • MD5 • MD4를 개선 • 입력: 512-bit blocks( = 16개의 32-bit sub-blocks) • 출력:128-bit hash value • 4개의 round, 각 라운드 당 16번의 서로 다른 연산 수행
  • 39. 39 7.3 암호 프로토콜 • 정보화사회에서 계약당사자간에 상대방의 신분을 확인(개인식별문제), 계약문서의 내용을 확인 하는 것(인증문제), 인감도장을 전자적으로 실현하는 것(전자서명)등을 해결해주는 것 • 기존의 통신 프로토콜에 정보보호이론을 부가하여 고도의 정보처리 및 통신을 함 • 영지식 상호 증명기술: 대화형 증명. 지식을 누출하지 않고 상호 증명하는 방법. 암호프로토콜의 안전성에 관한 모델 • 전자투표
  • 40. 40 7.3.1 전자서명 프로토콜(1) • 개인의 고유성을 주장하고 인정 받기 위해 전자적 문서에 서명 • 전자문서 교환 같은 상업용 문서에 필요한 서명이나 군사분야에서 컴퓨터 통신망을 통한 작전 명령이자 지휘의 서명에 이용되는 전자서명은 중요성이 확대 • 1976년 Diffe와 Hellman에 의해 처음제시 • 공개키를 사용하는 서명방식과 제3자를 통해 서명을 생성 및 검증하는 방식 • 공개키를 사용하는 방식은 서명의 검증과정에서 메시지가 복원되는 메시지 복원형 전자서명과 메시지를 해시한 결과와 전자서명 맟 공개키를 이용하여 계산된 값을 비교하는 부가형 전자서명으로 나뉨
  • 41. 41 7.3.1 전자서명 프로토콜(2) • 특성 1. 위조불가(un forgeable): 서명은 서명자만이 생성할 수 있어야 2. 서명자인증(authentic): 서명은 서명자의 의도에 따라 서명 된 것임을 확인 3. 부인방지(non-reputation): 서명자가 서명한 사실을 부인할 수 없어야 4. 변경불가(un alterable):서명한 문서의 내용을 변경할 수 없어야 5. 재사용불가(not reusable): 하나의 문서의 서명을 다른 문서의 서명으로 사용할 수 없음
  • 42. 42 7.3.1 전자서명 프로토콜(3) • 메시지 복원형 전자서명(digital signature scheme giving message recovery) - 기존의 암호 프로토콜 이용 - 메시지를 일정한 크기의 블록으로 나누어 각각의 블록에 대해서 서명을 해야 하므로 서명의 생성이나 검증과정에서 많은 시간이 소요 - 검증을 위해 redundancy(여분, 용장)를 사용하기 때문에 메시지의 길이보다 서명의 길이가 두 배 이상 늘어나는 비효율성
  • 44. 44 7.3.1 전자서명 프로토콜(5) • 부가형 전자서명(digital signature with appendix) - 메시지를 해시 알고리즘으로 압축하고 해시알고리즘의 결과와 서명자의 비밀키를 이용하여 전자서명을 생성해서 메시지에 덧붙임 - 서명의 검증은 수신된 메시지를 해시한 결과와 전자서명 및 공개키를 이용하여 계산된 값을 비교 - 메시지이외에 서명을 부가하므로 전송량이 조금 늘어남 - 단 한번의 서명생성과정필요 - 메시지 복원형보다 장점이 더 많아 선호
  • 46. 46 7.3.2 은닉서명 프로토콜 • 전자현금시스템에서 전자은행 또는 전자지불회사가 사용자의 현금에 대한 정보(일련번호)를 취득하게 됨이 문제 • 디지 캐시사의 David Chaum이 고안한 전자서명기법- blind signature • 사용자가 현금의 일련번호를 은행에 제공할 때 불특정 수로 이를 곱해서 보냄 • 묵지를 가진 봉투에 은행이 내용물(일련번호)을 보지 않은 채 겉봉투에 직인을 찍으면 일련번호가 있는 내용물에도 직인이 찍힘. • 은행이 전자화폐의 일련번호를 모르는 상태에서 가치를 보증할 수 있는 전자서명기술
  • 47. 47 7.3.2 은닉서명 프로토콜 • 은닉서명의 물리적개념
  • 48. 48 7.3.3 전자봉투와 이중서명(1) • 전자봉투 - 메시지와 메시지암호화에 사용된 암호키를 수신자에게 보낼 때 사용 - 데이터의 암호화는 대칭형 알고리즘, 일회용 DES 키를 임의로 생성하여 수행하고 DES키는 공개키 알고리즘, 즉 수신자의 공개키로 암호화하여 보내는 방법. - 수신자는 자신의 개인키로 DES키를 구하고 이를 DES키로 메시지 암호를 해독하는 방법
  • 49. 49 7.3.3 전자봉투와 이중서명(2) • 전자봉투와 이중서명
  • 51. 51 7.3.3 전자봉투와 이중서명(4) • 이중서명(Dual Signature) - SET프로토콜에서 사용되는 알고리즘 - 고객의 사생활침해를 방지하기위해 도입 - 두개의 메시지연결에 사용 - 예: 주문정보와 지불정보 1. 주문정보와 지불정보를 각각 해시함수를 적용시킨 후 2. 두 해시 값에 대한 해시 값을 다시 구하고 3. 이 값을 서명 알고리즘으로 서명 4. 카드소지자가 상점에게만 주문정보를 전달 5. 금융기관에게만 지불명령을 전달하고자 할 때
  • 52. 52 7.3.3 전자봉투와 이중서명(5) • 이중전자서명의 사용예제
  • 53. 53 7.4. 키관리 • 암호시스템에서 가장 어려운 부분이 키 관리 • 암호알고리즘을 구현하는 것보다 안전한 키 관리가 힘이 듬 • 키를 알아내어 암호시스템을 깨트림
  • 54. 54 7.4.1 키관리서비스(1) • 키 관리 절차들은 사용된 알고리즘, 키의 사용의도, 사용에 대한 보안정책등에 좌우됨 • 키의 노출, 변경, 파괴, 재 사용 등의 문제에 대해서 보호 • 특히 키 생성키(마스터키)의 보호는 훨씬 중요 • 키 자료의 보호는 암호화 기술을 이용 • 비 암호기술을 이용한 키 자료 보호방법으로 타임스탬프(time stamp)와 일련번호(sequence number)등이 있음 • 키 계층조직: 1차 키(primary key)는 데이터 암호화키 (data encryption key) 또는 session key라하며 2차 키(secondary key)는 키 암호화키 또는 terminal key라 함
  • 55. 55 7.4.1 키관리서비스(2) 키관리 서비스 내 용 키 생성 키 등록 키 확인서 생성 키 분배 키 설치 키 저장 키 파생 키 보관 키 취소 키 말소/ 폐기 강한 안전성을 가진 키를 안전하게 생성할 수 있는 절차를 제공한다 키와 사용자를 연결시키는 서비스로 키 등록기관에 의해 제공된다. 공개키와 사용자의 연관성을 보장하는 것이며, 인증기관에 의해 제공된다. 인가된 사용자들에게 키관리 정보 객체들을 안전하게 제공해 주는 절차 제공 키를 사용하기전에 필요, 키가 위험하지 않은 방식으로 배치한다. 미래에 사용하거나 백업을 위해 생성된 키들을 안전하게 저장해 준다 파생키라고 불리는 비밀 근원키를 이용해 새로운 세션키들을 생성 일반적인 사용후에 키를 안전하게 보관하기 위한 일련의 절차 제공 키의 노출, 확인서 사용기간의 만료시 사용자가 키를 취소할 수 있다 키와 사용자의 연결을 단절, 안전하게 폐기 암호 시스템에서 키들을 안전하게 다루기 위한 일련의 절차
  • 56. 56 7.4.2 키복구/위탁(1) • 키 없이 암호를 해독할 수 없다는 아이러니한 상황, 암호화 데이터소유자나 합법적 열람권을 가진 자도 키의 손실이나 손상위험으로부터 자유로울 수 없는 문제점에 대한 안전장치 필요 • 암호 사용 규제 등 여러 제안이 있으나 • 안전한 키 위탁 방식과 관련된 기술의 자발적인 채택을 유도
  • 57. 57 7.4.2 키복구/위탁(2) • 키 위탁(key escrow)은 특정조건이 만족되었을 때 평문을 쉽게 얻을 수 있도록 제3자에게 키를 위임. 상황과 제안에 따라 Key escrow와 Key recovery. • Key escrow: 합법적인 범죄수사나 불법적 암호사용의 규제 등 국가의 공권력집행을 위한 경우 • Key recovery: 상업적인 암호사용에서 키 분실 이나 손상 시 복구를 위한 경우, Key escrow보다 포괄적인 의미 • DRF암호문: 암호화된 데이터에 Data Recovery Field를 추가하여 복구능력제공