企業間のメールの送受信やネットバンキング、ネットショッピングの決済時など、暗号化は情報の秘匿性を高めるために不可欠な技術です。暗号化を正しく活用するには、暗号化に使われる公開鍵・秘密鍵について理解していることが重要です。
この記事では、公開鍵・秘密鍵の概要や暗号方式の仕組み、必要性や公開鍵暗号方式の種類について解説するので、暗号化の導入や活用に役立ててください。
目次
公開鍵とは
公開鍵とは、通信を暗号化するときに使うキーのことです。公開鍵暗号方式で使われる2種類の暗号鍵の一つで、誰でも利用できるように広く公開されています。
秘密鍵から作られ、その秘密鍵と対となることで高い秘匿性を実現し、電子署名(デジタル署名)にも活用が可能です。
秘密鍵とは
秘密鍵とは、対になる公開鍵で暗号化された通信を復号化するために使うキーのことです。特定のユーザーのみが持つため、公開鍵によって暗号化された電子メールなどの通信は、第三者に読み取られる心配がありません。
公開鍵から秘密鍵を数学的に特定するのは、現実的に不可能だといわれています。宝箱を開けられる唯一の鍵を、ユーザーだけが保有しているイメージです。
公開鍵暗号・共通鍵暗号の仕組み
公開鍵と秘密鍵を使って暗号化するのが「公開鍵暗号方式」ですが、その仕組みはどのようになっているのでしょうか。ここでは共通鍵暗号方式も取り上げて、暗号化の仕組みを詳しく紹介します。
公開鍵暗号方式:公開鍵と秘密鍵を使った暗号方式
公開鍵暗号方式では、暗号化に公開鍵、復号化に秘密鍵を利用します。具体的な手順は、以下のとおりです。
- 1.受信者が秘密鍵から公開鍵を作成し送信者に渡す
- 2.送信者が、その公開鍵を使って通信内容を暗号化する
- 3.暗号化された文書を受信者が受け取る
- 4.受信者が秘密鍵を用いて復号し中身を確認する
公開鍵で暗号化された文書は、対になる秘密鍵を用いないと復号できません。そして秘密鍵は、公開鍵を作成するユーザーのみが保有できます。そのため、暗号化されたデータの第三者による解読は非常に困難です。
共通鍵暗号方式:共有鍵を使った暗号方式
共通鍵暗号方式とは、暗号化や復号する際、当事者間で同一のキーを用いる暗号方式です。送信者側は共有鍵で通信内容を暗号化し、受信者側は同じ共有鍵で通信内容を復号します。
暗号化と復号に必要なキーは、当事者間のみで所有できます。そのため、比較的セキュアな環境で暗号文を送信可能です。また共通鍵暗号方式は、公開鍵暗号方式より暗号化・復号の処理が高速だといわれています。
ただし、鍵を当事者間で共有するため、鍵の漏えいリスクは公開鍵暗号方式より高めです。通信を行う当事者が増えるほど、暗号文を第三者に解読される可能性が高まります。
暗号化の必要性
ここでは、公開鍵や秘密鍵を用いて暗号化を行う理由を再確認しておきましょう。暗号化が必要な理由として、情報漏えい防止や内部不正の抑止につながるためです。ここでは、それぞれのメリットも含め詳しく解説します。
情報漏えいを防げる
仮に、通信内容が第三者の手に渡ったとしても、暗号化されていて解読する手段がなければ、内容を読み取られることはありません。暗号化された文書が漏えいしても、情報の漏えいにはならないわけです。特に、秘匿性の高い暗号方式を利用すれば、ツールを用いたとしても簡単に解読するのは困難でしょう。
最近は、常時SSL化したサイトも増えてきました。SSL通信とはユーザーの通信内容を、公開鍵暗号方式や共通鍵暗号方式によって暗号化してくれる機能です。SSL通信を利用すれば、ブラウザから入力した個人情報を通信途中で盗み読まれるリスクが低くなります。そのサイトを利用している間は、常にセキュアな環境でインターネットの利用が可能です。
このように秘密鍵と公開鍵は情報漏えいを防ぐ仕組みとして、身近な技術に活用されています。
内部不正の抑止になる
公開鍵暗号方式では、復号に特定のユーザーが保有する秘密鍵が必要です。そのため、内部不正などにより暗号化ファイルが外に持ち出された場合も、高い秘匿性を維持できます。仮に流出したのが重要データだとしても、中身を読み取られない以上、情報が漏えいすることはありません。
また暗号化ソフトの中には、遠隔操作でファイルを自動削除できるものや、ファイルの追跡ができる製品もあります。そのため流出経路などから、内部不正を行った犯人を特定することも可能です。このような機能があるとわかれば、内部不正をしようとする人も減るでしょう。
公開鍵暗号方式で使用する暗号化の種類
公開鍵暗号方式には以下の種類があります。
- ・RSA暗号方式
- ・DSA署名方式
- ・ECDSA署名方式
3つの暗号化方式について詳しく解説します。
RSA暗号方式
RSAはRivest-Shamir-Adleman cryptosystemの略で、公開鍵暗号方式の代表的な種類です。公開鍵暗号方式だけではなく、デジタル署名にも活用できます。
RSA暗号方式は素数の積から公開鍵を生成し、元になった素数から秘密鍵を生成する仕組みの暗号方式です。桁数が多い数字を素因数分解するには、総当たりする以外に素因数を見つけ出す方法がないため、コンピュータを活用しても膨大な時間がかかります。また、一般的にはスーパーコンピュータでも解読が困難な2,048bitの鍵長が活用されており、暗号化の安全性が高められています。
DSA署名方式
DSAはDigital Signature Algorithmの略で、デジタル署名専用の暗号化方式として活用されています。離散対数問題を利用した正の整数同士の演算を用いた公開鍵暗号方式です。
離散対数問題とは、「素数pと自然数gが与えられたとき、ある自然数xに対してgのx乗をpで割った余りyを求めるのは容易だが、yからxを求めるのは困難である」という数学の問題です。DSA暗号方式では、pやgからyを含む公開鍵を生成し、xから秘密鍵を生成します。
ECDSA署名方式
ECDSAはElliptic Curve Digital Signature Algorithmの略で、楕円曲線上の離散対数問題を活用したデジタル署名方式です。DSAより短い鍵長で同等の安全性を得られることが特徴の公開鍵暗号方式です。
ECDSA署名方式は、楕円曲線と呼ばれる数式によって定義される特殊な加算法(楕円曲線上の有理点同士の加算)を基本的な計算として、公開鍵と秘密鍵を生成します。
暗号化ソフトでセキュリティを強化しよう
公開鍵暗号方式では、通信内容を公開鍵で暗号化し秘密鍵で復号します。秘密鍵は特定のユーザーしか保持できません。そのため、セキュアな環境で秘匿性の高いデータ通信が可能です。また、仮に暗号化ファイルが物理的に持ち出されたとしても、中身を解読されない限り、情報漏えいの心配はありません。ソフトによって流出経路を追跡し犯人を特定することもできます。
チェックテスト
チェックテストを確認する
公開鍵で暗号化された通信を復号化するために使う鍵の名前をdiscordで共有ください。