ハイブリッド暗号化方式について
今回はSSL/TLSの暗号化方式のひとつ、ハイブリッド暗号化方式について書いていきます!
SSL/TLSの暗号化方式には主に2種類あるのは有名かと思います。共通鍵暗号化方式と公開鍵暗号化方式です。
共通鍵暗号化方式はクライアントとサーバーが暗号化と復号ができる同じ鍵(共通鍵)を持ち、共通鍵で暗号化を行い、同じ共通鍵で復号します。
共通鍵暗号化方式のメリットは処理速度と処理負荷です。シンプルな仕組みのため、処理速度も速く、負荷も少ないです。
デメリットは事前に相手にどうやって共通鍵を渡すか、です。共通鍵が漏れてしまったら意味がないので、鍵の配送手段を考えないといけません。
公開鍵暗号化方式は暗号化鍵と復号鍵に異なる鍵を使用します。公開鍵と秘密鍵というものがあり、公開鍵はみんなに公開していい鍵で、秘密鍵はみんなに公開しない鍵です。みんなに配った公開鍵で暗号化をします。公開鍵では復号ができず、秘密鍵でしか復号できないので暗号化した情報は秘密鍵を持つ人以外復号することができません。
公開鍵暗号化方式のメリットは鍵を配送する必要がないことです。しかしデメリットとして処理速度の遅さと処理負荷の大きさがあります。
メリットデメリットを比較するとトレードオフのように見えますね。鍵の配送問題と、処理速度・負荷の問題。
これを解決するためにふたつの暗号化方式を組み合わせたのがハイブリッド暗号化方式です!
ハイブリッド暗号化方式は公開鍵暗号化方式で共通鍵を生成します。
クライアントとサーバーがあった場合、サーバーは公開鍵と秘密鍵を生成し、クライアントに公開鍵を渡します。クライアントは共通鍵の素となるものを公開鍵で暗号化し、サーバーに送ります。サーバーは秘密鍵で復号し、クライアントとサーバーはその共通鍵の素から共通鍵を生成します。
その共通鍵で情報のやり取りをします。
ハイブリッド暗号化方式なら共通鍵の配送は行われず、処理速度や負荷も公開鍵暗号化方式より軽減されます。
ハイブリッド暗号化方式はみなさんおなじみHTTPS(SSL/TLS)で使われています。
このあたりは情報系の資格試験にも出てくる可能性があるので、覚えておくといいかもしれませんね!