1. 비밀키 분배의 어려움
1) 물리적 방법으로 전달
- 링크 암호화에서 적용 가능 ( 물리적 장치로 이루어져 있기 때문에 )
- 단대단 암호화에서의 적용 어려움
2) 이전의 키를 사용해 암호화된 새로운 키 전송
- 링크 암호화나 단대단 암호화 모두 적용 가능
- 공격자가 어떤 한 키를 안다면 이후의 모든 키가 노출
3) 제 3자(키 분배 센터)를 통해 키 분배
- 단대단 암호화에서 널리 채택
- 사용자는 키 분배 센터와 유일한 키를 공유
2. 키배포센터(KDC)를 이용한 분배방법
1) A가 자신의 신원정보를 보내면서 B에 대한 통신시 사용되는 세션키 요청
2) KDC는 A와 B에게 서로의 세션키와 통신하려는 주체들간의 신원정보를 각자의 master key로 암호화 하여 배포한다,
신원 정보인 ID(A)를 통해 B는 A가 통신하기를 원한다는것을 확인
3) A는 세션키를 이용해 B에게 전송하고, B는 A의 신원을 확인
4) B는 세션키를 이용해 A에게 전송하고, A는 B의 신원을 확인 ( T+1과 ID(B))
* 세션키
- 종단 시스템간의 통신을 암호화하는데 사용되는 임시키
- 보통 논리적인 연결에 사용된후 폐기
- 키 배포 센터로부터 획득(각자의 마스터키로 암호화되어 전송)
- 개체가 N일 경우 필요한 세션키 = N(N-1)/2
* 마스터키
- 키 배포 센터와 사용자가 공유하는 유일한 키
- 개체가 n일 경우 필요한 마스터키 = N개
3. 공개키 유효성
1) 공개키의 공개 발표
- 자신의 공개키를 다른 사용자에게 전송 등의 방법으로 공개
- 공개키를 항상 신뢰할수 없는 문제 발생
2) 공개적 사용 가능한 디렉토리
- 기관은 각 가입자에 대한 [ 이름, 공개키 ] 의 디렉토리 유지
- 각 가입자는 디렉토리 기관에 공개키 등록
- 가입자는 필요시 새로운 것으로 교체
- 기관은 디렉토리 공포
- 가입자는 전자적으로 디렉토리 접근 가능
==> 디렉토리 정보를 수정하거나 위조된 공개키로 임의의 가입자로 위장할수있는 문제 발생
4. 공개키 기관에 의한 세션키 분배
1) 공개키 기관에 A가 B에 대한 공개키를 요구하며 타임스템프(T)와 함께 전송 ( 위조 방지 )
2) KUb 는 B의 공개키를 의미하며, 공개키 기관의 개인키로 A가 요청한 메세지와 B의 공개키를 암호화하여 A에게 전송
3) A는 B의 공개키를 저장하고, A의 신원확인(ID(A))와 임시의 수 N을 B의 공개키로 암호화하여 전송
4) B가 공개키 기관에 A의 공개키를 요청
5) 공개키 기관의 개인키로 B가 요청한 메세지와 A의 공개키를 암호화하여 B에게 전송
6) B는 A의 진위여부 확인을 위해 A의 공개키로 N2를 생성후 A에게 N1과 N2를 전송 ( A만 복호 가능 )
7) A는 B의 공개키로 N2를 암호화 한후 B에게 전송 (B만 복호 가능 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
위 과정만으로는 통신을 할수 없음 세션키를 사용해야함
1) A의 식별자와 임시난수(N1)을 B의 공개키로 암호화하여 B에게 전송
2) B는 새로운 임시난수(N2)와 N1을 A의 공개키로 암호화하여 전송 A에게 전송
3) A는 보증을 위해 B의 공개키로 암호화한 N2를 B에게 전송 ( A 신원 확인 )
4) A는 비밀키 Ks를 선택하여 M=Era[Ekra[ks]]를 B에게 전송