WO2021090764A1 - 生成装置、生成方法、及び検証装置 - Google Patents

生成装置、生成方法、及び検証装置 Download PDF

Info

Publication number
WO2021090764A1
WO2021090764A1 PCT/JP2020/040724 JP2020040724W WO2021090764A1 WO 2021090764 A1 WO2021090764 A1 WO 2021090764A1 JP 2020040724 W JP2020040724 W JP 2020040724W WO 2021090764 A1 WO2021090764 A1 WO 2021090764A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
proof
conditional expression
unit
generated
Prior art date
Application number
PCT/JP2020/040724
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 US17/755,305 priority Critical patent/US20220407706A1/en
Priority to CN202080070134.4A priority patent/CN114503513A/zh
Publication of WO2021090764A1 publication Critical patent/WO2021090764A1/ja

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/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
    • H04L9/3221Cryptographic 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 interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

生成装置(20)は、ゼロ知識証明を用いた検証に用いられる証明情報を生成する生成装置であって、条件式生成部(23a)と、証明情報生成部(23b)とを備える。条件式生成部(23a)は、1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成する。証明情報生成部(23b)は、証明情報として、複数の条件式のそれぞれに基づく複数のproofを生成する。

Description

生成装置、生成方法、及び検証装置
 本開示は、生成装置、生成方法、及び検証装置に関する。
 ユーザの氏名、住所、電話番号、メールアドレス等の個人情報を用いて、インターネット上でサービスを受けるための本人確認処理などの認証処理を行う際に、プライバシーの保護や利便性を満たすための試みが提案されている。
 また、プライバシーの保護に鑑み、本人確認処理などの認証処理において、個人情報など、ユーザが公開したくない情報を提示する必要のないゼロ知識証明の手法の利用が検討される場合もある。
特開2019-40537号公報
 ゼロ知識証明の手法を利用する場合、個人情報を定義する条件の複雑さなどを原因として、個人情報を知っていることの証明を行うための証明情報の変更に伴う処理負担が大きいという課題がある。
 そこで、本開示では、証明情報の変更に伴う処理負担を軽減できる生成装置、生成方法、及び検証装置を提案する。
 上記の課題を解決するために、本開示に係る一実施形態の生成装置は、ゼロ知識証明を用いた検証に用いられる証明情報を生成する生成装置であって、条件式生成部と、証明情報生成部とを備える。条件式生成部は、1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成する。証明情報生成部は、証明情報として、複数の条件式のそれぞれに基づく複数のproofを生成する。
実施形態に係る情報処理システムのシステム構成の一例を模式的に示す図である。 実施形態に係る情報処理ステムの概要を示す図である。 比較例に係る証明情報の生成方法の一例を示す図である。 実施形態に係るユーザ端末の機能構成例を示すブロック図である。 実施形態に係る情報銀行装置の機能構成の一例を示すブロック図である。 実施形態に係る個人情報格納部に記憶される情報の概要を示す図である。 実施形態に係る証明情報格納部に記憶される情報の概要を示す図である。 実施形態に係るセットアップ処理の概要を示す図である。 実施形態に係るセットアップ処理の概要を示す図である。 実施形態に係るセットアップ処理の概要を示す図である。 実施形態に係る証明情報の生成方法の概要を示す図である。 実施形態に係る証明情報の生成方法の概要を示す図である。 実施形態に係る証明情報の生成方法の概要を示す図である。 実施形態に係る証明情報の更新方法の概要を示す図である。 実施形態に係る証明情報の更新方法の概要を示す図である。 実施形態に係る情報利用者装置の機能構成の一例を示すブロック図である。 実施形態に係る検証処理の概要を示す図である。 実施形態に係る情報処理システムによる処理手順の一例を示すシーケンス図である。 実施形態に係る情報処理システムによる処理手順の一例を示すシーケンス図である。 実施形態に係る情報処理システムによる処理手順の一例を示すシーケンス図である。 実施形態に係る情報処理システムによる処理手順の一例を示すシーケンス図である。 変形例に係る条件式の概要を示す図である。 情報銀行装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する場合がある。
 また、以下に示す項目順序に従って本開示を説明する。
  1.システム構成例
  2.機能構成例
  3.処理手順例
  4.変形例
  5.その他
  6.まとめ
  7.ハードウェア構成
