이 암호화 알고리즘은 이렇게 사용됩니다.
1. 서버에서는 암호 키 1을 John에게 보냅니다.
2. John은 암호 키를 만들어 서버에 보냅니다. 그러나 그냥 보내지 않고, 암호 키 1로 암호화해서 보냅니다.
3. 서버는 이것을 받아서 암호 키 2로 복호화합니다. 그리고 John이 보낸 암호 키를 얻습니다.
4. John은 ID와 비밀번호를 암호 키로 암호화하여 서버에 보냅니다.
5. 서버는 앞서 받았던 암호 키를 이용해서 이를 복호화합니다. 그러면 ID와 비밀번호를 얻을 수 있습니다.
이 과정에서 Alice가 어떻게 해킹할 수 있는지 살펴봅시다.
1. Alice는 암호화 알고리즘 1의 과정에서 암호 키 1을 훔칩니다.
2. Alice는 암호화 알고리즘 2의 과정에서 암호화된 암호 키를 훔칩니다. 그러나 암호 키 2가 없으므로 복호화를 할 수 없습니다.
3. Alice는 암호화 알고리즘 4의 과정에서 암호화된 ID와 비밀번호를 훔칩니다. 그러나 마찬가지로 암호 키가 없으므로 복호화를 할 수 없습니다.
결과적으로 Alice는 암호 키 2가 있어야만 합니다. 암호 키 2를 찾아내려면 앞서 언급했듯 전 세계 컴퓨터를 모두 동원해서 평생을 훨씬 넘는 시간을 들여 시도해야 하는데, 현실적으로 불가능에 가깝습니다. 앞서 언급된 암호 키, 암호 키 1, 암호 키 2의 실제 명칭은 다음과 같습니다.
• 암호 키: 대칭 키(symmetric key) 혹은 세션 키(session key)라고 합니다.
• 암호 키 1: 공개 키(public key)라고 합니다.
• 암호 키 2: 개인 키(private key)라고 합니다.