共通鍵暗号化方式の弱点
共通鍵暗号化方式では暗号化の鍵を1つだけ使っていました。
この方式のデメリットは、
・通信を行うメンバー全員が同じ鍵を共有しなければならない。ゆえにメンバー数(通信相手)が増えると鍵が危殆化(きたいか Compromise)しやすい。
・それではと同じ鍵を使うのは二者間だけにすればセキュリティは向上するがメンバー数が増えると必要な鍵数が爆発的に増えるためスケールしなくなる。(3人=鍵x3個、10人=鍵x45個、1,000人=...)
・1つの鍵で暗号化しているので1つの鍵を破られるとその鍵で暗号化していた通信・データがすべてが危険にさらされる)
上記の欠点を回避するために2つの鍵(秘密鍵と公開鍵)を使う方式としたのが公開鍵暗号化方式(非対象暗号化方式)です。
公開鍵暗号化方式の基本
** アリスが秘密鍵と公開鍵を作成する。この2つの鍵には数学的な特殊な関係がります。**
アリスの公開鍵で暗号化したデータはアリスの秘密鍵でないと復号できない

アリスの秘密鍵で暗号化したデータは誰でもアリスの公開鍵で復号化できる = アリスのデジタル署名 として利用できる

公開鍵を安全に(複数の)相手と共有できれば※1 アリスだけが読めるメッセージを複数の相手から送信してもらう事が可能になります。
さらにメッセージの暗号化の際に、そのひとの秘密鍵を使って署名してもらえば、だれから送られてきたメッセージかを特定できます。
※1 安全に複数の相手に公開鍵を渡す方法を実現しているのがPKIという技術
公開暗号化方式に向く処理・向かない処理
・公開鍵暗号化方式は、計算に時間がかかるため容量が大きいデータには不向き。
・主に認証、共有鍵(後述)のやり取り(=ネゴシエーション)で主に利用される。
(共有鍵をネゴシエーションしたあとで、共有鍵を使った共通鍵暗号化方式を使って暗号化する)
公開鍵暗号化方式の例
最も普及している方式としてはRSA(Ron Rivest, Adi Shamir, Leonard Adleman の3名の頭文字)があります。
現時点で一般に安全とされるRSAの強度は2,048ビットです。(共通鍵暗号化方式における112ビットの強度に相当と言われる)
また、最近ではより高速で安全とされる、楕円曲線に基づく別なアルゴリズムもあるようです。