(1.システム構成例)
 図1及び図2を参照して、実施形態に係る情報処理システムのシステム構成例について説明する。図1は、実施形態に係る情報処理システムのシステム構成の一例を模式的に示す図である。図2は、実施形態に係る情報処理ステムの概要を示す図である。
 図1に示すように、実施形態に係る情報処理システム1は、ユーザ端末10と、情報銀行装置20(情報銀行装置20a,20b)と、情報利用者装置30(情報利用者装置30a,30b)とを備えている。情報銀行装置20は、ゼロ知識証明を用いた検証のための情報を生成する生成装置として機能する。情報利用者装置30は、ゼロ知識証明を用いた検証を実行する検証装置として機能する。
 以下では、実施形態に係る情報処理システム1において、情報銀行装置20が、秘密情報の一例であるユーザの個人情報を管理する情報管理サービス、並びに情報利用者装置30のユーザに対して個人情報を提供する情報提供サービスを実現する例を説明する。実施形態に係る情報処理システム1により実現されるサービス形態は、この例には特に限定される必要はない。また、秘密情報は、個人情報の他、企業等の情報であってもよく、匿名性を担保する必要がある情報や、情報の出所を明らかにすることを避けたい情報などの種々の情報であってよい。
 ユーザ端末10、情報銀行装置20、及び情報利用者装置30は、通信ネットワーク100に接続する。ユーザ端末10及び情報銀行装置20は、通信ネットワーク100を介して、各種データを送受信するデータ通信を行う。情報銀行装置20及び情報利用者装置30は、通信ネットワーク100を介して、各種データを送受信するデータ通信を行う。
 通信ネットワーク100は、インターネット、電話回線網、または衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などで実現されてもよい。さらに、通信ネットワーク100は、Wi-Fi(登録商標)、Bluetooth(登録商標)などの無線通信網で実現されてもよい。あるいは、通信ネットワーク100は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網で実現されてもよい。
 通信ネットワーク100は、ピアツーピアネットワーク(以下、「P2Pネットワーク」と記載する)を含んでよい。P2Pネットワークは、P2P型分散ファイルシステムと呼ばれる場合もある。情報処理システム1は、例えば、P2Pネットワークに流通している分散型のP2Pデータベースを利用できる。P2Pデータベースは、例えば、複数の情報処理装置110a~110dにより構築される。P2Pデータベースとして、P2Pネットワークに流通しているブロックチェーンシステム110が例示される。
 ブロックチェーンシステム110により、情報処理システム1における個人情報の請求及び取得等の履歴を示す履歴データ(ログ)が管理される。各履歴データに暗号鍵を用いた電子署名を付与したり、各トランザクションデータを暗号化したりすることにより、なりすましや履歴データの改ざんが防止される。また、各履歴データは公開され、複数の情報処理装置110a~110d全体で共有される。
 図2に示すように、情報銀行装置20の情報提供サービスへの情報登録を希望するユーザU1は、ユーザ端末10を操作し、情報銀行装置20に個人情報を登録する。ユーザU1は、個人情報の登録に合わせて、個人情報の提供を許可する公開先の登録を行う。
 情報銀行装置20は、ユーザU1から登録された個人情報を管理する。情報銀行装置20は、1又は複数の条件で個人情報を定義する条件式を、異なる条件ごとに複数生成するセットアップ処理を実行する。セットアップ処理では、複数生成された条件式のそれぞれに対して、各条件式が特定の個人に帰属する個人情報を定義するものであることを示す同一の乱数を付加する。乱数には、たとえば個人情報など、ユーザU1しか知り得ない情報を用いることができる。また、セットアップ処理では、複数生成した条件式ごとに、ゼロ知識証明に用いる証明鍵と、検証鍵とが合わせて生成される。
 また、情報銀行装置20は、ゼロ知識証明を用いた検証に用いられる証明情報として、複数の条件式のそれぞれに基づく複数のproof(以下、プルーフと適宜表記する)を生成する。プルーフは、例えば情報利用者装置30のユーザに対して、情報利用者装置30のユーザにより指定された条件に合う個人情報を知っていることを、個人情報を開示することなく証明するための情報である。例えば、情報利用者装置30は、証明鍵を用いて生成されたプルーフを、検証鍵を用いて検証することにより、情報銀行装置20が条件に合う個人情報を知っているか否かの条件判定を実施できる。
 情報銀行装置20は、情報利用者装置30からの個人情報の請求があると、複数のプルーフの中から、指定される条件に合致するプルーフを情報利用者装置30に提供する。また、情報銀行装置20は、プルーフと共に、プルーフの検証に用いる公開情報及び検証鍵を情報利用者装置30に合わせて提供する。
 情報利用者装置30は、情報銀行装置20に対して個人情報の請求を行うことにより、情報銀行装置20から取得したプルーフを検証する。個人情報の請求は、例えば、検索条件を指定するクエリなどを用いて行われる。
 図3は、比較例に係る証明情報の生成方法の一例を示す図である。個人情報は、年齢や電話番号、住所などの1又は複数の条件により定義することができる。例えば、図3に示すように、あるユーザの個人情報と、年齢を定義する条件D及び住所を定義する条件Eの2つの条件を含む条件式Fとに基づいて、この条件式Fに基づく「proof:F」を生成できる。このとき、例えば、ユーザの年齢に変更があった場合、条件D及び条件Eの2つの条件を含む条件式Fに基づいて生成された「proof:F」は、たとえ住所に変更がなくても、プルーフ全体を再生成する必要がある。
 これに対して、実施形態に係る情報処理システム1では、1又は複数の条件で個人情報を定義する条件式を、異なる条件ごとに複数生成する。そして、実施形態に係る情報処理システム1では、ゼロ知識証明を用いた検証に用いられる証明情報として、複数の条件式のそれぞれに基づく複数のプルーフを生成する。このため、実施形態に係る情報処理システム1では、1又は複数の条件で個人情報を定義する条件式を、異なる条件ごとに部分的に管理できる。これにより、実施形態に係る情報処理システム1によれば、個人情報や条件に変更があっても、条件式ごとに生成されるプルーフを個別に更新でき、証明情報の変更に伴う処理負担を軽減できる。
(2.機能構成例)
 続いて、実施形態に係る情報処理システム1が備える各装置の機能構成の一例について説明する。
(2-1.ユーザ端末)
 ユーザ端末10は、情報銀行装置20により提供される情報管理サービスの利用者であるユーザが操作するユーザデバイスである。ユーザ端末10は、例えば、スマートフォンを含む携帯電話機や、タブレット端末や、デスクトップ型PCや、ノート型PCや、PDA(Personal Digital Assistant)等の情報処理装置により実現される。
 図4は、実施形態に係るユーザ端末の機能構成例を示すブロック図である。図4に示すように、ユーザ端末10は、通信部11と、入力部12と、出力部13と、撮像部14と、測位部15と、検出部16と、記憶部17と、制御部18とを備えている。
 図4は、実施形態に係るユーザ端末10の機能構成の一例を示すものであり、図4に示す例には特に限定される必要はなく、ユーザ端末10の各種処理を実現可能な任意の構成を採用できる。また、図4に示すユーザ端末10の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。たとえば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
 通信部11は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部11は、通信ネットワーク100と有線又は無線で接続され、かかる通信ネットワーク100を介して、情報銀行装置20等との間で情報の送受信を行う。
 入力部12は、キーボードやマウスなどを備え、ユーザ端末10のユーザから各種操作を受け付ける。入力部12がユーザから受け付ける操作には、情報銀行装置20から提供される情報管理サービスを利用する際に必要となるユーザ登録操作や、個人情報の登録(アップロード)の操作などが含まれる。入力部12は、マイクなどの音入力デバイスを備えてもよく、音声入力デバイスを介してユーザの音声などの入力を受け付けることができる。
 出力部13は、ディスプレイやスピーカーなどを備え、各種情報を出力する。出力部13が出力する情報には、情報銀行装置20から提供されるユーザ登録操作や、個人情報の登録操作を行うためのユーザインターフェイスなどを含む。
 撮像部14は、カメラなどのデバイスを備え、画像を撮像する。撮像部14により取得されるユーザの顔画像や虹彩の画像などのデータは、情報管理サービスにおける取扱い可能であれば、ユーザの個人情報の1つとして登録できる。
 測位部15は、GPS(Global Positioning System)などを備え、ユーザ端末10の位置を取得する。測位部15により取得されるユーザの位置情報は、情報管理サービスにおける取扱い可能であれば、ユーザの個人情報の1つとして登録できる。
 検出部16は、加速度センサやジャイロセンサ、生体センサなどを備え、ユーザ端末10に作用する各種情報を検出する。検出部16により取得されるユーザの歩容に対応する特徴量や心拍の波形、指紋の特徴点などの生体情報は、情報管理サービスにおける取扱い可能であれば、ユーザの個人情報の1つとして登録できる。
 記憶部17は、制御部18により実行される各種処理機能を実現するためのプログラム及びデータ等を記憶する。記憶部17は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部17が記憶するプログラムには、制御部18の各部に対応する処理機能を実現するための制御プログラムが含まれる。制御プログラムは、情報管理サービスを利用する際に必要となるユーザ登録操作や個人情報の登録操作等に関する処理を、ユーザ端末10に実行させるための処理機能を提供する。
 制御部18は、ユーザ端末10における各種処理を実行する。制御部18は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等のプロセッサにより実現される。例えば、制御部18は、ユーザ端末10の内部に備えられた記憶装置に記憶されている各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより実現される。なお、制御部18は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
 制御部18は、登録部18a及び変更依頼部18bを備え、これらの各部により、ユーザ端末10の各種処理の機能や作用を実現または実行する。
 登録部18aは、情報管理サービスを利用する際に必要となるユーザ登録操作や個人情報の登録操作等を行うための処理を実行する。変更依頼部18bは、情報銀行装置20に登録済みの個人情報の変更依頼を行うための処理を実行する。
