こんばんは、もずく・Ð・図解屋です。
魔法使いオズモンのシリーズ第3回は「電子署名」についてです。
電子署名では、公開暗号鍵とハッシュ関数を使うので、前回と前々回のオズモンシリーズをまだ読んでいない人や忘れてしまった人はお先にどうぞ。
ちなみに、本記事内のキーワードへのリンクはこれらの記事の中の画像に紐付けています。
さて、魔法使いオズモンの世界にまた新たな問題が発生しています。
今回はどんな魔法が登場するのかな…?
やあ、魔法使いのオズモンだよ💫
これまでの話にもあったように、魔法界では何かを人に送り届けるっていうのはとても危険なんだ。悪魔とか悪い魔法使いたちがたくさんいるからね。
今回取り上げる問題は、改ざん(書き換え)や詐称(勝手に名乗られる)だよ。
これは先日、本当にあった怖い話なんだけど…
アクマくんにまんまと手紙の中身を書き換えられちゃった。
おかけでマギカちゃんはご立腹。
その後もアクマくんにしてやられて、しばらくは口も聞いてもらえない状態に…
魔法カギを使えば、途中で中身を改ざんされずに手紙でもなんでも送れるんだけど、実はそれだけじゃ問題は解決しない。
たとえば、ボクの書いたものを不特定多数の人に公開するときには魔法カギは使えないし、そもそもオズモンを名乗って手紙を書かれたら魔法カギでは防ぎようがないし。
人間界では「署名」とか「印鑑」を使ってこの問題を解決しているわけだよね。
署名も印鑑(の印影)も他の人には真似できないし、署名や印影のついた書類の他の部分だけ(バレないように)書き換えるのも難しいから。
でもこちらの世界では、署名の完全な複製も、署名以外の部分をバレないように書き換えることも、魔法を使えば簡単にできるんだ。
だから、マギカちゃんに正しく手紙を送ろうと思ったら、署名の部分も手紙の部分もアクマくんに書き換えられちゃいけないわけ。
天才のボクもさすがに0.1秒くらい悩んだけど、すぐにこれまでの発明のことを思い出した。
まず、前回説明した二つの魔法カギの使い方を逆にして、自分用カギでロックして、配る用カギでアンロックする方法。
それだと誰でもアンロックできちゃうのに意味あるの…?って思うかもしれないけど、他人はアンロックした後に再ロックができないから、「オズモンがロックした」ってことが証明できるんだ。
☕ この「自分用カギでロックして、配る用カギでアンロック」という部分、厳密なことをいうと、配る用カギによるロック/自分用カギでアンロックの仕組みとは異なるんだ。「ロック」という表現は不正確なので使わないほうがいいっていう人もいるんだけど、このオズモンの解説では便宜上、この表現を使っているよ。
そして、前々回に説明したハッシュカメラを使えば、どんなものも文字列プレートにすることができる。
カメラで撮影したものがちょっとでも違ってると文字列が変わるから、配送前後の検品に使えるんだよね。
この二つをうまく組み合わせると、本文も署名も改ざんできない「魔法の署名」ができあがるんだ。
言葉で説明するのは難しいから下の図を見てみて。
基本的には、手紙を送る前と届いた後でそれぞれハッシュカメラを使って、改ざんがなかったことを確認している。
これはハッシュカメラを使った通常の検品の手順だね。
ただの検品と違うのは、こちらから送る文字列プレートを自分用の魔法カギでロックしてしまうところ。
そして、ロックされた文字列プレートを他人がアンロックできるように、ボクの配る用カギもおまけで付けちゃうんだ。
試しに、手紙が改ざんされたときのことをシミュレーションしてみよう。
まず、署名の中の文字列プレートは、魔法カギでロックされているから置き換えることができない。
正確にいうと、署名のアンロックは誰でもできるんだけど、プレートを置き換えた後で再ロックができないんだ。再ロックにはボク(オズモン)の自分用カギが必要になるからね。
あと、署名に付いている配る用カギのほうはロックされていないんだけど、このカギを交換しちゃうと、文字列プレートのロックが解除できなくなるから意味がない。
つまり、署名の中身(文字列プレートと配る用カギ)には誰も手出しできない。
仕方がないからアクマくんは手紙の本文を改ざんするしかないわけだけど、それをしちゃうと検品のときに文字列プレートが合わなくなってバレる。
この三段構えで、アクマくんによる手紙の書き換えを防ぐんだ。
どう、これで完璧…?
実は、この方法にも一つ抜け穴があるんだよね。
配る用カギをマギカちゃんに渡すところで詐称されちゃう(アクマくんがオズモンを名乗っちゃう)とダメなんだ。
マギカちゃんがその偽カギを「オズモンの配る用カギ」だと誤認しちゃうと、アクマンくんはいくらでもオズモンを語って手紙を送れるようになってしまう。
配る用カギの詐称については、ちょっと魔法界の権力(魔法局)に頼らせてもらうことにする。
つまり、みんなの配る用カギを「登録制」にしちゃうんだ。
さすがのアクマくんも、魔法局に嘘をついてオズモンを名乗ることはできないんだよね。
ここまですると、さすがにアクマくんも手が出せないってわけさ。
ところで、人間界にもインターネットというのがあって、そこでは署名が複製されたり本体のデータが改ざんされたりすることもあるらしい。
困っているというので、ボクの「魔法の署名」のアイデアを教えてあげたんだ。
人間界では「電子署名」って名付けられているけど、ボクの発明した方法と構造はまったく同じだよ。
ボクの魔法が人間界でも役に立って嬉しいよ:)
というわけで、今日は魔法の署名(電子署名)の話でした:)
次は、Bitcoinのブロックの中に含まれる「マークルツリー(Merkle tree)」の話をするよ。
少しずつ難しくなるけど、みんなついてきてね!