(57)【要約】部分的準同型暗号およびマスクを用いたプライバシー保護リッジ回帰を提供するための方法及びシステムが提供される。本方法は、暗号サービスプロバイダからガーブル回路を要求するステップと、部分的準同型暗号を用いてフォーマット化され暗号化されたデータを複数のユーザから収集するステップと、部分的準同型暗号を用いてフォーマット化され暗号化された前記データを合計するステップと、準備されたマスクを前記合計されたデータに適用するステップと、紛失通信を用いて、前記暗号サービスプロバイダから、準備されたマスクに対応するガーブルされた入力を受け取るステップと、前記ガーブルされた入力およびマスクされたデータを用いて前記暗号サービスプロバイダからの前記ガーブル回路を評価するステップと、を含む。
2016512612.tif 000002
【特許請求の範囲】
【請求項１】
プライバシー保護リッジ回帰を提供するための方法であって、前記方法は、
暗号サービスプロバイダにガーブル回路を要求するステップと、
部分的準同型暗号を用いてフォーマット化され暗号化されたデータを複数のユーザから収集するステップと、
部分的準同型暗号を用いてフォーマット化され暗号化された前記データを合計するステップであって、前記合計するステップは、暗号鍵を要求しない、ステップと、
準備されたマスクを前記合計されたデータに適用するステップと、
紛失通信を用いて、前記暗号サービスプロバイダから、準備されたマスクに対応するガーブルされた入力を受け取るステップと、
前記ガーブルされた入力およびマスクされたデータを用いて前記暗号サービスプロバイダからの前記ガーブル回路を評価するステップと、
を含む、前記方法。
【請求項２】
暗号サービスプロバイダにガーブル回路を要求する前記ステップは、
前記ガーブル回路に関する入力変数の次元を提供するステップと、
前記入力変数の値の範囲を提供するステップと、
を含む、請求項１に記載の方法。
【請求項３】
コンピューティングデバイス上で実装される評価器が、前記方法を実行する、請求項１に記載の方法。
【請求項４】
前記暗号サービスプロバイダは、前記評価器が実装される前記コンピューティングデバイスからリモートなコンピューティングデバイス上で実装される、請求項３に記載の方法。
【請求項５】
複数のユーザからの前記データを暗号化するための暗号鍵を提供するステップをさらに含む、請求項１に記載の方法。
【請求項６】
複数のユーザからの前記データは、前記暗号サービスプロバイダによって提供された暗号鍵を用いてさらに暗号化される、請求項５に記載の方法。
【請求項７】
前記ガーブル回路を評価する前記ステップは、
前記合計されたデータから前記準備されたマスクを除去するステップと、
前記ガーブル回路によって具現化されたリッジ回帰式を解くステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
データを複数のユーザから収集する前記ステップは、コンピューティングデバイスによって、前記複数のユーザの各々から送信されたデータを受信するステップを含む、請求項１に記載の方法。
【請求項９】
プライバシー保護リッジ回帰のためのコンピューティングデバイスであって、前記コンピューティングデバイスは、
ユーザデータを記憶するための記憶装置と、
処理のためのデータを記憶するためのメモリと、
暗号サービスプロバイダにガーブル回路を要求し、部分的準同型暗号を用いてフォーマット化され暗号化されたデータを複数のユーザから収集し、部分的準同型暗号を用いてフォーマット化され暗号化された前記データを合計するように構成されたプロセッサーであって、前記合計は暗号鍵を必要とせず、準備されたマスクを前記合計されたデータに適用し、紛失通信を用いて、前記暗号サービスプロバイダから、準備されたマスクに対応するガーブルされた入力を受け取り、前記ガーブルされた入力およびマスクされたデータを用いて前記暗号サービスプロバイダからの前記ガーブル回路を評価するように構成された、プロセッサーと、
を備えた、前記コンピューティングデバイス。
【請求項１０】
ネットワークに接続するためのネットワーク接続をさらに備えた、請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記暗号サービスプロバイダは、別のコンピューティングデバイス上で実装される、請求項９に記載のコンピューティングデバイス。
【請求項１２】
暗号サービスプロバイダにガーブル回路を要求することは、
前記ガーブル回路に関する入力変数の次元を提供することと、
前記入力変数の値の範囲を提供することと、
を含む、請求項９に記載のコンピューティングデバイス。
【請求項１３】
前記ガーブル回路を評価することは、
前記合計されたデータから前記準備されたマスクを除去することと、
前記ガーブル回路によって具現化されたリッジ回帰式を解くことと、
をさらに含む、請求項９に記載のコンピューティングデバイス。
【請求項１４】
複数のユーザからの前記データは、前記暗号サービスプロバイダから提供された暗号鍵を用いて暗号化され、前記コンピューティングデバイスによる暗号鍵を用いて暗号化される、請求項９に記載のコンピューティングデバイス。
【請求項１５】
実行されたとき、
暗号サービスプロバイダにガーブル回路を要求するステップと、
部分的準同型暗号を用いてフォーマット化され暗号化されたデータを複数のユーザから収集するステップと、
部分的準同型暗号を用いてフォーマット化され暗号化された前記データを合計するステップであって、前記合計するステップは、暗号鍵を要求しない、ステップと、
準備されたマスクを前記合計されたデータに適用するステップと、
紛失通信を用いて、前記暗号サービスプロバイダから、準備されたマスクに対応するガーブルされた入力を受け取るステップと、
前記ガーブルされた入力およびマスクされたデータを用いて前記暗号サービスプロバイダからの前記ガーブル回路を評価するステップと、
を含むステップを実行する命令を含む、機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、データマイニングに関し、より具体的にはリッジ回帰を用いたデータマイニング時のプライバシーの保護に関する。
【背景技術】
【０００２】
関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれている、２０１３年３月４日に出願した米国特許仮出願第６１／７７２，４０４号明細書の利益を主張するものである。
【０００３】
本出願はまた、同時に出願されその全体が参照により本明細書に組み込まれている「ＰＲＩＶＡＣＹ−ＰＲＥＳＥＲＶＩＮＧ  ＲＩＤＧＥ  ＲＥＧＲＥＳＳＩＯＮ」、および「ＰＲＩＶＡＣＹ−ＰＲＥＳＥＲＶＩＮＧ  ＲＩＤＧＥ  ＲＥＧＲＥＳＳＩＯＮ  ＵＳＩＮＧ  ＭＡＳＫＳ」という名称の出願に関連する。
【０００４】
推薦システムは、種々の項目に対する多くのユーザの好みおよび評点を収集し、データに対して学習アルゴリズムを実行することによって動作する。学習アルゴリズムは、新しいユーザが一定の項目をどのように評点するかを予測するために用いられ得るモデルを生成する。特に、ユーザが一定の項目に対して提供する評価を所与として、モデルはそのユーザが他の項目をどのように評価するかを予測することができる。このような予測モデルを生成するための無数のアルゴリズムが存在し、多くはＡｍａｚｏｎおよびＮｅｔｆｌｉｘなどの大きなサイトにおいて積極的に用いられる。学習アルゴリズムはまた、大きな医療データベース、財務データ、および多くの他の領域に用いられる。
【０００５】
現在の実装形態では、学習アルゴリズムは、予測モデルを組み立てるために、すべてのユーザデータをクリアテキストで見なければならない。この開示では、クリアテキストでのデータなしに学習アルゴリズムが動作できるかどうかが判断され、それによってユーザが彼等のデータの管理を維持することを可能にする。医療データに対しては、これはユーザプライバシーに影響を与えずにモデルを組み立てられることを可能にする。書籍および映画の好みに対しては、ユーザに彼等のデータの管理を保持させることは、サービスプロバイダにおけるデータ漏洩の場合の、将来の予期しない当惑を生じるリスクを低減する。概略的に言えば、プライベートなユーザデータをデータマイニングするための３つの既存の方法がある。第１のものは、ユーザに、秘密共有を用いて複数のサーバーの間に彼等のデータを分割させる。次いで、これらのサーバーは分散型プロトコルを用いて学習アルゴリズムを実行し、サーバーの大多数が共謀しない限り、プライバシーは保証される。第２のものは完全準同型暗号に基づき、学習アルゴリズムは暗号化されたデータを通して実行され、信頼できるサードパーティに、最終の暗号化モデルを復号することだけを任せる。第３の方法では、暗号化されたデータに対して計算し、ユーザデータについて他に何も学習することなく最終モデルを取得するために、ヤオのガーブル回路構成が用いられ得る。しかしながら、ヤオに基づく方法は、以前にはアルゴリズムの回帰クラスに適用されたことはなかった。
【発明の概要】
【０００６】
準同型暗号およびヤオガーブル回路の両方を用いる、プライバシー保護リッジ回帰のためのハイブリッド方法が提示される。システムにおけるユーザは、ＰａｉｌｌｉｅｒまたはＲｅｇｅｖなどの線形準同型暗号システムのもとで暗号化された彼等のデータを提出する。評価器は、線形準同型性を用いて、線形演算のみを必要とするアルゴリズムの第１の段階を実行する。この段階は、暗号化されたデータを生成する。この第１の段階では、システムは、多数のレコード（システム内のユーザの数ｎに比例する）を処理するように要求される。この第１の段階での処理は、アルゴリズムの第２の段階がｎに無関係になるようにデータを準備する。第２の段階では、評価器は、最初に準同型復号を実装するヤオガーブル回路を評価し、次いで回帰アルゴリズムの残りを行う（図示のように、最適化された具現化は、ガーブル回路における復号を回避することができる）。回帰アルゴリズムのこのステップは、高速線形システムソルバを必要とし、高度に非線形である。このステップに対してヤオガーブル回路方法は、現在の完全準同型暗号方式よりもずっと高速である。したがって、大きなデータセットを取り扱うために線形準同型性を用い、計算の重たい非線形部分のためにガーブル回路を用いることによって、両方の領域の最善のものが得られる。第２の段階はまた、計算が２つの段階に分割される方法のために、ｎに無関係となる。
【０００７】
一実施形態では、プライバシー保護リッジ回帰のための方法が提供される。上記方法は、暗号サービスプロバイダにガーブル回路を要求するステップと、部分的準同型暗号を用いてフォーマット化され暗号化されたデータを複数のユーザから収集するステップと、部分的準同型暗号を用いてフォーマット化され暗号化された上記データを合計するステップと、準備されたマスクを上記合計されたデータに適用するステップと、紛失通信を用いて、上記暗号サービスプロバイダから、準備されたマスクに対応するガーブルされた入力を受け取るステップと、上記ガーブルされた入力およびマスクされたデータを用いて上記暗号サービスプロバイダからの上記ガーブル回路を評価するステップと、を含む。
【０００８】
他の実施形態では、プライバシー保護リッジ回帰のためのコンピューティングデバイスが提供される。コンピューティングデバイスは、記憶装置と、メモリと、プロセッサーとを含む。上記記憶装置はユーザデータを記憶するためのものである。上記メモリは、処理のためのデータを記憶するためのものである。上記プロセッサーは、暗号サービスプロバイダにガーブル回路を要求し、準同型暗号を用いてフォーマット化され暗号化されたデータを複数のユーザから収集し、準同型暗号を用いてフォーマット化され暗号化された上記データを合計し、準備されたマスクを上記合計されたデータに適用し、紛失通信を用いて、上記暗号サービスプロバイダから、準備されたマスクに対応するガーブルされた入力を受け取り、上記ガーブルされた入力およびマスクされたデータを用いて上記暗号サービスプロバイダからの上記ガーブル回路を評価するように構成される。
【０００９】
目的および利点は、特許請求の範囲において具体的に指し示された要素および結合によって実現され達成される。開示された実施形態は、本明細書の新規な教示の多くの有利な使用の例のみであることに留意することが重要である。上記の全体的な説明および以下の詳細な説明は共に、例示および説明目的であって本発明を限定するものではなく、特許請求される通りであることが理解されるべきである。さらに、いくつかの記述は、いくつかの発明性のある特徴に当てはまり得るが、他には当てはまらない場合がある。一般に、特に明記しない限り、一般性を失わずに単数の要素は複数であってもよく、逆も同様である。図面では、いくつかの図を通して同様な番号は同様な部分を指す。
【図面の簡単な説明】
【００１０】
【図１】実施形態によるプライバシー保護リッジ回帰システムのブロック概略図である。
【図２】実施形態によるコンピューティングデバイスのブロック概略図である。
【図３】実施形態による例示的ガーブル回路を示す図である。
【図４】実施形態によるプライバシー保護リッジ回帰をもたらすための方法論の高レベルフロー図である。
【図５】実施形態によるプライバシー保護リッジ回帰をもたらすための第１のプロトコルの動作を示す図である。
【図６】実施形態によるプライバシー保護リッジ回帰をもたらすための第１のプロトコルの動作を示す図である。
【図７】実施形態によるコレスキー分解のためのアルゴリズムの例示的実施形態を示す図である。
【発明を実施するための形態】
【００１１】
本開示の焦点は、多くの学習アルゴリズムにおいて用いられる基本的な機構、すなわちリッジ回帰に当てられる。高次元の多数の点を所与として、回帰アルゴリズムは、これらの点を通る最良適合曲線を生成する。目標は、ユーザデータまたはユーザデータについての他の情報を顕在化せずに計算を行うことである。これは、図１に示されるシステムを用いることによって達成される。
【００１２】
図１には、プライバシー保護リッジ回帰を実装するためのシステム１００の実施形態のブロック図が示される。システムは、評価器１１０、１人または複数のユーザ１２０、および暗号サービスプロバイダ（ＣＳＰ）１３０を含み、これらは互いに通信する。評価器１１０は、サーバーまたはパーソナルコンピュータ（ＰＣ）などのコンピューティングデバイス上に実装される。ＣＳＰ１３０は、同様にサーバーまたはパーソナルコンピュータなどのコンピューティングデバイス上に実装され、イーサネット（登録商標）またはＷｉ−Ｆｉネットワークなどのネットワークを通して、評価器１１０と通信する。１人または複数のユーザ１２０は、パーソナルコンピュータ、タブレット、スマートフォンなどのコンピューティングデバイスを介して、評価器１１０およびＣＳＰ１３０と通信する。
【００１３】
ユーザ１２０は、暗号化されたデータを（例えばＰＣから）、学習アルゴリズムを実行する評価器１１０（例えばサーバー上の）に送る。一定の時点において評価器は、評価器１１０と共謀しないように信頼された暗号サービスプロバイダ１３０（別のサーバー上の）と対話することができる。最終的な成果は、クリアテキスト予測モデルβ１４０である。
【００１４】
図２は、プライバシー保護リッジ回帰のための様々な方法論およびシステム要素を実装するために用いられ得る、サーバー、ＰＣ、タブレット、またはスマートフォンなどの例示的コンピューティングデバイス２００を示す。コンピューティングデバイス２００は、１つまたは複数のプロセッサー２１０、メモリ２２０、記憶装置２３０、およびネットワークインターフェース２４０を含む。これらの要素のそれぞれについては、以下でより詳しく述べられる。
【００１５】
プロセッサー２１０は、電子サーバー２００の動作を制御する。プロセッサー２００は、サーバーを動作させ、コールドスタート推奨の機能をもたらすソフトウェアを実行する。プロセッサー２１０は、メモリ２２０、記憶装置２３０、およびネットワークインターフェース２４０に接続され、これらの要素間の情報の転送および処理を取り扱う。プロセッサー２１０は、汎用プロセッサーまたは特定の機能に専用化されたプロセッサーとすることができる。いくつかの実施形態では、複数のプロセッサーが存在し得る。
【００１６】
メモリ２２０は、プロセッサーによって実行されるべき命令およびデータが記憶される場所である。メモリ２１０は、揮発性メモリ（ＲＡＭ）、不揮発性メモリ（ＥＥＰＲＯＭ）、または他の適切な媒体を含むことができる。
【００１７】
記憶装置２３０は、本発明のコールドストレージ推奨方法論の実行においてプロセッサーによって用いられ生成されるデータが記憶される場所である。記憶装置は、磁気媒体（ハードドライブ）、光媒体（ＣＤ／ＤＶＤ−Ｒｏｍ）、またはフラッシュベースの記憶装置とすることができる。
【００１８】
ネットワークインターフェース２４０は、サーバー２００のネットワークを通した他のデバイスとの通信を取り扱う。適切なネットワークの例は、イーサネットネットワークである。本開示の恩恵を前提として当業者には、他のタイプの適切なホームネットワークが明らかになるであろう。
【００１９】
図２に記載された要素は、説明に役立つためのものであることが理解されるべきである。サーバー２００は任意の数の要素を含むことができ、いくつかの要素は他の要素の機能の一部またはすべてをもたらすことができる。本開示の恩恵を前提として当業者には、他の可能な実装形態が明らかになるであろう。
設定および脅威モデル
【００２０】
Ａ．アーキテクチャおよびエンティティ
戻って図１を参照すると、システム１００は、多くのユーザ１２０が、評価器１１０と呼ばれる中央サーバーにデータを提供するように設計される。評価器１１０は、提供されたデータにわたって回帰を行い、後に予測または推奨タスクのために用いられ得るモデルβ１４０を生成する。より具体的には各ユーザｉ＝１；：：：；ｎは、２つの変数
【００２１】
【数１】
2016512612.tif 000003
および
【００２２】
【数２】
2016512612.tif 000004
【００２３】
を備えるプライベートなレコードを有し、評価器は、
【００２４】
【数３】
2016512612.tif 000005
【００２５】
となるように、モデル
【００２６】
【数４】
2016512612.tif 000006
【００２７】
を計算することを望む。目標は、評価器が、回帰アルゴリズムの最終結果であるβ１４０によって明らかにされるものより以上には、ユーザのレコードについて学習することができないことを確実にすることである。システムを初期化するためにはサードパーティが必要であり、これは本明細書では「暗号サービスプロバイダ」と呼ばれ、その作業の大部分をオフラインで行う。
【００２８】
より正確には、図１に示されるようにシステムにおけるパーティは以下の通りである。
・ユーザ１２０：各ユーザｉは、それが評価器１１０に暗号化して送るプライベートなデータｘi、ｙiを有する。
・評価器１１０：暗号化されたデータに対して回帰アルゴリズムを実行し、クリアテキストにおける学習されたモデルβ１４０を取得する。
・暗号サービスプロバイダ（ＣＳＰ）１３０：セットアップパラメータを、ユーザ１２０および評価器１１０に与えることによってシステム１００を初期化する。
【００２９】
ＣＳＰ１３０は、ユーザ１２０が彼等のデータを評価器１１０に提供するずっと以前に、その作業の大部分をオフラインで行う。最も効率的な設計では、ＣＳＰ１３０はまた、評価器１１０がモデルβ１４０を計算するときに、短い一回のオンラインステップのために必要とされる。
【００３０】
Ｂ．脅威モデル
目標は、評価器１１０およびＣＳＰ１３０が、学習アルゴリズムの最終結果によって明らかにされるものより以上には、ユーザ１２０によって提供されたデータについて何も学習し得ないことを確実にすることである。評価器１１０がユーザ１２０の何人かと共謀する場合は、ユーザ１２０は、学習アルゴリズムの結果によって明らかにされるものより以上には、他のユーザ１２０によって提供されたデータについて学習するべきではない。
【００３１】
この例では、正しいモデルβ１４０を生成することが評価器１１０の最優先であることを前提とする。したがって、この実施形態は、誤った結果を生成することを期待して計算を改悪しようとする悪意のある評価器１１０には関心がない。しかしながら、評価器１１０は、不正を行いユーザ１２０によって提供されたプライベートなデータについての情報を学習するように動機付けされるが、なぜならこのデータは、他のパーティ、例えば広告業者に販売され得る可能性があるからである。したがって、悪意のある評価器１１０でさえも、学習アルゴリズムの結果によって明らかにされるものより以上に、ユーザデータについて学習ことが不可能であるべきである。本明細書では、公正であるが好奇心の強い評価器に対してのみ安全な、基本的なプロトコルについて述べられる。
非脅威：システムは、以下の攻撃に対して防御するようには設計されない。
・評価器１１０及びＣＳＰ１３０は、共謀しないことを前提とする。それぞれは上記で述べられたようにシステムを破壊するように試み得るが、それらはこれを独立して行う。より正確には、セキュリティを問題にする場合は、これらの２つのパーティの多くても一方に悪意があることを前提とする（これは固有の要件であり、これなしではセキュリティは達成され得ない）。
・セットアップは正しく働くことを前提とし、すなわちすべてのユーザ１２０はＣＳＰ１３０から正しい公開鍵を取得する。これは実際には証明機関の適切な使用によって強化され得る。
背景
【００３２】
Ａ．線形モデルの学習
評価器１１０がβ１４０を学習するために、システム１１０において行うアルゴリズムであるリッジ回帰について簡潔に概説する。以下で述べられるすべての結果は古典的であり、ほとんどの統計および機械学習教科書に見出され得る。
【００３３】
線形回帰：ｎ個の入力変数
【００３４】
【数５】
2016512612.tif 000007
【００３５】
の組、および出力変数
【００３６】
【数６】
2016512612.tif 000008
【００３７】
の組を所与として、
【００３８】
【数７】
2016512612.tif 000009
【００３９】
となるように関数
【００４０】
【数８】
2016512612.tif 000010
【００４１】
を学習する問題は、回帰として知られている。例えば入力変数は、人の年齢、体重、ボディーマスインデックスなどとすることができ、出力は彼等が病気にかかる可能性の高さとすることができる。
【００４２】
実データからこのような関数を学習することは、データマイニング、統計、および機械学習において回帰を普遍的なものにする多くの興味深い用途を有する。一方では、関数自体は予測、すなわち新しい入力
【００４３】
【数９】
2016512612.tif 000011
【００４４】
の出力値ｙを予測するために用いられ得る。さらに、ｆの構造は、どのように種々の入力が出力に影響を与えるかを識別し、例えば病気に対しては年齢ではなく体重がより強く相関されることを確立する助けとなる。
【００４５】
線形回帰は、ｆが線形マップ、すなわち、ある
【００４６】
【数１０】
2016512612.tif 000012
【００４７】
に対して、
【００４８】
【数１１】
2016512612.tif 000013
【００４９】
によって良好に近似されるという前提に基づく。線形回帰は、科学における推論および統計分析のために最も広く用いられている方法の１つである。さらに、これは、カーネル法など、統計分析および機械学習におけるいくつかのより進んだ方法のための基本的なビルディングブロックである。例えば次数２の多項式である関数を学習することは、１≦ｋ、ｋ’≦ｄに対するｘikｘik’にわたる線形回帰に帰着し、同じ原理は基底関数の有限の組によって広げられる範囲の任意の関数を学習することに一般化され得る。
【００５０】
上述のように、予測のための明白な使用の他に、ベクトルβ＝（βk）k=1,...dは、どのようにｙが入力変数に依存するかを明らかにするので興味深い。特に、係数βkの符号は出力に対する正または負の相関を示し、一方、大きさは相対的な重要度を捕える。これらの係数が比較され得る程度であること、しかしまた数値的に安定であることを確実にするために、入力ｘiは同じ有限のドメイン（例えば［−１；１］）に再スケール化される。
【００５１】
係数の計算：ベクトル
【００５２】
【数１２】
2016512612.tif 000014
【００５３】
を計算するために、後者は
【００５４】
【数１３】
2016512612.tif 000015
【００５５】
にわたる以下の二次関数を最小化することによってデータに適合される。
【００５６】
【数１４】
2016512612.tif 000016
【００５７】
（１）を最小化する手順はリッジ回帰と呼ばれ、目標Ｆ（β）は倹約型の解を優先する、ペナルティ項
【００５８】
【数１５】
2016512612.tif 000017
【００５９】
を組み込む。直感的に、λ＝０に対しては、（１）を最小化することは簡単な最小二乗問題を解くことに対応する。正のλ＞０に対しては、項
【００６０】
【数１６】
2016512612.tif 000018
【００６１】
は大きなノルムを有する解にペナルティを課し、等しくデータに適合する２つの解の間では、大きな係数がより少ない方が好ましい。βの係数は、どのように入力が出力に影響するかを示すものであることを想起すると、これは「オッカムの剃刀」の形として働き、大きな係数がより少ない、より単純な解が好ましい。実際、現実面では、λ＞０は、新しい入力に対して、最小二乗解ベースよりも良い予測をもたらす。
【００６２】
【数１７】
2016512612.tif 000019
【００６３】
を出力のベクトルとし、
【００６４】
【数１８】
2016512612.tif 000020
【００６５】
を各行に１つ、入力ベクトルを備えるマトリックスとする。すなわち
【００６６】
【数１９】
2016512612.tif 000021
【００６７】
および
【００６８】
【数２０】
2016512612.tif 000022
【００６９】
（１）を最小にするものは線形システム
Ａβ＝ｂ  （２）
を解くことによって計算されることができる。ただし、Ａ＝ＸTＸ＋λＩ、および、ｂ＝ＸTｙである。λ＞０に対して、マトリックスＡは正定値対称であり、効率的な解は以下に概説されるようにコレスキー分解を用いて見出され得る。
【００７０】
Ｂ．ヤオのガーブル回路
その基本のバージョンでは、ヤオのプロトコル（ガーブル回路としても知られる）は、セミオネスト（semi-honest）な相手の存在下において、関数ｆ（ｘ1；ｘ2）の２パーティ評価を可能にする。プロトコルは、入力所有者の間で実行される（ａiはユーザｉのプライベートな入力を示す）。プロトコルの終わりには、ｆ（ａ1；ａ2）の値が得られるが、いずれのパーティもこの出力値から明らかにされるものより以上を学習することはない。
【００７１】
プロトコルは、以下のように進む。ガーブラと呼ばれるファーストパーティは、ｆを計算する回路の「ガーブルされた」バージョンを組み立てる。次いで、ガーブラは、評価器と呼ばれるセカンドパーティに、ガーブル回路、およびａ1に対応するガーブル回路入力値（かつそれらのもののみ）を与える。表記法ＧＩ（ａ1）は、これらの入力値を示すために用いられる。ガーブラはまた、ガーブル回路出力値と実際のビット値との間のマッピングをもたらす。回路を受け取るとすぐに評価器は、ガーブラと二者択一紛失通信プロトコルを行い、選択者の役割を果たし、それによりそのプライベートな入力ａ2に対応するガーブル回路入力値ＧＩ（ａ2）を紛失的に取得する。したがって、評価器は、ＧＩ（ａ1）およびＧＩ（ａ2）からｆ（ａ1；ａ2）を計算することができる。
【００７２】
より詳細には、プロトコルは、図３に見られるようにブール回路３００を通して関数ｆを評価する。ガーブラは、回路の各線ｗi３１０、３２０に、それぞれビット値ｂi＝０およびｂi＝１に対応する２つのランダム暗号鍵
【００７３】
【数２１】
2016512612.tif 000023
【００７４】
および
【００７５】
【数２２】
2016512612.tif 000024
【００７６】
を関連付ける。次に、ガーブラは、入力線（ｗi、ｗj）３１０、３２０、および出力線ｗk３３０を有する各２進ゲートｇ（例えばＯＲゲート）に対して、以下の４つの暗号化テキストを計算する。
【００７７】
【数２３】
2016512612.tif 000025
【００７８】
これら４つのランダムに順序付けられた暗号化テキストの組は、ガーブルゲートを定義する。
【００７９】
鍵の対による鍵付きである対称暗号化アルゴリズムＥｎｃは、選択された平文攻撃のもとで区別できない暗号を有することを必要とする。また、鍵の対
【００８０】
【数２４】
2016512612.tif 000026
【００８１】
を所与として、対応する復号プロセスは、ガーブルゲートを構成する４つの暗号化テキストから、
【００８２】
【数２５】
2016512612.tif 000027
【００８３】
の値を曖昧さを残さず回復することを必要とする。
【００８４】
【数２６】
2016512612.tif 000028
【００８５】
の知識は
【００８６】
【数２７】
2016512612.tif 000029
【００８７】
の値を生じるだけであり、このゲートに対する他の出力値は回復され得ないことに留意することは価値がある。したがって、評価器は、中間の計算についての追加の情報が漏洩しないように、ガーブル回路全体をゲートごとに評価することができる。
【００８８】
ハイブリッド方法
このセットアップにおいては各入力および出力変数ｘi、ｙi、ｉ∈［ｎ］はプライベート（private）であり、異なるユーザによって保持されることを想起されたい。評価器１１０は、所与のλ＞０によってリッジ回帰を通して得られるのに従って、入力と出力変数の間の線形関係を決定するβを学習することを望む。
【００８９】
上記で述べられたように、βを取得するためには、式（２）で定義されるようにマトリックス
【００９０】
【数２８】
2016512612.tif 000030
【００９１】
およびベクトル
【００９２】
【数２９】
2016512612.tif 000031
【００９３】
を必要とする。これらの値が取得された後に評価器１１０は、式（２）の線形システムを解き、βを抽出することができる。この問題にプライバシー保護のやり方で取り組むためのいくつかの方法がある。例えば、秘密共有または完全準同型暗号に依存することができる。現在これらの技法はかなりの（オンライン）通信および計算オーバヘッドに繋がるので、現在の設定には不適切であると思われる。したがって、上記で概説されたようにヤオの方法が検討される。
【００９４】
ヤオの方法を用いる１つの簡単な方法は、マトリックスＡおよびｂを計算し、その後にシステムＡβ＝ｂを解く、ｉ∈［ｎ］に対する入力ｘi、ｙi、およびλ＞０を有する単一の回路を設計することである。このような方法は、過去において、オークションの勝者など、複数のユーザから来る入力の簡単な関数の計算に用いられている。実装の問題（線形システムを解く回路をどのように設計するかなど）は脇に置いて、このような解決策の重大な欠点は、結果としてのガーブル回路がユーザの数ｎ、ならびにβおよび入力変数に次元ｄの両方に依存することである。実際の応用では、ｎは大きいことが一般的であり、数百万程度のユーザとなり得る。これと対照的に、ｄは比較的小さく、数十程度である。したがって、スケーラブルな解決策を得るようにガーブル回路のｎにおける依存性を低減する、さらにはなくすことが好ましい。この目的のために、問題は、以下で述べられるように再公式化された。
【００９５】
Ａ．問題の再公式化
マトリックスＡおよびベクトルｂは、以下のように反復的なやり方で計算され得ることに留意されたい。各ｘi、および対応するｙiは異なるユーザによって保持されると仮定すると、各ユーザｉは、マトリックス
【００９６】
【数３０】
2016512612.tif 000032
【００９７】
およびベクトルｂi＝ｙiｘiをローカルに計算することができる。次いで、部分的寄与分を合計することで、以下を生じることが容易に検証される。
【００９８】
【数３１】
2016512612.tif 000033
【００９９】
式（３）が、Ａおよびｂは一連の加算の結果であることを示すことは重要である。したがって、評価器の回帰タスクは、次の２つのサブタスクに分離され得る：（ａ）Ａiおよびｂiを収集してマトリックスＡおよびベクトルｂを構築し、（ｂ）これらを用いて線形システム（２）の解を通してβを取得する。
【０１００】
もちろんユーザは、彼等のローカルな分担（Ａi；ｂi）を評価器にクリアテキストで送ることはできない。しかしながら、後者が公開鍵加法準同型暗号方式を用いて暗号化されている場合は、評価器１１０は（Ａi；ｂi）の暗号から、Ａおよびｂの暗号を再構築することができる。残る課題は、β以外の追加の情報を（評価器１１０またはＣＳＰ１３０に）明らかにせずに、ＣＳＰ１３０の助けにより式（２）を解くことであり、それをヤオのガーブル回路の使用を通して行う２つの異なる方法が以下で述べられる。
【０１０１】
【数３２】
2016512612.tif 000034
【０１０２】
を、入力においてメッセージ空間Ｍにおける対（Ａi；ｂi）をよりはっきり取り込み、ｐｋ、ｃiのもとで（Ａi；ｂi）の暗号化を返す、公開鍵ｐｋによってインデックス付けされた強秘匿暗号方式とする。次いで、これは、任意のｐｋ、および任意の２つの対（Ａi；ｂi）、（Ａj；ｂj）に対して、
【０１０３】
【数３３】
2016512612.tif 000035
【０１０４】
が、ある公開２進演算子に対し成り立たなければならない。このような暗号方式は、Ａiおよびｂiのエントリを構成要素ごとに暗号化することによって、任意の強秘匿加法準同型暗号方式から構築され得る。例は、Ｒｅｇｅｖの方式およびＰａｉｌｌｉｅｒの方式を含む。
【０１０５】
ここで、プロトコルを示す準備が整った。図４には、高レベルフローチャート４００が示される。フローチャート４００は、準備段階４１０、第１の段階（段階１）４２０、および第２の段階（段階２）４３０を含む。ユーザ分担を総計する段階は、段階１  ４２０と呼ばれ、それが関係する加算は、線形的にｎに依存することに留意されたい。その後の段階は、Ａおよびｂの暗号化された値から式（２）の解を計算することを意味し、段階２  ４３０と呼ばれる。段階２  ４３０は、ｎに依存しないことに留意されたい。これらの段階は、特定のプロトコルと共に以下で論じられる。以下では、システムＡβ＝ｂを解くことができる回路の存在を仮定していることが留意され、本明細書ではどのようにこのような回路が効率的に実装され得るかについて述べられる。
【０１０６】
Ｂ．第１のプロトコル
図５に、第１のプロトコルの動作の高レベルの叙述５００が見られ得る。第１のプロトコルは、以下のように動作する。上記に述べられたように第１のプロトコルは、３つの段階、準備段階５１０、段階１  ５２０、段階２  ５３０を備える。明らかになるように、段階２  ５３０のみが実際にオンライン処理を必要とする。
【０１０７】
準備段階（５１０）。評価器１１０は、入力変数の次元（すなわちパラメータｄ）およびそれらの値の範囲などの仕様をＣＳＰ１３０にもたらす。ＣＳＰ１３０は、段階２  ５３０において記述された回路に対するヤオガーブル回路を準備し、ガーブル回路を評価器１１０が利用できるようにする。ＣＳＰ１３０はまた準同型暗号方式
【０１０８】
【数３４】
2016512612.tif 000036
【０１０９】
のための公開鍵ｐｋcspおよび秘密鍵ｓｋcspを生成する一方、評価器１１０は暗号方式ε（準同型である必要はない）のための公開鍵ｐｋevおよび秘密鍵ｓｋevを生成する。
【０１１０】
段階１（５２０）。各ユーザｉは、その部分マトリックスＡiおよびベクトルｂiをローカルに計算する。次いで、これらの値は、ＣＳＰ１３０の公開暗号鍵ｐｋcspのもとで、加法準同型暗号方式
【０１１１】
【数３５】
2016512612.tif 000037
【０１１２】
を用いて暗号化され、すなわち、
【０１１３】
【数３６】
2016512612.tif 000038
【０１１４】
となる。
【０１１５】
ＣＳＰ１３０がこの値へのアクセスを得ることを防止するために、ユーザｉは、評価器１１０の公開暗号鍵ｐｋevのもとでｃiの値を超暗号化し、すなわち、
【０１１６】
【数３７】
2016512612.tif 000039
【０１１７】
とし、Ｃｉを評価器１１０に送る。
【０１１８】
評価器１１０は、
【０１１９】
【数３８】
2016512612.tif 000040
【０１２０】
を計算する。その後にすべての受け取ったＣiを収集し、その秘密復号鍵ｓｋevを用いてそれらを復号してｃiを回復し、すなわち１≦ｉ≦ｎに対して、
【０１２１】
【数３９】
2016512612.tif 000041
【０１２２】
とする。
【０１２３】
次いで、このようにして得られた値を総計し、以下を得る。
【０１２４】
【数４０】
2016512612.tif 000042
【０１２５】
段階２（５３０）。準備段階５１０においてＣＳＰ１３０によってもたらされるガーブル回路は、入力としてＧＩ（ｃ）を取り込み、以下の２つのステップを行う回路のガーブル化である。
【０１２６】
１）ｓｋcspによってｃを復号してＡおよびｂを回復し（ここで、ｓｋcspはガーブル回路内に埋め込まれる）；
２）式（２）を解き、βを返す。
【０１２７】
この段階２  ５３０では、評価器１１０は、ｃに対応するガーブル回路入力値、すなわちＧＩ（ｃ）を取得する必要があるだけである。これらは、評価器１１０とＣＳＰ１３０の間で、標準の紛失通信（ＯＴ）を利用して取得される。
【０１２８】
上記のハイブリッド計算は、ガーブル回路内で暗号化された入力の復号を行う。これは過剰な要求となり得るので、
【０１２９】
【数４１】
2016512612.tif 000043
【０１３０】
のためのビルディングブロックとして例えばＲｅｇｅｖ準同型暗号方式を用いることが提案されるが、これはＲｅｇｅｖ方式が非常に簡単な復号回路を有するからである。
【０１３１】
Ｃ．第２のプロトコル
図６に、第２のプロトコルの動作の高レベルの叙述６００が見られ得る。第２のプロトコルは、ランダムマスクを用いてガーブル回路内で（Ａ；ｂ）を復号することを回避する変形形態をもたらす。段階１  ６１０は、概して同じである。したがって、段階２（および対応する準備段階）が強調される。この着想は、準同型特性を活用して、加法マスクによって入力を不明瞭化することである。（μA；μb）がＭ（すなわち準同型暗号
【０１３２】
【数４２】
2016512612.tif 000044
【０１３３】
のメッセージ空間）の要素を表す場合は、式（４）から以下となる。
【０１３４】
【数４３】
2016512612.tif 000045
【０１３５】
したがって、評価器１１０が、Ｍにおけるランダムマスク（μA；μb）を選択し、ｃを上記のように不明瞭化し、結果の値をＣＳＰ１３０に送ると仮定する。次いで、ＣＳＰ１３０は、その復号鍵を適用し、マスクされた値を回復することができる。
【０１３６】
【数４４】
2016512612.tif 000046
【０１３７】
結果として、復号がマスクの除去によって置き換えられた、前のセクションのプロトコルを適用することができる。より詳しくは以下のものが関わる。
【０１３８】
準備段階（６１０）。前のように、評価器１１０は、評価をセットアップする。評価器１１０は、その評価をサポートするガーブル回路を組み立てるように、ＣＳＰ１３０に仕様をもたらす。ＣＳＰ１３０は、回路を準備し、それを評価器１１０が利用できるようにし、両方は公開鍵および秘密鍵を生成する。評価器１１０は、ランダムマスク（μA；μb）∈Ｍを選択し、ＣＳＰ１３０と紛失通信（ＯＴ）プロトコルを行って、（μA；μb）に対応するガーブル回路入力値すなわちＧＩ（μA；μb）を得る。
【０１３９】
段階１（６２０）。これは第１のプロトコルと同様である。さらに、評価器１１０は、以下のようにｃをマスクする。
【０１４０】
【数４５】
2016512612.tif 000047
【０１４１】
段階２（６３０）。評価器１１０は、
【０１４２】
【数４６】
2016512612.tif 000048
【０１４３】
をＣＳＰ１３０に送り、これはそれを復号してクリアテキストでの
【０１４４】
【数４７】
2016512612.tif 000049
【０１４５】
を取得する。次いでＣＳＰ１３０は、ガーブルされた入力値
【０１４６】
【数４８】
2016512612.tif 000050
【０１４７】
を評価器１１０に送り戻す。準備段階においてＣＳＰ１３０によってもたらされたガーブル回路は、入力として
【０１４８】
【数４９】
2016512612.tif 000051
【０１４９】
およびＧＩ（μA；μb）を取り込む回路のガーブル化であり、以下の２つのステップを行う。
【０１５０】
１）
【０１５１】
【数５０】
2016512612.tif 000052
【０１５２】
からマスク（μA；μb）を減算して、Ａおよびｂを回復し；
２）式（２）を解き、βを返す。
【０１５３】
ガーブル回路、および（μA；μb）に対応するガーブル回路入力値ＧＩ（μA；μb）は、準備段階６１０の間に取得されている。この段階では、評価器１１０は、ＣＳＰ１３０から、
【０１５４】
【数５１】
2016512612.tif 000053
【０１５５】
に対応するガーブル回路入力値
【０１５６】
【数５２】
2016512612.tif 000054
【０１５７】
を受け取るだけでよい。この段階では、紛失通信（ＯＴ）は存在しないことに留意されたい。
【０１５８】
この第２の具現化に対しては、回路の一部として復号は実行されない。したがって、回路として効率的に実装され得る準同型暗号方式を選択するように制限されない。Ｒｅｇｅｖの方式の代わりに、Ｐａｉｌｌｉｅｒの方式、またはそのＤａｍｇａｒｄおよびＪｕｒｉｋによる一般化を、
【０１５９】
【数５３】
2016512612.tif 000055
【０１６０】
のためのビルディングブロックとして用いることが提案される。これらの方式は、Ｒｅｇｅｖより短い暗号化テキスト展開を有し、より小さい鍵を必要とする。
【０１６１】
Ｄ．第３のプロトコル
いくつかの用途に対して、準同型暗号方式が部分的準同型特性のみを有するときに、関連する着想が当てはまる。この観念は次の定義において明らかにされる。
【０１６２】
定義１：部分的準同型暗号方式は、秘密暗号鍵を必要とせずに、暗号化された平文に定数を加算する（部分的準同型性が加法的である場合）または乗算する（部分的準同型性が乗法的である場合）ことが可能な暗号方式である。
【０１６３】
以下はいくつかの例である。
【０１６４】
・素体が
【０１６５】
【数５４】
2016512612.tif 000056
【０１６６】
で表されるものとし、Ｇ＝＜ｇ＞をｇによって生成される乗法的グループ
【０１６７】
【数５５】
2016512612.tif 000057
【０１６８】
の巡回サブグループとする。ｑはＧの位数を表すものとする。平文エルガマル暗号化に対してメッセージ空間はＭ＝Ｇである。公開暗号鍵はｙ＝ｇxであり、秘密鍵はｘである。Ｍにおけるメッセージｍの暗号化は、あるランダムな
【０１６９】
【数５６】
2016512612.tif 000058
【０１７０】
に対して、Ｒ＝ｇrおよびｃ＝ｍｙrとして（Ｒ；ｃ）によって与えられる。次いで平文ｍは秘密鍵ｘを用いて、ｍ＝ｃ／Ｒxとして回復される。
【０１７１】
−上記のシステムは、
【０１７２】
【数５７】
2016512612.tif 000059
【０１７３】
における乗算に対して部分的準同型である：任意の定数Ｋ∈Ｍに対して、Ｃ’＝（Ｒ；Ｋｃ）は、メッセージの暗号化ｍ’＝Ｋｍである。
【０１７４】
・いわゆるハッシュ型エルガマル暗号システムは、あるパラメータｋに対して、Ｇからのグループ要素を
【０１７５】
【数５８】
2016512612.tif 000060
【０１７６】
にマップするハッシュ関数Ｈをさらに必要とする。メッセージ空間は、
【０１７７】
【数５９】
2016512612.tif 000061
【０１７８】
である。鍵生成は、平文エルガマルの場合のようになる。メッセージｍ∈Ｍの暗号化は、あるランダムな
【０１７９】
【数６０】
2016512612.tif 000062
【０１８０】
に対して、Ｒ＝ｇrおよびｃ＝ｍ＋Ｈ（ｙr）として（Ｒ；ｃ）によって与えられる。次いで平文ｍは、秘密鍵ｘを用いてｍ＝ｃ＋Ｈ（Ｒx）として回復される。「＋」は、
【０１８１】
【数６１】
2016512612.tif 000063
【０１８２】
における加算に対応することに留意されたい（すなわち、これはｋビットストリングに対するＸＯＲと等価と見なされ得る）。
【０１８３】
−上記のシステムは、ＸＯＲに対して部分的準同型である：任意の定数Ｋ∈Ｍに対して、Ｃ’＝（Ｒ；Ｋ＋ｃ）はメッセージの暗号化ｍ’＝Ｋ＋ｍである。
【０１８４】
非限定的な例を目的として、ここでｃは部分的準同型暗号方式、例えば
【０１８５】
【数６２】
2016512612.tif 000064
【０１８６】
のもとでの（Ａ；ｂ）の暗号化であるとすると、（μA；μb）がＭ（すなわち部分的準同型暗号
【０１８７】
【数６３】
2016512612.tif 000065
【０１８８】
のメッセージ空間）における要素を表す場合は、式（４）からある演算子
【０１８９】
【数６４】
2016512612.tif 000066
【０１９０】
に対して、次のようになる。
【０１９１】
【数６５】
2016512612.tif 000067
【０１９２】
（上の記述で準同型性は加法的に示される；同じことが乗法的に書かれた準同型性に対しても成り立つ。）
【０１９３】
したがって、評価器１１０が、Ｍにおけるランダムマスク（μA；μb）を選択し、ｃを上記のように不明瞭化し、結果の値をＣＳＰ１３０に送ると仮定する。次いで、ＣＳＰ１３０は、その復号鍵を適用し、マスクされた値を回復することができる。
【０１９４】
【数６６】
2016512612.tif 000068
【０１９５】
結果として、復号がマスクの除去によって置き換えられた、前のセクションのプロトコルが適用され得る。
【０１９６】
最後に、第２または第３のプロトコルに従ってマスクを用いる方策は、リッジ回帰の場合に限定されないことに留意されたい。これは準同型暗号（それぞれ部分的準同型暗号）をガーブル回路とハイブリッドの形で組み合わせる任意の応用例において使用され得る。
【０１９７】
Ｅ．考察
提案されたプロトコルは、それらを現実世界のシナリオにおいて効率的かつ実用的にするいくつかの長所を有する。第１に、処理時にユーザがオンラインのままでいる必要がない。段階１  ４２０は増分的であるので、各ユーザは彼等の暗号化された入力を提出し、システムから離れることができる。
【０１９８】
さらに、システム１００は、リッジ回帰を複数回行うように容易に適用され得る。評価器１１０がｌ個の推定を行うことを望むと仮定すると、それは準備段階４１０の間に、ＣＳＰ１３０からｌ個のガーブル回路を取り出すことができる。新しいユーザ１２０の到着に対応するために、複数の推定が用いられ得る。特に公開鍵は寿命が長いので、それらは過度にしばしばリフレッシュされる必要はなく、これは新しいユーザがさらなる対（Ａi；ｂi）を評価器１１０に提出したときに、後者はそれらを前の値と合計し、更新されたβを計算できることを意味する。このプロセスは新しいガーブル回路の利用を必要とするが、すでに入力を提出しているユーザはそれらを再提出する必要はない。
【０１９９】
最後に、必要な通信の量は秘密共有方式におけるよりも大幅に小さく、評価器１１０およびＣＳＰ１３０のみが紛失通信（ＯＴ）を用いて通信する。また段階１  ４２０において公開鍵暗号方式εを用いるのではなく、ユーザは例えばＳＳＬなどの任意の手段を用いて評価器１１０との安全な通信を確立できることに留意されたい。
【０２００】
Ｆ．さらなる最適化
マトリックスＡは、
【０２０１】
【数６７】
2016512612.tif 000069
【０２０２】
におけるものであり、ベクトルｂは、
【０２０３】
【数６８】
2016512612.tif 000070
【０２０４】
におけるものであることを想起されたい。したがって、ｋを実数を符号化するために用いられるビットサイズを表すものとすると、マトリックスＡおよびベクトルｂはそれぞれ、それらの表示のためにｄ2ｋビットおよびｄｋビットを要する。第２のプロトコルは、Ｍにおけるランダムマスク（μA；μb）を必要とする。準同型暗号方式
【０２０５】
【数６９】
2016512612.tif 000071
【０２０６】
がＰａｉｌｌｉｅｒの方式の上に組み立てられ、Ａおよびｂのあらゆるエントリは個々にＰａｉｌｌｉｅｒ暗号化されると仮定する。この場合、
【０２０７】
【数７０】
2016512612.tif 000072
【０２０８】
のメッセージ空間Ｍは、あるＲＳＡモジュラスＮに対して、
【０２０９】
【数７１】
2016512612.tif 000073
【０２１０】
における（ｄ2＋ｄ）個の要素からなる。しかし、これらの要素はｋビット値であるので、全体の範囲
【０２１１】
【数７２】
2016512612.tif 000074
【０２１２】
において対応するマスク値を引き出す必要はない。対応するエントリをそれらが統計的に隠蔽する限り、ある（比較的短い）セキュリティ長さｌに対して任意の（ｋ＋１）ビット値でよい。実際には、これは準備段階における、より少ない紛失通信、およびより小さなガーブル回路に繋がる。
【０２１３】
効率を改善する別の方法は、Ａおよびｂの複数の平文エントリを、単一のＰａｉｌｌｉｅｒ暗号化テキストにパックする、標準のバッチ技法による。例えば２０個の平文値を単一のＰａｉｌｌｉｅｒ暗号化テキスト（十分に多くの０によって分離された）にパックすることで、段階１の実行時間を１／２０に減少させる。
【０２１４】
実装
プライバシー保護システムの実用性を評価するために、システムが実装され、人工的および実データセットの両方に対して試験された。上記で提案された第２のプロトコルが実装されたが、これはガーブル回路内で復号を必要とせず、段階１のために効率的な準同型暗号（合計だけを必要とする）の使用を可能にするからである。
【０２１５】
Ａ．段階１実装
上記で述べられたように準同型暗号のために、１０２４ビットの長さのモジュラスを有するＰａｉｌｌｉｅｒの方式が用いられ、これは８０ビットのセキュリティレベルに対応する。段階１を高速化するためにまた、上記で概説されたようにバッチが実装された。入力を提供するｎ人のユーザを所与として、１０２４ビットの１つのＰａｉｌｌｉｅｒ暗号化テキスト内にバッチされ得る要素の数は１０２４＝（ｂ＋ｌｏｇ2ｎ）であり、ｂは数を表すためのビットの総数である。後に述べられるように、ｂは所望の精度の関数として決定され、したがってこの実験では１５から３０の間の要素がバッチされた。
【０２１６】
Ｂ．回路ガーブル化フレームワーク
システムは、開発者が基本的なＸＯＲ、ＯＲ、およびＡＮＤゲートを用いて任意の回路を定義することを可能にするＪａｖａベースのオープンソースフレームワークであるＦａｓｔＧＣの上に組み立てられた。回路が構築された後にフレームワークは、ガーブル化、紛失通信、およびガーブル回路の完全な評価を取り扱う。ＦａｓｔＧＣは、いくつかの最適化を含む。第１に、回路内のＸＯＲゲートのための通信および計算コストは、「フリーＸＯＲ」技法を用いて大幅に低減される。第２に、ガーブル化行低減技法を用いて、ＦａｓｔＧＣはフレームワーク内で２ファンインゲートのみが定義されるので、ｋファンイン非ＸＯＲゲートのための通信コストを１＝２kだけ低減し、これは２５％の通信の節約をもたらす。第３に、ＦａｓｔＧＣは、ｋ個のＯＴ、および追加のＯＴごとにいくつかの対称的な鍵動作のコストで、実際的に無制限の数の転送を実行することができるＯＴ拡張を実装する。最後に、最後の最適化は簡潔な「３ビットの加算」回路であり、これは４つのＸＯＲゲート（これらのすべては通信および計算の観点からは「コストなし」である）と、１つだけのＡＮＤゲートとを有する回路を定義する。ＦａｓｔＧＣは、ガーブル化および評価が平行して生じることを可能にする。より具体的には、ＣＳＰ１３０は、ガーブル化されたテーブルを、それらが回路構造によって定義される順序で生成されるのに従って、評価器１１０に送信する。次いで、評価器１１０は、利用可能な出力値およびテーブルに基づいて、どのゲートが次を評価するかを決定する。ゲートが評価された後に、その対応するテーブルは直ちに廃棄される。これは、すべてのガーブル回路をオフラインで事前に計算するのと同じ計算および通信コストを意味するが、メモリ消費を一定にさせる。
【０２１７】
Ｃ．回路における線形システムを解く
この方法の主な課題は、式（２）で定義されるような線形システムＡβ＝ｂを解く回路を設計することである。関数をガーブル回路として実装するときは、データ不可知な、すなわちその実行パスが入力に依存しない演算を用いることが好ましい。例えば入力はガーブル化されているので、評価器１１０は、ｉｆ−ｔｈｅｎ−ｅｌｓｅ文のすべての起こり得るパスを実行する必要があり、これはネストされた条件文の存在下では、回路サイズおよび実行時間の両方の指数関数的増大に繋がる。これは、例えばガウス消去法などのピボット演算を必要とする、線形システムを解くための従来のアルゴリズムのいずれも非実用的にする。
【０２１８】
簡単にするために、このシステムは、以下に示される標準のコレスキーアルゴリズムを実装した。しかしながら、その複雑さは、同様な技法を用いたブロックごとの反転と同じ複雑さまで、さらに低減され得ることに留意されたい。
【０２１９】
線形システムを解くためのいくつかの可能な分解方法がある。コレスキー分解は、マトリックスＡが正定値対称であるときにのみ適用可能な、線形システムを解くためのデータ不可知な方法である。コレスキーの主な利点は、ピボット演算を必要とせず数値的にロバスト性が高いことである。特にこれは、固定小数点数表現に適している。
【０２２０】
【数７３】
2016512612.tif 000075
【０２２１】
は、実際にλ＞０に対して正定値マトリックスであるので、この実装においてＡβ＝ｂを解く方法としてコレスキーが選ばれた。
【０２２２】
コレスキー分解の主なステップ、以下に簡潔に概説される。アルゴリズムは、Ａ＝ＬTＬとなるように下側三角マトリックスＬを構築し：その結果、システムＡβ＝ｂを解くことは、以下の２つのシステムを解くことになる。
ＬTｙ＝ｂ、および
Ｌβ＝ｙ
【０２２３】
マトリックスＬおよびＬＴは三角形であるので、これらのシステムは、後退代入を用いて容易に解かれ得る。さらに、マトリックスＡは正定値であるので、マトリックスＬは必然的に対角線上に非ゼロ値を有し、したがってピボット演算は必要ない。
【０２２４】
分解Ａ＝ＬTＬは、図７に示されるアルゴリズムにおいて記述される。これはΘ（ｄ3）個の加算、Θ（ｄ3）個の乗算、Θ（ｄ2）個の除算、およびΘ（ｄ）個の平方根演算を必要とする。さらに、後方変数減少法によって上記２つのシステムを解くことは、Θ（ｄ2）個の加算、Θ（ｄ2）個の乗算、およびΘ（ｄ）個の除算を必要とする。これらの演算の回路としての実装は、以下で述べられる。
【０２２５】
Ｄ．実数の表示
線形システム（２）を解くためには、実数を２進数の形で正確に表すこと必要である。実数を表すための２つの可能な方法、すなわち浮動小数点および固定小数点が検討された。実数ａの浮動小数点表現は、以下の公式で与えられる。
［ａ］＝［ｍ；ｐ］；ただし、ａ≒１．ｍ・２p
【０２２６】
浮動小数点表現は、実質的に任意の大きさの数に対応するという利点を有する。しかしながら、浮動小数点表現に対する加算などの基本演算は、データ不可知な方法で実装することが難しい。最も重要なこととして、コレスキーを用いることは固定小数点表現を用いることを保証し、これは実装するのが大幅に簡単になる。実数ａを所与として、その固定小数点表現は次によって与えられる。
［ａ］＝［ａ・２p］、ただし、指数ｐは固定である。
【０２２７】
本明細書で述べられたように、行われる必要がある演算の多くは、固定小数点数に対してデータ不可知なやり方で実装され得る。したがって、固定小数点数表現のために生成される回路は、ずっと小さくなる。さらに、βの係数が比較され得ることを確実にするために、および数値的安定性のために、リッジ回帰の入力変数ｘiは、通常は同じドメイン（−１と１との間）に再スケール化されることを想起されたい。このようなセットアップでは、オーバフローに繋がることなく、固定小数点数を有するＡにコレスキー分解が行われ得ることが知られている。さらに、ｙiに対する限界およびマトリックスＡの条件数を所与として、オーバフローを防ぐために必要なビットは、方法における最後の２つの三角形システムを解きながら計算され得る。したがって、システムは、固定小数点表現を用いて実装された。小数部のためのビット数ｐは、システムパラメータとして選択されることができ、システムの精度と生成される回路のサイズとのトレードオフを生じる。しかしながら、ｐを選択することは、所望の精度に基づいて、原則に基づいた方法で行われ得る。負の数は、標準の２の補数表現を用いて表される。
【０２２８】
本明細書において開示された様々な実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせとして実装することができる。さらにソフトウェアは、プログラム記憶装置またはコンピュータ可読媒体上に有形に具体化されたアプリケーションプログラムとして実装されることが好ましい。アプリケーションプログラムは、任意の適切なアーキテクチャを備えたマシンにアップロードされ、それによって実行され得る。マシンは、１つまたは複数の中央処理装置（「ＣＰＵ」）、メモリ、および入力／出力インターフェースなどのハードウェアを有する、コンピュータプラットフォーム上に実装されることが好ましい。コンピュータプラットフォームはまた、オペレーティングシステムおよびマイクロ命令コードを含むことができる。本明細書で述べられた様々なプロセスおよび機能は、マイクロ命令コードの一部もしくはアプリケーションプログラムの一部、またはそれらの組み合わせとすることができ、これらはそのようなコンピュータまたはプロセッサーが明示されているか否かに拘わらずＣＰＵによって実行され得る。さらに、追加のデータ記憶装置および印刷装置などの様々な他の周辺装置が、コンピュータプラットフォームに接続され得る。
【０２２９】
本明細書に記載されたすべての例および条件的な語句は、実施形態の原理、および当技術分野を発展させるために発明者によって提供された概念の理解において、読者を補助するための教育的な目的のためであり、このような具体的に記載された例および条件には限定されないものと解釈されるべきである。さらに、本明細書における、本発明の原理、態様、および多様な実施形態、ならびにそれらの特定の例を述べるすべての記述は、それらの構造的および機能的等価物の両方を包含することが意図される。さらにこのような等価物は、現在知られている等価物、および将来に開発される等価物、すなわち構造に拘わらず同じ機能を行うように開発される任意の要素の両方を含むものとする。
【図１】
2016512612.tif 000076
【図２】
2016512612.tif 000077
【図３】
2016512612.tif 000078
【図４】
2016512612.tif 000079
【図５】
2016512612.tif 000080
【図６】
2016512612.tif 000081
【図７】
2016512612.tif 000082
【国際調査報告】
2016512612.tif 000083
2016512612.tif 000084