読み方 : こうかいかぎあんごう

公開鍵暗号 【public key cryptosystem】 非対称鍵暗号 / asymmetric key cryptosystem

概要

公開鍵暗号(public key cryptosystem)とは、暗号方式の一つで、対(ペア)になる2つの暗号鍵を作り片方でデータの暗号化、もう一方で復号を行う方式。通常、暗号化に用いる鍵は公開し、復号に用いる鍵は秘密にする。片方の鍵からもう片方を効率よく割り出すことはできないようになっている。

解説 1976年にウィットフィールド・ディフィー(Whitfield Diffie)氏とマーティン・ヘルマン(Martin E. Hellman)氏によって基本原理が考案された。具体的な暗号方式として世界で初めて公表されたのは、1977年にロナルド・リベスト(Ronald L. Rivest)氏、アディ・シャミア(Adi Shamir)氏、レオナルド・エーデルマン(Leonard M. Adleman)氏が考案したRSA暗号である。

暗号化に用いる暗号鍵は誰に知られてもよいため公開鍵public key)と呼ばれ、復号に用いる鍵は本人しか知らないよう管理する必要があるため秘密鍵secret key)と呼ばれる。ある相手に暗号文を渡したいときにはその人の公開鍵を入手して暗号化することで、秘密鍵を知る本人しか復号できない暗号文を得ることができる。

最もよく知られるRSA暗号ではこれとは逆に、秘密鍵暗号化して公開鍵で復号することも可能だが、これはほとんどの公開鍵暗号方式ではできない珍しい性質で、一般的な特徴ではない。

共有鍵暗号と公開鍵暗号

公開鍵暗号が発明される以前の暗号は単一の暗号鍵暗号化と復号の両方を行うものしかなかったが、現在ではこのような暗号は「共通鍵暗号」(共有鍵暗号/秘密鍵暗号/対称鍵暗号)と呼ばれる。

公開鍵暗号は復号のための鍵を完全に秘匿したまま運用でき、共有鍵で必要となる鍵を安全に相手に配送するために高コストの手段(人が訪ねて手渡しする等)を用意する必要がなく、配送途上で盗み取られて解読される危険もないという利点がある。

一方、共有鍵暗号より暗号化や復号の処理が複雑で、同程度の暗号強度を得るのにより多くの計算資源や計算時間を必要とする。両者の特徴を組み合わせ、通信データの暗号化自体は共有鍵暗号を利用し、共有鍵を安全に受け渡す手段として公開鍵暗号を利用する「ハイブリッド暗号」もよく用いられる。

秘密鍵解読の困難性

秘密鍵公開鍵の鍵ペアを生成するのは容易な一方、公開鍵から秘密鍵を推測したり割り出したりするのはコンピュータによる解析でも極めて困難になるよう設計されている。

この困難さは数学上の問題を背景にしており、例えばRSA暗号は数十桁もある巨大な2つの素数をかけ合わせた数を素因数分解する効率的な手法は発見されていないことを利用する。素数を元に秘密鍵を、素数の積を元に公開鍵を生成すれば、現代の技術では現実的な計算資源や時間で効率よく公開鍵から秘密鍵を割り出すことはできない。

同様に、ElGamal暗号Diffie-Hellman鍵交換DSAデジタル署名アルゴリズム)では離散対数問題と呼ばれる数学上の問題を、楕円曲線暗号では楕円曲線上の離散対数問題と呼ばれる問題を秘密鍵解読の困難性の担保としている。

公開鍵暗号とデジタル署名

公開鍵暗号の原理(必ずしも公開鍵暗号そのものとは限らない)と暗号学的ハッシュ関数を組み合わせ、文書やメッセージにすり替えや改竄が行われていないことや、確かに作成者・送信者本人のものであると証明する短いデータを生成することができる。文書データの末尾などに添付され、サインや印鑑のような働きをするため「デジタル署名」(digital signature)と呼ばれる。

メッセージの送信者は本人しか知らない秘密鍵と本文を元に一定の手順で算出した固定長の暗号データをメッセージに添付し、相手方に送る。受信者は受け取った本文と、送信者の公開鍵などを用いて一定の手順で同様のデータの算出を試み、添付されたものと照合する。両者が一致すれば、メッセージが確かに送信者本人のものであり、かつ伝送途上で第三者による改竄やすり替えが行われていないことが確認できる。