(2-2.情報銀行装置)
 情報銀行装置20は、ユーザの個人情報を管理する情報管理サービス、及び情報利用者装置30に個人情報を提供する情報提供サービスを提供するサービス事業者により管理される装置である。情報銀行装置20は、クラウド環境上に設置されたサーバ等の情報処理装置により実現される。
 図5は、実施形態に係る情報銀行装置の機能構成の一例を示すブロック図である。図5に示すように、情報銀行装置20は、通信部21と、記憶部22と、制御部23とを備えている。
 図5は、実施形態に係る情報銀行装置20の機能構成の一例を示すものであり、図5に示す例には特に限定される必要はなく、情報銀行装置20の各種処理を実現可能な任意の構成を採用できる。また、図5に示す情報銀行装置20の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。たとえば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
 通信部21は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部21は、通信ネットワーク100と有線又は無線で接続され、かかる通信ネットワーク100を介して、ユーザ端末10及び情報利用者装置20等との間で情報の送受信を行う。
 記憶部22は、制御部23により実行される各種処理機能を実現するためのプログラム及びデータ等を記憶する。記憶部22は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部22が記憶するプログラムには、制御部23の各部に対応する処理機能を実現するための制御プログラムが含まれる。制御プログラムは、情報管理サービスの提供に際してユーザ端末10との間で実行されるユーザ登録や個人情報の登録等を実現するための各種処理機能を提供する。また、制御プログラムは、情報提供サービスを実現するための各種処理機能を提供する。
 図5に示すように、記憶部22は、個人情報格納部22a及び証明情報格納部22bを備えている。
 図6は、実施形態に係る個人情報格納部に記憶される情報の概要を示す図である。図6に示すように、個人情報格納部22aは、ユーザIDの項目に対応付けて、個人情報を特定する属性を示す複数の項目と、情報公開先の項目を備えている。ユーザIDの項目には、情報管理サービスのユーザ登録を行ったユーザに対して一意に付与されるユーザIDが記憶される。個人情報格納部22aは、個人情報の属性を示す各項目として、例えば、名前、住所、電話番号、年齢等の複数の項目を備え、これらの項目に対応する個人情報が記憶される。
 情報銀行装置20が取扱い可能な個人情報として、カード番号などの秘密情報、公知の情報の組合せ、センシングデータ、マイナンバー、クレジットカード情報などのその他の情報が例示される。公知の情報の組合せとして、自宅の住所や電話番号の他、家族の名前、実家の住所や電話番号、親の旧姓などが例示される。センシングデータとして、指紋、自宅など特定の場所の位置情報、虹彩、顔、歩容などの生体情報が例示される。情報公開先の項目には、情報管理サービスのユーザ登録の際に、ユーザが個人情報の提供を許可する企業等を特定するための情報が記憶される。なお、個人情報の提供を許可する企業等を特定するための情報として、公開先とする企業名の他、情報利用者の利用目的による条件や情報提供に対する報酬による条件が記憶されてもよい。例えば、ダイレクトマーケティングの目的で情報提供を求める情報利用者に対しては、情報を公開しないという設定が可能である。また、情報提供に対する報酬がある場合や、報酬が所定の金額を超える場合にのみ、情報を公開するという設定も可能である。また、個人情報は、実際のデータそのものでなくてもよく、暗号化されたデータや匿名処理されたデータであってもよい。また、情報公開先は、個人情報の各項目ごとに個別に設定されてもよいし、全ての個人情報についてまとめて設定されてもよい。
 図7は、実施形態に係る証明情報格納部に記憶される情報の概要を示す図である。図7に示すように、証明情報格納部22bは、ユーザIDの項目と、証明情報の項目とを備えており、これらの項目が互いに対応付けられている。ユーザIDの項目には、情報管理サービスのユーザ登録を行ったユーザに対して一意に付与されるユーザIDが記憶される。証明情報の項目には、ユーザ登録の際に生成されるプルーフの情報が記憶される。
 制御部23は、情報銀行装置20における各種処理を実行する。制御部23は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等のプロセッサにより実現される。例えば、制御部23は、情報銀行装置20の内部に備えられた記憶装置に記憶されている各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより実現される。なお、制御部23は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
 図5に示すように、制御部23は、セットアップ処理部23aと、生成部23bと、提供部23cと、再生成部23dとを備えており、これらの各部により、情報銀行装置20の各種処理の機能や作用を実現または実行する。
 セットアップ処理部23aは、1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成する条件式生成部として機能する。セットアップ処理部23aによるセットアップ処理は、初期設定として1度だけ実施される。図8~図10は、実施形態に係るセットアップ処理の概要を示す図である。
 例えば、図8~図10に示すように、セットアップ処理部23aは、例えば、ある1つの個人情報J1を所定の条件により定義する条件式A、ある2つの個人情報J2,J3のそれぞれを所定の条件により定義する条件式B、並びに条件式A及び条件式Bが正しいことを定義する条件式Cをそれぞれ生成する。図8~図10に示す例において、個人情報J1~J3は、数字で定義可能な個人情報に相当する。
 例えば、条件式Aにより、ある個人情報J1が100よりも大きいという条件が定義される。なお、条件式Aには、公開情報Qが100に等しいという条件が含まれる。また、条件式Bにより、ある個人情報J2が1よりも大きく、かつ個人情報J3が10未満であるという条件が定義される。条件式Cにより、条件式A(個人情報J1が100よりも大きい)、及び条件式B(個人情報J2が1よりも大きく、かつ個人情報J3が10未満である)がそれぞれ正しいという条件が定義される。
 また、図8~図10に示すように、条件式A~条件式Cには、各条件式A~Cにより定義される個人情報が特定の個人に帰属することを示す情報として同一の乱数αが付加される。乱数αは、これにより、個人情報J1~J3を定義する条件式A~Cのそれぞれが同一のユーザに帰属する個人情報を定義するものであることが証明され、情報利用者装置30におけるプルーフの検証時に適当な組み合わせで検証されることを防止できる。セットアップ処理部23aは、ユーザ端末10のユーザの個人情報を登録する際に、乱数αを暗号鍵により暗号化した情報(Enc(α))を生成する。セットアップ処理部23aは、乱数αを暗号化した情報(Enc(α))を公開情報Enc(α)としてブロックチェーンシステム110に登録する。また、セットアップ処理部23aは、ユーザ端末10のユーザの個人情報を登録する際に、公開情報Qをブロックチェーンシステム110に登録できる。公開情報Qとしては、たとえばユーザ端末10のユーザが公開可能と判断した個人情報等を用いることができ、ユーザ端末10のユーザから取得できる。公開情報としてブロックチェーンシステム110に登録される公開情報Enc(α)及び公開情報Qは、プルーフとともに情報利用者装置30に提供され、ゼロ知識証明を利用した情報利用者装置30によるプルーフの検証時に用いられる。
 また、セットアップ処理部23aは、生成した条件式Aに対応する証明鍵A及び検証鍵A、生成した条件式Bに対応する証明鍵B及び検証鍵B、並びに生成した条件式Cに対応する証明鍵C及び検証鍵Cをそれぞれ生成する。例えば、セットアップ処理部23aは、条件式A~Cのそれぞれを加算と乗算で表した計算式の列に変換し、変換した列を行列とみなしたR1CSを求める。そして、セットアップ処理部23aは、乱数αと、R1CSをQAPに変換して得られる行列の値とをスカラー値とした楕円曲線暗号によるスカラー倍演算を行い、証明鍵及び検証鍵を生成する。
 このように、セットアップ処理部23aは、1又は複数の条件で個人情報を定義する条件式を、異なる条件ごとに部分的に管理できる。
 生成部23bは、ゼロ知識証明を用いた検証に用いられる証明情報として、セットアップ処理部23aにより生成された複数の条件式に基づくプルーフを、複数の条件式ごとにそれぞれ生成する。生成部23bは、上述の証明情報として、複数の条件式のそれぞれに基づく複数のプルーフを生成する証明情報生成部として機能する。
 生成部23bは、ユーザ端末10からユーザ登録要求を受信すると、ユーザ登録処理を実行する。具体的には、生成部23bは、ユーザ登録要求の送信元であるユーザ端末10のユーザに対して付与するユーザIDを発行する。そして、生成部23bは、ブロックチェーンシステム110に対して、ユーザIDを含むユーザ登録要求を送信する。
 また、生成部23bは、ユーザ登録処理の完了後に、ユーザ端末10から取得する個人情報を、ユーザIDに関連付けて個人情報格納部22aに格納する。個人情報の保存が完了すると、生成部23bは、プルーフを生成する。図11~図13は、実施形態に係る証明情報の生成方法の概要を示す図である。以下の説明において、公開情報J4は、ブロックチェーンシステム110に登録される公開情報Enc(α)及び公開情報Qのうちの少なくともいずれか一方を指す。
 例えば、図11に示すように、生成部23bは、セットアップ処理部23aにより生成された証明鍵A及び条件式Aから求められるQAPと、ユーザの個人情報P1と、公開情報J4(Enc(α)、Q)とを掛け合わせることにより、スカラー値を求める。そして、生成部23bは、求めたスカラー値を証明鍵Aにより暗号化し、暗号化した値を足し合わせたものを、条件式Aに基づく「proof:A」として生成する。
 また、図12に示すように、生成部23bは、セットアップ処理部23aにより生成された証明鍵B、及び条件式Bから求められるQAPと、ユーザの個人情報J2,J3と、公開情報J4(Enc(α))とを掛け合わせることにより、スカラー値を求める。そして、生成部23bは、求めたスカラー値を証明鍵Bにより暗号化し、暗号化した値を足し合わせたものを、条件式Bに基づく「proof:B」として生成する。
 また、図13に示すように、生成部23bは、セットアップ処理部23aにより生成された証明鍵C、及び条件式Cから求められるQAPと、ユーザの個人情報J1~J3と、公開情報J4(Enc(α))とを掛け合わせることにより、スカラー値を求める。そして、生成部23bは、求めたスカラー値を証明鍵Cにより暗号化し、暗号化した値を足し合わせたものを、条件式Cに基づく「proof:C」として生成する。
 生成部23bは、生成した複数のプルーフを、ユーザIDに関連付けて証明情報格納部22bに格納する。また、生成部23bは、生成したプルーフを、ユーザIDに関連付けてブロックチェーンシステム110に登録する。生成部23bは、ブロックチェーンシステム110にプルーフを登録する際、プルーフの登録に用いた同一のユーザIDに関連付けて、公開情報Enc(α)及び公開情報Qをブロックチェーンシステム110に合わせて登録する。
 上述したセットアップ処理部23a及び生成部23bによる処理は、例えば、下記文献等に開示されているゼロ知識証明の命題を非対話式に実現する既存技術である「zk-SNARK」を用いて行うことができる。
