WO2022024182A1 - 知識証明方法、知識証明プログラム、および情報処理装置 - Google Patents

知識証明方法、知識証明プログラム、および情報処理装置 Download PDF

Info

Publication number
WO2022024182A1
WO2022024182A1 PCT/JP2020/028716 JP2020028716W WO2022024182A1 WO 2022024182 A1 WO2022024182 A1 WO 2022024182A1 JP 2020028716 W JP2020028716 W JP 2020028716W WO 2022024182 A1 WO2022024182 A1 WO 2022024182A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
proof
knowledge proof
verifier
function
Prior art date
Application number
PCT/JP2020/028716
Other languages
English (en)
French (fr)
Inventor
剛 宮前
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to EP20947126.7A priority Critical patent/EP4191939A4/en
Priority to JP2022539803A priority patent/JPWO2022024182A1/ja
Priority to PCT/JP2020/028716 priority patent/WO2022024182A1/ja
Publication of WO2022024182A1 publication Critical patent/WO2022024182A1/ja
Priority to US18/069,464 priority patent/US20230128879A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

非対話ゼロ知識証明の検証が第三者に委任されることを抑止する。 第1の情報処理装置(1)は、所定値(y)を検証者の公開鍵(pk)で暗号化した暗号文(y')を生成する。また第1の情報処理装置(1)は、第2の関数(F')と第1の入力値({u,w})と公開鍵(pk)とを含む第2の入力値({u',w})とに基づいて、証明情報(π)を生成する。第2の関数(F')は、第1の関数(F)に示される計算と第1の関数(F)の計算結果を公開鍵(pk)で暗号化する計算とを含む。証明情報(π)は、第2の入力値に含まれる秘匿対象の秘匿値(w)を有していることを、非対話ゼロ知識証明によって証明する情報である。第1の情報処理装置(1)は、暗号文(y')と証明情報(π)とを含む知識証明情報を、公開鍵(pk)に対応する秘密鍵(vk)を有する検証者が管理する第2の情報処理装置(2)に送信する。

Description

知識証明方法、知識証明プログラム、および情報処理装置
 本発明は、知識証明方法、知識証明プログラム、および情報処理装置に関する。
 暗号技術の1つとしてゼロ知識証明がある。ゼロ知識証明は、ある人(証明者)が他の人(検証者)に、自分の持っている命題が真であることを伝えるのに、真であること以外の何の知識も伝えることなく証明することである。ゼロ知識証明には、証明者と検証者との間で対話を繰り返すことで証明するゼロ知識対話証明と、証明者が検証者へ情報を1回送信するだけで証明する非対話ゼロ知識証明とがある。
 非対話ゼロ知識証明は、例えば自己主権型アイデンティティ(Self-Sovereign Identity)と呼ばれる技術分野で有効に活用できる。自己主権型アイデンティティは、ユーザに紐づけられた個人情報をすべてユーザ自身で管理、制御するというコンセプトの元で、アイデンティティ管理を行う技術である。ユーザは、個人情報の管理を企業や他人に任せる代わりに、自身でデータベースを用意し(あるいはブロックチェーンなどの共有データベースを利用し)、自身でアクセス管理を行う。このような状況で、プライバシーを保ったままユーザ間で相互にアイデンティティの証明を行えるようにするため、ゼロ知識証明が利用されている。このゼロ知識証明として非対話型ゼロ知識証明を用いれば、アイデンティティ証明の利便性を向上させることができる。
 情報の証明技術としては、例えば署名者から検証者に検証データを送付するだけで、相互に交信しなくても第三者に転送されないデジタル署名方法が提案されている。
 非対話ゼロ知識証明としては例えばzk-SNARK(zero-knowledge Succinct Non-interactive ARgument of Knowledge)があり、このzk-SNARKを利用したPinocchioと呼ばれるシステムが提案されている。またzk-SNARKを分散台帳へ応用することも提案されている。
特開平09-171349号公報
B. Parno, C. Gentry, J. Howell and M. Raykova, "Pinocchio: nearly practical verifiable computation", IEEE Symposium on Security and Privacy Oakland 2013 corrected version, 13 May 2013 長沼 健,「分散台帳での匿名送金とその監査について -ゼロ知識証明を利用したセキュアプロトコル-」,情報処理Vol.61 No.2,15 Jan 2020,pp.152-158
 非対話ゼロ知識証明では、証明者がオンライン状態でなくても検証者による検証が可能である反面、不特定多数のユーザが検証を行えてしまう。そのため検証者は、証明者の許可を得ずに第三者に検証を委任することが可能である。検証の委任が自由に行われると、証明者の不利益となる場合がある。
 例えば著名人である証明者が自身の収入を証明する証明書を有しているという事実を非対話ゼロ知識証明で証明する場合を想定する。この場合において、開示された収入に間違いがないことの検証が第三者に委任されると、第三者は証明者の収入を知ると同時に、その収入に誤りがないということを知ることができる。すなわち、証明者の個人情報が、その情報に誤りがないという証明付きで漏洩してしまうことになり、その情報が悪用される危険性が高まる。
 1つの側面では、本発明は、非対話ゼロ知識証明の検証が第三者に委任されることを抑止することを目的とする。
 1つの案では、証明者が管理する第1の情報処理装置による知識証明方法が提供される。
 第1の情報処理装置は、所定値を検証者の公開鍵で暗号化した暗号文を生成する。また第1の情報処理装置は、第1の入力値を入力した場合の計算結果が所定値となる第1の関数に示される計算と第1の関数の計算結果を公開鍵で暗号化する計算とを含む第2の関数と、第1の入力値と公開鍵とを含む第2の入力値とに基づいて、第2の関数に入力した場合に計算結果として暗号文を得ることができる第2の入力値に含まれる秘匿対象の秘匿値を有していることを、非対話ゼロ知識証明によって証明する証明情報を生成する。そして第1の情報処理装置は、暗号文と証明情報とを含む知識証明情報を、公開鍵に対応する秘密鍵を有する検証者が管理する第2の情報処理装置に送信する。
 1態様によれば、非対話ゼロ知識証明の検証が第三者に委任されることを抑止することができる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係る知識証明方法の一例を示す図である。 システム構成の一例を示す図である。 端末装置のハードウェアの一例を示す図である。 不特定の第三者が検証できる場合に生じる情報漏洩の一例を示す図である。 知識証明情報を暗号化した場合における情報漏洩の一例を示す図である。 不特定の第三者による検証を抑止した非対話ゼロ知識証明の一例を示す図である。 署名者のサーバが有する機能の一例を示す図である。 端末装置とTTPのサーバと検証者のサーバとの機能の一例を示すブロック図である。 非対話ゼロ知識証明の処理手順の一例を示すシーケンス図である。 TTPのサーバによる事前設定処理手順の一例を示すフローチャートである。 証明者の端末装置による証明処理手順の一例を示すフローチャートである。 検証者のサーバによる検証処理手順の一例を示すフローチャートである。
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 まず第1の実施の形態について説明する。第1の実施の形態は、非対話ゼロ知識証明の検証に検証者のマスターシークレットである暗号鍵を利用させることで、非対話ゼロ知識証明の検証が第三者に委任されることを抑止するものである。
 図1は、第1の実施の形態に係る知識証明方法の一例を示す図である。図1には、知識証明方法を、証明者が管理する第1の情報処理装置1と検証者が管理する第2の情報処理装置2とを用いて実現する例が示されている。第1の情報処理装置1は、例えば知識証明の処理手順が記述されたプログラムを実行することにより、第1の実施の形態に係る知識証明方法を実施することができる。第2の情報処理装置2は、例えば知識証明方法で証明された知識の検証の処理手順が記述された知識証明プログラムを実行することにより、証明された知識を検証することができる。
 第1の情報処理装置1は、記憶部1aと処理部1bとを有する。記憶部1aは、例えば第1の情報処理装置1が有するメモリまたはストレージ装置である。処理部1bは、例えば情報処理装置1が有するプロセッサまたは演算回路である。
 記憶部1aは、例えば証明者の個人情報が真正な情報であることを示す証明書3を記憶する。証明書3には、個人情報と、その個人情報が真正であることを示すデジタル署名とが含まれる。
 処理部1bは、所定値yを検証者の公開鍵pkで暗号化した暗号文y’を生成する。所定値yは、例えば証明者の個人情報である。処理部1bは、検証者の公開鍵pkを取得し、所定値yを公開鍵pkで暗号化することで、暗号文y’を生成することができる。
 また処理部1bには、第1の入力値を入力した場合の計算結果が所定値yとなる第1の関数(関数F)に示される計算と関数Fの計算結果を公開鍵pkで暗号化する計算(Enc(pk,y))とを含む第2の関数(関数F’)を有している。関数F’は、複数の多項式で表されていてもよい。第1の入力値には、証明者が秘匿している秘匿値wが含まれる。例えば1の入力値は、数値群uと証明者の秘匿値wである証明書3とを含む。数値群uにはデジタル署名の検証鍵が含まれる。関数F’は、第1の入力値{u,w}と公開鍵pkとを含む第2の入力値{u’,w}(u’={デジタル署名の検証鍵,検証者の公開鍵pk})を入力した場合の計算結果が暗号文y’となる。
 処理部1bは、関数F’と、第1の入力値{u,w}と公開鍵pkとを含む第2の入力値{u’,w}とに基づいて、証明情報πを生成する。証明情報πは、関数F’に入力した場合に計算結果として暗号文y’を得ることができる第2の入力値{u’,w}に含まれる秘匿対象の秘匿値wを有していることを、非対話ゼロ知識証明によって証明する情報である。そして処理部1bは、暗号文y’と証明情報πとを含む知識証明情報を、公開鍵pkに対応する秘密鍵vkを有する検証者が管理する第2の情報処理装置2に送信する。
 第2の情報処理装置2は、知識証明情報に基づいて、秘匿値wを証明者が有していることを検証する。さらに第2の情報処理装置2は、検証者の秘密鍵vkを用いて暗号文y’を復号する。そして第2の情報処理装置2は、検証に成功し、かつ復号により所定値yが得られた場合、関数Fの計算結果を所定値yとするために第1の入力値u,wに含める秘匿値wを、証明者が知っていると認定する。
 このようにして、証明者は、例えば個人情報を所定値yとし、個人情報の証明書3を秘匿値wとすることで、その個人情報の証明書3を検証者に渡すことなく、証明書3を有していることを検証者に対して証明することができる。例えば個人情報が証明者の収入の場合、検証者に対して証明者の収入を証明することができる。
 このとき、検証者が管理する第2の情報処理装置2は、証明情報πを検証することに加えて、暗号文y’を検証者の秘密鍵で復号することで、証明者が証明書3を有していると認定することができる。検証者が第三者に検証を委任する場合、検証者のマスターシークレットである秘密鍵を第三者に渡さなければ、証明者が証明書3を有していることを検証することはできない。そのため第三者への検証の委任は抑止される。
 なお知識証明情報のデータ長が短くて済む非対話ゼロ知識証明としてzk-SNARKがある。zk-SNARKは、信頼できる第三者の協力を得て実施することができる。例えば第1の情報処理装置1の処理部1bは、信頼できる第三者の管理する第3の情報処理装置から、zk-SNARKにより非対話ゼロ知識証明を実施するための証明用参照情報を取得する。そして処理部1bは、証明用参照情報を用いて証明情報πを生成する。また第2の情報処理装置2は、第3の情報処理装置から、zk-SNARKにより非対話ゼロ知識証明を実施するための検証用参照情報を取得し、検証用参照情報を用いて秘匿値wを証明者が有していることを検証する。
 〔第2の実施の形態〕
 次に第2の実施の形態について説明する。第2の実施の形態は、著名人が自身の総収入を、非対話ゼロ知識証明を用いて証明する場合の例である。
 図2は、システム構成の一例を示す図である。図2の例では、ネットワーク20を介して端末装置100と複数のサーバ200,300,400,500が接続されている。端末装置100は、証明者が使用するコンピュータである。サーバ200は、署名者Aが使用するコンピュータである。サーバ300は、署名者Bが使用するコンピュータである。サーバ400は、信頼できる第三者機関(TTP:Trusted Third Party)が使用するコンピュータである。サーバ500は、検証者が使用するコンピュータである。
 例えば著名人が自身の総収入を銀行などの金融機関に対して証明する場合、著名人が証明者であり、収入を証明する公的機関が署名者であり、金融機関が検証者である。収入を証明する公的機関が地域ごと(例えば国ごと)にある場合、署名者Aと署名者Bとは、それぞれ別の地域の公的機関である。
 証明者が複数の地域(例えば複数の国)で収入を得ている場合、証明者の総収入は、各地域での収入の合計となる。その場合、証明者は各地域の公的機関から収入証明書を取得することとなる。
 図3は、端末装置のハードウェアの一例を示す図である。端末装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
 メモリ102は、端末装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
 バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
 ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
 グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
 入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
 機器接続インタフェース107は、端末装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
 ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
 端末装置100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。サーバ200,300,400,500も端末装置100と同様のハードウェアによって実現することができる。また、第1の実施の形態に示した情報処理装置1,2も、図3に示した端末装置100と同様のハードウェアにより実現することができる。
 端末装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。端末装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、端末装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また端末装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
 以上のようなシステムにより、非対話ゼロ知識証明を行うことができる。非対話ゼロ知識証明を用いれば、例えば、著名人は、収入を証明する証明書を金融機関に渡すことなく、自身の総収入を金融機関に対して証明することができる。この際、収入の証明に対する検証を不特定多数の者が実施できてしまうと、著名人の個人情報が、内容の証明付きで漏洩してしまう。
 図4は、不特定の第三者が検証できる場合に生じる情報漏洩の一例を示す図である。図4は、ある著名人が、借金のために公的機関である署名者41の署名付きの収入証明書をベースに生成した収入の知識証明情報を、金融機関である検証者43に提出した場合の例を示している。図4の例では、検証者43を限定する技術を適用していない非対話型ゼロ知識証明により、収入証明書を有していることを証明している。
 証明者42は、公的機関である署名者41から、署名付きの収入証明書を発行してもらう。証明者42と検証者43とは、TTP44から、非対話ゼロ知識証明に用いる参照情報を取得する。証明者42は、非対話ゼロ知識証明による収入証明用の知識証明情報を検証者43に渡す。金融機関である検証者43は、知識証明情報を検証し、正しく検証できた場合、資金の貸し付けなどのサービスを証明者に提供する。
 このとき、金融機関の担当者は、知識証明情報の検証を、ゴシップ記事を載せる雑誌の出版社などの報道機関に証明を委任することが可能である。この場合、報道機関が検証者45となって著名人の知識証明情報を検証できる。報道機関は、例えば著名人の収入が検証できた場合、金融機関の担当者に対価を支払う。このように、著名人の収入を証明する知識証明情報を、金融機関内部の不正行為者が第三者に売却することが可能である。その結果、資金の借入とは関係無い第三者が、著名人の個人情報を入手するだけでなく、その個人情報が正しいことの検証までを行えてしまう。
 ここで検証者43しか知識証明情報を検証できないように、検証者43の公開鍵で知識証明情報を暗号化する案が考えられる。しかし、知識証明情報を暗号化するだけでは不十分である。
 図5は、知識証明情報を暗号化した場合における情報漏洩の一例を示す図である。なお、図5では、図4に示した署名者41とTTP44とは省略されている。
 証明者42は、検証者43に対してだけ証明した知識証明情報を、検証者43の公開鍵で暗号化する。そして証明者42は、暗号文の知識証明情報を検証者43に送信する。仮に暗号化された知識証明情報を他の検証者45が入手したとしても、検証者45は検証者43の復号鍵を持っていないため知識証明情報の内容を入手することができない。しかし、検証者43が自身で復号した平文の知識証明情報を不正に検証者45に提供した場合、検証者45は知識証明情報の検証を実施できてしまう。
 つまり、すべてのユーザを完全には信用できない前提の場合、図5に示す方法では証明者42の個人情報の証明付きでの漏洩を防止することができない。
 そこで第2の実施の形態では、証明者42は、知識証明情報全体の暗号化ではなく、検証において使用する関数の計算結果を検証者の公開鍵で暗号化する。
 図6は、不特定の第三者による検証を抑止した非対話ゼロ知識証明の一例を示す図である。証明者42は、非対話ゼロ知識証明に使用する関数Fの計算結果であるyを検証者43(金融機関)の公開鍵で暗号化する。証明者42は、暗号化された値(暗号文y’)を知識証明情報に含める。検証者43は、検証者43自身のマスターシークレットである秘密鍵を用い、知識証明情報を検証する。この場合、検証者43自身のマスターシークレットを用いなくては、検証ができない。そのため、検証者43が他の報道機関などへ証明の検証を委任する行為を抑止できる。
 すなわち図6に示すゼロ知識証明では、検証者43は検証時に自身のマスターシークレットを使用する。そのため、仮に検証者が証明を検証者45へ委任する場合は、知識証明情報と共に自身のマスターシークレットを検証者45へ提供することが要求される。しかし、一旦、自身のマスターシークレットを他者へ提供してしまうと、そのマスターシークレットで実現していたあらゆる機能(電子署名、暗号化、ゼロ知識証明など)の安全性の保証がなくなる。そのため、現実的には、検証者43が自身のマスターシークレットを第三者である検証者45に提供することはできない。その結果、検証にマスターシークレットを用いることが、検証を委任することに対する強い抑止効果として作用する。
 次に、図7、図8を参照して、検証者を制限した非対話ゼロ知識証明を実現するために各装置が有する機能について説明する。
 図7は、署名者のサーバが有する機能の一例を示す図である。署名者Aのサーバ200は、記憶部210、署名部220、および証明書送信部230を有する。
 記憶部210には、収入情報211および署名者Aの署名鍵212が格納されている。収入情報211は、著名人である証明者の収入「¥a」を示す情報である。署名鍵212は、署名者Aが証明者の収入を証明する際に使用する鍵である。記憶部210は、例えばサーバ200が有するメモリまたはストレージ装置の記憶領域の一部である。
 署名部220は、署名鍵212を用いて署名者の収入情報211にデジタル署名を施す。例えば署名部220は、署名鍵212で収入情報211を暗号化する。暗号化した結果が、署名者Aによるデジタル署名である。
 証明書送信部230は、証明者の収入を証明する証明書を、証明者が使用する端末装置100に送信する。証明書には、例えば証明者の収入情報211とその収入情報に対する署名者Aのデジタル署名とが含まれる。
 署名者Bのサーバ300は、記憶部310、署名部320、および証明書送信部330を有する。
 記憶部310には、収入情報311および署名者Bの署名鍵312が格納されている。収入情報311は、著名人である証明者の収入「¥b」を示す情報である。署名鍵312は、署名者Bが証明者の収入を証明する際に使用する鍵である。記憶部310は、例えばサーバ300が有するメモリまたはストレージ装置の記憶領域の一部である。
 署名部320は、署名鍵312を用いて署名者の収入情報311にデジタル署名を施す。例えば署名部320は、署名鍵312で収入情報311を暗号化する。暗号化した結果が、署名者Bによるデジタル署名である。
 証明書送信部330は、証明者の収入を証明する証明書を、証明者が使用する端末装置100に送信する。証明書には、例えば証明者の収入情報311とその収入情報に対する署名者Bのデジタル署名とが含まれる。
 図8は、端末装置とTTPのサーバと検証者のサーバとの機能の一例を示すブロック図である。非対話ゼロ知識証明は、TTPのサーバ400による事前設定処理(セットアップとも呼ばれる)、証明者の端末装置100による証明処理、および検証者のサーバ500による検証処理によって実現される。
 TTPのサーバ400は、事前設定部410と参照情報送信部420とを有する。
 事前設定部410は、検証者のサーバ500から関係情報511を取得する。関係情報511には、証明者が有している証拠(例えば総収入の証明書121,122)と、その証拠が正しい場合に、その証拠を用いた計算によって得られるべき情報との関係が示されている。その関係は、例えば関数とその関数の変数とによって表される。事前設定部410は、関係情報511に基づいて、非対話ゼロ知識証明を可能とするため参照情報を生成する。以下、参照情報のうち証明に使用する情報を証明用参照情報、検証に使用する情報を検証用参照情報と呼ぶ。
 参照情報送信部420は、証明用参照情報を、証明者の端末装置100に送信する。また参照情報送信部420は、検証用参照情報を、検証者のサーバ500に送信する。
 端末装置100は、証明書取得部110、記憶部120、参照情報取得部130、ゼロ知識証明部140、および証明情報送信部150を有する。
 証明書取得部110は、サーバ200,300それぞれから送信された証明書121,122を取得する。証明書取得部110は、取得した証明書121,122を記憶部120に格納する。
 記憶部120は、証明書121,122を記憶する。記憶部120は、例えば端末装置100が有するメモリ102またはストレージ装置103の記憶領域の一部である。
 参照情報取得部130は、TTPのサーバ400から証明用参照情報を取得する。証明用参照情報は、非対話ゼロ知識証明の際に参照する情報である。参照情報取得部130は、取得した証明用参照情報をゼロ知識証明部140に送信する。
 ゼロ知識証明部140は、証明用参照情報を用いて、収入のデジタル署名を有していることについての非対話ゼロ知識証明を行う。ゼロ知識証明部140は、非対話ゼロ知識証明の結果、知識証明情報を生成する。知識証明情報には、証明者が証明しようとする命題(例えば総収入の証明書121,122を有していること)を証明する複数の数値が含まれる。ゼロ知識証明部140は、生成した知識証明情報を証明情報送信部150に送信する。
 証明情報送信部150は、知識証明情報を検証者のサーバ500に送信する。
 検証者のサーバ500は、記憶部510、関係情報送信部520、参照情報取得部530、証明情報取得部540、および検証部550を有する。
 記憶部510は、関係情報511および秘密鍵512を記憶する。関係情報511は、例えば関数とその関数に使用される既知の変数値を含む。既知の変数値には、検証者の公開鍵を含めてもよい。秘密鍵512は、検証者の公開鍵で暗号化された暗号文の復号に使用する鍵である。秘密鍵512は、検証者が厳重に秘匿すべきマスターシークレットである。記憶部510は、例えばサーバ500が有するメモリまたはストレージ装置の記憶領域の一部である。
 関係情報送信部520は、関係情報511をTTPのサーバ400に送信する。
 参照情報取得部530は、TTPのサーバ400から検証用参照情報を取得する。参照情報取得部530は、取得した検証用参照情報を検証部550に送信する。
 証明情報取得部540は、証明者の端末装置100から知識証明情報を取得する。証明情報取得部540は、取得した知識証明情報を検証部550に送信する。
 検証部550は、検証用参照情報と秘密鍵512とを用いて、知識証明情報を検証する。検証部550は、知識証明情報が正しいと検証できた場合、証明者が証明しようとしている命題が正しいと判定する。検証部550は、検証結果を、サーバ500のモニタなどに出力する。
 なお、図7、図8に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
 次に証明者が総収入を非対話ゼロ知識証明によって証明するための手順について説明する。
 図9は、非対話ゼロ知識証明の処理手順の一例を示すシーケンス図である。署名者Aのサーバ200の署名部220は、例えば証明者からの依頼に応じて、証明者の収入情報211に対するデジタル署名を生成する(ステップS11)。例えば署名部220は、署名者Aの署名鍵212で収入情報211を暗号化する。証明書送信部230は、収入情報211とデジタル署名とを含む証明書を、証明者の端末装置100に送信する(ステップS12)。
 署名者Bのサーバ300の署名部320は、例えば証明者からの依頼に応じて、証明者の収入情報311に対するデジタル署名を生成する(ステップS13)。例えば署名部320は、署名者Bの署名鍵312で収入情報311を暗号化する。証明書送信部230は、収入情報311とデジタル署名とを含む証明書を、証明者の端末装置100に送信する(ステップS14)。
 その後、収入の証明書を取得した証明者が検証者にサービスの提供(例えば融資)を申し込む。申し込みを受けて、検証者は、サーバ500に証明者の総収入を確認する処理の実行を指示する。するとサーバ500の関係情報送信部520は、総収入の証明書を証明者が有していることを検証するための関係情報511をTTPのサーバ400に送信する(ステップS15)。
 関係情報511には、関数F’と関数の変数値として用いる数値群u’={u,pk}とが含まれる。数値群u’には、署名者Aが署名に用いた署名鍵212に対応する検証鍵、と署名者Bが署名に用いた署名鍵312に対応する検証鍵とを含む。pkは、検証者の公開鍵である。関数F’は以下の式で表される。
F’(u’)=Enc(F)(u’)=Enc(F)(u,w,pk)  (1)
 Enc(F)(u,w,pk)は、関数F(u,w)の計算結果を、検証者の公開鍵pkで暗号化することを示している。秘匿値wは、収入情報211、収入情報211のデジタル署名、収入情報311、および収入情報311のデジタル署名を含む。関数F(u,w)は、各収入情報211,311のデジタル署名を対応する検証鍵によって検証した上で、証明者の総収入をy(y=a+b)としたときにyを計算する計算アルゴリズムである。すなわち関数F’(u’)は、関数F(u,w)の計算により得られた総収入であるyを検証者の公開鍵で暗号化する計算アルゴリズムである。ここで総収入であるyを暗号化して得られる暗号文をy’とする。
 TTPのサーバ400では、事前設定部410が非対話ゼロ知識証明に使用する参照情報を生成する(ステップS16)。生成される参照情報には、例えば「Q,EKF',VKF',e」が含まれる。Qは、関数F’を2次算術プログラム(QAP:Quadratic Arithmetic Program)に変換して得られた多項式の集合である。EKF'とVKF'とは、それぞれ関数F’に基づいて生成された評価鍵と検証鍵である。EKF'とVKF'は、それぞれ多数の数値を含む数値群である。EKF'とVKF'に含まれる数値についての詳細は後述する。eは、非自明な双線形写像である。
 参照情報送信部420は、証明に使用する証明用参照情報を証明者の端末装置100に送信する(ステップS17)。証明用参照情報には、例えば「F’,u’,Q,EKF'」が含まれる。参照情報送信部420は、検証に使用する検証用参照情報を検証者のサーバ500に送信する(ステップS18)。検証用参照情報には、例えば「e,VFF’」が含まれる。
 証明者の端末装置100では、参照情報取得部130が証明用参照情報を取得する。そしてゼロ知識証明部140が、複数の証明書と証明用参照情報とを用いて、知識証明情報を生成する(ステップS19)。知識証明情報には、例えば総収入の暗号文y’と証明情報πy'とが含まれる。そして証明情報送信部150が知識証明情報を検証者のサーバ500に送信する(ステップS20)。
 検証者のサーバ500では、証明情報取得部540が知識証明情報を取得する。そして検証部550が、検証用参照情報と知識証明情報と秘密鍵512に基づいて、ゼロ知識証明を検証する(ステップS21)。
 このような手順で証明者の総収入の非対話ゼロ知識証明が行われる。以下、図10~図12を参照して、TTPのサーバ400、証明者の端末装置100、および検証者のサーバ500それぞれが実行する処理について詳細に説明する。
 図10は、TTPのサーバによる事前設定処理手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
 [ステップS101]事前設定部410は、検証者のサーバ500から関係情報を取得する。
 [ステップS102]事前設定部410は、関係情報に含まれる関数F’に基づいて、QAPのQを生成する。Qには、複数の多項式{t(x),V,W,Y}が含まれる(V={vk(x)}、W={wk(x)}、Y={yk(x)}、インデックスk∈[m]={0,・・・,m}、mはQのサイズを示す整数)。t(x)はターゲット多項式である。ターゲット多項式はt(x)=(x-r1)(x-r2)である(r1,r2は乱数)。
 多項式p(x)=V(x)W(x)-Y(x)がターゲット多項式t(x)で割り切れることが、証明者が入力する秘匿値wが正しいことを証明するための条件となる。
 [ステップS103]事前設定部410は、実数gと双線形写像eとランダムな実数「s,α,βv,βw,βy,γ」を生成する。ここでgは、双線形写像e「e:G×G→GT」の群Gの生成元である。sは第三者に秘密のパラメータである。
 [ステップS104]事前設定部410は、「Q,g,e,s,α,βv,βw,βy,γ」に基づいて、評価鍵EKF'と検証鍵VKF'を生成する。なお評価鍵EKF'と検証鍵VKF'の生成処理は、セキュリティパラメータλ(λは1以上の整数)を用いて「(EKF',VKF')←KeyGen(F,1λ)」と表される。1λは、1のλビット列を表している。
 評価鍵EKF'は、以下のような数値群を含む。
Figure JPOXMLDOC01-appb-M000001
 検証鍵VKF'は、以下のような数値群を含む。
Figure JPOXMLDOC01-appb-M000002
 Imid={N+1,・・・,m}である。Nは関数Fの入出力値の数である。dはQの次数である。
 [ステップS105]参照情報送信部420は、証明者の端末装置100へ証明用参照情報を送信する。
 [ステップS106]参照情報送信部420は、検証者のサーバ500へ検証用参照情報を送信する。
 このようにして、TTPのサーバ400による事前設定処理が行われる。次に証明者の端末装置100によって、証明用参照情報に基づいて証明処理が実行される。
 図11は、証明者の端末装置による証明処理手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
 [ステップS201]証明書取得部110は、署名者それぞれのサーバ200,300から証明書121,122を取得する。証明書取得部110は、取得した証明書121,122を記憶部120に格納する。
 [ステップS202]参照情報取得部130は、TTPのサーバ400から証明用参照情報を取得する。
 [ステップS203]ゼロ知識証明部140は、u’に含まれる公開鍵pkが、検証者のマスターシークレットである秘密鍵vkに対応する公開鍵であることを確認する。例えばTTPのサーバ400が認証局としての機能を兼ね備えている場合、ゼロ知識証明部140は、TTPのサーバ400から公開鍵pkが検証者のものであることを保証するデジタル署名を取得する。ゼロ知識証明部140は、取得したデジタル署名を検証することで、取得した公開鍵pkが検証者の秘密鍵vkに対応する公開鍵であることを確認する。
 [ステップS204]ゼロ知識証明部140は、u’,wを入力として、総収入の暗号文であるy’=F’(u’,w)を計算し、関数F’に対するQを評価することで、多項式V,W,Yの係数{cii∈[m]を生成する。すなわちゼロ知識証明部140は、関数F’(u’,w)の計算結果がy’となる正しいu’,wを知っている。そこでゼロ知識証明部140は、Qに正しいu’,wを代入することで多項式V,W,Yの係数を計算する。具体的にはゼロ知識証明部140は、多項式p(x)=V(x)W(x)-Y(x)がターゲット多項式t(x)で割り切れるような多項式の係数{cii∈[m]を生成する。
 なおu’には検証者の公開鍵pkが含まれており、関数F’の計算アルゴリズムには公開鍵pkを用いてyを暗号化する処理が含まれている。yは証明者の総収入であり、ゼロ知識証明部140がy’=F’(u’,w)を計算することは、正しい入力によって得られる総収入yを検証者の公開鍵pkで暗号化した暗号文を得ることを意味する。
 [ステップS205]ゼロ知識証明部140は、多項式p(x)とターゲット多項式t(x)とに基づいて、多項式h(x)を計算する。多項式h(x)=p(x)/t(x)である。多項式p(x)はターゲット多項式t(x)で割り切れるため、多項式h(x)の係数も計算可能である。
 証明者は、「V(x)W(x)-Y(x)=H(x)t(x)」を満たす各多項式の係数を知っていることを検証者に証明すれば、「y’=F’(u’,w)」を満たすu’,wを知っていることを証明したこととなる。各多項式の係数を知っていることの証明は、TTPのサーバ400が事前設定処理で生成した評価鍵EKF'を用いたペアリング暗号の技術によって実現することができる。
 [ステップS206]ゼロ知識証明部140は、評価鍵EKF'、多項式V,W,Yの係数{cii∈[m]、多項式h(x)に基づいて、ペアリング暗号の技術を用いて証明情報πy'を計算する。証明情報πy'は、以下のような数値群を含む。
Figure JPOXMLDOC01-appb-M000003
 このようにゼロ知識証明部140によるy’とπy’とを生成する計算は、(y,πy)←Compute(EKF’,u’)と表すことができる。
 [ステップS207]ゼロ知識証明部140は、知識証明情報(y’,πy')を検証者のサーバ500に送信する。
 このようにして証明者の端末装置100により知識証明情報が生成される。生成された知識証明情報は検証者のサーバ500によって検証される。
 図12は、検証者のサーバによる検証処理手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
 [ステップS301]関係情報送信部520は、TTPのサーバ400へ関係情報を送信する。
 [ステップS302]参照情報取得部530は、TTPのサーバ400から検証用参照情報を取得する。
 [ステップS303]証明情報取得部540は、証明者の端末装置100から知識証明情報(y’,πy')を取得する。
 [ステップS304]検証部550は、証明情報πy'の整合性をチェックする。整合性のチェックは{0,1}=Verify(VKF',u’,y’,πy')で表され、整合性が確認できた場合に結果が「1」となり、確認できなかった場合に結果が「0」となる。整合性のチェックでは、双線形写像eを使用してαおよびβが正しいことが確認される。例えば以下の式が正しいことが確認される。
Figure JPOXMLDOC01-appb-M000004
 このようなチェックがα項で8ペアリング、β項で3ペアリングについて行われる。検証部550は、すべてのチェックにおいて式が満たされた場合、証明情報πy'の整合性が確認できたと判断する。
 [ステップS305]検証部550は、証明情報πy'の整合性が確認できたか否かを判断する。検証部550は、整合性が確認できた場合、処理をステップS306に進める。また検証部550は、整合性が確認できなかった場合、処理をステップS310に進める。
 [ステップS306]検証部550は、証明者が正しくu’を使用したことをチェックする。例えば検証部550は、以下の式が満たされることを確認する。
Figure JPOXMLDOC01-appb-M000005
 検証部550は、上記の式(6)が満たされた場合、正しくu’が使用されたと判断する。検証部550は、証明情報πy'の整合性を確認でき、証明者が正しくu’を使用したことも確認できた場合、証明者が総収入の証明書121,122を有していると認定することができる。ただしこの時点では、総収入は暗号化されており、証明書121,122によって証明された総収入の具体的な数値は不明である。
 [ステップS307]検証部550は、u’の使用が確認できた場合、処理をステップS308に進める。また検証部550は、u’の使用が確認できなかった場合、処理をステップS310に進める。
 [ステップS308]検証部550は、y=Dec(y’,sk)を計算する。これは暗号文y’を検証者の秘密鍵skを用いて複合する処理である。
 [ステップS309]検証部550は、証明者が総収入yの証明書121,122を有していることを示す証明情報の検証に成功したことを示す結果を出力する。その後、検証処理が終了する。
 [ステップS310]検証部550は、検証失敗を示す結果を出力する。その後、検証処理が終了する。
 このようにして、非対話ゼロ知識証明が実現される。この非対話ゼロ知識証明では、関数F’内に検証者の公開鍵pkを用いた暗号化のアルゴリズムが含まれている。そして関数F’の計算結果として得られるy’は証明者の総収入の暗号文である。y’を復号できるのは検証者のマスターシークレットである秘密鍵を有している者(すなわち検証者)のサーバ500のみである。
 ここで検証者(あるいは検証者の組織内の悪意を有する者)が、証明者の総収入の情報の証明付きでの第三者への漏洩を画策したものとする。この場合、検証者から第三者へ、知識証明情報と検証用参照情報と検証者の秘密鍵を渡さなければならない。しかし多くの場合において、秘密鍵は検証者のマスターシークレットであり、証明者の情報を漏洩することにより得られる利益よりも、マスターシークレットが漏洩することによる損失の方が大きい。また検証者の組織内ではマスターシークレットは厳重に管理されており、特定の権限を有する一部の者のみがマスターシークレットにアクセスできる。そのため検証者による第三者への情報漏洩は抑止される。
 また検証者から第三者へ知識証明情報と検証用参照情報とが渡され、検証者の秘密鍵が渡されない場合、第三者は、y’(証明者の総収入の暗号文)を正しく求めることができる証明書121,122を証明者が有していることは確認できる。しかしこの場合、第三者はy’が証明者の総収入の暗号文であるかどうかを確認することができない。そのため、証明者の総収入が証明付きで漏洩することは抑止されている。
 なお第2の実施の形態で利用したzk-SNARKの計算方法の詳細は非特許文献1に詳しい。
 〔その他の実施の形態〕
 第2の実施の形態では、zk-SNARKにより非対話ゼロ知識証明を実現しているが、他のゼロ知識証明技術を利用することもできる。他のゼロ知識証明としては、zk-STARK(zero-knowledge Scalable Transparent ARgument of Knowledge)、Bullet Proofなどがある。zk-STARKまたはBullet Proofを用いれば、TTPによる事前設定(セットアップ)は不要となる。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 第1の情報処理装置
 1a 記憶部
 1b 処理部
 2 第2の情報処理装置
 3 証明書
 

Claims (7)

  1.  証明者が管理する第1の情報処理装置が、
     所定値を検証者の公開鍵で暗号化した暗号文を生成し、
     第1の入力値を入力した場合の計算結果が前記所定値となる第1の関数に示される計算と前記第1の関数の計算結果を前記公開鍵で暗号化する計算とを含む第2の関数と、前記第1の入力値と前記公開鍵とを含む第2の入力値とに基づいて、前記第2の関数に入力した場合に計算結果として前記暗号文を得ることができる前記第2の入力値に含まれる秘匿対象の秘匿値を有していることを、非対話ゼロ知識証明によって証明する証明情報を生成し、
     前記暗号文と前記証明情報とを含む知識証明情報を、前記公開鍵に対応する秘密鍵を有する前記検証者が管理する第2の情報処理装置に送信する、
     知識証明方法。
  2.  前記第2の情報処理装置が、
     前記知識証明情報に基づいて、前記秘匿値を前記証明者が有していることを検証し、
     前記検証者の前記秘密鍵を用いて前記暗号文を復号し、
     前記検証に成功し、かつ前記復号により前記所定値が得られた場合、前記第1の関数の計算結果を前記所定値とするために前記第1の入力値に含める前記秘匿値を、前記証明者が知っていると認定する、
     請求項1記載の知識証明方法。
  3.  前記第1の情報処理装置は、信頼できる第三者の管理する第3の情報処理装置から、zk-SNARK(zero-knowledge Succinct Non-interactive ARgument of Knowledge)による前記非対話ゼロ知識証明のための証明用参照情報を取得し、前記証明用参照情報を用いて前記証明情報を生成し、
     前記第2の情報処理装置は、前記第3の情報処理装置から、zk-SNARKによる前記非対話ゼロ知識証明のための検証用参照情報を取得し、前記検証用参照情報を用いて前記秘匿値を前記証明者が有していることを検証する、
     請求項2記載の知識証明方法。
  4.  前記所定値は、前記証明者の個人情報を含み、前記秘匿値は前記個人情報が真正であることを証明する情報を含む、
     請求項1ないし3のいずれかに記載の知識証明方法。
  5.  前記秘匿値は、前記個人情報が真正であることを証明するデジタル署名を含み、前記第1の入力値は、前記デジタル署名の生成に用いた署名鍵に対応する検証鍵を含む、
     請求項4記載の知識証明方法。
  6.  証明者が管理する第1の情報処理装置に、
     所定値を検証者の公開鍵で暗号化した暗号文を生成し、
     第1の入力値を入力した場合の計算結果が前記所定値となる第1の関数に示される計算と前記第1の関数の計算結果を前記公開鍵で暗号化する計算とを含む第2の関数と、前記第1の入力値と前記公開鍵とを含む第2の入力値とに基づいて、前記第2の関数に入力した場合に計算結果として前記暗号文を得ることができる前記第2の入力値に含まれる秘匿対象の秘匿値を有していることを、非対話ゼロ知識証明によって証明する証明情報を生成し、
     前記暗号文と前記証明情報とを含む知識証明情報を、前記公開鍵に対応する秘密鍵を有する前記検証者が管理する第2の情報処理装置に送信する、
     処理を実行させる知識証明プログラム。
  7.  所定値を検証者の公開鍵で暗号化した暗号文を生成し、第1の入力値を入力した場合の計算結果が前記所定値となる第1の関数に示される計算と前記第1の関数の計算結果を前記公開鍵で暗号化する計算とを含む第2の関数と、前記第1の入力値と前記公開鍵とを含む第2の入力値とに基づいて、前記第2の関数に入力した場合に計算結果として前記暗号文を得ることができる前記第2の入力値に含まれる秘匿対象の秘匿値を有していることを、非対話ゼロ知識証明によって証明する証明情報を生成し、前記暗号文と前記証明情報とを含む知識証明情報を、前記公開鍵に対応する秘密鍵を有する前記検証者が管理する第2の情報処理装置に送信する処理部、
     を有する情報処理装置。
PCT/JP2020/028716 2020-07-27 2020-07-27 知識証明方法、知識証明プログラム、および情報処理装置 WO2022024182A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP20947126.7A EP4191939A4 (en) 2020-07-27 2020-07-27 KNOWLEDGE PROOF METHOD, KNOWLEDGE PROOF PROGRAM AND INFORMATION PROCESSING APPARATUS
JP2022539803A JPWO2022024182A1 (ja) 2020-07-27 2020-07-27
PCT/JP2020/028716 WO2022024182A1 (ja) 2020-07-27 2020-07-27 知識証明方法、知識証明プログラム、および情報処理装置
US18/069,464 US20230128879A1 (en) 2020-07-27 2022-12-21 Knowledge proof method, storage medium, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/028716 WO2022024182A1 (ja) 2020-07-27 2020-07-27 知識証明方法、知識証明プログラム、および情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/069,464 Continuation US20230128879A1 (en) 2020-07-27 2022-12-21 Knowledge proof method, storage medium, and information processing device

Publications (1)

Publication Number Publication Date
WO2022024182A1 true WO2022024182A1 (ja) 2022-02-03

Family

ID=80037822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/028716 WO2022024182A1 (ja) 2020-07-27 2020-07-27 知識証明方法、知識証明プログラム、および情報処理装置

Country Status (4)

Country Link
US (1) US20230128879A1 (ja)
EP (1) EP4191939A4 (ja)
JP (1) JPWO2022024182A1 (ja)
WO (1) WO2022024182A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114793228A (zh) * 2022-03-29 2022-07-26 上海万向区块链股份公司 基于零知识证明防止商户作恶的数据源筛选方法和系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117272293B (zh) * 2023-11-20 2024-02-13 北京信安世纪科技股份有限公司 零知识证明中公共参数生成方法、系统、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171349A (ja) 1995-12-19 1997-06-30 Nec Corp デジタル署名方法
JP2004005643A (ja) * 2002-05-30 2004-01-08 Internatl Business Mach Corp <Ibm> 定義されたパーティにより検証可能な匿名支払方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10129029B2 (en) * 2016-06-16 2018-11-13 International Business Machines Corporation Proofs of plaintext knowledge and group signatures incorporating same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171349A (ja) 1995-12-19 1997-06-30 Nec Corp デジタル署名方法
JP2004005643A (ja) * 2002-05-30 2004-01-08 Internatl Business Mach Corp <Ibm> 定義されたパーティにより検証可能な匿名支払方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Anonymous Remittance on Distributed Ledger and its Audit -Secure Protocol Using Zero-Knowledge Proof", INFORMATION PROCESSING, vol. 61, no. 2, 15 January 2020 (2020-01-15), pages 152 - 158
B. PARNOC. GENTRYJ. HOWELLM. RAYKOVA: "Pinocchio: nearly practical verifiable computation", IEEE SYMPOSIUM ON SECURITY AND PRIVACY OAKLAND 2013 CORRECTED VERSION, 13 May 2013 (2013-05-13)
FUKUDA TATSUHIRO, OMOTE KAZUMASA: "Efficient Blockchain-based IoT Firmware Update Considering Distribution Incentives", 2021 IEEE CONFERENCE ON DEPENDABLE AND SECURE COMPUTING (DSC), IEEE, 30 January 2021 (2021-01-30) - 2 February 2021 (2021-02-02), pages 1 - 8, XP055904036, ISBN: 978-1-7281-7534-8, DOI: 10.1109/DSC49826.2021.9346265 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114793228A (zh) * 2022-03-29 2022-07-26 上海万向区块链股份公司 基于零知识证明防止商户作恶的数据源筛选方法和系统

Also Published As

Publication number Publication date
JPWO2022024182A1 (ja) 2022-02-03
EP4191939A1 (en) 2023-06-07
US20230128879A1 (en) 2023-04-27
EP4191939A4 (en) 2023-09-20

Similar Documents

Publication Publication Date Title
TWI760149B (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
Weise Public key infrastructure overview
US7937584B2 (en) Method and system for key certification
US9397839B2 (en) Non-hierarchical infrastructure for managing twin-security keys of physical persons or of elements (IGCP/PKI)
US20050289343A1 (en) Systems and methods for binding a hardware component and a platform
JP2010503252A (ja) コンピューティング・プラットフォームの証明
US20070124584A1 (en) Proving ownership of shared information to a third party
GB2437558A (en) Privacy protection system
JP2004023796A (ja) 選択的に開示可能なデジタル証明書
CN110188551B (zh) 一种保单加密传输方法及系统
GB2517127A (en) Method for deriving a verification token from a credential
GB2398713A (en) Anonymous access to online services for users registered with a group membership authority
US20230128879A1 (en) Knowledge proof method, storage medium, and information processing device
CN104135368A (zh) 一种电子海图的数据保护方法
CN113364597A (zh) 一种基于区块链的隐私信息证明方法及系统
Chidambaram et al. Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique
JP5324813B2 (ja) 鍵生成装置、証明書生成装置、サービス提供システム、鍵生成方法、証明書生成方法、サービス提供方法およびプログラム
JPH10336172A (ja) 電子認証用公開鍵の管理方法
KR100984275B1 (ko) 안전하지 않은 통신 채널에서 비인증서 공개키를 사용한 보안키 생성 방법
CN116318696B (zh) 一种双方无初始信任情况下代理重加密数字资产授权方法
JP4840575B2 (ja) 端末装置、証明書発行装置、証明書発行システム、証明書取得方法および証明書発行方法
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
KR100970552B1 (ko) 비인증서 공개키를 사용하는 보안키 생성 방법
JP2004140636A (ja) 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム
JP2008506293A (ja) デジタル認証機能を提供する方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20947126

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022539803

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2020947126

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020947126

Country of ref document: EP

Effective date: 20230227