(57)【特許請求の範囲】
【請求項１】
複数の実行ｉに対する関数を評価するために、第１のパーティによって、第２のパーティと共に実行される２パーティ秘匿関数計算（ＳＦＥ）のための方法であって、
複数の前記実行ｉに対して、
前記関数に対応するガーブル回路ＧＣｉを計算するステップと、
前記第２のパーティの入力ｘｉの暗号化されたバージョンｋｉであるワイヤ秘密を提供するために、紛失通信（ＯＴ）プロトコルを使用して、前記第２のパーティと通信するステップであって、第２のパーティが、前記複数の実行に対する、前記第２のパーティの入力ｘｉの前記暗号化されたバージョンｋｉを格納する、通信するステップと、
出力の計算のために、計算されたガーブル回路ＧＣｉを前記第２のパーティに送信するステップと、
前記出力を前記第２のパーティから受信するステップと
を含み、また、
前記実行のうちの２つに対する、前記第２のパーティの前記入力ｘｉのその後の検証に対して、
検証されるガーブル回路の入力鍵に基づいて、検証関数に対応する検査ガーブル回路ＣＧＣを計算するステップと、
検証出力の計算のために、計算された検査ガーブル回路ＣＧＣを前記第２のパーティに送信するステップであって、前記第２のパーティが、前記２つの実行に対する、前記格納された暗号化されたバージョンｋｉを前記検査ガーブル回路ＣＧＣに適用することにより、前記検証出力を計算する、送信するステップと、
前記検証出力を前記第２のパーティから受信するステップと、
前記２つの実行に対する、前記第２のパーティの前記入力ｘｉを検証するために、前記検証出力を評価するステップと
を含む、方法。
【請求項２】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項３】
複数の実行ｉに対する関数を評価するために、第１のパーティによって、第２のパーティと共に実行される２パーティ秘匿関数計算（ＳＦＥ）のための、有形のマシン可読および記録可能記憶媒体であって、１つまたは複数のソフトウェアプログラムが、１つまたは複数の処理デバイスによって実行されると、請求項１に記載の方法のステップを実施する、有形のマシン可読および記録可能記憶媒体。
【請求項４】
複数の実行ｉに対する関数を評価するために、第２のパーティによって、第１のパーティと共に実行される２パーティ秘匿関数計算（ＳＦＥ）のための方法であって、
複数の前記実行ｉに対して、
前記関数に対応するガーブル回路ＧＣｉを前記第１のパーティから受信するステップと、
前記第２のパーティの入力ｘｉの暗号化されたバージョンｋｉであるワイヤ秘密を受信するために、紛失通信（ＯＴ）プロトコルを使用して、前記第１のパーティと通信するステップと、
前記複数の実行に対する、前記第２のパーティの入力ｘｉの前記暗号化されたバージョンｋｉを格納するステップと、
出力を計算するために、入力を、計算されたガーブル回路ＧＣｉに適用するステップと、
前記出力を前記第１のパーティに提供するステップと
を含み、また、
前記実行のうちの２つに対する、前記第２のパーティの前記入力ｘｉの、前記第１のパーティによるその後の検証に対して、
検証関数に対応する検査ガーブル回路ＣＧＣを前記第１のパーティから受信するステップと、
前記２つの実行に対する、前記格納された暗号化されたバージョンｋｉを検査ガーブル回路ＣＧＣに適用することにより、検証出力を計算するステップと、
前記２つの実行に対する、前記第２のパーティの前記入力ｘｉを検証するために、前記検証出力を前記第１のパーティに提供するステップと
を含む、方法。
【請求項５】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの１つまたは複数を含む、請求項４に記載の方法。
【請求項６】
複数の実行ｉに対する関数を評価するために、第２のパーティによって、第１のパーティと共に実行される２パーティ秘匿関数計算（ＳＦＥ）のための、有形のマシン可読および記録可能記憶媒体であって、１つまたは複数のソフトウェアプログラムが、１つまたは複数の処理デバイスによって実行されると、請求項４に記載の方法のステップを実施する、有形のマシン可読および記録可能記憶媒体。
【請求項７】
複数の実行ｉに対する関数を評価するための、第１のパーティによる、第２のパーティと共に用いる２パーティ秘匿関数計算（ＳＦＥ）のためのシステムであって、
メモリと、
メモリに結合された少なくとも１つのハードウェアデバイスであって、
複数の前記実行ｉに対して、
前記関数に対応するガーブル回路ＧＣｉを計算し、
前記第２のパーティの入力ｘｉの暗号化されたバージョンｋｉであるワイヤ秘密を提供するために、紛失通信（ＯＴ）プロトコルを使用して、前記第２のパーティと通信し、第２のパーティが、前記複数の実行に対する、前記第２のパーティの入力ｘｉの前記暗号化されたバージョンｋｉを格納し、
出力の計算のために、計算されたガーブル回路ＧＣｉを前記第２のパーティに送信し、
前記出力を前記第２のパーティから受信する
ように動作し、また、
前記実行のうちの２つに対する、前記第２のパーティの前記入力ｘｉのその後の検証に対して、
検証されているガーブル回路の入力鍵に基づいて、検証関数に対応する検査ガーブル回路ＣＧＣを計算し、
検証出力の計算のために、計算された検査ガーブル回路ＣＧＣを前記第２のパーティに送信し、前記第２のパーティが、前記２つの実行に対する、前記格納された暗号化されたバージョンｋｉを前記検査ガーブル回路ＣＧＣに適用することにより、前記検証出力を計算し、
前記検証出力を前記第２のパーティから受信し、
前記２つの実行に対する、前記第２のパーティの前記入力ｘｉを検証するために、前記検証出力を評価する
ように動作するハードウェアデバイスと
を備える、システム。
【請求項８】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの１つまたは複数を含む、請求項７に記載のシステム。
【請求項９】
複数の実行ｉに対する関数を評価するために、第２のパーティによって、第１のパーティと共に実行される２パーティ秘匿関数計算（ＳＦＥ）のためのシステムであって、
メモリと、
メモリに結合された少なくとも１つのハードウェアデバイスであって、
複数の前記実行ｉに対して、
前記関数に対応するガーブル回路ＧＣｉを前記第１のパーティから受信し、
前記第２のパーティの入力ｘｉの暗号化されたバージョンｋｉであるワイヤ秘密を受信するために、紛失通信（ＯＴ）プロトコルを使用して、前記第１のパーティと通信し、
前記複数の実行に対する、前記第２のパーティの入力ｘｉの前記暗号化されたバージョンｋｉを格納し、
出力を計算するために、入力を、計算されたガーブル回路ＧＣｉに適用し、
前記出力を前記第１のパーティに提供する
ように動作し、また、
前記実行のうちの２つに対する、前記第２のパーティの前記入力ｘｉの、前記第１のパーティによるその後の検証に対して、
検証関数に対応する検査ガーブル回路ＣＧＣを前記第１のパーティから受信し、
前記２つの実行に対する、前記格納された暗号化されたバージョンｋｉを検査ガーブル回路ＣＧＣに適用することにより、検証出力を計算し、
前記２つの実行に対する、前記第２のパーティの前記入力ｘｉを検証するために、前記検証出力を前記第１のパーティに提供する
ように動作するハードウェアデバイスと
を備える、システム。
【請求項１０】
前記検証関数が、等値関数、より大なり関数、より小なり関数、および両パーティによって合意された検証関数のうちの１つまたは複数を含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
政府の権利の記述
本発明は、内務省（ＤＯＩ）の契約番号第Ｄ１１ＰＣ２０１９４号によるＩｎｔｅｌｌｉｇｅｎｃｅ  Ａｄｖａｎｃｅｄ  Ｒｅｓｅａｒｃｈ  Ｐｒｏｊｅｃｔｓ  Ａｃｔｉｖｉｔｙ（ＩＡＲＰＡ）の下で実行される作業に関連して実施されたものである。
【０００２】
本発明は、一般に、電子トランザクションのセキュリティを保護するための技法に関し、より詳細には、そうした電子トランザクションのパーティに秘匿性を提供する秘匿関数計算（ＳＦＥ：Ｓｅｃｕｒｅ  Ｆｕｎｃｔｉｏｎ  Ｅｖａｌｕａｔｉｏｎ）技法に関する。
【背景技術】
【０００３】
一般的な２パーティ秘匿関数計算（ＳＦＥ）は、２つのパーティが、ｘとｙの両方の秘匿性を維持しつつ、任意の関数をそれぞれの入力ｘおよび入力ｙで評価できるようにする。効率的なＳＦＥアルゴリズムは、参加者の相互不信によって以前は不可能であった様々な電子トランザクションを可能にする。例えば、ＳＦＥアルゴリズムは、オークション、契約時の署名、および分散データベースマイニングアプリケーションにおいて利用されている。セキュアな計算の問題は、半誠実な（ｓｅｍｉ−ｈｏｎｅｓｔ）関係者と悪意のある関係者の両方に対して解決されている。一般に、半誠実なサーバにアクセスすることで、悪意のある回路生成の問題を解決する。計算および通信のリソースが増加してきたので、ＳＦＥは、一般的な利用にとってまさに実用的なものとなった。悪意のあるＳＦＥモデルは、関係者の入力の完全な秘匿性を保証する。汎用的な既存の２パーティＳＦＥアルゴリズムは通常、ガーブル回路（ＧＣ：Ｇａｒｂｌｅｄ  Ｃｉｒｃｕｉｔ）を利用する。ＧＣの詳細な説明は、例えば、Ｙ．ＬｉｎｄｅｌｌおよびＢ．Ｐｉｎｋａｓ、「Ａ  Ｐｒｏｏｆ  ｏｆ  Ｙａｏ’ｓ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｓｅｃｕｒｅ  Ｔｗｏ−Ｐａｒｔｙ  Ｃｏｍｐｕｔａｔｉｏｎ」、Ｊｏｕｒｎａｌ  ｏｆ  Ｃｒｙｐｔｏｌｏｇｙ、２２（２）、１６１−１８８頁（２００９）を参照されたい。
【０００４】
ガーブル回路の実装下では、計算関数を表すブール回路は、第１のパーティによって暗号化され、第２のパーティに評価のために与えられる。評価は暗号化の下で進むので、第２のパーティはプロトコルから逸脱することはできない。ガーブル回路に基づくそうした汎用的な既存の２パーティＳＦＥアルゴリズムは、２つのパーティのトランザクションの秘匿性およびセキュリティを著しく改善したが、克服すれば、汎用的な２パーティＳＦＥアルゴリズムの効率性、有用性、および／またはセキュリティをさらに改善することができるであろういくつかの制約が残っている。例えば、同じパーティ間の複数のＳＦＥ実行の場合、実行間の入力整合性を検証することが必要である。しかし、第２のパーティは、それぞれの前の入力を入れ替える（すなわち、実際の入力をそれぞれに有利になる別の値に置き換える）ことにより、攻撃を実行することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｙ．ＬｉｎｄｅｌｌおよびＢ．Ｐｉｎｋａｓ、「Ａ  Ｐｒｏｏｆ  ｏｆ  Ｙａｏ’ｓ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｓｅｃｕｒｅ  Ｔｗｏ−Ｐａｒｔｙ  Ｃｏｍｐｕｔａｔｉｏｎ」、Ｊｏｕｒｎａｌ  ｏｆ  Ｃｒｙｐｔｏｌｏｇｙ、２２（２）、１６１−１８８頁（２００９）
【非特許文献２】Ａｎｄｒｅｗ  Ｃ．Ｙａｏ、「Ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  Ｓｅｃｕｒｅ  Ｃｏｍｐｕｔａｔｉｏｎｓ」、Ｐｒｏｃ．  ２３ｒｄ  ＩＥＥＥ  Ｓｙｍｐ．  ｏｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐ．  Ｓｃｉｅｎｃｅ、１６０−１６４頁、（Ｃｈｉｃａｇｏ、１９８２）
【非特許文献３】Ａｎｄｒｅｗ  Ｃ．Ｙａｏ、「Ｈｏｗ  ｔｏ  Ｇｅｎｅｒａｔｅ  ａｎｄ  Ｅｘｃｈａｎｇｅ  Ｓｅｃｒｅｔｓ」、Ｐｒｏｃ．  ２７ｔｈ  ＩＥＥＥ  Ｓｙｍｐ．  ｏｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐ．  Ｓｃｉｅｎｃｅ、１６２−１６７頁、（Ｔｏｒｏｎｔｏ、１９８６）
【非特許文献４】Ｄ．Ｈａｒｎｉｋらによる「ＯＴ−Ｃｏｍｂｉｎｅｒｓ  ｖｉａ  Ｓｅｃｕｒｅ  Ｃｏｍｐｕｔａｔｉｏｎ」、ＴＣＣ  ５ｔｈ  Ｔｈｅｏｒｙ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｃｏｎｆｅｒｅｎｃｅ  ２００８、（２００８年３月）、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．４９４８、３９３−４１１頁、（２００８）
【非特許文献５】Ｙ．Ｉｓｈａｉらによる「Ｅｘｔｅｎｄｉｎｇ  Ｏｂｌｉｖｉｏｕｓ  Ｔｒａｎｓｆｅｒｓ  Ｅｆｆｉｃｉｅｎｔｌｙ」、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＣＲＹＰＴＯ  ２００３、（２００３年８月）、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．２７２９、１４５−１６１頁、（２００３）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、複数の実行にわたる、悪意のある関係者の入力整合性を確保するための技法が必要である。パーティが、それぞれの人が前の実行で使用されたのと同じまたは関連する（パーティ間での合意どおりの）入力を使用していることを証明できるようにする、入力整合性を確保するための技法がさらに必要である。
【課題を解決するための手段】
【０００７】
一般に、２パーティ秘匿関数計算向けの入力整合性検証のための方法および装置が提供される。本発明の一態様によれば、２パーティ秘匿関数計算（ＳＦＥ）は、複数の実行ｉに対する関数を評価するために、第１のパーティによって、第２のパーティと共に実行される。複数の実行ｉに対して、第１のパーティは、関数に対応するガーブル回路ＧＣｉを計算し、第２のパーティの入力ｘｉの暗号化されたバージョンｋｉであるワイヤ秘密（ｗｉｒｅ  ｓｅｃｒｅｔ）を提供するために、紛失通信（ＯＴ：Ｏｂｌｉｖｉｏｕｓ  Ｔｒａｎｓｆｅｒ）プロトコルを使用して、第２のパーティと通信し、第２のパーティが、複数の実行に対する、第２のパーティの入力ｘｉの暗号化されたバージョンｋｉを格納し、出力の計算のために、計算されたガーブル回路ＧＣｉを第２のパーティに送信し、出力を第２のパーティから受信する。実行のうちの２つに対する、第２のパーティの入力ｘｉのその後の検証に対して、第１のパーティは、検証されるガーブル回路の入力鍵に基づいて、検証関数（ｖｅｒｉｆｉｃａｔｉｏｎ  ｆｕｎｃｔｉｏｎ）に対応する検査ガーブル回路（ｃｈｅｃｋ  ｇａｒｂｌｅｄ  ｃｉｒｃｕｉｔ）ＣＧＣを計算し、検証出力の計算のために、計算された検査ガーブル回路ＣＧＣを第２のパーティに送信し、第２のパーティが、２つの実行に対する、格納された暗号化されたバージョンｋｉを適用することにより、検証出力を計算し、検証出力を第２のパーティから受信し、２つの実行に対する、第２のパーティの入力ｘｉを検証するために、検証出力を評価する。
【０００８】
本発明の別の態様によれば、２パーティ秘匿関数計算（ＳＦＥ）は、複数の実行ｉに対する関数を評価するために、第２のパーティによって、第１のパーティと共に実行される。複数の実行ｉに対して、第２のパーティは、関数に対応するガーブル回路ＧＣｉを第１のパーティから受信し、第２のパーティの入力ｘｉの暗号化されたバージョンｋｉであるワイヤ秘密を受信するために、紛失通信（ＯＴ）プロトコルを使用して、第１のパーティと通信し、複数の実行に対する、第２のパーティの入力ｘｉの暗号化されたバージョンｋｉを格納し、出力を計算するために、入力を、計算されたガーブル回路ＧＣｉに適用し、出力を第１のパーティに提供する。実行のうちの２つに対する、第２のパーティの入力ｘｉの、第１のパーティによるその後の検証に対して、第２のパーティは、検証関数に対応する検査ガーブル回路ＣＧＣを第１のパーティから受信し、２つの実行に対する、格納された暗号化されたバージョンｋｉを検査ガーブル回路ＣＧＣに適用することにより、検証出力を計算し、２つの実行に対する、第２のパーティの入力ｘｉを検証するために、検証出力を第１のパーティに提供する。
【０００９】
例えば、検証関数は、等値関数（ｅｑｕａｌｉｔｙ  ｆｕｎｃｔｉｏｎ）、より大なり関数（ｇｒｅａｔｅｒ  ｔｈａｎ  ｆｕｎｃｔｉｏｎ）、より小なり関数（ｌｅｓｓ  ｔｈａｎ  ｆｕｎｃｔｉｏｎ）、および両パーティによって合意された検証関数を含む。
【００１０】
以下の詳細な説明および図面を参照することにより、本発明、ならびに本発明のさらなる特徴および利点がより完全に理解されよう。
【図面の簡単な説明】
【００１１】
【図１】本発明のプロセスを実装することができる、改良された汎用的な２パーティＳＦＥシステムのブロック図である。
【図２】本発明の態様を組み込んでいる２パーティ秘匿関数計算プロセスの例示的な実装形態を示す流れ図である。
【図３】本発明の態様を組み込んでいる２パーティＳＦＥ入力整合性検証プロセスの例示的な実装形態を示す流れ図である。
【図４】所与のペアの実行に対する、本発明の態様による入力整合性検証を示す図である。
【発明を実施するための形態】
【００１２】
本発明の態様は、複数の実行にわたる秘匿関数計算の、少なくとも１つのパーティの入力整合性を確保するための方法および装置を提供する。第１のパーティＰ１（サーバ）および第２のパーティＰ２（例えば、顧客またはクライアント）が、複数の実行にわたる秘匿関数計算を使用して情報を交換する、例えば、オンラインバンキング日付記入アプリケーションについて考えてみてほしい。いったんある入力が第２のパーティＰ２によって第１のパーティＰ１との通信で使用されると、第１のパーティＰ１は、将来の通信で、第２のパーティＰ２に同じ入力（または、例えば、増加する入力）を供給するようにいつも依頼することができる。第１のパーティＰ１は、２つのＳＦＥ評価に対して、第２のパーティＰ２の特定の入力ワイヤが同じ平文値（または、より大きな値）に設定されていることを検証することができる。
【００１３】
図１は、本発明のプロセスを実装することができる、改良された汎用的な２パーティＳＦＥシステム１００のブロック図である。図１に示すように、メモリ１３０は、本明細書で開示された、汎用的な２パーティＳＦＥの方法、ステップ、および機能（集合的に、図１の１５０として示され、また図２から図４と共にさらに後述される）を実装するために、プロセッサ１２０を構成する。メモリ１３０は、分散させたり、ローカルなものとすることができ、またプロセッサ１２０は、分散させたり、単一のものとすることができる。メモリ１３０は、電気的、磁気的、もしくは光学的メモリとして、またはそれらの種類のもしくは他の種類の記憶デバイスの任意の組合せとして実装することができる。プロセッサ１２０を構成する各分散プロセッサは、一般に、独自のアドレス可能メモリ空間を含むことに留意されたい。コンピュータシステム１００の一部またはすべては、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピューティングデバイス、特定用途向け回路、または汎用集積回路内に組み込むことができることにも留意されたい。
【００１４】
汎用的な２パーティＳＦＥアルゴリズム
既存の汎用的な２パーティＳＦＥアルゴリズムは通常、ガーブル回路（ＧＣ：Ｇａｒｂｌｅｄ  Ｃｉｒｃｕｉｔ）を利用する。ＧＣの詳細な説明は、例えば、Ａｎｄｒｅｗ  Ｃ．Ｙａｏ、「Ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  Ｓｅｃｕｒｅ  Ｃｏｍｐｕｔａｔｉｏｎｓ」、Ｐｒｏｃ．  ２３ｒｄ  ＩＥＥＥ  Ｓｙｍｐ．  ｏｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐ．  Ｓｃｉｅｎｃｅ、１６０−１６４頁、（Ｃｈｉｃａｇｏ、１９８２）、またはＡｎｄｒｅｗ  Ｃ．Ｙａｏ、「Ｈｏｗ  ｔｏ  Ｇｅｎｅｒａｔｅ  ａｎｄ  Ｅｘｃｈａｎｇｅ  Ｓｅｃｒｅｔｓ」、Ｐｒｏｃ．  ２７ｔｈ  ＩＥＥＥ  Ｓｙｍｐ．  ｏｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐ．  Ｓｃｉｅｎｃｅ、１６２−１６７頁、（Ｔｏｒｏｎｔｏ、１９８６）を参照されたい。
【００１５】
ＧＣは、悪意のある回路評価器および半誠実な回路構成器に対してセキュアであり、したがって半誠実なサーバＳに、（両方のクライアントによってＳに伝えられているような）選ばれた関数のためのガーブル回路を生成させる。入力に関しては、ＯＴ拡張機能が、悪意のある受信器および半誠実なサーバに関してセキュアであるために使用される。例えば、Ｄ．Ｈａｒｎｉｋらによる「ＯＴ−Ｃｏｍｂｉｎｅｒｓ  ｖｉａ  Ｓｅｃｕｒｅ  Ｃｏｍｐｕｔａｔｉｏｎ」、ＴＣＣ  ５ｔｈ  Ｔｈｅｏｒｙ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｃｏｎｆｅｒｅｎｃｅ  ２００８、（２００８年３月）、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．４９４８、３９３−４１１頁、（２００８）および／またはＹ．Ｉｓｈａｉらによる「Ｅｘｔｅｎｄｉｎｇ  Ｏｂｌｉｖｉｏｕｓ  Ｔｒａｎｓｆｅｒｓ  Ｅｆｆｉｃｉｅｎｔｌｙ」、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＣＲＹＰＴＯ  ２００３、（２００３年８月）、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、Ｖｏｌ．２７２９、１４５−１６１頁、（２００３）を参照されたい。
【００１６】
図２は、本発明の態様を組み込んでいる２パーティ秘匿関数計算プロセス２００の例示的な実装形態を示す流れ図である。２パーティ秘匿関数計算プロセス２００は、所与の実行ｉに対する、また例示的な１６ビット入力に対する関数を評価するために、第１のパーティＰ１（サーバ）および第２のパーティＰ２（例えば、顧客またはクライアント）によって実行される。図２に示すように、ステップ２１０の間、第１のパーティＰ１は最初に、関数に対応するガーブル回路を計算する。その後、ステップ２２０の間、第１のパーティＰ１は、第１のパーティＰ１が第２のパーティＰ２の入力ｘｉ，１…ｘｉ，１６を知ることができないよう、所与の実行ｉに対する、また例示的な１６ビット入力に対する、第２のパーティＰ２の入力ｘｉ，１…ｘｉ，１６の暗号化されたバージョンｋｉ，１…ｋｉ，１６であるワイヤ秘密を提供するために、紛失通信（ＯＴ）プロトコルを使用して、第２のパーティＰ２と通信する。
【００１７】
ステップ２３０の間、第１のパーティＰ１は、次いで、出力の計算のために、計算されたガーブル回路を第２のパーティＰ２に送信する。ステップ２４０の間、第２のパーティＰ２は、次いで、出力を計算し、その出力を第１のパーティＰ１に送信する。ステップ２５０の間、第２のパーティは、第２のパーティＰ２の入力ｘｉ，１…ｘｉ，１６の暗号化されたバージョンｋｉ，１…ｋｉ，１６を格納する。
【００１８】
このように、パーティ１およびパーティ２が共同計算の次の段階に携わることを望むたび、パーティ１（サーバ）は、図２の２パーティ秘匿関数計算プロセス２００による評価のために、計算関数向けのＧＣを生成し、パーティ２（クライアント）に送信することになる。
【００１９】
前述のとおり、例示的な２パーティ秘匿関数計算プロセス２００は、パーティ２が、入力整合性が実現されることになる実行ｉにわたって、入力ワイヤ暗号化結果ｋｉ，１…ｋｉ，１６を格納することを要求する。パーティ１が入力整合性の検査を希望する時はいつも、パーティ１は、図３と共にさらに後述されるように、ＧＣ入力が、検査される実行におけるのと同じ暗号化で暗号化される検査ガーブル回路を生成することになる。
【００２０】
この検査は、確率的な方法で、関係者１によって希望されるのと同じまれな頻度または頻繁な頻度で、実施することができる。すなわち、第１のパーティＰ１は思いどおりに、それぞれの人が、いつ、どの実行を検査するかを選択してもよい。検査の失敗は、第２のＰ２が不正を働いていることを意味することになり、罰則措置をもたらすはずである。さらに、第１のパーティＰ１は、検査のために、過去の任意の実行を選択することができ、したがって、第２のパーティＰ２は、それぞれの人がその不正から「逃れた」か否かを知ることはない。
【００２１】
第２のパーティＰ２は、暗号化の下で操作をしており、ＧＣ評価から逸脱することはできないので、検査の結果を偽ることはできなくなる。第１のパーティＰ１は、ＧＣ評価の特性のため、入力整合性検査の結果以上の追加の何かを知ることはない。
【００２２】
図３は、本発明の態様を組み込んでいる２パーティＳＦＥ入力整合性検証プロセス３００の例示的な実装形態を示す流れ図である。第１のパーティＰ１が、所与のペアの実行ｉに対する、また例示的な１６ビット入力に対する、第２のパーティＰ２（例えば、顧客またはクライアント）の入力整合性検証の実行を希望すると、２パーティＳＦＥ入力整合性検証プロセス３００は、第１のパーティＰ１（サーバ）によって開始される。例えば、第２のパーティＰ２の入力は、１６ビットの整数である場合があり、第１のパーティＰ１は、第２のパーティＰ２の第２の入力が、第２のパーティＰ２の第１の入力よりも大きく（またはそれと等しく）なるようにしようとする。
【００２３】
図３に示すように、ステップ３１０の間、第１のパーティＰ１は、所望の検証関数（例えば、等値関数、またはより大なり関数／より小なり関数）について、検査ＧＣを計算する。ステップ３２０の間、第１のパーティＰ１は、検証出力の計算のために、計算された検査ＧＣを第２のパーティＰ２に送信する。計算された検査ＧＣは、検査されるＧＣを生成するのに使用された入力ワイヤ鍵（ｉｎｐｕｔ  ｗｉｒｅ  ｋｅｙ）に関連して計算される。具体的には、検査ＧＣへの入力鍵は、まさに、検査される実行においてＳがＰ２のために生成した入力鍵となる。
【００２４】
ステップ３３０の間、第２のパーティＰ２は、第１のパーティＰ１によって要求された２つの実行ｉに対する、第２のパーティの入力ｘｉ，１…ｘｉ，１６の事前に格納された暗号化されたバージョンｋｉ，１…ｋｉ，１６を適用することにより、検証出力を計算する。ステップ３４０の間、第２のパーティＰ２は、計算された検証出力を第１のパーティＰ１に送信する。ステップ３５０の間、第１のパーティは、次いで、検証出力を評価する。
【００２５】
図４は、所与のペアの実行ｉ＝１およびｉ＝２に対する、本発明の態様による入力整合性検証４００を示す。図２と共に前述されたように、第１のパーティＰ１は、各実行に対して、ガーブル回路を生成する。図４に示すように、第１のパーティＰ１は、第１の実行に対して、ガーブル回路ＧＣ１を、第２の実行（必ずしも連続しているわけではない）に対して、ガーブル回路ＧＣ２を生成し、また各実行に対して、第１のパーティＰ１は、出力の計算のために、生成されたガーブル回路を第２のパーティに送信する。パーティは、第２のパーティが、所与の実行ｉに対する、また例示的な１６ビット入力に対する、第２のパーティＰ２の入力ｘｉ，１…ｘｉ，１６の暗号化されたバージョンｋｉ，１…ｋｉ，１６を取得するように、紛失通信を使用して、その入力を交換する。したがって、第１の実行（ｉ＝１）の場合、第２のパーティＰ２は、その実行入力の暗号化されたバージョンｋｉ，１…ｋｉ，１６を取得し、第２の実行（ｉ＝２）の場合、第２のパーティＰ２は、その実行入力の暗号化されたバージョンｋ２，１…ｋ２，１６を取得する。
【００２６】
例示的な２パーティ秘匿関数計算プロセス２００によれば、第２のパーティＰ２は、第１のパーティと共に、所与の実行のために、その入力ｘｉ，１…ｘｉ，１６をガーブル回路に適用し、また後に起こり得る検証のために、その入力の暗号化されたバージョンｋｉ，１…ｋｉ，１６を格納する。
【００２７】
図３と共に前述されたように、第１のパーティＰ１が、所与のペアの実行ｉに対する、また例示的な１６ビット入力に対する、第２のパーティＰ２（例えば、顧客またはクライアント）の入力整合性検証の実行を希望すると、２パーティＳＦＥ入力整合性検証プロセス３００は、第１のパーティＰ１（サーバ）によって開始される。例えば、第２のパーティＰ２の入力が検証関数によって関連付けられる必要がある２つの実行がある。
【００２８】
例えば、第２のパーティＰ２の入力は、１６ビットの整数である場合があり、第１のパーティＰ１は、第２のパーティＰ２の第２の入力が、第２のパーティＰ２の第１の入力よりも大きく（またはそれと等しく）なるようにしようとする。第２のパーティＰ２の第１の入力がｘ１，１…ｘ１，１６であり、第２のパーティＰ２の第２の入力がｘ２，１…ｘ２，１６であると想定されたい。前述のとおり、２パーティ秘匿関数計算プロセス２００によるＧＣベースの実行１および実行２のそれぞれの一部として、第１のパーティＰ１は、第２のパーティＰ２の入力ビットのそれぞれの２つの値（０および１）のそれぞれの暗号化結果を生成することになり、第２のパーティＰ２は、自身の入力に対応する暗号化結果を取得することになる（合計でＰ２は、自身の２つの１６ビット入力に対応する、２×１６の暗号化結果を受信することになる）。そこで、第１のパーティＰ１が、Ｐ２がそれぞれの人の入力を正しく送信したことを検査しようとする場合、第１のパーティＰ１は、暗号化された３２入力ビット（ｋ値）を取り、これらの入力で検査関数を計算する検査回路ＧＣ３４５０を生成することになる。例示的な実施形態では、検査回路ＧＣ３４５０は、ｘ２がｘ１よりも大きいことを検査することになる。検査関数ＧＣ３４５０の暗号化された出力は、ステップ３４０（図３）の間、第２のパーティＰ２によって計算され、ステップ３５０（図３）の間、暗号化および検証のために、第１のパーティＰ１に送り返される。
【００２９】
システムおよび製品の詳細
図２および図３は例示的なステップシーケンスを示しているが、本発明の一実施形態では、シーケンスが変更されてもよい。アルゴリズムの様々な置換えが本発明の代替の実施形態として考えられる。
【００３０】
本発明の例示的な実施形態がソフトウェアプログラムの処理ステップに関連して説明されてきたが、当業者には明らかであろうように、様々な機能が、ソフトウェアプログラムの処理ステップとして、回路素子もしくは状態機械によるハードウェアの処理ステップとして、またはソフトウェアとハードウェアの両方の組合せの処理ステップとして、デジタル領域に実装されてもよい。こうしたソフトウェアは、例えば、デジタル信号プロセッサ、特定用途向け集積回路、マイクロコントローラ、または汎用コンピュータにおいて利用されてもよい。こうしたハードウェアおよびソフトウェアは、集積回路内に実装された回路内に具体化されてもよい。
【００３１】
したがって、本発明の機能は、方法、およびそれらの方法を実施するための装置の形で具体化することができる。本発明の１つまたは複数の態様は、例えば、記憶媒体に格納されようが、マシンにロードされ、また／もしくはマシンによって実行されようが、または何らかの伝送媒体上を伝送されようが、プログラムコードの形で具体化されることができ、プログラムコードがコンピュータなどのマシンにロードされ、マシンによって実行されると、マシンは本発明を実施するための装置になる。汎用プロセッサに実装されると、プログラムコードセグメントは、プロセッサと共に機能して、特定の論理回路と同様に動作するデバイスを提供する。本発明はまた、集積回路、デジタル信号プロセッサ、マイクロプロセッサ、およびマイクロコントローラのうちの１つまたは複数に実装することもできる。
【００３２】
当技術分野で知られているように、本明細書で説明される方法および装置は、それ自体が、コンピュータ可読コード手段をその上で具体化するコンピュータ可読媒体を備える製品として供給されてもよい。コンピュータ可読プログラムコード手段はコンピュータシステムと共に、本明細書で説明される、方法の実行もしくは装置の作成を行うステップのすべてまたは一部を実行することができる。コンピュータ可読媒体は、記録可能媒体（例えば、フロッピー（登録商標）ディスク、ハードドライブ、コンパクトディスク、メモリカード、半導体デバイス、チップ、特定用途向け集積回路（ＡＳＩＣ））であってもよく、また伝送媒体（例えば、光ファイバで構成されるネットワーク、ワールドワイドウェブ、ケーブル、または時分割多元接続、符号分割多元接続、もしくは他の無線周波数チャネルを使用する無線チャネル）であってもよい。コンピュータシステムで使用するのに適した情報を格納できる、知られている、または開発された任意の媒体を使用することができる。コンピュータ可読コード手段は、コンピュータが、磁気媒体の磁気的な変形形態やコンパクトディスクの表面の高さの変形形態などの、命令およびデータを読むことができるようにするための任意のメカニズムである。
【００３３】
本明細書で説明されるコンピュータシステムおよびサーバは、それぞれ、本明細書で開示される方法、ステップ、および機能を実装するように、関連するプロセッサを構成することになるメモリを備える。メモリは、分散させたり、ローカルなものとすることができ、またプロセッサは、分散させたり、単一のものとすることができる。メモリは、電気的、磁気的、もしくは光学的メモリとして、またはそれらの種類のもしくは他の種類の記憶デバイスの任意の組合せとして実装することができる。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス可能空間のアドレスとの間で読取りまたは書込みを実施することができる任意の情報を含むのに十分なほど、広く解釈されるべきである。この定義の場合、ネットワーク上の情報は、関連するプロセッサがネットワークから情報を取り出せるため、やはりメモリ内に含まれている。
【００３４】
本明細書で図示され、説明される、実施形態および変形形態は、本発明の原理を単に例示したものであり、また様々な修正形態は、当業者によって、本発明の範囲および趣旨から逸脱することなく、実装され得ることを理解されたい。
【図１】
0005925969.tif 000002
【図２】
0005925969.tif 000003
【図３】
0005925969.tif 000004
【図４】
0005925969.tif 000005