・<https://eprint.iacr.org/2016/260.pdf>
・<http://zerocash-project.org/media/pdf/zerocash-oakland2014.pdf>
 提供部23cは、情報利用者装置30から受信する個人情報の請求に応じて、生成部23bにより生成された複数のプルーフの中から、指定される条件に合致するプルーフ(プルーフのリスト)を提供する。例えば、提供部23cは、個人情報の請求元である情報利用者装置30のユーザを情報公開先に設定している個人情報の登録があるか否かを判定する。そして、情報利用者装置30のユーザを情報公開先に設定している個人情報の登録があれば、証明情報格納部22bに記憶されている複数のプルーフの中から、情報利用者装置30により指定される条件に合致するプルーフを検索する。すなわち、提供部23cは、証明情報格納部22bに記憶されている複数のプルーフの中から、情報利用者装置30から受信した個人情報の請求において、クエリにより指定された検索条件に合致する個人情報を用いて生成されたプルーフを検索する。そして、提供部23cは、検索条件に合致する個人情報を用いて生成されたプルーフのリストを情報利用者装置30に送信する。
 再生成部23dは、ユーザ端末10から変更依頼に対応する新たな個人情報を受信すると、変更依頼の送信元であるユーザのユーザIDに関連付けて記憶されている個人情報を、新たな個人情報で更新する。
 また、再生成部23dは、条件式により定義された個人情報の変更に応じて、変更に対応する個人情報を定義する条件式に基づくプルーフを再生成して更新する証明情報生成部として機能する。図14は、実施形態に係る証明情報の更新方法の概要を示す図である。再生成部23dは、個人情報P1が個人情報P1’に変更される場合、個人情報P1に基づくproof:Aを破棄する。続いて、図14に示すように、再生成部23dは、ユーザ端末10から受信した新たな個人情報P1’に基づくproof:A’を再生成する。そして、再生成部23dは、再生成したproof:A’を、変更依頼の送信元であるユーザのユーザIDに関連付けて、証明情報格納部22bに格納する。例えば、再生成部23dは、ユーザから住所の変更依頼を受信すると、該当ユーザの旧住所に基づくプルーフを破棄し、新たな住所を用いたプルーフを再生成して、証明情報格納部22bに格納する。このように、再生成部23dは、変更された個人情報に基づくプルーフのみを個別に更新できる。このため、プルーフを再生成に要する処理時間を短縮できる。
 また、再生成部23dは、条件式に含まれる条件の変更に応じて、変更される条件を含む条件式に基づくプルーフを再生成して更新する。図15は、実施形態に係る証明情報の更新方法の概要を示す図である。再生成部23dは、「個人情報J1>100」という条件を含む条件式Aが、「個人情報J1>150」という条件を含む条件式A’に変更される場合、条件式Aを用いて生成されたproof:Aを破棄する。続いて、図15に示すように、再生成部23dは、新たな条件「個人情報J1>150」を含む条件式A’を用いて証明鍵A’及び検証鍵A’を生成するとともに、条件式A’に基づくproof:A’’を新たに生成する。そして、再生成部23dは、再生成したproofA’’を証明情報格納部22bに格納する。例えば、再生成部23dは、ユーザの年齢条件を定義する条件式が、20歳以上の条件を定義する条件式から30歳以上の条件を定義する条件式に変更される場合、20歳以上の条件を定義する条件式に基づくプルーフを破棄する。そして、30歳以上の条件を定義する条件式に基づくプルーフを新たに再生成して、証明情報格納部22bに格納する。このように、再生成部23dは、変更される条件を含むプルーフのみを個別に更新できる。このため、プルーフを再生成に要する処理時間を短縮できる。
 情報銀行装置20は、プルーフを情報利用者装置30に提供する際、ブロックチェーンシステム110に、情報利用者装置30による情報提供サービスの利用履歴を登録する。情報銀行装置20は、情報提供サービスの利用履歴として、例えば、情報利用者装置30のユーザに関する情報や請求があった請求日時、提供したプルーフに関する情報などをブロックチェーンシステム110に登録できる。
