特許第5925969号(P5925969)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルカテル−ルーセントの特許一覧

特許59259692パーティ秘匿関数計算向けの入力整合性検証
<>
  • 特許5925969-2パーティ秘匿関数計算向けの入力整合性検証 図000002
  • 特許5925969-2パーティ秘匿関数計算向けの入力整合性検証 図000003
  • 特許5925969-2パーティ秘匿関数計算向けの入力整合性検証 図000004
  • 特許5925969-2パーティ秘匿関数計算向けの入力整合性検証 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5925969
(24)【登録日】2016年4月28日
(45)【発行日】2016年5月25日
(54)【発明の名称】2パーティ秘匿関数計算向けの入力整合性検証
(51)【国際特許分類】
   G09C 1/00 20060101AFI20160516BHJP
   H04L 9/30 20060101ALI20160516BHJP
【FI】
   G09C1/00 650Z
   H04L9/00 663Z
【請求項の数】10
【全頁数】12
(21)【出願番号】特願2015-534553(P2015-534553)
(86)(22)【出願日】2013年9月18日
(65)【公表番号】特表2015-530623(P2015-530623A)
(43)【公表日】2015年10月15日
(86)【国際出願番号】US2013060323
(87)【国際公開番号】WO2014052113
(87)【国際公開日】20140403
【審査請求日】2015年5月25日
(31)【優先権主張番号】13/630,568
(32)【優先日】2012年9月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】391030332
【氏名又は名称】アルカテル−ルーセント
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】コレスニコフ,ブラジーミル・ワイ
【審査官】 中里 裕正
(56)【参考文献】
【文献】 特許第4835831(JP,B1)
【文献】 米国特許出願公開第2012/0070000(US,A1)
【文献】 米国特許出願公開第2012/0213359(US,A1)
【文献】 Lindell1, Y. and Pinkas, B.,An Efficient Protocol for Secure Two-Party Computation in the Presence of Malicious Adversaries,Lecture Notes in Computer Science,2007年,Vol.4515,p.52-78
【文献】 Jarecki, S. and Shmatikov, V.,Efficient Two-Party Secure Computationon Committed Inputs,Lecture Notes in Computer Science,2007年,Vol.4515,p.97-114
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/30
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
複数の実行iに対する関数を評価するために、第1のパーティによって、第2のパーティと共に実行される2パーティ秘匿関数計算(SFE)のための方法であって、
複数の前記実行iに対して、
前記関数に対応するガーブル回路GCを計算するステップと、
前記第2のパーティの入力xの暗号化されたバージョンkであるワイヤ秘密を提供するために、紛失通信(OT)プロトコルを使用して、前記第2のパーティと通信するステップであって、第2のパーティが、前記複数の実行に対する、前記第2のパーティの入力xの前記暗号化されたバージョンkを格納する、通信するステップと、
出力の計算のために、計算されたガーブル回路GCを前記第2のパーティに送信するステップと、
前記出力を前記第2のパーティから受信するステップと
を含み、また、
前記実行のうちの2つに対する、前記第2のパーティの前記入力xのその後の検証に対して、
検証されるガーブル回路の入力鍵に基づいて、検証関数に対応する検査ガーブル回路CGCを計算するステップと、
検証出力の計算のために、計算された検査ガーブル回路CGCを前記第2のパーティに送信するステップであって、前記第2のパーティが、前記2つの実行に対する、前記格納された暗号化されたバージョンkを前記検査ガーブル回路CGCに適用することにより、前記検証出力を計算する、送信するステップと、
前記検証出力を前記第2のパーティから受信するステップと、
前記2つの実行に対する、前記第2のパーティの前記入力xを検証するために、前記検証出力を評価するステップと
を含む、方法。
【請求項2】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項3】
複数の実行iに対する関数を評価するために、第1のパーティによって、第2のパーティと共に実行される2パーティ秘匿関数計算(SFE)のための、有形のマシン可読および記録可能記憶媒体であって、1つまたは複数のソフトウェアプログラムが、1つまたは複数の処理デバイスによって実行されると、請求項1に記載の方法のステップを実施する、有形のマシン可読および記録可能記憶媒体。
【請求項4】
複数の実行iに対する関数を評価するために、第2のパーティによって、第1のパーティと共に実行される2パーティ秘匿関数計算(SFE)のための方法であって、
複数の前記実行iに対して、
前記関数に対応するガーブル回路GCを前記第1のパーティから受信するステップと、
前記第2のパーティの入力xの暗号化されたバージョンkであるワイヤ秘密を受信するために、紛失通信(OT)プロトコルを使用して、前記第1のパーティと通信するステップと、
前記複数の実行に対する、前記第2のパーティの入力xの前記暗号化されたバージョンkを格納するステップと、
出力を計算するために、入力を、計算されたガーブル回路GCに適用するステップと、
前記出力を前記第1のパーティに提供するステップと
を含み、また、
前記実行のうちの2つに対する、前記第2のパーティの前記入力xの、前記第1のパーティによるその後の検証に対して、
検証関数に対応する検査ガーブル回路CGCを前記第1のパーティから受信するステップと、
前記2つの実行に対する、前記格納された暗号化されたバージョンkを検査ガーブル回路CGCに適用することにより、検証出力を計算するステップと、
前記2つの実行に対する、前記第2のパーティの前記入力xを検証するために、前記検証出力を前記第1のパーティに提供するステップと
を含む、方法。
【請求項5】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの1つまたは複数を含む、請求項4に記載の方法。
【請求項6】
複数の実行iに対する関数を評価するために、第2のパーティによって、第1のパーティと共に実行される2パーティ秘匿関数計算(SFE)のための、有形のマシン可読および記録可能記憶媒体であって、1つまたは複数のソフトウェアプログラムが、1つまたは複数の処理デバイスによって実行されると、請求項4に記載の方法のステップを実施する、有形のマシン可読および記録可能記憶媒体。
【請求項7】
複数の実行iに対する関数を評価するための、第1のパーティによる、第2のパーティと共に用いる2パーティ秘匿関数計算(SFE)のためのシステムであって、
メモリと、
メモリに結合された少なくとも1つのハードウェアデバイスであって、
複数の前記実行iに対して、
前記関数に対応するガーブル回路GCを計算し、
前記第2のパーティの入力xの暗号化されたバージョンkであるワイヤ秘密を提供するために、紛失通信(OT)プロトコルを使用して、前記第2のパーティと通信し、第2のパーティが、前記複数の実行に対する、前記第2のパーティの入力xの前記暗号化されたバージョンkを格納し、
出力の計算のために、計算されたガーブル回路GCを前記第2のパーティに送信し、
前記出力を前記第2のパーティから受信する
ように動作し、また、
前記実行のうちの2つに対する、前記第2のパーティの前記入力xのその後の検証に対して、
検証されているガーブル回路の入力鍵に基づいて、検証関数に対応する検査ガーブル回路CGCを計算し、
検証出力の計算のために、計算された検査ガーブル回路CGCを前記第2のパーティに送信し、前記第2のパーティが、前記2つの実行に対する、前記格納された暗号化されたバージョンkを前記検査ガーブル回路CGCに適用することにより、前記検証出力を計算し、
前記検証出力を前記第2のパーティから受信し、
前記2つの実行に対する、前記第2のパーティの前記入力xを検証するために、前記検証出力を評価する
ように動作するハードウェアデバイスと
を備える、システム。
【請求項8】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの1つまたは複数を含む、請求項7に記載のシステム。
【請求項9】
複数の実行iに対する関数を評価するために、第2のパーティによって、第1のパーティと共に実行される2パーティ秘匿関数計算(SFE)のためのシステムであって、
メモリと、
メモリに結合された少なくとも1つのハードウェアデバイスであって、
複数の前記実行iに対して、
前記関数に対応するガーブル回路GCを前記第1のパーティから受信し、
前記第2のパーティの入力xの暗号化されたバージョンkであるワイヤ秘密を受信するために、紛失通信(OT)プロトコルを使用して、前記第1のパーティと通信し、
前記複数の実行に対する、前記第2のパーティの入力xの前記暗号化されたバージョンkを格納し、
出力を計算するために、入力を、計算されたガーブル回路GCに適用し、
前記出力を前記第1のパーティに提供する
ように動作し、また、
前記実行のうちの2つに対する、前記第2のパーティの前記入力xの、前記第1のパーティによるその後の検証に対して、
検証関数に対応する検査ガーブル回路CGCを前記第1のパーティから受信し、
前記2つの実行に対する、前記格納された暗号化されたバージョンkを検査ガーブル回路CGCに適用することにより、検証出力を計算し、
前記2つの実行に対する、前記第2のパーティの前記入力xを検証するために、前記検証出力を前記第1のパーティに提供する
ように動作するハードウェアデバイスと
を備える、システム。
【請求項10】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの1つまたは複数を含む、請求項9に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
政府の権利の記述
本発明は、内務省(DOI)の契約番号第D11PC20194号によるIntelligence Advanced Research Projects Activity(IARPA)の下で実行される作業に関連して実施されたものである。
【0002】
本発明は、一般に、電子トランザクションのセキュリティを保護するための技法に関し、より詳細には、そうした電子トランザクションのパーティに秘匿性を提供する秘匿関数計算(SFE:Secure Function Evaluation)技法に関する。
【背景技術】
【0003】
一般的な2パーティ秘匿関数計算(SFE)は、2つのパーティが、xとyの両方の秘匿性を維持しつつ、任意の関数をそれぞれの入力xおよび入力yで評価できるようにする。効率的なSFEアルゴリズムは、参加者の相互不信によって以前は不可能であった様々な電子トランザクションを可能にする。例えば、SFEアルゴリズムは、オークション、契約時の署名、および分散データベースマイニングアプリケーションにおいて利用されている。セキュアな計算の問題は、半誠実な(semi−honest)関係者と悪意のある関係者の両方に対して解決されている。一般に、半誠実なサーバにアクセスすることで、悪意のある回路生成の問題を解決する。計算および通信のリソースが増加してきたので、SFEは、一般的な利用にとってまさに実用的なものとなった。悪意のあるSFEモデルは、関係者の入力の完全な秘匿性を保証する。汎用的な既存の2パーティSFEアルゴリズムは通常、ガーブル回路(GC:Garbled Circuit)を利用する。GCの詳細な説明は、例えば、Y.LindellおよびB.Pinkas、「A Proof of Yao’s Protocol for Secure Two−Party Computation」、Journal of Cryptology、22(2)、161−188頁(2009)を参照されたい。
【0004】
ガーブル回路の実装下では、計算関数を表すブール回路は、第1のパーティによって暗号化され、第2のパーティに評価のために与えられる。評価は暗号化の下で進むので、第2のパーティはプロトコルから逸脱することはできない。ガーブル回路に基づくそうした汎用的な既存の2パーティSFEアルゴリズムは、2つのパーティのトランザクションの秘匿性およびセキュリティを著しく改善したが、克服すれば、汎用的な2パーティSFEアルゴリズムの効率性、有用性、および/またはセキュリティをさらに改善することができるであろういくつかの制約が残っている。例えば、同じパーティ間の複数のSFE実行の場合、実行間の入力整合性を検証することが必要である。しかし、第2のパーティは、それぞれの前の入力を入れ替える(すなわち、実際の入力をそれぞれに有利になる別の値に置き換える)ことにより、攻撃を実行することができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Y.LindellおよびB.Pinkas、「A Proof of Yao’s Protocol for Secure Two−Party Computation」、Journal of Cryptology、22(2)、161−188頁(2009)
【非特許文献2】Andrew C.Yao、「Protocols for Secure Computations」、Proc. 23rd IEEE Symp. on Foundations of Comp. Science、160−164頁、(Chicago、1982)
【非特許文献3】Andrew C.Yao、「How to Generate and Exchange Secrets」、Proc. 27th IEEE Symp. on Foundations of Comp. Science、162−167頁、(Toronto、1986)
【非特許文献4】D.Harnikらによる「OT−Combiners via Secure Computation」、TCC 5th Theory of Cryptography Conference 2008、(2008年3月)、Lecture Notes in Computer Science、Vol.4948、393−411頁、(2008)
【非特許文献5】Y.Ishaiらによる「Extending Oblivious Transfers Efficiently」、Advances in Cryptology − CRYPTO 2003、(2003年8月)、Lecture Notes in Computer Science、Vol.2729、145−161頁、(2003)
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、複数の実行にわたる、悪意のある関係者の入力整合性を確保するための技法が必要である。パーティが、それぞれの人が前の実行で使用されたのと同じまたは関連する(パーティ間での合意どおりの)入力を使用していることを証明できるようにする、入力整合性を確保するための技法がさらに必要である。
【課題を解決するための手段】
【0007】
一般に、2パーティ秘匿関数計算向けの入力整合性検証のための方法および装置が提供される。本発明の一態様によれば、2パーティ秘匿関数計算(SFE)は、複数の実行iに対する関数を評価するために、第1のパーティによって、第2のパーティと共に実行される。複数の実行iに対して、第1のパーティは、関数に対応するガーブル回路GCを計算し、第2のパーティの入力xの暗号化されたバージョンkであるワイヤ秘密(wire secret)を提供するために、紛失通信(OT:Oblivious Transfer)プロトコルを使用して、第2のパーティと通信し、第2のパーティが、複数の実行に対する、第2のパーティの入力xの暗号化されたバージョンkを格納し、出力の計算のために、計算されたガーブル回路GCを第2のパーティに送信し、出力を第2のパーティから受信する。実行のうちの2つに対する、第2のパーティの入力xのその後の検証に対して、第1のパーティは、検証されるガーブル回路の入力鍵に基づいて、検証関数(verification function)に対応する検査ガーブル回路(check garbled circuit)CGCを計算し、検証出力の計算のために、計算された検査ガーブル回路CGCを第2のパーティに送信し、第2のパーティが、2つの実行に対する、格納された暗号化されたバージョンkを適用することにより、検証出力を計算し、検証出力を第2のパーティから受信し、2つの実行に対する、第2のパーティの入力xを検証するために、検証出力を評価する。
【0008】
本発明の別の態様によれば、2パーティ秘匿関数計算(SFE)は、複数の実行iに対する関数を評価するために、第2のパーティによって、第1のパーティと共に実行される。複数の実行iに対して、第2のパーティは、関数に対応するガーブル回路GCを第1のパーティから受信し、第2のパーティの入力xの暗号化されたバージョンkであるワイヤ秘密を受信するために、紛失通信(OT)プロトコルを使用して、第1のパーティと通信し、複数の実行に対する、第2のパーティの入力xの暗号化されたバージョンkを格納し、出力を計算するために、入力を、計算されたガーブル回路GCに適用し、出力を第1のパーティに提供する。実行のうちの2つに対する、第2のパーティの入力xの、第1のパーティによるその後の検証に対して、第2のパーティは、検証関数に対応する検査ガーブル回路CGCを第1のパーティから受信し、2つの実行に対する、格納された暗号化されたバージョンkを検査ガーブル回路CGCに適用することにより、検証出力を計算し、2つの実行に対する、第2のパーティの入力xを検証するために、検証出力を第1のパーティに提供する。
【0009】
例えば、検証関数は、等値関数(equality function)、より大なり関数(greater than function)、より小なり関数(less than function)、および両パーティによって合意された検証関数を含む。
【0010】
以下の詳細な説明および図面を参照することにより、本発明、ならびに本発明のさらなる特徴および利点がより完全に理解されよう。
【図面の簡単な説明】
【0011】
図1】本発明のプロセスを実装することができる、改良された汎用的な2パーティSFEシステムのブロック図である。
図2】本発明の態様を組み込んでいる2パーティ秘匿関数計算プロセスの例示的な実装形態を示す流れ図である。
図3】本発明の態様を組み込んでいる2パーティSFE入力整合性検証プロセスの例示的な実装形態を示す流れ図である。
図4】所与のペアの実行に対する、本発明の態様による入力整合性検証を示す図である。
【発明を実施するための形態】
【0012】
本発明の態様は、複数の実行にわたる秘匿関数計算の、少なくとも1つのパーティの入力整合性を確保するための方法および装置を提供する。第1のパーティP1(サーバ)および第2のパーティP2(例えば、顧客またはクライアント)が、複数の実行にわたる秘匿関数計算を使用して情報を交換する、例えば、オンラインバンキング日付記入アプリケーションについて考えてみてほしい。いったんある入力が第2のパーティP2によって第1のパーティP1との通信で使用されると、第1のパーティP1は、将来の通信で、第2のパーティP2に同じ入力(または、例えば、増加する入力)を供給するようにいつも依頼することができる。第1のパーティP1は、2つのSFE評価に対して、第2のパーティP2の特定の入力ワイヤが同じ平文値(または、より大きな値)に設定されていることを検証することができる。
【0013】
図1は、本発明のプロセスを実装することができる、改良された汎用的な2パーティSFEシステム100のブロック図である。図1に示すように、メモリ130は、本明細書で開示された、汎用的な2パーティSFEの方法、ステップ、および機能(集合的に、図1の150として示され、また図2から図4と共にさらに後述される)を実装するために、プロセッサ120を構成する。メモリ130は、分散させたり、ローカルなものとすることができ、またプロセッサ120は、分散させたり、単一のものとすることができる。メモリ130は、電気的、磁気的、もしくは光学的メモリとして、またはそれらの種類のもしくは他の種類の記憶デバイスの任意の組合せとして実装することができる。プロセッサ120を構成する各分散プロセッサは、一般に、独自のアドレス可能メモリ空間を含むことに留意されたい。コンピュータシステム100の一部またはすべては、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピューティングデバイス、特定用途向け回路、または汎用集積回路内に組み込むことができることにも留意されたい。
【0014】
汎用的な2パーティSFEアルゴリズム
既存の汎用的な2パーティSFEアルゴリズムは通常、ガーブル回路(GC:Garbled Circuit)を利用する。GCの詳細な説明は、例えば、Andrew C.Yao、「Protocols for Secure Computations」、Proc. 23rd IEEE Symp. on Foundations of Comp. Science、160−164頁、(Chicago、1982)、またはAndrew C.Yao、「How to Generate and Exchange Secrets」、Proc. 27th IEEE Symp. on Foundations of Comp. Science、162−167頁、(Toronto、1986)を参照されたい。
【0015】
GCは、悪意のある回路評価器および半誠実な回路構成器に対してセキュアであり、したがって半誠実なサーバSに、(両方のクライアントによってSに伝えられているような)選ばれた関数のためのガーブル回路を生成させる。入力に関しては、OT拡張機能が、悪意のある受信器および半誠実なサーバに関してセキュアであるために使用される。例えば、D.Harnikらによる「OT−Combiners via Secure Computation」、TCC 5th Theory of Cryptography Conference 2008、(2008年3月)、Lecture Notes in Computer Science、Vol.4948、393−411頁、(2008)および/またはY.Ishaiらによる「Extending Oblivious Transfers Efficiently」、Advances in Cryptology − CRYPTO 2003、(2003年8月)、Lecture Notes in Computer Science、Vol.2729、145−161頁、(2003)を参照されたい。
【0016】
図2は、本発明の態様を組み込んでいる2パーティ秘匿関数計算プロセス200の例示的な実装形態を示す流れ図である。2パーティ秘匿関数計算プロセス200は、所与の実行iに対する、また例示的な16ビット入力に対する関数を評価するために、第1のパーティP1(サーバ)および第2のパーティP2(例えば、顧客またはクライアント)によって実行される。図2に示すように、ステップ210の間、第1のパーティP1は最初に、関数に対応するガーブル回路を計算する。その後、ステップ220の間、第1のパーティP1は、第1のパーティP1が第2のパーティP2の入力xi,1…xi,16を知ることができないよう、所与の実行iに対する、また例示的な16ビット入力に対する、第2のパーティP2の入力xi,1…xi,16の暗号化されたバージョンki,1…ki,16であるワイヤ秘密を提供するために、紛失通信(OT)プロトコルを使用して、第2のパーティP2と通信する。
【0017】
ステップ230の間、第1のパーティP1は、次いで、出力の計算のために、計算されたガーブル回路を第2のパーティP2に送信する。ステップ240の間、第2のパーティP2は、次いで、出力を計算し、その出力を第1のパーティP1に送信する。ステップ250の間、第2のパーティは、第2のパーティP2の入力xi,1…xi,16の暗号化されたバージョンki,1…ki,16を格納する。
【0018】
このように、パーティ1およびパーティ2が共同計算の次の段階に携わることを望むたび、パーティ1(サーバ)は、図2の2パーティ秘匿関数計算プロセス200による評価のために、計算関数向けのGCを生成し、パーティ2(クライアント)に送信することになる。
【0019】
前述のとおり、例示的な2パーティ秘匿関数計算プロセス200は、パーティ2が、入力整合性が実現されることになる実行iにわたって、入力ワイヤ暗号化結果ki,1…ki,16を格納することを要求する。パーティ1が入力整合性の検査を希望する時はいつも、パーティ1は、図3と共にさらに後述されるように、GC入力が、検査される実行におけるのと同じ暗号化で暗号化される検査ガーブル回路を生成することになる。
【0020】
この検査は、確率的な方法で、関係者1によって希望されるのと同じまれな頻度または頻繁な頻度で、実施することができる。すなわち、第1のパーティP1は思いどおりに、それぞれの人が、いつ、どの実行を検査するかを選択してもよい。検査の失敗は、第2のP2が不正を働いていることを意味することになり、罰則措置をもたらすはずである。さらに、第1のパーティP1は、検査のために、過去の任意の実行を選択することができ、したがって、第2のパーティP2は、それぞれの人がその不正から「逃れた」か否かを知ることはない。
【0021】
第2のパーティP2は、暗号化の下で操作をしており、GC評価から逸脱することはできないので、検査の結果を偽ることはできなくなる。第1のパーティP1は、GC評価の特性のため、入力整合性検査の結果以上の追加の何かを知ることはない。
【0022】
図3は、本発明の態様を組み込んでいる2パーティSFE入力整合性検証プロセス300の例示的な実装形態を示す流れ図である。第1のパーティP1が、所与のペアの実行iに対する、また例示的な16ビット入力に対する、第2のパーティP2(例えば、顧客またはクライアント)の入力整合性検証の実行を希望すると、2パーティSFE入力整合性検証プロセス300は、第1のパーティP1(サーバ)によって開始される。例えば、第2のパーティP2の入力は、16ビットの整数である場合があり、第1のパーティP1は、第2のパーティP2の第2の入力が、第2のパーティP2の第1の入力よりも大きく(またはそれと等しく)なるようにしようとする。
【0023】
図3に示すように、ステップ310の間、第1のパーティP1は、所望の検証関数(例えば、等値関数、またはより大なり関数/より小なり関数)について、検査GCを計算する。ステップ320の間、第1のパーティP1は、検証出力の計算のために、計算された検査GCを第2のパーティP2に送信する。計算された検査GCは、検査されるGCを生成するのに使用された入力ワイヤ鍵(input wire key)に関連して計算される。具体的には、検査GCへの入力鍵は、まさに、検査される実行においてSがP2のために生成した入力鍵となる。
【0024】
ステップ330の間、第2のパーティP2は、第1のパーティP1によって要求された2つの実行iに対する、第2のパーティの入力xi,1…xi,16の事前に格納された暗号化されたバージョンki,1…ki,16を適用することにより、検証出力を計算する。ステップ340の間、第2のパーティP2は、計算された検証出力を第1のパーティP1に送信する。ステップ350の間、第1のパーティは、次いで、検証出力を評価する。
【0025】
図4は、所与のペアの実行i=1およびi=2に対する、本発明の態様による入力整合性検証400を示す。図2と共に前述されたように、第1のパーティP1は、各実行に対して、ガーブル回路を生成する。図4に示すように、第1のパーティP1は、第1の実行に対して、ガーブル回路GC1を、第2の実行(必ずしも連続しているわけではない)に対して、ガーブル回路GC2を生成し、また各実行に対して、第1のパーティP1は、出力の計算のために、生成されたガーブル回路を第2のパーティに送信する。パーティは、第2のパーティが、所与の実行iに対する、また例示的な16ビット入力に対する、第2のパーティP2の入力xi,1…xi,16の暗号化されたバージョンki,1…ki,16を取得するように、紛失通信を使用して、その入力を交換する。したがって、第1の実行(i=1)の場合、第2のパーティP2は、その実行入力の暗号化されたバージョンki,1…ki,16を取得し、第2の実行(i=2)の場合、第2のパーティP2は、その実行入力の暗号化されたバージョンk2,1…k2,16を取得する。
【0026】
例示的な2パーティ秘匿関数計算プロセス200によれば、第2のパーティP2は、第1のパーティと共に、所与の実行のために、その入力xi,1…xi,16をガーブル回路に適用し、また後に起こり得る検証のために、その入力の暗号化されたバージョンki,1…ki,16を格納する。
【0027】
図3と共に前述されたように、第1のパーティP1が、所与のペアの実行iに対する、また例示的な16ビット入力に対する、第2のパーティP2(例えば、顧客またはクライアント)の入力整合性検証の実行を希望すると、2パーティSFE入力整合性検証プロセス300は、第1のパーティP1(サーバ)によって開始される。例えば、第2のパーティP2の入力が検証関数によって関連付けられる必要がある2つの実行がある。
【0028】
例えば、第2のパーティP2の入力は、16ビットの整数である場合があり、第1のパーティP1は、第2のパーティP2の第2の入力が、第2のパーティP2の第1の入力よりも大きく(またはそれと等しく)なるようにしようとする。第2のパーティP2の第1の入力がx1,1…x1,16であり、第2のパーティP2の第2の入力がx2,1…x2,16であると想定されたい。前述のとおり、2パーティ秘匿関数計算プロセス200によるGCベースの実行1および実行2のそれぞれの一部として、第1のパーティP1は、第2のパーティP2の入力ビットのそれぞれの2つの値(0および1)のそれぞれの暗号化結果を生成することになり、第2のパーティP2は、自身の入力に対応する暗号化結果を取得することになる(合計でP2は、自身の2つの16ビット入力に対応する、2×16の暗号化結果を受信することになる)。そこで、第1のパーティP1が、P2がそれぞれの人の入力を正しく送信したことを検査しようとする場合、第1のパーティP1は、暗号化された32入力ビット(k値)を取り、これらの入力で検査関数を計算する検査回路GC450を生成することになる。例示的な実施形態では、検査回路GC450は、x2がx1よりも大きいことを検査することになる。検査関数GC450の暗号化された出力は、ステップ340(図3)の間、第2のパーティP2によって計算され、ステップ350(図3)の間、暗号化および検証のために、第1のパーティP1に送り返される。
【0029】
システムおよび製品の詳細
図2および図3は例示的なステップシーケンスを示しているが、本発明の一実施形態では、シーケンスが変更されてもよい。アルゴリズムの様々な置換えが本発明の代替の実施形態として考えられる。
【0030】
本発明の例示的な実施形態がソフトウェアプログラムの処理ステップに関連して説明されてきたが、当業者には明らかであろうように、様々な機能が、ソフトウェアプログラムの処理ステップとして、回路素子もしくは状態機械によるハードウェアの処理ステップとして、またはソフトウェアとハードウェアの両方の組合せの処理ステップとして、デジタル領域に実装されてもよい。こうしたソフトウェアは、例えば、デジタル信号プロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータにおいて利用されてもよい。こうしたハードウェアおよびソフトウェアは、集積回路内に実装された回路内に具体化されてもよい。
【0031】
したがって、本発明の機能は、方法、およびそれらの方法を実施するための装置の形で具体化することができる。本発明の1つまたは複数の態様は、例えば、記憶媒体に格納されようが、マシンにロードされ、また/もしくはマシンによって実行されようが、または何らかの伝送媒体上を伝送されようが、プログラムコードの形で具体化されることができ、プログラムコードがコンピュータなどのマシンにロードされ、マシンによって実行されると、マシンは本発明を実施するための装置になる。汎用プロセッサに実装されると、プログラムコードセグメントは、プロセッサと共に機能して、特定の論理回路と同様に動作するデバイスを提供する。本発明はまた、集積回路、デジタル信号プロセッサ、マイクロプロセッサ、およびマイクロコントローラのうちの1つまたは複数に実装することもできる。
【0032】
当技術分野で知られているように、本明細書で説明される方法および装置は、それ自体が、コンピュータ可読コード手段をその上で具体化するコンピュータ可読媒体を備える製品として供給されてもよい。コンピュータ可読プログラムコード手段はコンピュータシステムと共に、本明細書で説明される、方法の実行もしくは装置の作成を行うステップのすべてまたは一部を実行することができる。コンピュータ可読媒体は、記録可能媒体(例えば、フロッピー(登録商標)ディスク、ハードドライブ、コンパクトディスク、メモリカード、半導体デバイス、チップ、特定用途向け集積回路(ASIC))であってもよく、また伝送媒体(例えば、光ファイバで構成されるネットワーク、ワールドワイドウェブ、ケーブル、または時分割多元接続、符号分割多元接続、もしくは他の無線周波数チャネルを使用する無線チャネル)であってもよい。コンピュータシステムで使用するのに適した情報を格納できる、知られている、または開発された任意の媒体を使用することができる。コンピュータ可読コード手段は、コンピュータが、磁気媒体の磁気的な変形形態やコンパクトディスクの表面の高さの変形形態などの、命令およびデータを読むことができるようにするための任意のメカニズムである。
【0033】
本明細書で説明されるコンピュータシステムおよびサーバは、それぞれ、本明細書で開示される方法、ステップ、および機能を実装するように、関連するプロセッサを構成することになるメモリを備える。メモリは、分散させたり、ローカルなものとすることができ、またプロセッサは、分散させたり、単一のものとすることができる。メモリは、電気的、磁気的、もしくは光学的メモリとして、またはそれらの種類のもしくは他の種類の記憶デバイスの任意の組合せとして実装することができる。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス可能空間のアドレスとの間で読取りまたは書込みを実施することができる任意の情報を含むのに十分なほど、広く解釈されるべきである。この定義の場合、ネットワーク上の情報は、関連するプロセッサがネットワークから情報を取り出せるため、やはりメモリ内に含まれている。
【0034】
本明細書で図示され、説明される、実施形態および変形形態は、本発明の原理を単に例示したものであり、また様々な修正形態は、当業者によって、本発明の範囲および趣旨から逸脱することなく、実装され得ることを理解されたい。
図1
図2
図3
図4