見出し画像

企業や個人の秘密を守るゼロ知識証明


ゼロ知識証明

概要

 ゼロ知識証明とは、情報ネットワークを介して「自分が知っている秘密の情報」を誰にも見せることなく、その情報が「本当であること」を証明することができるやり取りの方法です。
 通常、証明のために、何らかの検証を行う場合、情報の通信相手に秘密情報(パスワードなど)を提示する必要があります。この方式においては、技術の発展や応用などにより安全性が高まりつつありますが、秘密情報自体を提示しない方式として、ゼロ知識証明を導入する技術も研究・開発されています。
 ゼロ知識証明の導入は、例えば個人や企業に以下の恩恵をもたらします。

  • 住所(個人情報)を店員に知られることなく、20歳以上であることを証明

  • 預金残高や取引価格を明らかにせずに、商品の購入が可能

  • 独自に構築した生成AIの学習データに、他者の著作物が含まれていないことを何も開示せずに証明

ゼロ知識証明による年齢確認のイメージ

要素技術

 ゼロ知識証明の導入方法は様々ですが、次の基本原則を満たしている必要があります。ここでは、証明を検証する側の人を検証者と呼びます。

  • 完全性:秘密情報が真であれば、悪意のない検証者はその情報が本物であると納得できる

  • 健全性:秘密情報が偽であれば、悪意のない検証者はその情報が本物であると納得できない

  • ゼロ知識性:秘密情報が正しいということのみ、検証者に伝える

 また、ゼロ知識証明は「対話型プロトコル」と「非対話型プロトコル」の2種類に大別できます。以下では、「上記基本原則をどう満たしているのか」に焦点を当て、それぞれのプロトコルを解説します。

1.対話型プロトコル
 対話型プロトコルとは、証明者が秘密情報を一切開示することなく、検証者とデータのやり取り(対話)を行い、検証者に秘密情報が正しいことを納得させる方法です。
 例として、ある雑誌に掲載された数独®[※]に答えが存在することを、その雑誌の出版社が購入者に証明するとします。答え(秘密情報)を共有せず、答えがあることを証明するには次のような手順を取ります。
※:数独®:株式会社ニコリの登録商標

数独®の問題例

A)出版社は、各マスにカードを3枚ずつ配置(あらかじめ埋まっている箇所は表、それ以外は裏)
B) 購入者は検証したい行・列・ブロックを指定し、カードを選択(計9枚)
C)出版社は選択されたカードを全て裏に返し、シャッフルして購入者に譲渡
D) 購入者は9枚に重複が無いことを確認
購入者は納得いくまで(もしくはカードが無くなるまで)BからDの作業を繰り返し実行

数独®における対話型のゼロ知識証明

 数独®は縦・横・ブロックごとの数字に重複が無ければ問題として成立するため、答えが存在すると言えます。Cの作業において出版社が悪意を持たない(偽の情報を購入者に伝える)という前提にはなりますが、完全性・健全性・ゼロ知識性が保証されるため、このプロトコルはゼロ知識証明であると説明可能です。

2.非対話型プロトコル
 非対話型プロトコルは、検証者とデータのやり取り(対話)を行わず、検証者に秘密情報が正しいことを納得させる方法です。以前のテクノロジーレポート(デジタル社会での信頼性を向上させるVerifiable Credentials)で紹介した、Verifiable Credentials(以下、単数形:VC、複数形:VCs)を例に取って非対話型プロトコルを説明します。
 AliceはKevinに対して、TD大学の卒業生であることは証明したいですが、それ以外の情報は教えたくないと考えています。下図の仕組みを実現するにあたり、以下でSD-JWT(ゼロ知識性無し)や、BBS署名(ゼロ知識性あり)における完全性・健全性の実現方法を説明します。その後、プライバシーリスクに焦点を当て、ゼロ知識性の必要性を説明します。

Verifiable Credentialの検証例 (VP:Verifiable Presentation)

