モデル [編集]
公開鍵暗号方式には、鍵生成アルゴリズム、暗号化アルゴリズム、復号アルゴリズムの3つのアルゴリズムがある。
鍵生成アルゴリズムは事前準備にあたるアルゴリズムで、(将来暗号文を受け取りたいと思う)全てのユーザは事前に鍵生成アルゴリズムを実行しておく必要がある。ユーザが鍵生成アルゴリズムを実行すると、アルゴリズムはそのユーザの公開鍵および秘密鍵(と呼ばれるデータ)を出力する。公開鍵は暗号文を作成するのに使い、秘密鍵はその暗号文からメッセージを復元するのに使う。
ユーザは鍵生成アルゴリズムを実行する際、セキュリティ・パラメータという値をこのアルゴリズムに入力する。セキュリティ・パラメータは、秘密鍵なしで暗号文の解読がどれだけ困難かの尺度である。
さらに鍵生成アルゴリズムには乱数も入力される。鍵生成アルゴリズムは実行ごとに異なる乱数を選ぶので、ユーザ毎に異なる公開鍵・秘密鍵ペアが割りふられる。
各ユーザは秘密鍵を秘密裏に保管し、公開鍵を皆に公開する。よってユーザの秘密鍵を知っているのはそのユーザ自身だけであるが、それに対しユーザの公開鍵を知っているのは全てのユーザである。
公開鍵、秘密鍵をそれぞれ暗号化鍵、復号鍵ともいう。
暗号文を送るには、送りたいメッセージと暗号文を送りたい相手(受信者)の公開鍵とを入力して暗号化アルゴリズムを実行する(公開鍵は公開情報なので、暗号文の送信者は受信者の公開鍵を手に入れる事ができる)。
ボディビルディング
芸術
原子力工学
グラフィックデザイン
楽譜
インダストリアルデザイン
太陽系
マラソン
風水
北海道
肥満
インディアカ
核医学
ゴルフ
性行為感染症
ポリマー
デング熱
電子工学
色素性乾皮症
農業工学
それに対し、受信者は復号アルゴリズムに自分の秘密鍵と暗号文を入力して、もとのメッセージを復元する。
復号アルゴリズムでもとのメッセージを復元することを、復号(ふくごう、decryption)と呼ぶ。(decodingの復号と同様、復号化と呼ばれることもある)それに対し、悪意のあるユーザ(攻撃者)が、復号アルゴリズムに(必ずしも)頼らず無理矢理メッセージを復元しようとする試みを攻撃 (attack) と呼ぶ。
公開鍵は公開情報であり、それに対応する秘密鍵は受信者本人しか知らない。よって公開されている公開鍵を使えば誰でも暗号文を作成できるが、それに対しその暗号文を復号できるのは受信者本人のみである。
公開鍵の認証 [編集]
安全性を確保するには、どの公開鍵がどのユーザのものであるのかという対応をきちんとつけておく必要がある。暗号化の際、受信者の公開鍵を用いていた事を思い出されたい。もし、公開鍵とユーザとの対応が間違っていると、間違ったユーザの公開鍵を使って暗号文を送信してしまう。これを悪用して、前もってあえて間違った対応表を作成することで暗号文を解くという攻撃が可能である(攻撃者はまず、自分の公開鍵をあたかも受信者の公開鍵であるかのように対応表を作る。受信者に当てて暗号文が送られたら、攻撃者はその暗号文を盗聴し、自身の秘密鍵で復号する)。
公開鍵とその持ち主を対応させる方法はいくつか考案されているが、代表的な方法は以下の2つである。
信頼できる第3者機関 (Trusted Third party) が各人のIDと公開鍵を対応付けた表(公開鍵簿)を作成し、公開する。
信頼できる第3者機関(達)が認証局を運営し、PKIの仕組みを使って各人のIDと公開鍵を対応付ける。
要件 [編集]
公開鍵暗号方式は以下の要件を満たさねばならない。
正当性 (Correctness) : 正当な受信者は、正当な方法で作成された暗号文を復号できる。
秘匿性 (Security) : 正当な方法で作成された暗号文を復号できる(もしくはメッセージのなんらかの部分情報を得られる)のは、正当な受信者のみである。