(2-3.情報利用者装置)
 情報利用者装置30は、情報銀行装置20から提供される情報提供サービスの利用者であるユーザ(情報利用者)が操作する装置である。情報利用者装置30は、例えば、スマートフォンを含む携帯電話機や、タブレット端末や、デスクトップ型PCや、ノート型PCや、PDA(Personal Digital Assistant)等の情報処理装置により実現される。
 図16は、実施形態に係る情報利用者装置の機能構成の一例を示すブロック図である。図16に示すように、情報利用者装置30は、通信部31と、入力部32と、出力部33と、記憶部34と、制御部35とを備えている。
 図16は、実施形態に係る情報利用者装置30の機能構成の一例を示すものであり、図16に示す例には特に限定される必要はなく、情報利用者装置30の各種処理を実現可能な任意の構成を採用できる。また、図16に示す情報利用者装置30の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。たとえば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
 通信部31は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部31は、通信ネットワーク100と有線又は無線で接続され、かかる通信ネットワーク100を介して、情報銀行装置20等との間で情報の送受信を行う。
 入力部32は、キーボードやマウスなどを備え、情報利用者装置30のユーザから各種操作を受け付ける。入力部32がユーザから受け付ける操作には、情報提供サービスの提供を受けるために必要となるログイン操作や、情報銀行装置20に対して個人情報を請求するための検索クエリの入力操作などが含まれる。入力部32は、マイクなどの音入力デバイスを備えてもよく、音声入力デバイスを介してユーザの音声などの入力を受け付けることができる。
 出力部33は、ディスプレイやスピーカーなどを備え、各種情報を出力する。出力部33が出力する情報には、情報提供サービスの提供を受けるために必要となるログイン操作を受け付けるユーザインターフェイスや、情報銀行装置20から提供されるプルーフ、公開情報、検証鍵、個人情報のデータなどが含まれる。
 記憶部34は、制御部35により実行される各種処理機能を実現するためのプログラム及びデータ等を記憶する。記憶部34は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部34が記憶するプログラムには、制御部35の各部に対応する処理機能を実現するための制御プログラムが含まれる。制御プログラムは、情報提供サービスを利用する際に必要となるログイン操作や検索クエリの入力操作等に関する処理を、情報利用者装置30に実行させるための処理機能を提供する。
 制御部35は、情報利用者装置30における各種処理を実行する。制御部35は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等のプロセッサにより実現される。例えば、制御部35は、情報利用者装置30の内部に備えられた記憶装置に記憶されている各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより実現される。なお、制御部35は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
 制御部35は、取得部35a及び検証部35bを備えており、これらの各部により、情報利用者装置30の各種処理の機能や作用を実現または実行する。
 取得部35aは、1又は複数の条件で秘密情報を定義するために異なる条件ごとに複数生成された各条件式に基づく複数のプルーフの中から、指定する条件に合致する個人情報を用いて生成されたプルーフを取得する。情報利用者装置30のユーザは、個人情報の請求を行う際、例えば、「東京都に在住の30歳以上の男性」などの検索クエリによって検索条件を指定できる。取得部35aは、例えば、情報銀行装置20から取得するプルーフのリストに基づいて、ブロックチェーンシステム110から指定する条件に合致するプルーフを取得できる。
 また、取得部35aは、プルーフと共に、ゼロ知識証明を用いて個人情報を取得可能か否かの条件判定を実行するために必要な検証鍵及び公開情報をブロックチェーンシステム110から取得する。
 また、取得部35aは、ブロックチェーンシステム110から、個人情報の変更に伴って再生成されたプルーフ、並びに条件の変更に伴って再生成されたプルーフを取得できる。
 検証部35bは、取得部35aにより取得されたプルーフを検証し、個人情報を請求する際に指定した条件に合致する個人情報を取得可能か否かの条件判定を実行する。具体的には、検証部35bは、取得部35aにより取得されたプルーフをペアリング(暗号処理)したものと、検証鍵と開情報をペアリングした結果が一致すれば、検証結果を「OK」とする。一方、検証部35bは、取得部35aにより取得されたプルーフをペアリング(暗号処理)したものと、検証鍵と公開情報をペアリングした結果が一致しなければ、検証結果を「NG」とする。図17は、実施形態に係る検証処理の概要を示す図である。
 図17に示すように、取得部35aにより、条件に合致するプルーフとしてproof:A~Cが取得され、proof:A~Cと共に、各proofに対応する検証鍵A~C並びに公開情報J4(Enc(α)、Q)が取得されたとする。このとき、検証部35bは、まず、proof:A、公開情報J4(Enc(α)、Q)、及び検証鍵Aを用いた検証を実行する。次に、検証部35bは、proof:B、公開情報J4(Enc(α))、及び検証鍵Bを用いた検証を実行する。最後に、検証部35bは、proof:Aの検証結果と、proof:Bの検証結果と、proof:C、公開情報J4(Enc(α))、及び検証鍵Cとを用いた検証を実行する。図17に示す場合、検証部35bの検証結果は、proof:Aの検証結果、及びproof:Bの検証結果がともに「OK」であるとき、proof:Cの検証結果も「OK」となる。
 検証部35bによる検証結果が「OK」であれば、指定した条件に合致する個人情報を取得可能であると判定される。一方、検証結果がNGであれば、指定した条件に合致する個人情報を取得可能ではないと判定される。
 検証部35bは、個人情報を取得可能であると判定すると、情報銀行装置20に対して個人情報の取得要求を送信する。
