前回までの記事で、公開鍵暗号化方式と共通鍵暗号化方式それぞれについて見てきましたが、それら方式のメリット・デメリットはちょうど真逆の関係となっていることに気が付いたでしょうか。
項目 | 共通鍵暗号化方式 | 公開鍵暗号化方式 |
---|---|---|
処理速度 | 高速 | 低速 |
鍵配送問題 | あり | なし |
鍵の管理 | 通信相手ごとに管理 | 秘密鍵だけ管理 |
共通鍵暗号化方式の高速処理、公開鍵暗号化方式の鍵配送問題の解決、この両方のメリットだけを良いところ取りしたいです。そこに注目してできた暗号化方式が「ハイブリッド方式」です。
メッセージは共通鍵暗号化方式で暗号化し、処理の高速化を図ります。また、共通鍵暗号化方式で使用する鍵は公開鍵暗号化方式で暗号化して、受信者(サーバー側)に渡します。これで鍵配送問題は解決し、かつ、鍵だけならサイズもとても小さいため処理時間を気にする必要はありません。
実際に、ハイブリッド方式で行われる流れを以下に示してみます。
- 受信者は公開鍵と秘密鍵を作成する
- 受信者は公開鍵をみんなに公開・配布し、秘密鍵だけ保管する
- 送信者は共通鍵(共通鍵暗号化方式で使用する鍵)を公開鍵で暗号化して送る
- 受信者は秘密鍵で復号して、共通鍵を取り出す(この時点でメッセージの暗号・復号で使用する鍵が両者で共有される)
- 送信者は共通鍵でメッセージを暗号化して送る
- 受信者は共通鍵でメッセージを復号する
このハイブリッド方式をSSL/TLSでも使用され、暗号・復号処理の高速化、鍵配送問題の解決を図っているというわけです。