公開鍵証明書とPKI

公開鍵暗号は共有鍵のように復号のための鍵を盗み取られる危険は少ないが、暗号化のために相手の公開鍵を入手する際、信用できない経路を用いることで悪意のある第三者によって偽物にすり替えられる別の危険性がある。

確実に相手の公開鍵を入手するには共有鍵のように安全な別の経路で共有するのも一つの手段だが、それでは結局同じように高いコストがかかってしまう。危険な経路でも安全に鍵を受け渡すため、公開鍵に信頼できる第三者がデジタル署名した「デジタル証明書」(公開鍵証明書)を渡し、鍵の真正性を確認できるようにするという方式が考案された。

証明書を検証するには発行者(認証局という)の公開鍵が必要となるため、受信者は送信者が利用する認証局の公開鍵を安全に入手しなければならない。しかし、世の中のすべての認証局の公開鍵をあらかじめ揃えておくことは現実的ではない。

このため、実際にはWebブラウザなど公開鍵暗号を利用するソフトウェアには世界的に有力な大手商用認証局や政府機関の認証局の公開鍵が安全な方法であらかじめ組み込まれており、各認証局は自らの公開鍵をそれら最上位の認証局(ルート認証局)が発行した証明書として提供している。このように、インターネットのみで公開鍵暗号を安全に運用できるようにするために築かれた社会的基盤のことをPKI(Public Key Infrastructure公開鍵基盤)という。

(2018.7.25更新)

他の用語辞典による「公開鍵暗号」の解説 (外部サイト)

資格試験などの「公開鍵暗号」の出題履歴

▼ ITパスポート試験
令6 問57】 暗号化方式の特徴について記した表において、表中の a〜d に入れる字句の適切な組合せはどれか。
暗号方式鍵の特徴鍵の安全な配布暗号化/複合の
相対的な処理速度
[ a ]暗号化鍵と復号鍵が異なる容易[ c ]
[ b ]暗号化鍵と復号鍵が同一難しい[ d ]
abcd
共通鍵暗号方式公開鍵暗号方式遅い速い
共通鍵暗号方式公開鍵暗号方式速い遅い
公開鍵暗号方式共通鍵暗号方式遅い速い
公開鍵暗号方式共通鍵暗号方式速い遅い
令4 問60】 公開鍵暗号方式で使用する鍵に関する次の記述中のa, bに入れる字句の適切な組合せはどれか。それぞれ公開鍵と秘密鍵をもつA社とB社で情報を送受信するとき、他者に通信を傍受されても内容を知られないように、情報を暗号化して送信することにした。
令3 問76】 IoTデバイス群とそれを管理するIoTサーバで構成されるIoTシステムがある。全てのIoTデバイスは同一の鍵を用いて通信の暗号化を行い、IoTサーバではIoTデバイスがもつ鍵とは異なる鍵で通信の復号を行うとき、この暗号技術はどれか。
令2秋 問97】 公開鍵暗号方式では、暗号化のための鍵と復号のための鍵が必要となる。4人が相互に通信内容を暗号化して送りたい場合は、全部で8個の鍵が必要である。
平31春 問75】 AさんはBさんだけに伝えたい内容を書いた電子メールを、公開鍵暗号方式を用いてBさんの鍵で暗号化してBさんに送った。この電子メールを復号するために必要な鍵はどれか。
平30秋 問93】 公開鍵暗号方式を利用した処理と、その処理に使用する公開鍵の組合せ a〜c のうち、適切なものだけを全て挙げたものはどれか。
平28春 問87】 公開鍵暗号方式を用いた機密データの受渡しに関する記述中のa、bに入れる字句の適切な組合せはどれか。データの受信者Aは、自分の [  a  ] 鍵と [  b  ] 鍵を用意して [  a  ] 鍵を送信者Bに送付する。
平26秋 問77】 暗号化通信で使用する鍵 a~c のうち、セキュリティ上、第三者に知られてはいけないものだけを全て挙げたものはどれか。a 共通鍵暗号方式の共通鍵b 公開鍵暗号方式の公開鍵c 公開鍵暗号方式の秘密鍵。
平23秋 問84】 暗号化又は復号で使用する鍵 a~c のうち、第三者に漏れないように管理すべき鍵だけを全て挙げたものはどれか。a 共通鍵暗号方式の共通鍵b 公開鍵暗号方式の公開鍵c 公開鍵暗号方式の秘密鍵。
平22秋 問55】 データ通信における暗号化技術に関する記述のうち、適切なものはどれか。
平22春 問54】 Xさんは、Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を秘密にする必要があるので、公開鍵暗号方式を用いて暗号化して送信したい。
平21秋 問74】 データの送信側は受信者の公関鍵で暗号化し、受信側は自身の秘密鍵で復号することによって実現できる対策はどれか。
平21春 問77】 暗号化に関する記述のうち、適切なものはどれか。

