公開鍵暗号方式、RSA、公開鍵、秘密鍵
奇妙なことですが,ドアを閉める鍵(暗号鍵)と開く鍵(復号鍵)が全く異なる鍵(ビット列)にすることができるのです。 ☆
公開鍵暗号方式のRSAは,「素数と素数の掛け算は簡単だが、その逆の素因数分解は難しい」数学的な一方向性に基づいています。数百桁の数の素数の積を用いて公開鍵と秘密鍵を生成するのですが,このような素数から生成された一方の値から他方を求めるには巨大数の素因数分解をすることになりますが,それには膨大な計算が必要で、現在のコンピュータを使って現実的な時間内に答えを出すことは不可能です。なお,最近では,楕円曲線暗号という方式が注目されています。
また,将来のコンピュータとして量子コンピュータが注目されています。これを用いると現在のコンピュータが数百年かかる計算を数秒で計算してしまうといわれ,量子コンピュータが実現したら,公開鍵暗号方式が役立たなくなるともいわれています。
ドアを閉めるのは誰に閉められても困りませんから,暗号鍵は公開してもかまいません。ドアを開く復号鍵だけを秘密にすればよいのです。
暗号鍵を公開するのでこの方式を公開鍵暗号方式といいます。この方式の代表的なものにRSA(Rivest Shamir Adleman:開発者3人の名前)があります。そして,この場合の暗号鍵を公開鍵,復号鍵を秘密鍵といいます。

公開鍵暗号方式で送信者Aが受信者Bに暗号文を送るときには、次のようになります。
・送信者は、Bの公開鍵で電文を暗号化する。
Bの公開鍵は公開してある。
Webページで公開してもよいし、FORMのなかに組み込んでもよい。
それで、誰でもBに暗号文を送ることができる。
・受信者BはBの秘密鍵で復号する。
Bの秘密鍵は、Bだけがもっている。
第三者がAからの電文を見ても、復号できない。
これにより、共通鍵暗号方式の欠点が回避できます。
・暗号化する鍵を送る途中で第三者に秘密にする必要がない。
・不特定多数と暗号で通信する場合も、自分の秘密鍵1つを管理するだけでよい。
このように、公開鍵暗号方式は優れた方式なため、広く用いられています。しかし、共通鍵暗号方式にくらべて暗号化や復号に時間がかかる欠点があります。(→ ハイブリッド暗号方式)