대칭키+비대칭키+해시를 결합한 응용 암호학
ex)
기본: 사용자가 은행에 전자 화폐 발급 요청 → 요청 받은 은행은 개인키로 화폐 서명하여 발급(화폐의 s# 노출. 이 s#를 이용하여 추적 가능)
Alice: 여러 개의 m (= Alice, 금액, s#) 생성하여 RSA 암호화하여 은행에 전자 화폐 발급 요청. 단, 자신이 발급 받는 화폐의 s#를 BoK가 모르길 원함.
BoK: 전달 받은 여러 개의 m 중 다수 확인하여 Alice의 요청이 거짓이 아님을 확인. 확인한 m들은 s# 노출
→ 확인하지 않은 m 중에서 전자서명 진행. s# 노출되지 않음
O(n)
ex)
1. 본인과 KDC(Key Distribution Center) 간의 대칭키 생성
ex) Alice-KDC 대칭키: Kad
2. Alice: KDC에게 난수 n와 통신 원하는 사람 "Bob" 전송
3. KDC: 요청한 Alice에게 Kad(n, "Bob", Kab, ticket(= Kbd{Kab, "Alice", 키 유효 기간}) ) 전달
4. Alice: Bob에게 ticket(= Kbd{Kab, "Alice", 키 유효 기간})와 Kab(현재 시간) 암호화하여 전송
5. Bob: ticket Kbd로 해독하여 Kab얻음. Alice에게 Kab(현재 시간+1) 암호화하여 전송.