03 / 公開鍵暗号
RSAのような公開鍵暗号は「誰でもかけられるが、特定の人しか開けられない南京錠」に例えられます。ここでは、その考え方を小さな数字で体験します。
あなた(受信者)は「公開鍵」と「秘密鍵」の2つを持っています。公開鍵は誰に見せても構いませんが、秘密鍵は誰にも渡しません。
実際の n は 33 のような小さな数ではなく、数百桁の巨大な数です。33 = 3 × 11 のように簡単に素因数分解できてしまうと、秘密鍵が計算で割り出せてしまうため危険です。今回は「仕組みを見るため」にあえて小さくしています。
0〜25 の数字を1つ選んでください(A=0, B=1... のようなイメージ)。これがあなたの「秘密のメッセージ」です。送信者はあなたの公開鍵だけを使ってロックします。
ロックされた数字 c だけを見て、元の数字を当てられるでしょうか? 秘密鍵 d を知らないと、計算では簡単に戻せません。
受信者だけが持つ秘密鍵 d を使うと、簡単に元のメッセージへ戻せます。
この「ロックは誰でもできるが、開けるのは鍵を持つ人だけ」という非対称性が公開鍵暗号の核心です。ウェブサイトが https で安全に通信できるのも、この仕組みが土台になっています。