(57)【要約】【課題】信号に関数を適用した結果を求めるためのシステム及び方法を開示する。【解決手段】関数は単項式を含む多項式関数であり、ここで、第１の信号の第１の冪乗が単項式の第１の部分を形成し、第２の信号の第２の冪乗が単項式の第２の部分を形成する。鍵を用いて暗号化された単項式の第１の部分は第１の暗号化信号であり、鍵を用いて暗号化された単項式の第２の部分は第２の暗号化信号である。本方法及びシステムは、第２の公開鍵を用いて暗号化された第１の入力信号を第２のプロセッサに送信するステップであって、該第１の入力信号は第１の暗号化信号を含む、送信するステップと、第１の公開鍵を用いて暗号化された第２の入力信号を第１のプロセッサに送信するステップであって、該第２の入力信号は、第１の暗号化信号と第２の暗号化信号との積を含む、送信するステップとを含む。【選択図】図１
2011118387.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサ内に格納される第１の信号及び第２のプロセッサ内に格納される第２の信号を含む信号に、関数を適用した結果を求めるための方法であって、前記関数は、この関数における単項式が、この単項式の第１の部分を形成する前記第１の信号の第１の冪乗と、この単項式の第２の部分を形成する前記第２の信号の第２の冪乗とを含むような、前記信号の多項式関数であり、秘密鍵を用いて暗号化された前記単項式の前記第１の部分は第１の暗号化信号であり、前記秘密鍵を用いて暗号化された前記単項式の前記第２の部分は第２の暗号化信号であり、
前記第１のプロセッサから、前記第１の暗号化信号と係数との第１の積を受信するステップであって、前記第１の積は第２の公開鍵を用いて暗号化され、前記第２の公開鍵に対応する第２の秘密鍵は前記第２のプロセッサに利用可能である、受信するステップと、
前記第１の積を前記第２のプロセッサに送信するステップと、
前記第２のプロセッサから、前記第１の暗号化信号と、前記第２の暗号化信号と、前記係数との第２の積を受信するステップであって、前記第２の積は、第１の公開鍵を用いて暗号化され、前記第１の公開鍵に対応する第１の秘密鍵は前記第１のプロセッサに利用可能である、受信するステップと、
前記第２の積を前記第１のプロセッサに送信するステップと、
前記第１のプロセッサから前記第１の暗号化信号と前記第２の暗号化信号との積を受信するステップと、
を含む信号に関数を適用した結果を求めるための方法。
【請求項２】
前記積を、前記公開鍵に対応する秘密鍵を用いて復号するステップをさらに含む請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項３】
前記第２のプロセッサによって、前記第２の秘密鍵を用いて前記第１の積を復号するステップをさらに含む請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項４】
前記第１のプロセッサによって、前記第１の秘密鍵を用いて前記第２の積を復号するステップをさらに含む請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項５】
前記第２の積から前記係数を取り除くステップをさらに含む請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項６】
前記係数をランダム整数として選択するステップをさらに含む請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項７】
前記第１の信号及び前記第２の信号は整数値を有する請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項８】
前記秘密鍵及び前記公開鍵を取得するステップであって、前記秘密鍵及び前記公開鍵は、乗法準同型暗号化のための鍵の対である、取得するステップと、
前記公開鍵を、前記第１のプロセッサ及び前記第２のプロセッサに送信するステップと、
をさらに含む請求項１に記載の信号に関数を適用した結果を求めるための方法。
【請求項９】
第１のプロセッサ内に格納される第１の信号及び第２のプロセッサ内に格納される第２の信号を含む信号に、関数を適用した結果を求めるための方法であって、前記関数は、この関数における単項式が、この単項式の第１の部分を形成する前記第１の信号の第１の冪乗と、この単項式の第２の部分を形成する前記第２の信号の第２の冪乗とを含むような、前記信号の多項式関数であり、鍵を用いて暗号化された前記単項式の前記第１の部分は第１の暗号化信号であり、前記鍵を用いて暗号化された前記単項式の前記第２の部分は第２の暗号化信号であり、
第２の公開鍵を用いて暗号化された第１の入力信号を前記第２のプロセッサに送信するステップであって、前記第１の入力信号は前記第１の暗号化信号を含み、前記第２のプロセッサは第２の秘密鍵を用いて前記第１の入力信号を復号するように構成される、送信するステップと、
第１の公開鍵を用いて暗号化された第２の入力信号を前記第１のプロセッサに送信するステップであって、前記第２の入力信号は、前記第１の暗号化信号と前記第２の暗号化信号との積を含み、前記第１のプロセッサは第１の秘密鍵を用いて前記第２の入力信号を復号するように構成される、送信するステップと、
前記第１の暗号化信号と前記第２の暗号化信号との積を受信するステップと、
を含む信号に関数を適用した結果を求めるための方法。
【請求項１０】
前記第１の鍵及び前記第２の鍵は公開鍵暗号化のための鍵である請求項９に記載の信号に関数を適用した結果を求めるための方法。
【請求項１１】
前記第１の鍵及び前記第２の鍵は、加法的準同型暗号システムの鍵である請求項９に記載の信号に関数を適用した結果を求めるための方法。
【請求項１２】
前記第１の鍵及び前記第２の鍵は、乗法準同型暗号システムの鍵である請求項９に記載の信号に関数を適用した結果を求めるための方法。
【請求項１３】
前記積を前記公開鍵に対応する秘密鍵を用いて復号するステップをさらに含む請求項９に記載の信号に関数を適用した結果を求めるための方法。
【請求項１４】
第１のプロセッサ内に格納される第１の信号及び第２のプロセッサ内に格納される第２の信号を含む信号に、関数を適用した結果を求めるためのシステムであって、前記関数は、この関数における単項式が、この単項式の第１の部分を形成する前記第１の信号の第１の冪乗と、この単項式の第２の部分を形成する前記第２の信号の第２の冪乗とを含むような、前記信号の多項式関数であり、秘密鍵を用いて暗号化された前記単項式の前記第１の部分は第１の暗号化信号であり、前記秘密鍵を用いて暗号化された前記単項式の前記第２の部分は第２の暗号化信号であり、
前記第１のプロセッサから、前記第１の暗号化信号と係数との第１の積を受信する手段であって、前記第１の積は第２の公開鍵を用いて暗号化され、前記第２の公開鍵に対応する第２の秘密鍵は前記第２のプロセッサに利用可能である、受信する手段と、
前記第１の積を前記第２のプロセッサに送信する手段と、
前記第２のプロセッサから、前記第１の暗号化信号と、前記第２の暗号化信号と、前記係数との第２の積を受信する手段であって、前記第２の積は、第１の公開鍵を用いて暗号化され、前記第１の公開鍵に対応する第１の秘密鍵は前記第１のプロセッサに利用可能である、受信する手段と、
前記第２の積を前記第１のプロセッサに送信する手段と、
前記第１のプロセッサから前記第１の暗号化信号と前記第２の暗号化信号との積を受信する手段と、
を備える信号に関数を適用した結果を求めるためのシステム。
【請求項１５】
前記積を前記公開鍵に対応する秘密鍵を用いて復号する手段をさらに備える請求項１４に記載の信号に関数を適用した結果を求めるためのシステム。
【請求項１６】
前記第２のプロセッサは、
前記第２の秘密鍵を用いて前記第１の積を復号する手段をさらに備える請求項１４に記載の信号に関数を適用した結果を求めるためのシステム。
【請求項１７】
前記第１のプロセッサは、
前記第１の秘密鍵を用いて前記第２の積を復号する手段をさらに備える請求項１４に記載の信号に関数を適用した結果を求めるためのシステム。
【請求項１８】
前記第１のプロセッサは、
前記第２の積から前記係数を取り除く手段をさらに備える請求項１４に記載の信号に関数を適用した結果を求めるためのシステム。
【請求項１９】
信号に関数を適用した結果を求めるための方法であって、前記信号は第１の信号と第２の信号とを含み、前記第１の信号は第１の部分信号と第２の部分信号とに分割され、前記関数は、この関数における単項式が、第１の最大冪指数以下の冪指数を有する前記第１の信号を含むような、前記信号の多項式関数であり、
前記第１のプロセッサによって前記第１の部分信号を取得するステップと、
前記第２のプロセッサによって前記第２の部分信号を取得するステップと、
前記第１のプロセッサによって前記第１の部分信号の冪乗を準同型に暗号化するステップであって、前記第１の部分信号の冪乗を暗号化したもののセットを生成し、前記冪乗は０から前記第１の最大冪指数まで変動する、暗号化するステップと、
前記第１の部分信号の冪乗を暗号化したもののセットを前記第２のプロセッサに送信するステップと、
前記第２のプロセッサによって、加法的準同型性を使用して、前記第２の部分信号、前記第２の信号、及び前記第１の部分信号の冪乗を暗号化したもののセットに基づいて前記関数の暗号化結果を求めるステップと、
を含む信号に関数を適用した結果を求めるための方法。
【請求項２０】
前記第２のプロセッサによって前記第２の信号を取得するステップであって、前記第２の信号は暗号化されていない、取得するステップをさらに含む請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２１】
前記関数における前記単項式は、第２の最大冪指数以下の冪指数を有する前記第２の信号を含み、前記第２の信号は、第３の部分信号及び第４の部分信号に分割され、前記方法は、
前記第２のプロセッサによって前記第３の部分信号を取得するステップであって、前記第３の部分信号は暗号化されていない、取得するステップと、
前記第２のプロセッサによって前記第４の部分信号を取得するステップであって、前記第４の部分信号は準同型に暗号化されている、取得するステップと、
をさらに含む請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２２】
部分信号の数が前記方法の前記ステップを実行するためのサブプロセッサの数以下となるように前記第１の信号を複数の部分信号に分割するステップと、
対応するサブプロセッサによって前記複数の部分信号にアクセスするステップと、
をさらに含む請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２３】
前記求めるステップは、
ξ（ｋｍ１）＝ξ（ｍ１）ｋに従って前記関数の各暗号化された単項式を求めるステップであって、ｍ１は整数部分信号であり、ｋは整数定数であり、ξ（・）は加法的準同型マッピングである、求めるステップと、
ξ（ｍ１＋ｍ２）＝ξ（ｍ１）（ｍ２）に従って前記関数の前記暗号化結果を求めるステップであって、ｍ１及びｍ２は整数部分信号である、求めるステップと、
をさらに含む請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２４】
前記公開鍵及び対応する秘密鍵を含む、準同型暗号化のための鍵の対を生成するステップをさらに含む請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２５】
全てのｋ＝０，１，．．．，ｊについて、ξ（ｄｊ−ｋ）に従って前記第１の部分信号の冪乗を暗号化したもののセットを求めるステップであって、ｄは前記第１の部分信号であり、ｊは前記第１の最大冪指数であり、ξ（・）は加法的準同型マッピングである、求めるステップをさらに含む請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２６】
前記求めるステップは、
各ｋ＝０，１，．．．，ｉについて、
【数１】
2011118387.tif 000015
に従って暗号化された成分を計算するステップと、
【数２】
2011118387.tif 000016
に従って、加法的準同型性の特性を使用して前記関数の暗号化された単項式を計算するステップと、
【数３】
2011118387.tif 000017
に従って前記関数の前記暗号化結果を計算するステップと、
をさらに含み、
ｉは前記第２の信号ｘの冪指数であり、ｊは前記第１の信号ｙの冪指数であり、γｉ，ｊは前記単項式の定数係数であり、ｄは前記第１の部分信号であり、ｃは前記第２の部分信号であり、ξ（・）は加法的準同型マッピングである請求項１９に記載の信号に関数を適用した結果を求めるための方法。
【請求項２７】
第１の信号及び第２の信号を含む信号に関数を適用した結果を求めるための方法であって、前記関数は、この関数における単項式が、第１の最大冪指数以下の冪指数を有する前記第１の信号を含むような、前記信号の多項式関数であり、前記第１の信号は第１の部分信号及び第２の部分信号に分割され、
第２の信号及び第２の部分信号を取得するステップと、
前記第１の部分信号の冪乗を暗号化したもののセットを取得するステップであって、前記第１の部分信号の冪乗を暗号化したもののセットは、前記第１の部分信号の冪乗を準同型に暗号化したものを含む、取得するステップと、
第２の部分信号、前記第１の部分信号の冪乗を暗号化したもののセット、及び前記第２の信号に基づいて前記関数の暗号化結果を求めるステップと、
を含む信号に関数を適用した結果を求めるための方法。
【請求項２８】
前記冪指数は０から前記第１の最大冪指数まで変動する請求項２７に記載の信号に関数を適用した結果を求めるための方法。
【請求項２９】
前記求めるステップは加法的準同型性を使用する請求項２７に記載の信号に関数を適用した結果を求めるための方法。
【請求項３０】
前記暗号化結果を復号するステップをさらに含む請求項２７に記載の信号に関数を適用した結果を求めるための方法。
【請求項３１】
第１の信号及び第２の信号を含む信号に関数を適用した結果を求めるためのシステムであって、前記関数は、この関数における単項式が、第１の最大冪指数以下の冪指数を有する前記第１の信号を含むような、前記信号の多項式関数であり、前記第１の信号は第１の部分信号及び第２の部分信号に分割され、
第２の信号及び第２の部分信号を取得する手段と、
前記第１の部分信号の冪乗を暗号化したもののセットを取得する手段であって、前記第１の部分信号の冪乗を暗号化したもののセットは、前記第１の部分信号の冪乗を準同型に暗号化したものを含む、取得する手段と、
第２の部分信号、前記第１の部分信号の冪乗を暗号化したもののセット、及び前記第２の信号に基づいて前記関数の暗号化結果を求める手段と、
を備える信号に関数を適用した結果を求めるためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、信号に関数を適用した結果を求めるための方法に関し、より詳細には、信号のプライバシを守りながら、信号に多項式関数を適用した結果を求めるための方法に関する。
【背景技術】
【０００２】
［関連出願］
本出願は、Ｓｈａｎｔａｎｕ  Ｒａｎｅ他によって２００９年１２月７日に出願された、「Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｔｅｒｍｉｎｉｎｇ  Ｆｕｎｃｔｉｏｎｓ  Ａｐｐｌｉｅｄ  ｔｏ  Ｓｉｇｎａｌｓ」と題する米国特許出願第１２／６３１，５９０号に関し、この特許出願は参照により本明細書に援用される。
【０００３】
多くの場合に、信号に関数を適用した結果をセキュアに求めることが必要とされている。たとえば、２つのプロセッサ、たとえばアリス（Ａｌｉｃｅ）及びボブ（Ｂｏｂ）が、それぞれ信号ｘ及びｙを有する。第３のプロセッサ、チャーリー（Ｃｈａｒｌｉｅ）が、関数ｆ（ｘ，ｙ）の結果を求めるように要求される。しかしながら、チャーリーは、信号ｘ及びｙに関するいかなる知識も受信せず、アリス及びボブは、互いの信号に関するいかなる知識も受信しない。
【０００４】
たとえば、第三者機関は、多数の病院における患者の病気に関する統計を分析することを必要とする。患者のプライバシを考慮し、各病院は、この分析が、患者の個人情報を漏洩することなく実施され得ることを確実にしなくてはならない。
【０００５】
このような問題は、多くの場合にセキュアマルチパーティ計算（ＳＭＣ：ｓｅｃｕｒｅ  ｍｕｌｔｉｐａｒｔｙ  ｃｏｍｐｕｔａｔｉｏｎ）によって解決される。紛失通信（ＯＴ：ｏｂｌｉｖｉｏｕｓ  ｔｒａｎｓｆｅｒ）、セキュア内積（ＳＩＰ：ｓｅｃｕｒｅ  ｉｎｎｅｒ  ｐｒｏｄｕｃｔ）のような計算的にセキュアな方法をプリミティブとして使用して、より複雑な演算を実施することができる。特許文献１は、そのような方法を記載している。その方法は、ユーザによって第三者に供給される画像のセキュアな分類を実施する。第三者は画像を確定することができず、ユーザは分類方法を確定することができない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願第１１／００５，２９３号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、紛失通信に基づく方法は、構成者間の鍵交換及びデータ転送の観点から大きな通信オーバヘッドを招く。
【０００８】
本発明の目的は、信号のプライバシを確保しながら、信号に関数を適用した結果を求めるためのシステム及び方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明の実施の形態は、第１のプロセッサ内に格納される第１の信号及び第２のプロセッサ内に格納される第２の信号を含む信号に、関数を適用した結果を求めるためのシステム及び方法を開示する。関数は、この関数における単項式が、この単項式の第１の部分を形成する第１の信号の第１の冪乗と、この単項式の第２の部分を形成する第２の信号の第２の冪乗とを含むような、信号の多項式関数である。秘密鍵を用いて暗号化された単項式の第１の部分は第１の暗号化信号であり、秘密鍵を用いて暗号化された単項式の第２の部分は第２の暗号化信号である。
【００１０】
１つの実施の形態では、本方法は、第１のプロセッサから、第１の暗号化信号と係数との第１の積を受信するステップであって、第１の積は、第２の公開鍵を用いて暗号化され、第２の公開鍵に対応する第２の秘密鍵は第２のプロセッサに利用可能である、受信するステップと、第１の積を第２のプロセッサに送信するステップと、第２のプロセッサから、第１の暗号化信号と、第２の暗号化信号と、係数との第２の積を受信するステップであって、第２の積は、第１の公開鍵を用いて暗号化され、第１の公開鍵に対応する第１の秘密鍵は第１のプロセッサに利用可能である、受信するステップと、第２の積を第１のプロセッサに送信するステップと、第１のプロセッサから第１の暗号化信号と第２の暗号化信号との積を受信するステップとを含む。
【００１１】
別の実施の形態では、本方法は、第２の公開鍵を用いて暗号化された第１の入力信号を第２のプロセッサに送信するステップであって、第１の入力信号は、第１の暗号化信号を含み、第２のプロセッサは第２の秘密鍵を用いて第１の入力信号を復号するように構成される、送信するステップと、第１の公開鍵を用いて暗号化された第２の入力信号を第１のプロセッサに送信するステップであって、第２の入力信号は、第１の暗号化信号と第２の暗号化信号との積を含み、第１のプロセッサは第１の秘密鍵を用いて第２の入力信号を復号するように構成される、送信するステップと、第１の暗号化信号と第２の暗号化信号との積を受信するステップとを含む。
【００１２】
別の実施の形態では、本システムは、第１のプロセッサから、第１の暗号化信号と係数との第１の積を受信する手段であって、第１の積は、第２の公開鍵を用いて暗号化され、第２の公開鍵に対応する第２の秘密鍵は第２のプロセッサに利用可能である、受信する手段と、第１の積を第２のプロセッサに送信する手段と、第２のプロセッサから、第１の暗号化信号と、第２の暗号化信号と、係数との第２の積を受信する手段であって、第２の積は、第１の公開鍵を用いて暗号化され、第１の公開鍵に対応する第１の秘密鍵は第１のプロセッサに利用可能である、受信する手段と、第２の積を第１のプロセッサに送信する手段と、第１のプロセッサから第１の暗号化信号と第２の暗号化信号との積を受信する手段とを備える。
【００１３】
また、本発明の実施の形態は、第１の信号及び第２の信号を含む信号に関数を適用した結果を求めるためのシステム及び方法であって、この関数は、この関数における単項式が、第１の最大冪指数以下の冪指数を有する第１の信号を含むような、信号の多項式関数であり、第１の信号は第１の部分信号及び第２の部分信号に分割され、第２の信号及び第２の部分信号を取得するステップと、第１の部分信号の冪乗を暗号化したもののセットを取得するステップであって、この第１の部分信号の冪乗を暗号化したもののセットは、第１の部分信号の冪乗を準同型に暗号化したものを含む、取得するステップと、第２の部分信号、第１の部分信号の冪乗を暗号化したもののセット、及び第２の信号に基づいて関数の暗号化結果を求めるステップとを含む。
【発明の効果】
【００１４】
この発明によれば、信号のプライバシを確保しながら、信号に関数を適用した結果を求めることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１に係る、２つの信号に関数を適用した結果をセキュアに求めるための方法のブロック図である。
【図２】本発明の実施の形態２に係る、複数の信号に関数を適用した結果をセキュアの求めるための方法のブロック図である。
【図３】２つの信号の単項式をセキュアに求めるための方法のブロック図である。
【発明を実施するための形態】
【００１６】
実施の形態１．
本発明の実施の形態１は、１つの信号が、２つの部分信号に分割されると共に、各プロセッサが１つの部分信号のみを受信するように２つのプロセッサ間で共有される場合に、いずれのプロセッサも信号自体の値を知ることができないという認識に基づく。準同型暗号化技法を使用して、プロセッサは、その信号の関数、及びプロセッサが利用可能な他の信号の関数を、信号のプライバシが守られるようにセキュアに求めることができる。
【００１７】
図１は、第１の信号ｙ１１１及び第２の信号ｘ１１２に関数ｆ１１０を適用した結果１９０を求めるための方法１００を示している。後述するように、本発明の実施の形態は、３つ以上の信号に関数を適用した結果も求めることができる。本方法は、当該技術分野において既知のメモリ及び入力／出力インタフェースを備える複数のプロセッサにおいて実行される。
【００１８】
本方法は、本方法のステップを実行するための第１のプロセッサ１２１を使用する。第２のプロセッサ１２２は第２の信号を取得する。第２の信号は、暗号化されていなくてもよく、又は公開鍵１２５を用いて暗号化されていてもよい。第１の信号は第３のプロセッサ１２３に格納される。代替的に、実施の形態１では、第１のプロセッサは信頼できる第三者によって操作され、第１の信号は第１のプロセッサ１２１に格納される。
【００１９】
第１の信号は２つの部分信号、たとえば第１の部分信号ｄ１１５及び第２の部分信号ｃ１１６に分割される。第１の部分信号は、第１のプロセッサ１２１のみに利用可能であり、たとえば第１のプロセッサのみに送信され、第２の部分信号は、第２のプロセッサ１２２のみに利用可能であり、たとえば第２のプロセッサのみに送信される。このため、第１のプロセッサも第２のプロセッサも第１の信号の値を求めることができない。
【００２０】
方法１００の目的は、関数ｆ（ｘ，ｙ）１１０の評価結果を求めることである。関数１１０は、整数入力、及び整数の冪指数、すなわち多項式関数の次数を有する任意の多項式関数である。信号ｙにおける多項式関数ｆ（ｘ，ｙ）の次数はｎであり、信号ｘにおける多項式関数ｆ（ｘ，ｙ）の次数はｍである。第１のプロセッサ１２１は、次数ｎ及び第１の部分信号ｄを取得し、公開鍵１２５を使用して、全てのｋ＝０，１，．．．，ｎについてｄｎ−ｋを準同型に暗号化し（１３０）、ξ（ｄｎ−ｋ）に従って第１の部分信号の冪乗を暗号化したもののセット１３５を生成する。ここで、ξ（・）は加法的準同型マッピングである。セット１３５は第２のプロセッサに送信される。
【００２１】
第２のプロセッサは、第１の部分信号の冪乗を暗号化したもののセットを受信し、第２の部分信号１１６、第１の部分信号の冪乗を暗号化したもののセット、及び第２の信号１１２に基づいて関数の暗号化結果１４５を求める（１４０）。暗号化結果を求めるために、第２のプロセッサは加法的準同型マッピングの特性に基づいて暗号化されたドメインにおいて乗算を実施する。
【００２２】
暗号化結果は、第１のプロセッサに送信され、秘密鍵１２６を使用して復号される（１５０）。秘密鍵１２６は公開鍵１２５に対応する。復号結果１９０はユーザに出力される。
【００２３】
加法的準同型性
関数ξ（・）が加法的準同型マッピングである場合、整数メッセージｍ１、ｍ２、及び整数定数ｋについて、次式が成立する。
【００２４】
ξ（ｍ１＋ｍ２）＝ξ（ｍ１）（ｍ２）及びξ（ｋｍ１）＝ξ（ｍ１）ｋ
【００２５】
そのようなマッピングの例には、Ｐａｉｌｌｉｅｒ暗号システム及びＢｅｎａｌｏｈ暗号システムが含まれる。ｆ（ｘ，ｙ）＝Σｉ，ｊ≧０γｉ，ｊｘｉｙｊとする。ここで、ｉ、ｊ、及びγｉ，ｊは整数である。関数ξ（・）の加法的準同型特性によれば、次式（１）が成立する。式（１）において、０≦ｉ≦ｍ及び０≦ｊ≦ｎである。
【００２６】
【数１】
2011118387.tif 000003
【００２７】
このため、ξ（ｆ（ｘ，ｙ））を求めるには、ξ（ｘｉｙｊ）を求めること、すなわち個々の単項式の暗号化が必要である。ｙ＝ｃ＋ｄ（ここでｃ及びｄは整数）である場合、次式（２）が成立する。
【００２８】
【数２】
2011118387.tif 000004
【００２９】
したがって、方法１００は以下のステップを含む。
【００３０】
第１のプロセッサが、準同型暗号化のための鍵の対、すなわち公開鍵及び秘密鍵を生成する。第３のプロセッサが、信号ｙを加法的部分信号ｃ及びｄに分割する。すなわちｙ＝ｃ＋ｄである。第３のプロセッサが、第１の部分信号ｄを第１のプロセッサに送信し、第２の部分信号ｃを第２のプロセッサに送信する。
【００３１】
第１のプロセッサが、全てのｋ＝０，１，．．．，ｎについて第１の部分信号ｄｎ−ｋを暗号化し、第１の部分信号の冪乗を暗号化したもののセットξ（ｄｎ−ｋ）を第２のプロセッサに送信する。
【００３２】
第２のプロセッサが、関数ξ（・）の加法的準同型性を使用して、各ｊ≦ｎ、及びｋ＝０，１，．．．，ｊについて、次式に従って暗号化成分を計算し、これによって、式（２）に従って暗号化された単項式ξ（ｘｉｙｊ）を得る。
【００３３】
【数３】
2011118387.tif 000005
【００３４】
次に、第２のプロセッサが式（１）を使用して暗号化結果ξ（ｆ（ｘ，ｙ））を求め、暗号化結果を第１のプロセッサに送信する。
【００３５】
第１のプロセッサが、秘密鍵を使用して関数ｆ（ｘ，ｙ）を復号し、ユーザに復号結果を出力する。
【００３６】
実施の形態２．
図２は、本発明の実施の形態２を示している。ここで、２つのプロセッサ、すなわち第３のプロセッサ２１０及び第４のプロセッサ２２０は、関数１１０の適用結果を求めるために、それぞれ第１の信号及び第２の信号にアクセスすることができる。ここでは簡単にするために２つのプロセッサを用いた実施の形態を説明する。他の実施の形態ではデータプロセッサセンタの数は任意である。
【００３７】
プロセッサ２１０及び２２０は、それぞれ信号ｘ１及びｘ２を、ｘ１＝ｃ１＋ｄ１及びｘ２＝ｃ２＋ｄ２となるように、部分信号ｃ１２１２、ｄ１２１１、ｃ２２２２、及びｄ２２２１に分割する。部分信号ｃ１及びｃ２は第２のプロセッサ２３０に送信され、部分信号ｄ１及びｄ２は第１のプロセッサ２４０に送信される。
【００３８】
次に、多項式ｆ（ｘ１，ｘ２）について、加法的準同型暗号化の特性に基づいて単項式が求められる。単項式の準同型暗号化は、次式（３）が成立する。
【００３９】
【数４】
2011118387.tif 000006
【００４０】
このため、方法１００と同様に、第１のプロセッサ２４０は、次数ｍ及びｎ２１９、並びに部分信号ｄ１２１１及びｄ２２２１を取得する。第１のプロセッサ２４０は、全てのｋ＝０，１，．．．，ｍ及びｋ’＝０，１，．．．，ｎについて、ｄ１ｍ−ｋｄ２ｎ−ｋ’を暗号化し、ξ（ｄ１ｍ−ｋｄ２ｎ−ｋ’）のセット２３５を第２のプロセッサ２３０に送信する。
【００４１】
第２のプロセッサ２３０は、全ての０≦ｉ≦ｍ、０≦ｊ≦ｎ、及びｋ＝０，１，．．．，ｉ、ｋ’＝０，１，．．．，ｊについて、式（３）に従って
【数５】
2011118387.tif 000007
及びξ（ｘ１ｉｘ２ｊ）を求める。
【００４２】
第２のプロセッサ２３０は、式（１）に従ってξ（ｆ（ｘ１，ｘ２））を求め（１４０）、暗号化結果２４５を第１のプロセッサ２４０に返送する。第１のプロセッサ２４０は復号し（１５０）、ｆ（ｘ１，ｘ２）１９０を得る。
【００４３】
複数の補助サーバ
図２において、プロセッサ２３０は補助サーバとしての役割を果たし、プロセッサ２４０が関数ｆ（ｘ１，ｘ２）を評価することを可能にする。本発明の他の実施の形態では、補助サーバの役割は２つ以上のサブプロセッサによって実行される。実施の形態２では、信号は、部分信号の数がサブプロセッサの数以下になるように複数の部分信号に分割され、この部分信号の数は対応するサブプロセッサに送信される。実施の形態の選択は、オーバヘッド、及び攻撃に対する耐性に依拠する。
【００４４】
スタートポロジを有するネットワークにおけるプライバシを守る関数評価
スタートポロジを有するネットワークでは、各データセンタは中央プロセッサのみに接続される。データセンタは、中央プロセッサに入力を提供する。中央プロセッサは、入力の関数を評価する。スタートポロジの場合、データセンタの入力が非公開のままであることを確実にするために、異なるプロトコルが必要とされる。以下で、スターネットワークにおけるプライバシを達成するプロトコルを説明する。
【００４５】
本発明のこの実施の形態２は、リングネットワークにおいて接続されているデータセンタが計算することができる任意の単項式関数を、信頼されていない中央プロセッサを有するスターネットワークにおいて接続されているデータセンタも計算することができるという認識に基づく。ただし、中央プロセッサへの、データセンタによる入力のプライバシを保護するために暗号化が使用されることを条件とする。さらに、データセンタが他のデータセンタからの入力を発見することを防ぐために、乗法準同型暗号化を使用することができる。
【００４６】
乗法準同型暗号化
本発明の実施の形態２は、スターネットワークにおいて、信号が暗号化形式で送信される場合、プライバシの問題を解決することができるという認識に基づく。信号の代数構造は単項式を含み、それによって代数構造が保たれ、準同型評価が暗号化された単項式に対して実行される。上述したように、暗号化形式の単項式が求められる場合、準同型特性に基づいて、暗号化された多項式も求めることができる。
【００４７】
図３は、２つの信号、たとえば第１のプロセッサ３１１に利用可能な第１の信号ｘ１及び第２のプロセッサ３１２に利用可能な第２の信号ｘ２の単項式ｘ１ｉｘ２ｊ３９９を求めるための方法３００を示している。第１の信号及び第２の信号は整数値を有する。簡単にするために、第１の信号の第１の冪乗（ｉ乗）を単項式の第１の部分３０１として定義し、第２の信号の第２の冪乗（ｊ乗）を単項式の第２の部分３０２として定義する。方法３００は、第３のプロセッサ３１０を使用して単項式３９９をセキュアに求め、それによって第１の信号及び第２の信号のプライバシが守られる。
【００４８】
第１のプロセッサ及び第２のプロセッサは、公開鍵暗号システムの一意の暗号化鍵／復号鍵の対にアクセスすることができる。暗号化鍵Ｋｐｕｂ１３０５及びＫｐｕｂ２３０７は公開鍵であり、第１のプロセッサ及び第２のプロセッサに利用可能である。復号鍵Ｋｐｒ１３０６及びＫｐｒ２３０８は秘密鍵である。秘密鍵Ｋｐｒ１は公開鍵Ｋｐｕｂ１に対応し、第１のプロセッサにのみ利用可能である。秘密鍵Ｋｐｒ２は公開鍵Ｋｐｕｂ２に対応し、第２のプロセッサにのみ利用可能である。暗号化関数は、ζｍ（・）によって表され、ここで、それぞれ復号が第１のプロセッサによって行われるか又は第２のプロセッサによって行われるかに依拠してｍ＝１又はｍ＝２である。
【００４９】
第３のプロセッサは、乗法準同型暗号化θ（・）の暗号化鍵／復号鍵の対Ｋｐｕｂ３１３及びＫｐｒ３１４を生成する。暗号化θ（・）は、乗法準同型マッピングであり、すなわち整数メッセージｍ１、ｍ２、及び整数定数ｋについて、θ（ｍ１・ｍ２）＝θ（ｍ１）・θ（ｍ２）及びθ（ｍ１ｋ）＝（θ（ｍ１））ｋである。非対称鍵暗号化を用いるエルガマル暗号システムは、意味論的にセキュアな乗法準同型暗号システムの一例であり、平文の反復される暗号化の結果として異なる暗号文が生成される。
【００５０】
暗号化鍵Ｋｐｕｂ３１３は、第１のプロセッサ及び第２のプロセッサに公開で利用可能であり、信号ｘｍの暗号化は、次式で表される。
【００５１】
【数６】
2011118387.tif 000008
【００５２】
ここで、第１の信号の暗号化の場合、ｍ＝１であり、第２の信号の暗号化の場合、ｍ＝２である。このため、乗法準同型特性によって、次式で表される。
【００５３】
【数７】
2011118387.tif 000009
【００５４】
復号鍵Ｋｐｒ３１４は、第３のプロセッサによって非公開に保持される。
【００５５】
第１のプロセッサは、単項式の第１の部分を、鍵Ｋｐｕｂ３１３を用いて暗号化し（３１５）、第１の暗号化信号
【数８】
2011118387.tif 000010
３１６を生成する。次に、第１のプロセッサは係数αを選択し、その係数を第１の暗号化信号と乗算し（３２０）、第１の積３２１を生成する。実施の形態２では、係数αはランダムに選択される非ゼロ整数である。第１の積は、第２の公開鍵３０７を用いて暗号化され（３２２）、第１の入力信号
【数９】
2011118387.tif 000011
３２４として第３のプロセッサに利用可能にされる（３２３）。第３のプロセッサは、第１の入力信号を取得すると共に、この信号を第２のプロセッサに転送する（３２５）。
【００５６】
第２のプロセッサは、第２の秘密鍵３０８を用いて第１の入力信号を復号する（３３０）。また、第２のプロセッサは、鍵Ｋｐｕｂ３１３を用いて単項式３０２の第２の部分を暗号化し（３４０）、第２の暗号化信号
【数１０】
2011118387.tif 000012
３４１を生成する。第２の暗号化信号は、第１の入力信号と乗算され（３５０）、第２の積３５４が生成され、第２の積３５４は第１の鍵３０５を用いて暗号化されて（３５５）、第２の入力信号
【数１１】
2011118387.tif 000013
３５６が生成される。第３のプロセッサは第２の入力信号を取得すると共に、この信号を第１のプロセッサに送信する（３６０）。
【００５７】
第１のプロセッサは、第１の秘密鍵Ｋｐｒ１を使用して第２の入力信号を復号し（３７０）、第２の積３５４を得る。除算によって係数αが取り除かれ（３８０）、暗号化結果
【数１２】
2011118387.tif 000014
３８５が第３のプロセッサに利用可能にされる（３８６）。
【００５８】
第３のプロセッサは、秘密鍵Ｋｐｒ３１４を使用して暗号化結果を復号し（３９０）、単項式ｘ１ｉｘ２ｊ３９９を生成する。
【００５９】
第３のプロセッサは、第１のプロセッサ及び第２のプロセッサによって生成された信号の計算結果を得る。通例、ｓ＞２個の変数を含む単項式の場合、第３のプロセッサは、少なくともｓ／２個の他のプロセッサとインタラクトして、全てのプロセッサのデータを求めなくてはならない。プロセッサのサブセットが連携している（ｃｏｌｌｕｄｅ）場合であっても、他のプロセッサの信号は依然として秘密にされる。
【００６０】
実施の形態２は、ｘ１ｉｘ２ｊのような単項式の積を、和ｘ１ｉ＋ｘ２ｊに置き換える。この実施の形態２は、第１の信号及び第２の信号の平均、分散、及び高次モーメントのような統計的特性を求める。特に、第１のプロセッサ及び第２のプロセッサは、共通の数字Ｍを選択し、第１の信号及び第２の信号をそれぞれ、共通の数字の、第１の信号及び第２の信号に等しい冪指数乗に置き換える。第３のプロセッサは、方法３００を実行した後、結果３９９の底Ｍの対数をとる。
【００６１】
本発明を好ましい実施の形態の例として説明してきたが、本発明の精神及び範囲内で様々な他の適応及び変更を行うことができることは理解されたい。したがって、添付の特許請求の範囲の目的は、本発明の真の精神及び範囲内に入るすべての変形及び変更を包含することである。
【図１】
2011118387.tif 000018
【図２】
2011118387.tif 000019
【図３】
2011118387.tif 000020
【外国語明細書】
2011118387.tif 000021
2011118387.tif 000022
2011118387.tif 000023
2011118387.tif 000024
2011118387.tif 000025
2011118387.tif 000026
2011118387.tif 000027
2011118387.tif 000028
2011118387.tif 000029
2011118387.tif 000030
2011118387.tif 000031
2011118387.tif 000032
2011118387.tif 000033
2011118387.tif 000034
2011118387.tif 000035
2011118387.tif 000036
2011118387.tif 000037
2011118387.tif 000038
2011118387.tif 000039
2011118387.tif 000040
2011118387.tif 000041
2011118387.tif 000042
2011118387.tif 000043
2011118387.tif 000044
2011118387.tif 000045
2011118387.tif 000046
2011118387.tif 000047
2011118387.tif 000048
2011118387.tif 000049