はじめに
科目A, 科目Bどちらにも出題され、出問数も多い「情報セキュリティ分野」における暗号化の技術についての解説記事です。
暗号技術とは?
その名の通りでイメージしやすいとは思いますが、簡単に言えば「文章を読めない状態にする」技術です。
暗号化されていない文章を平文という。平文を暗号文にすることを「暗号化」といい、暗号文を平文にすることを「復号」といいます。
暗号鍵
暗号化には暗号鍵というものを使用します。
簡単かつ分かりやすい表現が難しいのですが…暗号化のアルゴリズム + 暗号鍵を使って暗号文にする、というようなイメージを持っておけば多分大丈夫です。
①共通鍵暗号方式
暗号化と復号で同じ鍵を使う方式のこと。
データを送信する側の暗号化も、受信する側の復号も同じキーを使うことになります。
共通暗号鍵方式はどちらも同じ鍵を用いるため、データのやり取りをスピーディに行うことができます。
ただし、「暗号鍵を受信側に安全に伝える方法がない」という大きな課題があります。
暗号鍵を盗聴されないように送ることが可能ならば、そもそもその方法でデータを送れば暗号化なんて必要ないのでは?という話です。
②公開鍵暗号方式
暗号化と復号で違う鍵を使用する方式。この方式では受信側が以下の二種類の鍵を用意します。
①暗号化に使う公開鍵
②復号に使う秘密鍵
①で暗号化したものは②の秘密鍵でのみ復号が行えるようになっています。
受信側は①を公開して配布するため誰でも暗号化はできますが、復号はその公開鍵のペアとなる唯一の秘密鍵でしかできません。
受信側は送信側に①を使って暗号化して送信してもらい自分しか知らない②を使って復号を行います。
共通鍵暗号方式の存在意義
上記の説明を見ると共通鍵暗号方式は一見不要に思えます。
しかし共通暗号方式の方が高速に処理ができるという明確なメリットがあるため、実は共通鍵暗号方式も多くの場面で使われています。
そして、盗聴に対する安全面では公開鍵暗号方式の方が高いのですが、公開鍵暗号方式では「なりすまし」を防ぐことは難しいです。
ハイブリッド暗号方式
そこで①と②の良いとこ取りをしたやり方が考えられました。
送信者は共通鍵で平文を暗号化し、受信者の用意した公開鍵でその共通鍵を暗号化します。
送信者は受信者に対して共通鍵で暗号化した暗号文と公開鍵で暗号化した共通鍵を送付します。
受信者は送られてきた共通鍵を自身の秘密鍵で復号し、復号したその共通鍵で暗号文を平文に復号します。
以上のステップを踏むことでデータを高速にやり取りする事と、安全に共通鍵を相手に送信する、という2つのメリットを実現することができます。
暗号化のアルゴリズム
・共通鍵暗号方式において現在主流となっているアルゴリズムは「AES」です。
・公開鍵暗号方式において現在主流となっているアルゴリズムは「RSA」です。
デジタル署名
そしてなりすましを防ぐために登場したのが「デジタル署名」です。
公開鍵暗号方式でデータに「電子的な署名」をすることを言います。ただし、デジタル署名は秘密鍵で暗号化して公開鍵で復号をします。
デジタル署名を行うことで文書の作成者を特定できて、なりすましと改ざんを検知することができます。
認証局とデジタル証明書
デジタル署名が署名者本人のものであることを証明する、「デジタル証明書」というものを発行できる第三者機関が存在していて、**認証局(CA)と呼ばれています。
認証局を使ってなりすましを防ぐ、この仕組みのことをPKI(公開鍵基盤)**といいます。
ハッシュ関数
文字列を入力すると一定の長さの値を出力する関数です。
ハッシュ関数から出力される値のことを「ダイジェスト」「メッセージダイジェスト」または「ハッシュ値」と呼びます。
ハッシュ関数のアルゴリズムとして有名なのが「SHA-256」というもので、256ビット長の値を出力できます。
まとめ
今回は以下についての記事でした。
・共通鍵暗号方式
・公開鍵暗号方式
・デジタル署名
それぞれどのような仕組みの暗号技術なのかを掴んでおくと良いと思います。