公開鍵暗号方式とは
公開鍵暗号方式とは、暗号化と復号に別々の鍵を用いる暗号方式です。
公開鍵暗号方式では、「暗号文を作り出す鍵」と「暗号文を元に戻す鍵」が異なります。
暗号通信を行う場合、2つの鍵のペアを作成して片方を「公開鍵」として公開し、もう片方を「秘密鍵」として秘匿しておきます。
「秘密鍵」は、文書の作成の場合を例にとると、文書の作成者本人でないとわからない鍵です。
この鍵を使って、文書を暗号化して送信します。
一方、秘密鍵から作り出されるのが公開鍵です。公開鍵は、暗号化された文書を復号化するための鍵であり、認証局などで発行します。
文書の受信者は、公開鍵を使って、暗号を復号化し、解読が可能です。受信者はあらかじめ送信者から認証局を経由して公開鍵を送付されており、公開鍵でその暗号を解読します。
公開鍵とは
「公開鍵」とは、「通信を復号化するときに使う鍵」です。
先述した公開鍵暗号方式で使われる2種類の鍵のひとつで、後述する「秘密鍵」から作られます。
公開鍵を作成するのが、CA=認証局といわれる機関であり、電子証明書に公開鍵を載せて、受信者に送信することとなります。
なお、公開鍵は通信を暗号化する際に必要なものですが、公開鍵は第三者に公開することが可能です。
秘密鍵とは
「秘密鍵」とは、「通信を暗号化するときに使う鍵」です。
「公開鍵」と対になるものです。公開鍵との違いは、秘匿されている点です。秘密鍵自体は公開されず、秘密鍵は特定のユーザーのみが持っています。
秘密鍵によって暗号化された通信は、第三者に読み取られません。また、あらかじめ公開鍵を知っている受信者のみが、復号化することができます。
公開鍵暗号方式の仕組み
公開鍵暗号方式の仕組みは以下の通りです。
- 送信者が秘密鍵を使い暗号化
- 受信者が認証局から公開鍵を取得
- 受信者が暗号化した文を受け取る
- 受信者が暗号文を公開鍵で解読
このような流れで、公開鍵を持っている人が暗号を解くことができる仕組みとなっています。
共通鍵暗号方式との違い
「公開鍵暗号方式」と一緒に出てくる単語として「共通鍵暗号方式」があげられます。
明確な違いは鍵の数であり、共通鍵暗号方式で使う鍵は1つだけです。
送信者が、共通鍵を使って暗号化したのち、受信者は共通鍵を使って暗号文を解読しますが、異なる鍵を発行する工程も省けるので、少ない工程で暗号化することが可能です。
シンプルな仕組みな分、公開鍵暗号系と比べて処理が高速なことがメリットとしてあります。
しかし、盗聴されると共通鍵も解読されてしまう恐れがあるため、鍵の受け渡しに注意を要します。
公開鍵暗号方式を含む暗号方式での暗号化は情報通信には必須
ここまで暗号化について解説してきましたが、暗号化は具体的にどんなことに役立つのかがピンとこない方もいるのではないでしょうか。
現在、リモートワークが増加したことを受けて、契約書なども、印鑑を使って調印するのではなく、電子署名が多用されています。電子署名にも、公開鍵暗号方式を使っているものがあります。電子証明書を利用した電子署名がそれです。
また、暗号化は「情報漏洩対策」「内部不正対策」に有効であり、情報通信をするには必須といえる存在です。不正アクセスをされて、通信内容が第三者に盗聴されても解読する手段が無ければ情報が漏えいせずに済みます。
近年では「SSL暗号化通信」と呼ばれる技術が普及しており、「公開鍵暗号方式」と「共通鍵暗号方式」を組み合わせて、個人情報などの保護に使われています。SSL暗号化通信に利用される技術の中でも、サーバ証明書という電子証明書の技術は、公開鍵暗号方式を使っているものであり、これにより盗聴に強い通信を行うことができます。
ECサイトや、金融機関のサイトは、個人情報の保護が気になるところです。これらのWebサイトでSSL暗号化通信が使われているかどうかは、URLで確認することができます。「https」から始まるものが適用されている証です。
公開鍵方式によると、内部不正による情報漏洩にも対応できます。
公開鍵暗号方式では解読するのに特定のユーザーしか持たない秘密鍵が必要です。その仕様上、内部不正で解読前の暗号化ファイルが流出しても、中身を確認できない以上、情報が漏洩することはありません。そのため、悪意を持って内部から不正に情報を持ち出そうとする人物に対しても対策できるのです。
公開鍵暗号方式や共通鍵暗号方式で使われる暗号の種類
公開鍵暗号方式で利用されている、暗号アルゴリズムの種類として代表的なのは、RSA方式です。素因数分解をつかった暗号であり、復号化するためには数百桁の数字の素因数分解を行うことになるので、なかなか破られない暗号といえ、公開鍵に利用されています。
中でも現在主流であるのは、2048ビット(617桁)のSHA2形式RSA暗号であり、その鍵の長さ(桁数の長さ)からスーパーコンピューターを使っても破られにくいとされています。
その他、公開鍵暗号方式で利用されているのは、ElGamalRC4などの暗号化アルゴリズムです。RSAの鍵が長いことから、短い鍵の長さでも、破られにくい暗号アルゴリズムを利用する必要がある場合などは、ElGamalRC4など、他の形式の暗号化アルゴリズムを使います。
また、共通鍵暗号方式では、RC4、DES、3DES、AESなどのアルゴリズムを利用します。これらの暗号は、接続先に対して、個別に生成されるものです。RSA方式よりも鍵の長さが一般的には短く、処理が早いことがメリットです。
しかし、鍵の受け渡しの際に盗聴されることがあるので、現在この欠点を補うハイブリッド方式も使われています。鍵の受け渡しの際には、公開鍵を利用し、それ以外では、共通鍵暗号を用いて処理を高速化します。SSL/TLS通信などで使われるものです。
まとめ
公開鍵は、通信を暗号化する秘密鍵とワンセットで利用され、復号化のために用いられます。
共通鍵暗号よりも、盗聴に強い特性があります。公開鍵暗号方式は、電子署名や、Webサイトの暗号化、あるいは情報漏えい対策のために利用されています。
中でもRSAアルゴリズム(SHA2)による暗号化は、盗聴されにくく、破られにくい特性があるので、電子署名などでも主流とされています。