JP6644195B1 - 認証されたデータ上のピノキオ/トリノキオ - Google Patents

認証されたデータ上のピノキオ/トリノキオ Download PDF

Info

Publication number
JP6644195B1
JP6644195B1 JP2019536911A JP2019536911A JP6644195B1 JP 6644195 B1 JP6644195 B1 JP 6644195B1 JP 2019536911 A JP2019536911 A JP 2019536911A JP 2019536911 A JP2019536911 A JP 2019536911A JP 6644195 B1 JP6644195 B1 JP 6644195B1
Authority
JP
Japan
Prior art keywords
calculation
trusted
key
input
node
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2019536911A
Other languages
English (en)
Other versions
JP2020505817A (ja
Inventor
ヘールト フェーニンヘン,メイロフ
ヘールト フェーニンヘン,メイロフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Application granted granted Critical
Publication of JP6644195B1 publication Critical patent/JP6644195B1/ja
Publication of JP2020505817A publication Critical patent/JP2020505817A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

1つの態様によると、システムで使用される第1のノードであって、システムは、1つ以上の信頼できるソース・ノード、1つ以上の作業者ノード、及び検証者ノードを含み、第1のノードは、1つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、信頼できる入力コミットメント・キーは、1つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、1つ以上の信頼できるソース・ノードによって使用される、決定し、1つ以上の信頼できる入力上の計算が正しく、且つ1つ以上の信頼できる入力が計算に使用されたことの証明を決定する際に1つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、計算評価キーは、計算に1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、キー・マテリアルは、トラップドア値、計算を表す多項式とは独立したトラップドア値に対応する点において評価された1つ以上の多項式、及び計算を表すトラップドア値に対応する点において評価された1つ以上の多項式から導出される、計算評価キーを決定し、1つ以上の作業者ノードによる計算の結果を検証する際に、検証者ノードによって使用される計算検証キーを決定し、信頼できる入力コミットメント・キー、計算評価キー及び計算検証キーを公開する、ように構成される、システムが提供される。第1のノードを動作させる対応する方法が提供される。また、他の態様は、信頼できるソース・ノード、作業者ノード及び検証者ノード、ならびにそれらを動作する方法を提供する。

Description

関連出願の相互参照
本出願は、2017年1月6日に出願された米国仮出願第62/443,338号の優先権及び利益を主張し、その全体が参照により本明細書に組み込まれる。
技術分野
本開示は、信頼できない第三者への計算のアウトソーシング、及び計算結果の正確性の検証に関するものである。
計算をクラウドにアウトソーシングする場合、返された計算結果が正しいことを知ることは重要である。3つの既存のアプローチがあり、それらは、計算を複数の作業者にアウトソーシングし、その結果を比較する;作業者が配備した信頼できるハードウェアに依存する;作業者に暗号的に正しいことを証明させる;である。この後者の方向の解決策は、検証可能な計算に対するピノキオ・システム及びその変形例(B.Parno,J.Howell,C.Gentry,及びM.RaykovaのS&P,2013の予稿集に記載された「ピノキオ:ほぼ実用的な検証可能な計算(Pinocchio:Nearly Practical Verifiable Computation)」)である。特に、「トリノキオ」の変形例(B. Schoenmakers,M. Veeningen,及びN. de Vreede, IACR Cryptology ePrint Archive, 2015:480, 2015による「トリノキオ:分散された検証可能計算によるプライバシーに優しいアウトソーシング」に記載されている)は、正確性保証は、証明を作成するために協力している複数の作業者に計算をアウトソーシングすることによる、正確性だけでなく作業者に対するプライバシーも保証するために、複数の当事者の計算技術と組み合わせることができることを示している。
ピノキオ(Pinocchio)/トリノキオ(Trinocchio)では、検証者は、その選択した入力に対する関数を計算するよう作業者に依頼する。しかし、作業者の計算が、信頼できるソースからの機密データベース上の検証者の問い合わせである設定を考える。例えば、バイオセンサから来る情報に関する統計を要求する保険会社を考えると、すなわち、センサー自体は、計算を実行するのに十分な力を有しておらず、常にオンラインであるとは限らないので、計算はアウトソーシングされる必要がある。しかし、この場合、保険業者が、統計がバイオセンサからのデータを使用することを確実にすることは困難であり、同時に、使用者が、保険業者が統計とは別にセンサー・データについて何らかの情報を知ることがないことを確実にすることは困難である。同様の使用事例は、スマート・メータや財務監査のような分野でも存在する。あるいは、分散された計算の場合、2つの関数は、多数の値からなる共有状態を参照するかもしれない。例えば、この共有状態は、第1の関数によって出力され、第2の関数に入力される値を含んでもよい。この場合、これらの値は両方の関数の信頼できる入力と見なされるかもしれない。従って、アウトソースする計算は、検証者による入力とは別に、1つ以上の信頼できるソースからの信頼できる入力も存在する場合に考慮される。検証者は、計算の出力を学習し、それが正しいことを保証されるはずであるが、これらの信頼できる入力に関する追加情報を学習すべきではない。一般的には、この設定による解決策(2015年5月17日〜21日に米国カリフォルニア州サンノゼでの2015 IEEE セキュリティ及びプライバシー・シンポジウムの271〜286ページ、M. Backes, M. Barbosa, D. Fiore,及びR. M. Reischukによる「ADSNARK:認証されたデータについてのほぼ実用的でプライバシーを保護する証明」及びC. Costello、C. Fournet、J. Howell、M. Kohlweiss、B. Kreuter、M. Naehrig、B. Parno、及びS. ZahurによるS&P ’15の予稿集253〜270ページ、2015の「Geppetto:汎用的な検証可能な計算」で検討された)は、ソースに信頼できる入力のある種の表現を提供させ、この表現に関する計算の正しさを検証者に確認させるものである。検証には、(1)信頼できる入力の表現、(2)この表現を検証するための検証キー、(3)計算の出力、(4)信頼できる入力に関して正しい出力であることの証明、(5)計算の正しさの証明を検証するための検証キーが、必要である。ここで、(2)と(5)は中央機関(CA)から、(1)は信頼できる情報源から、(3)と(4)は作業者からのものである。ここで、計算のための検証キーは、入力のための検証キー(すなわち、入力を提供する特定の信頼できるソース)に依存することもあれば依存しないこともある。
「ADSNARK:認証されたデータについてのほぼ実用的でプライバシーを保護する証明(Nearly practical and privacy−preserving proofs on authenticated data)」と「Gepetto:汎用性のある検証可能な計算(Versatile veriable computation)」の2つのアプローチは、ピノキオ型検証可能な計算における認証された入力に関する計算の正確性を証明するために使用できる可能性がある。1つの一般的なアプローチ(「Gepetto:汎用性のある検証可能な計算」で議論され、「ADSNARK:認証されたデータについてのほぼ実用的でプライバシーを保護する証明」論文で「一般的な構成」と呼ばれる)は、すべての入力に対して1つの単一(一定サイズの)署名を入力表現として使用することである。次に、正確さの証明は、署名及び計算結果に対応する一連の入力が存在することの証明を含む。このアプローチの欠点は、作業者に大きなオーバーヘッドがあることである。これは、検証可能な計算内で署名検証を実行することが高価であるためである。
もう1つの方法は、「ADSNARK」(「ADSNARK:認証されたデータについてのほぼ実用的でプライバシーを保護する証明」に記載されている)として知られているものであり、これは、検証者に提示される入力の各項目について個別の表現がある。この表現は、入力へのコミットメントとこのコミットメントへの署名から構成される。署名は別々に検証されるのに対し、コミットメントは、基礎となる入力が実際に計算で使用されたことを検証するために組み合わせることができる。これは、作業者のオーバーヘッドがはるかに小さい(特に、一例では、一般的な解決策の24.5倍速い)が、検証者にオーバーヘッドを導入するという欠点があり、検証者には、記憶と検証の両方の努力が、信頼できる入力の数において線形になる(以前は、それらはこの数に依存していなかった)。
従って、作業者と検証者の両方のオーバーヘッドを最小化する既存の技術及びアルゴリズムを改良する必要がある。
従って、本明細書に記載する様々な実施形態は、ピノキオ及びトリノキオのような変形例に対する信頼できる入力を、作業者及び検証者の両方のために低いオーバーヘッドで認証する新しい方法を提供する。信頼できる入力を一定サイズの表現で表すことを可能にする修正された入力表現が提供され、そして、すでに証明に存在する既存の類似のチェックに、計算が信頼できる入力のこの表現に対応するという証明を埋め込むための新しい方法が提供される。したがって、単一の表現はデータセット全体を表すが、オーバーヘッドは小さくなる。データが1つの信頼できるソースからの場合、本明細書での解決策は、作業者又は検証者に対するオーバーヘッドを実質的に持たない。1つの計算で複数の信頼できるソースからのデータを使用する場合、作業者のオーバーヘッドはないが、検証者に対しては、証明サイズと検証時間は、信頼できるソースの数において線形よりもわずかに増加する。従って、他の解決策と比較して、(大きな)作業者のオーバーヘッドは除去され、検証者のオーバーヘッドは(複数のソースの場合に)削減されるか、又は除去される。
第1の特定の態様によると、システムで使用される第1のノードであって、前記システムは、1つ以上の信頼できるソース・ノード、1つ以上の作業者ノード、及び検証者ノードを含み、前記第1のノードは、1つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、前記信頼できる入力コミットメント・キーは、1つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記1つ以上の信頼できるソース・ノードによって使用される、決定し、1つ以上の信頼できる入力上の計算が正しく、且つ前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記1つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出される、計算評価キーを決定し、前記1つ以上の作業者ノードによる前記計算の前記結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定し、前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開する、ように構成される、システムが提供される。
第2の態様によると、システムで使用される第1のノードを動作させる方法であって、前記システムは1つ以上の信頼できるソース・ノード、1つ以上の作業者ノード、及び検証者ノードを含み、前記方法は、1つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、前記信頼できる入力コミットメント・キーは、1つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記1つ以上の信頼できるソース・ノードによって使用される、決定することと、1つ以上の信頼できる入力上の計算が正しく、且つ前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記1つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出される、計算評価キーを決定することと、前記1つ以上の作業者ノードによる前記計算の前記結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定することと、前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開することと、を含む方法が提供される。
第3の態様によると、システムで使用するための作業者ノードであって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、検証者ノードとを含み、前記作業者ノードは、前記作業者ノードによって実行される計算のために計算評価キーを取得し、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出され、前記計算のための1つ以上の信頼できる入力を受信し、前記受信された1つ以上の信頼できる入力を使用して、前記計算の1つ以上の内部ワイヤ及び前記計算の1つ以上の出力ワイヤの値を決定するために前記計算を評価し、前記1つ以上の信頼できる入力上の前記計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定する、ように構成された、作業者ノードが提供される。
第4の態様によると、作業者ノードをシステムで動作させる方法であって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、検証者ノードとを含み、
前記方法は、前記作業者ノードによって実行される計算のために計算評価キーを取得することであって、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出される、計算評価キーを取得することと、前記計算のための1つ以上の信頼できる入力を受信することと、前記受信された1つ以上の信頼できる入力を使用して、前記計算の1つ以上の内部ワイヤ及び前記計算の1つ以上の出力ワイヤの値を決定するために前記計算を評価することと、前記1つ以上の信頼できる入力上の前記計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定することと、を含む、方法が提供される。
第5の態様によると、システムで使用される検証者ノードであって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、1つ以上の作業者ノードとを含み、前記検証者ノードは、信頼できる入力検証キー及び計算検証キーを取得し、前記1つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得し、前記信頼できる入力コミットメントは、前記1つ以上の信頼できるソース・ノードによって計算に入力された1つ以上の信頼できる入力の表現を含み、1つ以上の作業者ノードから、前記計算の出力と、前記1つ以上の作業者ノードによる前記1つ以上の信頼できる入力上の計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を取得し、前記1つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定する、ように構成された、検証者ノードが提供される。
第6の態様によると、システムにおいて検証者を動作させる方法であって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、1つ以上の作業者ノードとを含み、前記方法は、信頼できる入力検証キー及び計算検証キーを取得することと、前記1つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得することであって、前記信頼できる入力コミットメントは、前記1つ以上の信頼できるソース・ノードによって計算に入力された1つ以上の信頼できる入力の表現を含む、取得することと、1つ以上の作業者ノードから、前記計算の出力と、前記1つ以上の作業者ノードによる前記1つ以上の信頼できる入力上の計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を取得することと、前記1つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定することと、を含む方法が提供される。
第7の態様によると、その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに上述の方法の態様のいずれかを実行させるように構成された、コンピュータ・プログラム製品が提供される。
これら及び他の態様は、以下に説明される実施形態から明らかになり、実施形態を参照して説明されるであろう。
次に、例示的な実施形態を、単なる例示として、以下の図面を参照して説明する。
本明細書に記載の技術を実装したシステムの図である。 様々な実施形態によるノードのブロック図である。 様々な実施形態による中央認証ノードの例示的な動作を示すフロー・チャートである。 様々な実施形態による信頼できる入力ノードの例示的な動作を示すフロー・チャートである。 様々な実施形態による作業者ノードの例示的な動作を示すフロー・チャートである。 様々な実施形態による検証者ノードの例示的な動作を示すフロー・チャートである。
図1は、本明細書に記載の技術及び原理を実装することができるシステム2のブロック図である。システム2は、第1のノード4(これは、本明細書では、中央機関(central authority)又は中央機関ノード(central authority node)4とも呼ばれる)、入力ノード6(本明細書では、「信頼できるソース(trusted source)」又は「信頼できるソース・ノード(trusted source node)」とも呼ばれる)、1つ以上の作業者ノード(worker node)8(本明細書では、「作業者(worker)」とも呼ばれる)、及び検証者ノード(verifier node)10(本明細書では、「検証者(verifier)」とも呼ばれる)を備える。
本明細書に記載される技術及び原理がピノキオに適用される場合、システム2は、計算を実行する単一の作業者ノード8を備える。本明細書に記載の技術及び原理がトリノキオに適用される場合、システム2は、協働して計算を実行する2つ以上の作業者ノード8を備える。
概して、システム2、特に中央機関ノード4及び1つ以上の作業者ノード8は、入力ノード6によって提供される入力データの1つ以上の項目(本明細書では、信頼できる入力又は信頼できる入力データとも呼ばれる)に対して計算を実行するために提供される。計算の出力の正しさは、検証者ノード10によって検証される。
いくつかの実施形態では、検証者ノード10は、入力ノード6によって所有又は保存された信頼できる入力データに対して計算が実行されるように要求することができ、入力ノード6は、作業者ノード8又は検証者ノード10がデータの内容を学習する必要がなく、信頼できる入力データを計算への入力として提供することができる。
いくつかの実施形態では、入力ノード6は、その信頼できる入力データに関する計算を要求することができ、検証者ノード10は、計算が正しく実行される(又は実行された)ことを検証することができる。
いくつかの実施形態では、検証者ノード10はまた、入力ノード6からの信頼できる入力と共に、計算への入力を提供してもよい。
ノード4、6、8、10の各々は、それらの間でデータ及び情報の交換を可能にするために、例えばインターネットのようなネットワークを介して相互接続され、ノード4、6、8、10のうちの1つ以上は、同じ場所に配置されるか、又はそうでなければローカル・エリア・ネットワークを介して相互接続されていてもよい。
ノード4、6、8、10の各々は、コンピュータ、サーバ、ラップトップ、タブレット、スマートフォン等のような任意の種類の計算装置又は電子装置の形態であってもよい。
図2は、本明細書に記載される技術の様々な実施形態によるノードの構成要素を示すブロック図である。中央機関ノード4、入力ノード6、作業者ノード8、及び検証者ノード10のいずれも、図2に示すように実装することができる。
図2によれば、ノードは、システム2内の他のノードのような他のノードへのデータ接続及び/又は他のノードとのデータ交換を可能にするためのインターフェース回路20を含む。特に、インターフェース回路20は、任意の望ましい有線又は無線通信プロトコルを介して、ノード4、6、8、10とインターネットのようなネットワークとの間の接続を可能にすることができる。例えば、インターフェース回路20は、WiFi、Bluetooth(登録商標)、Zigbee、又は任意の携帯通信プロトコル(グローバル・システム・フォー・モバイル・コミュニケーションズ(GMS)、ユニバーサル・モバイル・コミュニケーション・システム(UMTS)、LTE、LTE−Advancedなどを含むが、これらに限定されない)を使用して動作することができる。
ノードはさらに、データ上で動作を実行し、ノードの動作を一般的に制御するための処理ユニット22を含む。インターフェース回路20は、処理ユニット22に接続されてもよい。ノードは、さらに、本明細書に記載される技術の実行に必要な任意のデータを記憶するため、及び、処理ユニット22に、以下により詳細に説明されるように、及びノード4、6、8、10がシステム2に有する役割に適切に、方法ステップを実行させるためのコンピュータ・プログラム・コードを記憶するためのメモリ・ユニット24を含む。メモリ・ユニット24は、処理ユニット22に接続されてもよい。
処理ユニット22は、本明細書に記載される種々の機能を実行するために、ソフトウェア及び/又はハードウェアを用いて、種々の方法で実装することができる。処理ユニット22は、所要の機能を実行するために及び/又は所要の機能を達成するために処理ユニット22の構成要素を制御するために、ソフトウェア又はコンピュータ・プログラム・コードを使用してプログラムすることができる1つ以上のマイクロプロセッサ又はデジタル信号プロセッサ(DSP)を含むことができる。処理ユニット22は、いくつかの機能を実行するための専用ハードウェア(例えば、増幅器、プリアンプ、アナログ・デジタル変換器(ADC)及び/又はデジタル・アナログ変換器(DAC))と、他の機能を実行するためのプロセッサ(例えば、1つ以上のプログラムされたマイクロプロセッサ、コントローラ、DSP及び関連する回路)との組み合わせとして実装してもよい。本開示の様々な実施形態において使用され得る構成要素の例としては、従来のマイクロプロセッサ、DSP、特定用途向け集積回路(ASIC)、及びフィールドプログラマブル・ゲート・アレイ(FPGA)を含むが、これらに限定されない。
メモリ・ユニット24は、ランダム・アクセス・メモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、リード・オンリー・メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、及び電気的消去可能PROM(EEPROM)のような揮発性及び不揮発性コンピュータ・メモリを含む、キャッシュ又はシステム・メモリのような、任意のタイプの非一時的機械読取可能媒体を含むことができる。
中央機関ノード4、入力ノード6、作業者ノード8、及び検証者ノード10のいずれかの実用的な実装は、図2に示されているものに追加のコンポーネントを含んでもよいことが理解されよう。例えば、ノードは、バッテリのような電源、又はノードが主電源に接続されることを可能にするコンポーネントを含むことができる。別の例として、ノードは、ノードのユーザがノードに情報、データ及び/又はコマンドを入力することを(適宜)可能にし、及び/又はノードがノードのユーザに情報又はデータを出力することを可能にする、1つ以上のコンポーネントを含むユーザ・インターフェースを含むことができる。ユーザ・インターフェースは、キーボード、キーパッド、1つ以上のボタン、スイッチ又はダイヤル、マウス、トラック・パッド、タッチスクリーン、スタイラス、カメラ、マイクロホン等を含むがこれらに限定されない任意の適切な入力コンポーネントを含むことができ、ユーザ・インターフェースは、ディスプレイ・スクリーン、1つ以上のライト又はライト・エレメント、1つ以上のスピーカ、振動エレメント等を含むがこれらに限定されない任意の適切な出力コンポーネントを含むことができる。
上述のように、本明細書に記載される様々な実施形態は、ピノキオ及びトリノキオのような変形例の信頼できる入力を認証するための新しい方法を提供し、作業者及び検証者の両方のための低いオーバーヘッドを有する。本明細書に記載された技術は、信頼できる入力を一定サイズの表現で表すことを可能にする修正された入力表現を提供し、また、計算が信頼できる入力のこの表現に対応するという証明を、すでに証明に存在する既存の類似のチェックにはめ込む(embed)新しい方法を提供する。これは、単一の入力表現がデータセット全体を表すが、オーバーヘッドはより少ないことを意味する。
より詳細には、本明細書に記載される技術は、ピノキオの「線形結合整合性チェック(linear combination consistency check)」を再利用し、それは、単に、証明の内部整合性を強化するだけでなく、信頼できる入力の表現との証明の整合性をも強化する。ピノキオでは、計算は二次方程式でモデル化される。たとえば、入力xの場合、プローバ(prover)は、x=(xを計算する必要がある。次に、x=x・x且つx=x・xになるような内部ワイヤ値x(すなわち、計算の一部)が存在し、かつ存在する場合にのみ、xは正しい。ピノキオのプローバが入力に対してこの関数を計算するように要求されると、それは、平文で、xが符号化され、x;...;xが与えられた二次方程式を満たす証明に戻る。
具体的には、内部ワイヤxm+1;...;xの符号化には4つの項が含まれる。
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
ここで、要素V、W、Y及びβ・(V+W+Y)は、加法的に準同型の(homomorphic)符号化方式を使用する準同型符号化である。例えば、値xは、対称暗号ペアリングが定義されている離散対数群(加法的群として見える)の生成元(generator)gでx・gとして、符号化されるかもしれない。これは、βの符号化Bが与えられたとき、βはV+W+Yに関するβ・(V+W+Y)の離散対数を意味し、V,W及びYは、γ=β・(V+W+Y)を計算することはできないが、B及びV+W+Yによって符号化された値の積をγが実際に符号化するか否かをチェックすることは可能である。あるいは、値xは、ペイエ(Paillier)のような加法準同型暗号化スキームを用いて符号化されてもよい。この場合、加法準同型暗号化方式の秘密鍵を知っている検証者は、復号された値を復号し、平文上の関係を検証することによって、B及びV+W+Yによって符号化された値の積をγで符号化するかどうかをチェックすることができる。いずれの場合も、B、V,W,Z及びβ・(V+W+Z)は、中央機関ノード4によって一度だけ生成される。
真正のプローバは、V、W、Y及びZの各々について同じxを使用するが、破損したプローバは、誤った計算結果の正しさを証明するために、異なる値を使用することがある。Zという項は、これを防止する線形結合整合性チェックを可能にする。B,V,W,Y,Zが与えられれば、どの当事者もβ・(V+W+Y)=Zを検証することができ、これは、すべてが同じxを使うことを意味する。
本明細書に記載される種々の実施形態は、V、W、Y及びZの間の内部だけでなく、これらの要素及び信頼できる入力の表現との間の整合性を証明するために、この線形結合整合性チェックを使用する。計算では、入出力値x,..,x、信頼できる入力値xl+1,...,x、内部ワイヤxm+1,...,xを使用すると仮定する。信頼できる入力を表現するために、要素I,Il+1,...,Iが選択され(特定の方法で)、表現は以下のように定義される。ランダムなxに対して、
Figure 0006644195
の追加は、信頼できる入力がこの表現から漏れないことを提供する。この表現(1つの要素)のサイズは、信頼できる入力の数から独立していることに留意すべきである。
Iで表される信頼できる入力が、上記のZに対する要素、
Figure 0006644195
の代わりに、特定の計算で使用されたことを証明するために、以下を使用する。
Figure 0006644195
前述と同様に、Zがβ・(I+V+W+Y)=Zを満たすことがチェックされる。信頼できる入力に対して、これは、同じxがV、W、Y及びIで使用されたことを保証する。計算の内部ワイヤに対して、保証は上記の通りである。
本明細書に提示された技術の詳細な実装は、ピノキオ・ベースのシステム(「トリノキオ:分散された検証可能な計算によるプライバシーに優しいアウトソーシング」において簡略化した形式で記載されている)について以下に記載されており、これは、オリジナルのピノキオ・スキームのセキュリティが(確かに)保存されることを可能にする。しかしながら、本明細書に提示された技術は、ピノキオの他の変形例(トリノキオ変形例を含む)に適用することができることが当業者には理解されるであろう。
ピノキオは、単一の作業者ノード8を有するが、本明細書に記載される技術に従って、トリノキオに対する直接的な一般化によって、プライバシー保護方法(すなわち、個々の作業者8が信頼できる入力又は検証者10の入力に関する情報を一切学習しないように)で、2つ以上(例えば、3つ)の異なる作業者8間に計算を分配することも可能である。
第一に、中央機関4による1回の設定がある。
リング
(外1)
Figure 0006644195
は、計算が行われる範囲で固定され、最大の入出力数l、最大の信頼できる入力数m−l、計算の最大「度数(degree)」d>mである。ランダムなトラップドア(trapdoor)sが選択され、ここで
Figure 0006644195
である。2つの準同型符号化
Figure 0006644195
を定義し、符号化要素間の乗法的関係を検証するために使用できる双線形マップ
Figure 0006644195
も定義する。以下で、
(外2)
Figure 0006644195
及び
(外3)
Figure 0006644195
の準同型演算は加算と見なし、
(外4)
Figure 0006644195
の準同型演算は乗算と見なすことができる。
具体的には、準同型符号化として、暗号ペアリングを有する離散対数群を使用してもよい。この場合、中央機関は、(4d+4)−PDH、d−PKE及び(8d+8)−SDHの仮定(「ピノキオ:ほぼ実用的な検証可能な計算」で説明されているように)が成り立つ、ペアリング
Figure 0006644195
を持つ順序
(外5)
Figure 0006644195
の離散対数順序の対数群
(外6)
Figure 0006644195
を設定する。ここでも、
(外7)
Figure 0006644195
は離散対数群である。この場合、所与の生成元は、
(外8)
Figure 0006644195
のg及び
(外9)
Figure 0006644195
のg
(加法的に記述された)及び多項式は、
Figure 0006644195
で、〈f〉はf(s)・gに対して記述され、〈f〉はf(s)・gに対して記述される。
あるいは、準同型符号化として、準同型暗号が使用されてもよい。この場合、中央機関は平文空間
(外10)
Figure 0006644195
を持つ準同型暗号化方式を設定し、秘密鍵/公開鍵のペアを生成する。準同型符号化
Figure 0006644195
は、両方とも、この公開鍵を使用する暗号化として定義される。双線形マップe(〈a〉、〈b〉)は、それぞれaとbを得るために〈a〉及び〈b〉を復号し、a・bを計算することによって定義される。したがって、
(外11)
Figure 0006644195
における符号化はリング要素である(ここで、・は、リングの付加演算のために記述された)。この場合、多項式
Figure 0006644195
が与えられ、〈f〉及び〈f〉の両方は、リング要素の暗号化を表す。
中央機関ノード4は、公開パラメータ
(外12)
Figure 0006644195
l、m、d、及び準同型符号化に従ってリング要素の符号化を生成するために必要な情報を公開し、また、双線形マップを評価するために必要な情報を検証者に公開する(離散対数群の場合)か、又は提供する(準同型暗号の場合)。後者の場合、中央機関ノード4は、情報が符号化を生成するために使用される秘密鍵を含むので、すべてのノード6、8、10に対して双線形マップを評価するために必要な情報を公開しないし、作業者ノード8はこの鍵を学習すべきではない。
中央機関ノード4は、また、信頼できるソース6を「設定」する。トラップドアsが与えられると、ランダム
Figure 0006644195
が選択される。j=l+1、l+2,...,mに対する信頼できる入力評価キー〈γ・s(これは信頼できる入力コミットメント・キーとも呼ばれる)が信頼できるソース6に提供され、信頼できる入力検証キー〈γ〉が公開される。
次に、データ表現が信頼できるソース6によって形成される。信頼できる入力評価キー〈γ・s及び入力xl+1,...,xが与えられた場合、ランダムxが選ばれ、信頼できる入力表現(これは信頼できる入力コミットメントとも呼ばれる)が次の形式で返される。
Figure 0006644195
次に、中央機関ノード4は、信頼できる計算を設定する。トラップドアsが与えられると、ランダム
Figure 0006644195
が選ばれる。入力と出力x,...,xと信頼入力xl+1,...,xに対して、関数が正しく計算された場合にのみ、すべての方程式を満足する内部ワイヤxm+1,...,xが存在するように、変数x,...,x中の一組のd二次方程式を構築した。これらの式は次のように表される。
Figure 0006644195
ここで、i=,...,dである。
別個の
Figure 0006644195
が選択又は取られる。
以下の関数が定義される。t(x)=(x−α)・...・(x−α
ラグランジュ補間により、v(x),...,v(x)が次数≦=d−1の多項式とし、
Figure 0006644195
となり、w(x)、y(x)も同様である。
以下の計算評価キーを作業者8に返す(ここで、c=0,...,d;i=l+1,l+2,..,n;j=m+1,...,n;k=l+1,...,m)、
Figure 0006644195
この計算評価キーは、いくつかの要素、式(9)の1行目に示される整合性チェック要素の組であって追加の計算独立多項式要素sを含むもの、計算を形成する乗算の集合の左側の因数(v)、右側の因数(w)、及び積(y)に対する計算依存多項式要素を含む。特に、式(9)の1行目におけるk−インデックス付き整合性チェック要素は、1つ以上の信頼できる入力を計算に入力するための1つ以上の信頼できる入力ワイヤのためのキー・マテリアルであり、キー・マテリアルは、トラップドア値、s、計算を表す多項式(すなわち、s)から独立しているトラップドア値に対応する点で評価された1つ以上の多項式、及び計算を表す多項式(すなわち、v,w,y)に依存しているトラップドア値に対応する点で評価された1つ以上の多項式から導かれることが分かる。
以下の計算検証キーは、中央機関ノード4(ここでi=0,...,l)によって発行される。
Figure 0006644195
以下は、作業者8による計算に関するものである。計算評価キー、信頼できる入力、検証者からの入力(適切であれば)が与えられた場合、作業者8は、x,...,xが上記の二次方程式の全てを満足するように計算の出力と計算の内部ワイヤ値を決定する。作業者8は、ランダム
Figure 0006644195
を生成し、次のように計算する。
Figure 0006644195
ここで、iは、0からnまでの和であり、x=1である。方程式が満たされれば、これは多項式である。
作業者8は、計算結果と以下の証明を返す(ここでc=0,...,d;i=l+1,l+2,...,n;j=m+1,...,n;k=l+1,...,m,x=1)。
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
ここでhは多項式hの係数である。
検証者10による計算の検証は、以下の通りである。検証者10には、信頼できる入力検証キーと、中央機関4からの計算検証キーと、信頼できるソース6からの信頼できる入力表現(コミットメント)と、選択された入力及び取得された出力x,...,xと、作業者8からの証明とが設けられており、検証者10は、以下が保持されている場合、出力を受け入れる。
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
Figure 0006644195
ここで、
Figure 0006644195
及び
Figure 0006644195
で、x=1である。上述のチェックにおいて、検証者10は、計算における内部ワイヤの表現の間の整合性をチェックし、これらが信頼できる入力表現(信頼できる入力コミットメント)と整合していることをチェックする。
中央機関4は、作業者8とは別個であることが重要であることが理解される(中央機関4及び信頼できるソース6は、同じ当事者であってもよいが)。これは、中央機関4が、信頼できる入力表現(信頼できる入力コミットメント)が定義された後に、誤ったステートメントの証明を生成し、信頼できる入力を修正することが技術的に可能であるためである。
厳密に言えば、暗号セキュリティ証明は、信頼できる入力検証/評価キーは単一の信頼できるソース6に固有であり、計算検証/評価キーは単一の作業者8及び機能に固有であることに依存している。しかし、実際の展開では、同じキーが異なる信頼できるソース6と作業者8によって使用される可能性がある。
公開パラメータ、信頼できる入力評価(コミットメント)キー、信頼できる入力検証キー、計算評価キー及び計算検証キーは、すべて、アルゴリズムのセキュリティ又はプライバシーに影響することなく、公開することができる。信頼できる入力及び出力のみを秘密にする必要がある。実際には、中央機関4は、例えばウェブサイト上でデジタル署名されたものを公開することによって、公開パラメータ、信頼できる入力検証キー、及び計算検証キーを公開することができる。中央機関4は、信頼できる入力評価キーを信頼できるソース6(図1の矢印30で示す)に直接提供し、計算評価キーを作業者8(図1の矢印32で示す)に直接提供することができる。矢印30はまた、中央機関4から公開パラメータを得る、信頼できるソース・ノード6を表すことができる。同様に、矢印32は、中央機関から公開パラメータを得る作業者ノード8を表すこともできる。信頼できるソース6は、プライベート・チャネル(図1の矢印34で表される)を介して作業者8に信頼できる入力を提供し、信頼できる入力表現/コミットメント、例えば、ウェブサイト上でデジタル的に署名されたものを公表する。検証者10は、信頼できる入力表現(図1の矢印36で示す)を得る。また、検証者10は、安全なチャネルを介して計算入力を作業者8(図1の矢印38で示されている)に提供することができ、作業者8は、同じ安全なチャネルを介して出力と証明を検証者10(図1の矢印40で示されている)に返す。あるいは、インプット及び/又はアウトプットが公開することになっている場合、それらを公表することができる。また、検証者10は、公開パラメータ、信頼できる入力検証キー、計算検証キーを得ることができ、これは、図1の中央機関4から検証者10への矢印42によって示される。
上述の図1の矢印は、各々、アルゴリズムで使用される種々のオブジェクト(すなわち、キー、入力表現、公開パラメータなど)に関連付けられており、各矢印は、特定のオブジェクトを構成するノードで始まり、オブジェクトを使用するノードで終わることが理解されるであろう。従って、(特に、オブジェクトが公開されている場合)図1の矢印は、必ずしもオブジェクトの1つのノードから他のノードへの直接的な転送を示すものではなく、ある場合には、オブジェクトは1つ以上の他の装置、構成要素又はノードを通過してもよいことを理解されたい。
上述のアルゴリズムへの拡張として、信頼できる入力は、複数のソースによって提供されてもよい。上述のアルゴリズムでは、各計算は、1つの入力ソース6のみからの信頼できる入力を含む。このアルゴリズムは、「コミットメント」としての証明から値xl+1,...,xへの要素
Figure 0006644195
を考慮することによって、複数のソースからの入力をサポートするように拡張することができる。各追加の信頼できるソース6に対して、その信頼できるソース6から来る値だけに、形式(7)の別のコミットメントが含まれ、βに対する新しい値が含まれる。式(7)のコミットメントは指数l+1,...,mを持つs−powerを使用するが、他の信頼できるソースからの入力は一般に、あるオフセットδに対してワイヤ・インデックスl+1+δ,...,m+δを持つことに留意されたい。これを説明するために、評価の鍵となる要素〈β・(s+r+r+r)〉が使用される。検証者10は、これらのコミットメントのそれぞれについて、式(20)〜(24)のチェックを繰り返し、式(25)のチェックは、コミットメントを含む値〈V〉、〈W〉、〈Y〉となるように調整される。同様に、第一の信頼できるソースによる入力及び計算の内部ワイヤに対して、別々のコミットメントが使用されてもよい。
図3〜図6は、本明細書に提示される技術に従って、中央機関ノード4、入力ノード6、作業者ノード8、及び検証者ノード10をそれぞれ動作させる例示的な方法を示すフロー・チャートである。
したがって、図3は、中央機関ノード4(第1のノード4とも呼ばれる)の動作における方法又はステップのステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット22及び/又はインターフェース回路20によって実行することができる。いくつかの実施形態では、処理ユニット22は、メモリ・ユニット24に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
上述のように、中央機関ノード4は、システム内の他のノード6、8、10によって使用されるキーを提供して、安全な方法で信頼できる入力上で計算を実行し、検証者ノード10が計算の正しさを検証することを可能にする。
第1のステップ、ステップ101で、中央機関ノード4は、信頼できる入力コミットメント・キー(信頼できる入力評価キーとも呼ばれる)を決定する。信頼できる入力コミットメント・キーは、1つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、入力ノード6(信頼できるソースノード6)によって使用される。
中央機関ノード4は、計算評価キーも決定する(ステップ103)。計算評価キーは、1つ以上の信頼できる入力上の計算が正しいこと、及び1つ以上の信頼できる入力が計算で使用されたことの証明を決定する際に、1つ以上の作業者ノード8が使用するためのものである。
計算は、信頼できる入力を入力するための1つ以上のワイヤ(これは信頼できる入力ワイヤと呼ばれる)を含み、計算評価キーは、1つ以上の信頼できる入力ワイヤに対するキー・マテリアル(key material)を含む。このキー・マテリアルは、トラップドア値s、計算を表す多項式に依存しないトラップドア値に対応する点(又は時点)で評価された1つ以上の多項式、及び計算を表す多項式に依存するトラップドア値に対応する点(又は時点)で評価された1つ以上の多項式から導出される。
中央機関ノード4はまた、1つ以上の作業者ノード8による計算の結果を検証する際に検証者ノード10によって使用される計算検証キーを決定する(ステップ105)。
ステップ101、103、及び105は、図3に示されているものと同じ又は異なる順序で実行することができるか、又は3つのすべてのステップを実質的に同時に実行することができることが理解されるであろう。
次に、中央機関ノード4は、信頼できる入力コミットメント・キー、計算評価キー、及び計算検証キーを公開する(ステップ107)。キーを公開することによって、中央機関ノード4は、システム2内の任意のノード6、8、10にアクセスするためのキーを利用可能にする。キーを公開することは、他のノード6、8、10によってアクセス可能な場所、例えば、他のノード6、8、10によってアクセス可能な場合にはメモリ・ユニット24にそれらを保存すること、又はそれらをインターネット又は他のネットワークを介してアクセス可能なサーバ又は他のコンピュータにそれらを保存することを意味する。上述のように、キーを公開することは、デジタル署名された形式であってもよい。
中央機関ノード4が異なる時刻に種々のキーを決定する実施形態において、中央機関ノード4は、全てのキーが公開前に導出されるまで待つのではなく、決定されたとおりに各キーを公開することができることが理解されるであろう。
いくつかの実施形態では、計算評価キーにおける各信頼できる入力ワイヤに対するキー・マテリアルは、秘密値βの積の符号化と、信頼できる入力ワイヤを表すトラップドア値に対応する点で評価された計算独立多項式と計算においてワイヤがどのように使用されるかを表すトラップドア値に対応する点で評価された1つ以上の計算依存多項式との組み合わせとを含む。秘密値の逆数β−1は、再び秘密値であるので、βで乗算する代わりに、すなわち、キー・マテリアルを構成するときに、βでの除算によってβによる乗算を等価に実行することができることが理解されるであろう。以下では、この代替的な処方を別途検討しない。
より具体的には、1つ以上の信頼できる入力ワイヤのためのキー・マテリアルは、以下を含むことができる。
Figure 0006644195
ここで、kは信頼できる各入力ワイヤを表すラベル、sはトラップドア値、β、r及びrはランダム値、各信頼される入力、v、w及びyに対するr=(r・r)は計算を表すsで評価された多項式である。特に、上で定義したように、vは、それぞれの信頼できる入力ワイヤが左側の因数で使用される方法を表し、wは、それぞれの信頼できる入力ワイヤが右側の因数で使用される方法を表し、yは、計算〈f〉を構成する乗算の組の積の中でそれぞれの信頼できる入力ワイヤが使用される方法を表し、多項式fについては、上述のように、リング要素f(s)の加法準同型符号化を示す。式(27)のキー・マテリアルは、式(9)に示すキー・マテリアルにも見出されることが理解されるであろう。さらに、変数
Figure 0006644195
の変化によって、式(27)は以下のように等しく書けることが理解されよう。
Figure 0006644195
以下では、この代替的な処方を別途検討しない。
いくつかの実施形態では、アルゴリズムのセキュリティをさらに改善するために、中央機関ノード4はまた、信頼できる入力検証キーを決定し、公開することができる。信頼できる入力検証キーは、計算に入力される信頼できる入力の信頼性を検証する際に、検証者ノード10によって使用される。このキーは、ステップ107で上記の他のキーと同じ方法で公開することができる。
図4は、信頼できるソース・ノード6(入力ノード6とも呼ばれる)の動作における方法又はステップにおけるステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット22及び/又はインターフェース回路20によって実行することができる。いくつかの実施形態では、処理ユニット22は、メモリ・ユニット24に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
信頼できるソース・ノード6は、計算に入力される1つ以上の信頼できる入力6を有する。
ステップ201において、信頼できるソース・ノード6は、信頼できる入力コミットメント・キーを取得する。上述のように、中央機関ノード4は、信頼できる入力コミットメント・キーを決定し、公開する。したがって、ステップ201において、信頼できるソース・ノード6は、公開された信頼できる入力コミットメント・キーを得ることができる。
次に、ステップ203において、信頼できるソース・ノード6は、信頼できる入力コミットメント・キーを使用して、計算に入力される1つ以上の信頼できる入力に対して信頼できる入力コミットメントを形成する。信頼できる入力コミットメントは、上式(7)で定義できる。
次に、信頼できるソース・ノード6は、信頼できる入力コミットメントを検証者ノード10に送信する(ステップ205)。信頼できるソース・ノード6はまた、計算への入力のために、1つ以上の信頼できる入力を1つ以上の作業者ノード8に送信する。
図5は、作業者ノード8の動作における方法又はステップにおけるステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット22及び/又はインターフェース回路20によって実行することができる。いくつかの実施形態では、処理ユニット22は、メモリ・ユニット24に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
ステップ301において、作業者ノード8は、計算評価キーを取得する。上述のように、中央機関ノード4は、計算評価キーを決定し、公開する。従って、ステップ301において、作業者ノード8は、公開された計算評価キーを得ることができる。計算評価キーは、ステップ103を参照して上述したキー・マテリアルの様々な実施形態のいずれかを含むことができる。
次に、ステップ303において、作業者ノード8は、信頼できるソース・ノード6及び/又は検証者ノード10から、計算のための1つ以上の信頼できる入力を受信する。
ステップ305において、作業者ノード8は、受信された1つ以上の信頼できる入力を用いて計算を評価し、計算の1つ以上の内部ワイヤ及び計算の1つ以上の出力ワイヤ(計算の出力を表す)に対する値を決定する。信頼できる入力は、計算の1つ以上の信頼できる入力ワイヤを使用して計算に入力される。
最後に、ステップ307において、作業者ノード8は、1つ以上の信頼できる入力の計算が正しいこと、及び1つ以上の信頼できる入力が計算で使用されたことの証明を決定する。この証明は、計算評価キーを用いて決定される。決定された証明は、例えば、情報が決定されたとき、又は証明情報のための検証者ノード10からの要求に応答して、検証者ノード10に送ることができる。
いくつかの実施形態では、作業者ノードは、計算を表す多項式に依存する1つ以上の多項式に基づいて、上述したキー・マテリアルを用いて計算を形成する、左側の因数、右側の因数、及び乗算の積に対する信頼できる入力ワイヤを含む一組の入力ワイヤの寄与の符号化(例えば、上述のV、W、Y)を決定することによって、証明を決定する。
いくつかの実施形態では、証明は、信頼できる入力ワイヤに対するコミットメント及び寄与の符号化が、信頼できる入力ワイヤに対して一貫して同じ値を使用することを検証する際に使用される要素Zを含む。
いくつかの実施態様において、要素Zは、以下の線形結合である。
Figure 0006644195
使用される準同型符号化方式に従って、信頼できる入力ワイヤによって与えられる係数を有し、ここで、〈f〉は、多項式fに対して、リング要素f(s)の加法準同型符号化である。
別の実施形態では、要素Zは以下を含む。
Figure 0006644195
ここで、〈f〉は、多項式fに対して、リング要素f(s)の加法準同型符号化である。
他の代替的な実施形態では、要素Zは以下を含む。
Figure 0006644195
ここで〈f〉は、多項式fに対して、リング要素f(s)の加法準同型の符号化である。
システム2が少なくとも1つの他の作業者ノード8を含む実装において(例えば、トリノキオに基づく実装において)、作業者ノード8は、ステップ305において、他の作業者ノード8との複数当事者計算として計算を評価する。これらの実施形態では、作業者ノード8は、ステップ307において、他の作業者ノード8との複数当事者計算として証明を決定することができる。また、これらの実施形態では、作業者ノード8は、信頼できる入力の秘密共有を受け取り、計算結果の秘密共有を決定することができるので、作業者ノード8は、証明の秘密共有を決定することができる(証明の他の秘密の部分は、他の作業者ノード8によって決定される)。
図6は、検証者ノード10の動作における方法又はステップにおけるステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット22及び/又はインターフェース回路20によって実行することができる。いくつかの実施形態では、処理ユニット22は、メモリ・ユニット24に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
ステップ401において、検証者ノード10は、信頼できる入力検証キー及び計算検証キーを取得する。上述したように、中央機関ノード4は、信頼できる入力検証キー及び計算検証キーを決定し、公開する。したがって、ステップ401において、検証者ノード10は、公開された信頼できる入力検証キー及び公開された計算検証キーを得ることができる。信頼できる入力検証キー及び計算検証キーは、上記のようにすることができる(例えば、それぞれ、式(10))。
ステップ403において、検証者ノード10は、検証者ノード10によって検証されるべき計算に信頼できる入力を提供した1つ以上の信頼できるソース・ノード6から信頼できる入力コミットメントを取得する。信頼できる入力コミットメントは、1つ以上の信頼できるソース・ノード6によって計算に入力された1つ以上の信頼できる入力の表現を含む。信頼できる入力コミットメントは、上式(7)に示されるようにすることができる。
ステップ405において、検証者ノード10は、計算の出力と、1つ以上の作業者ノードによる1つ以上の信頼できる入力上の計算が正しいこと、及び1つ以上の信頼できる入力が計算に使用されたことの証明とを得る。出力及び証明は、計算を実行した作業者ノード8から得られる。
ステップ401、403、及び405は、図6に示されているものと同じ又は異なる順序で実行することができるか、又は3つのすべてのステップを実質的に同時に実行することができることが理解される。
次に、ステップ407において、検証者ノード10は、1つ以上の信頼できる入力に関する計算が正しいかどうか、及び信頼できる入力が計算において使用されたかどうかを判定する。これは、信頼できる入力検証キー、計算検証キー、信頼できる入力コミットメント、及び証明を使用して決定される。
いくつかの実施例では、証明は、左側の因数、右側の因数、及び計算を形成する乗算の積に対する信頼できる入力ワイヤを含む一組のワイヤの寄与の符号化(例えば、上述のV、W、Y)を含む。
いくつかの実施形態では、証明は、複数の符号化が互いに整合性があること、及び複数の符号化が計算のための信頼できる入力コミットメントと整合性があることを検証する際に使用される要素Zを含む。要素Zは、ステップ307の実施形態のいずれかを参照して上述したようにすることができる。
いくつかの実施形態では、ステップ407において、検証者ノード10は、複数の符号化が互いに整合性があること、及び複数の符号化が計算のための信頼できる入力コミットメントと整合性があることを検証することによって、1つ以上の信頼できる入力の計算が正しいかどうか、及び信頼できる入力が計算において使用されたかどうかを決定する。
いくつかの実施形態では、ステップ407において、要素Zによって符号化された値が、左側の因数、右側の因数、計算を形成する乗算の積、及び信頼できる入力コミットメントに含まれる信頼できる入力ワイヤの表現の符号化を含むワイヤの組の寄与を符号化することによって符号化された値の合計によって掛けられるランダム値によって符号化された値と等しいか否かを検証者ノード10は決定する。
特定の実施形態では、ステップ407において、検証者ノード10は、以下の数式を評価することによって、1つ以上の信頼できる入力に関する計算が正しいかどうか、及び信頼できる入力が計算において使用されたかどうかを決定し、
Figure 0006644195
そして、それらが等しいことを検証し、ここで、Iは信頼できる入力コミットメントに含まれる信頼できる入力ワイヤの表現であり、Vmid、Wmid、Ymidは信頼できる入力ワイヤを含む入力ワイヤの組の、左側の因数、右側の因数、計算を形成する乗算の積に対する寄与の表現であり、βはランダム値であり、zは要素Zによって符号化される値であり、〈・〉、〈・〉はI、Vmid、Wmid、Ymid、β及びzを符号化するために使用される準同型符号化であり、及びeは、2つの符号化で定義される双線形マップである。
いくつかの実施形態において、準同型符号化〈x〉、〈x〉は、
(外13)
Figure 0006644195
でg、g離散対数群の生成元を備え、eは、暗号ペアリングである。
検証者ノード10は、以下のように評価することにより式(31)を評価することができる。
Figure 0006644195
いくつかの実施形態では、準同型符号化〈x〉、〈x〉は両方とも、同じ準同型暗号化スキームを持つ同じ公開鍵の下での暗号化であり、e(〈x〉,〈y〉)は復号して結果を乗算することによって得られる値x・y・zを表し、e(〈x〉,〈y〉は、〈x〉、〈y〉を復号して結果をzで乗算することによって得られる値を表す。
準同型符号化が離散対数群からの要素であり、双線形マップeが離散対数群上の暗号ペアリングである上述の説明において、いくつかのバリエーションが可能であることが理解されるであろう。特に、対称的ペアリング(この場合、2つの離散対数群
(外14)
Figure 0006644195
は同じである)又は非対称的ペアリング(この場合、2つの離散対数群
(外15)
Figure 0006644195
は異なる)を用いることが可能である。また、様々なキー、コミットメント、証明における様々な要素に使用される離散対数群を(独立して)変更することも可能である。例えば、それぞれのキー・マテリアルが〈r、〈rt〉、〈αの代わりに〈r、〈rt〉、〈αの符号化を適切に含むように変更され、検証手順がとりわけe(〈α,〈Vmid)=e(〈αmid,〈1〉)をチェックするように変更される場合、計算証明が、証明要素が〈Vmid=Σ・〈r+δ・〈rt〉の代わりに〈Vmid=Σ・〈r+δ・〈rt〉を含む場合がある。
上述のノード、システム、及び方法は、いくつかの潜在的な応用を有する。いくつかの例を以下に概説する。
ウェアラブル・バイオセンサは、顧客のデータを測定し、それによって信頼できるソースとして機能し、保険会社は、顧客のための保険料(premium)を評価するために、このデータに関する統計を入手したい。バイオセンサは、データをアウトソースする必要があるため、それ自体でデータを計算することはできないが、保険会社は、正確性を確信したいと考えている。ここで、本明細書に記載される方法を調整する当事者は、中央機関及びバイオセンサの製造者であり得、データの処理は、正確性が依然として保証されている間に、顧客にアウトソーシングされ得る。
政府は、公衆に情報を提供するために保健統計を定期的に公表している。これらの統計は、正確であることを公衆が確信するために、病院や他の医療機関によってデータに関して認証することができる。この場合、本明細書に記載されている方法を調整する当事者は、信頼できる情報源(医療機関)及び作業者(政府)の両方から独立した信頼できる当事者として行動することができる。
スマート・メータは読み取り値を生成するが、これに関する集約レポートを計算する計算能力を持たないか、又は集約レポートのフォーマットが時間とともに変化する可能性がある。したがって、これはスマート・メータの所有者にアウトソーシングされる。しかし、エネルギー会社は、集約レポートが自身の電力料金を削減するために所有者によって操作されていないことを確認したいと考えている。
同様に、このスキームは従量制の自動車保険にも利用できる。
簿記係は、組織の財務データを認証する。証明に基づいて、監査役(auditor)は、特定のプロセスが正しく実施されたことを確認することができる。
このシステムは、販売端末から提供される決済情報に基づいて、店舗が消費者の購入に関する詳細を知らないまま(店舗が販売端末内で何が起きているのか分からないと仮定すると)、消費者にロイヤルティ割引を適用することができる。
システムは、複数の検証可能な計算が共通の共有状態を参照することを可能にするように配置され得る。例えば、1つの検証可能な計算は、第2の検証可能な計算への入力として使用される出力xを有することができる。この場合、xは、第1の検証可能な計算及び第2の検証可能な計算の両方に対する信頼できる入力と見なすことができ、本明細書に記載される技術は、検証者が、xを知る必要なく、同じ値xが両方の計算において使用されたことをチェックすることを可能にする。
イーサリアム・ブロックチェーンのような分散された台帳では、検証可能な計算は、取引の内容を隠したままで、且つ取引の記述の複雑さから独立した検証努力を維持しながら、取引の正確性を証明する手段として使用することができる。このシステムは、このような検証可能な計算を、第三者による信頼できる入力に効率的に戻って参照することを可能にし、そして、それは、おそらく異なるタイプの複数のこのような検証可能な計算を、それを開示することなく、状態を共有することを可能にする。
従って、信頼できるソースがそのデータの計算を信頼できない作業者にアウトソースすることを可能にする改良された技術及びアルゴリズムが提供され、任意の外部の団体は、作業者と検証者の両方のオーバーヘッドを最小化しつつ、計算結果の正確性を暗号的に検証することができる。
開示された実施形態に対する変更は、図面、開示及び添付の特許請求の範囲の研究から、本明細書に記載された原理及び技術を実施する際に当業者によって理解され、達成され得る。請求項において、単語「含む(comprising)」は、他の要素又はステップを除外せず、不定冠詞「1つの(a)」又は「1つの(an)」は、複数を除外しない。単一のプロセッサ又は他のユニットは、請求項に記載されたいくつかの項目の機能を果たしてもよい。特定の手段が相互に異なる従属クレームに記載されているという単なる事実は、これらの手段の組み合わせが有利に利用できないことを示すものではない。コンピュータ・プログラムは、他のハードウェアと共に又はその一部として供給される光記憶媒体又は固体媒体のような適切な媒体上に記憶又は配布することができるが、インターネット又は他の有線若しくは無線通信システムのような他の形態で配布することもできる。請求項中の参照符号は、その範囲を限定するものと解釈してはならない。

Claims (15)

  1. システムで使用される第1のノードであって、前記システムは1つ以上の信頼できるソース・ノード、1つ以上の作業者ノード、及び検証者ノードを含み、
    前記第1のノードは、
    1つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定し、前記信頼できる入力コミットメント・キーは、1つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記1つ以上の信頼できるソース・ノードによって使用されるためのものであり、
    1つ以上の信頼できる入力上の計算が正しく、且つ前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記1つ以上の作業者ノードによる使用に対して計算評価キーを決定し、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出され、
    前記1つ以上の作業者ノードによる前記計算の結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定し、
    前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開する、
    ように構成された、第1のノード。
  2. 各信頼できる入力ワイヤに対する前記キー・マテリアルは、秘密値の積の符号化と、前記信頼できる入力ワイヤを表す前記トラップドア値に対応する点で評価された計算独立多項式及び前記計算において前記ワイヤがどのように使用されるかを表す前記トラップドア値に対応する点で評価された1つ以上の計算依存多項式との組み合わせとを含む、請求項1に記載の第1のノード。
  3. システムで第1のノードを動作させる方法であって、前記システムは1つ以上の信頼できるソース・ノード、1つ以上の作業者ノード、及び検証者ノードを含み、
    前記方法は、
    1つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、前記信頼できる入力コミットメント・キーは、1つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記1つ以上の信頼できるソース・ノードによって使用される、決定することと、
    1つ以上の信頼できる入力上の計算が正しく、且つ前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記1つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出される、計算評価キーを決定することと、
    前記1つ以上の作業者ノードによる前記計算の結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定することと、
    前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開することと、
    を含む、方法。
  4. その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに請求項3に記載の方法を実行させるように構成された、コンピュータ・プログラム。
  5. システムで使用するための作業者ノードであって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、検証者ノードとを含み、
    前記作業者ノードは、
    前記作業者ノードによって実行される計算のために計算評価キーを取得し、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出され、
    前記計算のための1つ以上の信頼できる入力を受信し、
    前記受信された1つ以上の信頼できる入力を使用して、前記計算の1つ以上の内部ワイヤ及び前記計算の1つ以上の出力ワイヤの値を決定するために前記計算を評価し、
    前記1つ以上の信頼できる入力上の前記計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定する、
    ように構成された、作業者ノード。
  6. 各信頼できる入力ワイヤに対する前記キー・マテリアルは、秘密値の積の符号化と、前記信頼できる入力ワイヤを表す前記トラップドア値に対応する点で評価された計算独立多項式及び前記計算において前記ワイヤがどのように使用されるかを表す前記トラップドア値に対応する点で評価された1つ以上の計算依存多項式との組み合わせとを含む、請求項に記載の作業者ノード。
  7. 前記1つ以上の信頼できる入力ワイヤのための前記キー・マテリアルは、
    〈β・(s+r+r+r)〉
    を含み、ここで、kは各信頼できる入力ワイヤを表すラベルであり、sは前記トラップドア値であり、β、r及びrはランダム値であり、各信頼できる入力、v、w及びyに対するr=(r・r)は計算を表すsで評価された多項式であって、vはそれぞれの信頼できる入力ワイヤが左側の因数で使用される方法を表し、wは前記それぞれの信頼できる入力ワイヤが右側の因数で使用される方法を表し、yは前記それぞれの信頼できる入力ワイヤが計算を構成する乗算の組の積で使用される方法を表し、〈・〉は加法準同型の符号化であり、多項式fに対する〈f〉はリング要素f(s)の加法準同型の符号化を表す、請求項又はに記載の作業者ノード。
  8. 作業者ノードをシステムで動作させる方法であって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、検証者ノードとを含み、
    前記方法は、
    前記作業者ノードによって実行される計算のために計算評価キーを取得することであって、前記計算評価キーは、前記計算に前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出される、計算評価キーを取得することと、
    前記計算のための1つ以上の信頼できる入力を受信することと、
    前記受信された1つ以上の信頼できる入力を使用して、前記計算の1つ以上の内部ワイヤ及び前記計算の1つ以上の出力ワイヤの値を決定するために前記計算を評価することと、
    前記1つ以上の信頼できる入力上の前記計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定することと、
    を含む、方法。
  9. その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに請求項8に記載の方法を実行させるように構成された、コンピュータ・プログラム。
  10. システムで使用される検証者ノードであって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、1つ以上の作業者ノードとを含み、
    前記検証者ノードは、
    信頼できる入力検証キー及び計算検証キーを取得し、
    前記1つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得し、前記信頼できる入力コミットメントは、前記1つ以上の信頼できるソース・ノードによって計算に入力された1つ以上の信頼できる入力の表現を含み、
    1つ以上の作業者ノードから、前記計算の出力と、前記1つ以上の作業者ノードによる前記1つ以上の信頼できる入力上の計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を取得し、前記証明は、前記計算に入力される前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤのためのキー・マテリアルを含む計算評価キーを使用して决定され、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出され
    前記1つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定する、
    ように構成された、検証者ノード。
  11. 前記計算が、ゼロ又は1つ以上の信頼できない入力ワイヤ、1つ以上の計算出力ワイヤ、1つ以上の信頼できる入力ワイヤ、及び1つ以上の内部ワイヤを含み、前記証明が、前記計算を形成する、左側の因数、右側の因数及び乗算の積に対する前記信頼できる入力ワイヤを含む入力ワイヤの組の寄与を表す符号化を含む、請求項10に記載の検証者ノード。
  12. 複数の符号化が互い整合性があること、及び前記複数の符号化が前記計算のための前記信頼できる入力コミットメントと整合性があることを検証する際に使用される要素Zを前記証明は含む、請求項11に記載の検証者ノード。
  13. 前記検証者ノードは、前記複数の符号化が互いに整合していること及び前記複数の符号化が前記計算のための前記信頼できる入力コミットメントと整合していることを検証することによって、前記1つ以上の信頼できる入力上の前記計算が正しいかどうか、及び前記信頼できる入力が前記計算において使用されたかどうかを決定するように構成される、請求項12に記載の検証者ノード。
  14. システムにおいて検証者ノードを動作させる方法であって、前記システムは第1のノードと、1つ以上の信頼できるソース・ノードと、1つ以上の作業者ノードとを含み、
    前記方法は、
    信頼できる入力検証キー及び計算検証キーを取得することと、
    前記1つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得することであって、前記信頼できる入力コミットメントは、前記1つ以上の信頼できるソース・ノードによって計算に入力された1つ以上の信頼できる入力の表現を含む、取得することと、
    1つ以上の作業者ノードから、前記計算の出力と、前記1つ以上の作業者ノードによる前記1つ以上の信頼できる入力上の計算が正しいこと及び前記1つ以上の信頼できる入力が前記計算に使用されたことの証明を取得することであって前記証明は、前記計算に入力される前記1つ以上の信頼できる入力を入力するための1つ以上の信頼できる入力ワイヤのためのキー・マテリアルを含む計算評価キーを使用して决定され、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された1つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された1つ以上の多項式から導出される、取得することと、
    前記1つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定することと、
    を含む、方法。
  15. その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに請求項14に記載の方法を実行させるように構成された、コンピュータ・プログラム。
JP2019536911A 2017-01-06 2017-12-29 認証されたデータ上のピノキオ/トリノキオ Active JP6644195B1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762443338P 2017-01-06 2017-01-06
US62/443,338 2017-01-06
US201762608650P 2017-12-21 2017-12-21
US62/608,650 2017-12-21
PCT/EP2017/084795 WO2018127456A2 (en) 2017-01-06 2017-12-29 Pinocchio / trinocchio on authenticated data

Publications (2)

Publication Number Publication Date
JP6644195B1 true JP6644195B1 (ja) 2020-02-12
JP2020505817A JP2020505817A (ja) 2020-02-20

Family

ID=61521462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019536911A Active JP6644195B1 (ja) 2017-01-06 2017-12-29 認証されたデータ上のピノキオ/トリノキオ

Country Status (5)

Country Link
US (1) US11088823B2 (ja)
EP (1) EP3566384B1 (ja)
JP (1) JP6644195B1 (ja)
CN (1) CN110383751B (ja)
WO (1) WO2018127456A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200080263A (ko) 2017-11-09 2020-07-06 엔체인 홀딩스 리미티드 중재자 컴퓨터 시스템을 이용하여 컴퓨터 프로그램의 정확한 실행을 보장하기 위한 시스템 및 방법
SG11202004147RA (en) 2017-11-09 2020-06-29 Nchain Holdings Ltd System for securing verification key from alteration and verifying validity of a proof of correctness
SG11202005567QA (en) 2017-12-13 2020-07-29 Nchain Holdings Ltd System and method for securely sharing cryptographic material
US10897357B2 (en) * 2018-04-04 2021-01-19 International Business Machines Corporation Computation using lattice-based cryptography
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
WO2020145759A1 (ko) * 2019-01-11 2020-07-16 주식회사 크립토랩 근사 계산에 대한 계산 검증
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290133B1 (en) * 2000-11-17 2007-10-30 Entrust Limited Method and apparatus improving efficiency of end-user certificate validation
WO2004104797A1 (en) * 2003-05-21 2004-12-02 Hewlett-Packard Development Company L.P. Use of certified secrets in communication
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
GB0522531D0 (en) * 2005-11-04 2005-12-14 Isis Innovation Security in computing networks
CN103188081A (zh) * 2006-11-07 2013-07-03 安全第一公司 用于分发数据和保护数据安全的系统和方法
TWI366114B (en) * 2008-03-04 2012-06-11 Ind Tech Res Inst Record system and method based on one-way hash function
US8700893B2 (en) * 2009-10-28 2014-04-15 Microsoft Corporation Key certification in one round trip
US8839381B2 (en) * 2010-12-07 2014-09-16 Microsoft Corporation Revoking delegatable anonymous credentials
US8892865B1 (en) * 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
US9367701B2 (en) * 2013-03-08 2016-06-14 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9747448B2 (en) * 2013-04-02 2017-08-29 Microsoft Technology Licensing, Llc Cryptographic mechanisms to provide information privacy and integrity
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
WO2016155804A1 (en) * 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
US10097521B2 (en) * 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US10547457B1 (en) * 2016-10-21 2020-01-28 Wells Fargo Bank N.A. Systems and methods for notary agent for public key infrastructure names
FR3059802B1 (fr) * 2016-12-07 2018-11-09 Safran Identity & Security Procede de generation d'une signature electronique d'un document associe a un condensat
US10698675B2 (en) * 2016-12-19 2020-06-30 International Business Machines Corporation Decentralized automated software updates via blockchain

Also Published As

Publication number Publication date
CN110383751A (zh) 2019-10-25
JP2020505817A (ja) 2020-02-20
WO2018127456A3 (en) 2018-08-09
EP3566384B1 (en) 2021-02-17
EP3566384A2 (en) 2019-11-13
WO2018127456A2 (en) 2018-07-12
US20190334695A1 (en) 2019-10-31
US11088823B2 (en) 2021-08-10
CN110383751B (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
JP6644195B1 (ja) 認証されたデータ上のピノキオ/トリノキオ
EP3566389B1 (en) Distributed privacy-preserving verifiable computation
JP6808057B2 (ja) 汎用アカウントモデルおよび準同型暗号化に基づいたブロックチェーンデータ保護
CN110419053B (zh) 用于信息保护的系统和方法
US11799655B2 (en) Method for verifying information
CN111989893B (zh) 用于生成和链接零知识证明的方法、系统和计算机可读装置
WO2019144612A1 (zh) 基于区块链的零知识多账本兑换转账方法、装置及存储介质
JP2020512572A5 (ja)
US10333710B2 (en) Method and system for determining desired size of private randomness using Tsallis entropy
US11316691B2 (en) Methods and systems for enhancing network privacy of multiple party documents on distributed ledger-based networks
JP2020515885A (ja) 汎用アカウントモデルおよび準同型暗号に基づくブロックチェーンデータ保護
CN110637441A (zh) 应用于数据重复数据删除的加密密钥生成
US20120297198A1 (en) Privacy-Preserving Metering with Low Overhead
US20150358155A1 (en) Secret computation system, arithmetic unit, secret computation method and program
CN113435121B (zh) 基于联邦学习的模型训练验证方法、装置、设备及介质
Shang et al. Newton-interpolation-based zk-SNARK for Artificial Internet of Things
CN112184441B (zh) 数据处理方法、装置、节点设备及存储介质
Miao et al. Fuzzy-based trustworthiness evaluation scheme for privilege management in vehicular ad hoc networks
CN111277416A (zh) 交互式零知识证明方法、装置、计算机设备和存储介质
CN113792282B (zh) 身份数据验证方法、装置、计算机设备和存储介质
Hao et al. Privacy-preserving Blockchain-enabled Parametric Insurance via Remote Sensing and IoT
JP6634171B2 (ja) 公開鍵の信頼性を証明するための装置、方法及びそのためのプログラム
WO2021212611A1 (zh) 加密数据对等关系参数检验方法、装置、设备及存储介质
CN118174844A (zh) 一种数据共享方法、装置和设备及计算机存储介质
CN117573684A (zh) 一种支持动态数据更新和外包计算的存储时间证明方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190823

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190823

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200107

R150 Certificate of patent or registration of utility model

Ref document number: 6644195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250