namdicul's blog

気ままに更新します. CTFと暗号理論について勉強中です.

暗号理論(4) ~ ハイブリッド暗号システム ~

暗号技術入門 第3版

暗号技術入門 第3版

暗号理論入門 原書第3版

暗号理論入門 原書第3版


前回の記事では公開鍵暗号方式について説明しました.

以前に公開鍵暗号方式のデメリットの1つとして, 「man-in-the-middle攻撃に弱い」というものを挙げました. この問題を解決するには, 公開鍵の「認証」が必要となります.

しかしもう1つ, 大きなデメリットがあります. それは, 「処理速度がかなり遅い」ということです.
このデメリットを解決するための技術が, これから紹介する「ハイブリッド暗号システム」です.

「ハイブリッド」と聞いたとき, 皆さんは最初に何を思い浮かべますか?


きっと多くの人が「ハイブリッド車」を思い浮かべるのではないでしょうか.


そもそもハイブリッド(hybrid)とは複数の方式を組み合わせた工業製品のことを指します. ハイブリッド車は「2つの動力(エンジンとモーター)を組み合わせて走る車」という意味ですね. なぜ2つの動力を組み合わせるのかというと, 電気自動車の欠点である低出力を, ガソリンエンジンまたはディーゼルエンジンで補完することができるからですね. 一方のデメリットを他方のメリットで相互的に補完するために複合化しているわけです.

ではハイブリッド暗号システムとは, 何を組み合わせてできた暗号方式なのでしょうか.



答えは, 「共通鍵暗号方式と公開鍵暗号方式」です.



ではハイブリッド暗号システムの仕組みを具体的にみていきましょう.


AさんがBさんに平文Aを送信する場合を考えます.
Aさんは平文Aと共通鍵(セッション鍵)を持ちます. Bさんは公開鍵Bと秘密鍵Bをセットで持ちます.

f:id:tomonori4565:20180822211226p:plain

AさんはBさんから公開鍵を取得します.

f:id:tomonori4565:20180822211251p:plain
f:id:tomonori4565:20180822211312p:plain

共通鍵を使って平文Aを暗号化します(これを平文Aの暗号文とします).
さらに公開鍵を使って共通鍵を暗号化します(これを共通鍵の暗号文とします).

f:id:tomonori4565:20180822211533p:plain

Aさんは2つの暗号文をBさんに送信します.

f:id:tomonori4565:20180822211607p:plain
f:id:tomonori4565:20180822211622p:plain

Bさんは秘密鍵を使って共通鍵を復号することができます.
さらにその共通鍵を使って平文Aを復号することができます.

f:id:tomonori4565:20180822211719p:plain
f:id:tomonori4565:20180822211728p:plain

これでAさんからBさんへ平文Aを送信することができました.



これでハイブリッド暗号システムの仕組みの解説は終わるのですが, なぜ共通鍵で平文を暗号化して, さらに公開鍵で共通鍵を暗号化する必要があるのでしょうか. いきなり平文を公開鍵で暗号化して, それを相手に送信し, 受信者が秘密鍵で復号化するという仕組み(まさに公開鍵暗号方式そのもの)ではいけないのでしょうか.


ここで, 公開鍵暗号方式共通鍵暗号方式のメリットとデメリットをまとめてみましょう.

鍵配送問題が解決できる

平文(元データ)のデータサイズが大きくなればなるほど暗号化と復号化に時間がかかる.

高速に暗号化と復号化ができる
鍵サイズが小さい

鍵配送問題が生じる



共通鍵のサイズが小さいので公開鍵暗号方式を採用してもそれほど暗号化と復号化に時間がかからなくなり, また公開鍵暗号方式を採用することで鍵配送問題が解決できます. さらに平文の暗号化と復号化は共通鍵暗号方式を採用しているので, 平文のデータサイズが大きくても高速に暗号化と復号化をすることができます.

このように, ハイブリッド暗号システムを採用することで, お互いのデメリットをお互いのメリットで補完することができるのです.


ハイブリッド暗号システムは暗号ソフトウェアであるPGPや, Webの暗号通信で使われているSSL/TLSで使用されています.

暗号技術入門 第3版

暗号技術入門 第3版

暗号理論入門 原書第3版

暗号理論入門 原書第3版