見出し画像

デジタル署名とは異なるNFT――『Web3とは何か』by岡嶋裕史 第2章 NFT④

過去の連載はこちら。

今一番売れているメタバース関連書籍。6刷です。

第2章 NFT④――デジタル署名と何が違う?

まず、NFTがデジタル署名とは違うことを先に指摘しておく。

「デジタルデータはいくらでもコピーできるし、改ざんもたやすい」ことはずっと前から知られていた。それに対する最初の態度は、「だから、デジタルデータはビジネスには使えない。おもちゃである」というものだった。

しかし、デジタルデータの利便性が社会に広まると、やっぱりデジタルデータをビジネスに使いたくなった。そこで登場したのがデジタル署名である。デジタル署名は暗号技術の応用で成り立っているので、「鍵」が頻繁に出てくる。暗号技術を一から説明するための紙幅はないし、求められてもいないと思うが、ちょっとだけ解説しておく。

共通鍵暗号

暗号の基本的な形態は、データを送る人(送信者)と受け取る人(受信者)が同じ鍵を持ち合うものだ。2人が同じ鍵を持っているので、これを共通鍵暗号と呼ぶ。

データは送られる過程で盗み読みされる危険があるが、鍵を持っていないとわけがわからない(暗号文)なので、盗み読みされても安心というわけだ。これが暗号の本質である。

人類が暗号文を使い始めたのは紀元前にまで遡るが、その歴史の大部分で共通鍵暗号を使ってきた。ところが、近年になって共通鍵暗号では不都合が起こるようになってきた。原因はインターネットである。

共通鍵暗号の欠点は、鍵の持ち合いの難しさと、鍵数の増大である。

「送信者と受信者が共通鍵を2人だけの秘密にする」のは、共通鍵暗号の絶対条件である。同じ鍵を持つ第三者が現れたら、その人には暗号文を解読されてしまう。したがって、どちらかが共通鍵を作って相手に送ることが難しい。配送中に鍵が他人に漏れる可能性があるからだ。これが「鍵の持ち合いの難しさ」だ。

また、この2人とは別に3人目や4人目の通信相手がいるならば、その人専用の共通鍵を作らねばならない。相手が100人、1000人・・・・・・と増えていけばそのぶんの鍵が必要になる。これが「鍵数の増大」である。

これまでは上手くやっていた。暗号通信を使うような人は政治家か軍人だったので、鍵を安全に配送する手段を豊富に持っていた。加えて、そんなに通信相手も多くなかった。力技で解決できる程度の問題だったのである。

しかし、インターネットがすべてを変える。インターネットではそれまで暗号通信などは別の世界の話であった市井の人々が、大量に暗号を使うようになる。オンラインショッピングなど、人に見られては困る情報を送受信する機会は無数にある。

そのたびに送信者と受信者が集まったり、書留郵便で共通鍵をやり取りすることは事実上不可能である。また、鍵の数も極端に多くなる。100人や1000人どころではない、億人単位の人々が安全のために秒単位で共通鍵を使い捨てにするのだ。管理コストは莫大なものになる。

公開鍵暗号


そこで登場したのが、公開鍵暗号である。

この暗号のアイデアが傑出しているのは、鍵を秘密鍵と公開鍵に分けたことだ。それまで、「暗号を作る鍵」と「暗号を元に戻す鍵」は同じであると考えられてきた。だってそうだろう、「abc」から「def」という暗号を作ったのであれば、「あー、アルファベットの位置をずらしたんだな。じゃあ巻き戻せば元に戻るな」と発想するのが自然である。これが「鍵が同じ」状態である。ずっとそれでやってきたのだ。

ところが、公開鍵暗号では鍵を秘密鍵と公開鍵に分離する。暗号の作り方と、戻し方が違うのだ。それなのに鍵を使えばちゃんと暗号を元に戻せる。すごいアイデアだと思う。

公開鍵暗号では、この2つの鍵は受信者がセットで作る。公開鍵は「暗号を作ること」しかできず、秘密鍵でそれを解読する。

それで何が変わるのだろう?

「鍵の持ち合いの難しさ」が解決される。公開鍵は「暗号を作る専用の鍵」である。作ることしかできないのだ。解読不能である。であれば、雑に扱ってよいのだ。Webページで公開したり、メールで送信することすらできる。

悪い人は何がしたいかというと、暗号文を不正に解読して秘密の情報を得たいのだ。だから、「暗号を作る専用の鍵」などに用はない。不正利用の役に立たないのである。だから、本来厳重に秘匿すべきものだった鍵を公開してしまうことができる。「公開鍵」の名はそこに由来する。

そして、「鍵数の増大」も解決してしまう。公開鍵は「暗号を作るだけ」の鍵なので、同じものを多くの人にばらまいていい。AさんにもBさんにも同じ鍵を使ってもらう。Aさんが作った暗号を、Bさんは解読することができない。逆もしかりである。「暗号を作るだけ」の鍵なのだから。

暗号を解読するための「秘密鍵」は受信者だけが持っている。つまり、受信者が暗号を解読できる唯一の人間である。公開鍵をばらまいても、通信の秘匿性は揺るがない。どんなに多くの通信相手がいても、同じ公開鍵を渡せばいいので鍵数は増えないのである。

デジタル署名

デジタル署名は、この公開鍵暗号を応用したものである。鍵のペアを作るところは一緒だ。「秘密鍵」と「公開鍵」である。違うのは、鍵のペアを作るのが送信者である点だ。そして、送信者が秘密鍵を持ち、受信者に公開鍵を配る。

送信者は、「これは真物だ」と高らかに宣言したいデータ(文書でも写真でも音声でもいい)があるとき、秘密鍵を使って「署名」する。具体的にはデータを加工する。その上で、データを受信者に送る。

それを受け取った受信者は、公開鍵を使ってデータを「検証」する。もし、送信中にデータが誰かに改ざんされていたり、送信者を偽って嘘のデータが送られていた場合、この検証は上手くいかない。したがって、「本人が作った(確認した)データであるか否か」がわかる。また、送信者が都合が悪くなって、「そんなデータを俺は作っていない」と言い抜けることもできなくなる。公開鍵でちゃんと検証できる署名を作れるのは、ペアの片割れの秘密鍵だけで、その秘密鍵を持っているのは送信者本人だけだからだ。

もちろん、公開鍵暗号にしろ、デジタル署名にしろ、秘密鍵が漏れてしまえば「秘匿通信」や「本人が作ったデータ」である根拠は崩れてしまうのだが、私たちはこういうしくみを使いこなしてデジタルデータをビジネスに活用している。(続く)


光文社新書ではTwitterで毎日情報を発信しています。ぜひフォローしてみてください!