公開鍵と秘密鍵と共通鍵
電子データのやり取りには暗号が使われるのが常識であるが、ここではその暗号化、復号化に使われる公開鍵と秘密鍵、共通鍵といった「鍵」を用いた暗号方式の仕組みについて説明する。
これらの鍵は厳密にいえば、データを暗号化、復号化するための仕組みを指すが、そこまでの説明は暗号技術などがかかわってくるので、ここではとりあえず割愛する。
目次
- 公開鍵暗号方式の仕組み
- 公開鍵暗号方式のメリットとデメリット
- 共通鍵暗号方式
- 公開鍵暗号方式と共通鍵暗号方式を組み合わせたSSL接続方式
- 電子データの暗号化の効果
- 暗号化のメリット
- 暗号化のデメリット
公開鍵暗号方式の仕組み
公開鍵暗号方式では2つの鍵を利用してデータを暗号化してやり取りをする。
この2つの鍵とは受信者が作成する「公開鍵」と「秘密鍵」である。
ここで公開鍵は送信者をはじめ誰でも入手することができるが、秘密鍵は1つしか存在せずこの場合受信者だけが持っている。
したがって、公開鍵と秘密鍵の流れは次のようになる。
1. 受信者が秘密鍵を使って公開鍵を作成する。
2. 送信者は受信者の公開鍵を受けとる。
3. 平文を送信者が公開鍵を用いて暗号化して受信者に送付する。
4. 受信者は暗号文を受け取る
5. 受信者は暗号文を秘密鍵で平文に復号化する。
よって、公開鍵暗号方式では、受信者(秘密鍵を持っている人)だけが暗号化された平文を復号することができる。
秘密鍵は受信者のみが保管していて、公開鍵は誰でも取得できる場所に公開されている。
公開鍵暗号方式のメリットとデメリット
公開鍵暗号方式ののメリットはデータ安全性の高さである。「なりすまし」や「盗聴」などの脅威からの対策となる。
公開鍵は1つだけ作成して公開すればいいので、その公開鍵の管理も容易にできる。
デメリットは、暗号化と復号化の仕組みが複雑で処理時間がかかるという点である。共通鍵暗号方式と比べて鍵のデータ長を長くする必要があり、その処理に時間がかかる。
共通鍵暗号方式
公開鍵暗号方式では秘密鍵と公開鍵の2つの鍵を使用していたが、共通鍵暗号方式で使われる鍵は1つだけである。
この場合のデータの流れは次のようになる。
1. 送信者は共通鍵を使って平文を暗号化する。
2. 受信者は共通鍵を使って暗号文を復号化して平文にする。
この方式では同じ鍵(共通鍵)を用いて暗号化と復号化を行う。
暗号化と復号化に使用する鍵は同じなので、第三者に盗まれないように厳重な管理が必要となる。また、データをやり取りする相手が増えると、その分だけ共通鍵が必要になるので、鍵の数が増えてしまい、その分だけ管理する方法が複雑になってしまう。
このため、共通鍵暗号方式はデータのやり取りをする相手が少ない場合に向いていると言える。
公開鍵暗号方式と共通鍵暗号方式を組み合わせたSSL接続方式
公開鍵暗号方式と共通鍵暗号方式の仕組みを組み合わせたものとしてSSL接続方式がある。
SSL接続では、最初に公開鍵暗号方式を用いるのだが、通信内容を暗号化するために共通鍵を使い、送信者と受信者との間でその共通鍵を共有する。秘密鍵は受信者側だけが保有する。
データの流れとしては、次のとおりである。
1. 送信者側が受信者側へデータを送るための接続を許可してもらうようにリクエストする。
2. それを許可した受信者側は、公開鍵とSSLサーバー証明書を送信者側へ送付する。
3. 送信者側は、送信者側のブラウザに搭載されているルート証明書で署名を確認し、SSLサーバー証明書が受信者側のものであるかどうか検証する。
4. さらに送信者側は暗号用の共通鍵を生成して、受信者側から送られてきた公開鍵を使ってその共通鍵を暗号化して受信者側へと送信する。(共通鍵を暗号化して送信)
5. 電子データを送信者側の共通鍵で暗号化して受信者側へと送信する。
6. 受信者側は暗号化されて送信された共通鍵を2で生成した公開鍵と同時に生成した秘密鍵で復号化する。
7. 受信者側は受信した電子データを6の共通鍵で復号化してデータを所得する。
送信者はルート証明書とサーバー証明書より共通鍵を生成する。共通鍵暗号方式と公開鍵暗号方式に基づいて、その共通鍵で平文を暗号化したあと、共通鍵自身も公開鍵によって暗号化され受信者側へ送信される。
受信者は公開鍵暗号方式の秘密鍵で共通鍵を復号し、共通鍵暗号方式により暗号化された平文を復号化する。
具体的な例としては、
ECサイトなどでクレジットカード番号などを登録するには、このSSL接続方式を使って
暗号化されたデータを送受信するので、第三者に内容を特定されることがない。
WEBサイトのアドレスが「https://~」で始まるものも同様にSSL接続方式が適用されている。
電子データの暗号化の効果
電子データの暗号化は、人が認識可能な情報を不可解な形式に変換するプロセスを指す。通常、特定の暗号化キーを使用してこのプロセスが行われ、そのキーはデータを元の形式に戻す(つまり、復号化する)ためにも使われる。これにより、データが悪意のある者によって盗まれた場合でも、キーがなければその内容を理解することは非常に困難になってしまう。
暗号化のメリット
暗号化のメリットとして次のようなものがある。
1. データの保護:不正アクセス者が暗号化された情報にアクセスしても、適切な鍵がない限りデータの中身を読み解くことができない。
2. プライバシーの保護:パーソナルデータや機密情報は、適切に暗号化されることで保護される。
3. 法令遵守:多くの業種、特に金融や医療業界では、顧客情報を暗号化することが法律で義務付けられている。
4. 信頼性と信用の確保:データが適切に保護されていると、顧客やパートナーはより高い信頼感を持つことができる。
暗号化のデメリット
暗号化のデメリットして次のようなものがある。
1. パフォーマンスの低下:暗号化プロセスは、コンピューターシステムのパフォーマンスに影響を与える可能性があります。特に、大量のデータを暗号化および復号化する必要がある場合、そのプロセスには時間とリソースがかかる。
2. 失われた鍵のリスク:暗号化鍵が失われた場合、暗号化されたデータにアクセスすることが難しくなるか、または不可能になる可能性がある。
3. ソフトウェアの互換性:すべてのソフトウェアやシステムが全ての暗号化スタンダードをサポートしているわけではないため、互換性の問題が発生することがある。
以上が、暗号化の効果とそれぞれのメリット・デメリットとなります。電子データを適切に保護するためには、これらの要素をすべて考慮に入れた上で、適切な暗号化の方法を計画・実施することが重要である。適切な暗号化プロトコルと鍵管理を組み合わせることで、セキュリティとパフォーマンスのバランスを適切に保つことが可能である。
また、鍵の紛失を防ぐためには、適切な鍵管理ポリシーが必要です。これには、鍵の作成、保存、配布、更新、および廃棄を含むべきである。さらに、データの暗号化が必要な場合は、そのデータにアクセスするために必要なソフトウェアやハードウェアが暗号化をサポートしていることを確認することが必要である。
最後に、暗号化だけが全てのセキュリティ問題を解決するわけではないということを理解することが重要である。暗号化はセキュリティ対策の一部であり、その他の対策(例えば、セキュアなパスワードポリシー、二要素認証、セキュリティのベストプラクティスを遵守したソフトウェアの使用等)と組み合わせて用いるべきである。
“公開鍵・秘密鍵・共通鍵について” への1件のフィードバック