概要
古典暗号の説明から始まり、対称暗号や公開鍵暗号などの基本的な考え方や認証などに関連する情報が分かりやすくまとまった本です。暗号やセキュリティに関連する知識を全く持たない完全な初心者でも読み進めることができるくらいの難易度でした。
学習内容
鍵配送問題
共通鍵暗号の仕組みなどを学び、暗号化の仕組みに関してはある程度理解が深まったところである問題が出てきます。
そもそも共通鍵暗号で共有するべき鍵はどのように配送すればよいのでしょうか。
通信路を通じて安全に鍵を共有できるのであれば、そもそも暗号化技術などは要らないはずです。
実際に利用されている鍵の配送には主に以下4つの方法が利用されています。
・鍵の事前共有
・鍵配布センターの利用
・Diffie-Hellmanの鍵交換
・公開鍵暗号の利用
鍵の事前共有
これは実際に人に会って、USBや口頭で鍵を伝えるような方法です。一番最初に思いつきそうな方法ですが、直接会うのが困難であったり、利用する鍵の数が膨大になるというような問題があり、あまり現実的ではありません。利用される場面は限られてきます。
鍵配布センターの利用
暗号化通信を行うたびに鍵配布センターに暗号化ようの鍵を用意してもらう方式です。
アリスとボブが暗号化通信を行うステップは以下の手順になります。
step1. アリス、ボブは自身の鍵を鍵配布センターに登録する。
step2. アリスは鍵配布センターに「ボブと通信したい」申し出る。
step3. 鍵配布センターは疑似乱数生成器を利用してセッション鍵を生成する。
step4. 生成したセッション鍵をアリスの秘密鍵で暗号化したものをアリスに送付する。同様にボブの秘密鍵で暗号化したものをボブに送付する。
step5. アリス、ボブは自身の秘密鍵で復号して入手したセッション鍵を利用して通信を始める。
Diffie-Hellmanの鍵交換
別の記事でまとめます。
公開鍵暗号の利用
公開鍵を利用した鍵交換になります。
今回もボブとアリスが暗号化通信を行う際を考えてみましょう。
step1. ボブは公開鍵とプライベート鍵のペアを生成し、公開鍵をアリスに送ります。
(アリス以外の人物が盗聴し、公開鍵が盗まれるかもしれませんが問題ありません。)
step2. アリスは送られてきた公開鍵を利用して送りたいメッセージを暗号化し、ボブに送ります。
(公開鍵では復号ができないので問題ありません。)
step3. ボブはプライベート鍵を利用して復号化します。
鍵配送問題をうまく解決している感じがしますが、欠点がいくつかあります。
(1)アリスが受け取った公開鍵が本当にボブのものであるか保証(認証)ができないからです。そのため、man-in-the-middle という攻撃が行われる可能性があります。
(2)公開鍵暗号は共通鍵暗号と比較して処理が何百倍も遅い。
このうち(2)に関しては、ハイブリッド暗号化方式を利用することで処理速度の問題を解消することができます。
終わりに
もう少し深くまで内容を追加していきます。