(3.処理手順例)
 図18~図21を参照して、実施形態に係る情報処理システム1による処理手順例について説明する。図18~図21は、実施形態に係る情報処理システム1による処理手順の一例を示すシーケンス図である。
 図18を用いて、情報処理システム1におけるセットアップ処理の手順について説明する。図18に示すように、情報銀行装置20は、個人情報の内容を定義する条件式を生成するセットアップ処理を実行する(ステップS101)。セットアップ処理では、生成した条件式に対応する証明鍵及び検証鍵が合わせて生成される。セットアップ処理は、初期設定として1度だけ実施される。
 図19を用いて、情報処理システム1におけるユーザ登録からプルーフの登録までの処理の手順について説明する。図19に示すように、ユーザ端末10は、ユーザ登録要求を情報銀行装置20に送信する(ステップS201)。
 情報銀行装置20は、ユーザ登録要求を受信すると、ユーザ登録処理を実行するとともに、ブロックチェーンシステム110に対して、ユーザ登録要求を送信する(ステップS202)。情報銀行装置20は、ブロックチェーンシステム110からの登録完了の応答を受信すると、ユーザ登録完了の通知をユーザ端末に送信する(ステップS203)。このように、情報銀行装置20は、自装置及びブロックチェーンシステム110の双方にユーザ登録を行う。
 ユーザ端末10は、情報銀行装置20からユーザ登録完了の通知を受信すると、個人情報の登録要求を送信する(ステップS204)。
 情報銀行装置20は、ユーザ端末10から送信された個人情報の登録要求を受信すると、登録要求に含まれる個人情報を、ユーザIDに関連付けて個人情報格納部22aに保存する(ステップS205)。
 情報銀行装置20は、ステップS205で取得した個人情報を用いてproof生成処理を実行する(ステップS206)。情報銀行装置20は、proof生成処理により生成したproofをブロックチェーンシステム110に登録する(ステップS207)。なお、情報銀行装置20は、proofを登録する際、公開情報(Enc(α)、Q)をブロックチェーンシステム110に合わせて登録しておく。
 図20を用いて、情報処理システム1における個人情報の更新からプルーフの登録までの処理の手順について説明する。図20に示すように、ユーザ端末10は、ユーザの操作に従って、個人情報の変更依頼を情報銀行装置20に送信する(ステップS301)。
 情報銀行装置20は、ユーザ端末10から個人情報の変更依頼を受信すると、変更依頼に含まれる新たな個人情報で、変更依頼の送信元であるユーザのユーザIDに関連付けて記憶されている個人情報を更新する(ステップS302)。
 続いて、情報銀行装置20は、個人情報の変更に応じて、変更に対応する個人情報を基づくproofを再生成する(ステップS303)。
 proofの再生成後、情報銀行装置20は、ブロックチェーンシステム110に対して、再生成したproofの更新登録を実行する(ステップS304)。
 図21を用いて、情報処理システム1における個人情報の請求、検証、及び取得までの処理の手順について説明する。図21に示すように、情報利用者装置30は、ブロックチェーンシステム110に対して、検索条件のクエリを指定して個人情報の請求を送信する(ステップS401)。情報銀行装置20が複数ある場合(例えば、情報銀行装置20a、20b)、各情報銀行装置20がブロックチェーンシステム110を介して接続され、相互に情報をやり取りできる。情報利用者装置30は、どの情報銀行装置20に、指定する条件に合致する個人情報が登録されているか判断できないので、まず、ブロックチェーンシステム110に個人情報を請求する。情報利用者装置30は、個人情報の請求を行う際、例えば、「東京都に在住の30歳以上の男性」などの検索クエリによって検索条件を指定する。
 ブロックチェーンシステム110は、情報利用者装置30から受信した個人情報の請求に関する情報を請求ログとして書き込みを行い(ステップS402)、個人情報の請求を情報銀行装置20に送信する(ステップS403)。ブロックチェーンシステム110には、請求ログと一致させるために、ブロックチェーンシステム110から情報銀行装置20に請求するスマートコントラクトが登録されている。
 情報銀行装置20は、ブロックチェーンシステム110から個人情報の請求を受信し、証明情報格納部22bに記憶されている複数のproofの中から、クエリにより指定された検索条件に合致するproofを検索する(ステップS404)。
 情報銀行装置20は、検索条件に合致する個人情報を用いて生成されたproofのリストを情報利用者装置30に送信する(ステップS405)。
 情報利用者装置30は、情報銀行装置20から受信したproofのリストに基づいて、ブロックチェーンシステム110からproof、公開情報及び検証鍵を取得し、取得したproofの検証処理を実行する(ステップS406)。情報利用者装置30は、ブロックチェーンシステム110からproofを取得することにより、ブロックチェーンシステム110において改変されていないことが保証されたproofを取得できる。
 情報利用者装置30は、検証結果が「OK」であれば、個人情報の請求を情報銀行装置20に送信する(ステップS407)。
 情報銀行装置20は、個人情報格納部22aに記憶されている個人情報の中から、個人情報の請求条件に合致する個人情報を検索する(ステップS408)。
 情報銀行装置20は、請求条件に合致する個人情報のリストを情報利用者装置30に送信する(ステップS409)。
 情報銀行装置20は、情報利用者装置30からの請求に応じて提供した個人情報に関する情報を、個人情報取得ログとしてブロックチェーンシステム110に書き込む(ステップS410)。
(4.変形例)
 上述した実施形態において、情報銀行装置20は、種々の秘密情報(一例として個人情報)を1又は複数の条件で定義するための条件式として、複数の事前生成条件式を事前に生成しておいてもよい。図22は、変形例に係る条件式の概要を示す図である。
 図22に示すように、情報銀行装置20は、事前生成条件式として、想定される異なる条件を含む複数の条件式A―1、A-2,A-3,B-1,B-2,B-3,C-1,C-2,C-3,・・・を予め生成しておく。情報銀行装置20は、例えば、ブロックチェーンシステム110に保存されるログに基づいて、情報提供サービスの利用者の請求内容を解析し、解析結果に基づいて、請求内容に対応するパターンに応じて、想定される条件を決定できる。これにより、情報利用者の請求内容を反映した条件式を事前に用意できる。
 生成部23bは、事前に生成された複数の事前生成条件式の中から、個人情報を定義するための複数の条件式を選択する。そして、生成部23bは、選択した複数の条件式ごとにproofを生成する。
 このように、変形例に係る情報銀行装置20によれば、生成部23bが、事前に生成された複数の事前生成条件式の中から、個人情報を定義するための複数の条件式を選択して利用する。このため、複数の条件式を生成するセットアップ処理が不要となり、処理負担を軽減できる。
 また、再生成部23dは、条件式により定義された個人情報の変更に応じて、変更に対応する個人情報を定義する条件式を事前生成条件式の中から選択し、選択された条件式に基づくproofを再生成して更新できる。これにより、変更される個人情報を定義するための条件式を複数の事前生成条件式の中から選択して利用でき、証明情報であるプルーフの変更に伴う処理負担を軽減できる。
 また、再生成部23dは、条件式に含まれる条件の変更に応じて、変更される条件を含む条件式を事前生成条件式の中から選択し、選択された条件式に基づくproofを再生成して更新できる。これにより、変更される条件を含む条件式を複数の事前生成条件式の中から選択して利用でき、証明情報であるプルーフの変更に伴う処理負担を軽減できる。
 また、情報銀行装置20は、情報提供サービスの利用者の請求内容の解析結果に基づいて、複数の事前生成条件式のそれぞれに含まれる条件を事後的に変更したり、新たな条件式を追加したりしてもよい。
(5.その他)
 また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
 例えば、上記の実施形態では、情報処理システム1において、情報銀行装置20が条件式及びプルーフを生成する例を説明したが、この例には特に限定される必要はない。例えば、ユーザ端末10で、条件式及びプルーフを生成し、情報銀行装置20に登録するシステム形態であってもよい。
 また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
