共通鍵/公開鍵暗号方式とは?

サイバー攻撃

暗号化しないとどうなってしまうのか?

そもそも暗号化って何?必要なの?と思われる人もいると思います。
この章では、「暗号化」、暗号化されたデータを元のデータに戻す「復号」、「そもそもなぜ暗号化しないとなぜいけないのか?」について解説していきます。

暗号化とは?

暗号化とは、元のデータを違う文字列のデータに変換し、第三者が解読できないようにすることです。簡単な例だと、アルファベットを数文字ずつズらす方式等があります。(例 「Apple」であれば、アルファベットを1文字後ろにずらした「Bqqmf」となります。)
暗号鍵とは、「暗号化の方法が載っている情報」と理解していただければ大丈夫です。上記の例だと、「アルファベットを一文字後ろにズらす」です。

復号とは?

暗号化されたデータを元のデータに戻す「復号」という処理を行う際は、暗号化した時と逆の処理を行います。上記の例だと、「アルファベットを一文字前にズらす」ことになります。(「Bqqmf」のアルファベットを1文字前にズらして「Apple」に戻します。)

暗号化しないとなぜいけないのか?

データに対して暗号化処理を施さないと、下の図のように自分と相手の通信を盗み見る第三者からデータが丸見えになってしまいます。

このように、データを暗号化しないでインターネットの通信に流すことは非常に危険な行為です。
以降の章で、自分が「データを送る側(クライアント側)」・相手が「データを受け取る側(サーバー側)」として、2つの代表的な暗号化方式について解説していきます。

共通鍵暗号化方式

共通鍵暗号化方式とは自分と相手の鍵で同じものを使用する暗号化方式のことを言います。

下の図の流れに沿って共通鍵暗号化方式の流れを説明していきます。

①データを受け取る側(サーバー側)が共通鍵を発行し、それをデータを送る側(クライアント側)に共有します。

②データを送る側(クライアント側)は、その鍵を使用してデータを暗号化して、データを受け取る側(サーバー側)にデータを送信します。

③データを受け取る側(サーバー側)は、共通鍵を使用して、暗号化されたデータを元のデータに戻す復号処理を行います。

共通鍵暗号化方式のメリット

暗号化/復号の処理が早い

共通鍵暗号化方式は、公開鍵暗号化方式と比較し、データを暗号化/復号する時の処理が速いことが挙げられます。

共通鍵暗号化方式のデメリット

鍵の管理が煩雑

共通鍵暗号化方式は、鍵の管理が煩雑です。

図の「NG」の例をご参照ください。
複数のデータを送る側(クライアント側)が存在した場合、全て同じ鍵でデータを暗号化していたら、他の人の通信も自分の持っている鍵で復号できてしまいます。これは、マンションで全部屋が同じ鍵を持っていて、全部屋が同じ鍵で開錠できてしまうようなものです。
従って、図の「OK」の例のように、データを受け取る側(サーバー側)は、データを送る側(クライアント側)それぞれに対して共通鍵を発行して配布しなければなりません。

鍵の配送が難しい

共通鍵を第三者に奪われて、データを受け取る側(サーバー側)、データを送る側(クライアント側)どちらかに侵入されてしまった場合、データを復号されてしまいます。これは、共通鍵暗号化方式が1つの共通鍵でデータを復号できてしまうためです。
鍵を第三者に奪われないようにするため、鍵の配送には一工夫必要です。有名な鍵の配送方法として、Diffie–Hellman(ディフィー・ヘルマン)鍵交換のスキームがあります(詳細は別途解説)。
なお、以降の章で説明する公開鍵暗号化方式は、2つの鍵が揃わないとデータを復号できないので、1つの鍵を奪われても、データを復号される心配はありません。

公開鍵暗号化方式

公開鍵暗号化方式とは自分と相手の鍵で異なるものを使用する暗号化方式のことを言います。

下の図の流れに沿って公開鍵暗号化方式の流れを説明していきます。

①データを受け取る側(サーバー側)が秘密鍵、公開鍵の2種類1セットの公開鍵を発行します。その内、公開鍵をデータを送る側(クライアント側)に共有します。

②データを送る側(クライアント側)は、公開鍵を使用してデータを暗号化して、データを受け取る側(サーバー側)にデータを送信します。

③データを受け取る側(サーバー側)は、秘密鍵を使用して、暗号化されたデータを元のデータに戻す復号処理を行います。

公開鍵暗号化方式の中でも有名なアルゴリズムとして、RSA暗号化方式というものがあります。これは、数の素因数分解が困難であることを利用した暗号方式です。例えば、暗号鍵「1」を導き出すためには、その約数となる数として「1」と「1」の2つの情報が必要になります。2つの情報が合わさってはじめて暗号鍵を導き出すことができます。
今回は説明のために非常に簡単な場合を例に挙げましたが、実際には600桁にもなる数の約数を導く必要があり、スーパーコンピューターを使用しても暗号鍵の解読に1年以上の時間がかかります。このように、公開鍵暗号化方式は、暗号鍵を第三者から解読されにくい方式となっております。

公開鍵暗号化方式のメリット

1つの鍵を奪われても問題なし

公開鍵暗号化方式では秘密鍵と公開鍵の情報を合わせてようやくデータを復号することができます。従って、一つの鍵を第三者に奪われたとしても、データを復号される心配はありません。

1つの鍵で複数の相手とデータのやり取りを行うことができ、鍵の管理が楽

公開鍵暗号化方式は、秘密鍵と公開鍵が揃わないとデータを復号できないので、データを受け取る側(サーバー側)で秘密鍵を流出させないようにしていれば、公開鍵は誰に見られても問題ありません。従って、複数のクライアントがいても、発行する鍵のセットは1つで、各クライアントに配布する公開鍵は同じもので問題ありません。

公開鍵暗号化方式のデメリット

暗号化/復号の処理が遅い

公開鍵暗号化方式は、共通鍵暗号化方式と比較し、データを暗号化/復号する時の処理が遅いことが挙げられます。

コメント

タイトルとURLをコピーしました