▼ 基本情報技術者試験
令4修1 問36】 素因数分解の困難性を利用した公開鍵暗号方式はどれか。
令4修1 問40】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
令2修12 問39】 AさんがBさんの公開鍵で暗号化した電子メールを,BさんとCさんに送信した結果のうち,適切なものはどれか。ここで,Aさん,Bさん,Cさんのそれぞれの公開鍵は3人全員がもち,それぞれの秘密鍵は本人だけがもっているものとする。
令1修7 問37】 AさんがBさんの公開鍵で暗号化した電子メールを,BさんとCさんに送信した結果のうち,適切なものはどれか。ここで,Aさん,Bさん,Cさんのそれぞれの公開鍵は3人全員がもち,それぞれの秘密鍵は本人だけがもっているものとする。
令1修6 問39】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平30修12 問36】 非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式はどれか。
平30修7 問39】 Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を他人には秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。
平30修6 問41】 公開鍵暗号方式の暗号アルゴリズムはどれか。
平30春 問38】 AさんがBさんの公開鍵で暗号化した電子メールを,BさんとCさんに送信した結果のうち,適切なものはどれか。ここで,Aさん,Bさん,Cさんのそれぞれの公開鍵は3人全員がもち,それぞれの秘密鍵は本人だけがもっているものとする。
平29秋 問38】 非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式はどれか。
平29春 問40】 公開鍵暗号方式の暗号アルゴリズムはどれか。
平29修1 問37】 Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を他人には秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。
平28修12 問39】 公開鍵暗号を使ってn人が相互に通信する場合,全体で何個の異なる鍵が必要になるか。ここで,一組の公開鍵と秘密鍵は2個と数える。
平28修6 問40】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平27秋 問38】 Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を他人には秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。
平27春 問40】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平27修1 問36】 非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式はどれか。
平26修12 問37】 公開鍵暗号を使ってn人が相互に通信する場合,全体で何個の異なる鍵が必要になるか。ここで,一組の公開鍵と秘密鍵は2個と数える。
平26修6 問39】 Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を他人には秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。
平25修12 問41】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平25春 問39】 Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を他人には秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。
平25修1 問41】 図は公開鍵暗号方式による機密情報の送受信の概念図である。a,b に入れる鍵の適切な組合せはどれか。
ab
受信者の公開鍵受信者の秘密鍵
受信者の秘密鍵受信者の公開鍵
送信者の公開鍵受信者の秘密鍵
送信者の秘密鍵受信者の公開鍵
平24秋 問38】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平24修6 問40】 非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式はどれか。
平24春 問41】 文書の内容を秘匿して送受信する場合の公開鍵暗号方式における鍵と暗号化アルゴリズムの取扱いのうち,適切なものはどれか。
平23修12 問42】 Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。
平23修7 問41】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平23春 問42】 非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式はどれか。
平23修1 問42】 図は公開鍵暗号方式による機密情報の送受信の概念図である。a,b に入れる鍵の適切な組合せはどれか。
ab
受信者の公開鍵受信者の秘密鍵
受信者の秘密鍵受信者の公開鍵
送信者の公開鍵受信者の秘密鍵
送信者の秘密鍵受信者の公開鍵
平22春 問42】 公開鍵暗号方式に関する記述として,適切なものはどれか。
平21修12 問40】 文書の内容を秘匿して送受信する場合の公開鍵暗号方式における鍵の取扱いのうち,適切なものはどれか。
平21秋 問42】 公開鍵暗号方式を用いて,図のようにAさんからBさんへ,他人に秘密にしておきたい文章を送るとき,暗号化に用いる鍵Kとして,適切なものはどれか。
平21修6 問41】 メッセージの漏えいを防止するために,公開かぎ暗号方式を用いて電文を送受信する手順はどれか。