(6.まとめ)
 上述のように、本開示の一実施形態に係る情報銀行装置20は、ゼロ知識証明を用いた検証に用いられる証明情報を生成する生成装置の一例であって、セットアップ処理部23a(条件式生成部の一例)と、生成部23b(証明情報生成部の一例)とを備える。セットアップ処理部23aは、1又は複数の条件で個人情報(秘密情報の一例)を定義する条件式を、異なる条件ごとに分割して複数生成する。生成部23bは、証明情報として、複数の条件式のそれぞれに基づく複数のプルーフを生成する。このため、本開示の一実施形態に係る情報銀行装置20は、1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに部分的に管理できる。これにより、本開示の一実施形態によれば、個人情報や条件に変更があっても、条件式ごとに生成されるプルーフを個別に更新でき、証明情報の変更に伴う処理負担を軽減できる。
 また、本開示の一実施形態に係る情報銀行装置20において、セットアップ処理部23aは、複数生成された条件式のそれぞれに対して、各条件式により定義される秘密情報が特定の個人に帰属することを示す情報を付加する。これにより、例えば、個人情報をいくつかの条件式で定義し、部分的に管理する場合であっても、複数の条件式のそれぞれに基づく複数のプルーフが、特定の個人に帰属する正しい組合せで検証されることを担保できる。
 また、本開示の一実施形態に係る情報銀行装置20において、再生成部23dは、条件式により定義された個人情報の変更に応じて、変更に対応する個人情報に基づくプルーフを再生成して更新する。これにより、個人情報の変更に柔軟に対応できる。
 また、本開示の一実施形態に係る情報銀行装置20において、再生成部23dは、条件式に含まれる条件の変更に応じて、変更される条件を含む条件式に基づくプルーフのみを再生成して更新する。これにより、条件式における条件の変更に柔軟に対応できる。
 また、本開示の一実施形態に係る情報銀行装置20において、生成部23bは、種々の個人情報を1又は複数の条件で定義するための条件式として事前に生成された複数の事前生成条件式の中から、秘密情報を定義する複数の条件式を選択する。そして、生成部23bは、選択された複数の条件式ごとに、プルーフを生成する。これにより、複数の条件式を生成することなく、事前生成条件式の中から選択して利用でき、処理負担を軽減できる。
 また、本開示の一実施形態に係る情報銀行装置20において、生成部23bは、条件式により定義された秘密情報の変更に応じて、変更に対応する秘密情報を定義する条件を含む条件式を事前生成条件式の中から選択する。そして、生成部23bは、選択された条件式に基づくプルーフを再生成して更新する。これにより、変更される個人情報を定義するための条件式を複数の事前生成条件式の中から選択して利用でき、証明情報であるプルーフの変更に伴う処理負担を軽減できる。
 また、本開示の一実施形態に係る情報銀行装置20において、生成部23bは、条件式に含まれる条件の変更に応じて、変更される条件を含む条件式を事前生成条件式の中から選択し、選択された条件式に基づくproofを再生成して更新する。これにより、変更される条件を含む条件式を複数の事前生成条件式の中から選択して利用でき、証明情報であるプルーフの変更に伴う処理負担を軽減できる。
 また、本開示の一実施形態に係る情報銀行装置20において、事前生成条件式は、秘密情報の公開を請求する情報利用者の請求履歴に基づいて事前に生成される。これにより、情報利用者の請求内容を反映した条件式を事前に用意できる。
 また、本開示の一実施形態に係る情報利用者装置30は、ゼロ知識証明を用いた検証を実行する検証装置の一例であって、取得部35aと検証部35bとを備える。取得部35aは、ゼロ知識証明を用いて検証に用いられる証明情報として、指定する条件に合致する個人情報を用いて生成されたプルーフを取得する。プルーフは、個人情報を定義する1又は複数の条件を追加するごとに分割して複数生成された複数の条件式ごとに、個人情報を知っていることの証明を行うために複数生成される証明情報である。検証部35bは、取得部35aにより取得されたproofを検証し、条件に合致する秘密情報を取得可能か否かの条件判定を実行する。このため、情報利用者装置30は、ゼロ知識証明を用いて、指定する条件に合致する個人情報を知っているか否かの検証を行うことができる。
 また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
(7.ハードウェア構成)
 上述してきた各実施形態に係る情報銀行装置20は、例えば図23に示すような構成のコンピュータ1000によって実現される。図23は、情報銀行装置20の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
 CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
 ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
 HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータ1000が読み取り可能な記録媒体である。具体的には、HDD1400は、たとえば図5に示す制御部23の各部(セットアップ処理部23a、生成部23b、提供部23c、再生成部23d)を実現するためのプログラムを記録する記録媒体である。
 通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が実施形態に係る情報銀行装置20として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラム(制御部23の各部の処理を実現するためのプログラムなど)を実行する。これにより、制御部23の各部により実行される各種処理等の機能が実現される。また、HDD1400には、本開示に係る情報銀行装置20の処理を実現するためのプログラムや、記憶部22に記憶されるデータなどが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 ゼロ知識証明を用いた検証に用いられる証明情報を生成する生成装置であって、
 1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成する条件式生成部と、
 前記証明情報として、前記複数の条件式に基づくproofを、当該複数の条件式ごとにそれぞれ生成する証明情報生成部と
 を備える生成装置。
(2)
 前記条件式生成部は、
 複数生成された前記条件式のそれぞれに対して、各条件式により定義される秘密情報が特定の個人に帰属することを示す情報を付加する
 前記(1)に記載の生成装置。
(3)
 前記証明情報生成部は、
 前記条件式により定義された秘密情報の変更に応じて、変更に対応する秘密情報を定義する条件式に基づくproofを再生成して更新する
 前記(2)に記載の生成装置。
(4)
 前記証明情報生成部は、
 前記条件式に含まれる前記条件の変更に応じて、変更される条件を含む条件式に基づくproofを再生成して更新する
 前記(2)に記載の生成装置。
(5)
 前記条件式生成部は、
 種々の秘密情報を1又は複数の条件で定義するための条件式として事前に生成された複数の事前生成条件式の中から、秘密情報を定義する複数の条件式を選択し、
 前記証明情報生成部は、
 前記証明情報として、前記条件式生成部により選択された複数の条件式に基づくproofを、当該複数の条件式ごとにそれぞれ生成する
 前記(1)に記載の生成装置。
(6)
 前記条件式生成部は、
 前記条件式に含まれる前記条件の変更に応じて、変更される条件を含む条件式を事前生成条件式の中から選択し、
 前記証明情報生成部は、
 前記条件式生成部により選択された条件式に基づくproofを再生成して更新する
 前記(5)に記載の生成装置。
(7)
 前記条件式生成部は、
 前記条件式により定義された秘密情報の変更に応じて、変更に対応する秘密情報を定義する条件式を事前生成条件式の中から選択し、
 前記証明情報生成部は、
 前記条件式生成部により選択された条件式に基づくproofを再生成して更新する
 前記(5)に記載の生成装置。
(8)
 前記事前生成条件式は、
 秘密情報を請求する情報利用者の請求履歴に基づいて事前に生成される
 前記(5)に記載の生成装置。
(9)
 ゼロ知識証明を用いた検証に用いられる証明情報を生成するコンピュータが、
 1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成し、
 前記証明情報として、前記複数の条件式のそれぞれに基づく複数のproofを生成する
 ことを含む生成方法。
(10)
 ゼロ知識証明を用いた検証を実行する検証装置であって、
 ゼロ知識証明を用いて検証に用いられる証明情報として、秘密情報を定義する1又は複数の条件を含み、異なる条件ごとに複数生成された各条件式に基づく複数のproofの中から、指定する条件に合致する秘密情報を用いて生成されたproofを取得する取得部と、
 前記取得部により取得されたproofを検証し、前記条件に合致する秘密情報を取得可能か否かの条件判定を実行する検証部と
 を備える検証装置。
 1 情報処理システム
 10 ユーザ端末
 11 通信部
 12 入力部
 13 出力部
 14 撮像部
 15 測位部
 16 検出部
 17 記憶部
 18 制御部
 20 情報銀行装置
 21 通信部
 22 記憶部
 22a 個人情報格納部
 22b 証明情報格納部
 23 制御部
 23a セットアップ処理部
 23b 生成部
 23c 提供部
 23d 再生成部
 30 情報利用者装置
 31 通信部
 32 入力部
 33 出力部
 34 記憶部
 35 制御部
 35a 取得部
 35b 検証部

