오전 11:46 2005-10-04
조경민 bro@shinbiro.com
공개키 기반 응용
====================================================

M = Message 원래문장
C = Cipher 암호문
E = Encryption 수행
D = Decryption 수행
K = key
U = public (다른 사람이 알 수 있는 key이다.)
R = private (private key는 아무에게도 알려주지 않는다.)
a = 사용자 A
b = 사용자 B
auth = certificate authority(인증기관)
Time = 해당 수행이 일어날때의 시각
ID = certificate authority에서 부여해준 ID

ex) EKUa = A사용자의 public key로 Encrption


RSA 알고리즘 활용예
1) Encryption/Decryption
2) Digital signature(서명)
3) key exchagne


1) Encryption/Decryption
A사용자가 받는 사람B 의 public key로 암호화해서 보내면
받는사람 B는 자신의 private key로 복호화해서 원래문장을 얻을 수 있다.

C = EKUb(M)
M = DKRb(C)

서명에서는 거꾸로 자신의 개인키로 암호화할 수 있다. 이 경우
아무나 C를 public key로 풀수는 있으나 오직 자신만의 암호문 C를 생성할 수
있기 때문에 Digital signature에 사용된다.

C = EKRb(M)
M = DKUb(C)


2) Digital signature(서명)
A사용자의 private key로 암호화하여 이 암호문은 A 사용자만이
생성할 수 있다는 것을 서명하는 것이다.

C = EKUb(EKRa(M))

Ca를 사용자 B가 받으면 일딴 B의 private key로 복호화한다.
그 후 사용자 A의 public key로 복호화 하면 M을 얻을 수 있다.

M = DKUa(DKRb(C))


3) key exchagne (public key certificate or exchange session key)
서로 통신을 하기 위해서 처음 서로의 public key를 교환하는데 이를 보다
신뢰성을 보장받으면서 하기 위한 기능이다. 이를 위해 신뢰된 제3자로
부터 키를 분배 받게 된다.
제 3자(인증기관, authority)에게 자신의 public key를 주면 제3자의
private key로 암호화해서 리턴해준다. 즉 인증서에는 자신의 public key가 있는것이다.

A사용자의 certificate(인증서) 생성
Ca = EKRauth(Time,IDa, KUa)

다른 사용자는 A사용자의 인증서 Ca를 받아 이를 인증기관의 public key로 풀면
A사용자의 public key를 받을 수 있다.
DKUauth(Ca) = (T, IDa, KUa)

이렇게 서로 인증서를 나눈 후 인증기관을 통해 서로의 public key를 교환 받으면
1), 2)의 기능을 수행 할 수 있다.

'KB > security' 카테고리의 다른 글

암호화 알고리즘들  (0) 2005.10.12
vTPM  (0) 2005.10.11
RSA 알고리즘 소스  (0) 2005.10.04
NGSCB  (0) 2005.08.06
PCR in TPM  (0) 2005.08.05

+ Recent posts