#103 公開鍵ってどういうこと?秘密鍵の間違いじゃないの?いくら聞いても理解できないあなたに説明
電子契約、電子署名、キャッシュレス、マイナンバー、e-TAX、暗号資産・・・
なんだか不安、どうなっているの?という人は多いはず。
それで調べると「公開鍵」「ハッシュ値」・・・と出てくる。わからん。
「鍵だから秘密でしょ」「なんで公開?」「いくら説明聞いても忘れる」というあなたに解説をします。これが最後です。わかんなきゃ諦めてください。
始めます。
フツー鍵と言えば家や自転車の鍵。これが「共通鍵」です。何が共通って「閉める」と「開ける」のに共通って意味です。家族内ではこれで十分。
でも他人が登場すると不都合となります。
鍵を手渡しを外でやりとりしなければいけません。面倒。
これがネットになるとあらかじめ鍵を共有することになります。
それで登場人物が増えると大変になる。その分だけ鍵の数が増えるからです。もし共通にしてしまうと他人に知られてしまうからです。そうすると管理が大変になります。コストや手間も大変です。
顔も知らない不特定多数になると、可能性のある全ての人とやりとりすることはもはや不可能になります。
さてどうしたらいいでしょうか?かなり難問です。
ここで「公開鍵」が登場します。
つまり、「公開鍵」はインターネットに使う鍵なのです。家など日常生活では使いません。
しかも「秘密鍵」とセットで使います。
ここまでで整理しましょう。
鍵は3種類出てきました。「共通鍵」に対して「公開鍵」「秘密鍵」ペアです。ペアに進化したのです。
続けます。
この難問に1976年にスタンフォード大学のディフィーとヘルマンはすごいことを思いついた。
『「閉める鍵」「開ける鍵」を違うものにする』というアイデアである。まだインターネットの無い時代です。
この2つは無関係ではなく、関係性があって2ついっぺんにつくる必要がある。
しかも一方向な関係でないと困る。
どういうことかと言うと、公開鍵から秘密鍵を推定できては困るからです。
魚やウナギ漁のウケみたいに入ったら出られないイメージかな。
一方向。右からするっと入ったら出られない。
たとえば、2つの数の掛け算は簡単ですけど、その数から元に戻すのはなかなかたいへんですよね。そんな感じ。
このためには整数論、素数を使います。
ある数式を使えばこのペアが計算できます。
有名なのはRSA暗号という数式です。
この、閉める鍵=暗号化=「公開鍵」、開ける鍵=復号化=「秘密鍵」 なのです。
これがネット時代に革新をもたらす便利な技術になったのです。
ECの黒子。意識せずに世界中のみんな使っている。無かったらぞっとする。
これぞイノベーションではないでしょうか!!!
さてあなたがネットショップを開店したとします。
売る相手はまだ見ぬ不特定多数のお客さんです。
まず、あなたは公開鍵と秘密鍵のペアをさっきの式でつくります。
この公開鍵をショップのウェブページに貼り付けておきます。
お客さんは、その公開鍵でデータ(住所氏名、カード番号)を暗号化します。
この暗号化データはあなたしか元に戻せません(読めません)。他の人は復号する鍵を持っていないからです。
あなたは秘密鍵を持っているので復号して読めます。読めるのはあなただけです。
この利点は、鍵ペアは1つだけでよいことです。つまり、事前に鍵を共有するとか、人によって変えるとか、鍵の一覧表を秘密に持つとか、面倒な事がいらないのです。
以上でおわりです。
※ ちなみに、事前にリーダーを無料配布しておいて、文書作成には有料のソフトを使って・・・不特定多数に読んでもらうっていうAdobeのアクロバットを思い出してくれればいいかな。PDFの話で暗号の話じゃないけどね。
_____________________________
余力のある人に、おまけ話があります。
# 104 へどうぞ
なお、もう一つのハードル「ハッシュ関数」については過去の#48をごらんください。これも重要なのは「一方向」=「ウナギ漁のウケ」です。