Claims (10)

  1.  ゼロ知識証明を用いた検証に用いられる証明情報を生成する生成装置であって、
     1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成する条件式生成部と、
     前記証明情報として、前記複数の条件式のそれぞれに基づく複数のproofを生成する証明情報生成部と
     を備える生成装置。
  2.  前記条件式生成部は、
     複数生成された前記条件式のそれぞれに対して、各条件式により定義される秘密情報が特定の個人に帰属することを示す情報を付加する
     請求項1に記載の生成装置。
  3.  前記証明情報生成部は、
     前記条件式により定義された秘密情報の変更に応じて、変更に対応する秘密情報を定義する条件式に基づくproofを再生成して更新する
     請求項2に記載の生成装置。
  4.  前記証明情報生成部は、
     前記条件式に含まれる前記条件の変更に応じて、変更される条件を含む条件式に基づくproofを再生成して更新する
     請求項2に記載の生成装置。
  5.  前記条件式生成部は、
     種々の秘密情報を1又は複数の条件で定義するための条件式として事前に生成された複数の事前生成条件式の中から、秘密情報を定義する複数の条件式を選択し、
     前記証明情報生成部は、
     前記証明情報として、前記条件式生成部により選択された複数の条件式に基づくproofを、当該複数の条件式ごとにそれぞれ生成する
     請求項1に記載の生成装置。
  6.  前記条件式生成部は、
     前記条件式により定義された秘密情報の変更に応じて、変更に対応する秘密情報を定義する条件式を事前生成条件式の中から選択し、
     前記証明情報生成部は、
     前記条件式生成部により選択された条件式に基づくproofを再生成して更新する
     請求項5に記載の生成装置。
  7.  前記条件式生成部は、
     前記条件式に含まれる前記条件の変更に応じて、変更される条件を含む条件式を事前生成条件式の中から選択し、
     前記証明情報生成部は、
     前記条件式生成部により選択された条件式に基づくproofを再生成して更新する
     請求項5に記載の生成装置。
  8.  前記事前生成条件式は、
     秘密情報を請求する情報利用者の請求履歴に基づいて事前に生成される
     請求項5に記載の生成装置。
  9.  ゼロ知識証明を用いた検証に用いられる証明情報を生成するコンピュータが、
     1又は複数の条件で秘密情報を定義する条件式を、異なる条件ごとに複数生成し、
     前記証明情報として、前記複数の条件式のそれぞれに基づく複数のproofを生成する
     ことを含む生成方法。
  10.  ゼロ知識証明を用いた検証を実行する検証装置であって、
     ゼロ知識証明を用いて検証に用いられる証明情報として、
     1又は複数の条件で秘密情報を定義するために異なる条件ごとに複数生成された各条件式に基づく複数のproofの中から、指定する条件に合致する秘密情報を用いて生成されたproofを取得する取得部と、
     前記取得部により取得されたproofを検証し、前記条件に合致する秘密情報を取得可能か否かの条件判定を実行する検証部と
     を備える検証装置。
PCT/JP2020/040724 2019-11-05 2020-10-29 生成装置、生成方法、及び検証装置 WO2021090764A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/755,305 US20220407706A1 (en) 2019-11-05 2020-10-29 Generation device, generation method, and verification device
CN202080070134.4A CN114503513A (zh) 2019-11-05 2020-10-29 生成装置、生成方法和验证装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-201024 2019-11-05
JP2019201024A JP2021077941A (ja) 2019-11-05 2019-11-05 生成装置、生成方法、及び検証装置

Publications (1)

Publication Number Publication Date
WO2021090764A1 true WO2021090764A1 (ja) 2021-05-14

Family

ID=75848261

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/040724 WO2021090764A1 (ja) 2019-11-05 2020-10-29 生成装置、生成方法、及び検証装置

Country Status (4)

Country Link
US (1) US20220407706A1 (ja)
JP (1) JP2021077941A (ja)
CN (1) CN114503513A (ja)
WO (1) WO2021090764A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210264416A1 (en) * 2020-02-26 2021-08-26 Nice Ltd. System and method using zero knowledge proofs for alert sharing
WO2023160097A1 (zh) * 2022-02-25 2023-08-31 蚂蚁区块链科技(上海)有限公司 证明生成方法及装置、电子设备、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Text book of virtual currency", 9 December 2016, NIKKEI BUSINESS PUBLICATIONS, article NARAYANAN, A. ET AL.: "Text book of virtual currency", pages: 276 - 288 *
PARNO, B. AND GENTRY, C. ET AL.: "Pinocchio: Nearly Practical Verifiable Computation", 2013 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 19 May 2013 (2013-05-19), pages 238 - 252, XP055538500, DOI: 10.1109/SP2013.47 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210264416A1 (en) * 2020-02-26 2021-08-26 Nice Ltd. System and method using zero knowledge proofs for alert sharing
US11514439B2 (en) * 2020-02-26 2022-11-29 Nice Ltd. System and method using zero knowledge proofs for alert sharing
US11928675B2 (en) 2020-02-26 2024-03-12 Nice Ltd. System and method using zero knowledge proofs for alert sharing
WO2023160097A1 (zh) * 2022-02-25 2023-08-31 蚂蚁区块链科技(上海)有限公司 证明生成方法及装置、电子设备、存储介质

Also Published As

Publication number Publication date
JP2021077941A (ja) 2021-05-20
CN114503513A (zh) 2022-05-13
US20220407706A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
AU2021206913B2 (en) Systems and methods for distributed data sharing with asynchronous third-party attestation
JP3222165U (ja) 相互認証構成によるユーザ認証に対する汎用分散型ソリューションを実現するシステム
Sharma et al. Blockchain‐based IoT architecture to secure healthcare system using identity‐based encryption
EP3520319B1 (en) Distributed electronic record and transaction history
US11443062B2 (en) Selectively verifying personal data
JP6907679B2 (ja) 暗号通貨ベースのイベント参加検証
US10205723B2 (en) Distributed storage of authentication data
WO2020133346A1 (en) Data sharing
JP6543743B1 (ja) 管理プログラム
CN108293045A (zh) 本地和远程系统之间的单点登录身份管理
US11556667B2 (en) Facilitating processing of a query on shareable data in a temporary vault
JP7090161B2 (ja) セキュアな取引のための装置の自己認証
WO2021090764A1 (ja) 生成装置、生成方法、及び検証装置
US10666636B2 (en) Controlling access to electronic services based on a user's sociometric identification document
WO2018100227A1 (en) Electronic documents management
US11139969B2 (en) Centralized system for a hardware security module for access to encryption keys
US20220311616A1 (en) Connection resilient multi-factor authentication
WO2022102418A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
WO2020246402A1 (ja) 本人確認プログラム、本人確認方法、ユーザ端末、及びユーザ認証プログラム
Triana et al. Smart Contracts on the Management of EHR: Review, Challenges, and Future Directions
JP2022104875A (ja) 否認可能な証明書
JP2020161945A (ja) 暗号システム、ユーザ端末、ストレージ装置、暗号方法、認証方法、暗号プログラム、及び認証プログラム
CN115964382A (zh) 基于区块链的资产数据处理系统以及资产数据处理方法
CN115776381A (zh) 基于区块链系统的密钥处理方法、装置、介质及电子设备
BR112019008140A2 (pt) método implementado por computador, meio de armazenamento legível por computador não transitório e sistema

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: 20885232

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20885232

Country of ref document: EP

Kind code of ref document: A1