2-1.SD-JWT(Selective Disclosure for JWTs)
 SD-JWTとは、選択的開示を実現するフォーマットであり、同時にデータの完全性と健全性を確保するプロトコルでもあります。簡単なSD-JWTのデータフローを下図に示します。TD大学は暗号化・変換を経てAliceにVCを発行します。その中で「見せたくない情報(年齢・学部/学科)」があれば、削除してKevinに送付します。Kevinは残った「見せても良い情報」と記載されているハッシュ値を比較することで、開示された情報が正しいかどうかを確認することができます。

SD-JWTのデータフロー(簡略版)

2-2.BBS署名
 BBS署名とは、選択的開示を実現する署名スキームで、データの完全性と健全性を損なうことなくゼロ知識性を確保します。具体的には以下の実現が可能です。

  • 見せたくない内容やVCs全体に関する情報を一切明らかにしない

  • 同時に、公開されたメッセージの完全性や健全性を保証する

上記2点を実現する上で、Kevin(情報の受け手)は次の事項を確認できなければなりません。

  • 開示された情報が改ざんされていないか。(電子署名により確認)

  • その電子署名は有効か。

 下図に、VCの発行フローとVPの検証フローを示します。[※1]
 TD大学では、電子署名やメッセージを操作して変数A,Bを算出し、これらを暗号化することで元のVCの想起が困難になります。Aliceは必要な情報のみを開示し、見せたくない情報は暗号化してKevinに送ります。これにより、秘密情報を保持しつつ、必要な情報のみを相手に伝えることができます。Kevinは検証フローに従って、情報の完全性とゼロ知識性を確認できます。[※2]
 近い将来、BBS署名では範囲の証明[※3]が実現可能となりますので、よりプライバシーに配慮したプロトコルと言えます。

※:参考 (The BBS Signature Schemedraft-irtf-cfrg-bbs-signatures-05)
※1:BBS署名は楕円曲線暗号のペアリングの性質を活用しているため、検証フロー「Step4. 開示された内容の検証」や「Step5. 電子署名の検証」における“=”は、純粋な数値的等式ではなく暗号学的な関係性を表現
※2:発行と検証プロセスにおけるT1やT2の算出過程が異なるのはメッセージのゼロ知識性を実現するため)
※3:例えば具体的な年齢を伝えるのではなく、20歳以上と特定の範囲に収まることを証明

BBS署名におけるVCの発行及びVCの選択的開示(概略)
BBS署名におけるVPの検証フロー

2-3. 両プロトコルの比較
 両プロトコルを比較すると、ゼロ知識性を有しないSD-JWTには相関攻撃を受けるリスクが存在します。相関攻撃とは、悪意ある攻撃者が複数の情報/データを収集し、特定の個人のプライバシーを暴露する攻撃です。SD-JWTは開示内容によらず、電子署名(属性+ハッシュ値)が変化しません。一方、BBS署名は電子署名(AやB)が秘匿化されるため、開示した情報以外を第三者に暴かれるリスクは非常に小さくなります。
 よって、ゼロ知識性が、VCにおいても重要であり、プライバシーリスクの低減につながります。

期待と課題

 ゼロ知識証明を既存のシステムに組み込むことにより、個人や企業のプライバシーに配慮したサービスが実現できます。それにより、顧客の心理的ハードルを下げ、新規顧客開拓も見込めるのではないでしょうか。
 課題は、近年急速に発展しつつある技術のため、同一業界であっても標準や規格が存在しないことで相互運用が進まないことや、実装が複雑でリアルタイム性を求められるシステムに組み込みづらいなどが挙げられます。

未来像

 ゼロ知識証明が将来、私たちの生活にどのような変革をもたらすのか、その未来像の一部を紹介します。プライバシーとセキュリティが大きく向上することで、生活者にメリットをもたらすと考えられています。

  • 芸術の領域では、作品の著作権を保護するためにゼロ知識証明が利用されます。生成AIの構築や学習に、他のアーティストの作品が用いられていないことを証明できるため、ディープフェイクをはじめとするAIの悪用も防止できるようになります。

  • 教育の領域では、生徒一人ひとりの学習スタイルや、能力に合わせた教育を提供するためにゼロ知識証明が利用されます。生徒の学習進捗や成績などの個人情報を保護しつつ、教員やシステムがその情報を活用して、最適な学習コンテンツや指導方法を提供することが可能になります。

  • 研究の領域では、国や文化の違いを超えた取り組みをゼロ知識証明が加速させます。他の研究機関に研究データを見せなくても、その内容の正確性や有効性は担保されるため、仮説の検証やそれを基にした新規研究/開発が促進されます。個人情報や機密情報の共有も容易であるため、医療や防災などの分野が特に発展すると予想されます。

