(57)【特許請求の範囲】
【請求項１】
システムで使用される第１のノードであって、前記システムは１つ以上の信頼できるソース・ノード、１つ以上の作業者ノード、及び検証者ノードを含み、
前記第１のノードは、
１つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定し、前記信頼できる入力コミットメント・キーは、１つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記１つ以上の信頼できるソース・ノードによって使用されるためのものであり、
１つ以上の信頼できる入力上の計算が正しく、且つ前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記１つ以上の作業者ノードによる使用に対して計算評価キーを決定し、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出され、
前記１つ以上の作業者ノードによる前記計算の結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定し、
前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開する、
ように構成された、第１のノード。
【請求項２】
各信頼できる入力ワイヤに対する前記キー・マテリアルは、秘密値の積の符号化と、前記信頼できる入力ワイヤを表す前記トラップドア値に対応する点で評価された計算独立多項式及び前記計算において前記ワイヤがどのように使用されるかを表す前記トラップドア値に対応する点で評価された１つ以上の計算依存多項式との組み合わせとを含む、請求項１に記載の第１のノード。
【請求項３】
システムで第１のノードを動作させる方法であって、前記システムは１つ以上の信頼できるソース・ノード、１つ以上の作業者ノード、及び検証者ノードを含み、
前記方法は、
１つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、前記信頼できる入力コミットメント・キーは、１つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記１つ以上の信頼できるソース・ノードによって使用される、決定することと、
１つ以上の信頼できる入力上の計算が正しく、且つ前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記１つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出される、計算評価キーを決定することと、
前記１つ以上の作業者ノードによる前記計算の結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定することと、
前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開することと、
を含む、方法。
【請求項４】
その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに請求項３に記載の方法を実行させるように構成された、コンピュータ・プログラム。
【請求項５】
システムで使用するための作業者ノードであって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、検証者ノードとを含み、
前記作業者ノードは、
前記作業者ノードによって実行される計算のために計算評価キーを取得し、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出され、
前記計算のための１つ以上の信頼できる入力を受信し、
前記受信された１つ以上の信頼できる入力を使用して、前記計算の１つ以上の内部ワイヤ及び前記計算の１つ以上の出力ワイヤの値を決定するために前記計算を評価し、
前記１つ以上の信頼できる入力上の前記計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定する、
ように構成された、作業者ノード。
【請求項６】
各信頼できる入力ワイヤに対する前記キー・マテリアルは、秘密値の積の符号化と、前記信頼できる入力ワイヤを表す前記トラップドア値に対応する点で評価された計算独立多項式及び前記計算において前記ワイヤがどのように使用されるかを表す前記トラップドア値に対応する点で評価された１つ以上の計算依存多項式との組み合わせとを含む、請求項５に記載の作業者ノード。
【請求項７】
前記１つ以上の信頼できる入力ワイヤのための前記キー・マテリアルは、
〈β・（ｓｋ＋ｒｖｖｋ＋ｒｗｗｋ＋ｒｙｙｋ）〉１
を含み、ここで、ｋは各信頼できる入力ワイヤを表すラベルであり、ｓは前記トラップドア値であり、β、ｒｖ及びｒｗはランダム値であり、各信頼できる入力、ｖｋ、ｗｋ及びｙｋに対するｒｙ＝（ｒｖ・ｒｗ）は計算を表すｓで評価された多項式であって、ｖｋはそれぞれの信頼できる入力ワイヤが左側の因数で使用される方法を表し、ｗｋは前記それぞれの信頼できる入力ワイヤが右側の因数で使用される方法を表し、ｙｋは前記それぞれの信頼できる入力ワイヤが計算を構成する乗算の組の積で使用される方法を表し、〈・〉１は加法準同型の符号化であり、多項式ｆに対する〈ｆ〉１はリング要素ｆ（ｓ）の加法準同型の符号化を表す、請求項５又は６に記載の作業者ノード。
【請求項８】
作業者ノードをシステムで動作させる方法であって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、検証者ノードとを含み、
前記方法は、
前記作業者ノードによって実行される計算のために計算評価キーを取得することであって、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出される、計算評価キーを取得することと、
前記計算のための１つ以上の信頼できる入力を受信することと、
前記受信された１つ以上の信頼できる入力を使用して、前記計算の１つ以上の内部ワイヤ及び前記計算の１つ以上の出力ワイヤの値を決定するために前記計算を評価することと、
前記１つ以上の信頼できる入力上の前記計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定することと、
を含む、方法。
【請求項９】
その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに請求項８に記載の方法を実行させるように構成された、コンピュータ・プログラム。
【請求項１０】
システムで使用される検証者ノードであって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、１つ以上の作業者ノードとを含み、
前記検証者ノードは、
信頼できる入力検証キー及び計算検証キーを取得し、
前記１つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得し、前記信頼できる入力コミットメントは、前記１つ以上の信頼できるソース・ノードによって計算に入力された１つ以上の信頼できる入力の表現を含み、
１つ以上の作業者ノードから、前記計算の出力と、前記１つ以上の作業者ノードによる前記１つ以上の信頼できる入力上の計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を取得し、前記証明は、前記計算に入力される前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤのためのキー・マテリアルを含む計算評価キーを使用して决定され、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出され、
前記１つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定する、
ように構成された、検証者ノード。
【請求項１１】
前記計算が、ゼロ又は１つ以上の信頼できない入力ワイヤ、１つ以上の計算出力ワイヤ、１つ以上の信頼できる入力ワイヤ、及び１つ以上の内部ワイヤを含み、前記証明が、前記計算を形成する、左側の因数、右側の因数及び乗算の積に対する前記信頼できる入力ワイヤを含む入力ワイヤの組の寄与を表す符号化を含む、請求項１０に記載の検証者ノード。
【請求項１２】
複数の符号化が互い整合性があること、及び前記複数の符号化が前記計算のための前記信頼できる入力コミットメントと整合性があることを検証する際に使用される要素Ｚを前記証明は含む、請求項１１に記載の検証者ノード。
【請求項１３】
前記検証者ノードは、前記複数の符号化が互いに整合していること及び前記複数の符号化が前記計算のための前記信頼できる入力コミットメントと整合していることを検証することによって、前記１つ以上の信頼できる入力上の前記計算が正しいかどうか、及び前記信頼できる入力が前記計算において使用されたかどうかを決定するように構成される、請求項１２に記載の検証者ノード。
【請求項１４】
システムにおいて検証者ノードを動作させる方法であって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、１つ以上の作業者ノードとを含み、
前記方法は、
信頼できる入力検証キー及び計算検証キーを取得することと、
前記１つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得することであって、前記信頼できる入力コミットメントは、前記１つ以上の信頼できるソース・ノードによって計算に入力された１つ以上の信頼できる入力の表現を含む、取得することと、
１つ以上の作業者ノードから、前記計算の出力と、前記１つ以上の作業者ノードによる前記１つ以上の信頼できる入力上の計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を取得することであって、前記証明は、前記計算に入力される前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤのためのキー・マテリアルを含む計算評価キーを使用して决定され、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出される、取得することと、
前記１つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定することと、
を含む、方法。
【請求項１５】
その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに請求項１４に記載の方法を実行させるように構成された、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１７年１月６日に出願された米国仮出願第６２／４４３，３３８号の優先権及び利益を主張し、その全体が参照により本明細書に組み込まれる。
【０００２】
技術分野
本開示は、信頼できない第三者への計算のアウトソーシング、及び計算結果の正確性の検証に関するものである。
【背景技術】
【０００３】
計算をクラウドにアウトソーシングする場合、返された計算結果が正しいことを知ることは重要である。３つの既存のアプローチがあり、それらは、計算を複数の作業者にアウトソーシングし、その結果を比較する；作業者が配備した信頼できるハードウェアに依存する；作業者に暗号的に正しいことを証明させる；である。この後者の方向の解決策は、検証可能な計算に対するピノキオ・システム及びその変形例（Ｂ．Ｐａｒｎｏ，Ｊ．Ｈｏｗｅｌｌ，Ｃ．Ｇｅｎｔｒｙ，及びＭ．ＲａｙｋｏｖａのＳ＆Ｐ，２０１３の予稿集に記載された「ピノキオ：ほぼ実用的な検証可能な計算（Ｐｉｎｏｃｃｈｉｏ：Ｎｅａｒｌｙ  Ｐｒａｃｔｉｃａｌ  Ｖｅｒｉｆｉａｂｌｅ  Ｃｏｍｐｕｔａｔｉｏｎ）」）である。特に、「トリノキオ」の変形例（Ｂ．  Ｓｃｈｏｅｎｍａｋｅｒｓ，Ｍ．  Ｖｅｅｎｉｎｇｅｎ，及びＮ．  ｄｅ  Ｖｒｅｅｄｅ，  ＩＡＣＲ  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，  ２０１５：４８０，  ２０１５による「トリノキオ：分散された検証可能計算によるプライバシーに優しいアウトソーシング」に記載されている）は、正確性保証は、証明を作成するために協力している複数の作業者に計算をアウトソーシングすることによる、正確性だけでなく作業者に対するプライバシーも保証するために、複数の当事者の計算技術と組み合わせることができることを示している。
【０００４】
ピノキオ（Ｐｉｎｏｃｃｈｉｏ）／トリノキオ（Ｔｒｉｎｏｃｃｈｉｏ）では、検証者は、その選択した入力に対する関数を計算するよう作業者に依頼する。しかし、作業者の計算が、信頼できるソースからの機密データベース上の検証者の問い合わせである設定を考える。例えば、バイオセンサから来る情報に関する統計を要求する保険会社を考えると、すなわち、センサー自体は、計算を実行するのに十分な力を有しておらず、常にオンラインであるとは限らないので、計算はアウトソーシングされる必要がある。しかし、この場合、保険業者が、統計がバイオセンサからのデータを使用することを確実にすることは困難であり、同時に、使用者が、保険業者が統計とは別にセンサー・データについて何らかの情報を知ることがないことを確実にすることは困難である。同様の使用事例は、スマート・メータや財務監査のような分野でも存在する。あるいは、分散された計算の場合、２つの関数は、多数の値からなる共有状態を参照するかもしれない。例えば、この共有状態は、第１の関数によって出力され、第２の関数に入力される値を含んでもよい。この場合、これらの値は両方の関数の信頼できる入力と見なされるかもしれない。従って、アウトソースする計算は、検証者による入力とは別に、１つ以上の信頼できるソースからの信頼できる入力も存在する場合に考慮される。検証者は、計算の出力を学習し、それが正しいことを保証されるはずであるが、これらの信頼できる入力に関する追加情報を学習すべきではない。一般的には、この設定による解決策（２０１５年５月１７日〜２１日に米国カリフォルニア州サンノゼでの２０１５  ＩＥＥＥ  セキュリティ及びプライバシー・シンポジウムの２７１〜２８６ページ、Ｍ．  Ｂａｃｋｅｓ，  Ｍ．  Ｂａｒｂｏｓａ，  Ｄ．  Ｆｉｏｒｅ，及びＲ．  Ｍ．  Ｒｅｉｓｃｈｕｋによる「ＡＤＳＮＡＲＫ：認証されたデータについてのほぼ実用的でプライバシーを保護する証明」及びＣ．  Ｃｏｓｔｅｌｌｏ、Ｃ．  Ｆｏｕｒｎｅｔ、Ｊ．  Ｈｏｗｅｌｌ、Ｍ．  Ｋｏｈｌｗｅｉｓｓ、Ｂ．  Ｋｒｅｕｔｅｒ、Ｍ．  Ｎａｅｈｒｉｇ、Ｂ．  Ｐａｒｎｏ、及びＳ．  ＺａｈｕｒによるＳ＆Ｐ  ’１５の予稿集２５３〜２７０ページ、２０１５の「Ｇｅｐｐｅｔｔｏ：汎用的な検証可能な計算」で検討された）は、ソースに信頼できる入力のある種の表現を提供させ、この表現に関する計算の正しさを検証者に確認させるものである。検証には、（１）信頼できる入力の表現、（２）この表現を検証するための検証キー、（３）計算の出力、（４）信頼できる入力に関して正しい出力であることの証明、（５）計算の正しさの証明を検証するための検証キーが、必要である。ここで、（２）と（５）は中央機関（ＣＡ）から、（１）は信頼できる情報源から、（３）と（４）は作業者からのものである。ここで、計算のための検証キーは、入力のための検証キー（すなわち、入力を提供する特定の信頼できるソース）に依存することもあれば依存しないこともある。
【発明の概要】
【０００５】
「ＡＤＳＮＡＲＫ：認証されたデータについてのほぼ実用的でプライバシーを保護する証明（Ｎｅａｒｌｙ  ｐｒａｃｔｉｃａｌ  ａｎｄ  ｐｒｉｖａｃｙ−ｐｒｅｓｅｒｖｉｎｇ  ｐｒｏｏｆｓ  ｏｎ  ａｕｔｈｅｎｔｉｃａｔｅｄ  ｄａｔａ）」と「Ｇｅｐｅｔｔｏ：汎用性のある検証可能な計算（Ｖｅｒｓａｔｉｌｅ  ｖｅｒｉａｂｌｅ  ｃｏｍｐｕｔａｔｉｏｎ）」の２つのアプローチは、ピノキオ型検証可能な計算における認証された入力に関する計算の正確性を証明するために使用できる可能性がある。１つの一般的なアプローチ（「Ｇｅｐｅｔｔｏ：汎用性のある検証可能な計算」で議論され、「ＡＤＳＮＡＲＫ：認証されたデータについてのほぼ実用的でプライバシーを保護する証明」論文で「一般的な構成」と呼ばれる）は、すべての入力に対して１つの単一（一定サイズの）署名を入力表現として使用することである。次に、正確さの証明は、署名及び計算結果に対応する一連の入力が存在することの証明を含む。このアプローチの欠点は、作業者に大きなオーバーヘッドがあることである。これは、検証可能な計算内で署名検証を実行することが高価であるためである。
【０００６】
もう１つの方法は、「ＡＤＳＮＡＲＫ」（「ＡＤＳＮＡＲＫ：認証されたデータについてのほぼ実用的でプライバシーを保護する証明」に記載されている）として知られているものであり、これは、検証者に提示される入力の各項目について個別の表現がある。この表現は、入力へのコミットメントとこのコミットメントへの署名から構成される。署名は別々に検証されるのに対し、コミットメントは、基礎となる入力が実際に計算で使用されたことを検証するために組み合わせることができる。これは、作業者のオーバーヘッドがはるかに小さい（特に、一例では、一般的な解決策の２４．５倍速い）が、検証者にオーバーヘッドを導入するという欠点があり、検証者には、記憶と検証の両方の努力が、信頼できる入力の数において線形になる（以前は、それらはこの数に依存していなかった）。
【発明が解決しようとする課題】
【０００７】
従って、作業者と検証者の両方のオーバーヘッドを最小化する既存の技術及びアルゴリズムを改良する必要がある。
【０００８】
従って、本明細書に記載する様々な実施形態は、ピノキオ及びトリノキオのような変形例に対する信頼できる入力を、作業者及び検証者の両方のために低いオーバーヘッドで認証する新しい方法を提供する。信頼できる入力を一定サイズの表現で表すことを可能にする修正された入力表現が提供され、そして、すでに証明に存在する既存の類似のチェックに、計算が信頼できる入力のこの表現に対応するという証明を埋め込むための新しい方法が提供される。したがって、単一の表現はデータセット全体を表すが、オーバーヘッドは小さくなる。データが１つの信頼できるソースからの場合、本明細書での解決策は、作業者又は検証者に対するオーバーヘッドを実質的に持たない。１つの計算で複数の信頼できるソースからのデータを使用する場合、作業者のオーバーヘッドはないが、検証者に対しては、証明サイズと検証時間は、信頼できるソースの数において線形よりもわずかに増加する。従って、他の解決策と比較して、（大きな）作業者のオーバーヘッドは除去され、検証者のオーバーヘッドは（複数のソースの場合に）削減されるか、又は除去される。
【課題を解決するための手段】
【０００９】
第１の特定の態様によると、システムで使用される第１のノードであって、前記システムは、１つ以上の信頼できるソース・ノード、１つ以上の作業者ノード、及び検証者ノードを含み、前記第１のノードは、１つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、前記信頼できる入力コミットメント・キーは、１つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記１つ以上の信頼できるソース・ノードによって使用される、決定し、１つ以上の信頼できる入力上の計算が正しく、且つ前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記１つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出される、計算評価キーを決定し、前記１つ以上の作業者ノードによる前記計算の前記結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定し、前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開する、ように構成される、システムが提供される。
【００１０】
第２の態様によると、システムで使用される第１のノードを動作させる方法であって、前記システムは１つ以上の信頼できるソース・ノード、１つ以上の作業者ノード、及び検証者ノードを含み、前記方法は、１つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、前記信頼できる入力コミットメント・キーは、１つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、前記１つ以上の信頼できるソース・ノードによって使用される、決定することと、１つ以上の信頼できる入力上の計算が正しく、且つ前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を決定する際に前記１つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出される、計算評価キーを決定することと、前記１つ以上の作業者ノードによる前記計算の前記結果を検証する際に、前記検証者ノードによって使用される計算検証キーを決定することと、前記信頼できる入力コミットメント・キー、前記計算評価キー及び前記計算検証キーを公開することと、を含む方法が提供される。
【００１１】
第３の態様によると、システムで使用するための作業者ノードであって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、検証者ノードとを含み、前記作業者ノードは、前記作業者ノードによって実行される計算のために計算評価キーを取得し、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出され、前記計算のための１つ以上の信頼できる入力を受信し、前記受信された１つ以上の信頼できる入力を使用して、前記計算の１つ以上の内部ワイヤ及び前記計算の１つ以上の出力ワイヤの値を決定するために前記計算を評価し、前記１つ以上の信頼できる入力上の前記計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定する、ように構成された、作業者ノードが提供される。
【００１２】
第４の態様によると、作業者ノードをシステムで動作させる方法であって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、検証者ノードとを含み、
前記方法は、前記作業者ノードによって実行される計算のために計算評価キーを取得することであって、前記計算評価キーは、前記計算に前記１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、前記キー・マテリアルは、トラップドア値、前記計算を表す多項式とは独立した前記トラップドア値に対応する点において評価された１つ以上の多項式、及び前記計算を表す前記トラップドア値に対応する点において評価された１つ以上の多項式から導出される、計算評価キーを取得することと、前記計算のための１つ以上の信頼できる入力を受信することと、前記受信された１つ以上の信頼できる入力を使用して、前記計算の１つ以上の内部ワイヤ及び前記計算の１つ以上の出力ワイヤの値を決定するために前記計算を評価することと、前記１つ以上の信頼できる入力上の前記計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算評価キーを使用して前記計算で使用されたことの証明を決定することと、を含む、方法が提供される。
【００１３】
第５の態様によると、システムで使用される検証者ノードであって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、１つ以上の作業者ノードとを含み、前記検証者ノードは、信頼できる入力検証キー及び計算検証キーを取得し、前記１つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得し、前記信頼できる入力コミットメントは、前記１つ以上の信頼できるソース・ノードによって計算に入力された１つ以上の信頼できる入力の表現を含み、１つ以上の作業者ノードから、前記計算の出力と、前記１つ以上の作業者ノードによる前記１つ以上の信頼できる入力上の計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を取得し、前記１つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定する、ように構成された、検証者ノードが提供される。
【００１４】
第６の態様によると、システムにおいて検証者を動作させる方法であって、前記システムは第１のノードと、１つ以上の信頼できるソース・ノードと、１つ以上の作業者ノードとを含み、前記方法は、信頼できる入力検証キー及び計算検証キーを取得することと、前記１つ以上の信頼できるソース・ノードから、信頼できる入力コミットメントを取得することであって、前記信頼できる入力コミットメントは、前記１つ以上の信頼できるソース・ノードによって計算に入力された１つ以上の信頼できる入力の表現を含む、取得することと、１つ以上の作業者ノードから、前記計算の出力と、前記１つ以上の作業者ノードによる前記１つ以上の信頼できる入力上の計算が正しいこと及び前記１つ以上の信頼できる入力が前記計算に使用されたことの証明を取得することと、前記１つ以上の信頼できる入力上の計算が正しいか否か、及び前記信頼できる入力が、前記取得された信頼できる入力検証キーと、取得された計算検証キーと、取得された信頼できる入力コミットメントと及び取得された証明を使用して計算されたことを決定することと、を含む方法が提供される。
【００１５】
第７の態様によると、その中に具体化されたコンピュータ読取可能コードを有するコンピュータ読取可能媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ読取可能コードが、適切なコンピュータ又はプロセッサによる実行時に、前記コンピュータ又は前記プロセッサに上述の方法の態様のいずれかを実行させるように構成された、コンピュータ・プログラム製品が提供される。
【００１６】
これら及び他の態様は、以下に説明される実施形態から明らかになり、実施形態を参照して説明されるであろう。
【図面の簡単な説明】
【００１７】
次に、例示的な実施形態を、単なる例示として、以下の図面を参照して説明する。
【図１】本明細書に記載の技術を実装したシステムの図である。
【図２】様々な実施形態によるノードのブロック図である。
【図３】様々な実施形態による中央認証ノードの例示的な動作を示すフロー・チャートである。
【図４】様々な実施形態による信頼できる入力ノードの例示的な動作を示すフロー・チャートである。
【図５】様々な実施形態による作業者ノードの例示的な動作を示すフロー・チャートである。
【図６】様々な実施形態による検証者ノードの例示的な動作を示すフロー・チャートである。
【発明を実施するための形態】
【００１８】
図１は、本明細書に記載の技術及び原理を実装することができるシステム２のブロック図である。システム２は、第１のノード４（これは、本明細書では、中央機関（ｃｅｎｔｒａｌ  ａｕｔｈｏｒｉｔｙ）又は中央機関ノード（ｃｅｎｔｒａｌ  ａｕｔｈｏｒｉｔｙ  ｎｏｄｅ）４とも呼ばれる）、入力ノード６（本明細書では、「信頼できるソース（ｔｒｕｓｔｅｄ  ｓｏｕｒｃｅ）」又は「信頼できるソース・ノード（ｔｒｕｓｔｅｄ  ｓｏｕｒｃｅ  ｎｏｄｅ）」とも呼ばれる）、１つ以上の作業者ノード（ｗｏｒｋｅｒ  ｎｏｄｅ）８（本明細書では、「作業者（ｗｏｒｋｅｒ）」とも呼ばれる）、及び検証者ノード（ｖｅｒｉｆｉｅｒ  ｎｏｄｅ）１０（本明細書では、「検証者（ｖｅｒｉｆｉｅｒ）」とも呼ばれる）を備える。
【００１９】
本明細書に記載される技術及び原理がピノキオに適用される場合、システム２は、計算を実行する単一の作業者ノード８を備える。本明細書に記載の技術及び原理がトリノキオに適用される場合、システム２は、協働して計算を実行する２つ以上の作業者ノード８を備える。
【００２０】
概して、システム２、特に中央機関ノード４及び１つ以上の作業者ノード８は、入力ノード６によって提供される入力データの１つ以上の項目（本明細書では、信頼できる入力又は信頼できる入力データとも呼ばれる）に対して計算を実行するために提供される。計算の出力の正しさは、検証者ノード１０によって検証される。
【００２１】
いくつかの実施形態では、検証者ノード１０は、入力ノード６によって所有又は保存された信頼できる入力データに対して計算が実行されるように要求することができ、入力ノード６は、作業者ノード８又は検証者ノード１０がデータの内容を学習する必要がなく、信頼できる入力データを計算への入力として提供することができる。
【００２２】
いくつかの実施形態では、入力ノード６は、その信頼できる入力データに関する計算を要求することができ、検証者ノード１０は、計算が正しく実行される（又は実行された）ことを検証することができる。
【００２３】
いくつかの実施形態では、検証者ノード１０はまた、入力ノード６からの信頼できる入力と共に、計算への入力を提供してもよい。
【００２４】
ノード４、６、８、１０の各々は、それらの間でデータ及び情報の交換を可能にするために、例えばインターネットのようなネットワークを介して相互接続され、ノード４、６、８、１０のうちの１つ以上は、同じ場所に配置されるか、又はそうでなければローカル・エリア・ネットワークを介して相互接続されていてもよい。
【００２５】
ノード４、６、８、１０の各々は、コンピュータ、サーバ、ラップトップ、タブレット、スマートフォン等のような任意の種類の計算装置又は電子装置の形態であってもよい。
【００２６】
図２は、本明細書に記載される技術の様々な実施形態によるノードの構成要素を示すブロック図である。中央機関ノード４、入力ノード６、作業者ノード８、及び検証者ノード１０のいずれも、図２に示すように実装することができる。
【００２７】
図２によれば、ノードは、システム２内の他のノードのような他のノードへのデータ接続及び／又は他のノードとのデータ交換を可能にするためのインターフェース回路２０を含む。特に、インターフェース回路２０は、任意の望ましい有線又は無線通信プロトコルを介して、ノード４、６、８、１０とインターネットのようなネットワークとの間の接続を可能にすることができる。例えば、インターフェース回路２０は、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ、又は任意の携帯通信プロトコル（グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＭＳ）、ユニバーサル・モバイル・コミュニケーション・システム（ＵＭＴＳ）、ＬＴＥ、ＬＴＥ−Ａｄｖａｎｃｅｄなどを含むが、これらに限定されない）を使用して動作することができる。
【００２８】
ノードはさらに、データ上で動作を実行し、ノードの動作を一般的に制御するための処理ユニット２２を含む。インターフェース回路２０は、処理ユニット２２に接続されてもよい。ノードは、さらに、本明細書に記載される技術の実行に必要な任意のデータを記憶するため、及び、処理ユニット２２に、以下により詳細に説明されるように、及びノード４、６、８、１０がシステム２に有する役割に適切に、方法ステップを実行させるためのコンピュータ・プログラム・コードを記憶するためのメモリ・ユニット２４を含む。メモリ・ユニット２４は、処理ユニット２２に接続されてもよい。
【００２９】
処理ユニット２２は、本明細書に記載される種々の機能を実行するために、ソフトウェア及び／又はハードウェアを用いて、種々の方法で実装することができる。処理ユニット２２は、所要の機能を実行するために及び／又は所要の機能を達成するために処理ユニット２２の構成要素を制御するために、ソフトウェア又はコンピュータ・プログラム・コードを使用してプログラムすることができる１つ以上のマイクロプロセッサ又はデジタル信号プロセッサ（ＤＳＰ）を含むことができる。処理ユニット２２は、いくつかの機能を実行するための専用ハードウェア（例えば、増幅器、プリアンプ、アナログ・デジタル変換器（ＡＤＣ）及び／又はデジタル・アナログ変換器（ＤＡＣ））と、他の機能を実行するためのプロセッサ（例えば、１つ以上のプログラムされたマイクロプロセッサ、コントローラ、ＤＳＰ及び関連する回路）との組み合わせとして実装してもよい。本開示の様々な実施形態において使用され得る構成要素の例としては、従来のマイクロプロセッサ、ＤＳＰ、特定用途向け集積回路（ＡＳＩＣ）、及びフィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）を含むが、これらに限定されない。
【００３０】
メモリ・ユニット２４は、ランダム・アクセス・メモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、及び電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）のような揮発性及び不揮発性コンピュータ・メモリを含む、キャッシュ又はシステム・メモリのような、任意のタイプの非一時的機械読取可能媒体を含むことができる。
【００３１】
中央機関ノード４、入力ノード６、作業者ノード８、及び検証者ノード１０のいずれかの実用的な実装は、図２に示されているものに追加のコンポーネントを含んでもよいことが理解されよう。例えば、ノードは、バッテリのような電源、又はノードが主電源に接続されることを可能にするコンポーネントを含むことができる。別の例として、ノードは、ノードのユーザがノードに情報、データ及び／又はコマンドを入力することを（適宜）可能にし、及び／又はノードがノードのユーザに情報又はデータを出力することを可能にする、１つ以上のコンポーネントを含むユーザ・インターフェースを含むことができる。ユーザ・インターフェースは、キーボード、キーパッド、１つ以上のボタン、スイッチ又はダイヤル、マウス、トラック・パッド、タッチスクリーン、スタイラス、カメラ、マイクロホン等を含むがこれらに限定されない任意の適切な入力コンポーネントを含むことができ、ユーザ・インターフェースは、ディスプレイ・スクリーン、１つ以上のライト又はライト・エレメント、１つ以上のスピーカ、振動エレメント等を含むがこれらに限定されない任意の適切な出力コンポーネントを含むことができる。
【００３２】
上述のように、本明細書に記載される様々な実施形態は、ピノキオ及びトリノキオのような変形例の信頼できる入力を認証するための新しい方法を提供し、作業者及び検証者の両方のための低いオーバーヘッドを有する。本明細書に記載された技術は、信頼できる入力を一定サイズの表現で表すことを可能にする修正された入力表現を提供し、また、計算が信頼できる入力のこの表現に対応するという証明を、すでに証明に存在する既存の類似のチェックにはめ込む（ｅｍｂｅｄ）新しい方法を提供する。これは、単一の入力表現がデータセット全体を表すが、オーバーヘッドはより少ないことを意味する。
【００３３】
より詳細には、本明細書に記載される技術は、ピノキオの「線形結合整合性チェック（ｌｉｎｅａｒ  ｃｏｍｂｉｎａｔｉｏｎ  ｃｏｎｓｉｓｔｅｎｃｙ  ｃｈｅｃｋ）」を再利用し、それは、単に、証明の内部整合性を強化するだけでなく、信頼できる入力の表現との証明の整合性をも強化する。ピノキオでは、計算は二次方程式でモデル化される。たとえば、入力ｘ１の場合、プローバ（ｐｒｏｖｅｒ）は、ｘ２＝（ｘ１）３を計算する必要がある。次に、ｘ３＝ｘ１・ｘ１且つｘ２＝ｘ１・ｘ３になるような内部ワイヤ値ｘ３（すなわち、計算の一部）が存在し、かつ存在する場合にのみ、ｘ２は正しい。ピノキオのプローバが入力に対してこの関数を計算するように要求されると、それは、平文で、ｘ３が符号化され、ｘ１；．．．；ｘ３が与えられた二次方程式を満たす証明に戻る。
【００３４】
具体的には、内部ワイヤｘｍ＋１；．．．；ｘｎの符号化には４つの項が含まれる。
【数１】
0006644195.tif 000002
【数２】
0006644195.tif 000003
【数３】
0006644195.tif 000004
【数４】
0006644195.tif 000005
ここで、要素Ｖｉ、Ｗｉ、Ｙｉ及びβ・（Ｖｉ＋Ｗｉ＋Ｙｉ）は、加法的に準同型の（ｈｏｍｏｍｏｒｐｈｉｃ）符号化方式を使用する準同型符号化である。例えば、値ｘは、対称暗号ペアリングが定義されている離散対数群（加法的群として見える）の生成元（ｇｅｎｅｒａｔｏｒ）ｇでｘ・ｇとして、符号化されるかもしれない。これは、βの符号化Ｂが与えられたとき、βはＶｉ＋Ｗｉ＋Ｙｉに関するβ・（Ｖｉ＋Ｗｉ＋Ｙｉ）の離散対数を意味し、Ｖｉ，Ｗｉ及びＹｉは、γ＝β・（Ｖｉ＋Ｗｉ＋Ｙｉ）を計算することはできないが、Ｂ及びＶｉ＋Ｗｉ＋Ｙｉによって符号化された値の積をγが実際に符号化するか否かをチェックすることは可能である。あるいは、値ｘは、ペイエ（Ｐａｉｌｌｉｅｒ）のような加法準同型暗号化スキームを用いて符号化されてもよい。この場合、加法準同型暗号化方式の秘密鍵を知っている検証者は、復号された値を復号し、平文上の関係を検証することによって、Ｂ及びＶｉ＋Ｗｉ＋Ｙｉによって符号化された値の積をγで符号化するかどうかをチェックすることができる。いずれの場合も、Ｂ、Ｖｉ，Ｗｉ，Ｚｉ及びβ・（Ｖｉ＋Ｗｉ＋Ｚｉ）は、中央機関ノード４によって一度だけ生成される。
【００３５】
真正のプローバは、Ｖ、Ｗ、Ｙ及びＺの各々について同じｘｉを使用するが、破損したプローバは、誤った計算結果の正しさを証明するために、異なる値を使用することがある。Ｚという項は、これを防止する線形結合整合性チェックを可能にする。Ｂ，Ｖ，Ｗ，Ｙ，Ｚが与えられれば、どの当事者もβ・（Ｖ＋Ｗ＋Ｙ）＝Ｚを検証することができ、これは、すべてが同じｘｉを使うことを意味する。
【００３６】
本明細書に記載される種々の実施形態は、Ｖ、Ｗ、Ｙ及びＺの間の内部だけでなく、これらの要素及び信頼できる入力の表現との間の整合性を証明するために、この線形結合整合性チェックを使用する。計算では、入出力値ｘｉ，．．，ｘｌ、信頼できる入力値ｘｌ＋１，．．．，ｘｍ、内部ワイヤｘｍ＋１，．．．，ｘｎを使用すると仮定する。信頼できる入力を表現するために、要素Ｉ０，Ｉｌ＋１，．．．，Ｉｍが選択され（特定の方法で）、表現は以下のように定義される。ランダムなｘ０に対して、
【数５】
0006644195.tif 000006
ｘ０の追加は、信頼できる入力がこの表現から漏れないことを提供する。この表現（１つの要素）のサイズは、信頼できる入力の数から独立していることに留意すべきである。
【００３７】
Ｉで表される信頼できる入力が、上記のＺに対する要素、
【数６】
0006644195.tif 000007
の代わりに、特定の計算で使用されたことを証明するために、以下を使用する。
【数７】
0006644195.tif 000008
【００３８】
前述と同様に、Ｚがβ・（Ｉ＋Ｖ＋Ｗ＋Ｙ）＝Ｚを満たすことがチェックされる。信頼できる入力に対して、これは、同じｘｉがＶ、Ｗ、Ｙ及びＩで使用されたことを保証する。計算の内部ワイヤに対して、保証は上記の通りである。
【００３９】
本明細書に提示された技術の詳細な実装は、ピノキオ・ベースのシステム（「トリノキオ：分散された検証可能な計算によるプライバシーに優しいアウトソーシング」において簡略化した形式で記載されている）について以下に記載されており、これは、オリジナルのピノキオ・スキームのセキュリティが（確かに）保存されることを可能にする。しかしながら、本明細書に提示された技術は、ピノキオの他の変形例（トリノキオ変形例を含む）に適用することができることが当業者には理解されるであろう。
【００４０】
ピノキオは、単一の作業者ノード８を有するが、本明細書に記載される技術に従って、トリノキオに対する直接的な一般化によって、プライバシー保護方法（すなわち、個々の作業者８が信頼できる入力又は検証者１０の入力に関する情報を一切学習しないように）で、２つ以上（例えば、３つ）の異なる作業者８間に計算を分配することも可能である。
【００４１】
第一に、中央機関４による１回の設定がある。
リング
（外１）
0006644195.tif 000009
は、計算が行われる範囲で固定され、最大の入出力数ｌ、最大の信頼できる入力数ｍ−ｌ、計算の最大「度数（ｄｅｇｒｅｅ）」ｄ＞ｍである。ランダムなトラップドア（ｔｒａｐｄｏｏｒ）ｓが選択され、ここで
【数８】
0006644195.tif 000010
である。２つの準同型符号化
【数９】
0006644195.tif 000011
を定義し、符号化要素間の乗法的関係を検証するために使用できる双線形マップ
【数１０】
0006644195.tif 000012
も定義する。以下で、
（外２）
0006644195.tif 000013
及び
（外３）
0006644195.tif 000014
の準同型演算は加算と見なし、
（外４）
0006644195.tif 000015
の準同型演算は乗算と見なすことができる。
【００４２】
具体的には、準同型符号化として、暗号ペアリングを有する離散対数群を使用してもよい。この場合、中央機関は、（４ｄ＋４）−ＰＤＨ、ｄ−ＰＫＥ及び（８ｄ＋８）−ＳＤＨの仮定（「ピノキオ：ほぼ実用的な検証可能な計算」で説明されているように）が成り立つ、ペアリング
【数１１】
0006644195.tif 000016
を持つ順序
（外５）
0006644195.tif 000017
の離散対数順序の対数群
（外６）
0006644195.tif 000018
を設定する。ここでも、
（外７）
0006644195.tif 000019
は離散対数群である。この場合、所与の生成元は、
（外８）
0006644195.tif 000020
のｇ１及び
（外９）
0006644195.tif 000021
のｇ２
（加法的に記述された）及び多項式は、
【数１２】
0006644195.tif 000022
で、〈ｆ〉１はｆ（ｓ）・ｇ１に対して記述され、〈ｆ〉２はｆ（ｓ）・ｇ２に対して記述される。
【００４３】
あるいは、準同型符号化として、準同型暗号が使用されてもよい。この場合、中央機関は平文空間
（外１０）
0006644195.tif 000023
を持つ準同型暗号化方式を設定し、秘密鍵／公開鍵のペアを生成する。準同型符号化
【数１３】
0006644195.tif 000024
は、両方とも、この公開鍵を使用する暗号化として定義される。双線形マップｅ（〈ａ〉１、〈ｂ〉２）は、それぞれａとｂを得るために〈ａ〉１及び〈ｂ〉２を復号し、ａ・ｂを計算することによって定義される。したがって、
（外１１）
0006644195.tif 000025
における符号化はリング要素である（ここで、・は、リングの付加演算のために記述された）。この場合、多項式
【数１４】
0006644195.tif 000026
が与えられ、〈ｆ〉１及び〈ｆ〉２の両方は、リング要素の暗号化を表す。
【００４４】
中央機関ノード４は、公開パラメータ
（外１２）
0006644195.tif 000027
ｌ、ｍ、ｄ、及び準同型符号化に従ってリング要素の符号化を生成するために必要な情報を公開し、また、双線形マップを評価するために必要な情報を検証者に公開する（離散対数群の場合）か、又は提供する（準同型暗号の場合）。後者の場合、中央機関ノード４は、情報が符号化を生成するために使用される秘密鍵を含むので、すべてのノード６、８、１０に対して双線形マップを評価するために必要な情報を公開しないし、作業者ノード８はこの鍵を学習すべきではない。
【００４５】
中央機関ノード４は、また、信頼できるソース６を「設定」する。トラップドアｓが与えられると、ランダム
【数１５】
0006644195.tif 000028
が選択される。ｊ＝ｌ＋１、ｌ＋２，．．．，ｍに対する信頼できる入力評価キー〈γ・ｓｊ〉１（これは信頼できる入力コミットメント・キーとも呼ばれる）が信頼できるソース６に提供され、信頼できる入力検証キー〈γ〉２が公開される。
【００４６】
次に、データ表現が信頼できるソース６によって形成される。信頼できる入力評価キー〈γ・ｓｊ〉１及び入力ｘｌ＋１，．．．，ｘｍが与えられた場合、ランダムｘ０が選ばれ、信頼できる入力表現（これは信頼できる入力コミットメントとも呼ばれる）が次の形式で返される。
【数１６】
0006644195.tif 000029
【００４７】
次に、中央機関ノード４は、信頼できる計算を設定する。トラップドアｓが与えられると、ランダム
【数１７】
0006644195.tif 000030
が選ばれる。入力と出力ｘ１，．．．，ｘｌと信頼入力ｘｌ＋１，．．．，ｘｍに対して、関数が正しく計算された場合にのみ、すべての方程式を満足する内部ワイヤｘｍ＋１，．．．，ｘｎが存在するように、変数ｘ１，．．．，ｘｎ中の一組のｄ二次方程式を構築した。これらの式は次のように表される。
【数１８】
0006644195.tif 000031
ここで、ｉ＝，．．．，ｄである。
【００４８】
別個の
【数１９】
0006644195.tif 000032
が選択又は取られる。
【００４９】
以下の関数が定義される。ｔ（ｘ）＝（ｘ−α１）・．．．・（ｘ−αｄ）
【００５０】
ラグランジュ補間により、ｖ０（ｘ），．．．，ｖｎ（ｘ）が次数≦＝ｄ−１の多項式とし、
【数２０】
0006644195.tif 000033
となり、ｗｉ（ｘ）、ｙｉ（ｘ）も同様である。
【００５１】
以下の計算評価キーを作業者８に返す（ここで、ｃ＝０，．．．，ｄ；ｉ＝ｌ＋１，ｌ＋２，．．，ｎ；ｊ＝ｍ＋１，．．．，ｎ；ｋ＝ｌ＋１，．．．，ｍ）、
【数２１】
0006644195.tif 000034
【００５２】
この計算評価キーは、いくつかの要素、式（９）の１行目に示される整合性チェック要素の組であって追加の計算独立多項式要素ｓｋを含むもの、計算を形成する乗算の集合の左側の因数（ｖｋ）、右側の因数（ｗｋ）、及び積（ｙｋ）に対する計算依存多項式要素を含む。特に、式（９）の１行目におけるｋ−インデックス付き整合性チェック要素は、１つ以上の信頼できる入力を計算に入力するための１つ以上の信頼できる入力ワイヤのためのキー・マテリアルであり、キー・マテリアルは、トラップドア値、ｓ、計算を表す多項式（すなわち、ｓｋ）から独立しているトラップドア値に対応する点で評価された１つ以上の多項式、及び計算を表す多項式（すなわち、ｖｋ，ｗｋ，ｙｋ）に依存しているトラップドア値に対応する点で評価された１つ以上の多項式から導かれることが分かる。
【００５３】
以下の計算検証キーは、中央機関ノード４（ここでｉ＝０，．．．，ｌ）によって発行される。
【数２２】
0006644195.tif 000035
【００５４】
以下は、作業者８による計算に関するものである。計算評価キー、信頼できる入力、検証者からの入力（適切であれば）が与えられた場合、作業者８は、ｘ１，．．．，ｘｎが上記の二次方程式の全てを満足するように計算の出力と計算の内部ワイヤ値を決定する。作業者８は、ランダム
【数２３】
0006644195.tif 000036
を生成し、次のように計算する。
【数２４】
0006644195.tif 000037
ここで、ｉは、０からｎまでの和であり、ｘ０＝１である。方程式が満たされれば、これは多項式である。
【００５５】
作業者８は、計算結果と以下の証明を返す（ここでｃ＝０，．．．，ｄ；ｉ＝ｌ＋１，ｌ＋２，．．．，ｎ；ｊ＝ｍ＋１，．．．，ｎ；ｋ＝ｌ＋１，．．．，ｍ，ｘ０＝１）。
【数２５】
0006644195.tif 000038
【数２６】
0006644195.tif 000039
【数２７】
0006644195.tif 000040
【数２８】
0006644195.tif 000041
【数２９】
0006644195.tif 000042
【数３０】
0006644195.tif 000043
【数３１】
0006644195.tif 000044
【数３２】
0006644195.tif 000045
ここでｈｃは多項式ｈの係数である。
【００５６】
検証者１０による計算の検証は、以下の通りである。検証者１０には、信頼できる入力検証キーと、中央機関４からの計算検証キーと、信頼できるソース６からの信頼できる入力表現（コミットメント）と、選択された入力及び取得された出力ｘ１，．．．，ｘｌと、作業者８からの証明とが設けられており、検証者１０は、以下が保持されている場合、出力を受け入れる。
【数３３】
0006644195.tif 000046
【数３４】
0006644195.tif 000047
【数３５】
0006644195.tif 000048
【数３６】
0006644195.tif 000049
【数３７】
0006644195.tif 000050
【数３８】
0006644195.tif 000051
ここで、
【数３９】
0006644195.tif 000052
及び
【数４０】
0006644195.tif 000053
で、ｘ０＝１である。上述のチェックにおいて、検証者１０は、計算における内部ワイヤの表現の間の整合性をチェックし、これらが信頼できる入力表現（信頼できる入力コミットメント）と整合していることをチェックする。
【００５７】
中央機関４は、作業者８とは別個であることが重要であることが理解される（中央機関４及び信頼できるソース６は、同じ当事者であってもよいが）。これは、中央機関４が、信頼できる入力表現（信頼できる入力コミットメント）が定義された後に、誤ったステートメントの証明を生成し、信頼できる入力を修正することが技術的に可能であるためである。
【００５８】
厳密に言えば、暗号セキュリティ証明は、信頼できる入力検証／評価キーは単一の信頼できるソース６に固有であり、計算検証／評価キーは単一の作業者８及び機能に固有であることに依存している。しかし、実際の展開では、同じキーが異なる信頼できるソース６と作業者８によって使用される可能性がある。
【００５９】
公開パラメータ、信頼できる入力評価（コミットメント）キー、信頼できる入力検証キー、計算評価キー及び計算検証キーは、すべて、アルゴリズムのセキュリティ又はプライバシーに影響することなく、公開することができる。信頼できる入力及び出力のみを秘密にする必要がある。実際には、中央機関４は、例えばウェブサイト上でデジタル署名されたものを公開することによって、公開パラメータ、信頼できる入力検証キー、及び計算検証キーを公開することができる。中央機関４は、信頼できる入力評価キーを信頼できるソース６（図１の矢印３０で示す）に直接提供し、計算評価キーを作業者８（図１の矢印３２で示す）に直接提供することができる。矢印３０はまた、中央機関４から公開パラメータを得る、信頼できるソース・ノード６を表すことができる。同様に、矢印３２は、中央機関から公開パラメータを得る作業者ノード８を表すこともできる。信頼できるソース６は、プライベート・チャネル（図１の矢印３４で表される）を介して作業者８に信頼できる入力を提供し、信頼できる入力表現／コミットメント、例えば、ウェブサイト上でデジタル的に署名されたものを公表する。検証者１０は、信頼できる入力表現（図１の矢印３６で示す）を得る。また、検証者１０は、安全なチャネルを介して計算入力を作業者８（図１の矢印３８で示されている）に提供することができ、作業者８は、同じ安全なチャネルを介して出力と証明を検証者１０（図１の矢印４０で示されている）に返す。あるいは、インプット及び／又はアウトプットが公開することになっている場合、それらを公表することができる。また、検証者１０は、公開パラメータ、信頼できる入力検証キー、計算検証キーを得ることができ、これは、図１の中央機関４から検証者１０への矢印４２によって示される。
【００６０】
上述の図１の矢印は、各々、アルゴリズムで使用される種々のオブジェクト（すなわち、キー、入力表現、公開パラメータなど）に関連付けられており、各矢印は、特定のオブジェクトを構成するノードで始まり、オブジェクトを使用するノードで終わることが理解されるであろう。従って、（特に、オブジェクトが公開されている場合）図１の矢印は、必ずしもオブジェクトの１つのノードから他のノードへの直接的な転送を示すものではなく、ある場合には、オブジェクトは１つ以上の他の装置、構成要素又はノードを通過してもよいことを理解されたい。
【００６１】
上述のアルゴリズムへの拡張として、信頼できる入力は、複数のソースによって提供されてもよい。上述のアルゴリズムでは、各計算は、１つの入力ソース６のみからの信頼できる入力を含む。このアルゴリズムは、「コミットメント」としての証明から値ｘｌ＋１，．．．，ｘｎへの要素
【数４１】
0006644195.tif 000054
を考慮することによって、複数のソースからの入力をサポートするように拡張することができる。各追加の信頼できるソース６に対して、その信頼できるソース６から来る値だけに、形式（７）の別のコミットメントが含まれ、βに対する新しい値が含まれる。式（７）のコミットメントは指数ｌ＋１，．．．，ｍを持つｓ−ｐｏｗｅｒを使用するが、他の信頼できるソースからの入力は一般に、あるオフセットδに対してワイヤ・インデックスｌ＋１＋δ，．．．，ｍ＋δを持つことに留意されたい。これを説明するために、評価の鍵となる要素〈β・（ｓｋ＋ｒｖｖｋ＋ｒｗｗｋ＋ｒｙｙｋ）〉１が使用される。検証者１０は、これらのコミットメントのそれぞれについて、式（２０）〜（２４）のチェックを繰り返し、式（２５）のチェックは、コミットメントを含む値〈Ｖ〉１、〈Ｗ〉２、〈Ｙ〉１となるように調整される。同様に、第一の信頼できるソースによる入力及び計算の内部ワイヤに対して、別々のコミットメントが使用されてもよい。
【００６２】
図３〜図６は、本明細書に提示される技術に従って、中央機関ノード４、入力ノード６、作業者ノード８、及び検証者ノード１０をそれぞれ動作させる例示的な方法を示すフロー・チャートである。
【００６３】
したがって、図３は、中央機関ノード４（第１のノード４とも呼ばれる）の動作における方法又はステップのステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット２２及び／又はインターフェース回路２０によって実行することができる。いくつかの実施形態では、処理ユニット２２は、メモリ・ユニット２４に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
【００６４】
上述のように、中央機関ノード４は、システム内の他のノード６、８、１０によって使用されるキーを提供して、安全な方法で信頼できる入力上で計算を実行し、検証者ノード１０が計算の正しさを検証することを可能にする。
【００６５】
第１のステップ、ステップ１０１で、中央機関ノード４は、信頼できる入力コミットメント・キー（信頼できる入力評価キーとも呼ばれる）を決定する。信頼できる入力コミットメント・キーは、１つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、入力ノード６（信頼できるソースノード６）によって使用される。
【００６６】
中央機関ノード４は、計算評価キーも決定する（ステップ１０３）。計算評価キーは、１つ以上の信頼できる入力上の計算が正しいこと、及び１つ以上の信頼できる入力が計算で使用されたことの証明を決定する際に、１つ以上の作業者ノード８が使用するためのものである。
【００６７】
計算は、信頼できる入力を入力するための１つ以上のワイヤ（これは信頼できる入力ワイヤと呼ばれる）を含み、計算評価キーは、１つ以上の信頼できる入力ワイヤに対するキー・マテリアル（ｋｅｙ  ｍａｔｅｒｉａｌ）を含む。このキー・マテリアルは、トラップドア値ｓ、計算を表す多項式に依存しないトラップドア値に対応する点（又は時点）で評価された１つ以上の多項式、及び計算を表す多項式に依存するトラップドア値に対応する点（又は時点）で評価された１つ以上の多項式から導出される。
【００６８】
中央機関ノード４はまた、１つ以上の作業者ノード８による計算の結果を検証する際に検証者ノード１０によって使用される計算検証キーを決定する（ステップ１０５）。
【００６９】
ステップ１０１、１０３、及び１０５は、図３に示されているものと同じ又は異なる順序で実行することができるか、又は３つのすべてのステップを実質的に同時に実行することができることが理解されるであろう。
【００７０】
次に、中央機関ノード４は、信頼できる入力コミットメント・キー、計算評価キー、及び計算検証キーを公開する（ステップ１０７）。キーを公開することによって、中央機関ノード４は、システム２内の任意のノード６、８、１０にアクセスするためのキーを利用可能にする。キーを公開することは、他のノード６、８、１０によってアクセス可能な場所、例えば、他のノード６、８、１０によってアクセス可能な場合にはメモリ・ユニット２４にそれらを保存すること、又はそれらをインターネット又は他のネットワークを介してアクセス可能なサーバ又は他のコンピュータにそれらを保存することを意味する。上述のように、キーを公開することは、デジタル署名された形式であってもよい。
【００７１】
中央機関ノード４が異なる時刻に種々のキーを決定する実施形態において、中央機関ノード４は、全てのキーが公開前に導出されるまで待つのではなく、決定されたとおりに各キーを公開することができることが理解されるであろう。
【００７２】
いくつかの実施形態では、計算評価キーにおける各信頼できる入力ワイヤに対するキー・マテリアルは、秘密値βの積の符号化と、信頼できる入力ワイヤを表すトラップドア値に対応する点で評価された計算独立多項式と計算においてワイヤがどのように使用されるかを表すトラップドア値に対応する点で評価された１つ以上の計算依存多項式との組み合わせとを含む。秘密値の逆数β−１は、再び秘密値であるので、βで乗算する代わりに、すなわち、キー・マテリアルを構成するときに、βでの除算によってβによる乗算を等価に実行することができることが理解されるであろう。以下では、この代替的な処方を別途検討しない。
【００７３】
より具体的には、１つ以上の信頼できる入力ワイヤのためのキー・マテリアルは、以下を含むことができる。
【数４２】
0006644195.tif 000055
ここで、ｋは信頼できる各入力ワイヤを表すラベル、ｓはトラップドア値、β、ｒｖ及びｒｗはランダム値、各信頼される入力、ｖｋ、ｗｋ及びｙｋに対するｒｙ＝（ｒｖ・ｒｗ）は計算を表すｓで評価された多項式である。特に、上で定義したように、ｖｋは、それぞれの信頼できる入力ワイヤが左側の因数で使用される方法を表し、ｗｋは、それぞれの信頼できる入力ワイヤが右側の因数で使用される方法を表し、ｙｋは、計算〈ｆ〉１を構成する乗算の組の積の中でそれぞれの信頼できる入力ワイヤが使用される方法を表し、多項式ｆについては、上述のように、リング要素ｆ（ｓ）の加法準同型符号化を示す。式（２７）のキー・マテリアルは、式（９）に示すキー・マテリアルにも見出されることが理解されるであろう。さらに、変数
【数４３】
0006644195.tif 000056
の変化によって、式（２７）は以下のように等しく書けることが理解されよう。
【数４４】
0006644195.tif 000057
以下では、この代替的な処方を別途検討しない。
【００７４】
いくつかの実施形態では、アルゴリズムのセキュリティをさらに改善するために、中央機関ノード４はまた、信頼できる入力検証キーを決定し、公開することができる。信頼できる入力検証キーは、計算に入力される信頼できる入力の信頼性を検証する際に、検証者ノード１０によって使用される。このキーは、ステップ１０７で上記の他のキーと同じ方法で公開することができる。
【００７５】
図４は、信頼できるソース・ノード６（入力ノード６とも呼ばれる）の動作における方法又はステップにおけるステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット２２及び／又はインターフェース回路２０によって実行することができる。いくつかの実施形態では、処理ユニット２２は、メモリ・ユニット２４に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
【００７６】
信頼できるソース・ノード６は、計算に入力される１つ以上の信頼できる入力６を有する。
【００７７】
ステップ２０１において、信頼できるソース・ノード６は、信頼できる入力コミットメント・キーを取得する。上述のように、中央機関ノード４は、信頼できる入力コミットメント・キーを決定し、公開する。したがって、ステップ２０１において、信頼できるソース・ノード６は、公開された信頼できる入力コミットメント・キーを得ることができる。
【００７８】
次に、ステップ２０３において、信頼できるソース・ノード６は、信頼できる入力コミットメント・キーを使用して、計算に入力される１つ以上の信頼できる入力に対して信頼できる入力コミットメントを形成する。信頼できる入力コミットメントは、上式（７）で定義できる。
【００７９】
次に、信頼できるソース・ノード６は、信頼できる入力コミットメントを検証者ノード１０に送信する（ステップ２０５）。信頼できるソース・ノード６はまた、計算への入力のために、１つ以上の信頼できる入力を１つ以上の作業者ノード８に送信する。
【００８０】
図５は、作業者ノード８の動作における方法又はステップにおけるステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット２２及び／又はインターフェース回路２０によって実行することができる。いくつかの実施形態では、処理ユニット２２は、メモリ・ユニット２４に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
【００８１】
ステップ３０１において、作業者ノード８は、計算評価キーを取得する。上述のように、中央機関ノード４は、計算評価キーを決定し、公開する。従って、ステップ３０１において、作業者ノード８は、公開された計算評価キーを得ることができる。計算評価キーは、ステップ１０３を参照して上述したキー・マテリアルの様々な実施形態のいずれかを含むことができる。
【００８２】
次に、ステップ３０３において、作業者ノード８は、信頼できるソース・ノード６及び／又は検証者ノード１０から、計算のための１つ以上の信頼できる入力を受信する。
【００８３】
ステップ３０５において、作業者ノード８は、受信された１つ以上の信頼できる入力を用いて計算を評価し、計算の１つ以上の内部ワイヤ及び計算の１つ以上の出力ワイヤ（計算の出力を表す）に対する値を決定する。信頼できる入力は、計算の１つ以上の信頼できる入力ワイヤを使用して計算に入力される。
【００８４】
最後に、ステップ３０７において、作業者ノード８は、１つ以上の信頼できる入力の計算が正しいこと、及び１つ以上の信頼できる入力が計算で使用されたことの証明を決定する。この証明は、計算評価キーを用いて決定される。決定された証明は、例えば、情報が決定されたとき、又は証明情報のための検証者ノード１０からの要求に応答して、検証者ノード１０に送ることができる。
【００８５】
いくつかの実施形態では、作業者ノードは、計算を表す多項式に依存する１つ以上の多項式に基づいて、上述したキー・マテリアルを用いて計算を形成する、左側の因数、右側の因数、及び乗算の積に対する信頼できる入力ワイヤを含む一組の入力ワイヤの寄与の符号化（例えば、上述のＶ、Ｗ、Ｙ）を決定することによって、証明を決定する。
【００８６】
いくつかの実施形態では、証明は、信頼できる入力ワイヤに対するコミットメント及び寄与の符号化が、信頼できる入力ワイヤに対して一貫して同じ値を使用することを検証する際に使用される要素Ｚを含む。
【００８７】
いくつかの実施態様において、要素Ｚは、以下の線形結合である。
【数４５】
0006644195.tif 000058
使用される準同型符号化方式に従って、信頼できる入力ワイヤによって与えられる係数を有し、ここで、〈ｆ〉は、多項式ｆに対して、リング要素ｆ（ｓ）の加法準同型符号化である。
【００８８】
別の実施形態では、要素Ｚは以下を含む。
【数４６】
0006644195.tif 000059
ここで、〈ｆ〉は、多項式ｆに対して、リング要素ｆ（ｓ）の加法準同型符号化である。
【００８９】
他の代替的な実施形態では、要素Ｚは以下を含む。
【数４７】
0006644195.tif 000060
ここで〈ｆ〉は、多項式ｆに対して、リング要素ｆ（ｓ）の加法準同型の符号化である。
【００９０】
システム２が少なくとも１つの他の作業者ノード８を含む実装において（例えば、トリノキオに基づく実装において）、作業者ノード８は、ステップ３０５において、他の作業者ノード８との複数当事者計算として計算を評価する。これらの実施形態では、作業者ノード８は、ステップ３０７において、他の作業者ノード８との複数当事者計算として証明を決定することができる。また、これらの実施形態では、作業者ノード８は、信頼できる入力の秘密共有を受け取り、計算結果の秘密共有を決定することができるので、作業者ノード８は、証明の秘密共有を決定することができる（証明の他の秘密の部分は、他の作業者ノード８によって決定される）。
【００９１】
図６は、検証者ノード１０の動作における方法又はステップにおけるステップを示すフロー・チャートである。これらのステップは、必要に応じて、処理ユニット２２及び／又はインターフェース回路２０によって実行することができる。いくつかの実施形態では、処理ユニット２２は、メモリ・ユニット２４に記憶された適切なプログラム・コードを実行した結果として、ステップを実行することができる。
【００９２】
ステップ４０１において、検証者ノード１０は、信頼できる入力検証キー及び計算検証キーを取得する。上述したように、中央機関ノード４は、信頼できる入力検証キー及び計算検証キーを決定し、公開する。したがって、ステップ４０１において、検証者ノード１０は、公開された信頼できる入力検証キー及び公開された計算検証キーを得ることができる。信頼できる入力検証キー及び計算検証キーは、上記のようにすることができる（例えば、それぞれ、式（１０））。
【００９３】
ステップ４０３において、検証者ノード１０は、検証者ノード１０によって検証されるべき計算に信頼できる入力を提供した１つ以上の信頼できるソース・ノード６から信頼できる入力コミットメントを取得する。信頼できる入力コミットメントは、１つ以上の信頼できるソース・ノード６によって計算に入力された１つ以上の信頼できる入力の表現を含む。信頼できる入力コミットメントは、上式（７）に示されるようにすることができる。
【００９４】
ステップ４０５において、検証者ノード１０は、計算の出力と、１つ以上の作業者ノードによる１つ以上の信頼できる入力上の計算が正しいこと、及び１つ以上の信頼できる入力が計算に使用されたことの証明とを得る。出力及び証明は、計算を実行した作業者ノード８から得られる。
【００９５】
ステップ４０１、４０３、及び４０５は、図６に示されているものと同じ又は異なる順序で実行することができるか、又は３つのすべてのステップを実質的に同時に実行することができることが理解される。
【００９６】
次に、ステップ４０７において、検証者ノード１０は、１つ以上の信頼できる入力に関する計算が正しいかどうか、及び信頼できる入力が計算において使用されたかどうかを判定する。これは、信頼できる入力検証キー、計算検証キー、信頼できる入力コミットメント、及び証明を使用して決定される。
【００９７】
いくつかの実施例では、証明は、左側の因数、右側の因数、及び計算を形成する乗算の積に対する信頼できる入力ワイヤを含む一組のワイヤの寄与の符号化（例えば、上述のＶ、Ｗ、Ｙ）を含む。
【００９８】
いくつかの実施形態では、証明は、複数の符号化が互いに整合性があること、及び複数の符号化が計算のための信頼できる入力コミットメントと整合性があることを検証する際に使用される要素Ｚを含む。要素Ｚは、ステップ３０７の実施形態のいずれかを参照して上述したようにすることができる。
【００９９】
いくつかの実施形態では、ステップ４０７において、検証者ノード１０は、複数の符号化が互いに整合性があること、及び複数の符号化が計算のための信頼できる入力コミットメントと整合性があることを検証することによって、１つ以上の信頼できる入力の計算が正しいかどうか、及び信頼できる入力が計算において使用されたかどうかを決定する。
【０１００】
いくつかの実施形態では、ステップ４０７において、要素Ｚによって符号化された値が、左側の因数、右側の因数、計算を形成する乗算の積、及び信頼できる入力コミットメントに含まれる信頼できる入力ワイヤの表現の符号化を含むワイヤの組の寄与を符号化することによって符号化された値の合計によって掛けられるランダム値によって符号化された値と等しいか否かを検証者ノード１０は決定する。
【０１０１】
特定の実施形態では、ステップ４０７において、検証者ノード１０は、以下の数式を評価することによって、１つ以上の信頼できる入力に関する計算が正しいかどうか、及び信頼できる入力が計算において使用されたかどうかを決定し、
【数４８】
0006644195.tif 000061
そして、それらが等しいことを検証し、ここで、Ｉは信頼できる入力コミットメントに含まれる信頼できる入力ワイヤの表現であり、Ｖｍｉｄ、Ｗｍｉｄ、Ｙｍｉｄは信頼できる入力ワイヤを含む入力ワイヤの組の、左側の因数、右側の因数、計算を形成する乗算の積に対する寄与の表現であり、βはランダム値であり、ｚは要素Ｚによって符号化される値であり、〈・〉１、〈・〉２はＩ、Ｖｍｉｄ、Ｗｍｉｄ、Ｙｍｉｄ、β及びｚを符号化するために使用される準同型符号化であり、及びｅは、２つの符号化で定義される双線形マップである。
【０１０２】
いくつかの実施形態において、準同型符号化〈ｘ〉１、〈ｘ〉２は、
（外１３）
0006644195.tif 000062
でｇ１、ｇ２離散対数群の生成元を備え、ｅは、暗号ペアリングである。
【０１０３】
検証者ノード１０は、以下のように評価することにより式（３１）を評価することができる。
【数４９】
0006644195.tif 000063
【０１０４】
いくつかの実施形態では、準同型符号化〈ｘ〉１、〈ｘ〉２は両方とも、同じ準同型暗号化スキームを持つ同じ公開鍵の下での暗号化であり、ｅ（〈ｘ〉１，〈ｙ〉２）は復号して結果を乗算することによって得られる値ｘ・ｙ・ｚを表し、ｅ（〈ｘ〉１，〈ｙ〉２）Ｚは、〈ｘ〉１、〈ｙ〉２を復号して結果をｚで乗算することによって得られる値を表す。
【０１０５】
準同型符号化が離散対数群からの要素であり、双線形マップｅが離散対数群上の暗号ペアリングである上述の説明において、いくつかのバリエーションが可能であることが理解されるであろう。特に、対称的ペアリング（この場合、２つの離散対数群
（外１４）
0006644195.tif 000064
は同じである）又は非対称的ペアリング（この場合、２つの離散対数群
（外１５）
0006644195.tif 000065
は異なる）を用いることが可能である。また、様々なキー、コミットメント、証明における様々な要素に使用される離散対数群を（独立して）変更することも可能である。例えば、それぞれのキー・マテリアルが〈ｒｖｖｉ〉１、〈ｒｖｔ〉１、〈αｖ〉１の代わりに〈ｒｖｖｉ〉２、〈ｒｖｔ〉２、〈αｖ〉２の符号化を適切に含むように変更され、検証手順がとりわけｅ（〈αｖ〉１，〈Ｖｍｉｄ〉２）＝ｅ（〈αｖＶｍｉｄ〉１，〈１〉２）をチェックするように変更される場合、計算証明が、証明要素が〈Ｖｍｉｄ〉１＝Σｉｘｉ・〈ｒｖｖｉ〉１＋δｖ・〈ｒｖｔ〉１の代わりに〈Ｖｍｉｄ〉２＝Σｉｘｉ・〈ｒｖｖｉ〉２＋δｖ・〈ｒｖｔ〉２を含む場合がある。
【０１０６】
上述のノード、システム、及び方法は、いくつかの潜在的な応用を有する。いくつかの例を以下に概説する。
【０１０７】
ウェアラブル・バイオセンサは、顧客のデータを測定し、それによって信頼できるソースとして機能し、保険会社は、顧客のための保険料（ｐｒｅｍｉｕｍ）を評価するために、このデータに関する統計を入手したい。バイオセンサは、データをアウトソースする必要があるため、それ自体でデータを計算することはできないが、保険会社は、正確性を確信したいと考えている。ここで、本明細書に記載される方法を調整する当事者は、中央機関及びバイオセンサの製造者であり得、データの処理は、正確性が依然として保証されている間に、顧客にアウトソーシングされ得る。
【０１０８】
政府は、公衆に情報を提供するために保健統計を定期的に公表している。これらの統計は、正確であることを公衆が確信するために、病院や他の医療機関によってデータに関して認証することができる。この場合、本明細書に記載されている方法を調整する当事者は、信頼できる情報源（医療機関）及び作業者（政府）の両方から独立した信頼できる当事者として行動することができる。
【０１０９】
スマート・メータは読み取り値を生成するが、これに関する集約レポートを計算する計算能力を持たないか、又は集約レポートのフォーマットが時間とともに変化する可能性がある。したがって、これはスマート・メータの所有者にアウトソーシングされる。しかし、エネルギー会社は、集約レポートが自身の電力料金を削減するために所有者によって操作されていないことを確認したいと考えている。
【０１１０】
同様に、このスキームは従量制の自動車保険にも利用できる。
【０１１１】
簿記係は、組織の財務データを認証する。証明に基づいて、監査役（ａｕｄｉｔｏｒ）は、特定のプロセスが正しく実施されたことを確認することができる。
【０１１２】
このシステムは、販売端末から提供される決済情報に基づいて、店舗が消費者の購入に関する詳細を知らないまま（店舗が販売端末内で何が起きているのか分からないと仮定すると）、消費者にロイヤルティ割引を適用することができる。
【０１１３】
システムは、複数の検証可能な計算が共通の共有状態を参照することを可能にするように配置され得る。例えば、１つの検証可能な計算は、第２の検証可能な計算への入力として使用される出力ｘを有することができる。この場合、ｘは、第１の検証可能な計算及び第２の検証可能な計算の両方に対する信頼できる入力と見なすことができ、本明細書に記載される技術は、検証者が、ｘを知る必要なく、同じ値ｘが両方の計算において使用されたことをチェックすることを可能にする。
【０１１４】
イーサリアム・ブロックチェーンのような分散された台帳では、検証可能な計算は、取引の内容を隠したままで、且つ取引の記述の複雑さから独立した検証努力を維持しながら、取引の正確性を証明する手段として使用することができる。このシステムは、このような検証可能な計算を、第三者による信頼できる入力に効率的に戻って参照することを可能にし、そして、それは、おそらく異なるタイプの複数のこのような検証可能な計算を、それを開示することなく、状態を共有することを可能にする。
【０１１５】
従って、信頼できるソースがそのデータの計算を信頼できない作業者にアウトソースすることを可能にする改良された技術及びアルゴリズムが提供され、任意の外部の団体は、作業者と検証者の両方のオーバーヘッドを最小化しつつ、計算結果の正確性を暗号的に検証することができる。
【０１１６】
開示された実施形態に対する変更は、図面、開示及び添付の特許請求の範囲の研究から、本明細書に記載された原理及び技術を実施する際に当業者によって理解され、達成され得る。請求項において、単語「含む（ｃｏｍｐｒｉｓｉｎｇ）」は、他の要素又はステップを除外せず、不定冠詞「１つの（ａ）」又は「１つの（ａｎ）」は、複数を除外しない。単一のプロセッサ又は他のユニットは、請求項に記載されたいくつかの項目の機能を果たしてもよい。特定の手段が相互に異なる従属クレームに記載されているという単なる事実は、これらの手段の組み合わせが有利に利用できないことを示すものではない。コンピュータ・プログラムは、他のハードウェアと共に又はその一部として供給される光記憶媒体又は固体媒体のような適切な媒体上に記憶又は配布することができるが、インターネット又は他の有線若しくは無線通信システムのような他の形態で配布することもできる。請求項中の参照符号は、その範囲を限定するものと解釈してはならない。
【要約】
１つの態様によると、システムで使用される第１のノードであって、システムは、１つ以上の信頼できるソース・ノード、１つ以上の作業者ノード、及び検証者ノードを含み、第１のノードは、１つ以上の作業者ノードによって評価される計算に入力される信頼できる入力に対する信頼できる入力コミットメント・キーを決定することであって、信頼できる入力コミットメント・キーは、１つ以上の信頼できる入力の信頼できる入力コミットメントを形成する際に、１つ以上の信頼できるソース・ノードによって使用される、決定し、１つ以上の信頼できる入力上の計算が正しく、且つ１つ以上の信頼できる入力が計算に使用されたことの証明を決定する際に１つ以上の作業者ノードによる使用に対して計算評価キーを決定することであって、計算評価キーは、計算に１つ以上の信頼できる入力を入力するための１つ以上の信頼できる入力ワイヤに対するキー・マテリアルを含み、キー・マテリアルは、トラップドア値、計算を表す多項式とは独立したトラップドア値に対応する点において評価された１つ以上の多項式、及び計算を表すトラップドア値に対応する点において評価された１つ以上の多項式から導出される、計算評価キーを決定し、１つ以上の作業者ノードによる計算の結果を検証する際に、検証者ノードによって使用される計算検証キーを決定し、信頼できる入力コミットメント・キー、計算評価キー及び計算検証キーを公開する、ように構成される、システムが提供される。第１のノードを動作させる対応する方法が提供される。また、他の態様は、信頼できるソース・ノード、作業者ノード及び検証者ノード、ならびにそれらを動作する方法を提供する。【図１】
0006644195.tif 000066
【図２】
0006644195.tif 000067
【図３】
0006644195.tif 000068
【図４】
0006644195.tif 000069
【図５】
0006644195.tif 000070
【図６】
0006644195.tif 000071