今回ご紹介した未来像はごく一部ですが、ゼロ知識証明はプライバシーの保護とデータの信頼性確保を可能にする技術として、多くの分野で革新をもたらすと考えられます。

活用事例

● 国内事例:学修歴等の本人管理による人材流動の促進(東京大学)
 2022年度「Trusted Web の実現に向けたユースケース実証事業」において実証を行ったユースケースのうち、国立大学法人東京大学の行った「学修歴等の本人管理による人材流動の促進」の内容をご紹介します。
 東京大学では、国内・国外にわたる入進学、留学、就職等に係る手続きの精度と効率と利便性を高めるため、学修歴の電子証明の必要性を認識し、全学DXの一環として、大学の構成員(学生、教職員など)および他の関係者(卒業生や名誉教授)を認証する仕組み等とともに、履修証明による生涯のキャリア支援や成績/卒業証明書による留学/就職活動の支援などの検討を進めています。
 大学等が発行した検証可能な学修歴を学習者本人が管理し、企業等の要請に応じてそれを開示し、企業等がそれを検証して選考等に用いる、という一連のワークフローの実現を目標としています。主な成果は、企業等が学習者の本人性を検証することができた点、BBS署名により必要な情報のみを抽出して記載した学修歴証明を改ざんなく生成し、企業等に提示できた点になります。

● 海外事例:Zcash(暗号通貨)
 Zcashは、ゼロ知識証明を実際に応用した最初の製品です。Zcashでは、ゼロ知識証明によりプライバシーが確保され、実際の残高や取引履歴を明らかにすることなく、個人のウォレット残高や取引履歴が正確であることを保証します。そのため、例えばある人がZEC(Zcashの通貨)を他の人に送ろうとした場合、Zcashブロックチェーンは送られるZECが本物であること、送信者は取引に必要な量以上のZECを持っていることを保証します。

TOPPANデジタルの取り組み

 TOPPANデジタルでは、プライバシー保護技術の1つとしてゼロ知識証明に着目しています。
 その中で、DID/VCsにゼロ知識証明を組み込むための研究開発を行っており、SD-JWTやBBS署名によるVCの選択的開示機能の技術検証を実施中です。デジタル社会で課題となる証明書の真正性と、個人のプライバシーへの配慮を両立させた、生活者が安心して利用し豊かなくらしに繋がるような、信頼性が担保されたデジタル社会の実現を目指していきます。

TOPPANデジタル有識者コメント

田村 元
TOPPANデジタル株式会社
技術戦略センター
Trusted Web技術戦略部 部長

 ゼロ知識証明は1980年代から研究されている歴史ある技術ですが、パスワードや公開鍵暗号などに比べて利便性が低く、手間も増えるために広く使われておりませんでした。
 しかし近年、Web3や暗号通貨を始めとしたブロックチェーン技術を利用したサービスが注目を集めております。ブロックチェーン技術の性質上、プライベートな情報をブロックチェーンに書き込んでしまうとそのチェーンがなくならない限り一生データが残ってしまう課題が出てきました。このような課題を解決するためにゼロ知識証明が取り入れられています。
 今後の周辺技術の発展により、ゼロ知識証明はプライバシー領域だけではなく、様々な分野において幅広く利用されるポテンシャルを持っております。私たちは、ゼロ知識証明を含む様々な技術を活用した研究開発により、お客さまの豊かなくらしに貢献するサービスを生み出すよう、取り組んでまいります。



■編集者

東 貴範
TOPPANデジタル株式会社
技術戦略センター
Trusted Web技術戦略部


みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!