(57)【要約】      （修正有）【課題】クライアントがクライアントの問い合わせ属性を用いて、プライバシーを保護しながら、サーバにある１組の暗号化されたデータインスタンスを問い合わせするシステム及び方法を提供する。【解決手段】１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は、対応するデータインスタンスの表現と、対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数である。クライアントは、問い合わせ属性及びデータインスタンス属性の距離関数に基づいて１組の暗号文から暗号文を解読して、表現を生成し、その表現を用いて、対応するデータインスタンスにアクセスする。【選択図】図１
2014002365.tif 000002
【特許請求の範囲】
【請求項１】
クライアントの問い合わせ属性を用いて、プライバシーを保護しながら、サーバにある１組の暗号化されたデータインスタンスを問い合わせるための方法であって、前記１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、前記対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数であり、前記方法は、
前記問い合わせ属性及び前記データインスタンス属性の距離関数に基づいて前記１組の暗号文から前記暗号文を解読することであって、前記表現を生成する、解読することと、
前記表現を用いて前記対応するデータインスタンスにアクセスすることとを含み、前記方法のステップは前記クライアントのプロセッサによって実行される、サーバプライバシーを保護することができるデータ問い合わせ方法。
【請求項２】
前記暗号文は前記表現と、合成位数の乗法巡回群への双線形写像との積を含む、請求項１に記載の方法。
【請求項３】
前記暗号文は乗法群の要素を更に含み、前記要素の数及び前記要素の数学的な形は、距離関数の多項式構造に対応する、請求項２に記載の方法。
【請求項４】
サーバに、マスクされた問い合わせ属性を送信することと、
前記サーバから、前記乗法群の要素を含む予備解読鍵を受信することであって、前記要素の数及び前記要素の数学的な形は前記距離関数の前記多項式構造及び前記マスクされた問い合わせ属性に対応する、受信することと、
前記予備解読鍵から解読鍵を求めることとを更に含み、前記解読鍵は前記乗法群の要素を含み、前記要素の数及び前記要素の数学的な形は、前記距離関数の前記多項式構造及び前記問い合わせ属性に対応する、請求項３に記載の方法。
【請求項５】
前記解読することは、
前記表現と、前記距離関数がしきい値未満の特定の値に対応するときに１になる式との積を求めることを含む、請求項１に記載の方法。
【請求項６】
前記式は合成位数の乗法巡回群への双線形写像を含む、請求項５に記載の方法。
【請求項７】
前記解読することは、前記距離関数の結果がしきい値未満である場合に限り成功する、請求項１に記載の方法。
【請求項８】
前記距離関数はユークリッド距離関数又はハミング距離関数である、請求項１に記載の方法。
【請求項９】
前記距離関数は、ａＫＬｘＫｙＬの単項式の和の形をとる、前記問い合わせ属性及び前記データインスタンス属性の要素における多項式である、請求項１に記載の方法。
【請求項１０】
前記暗号文は、
【数１】
2014002365.tif 000019
であり、ｐ、ｑ、ｒは位数Ｎ＝ｐｑｒの巡回群Ｇ及びＧＴの素数であり、Ｇｐ、Ｇｑ及びＧｒは、位数ｐ、ｑ及びｒをそれぞれ有し、かつ生成元ｇｐ、ｇｑ及びｇｒをそれぞれ有する巡回群であり、ｅ：Ｇ×Ｇ→ＧＴは非縮退双線形写像であり、ａはＧｐに属し、ｃはＧｒに属し、ａ及びｃはランダムに選択されたパラメータであり、ｗ＝（Ｎ、ｇｐ、ｇｒ、ｇｑｃ、ｅ（ｇｐ，ａ））であり、前記暗号文は秘密マスター鍵（ｐ、ｑ、ｒ、ｇｑ、ａ、ｃ）を用いて暗号化される、請求項１に記載の方法。
【請求項１１】
請求項１に記載の方法であって、前記表現は前記対応するデータインスタンスを暗号化し、暗号化されたデータインスタンスを生成するために用いられる秘密鍵であり、前記方法は、
前記秘密鍵を用いて前記暗号化されたデータインスタンスを解読することを更に含む、方法。
【請求項１２】
問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるための方法であって、前記１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、前記対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数であり、前記問い合わせは前記問い合わせ属性及び前記データインスタンス属性の距離関数に基づき、前記方法は、
マスクされた問い合わせ属性を送信するのに応答して、乗法群の要素を含む予備解読鍵を受信することであって、前記要素の数及び前記要素の数学的な形は、前記距離関数の多項式構造及び前記マスクされた問い合わせ属性に対応する、受信することと、
前記予備解読鍵及び前記マスクされた問い合わせ属性に基づいて解読鍵を求めることと、
前記解読鍵を用いて、前記表現と、前記距離関数の結果がしきい値によって制約される値に対応するときに１になる式との積を求めることと、
前記表現を用いて前記対応するデータインスタンスにアクセスすることとを含み、前記方法のステップはプロセッサによって実行される、問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるための方法。
【請求項１３】
前記所定の数字パターンに対して前記積を試験することであって、前記表現を生成する、試験することを更に含む、請求項１２に記載の方法。
【請求項１４】
前記暗号文は前記表現と、合成位数の乗法巡回群への双線形写像との積を含む、請求項１２に記載の方法。
【請求項１５】
前記暗号文は乗法群の要素を更に含み、前記要素の数及び前記要素の数学的な形は、距離関数の多項式構造に対応する、請求項１４に記載の方法。
【請求項１６】
問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるためのシステムであって、前記１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、前記対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数であり、
前記問い合わせ属性及び前記データインスタンス属性の距離関数に基づいて前記１組の暗号文からの前記暗号文を解読し、前記表現を生成するためのプロセッサを備え、前記解読は、前記距離関数の結果がしきい値未満である場合に限り成功する、問い合わせ属性を用いて、プライバシーを保護することができるデータ問い合わせシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は包括的には差分データプライバシーに関し、より詳細には、問い合わせ属性を用いて、プライバシーを保護しながら１組の暗号化されたデータインスタンスを問い合わせることに関する。
【背景技術】
【０００２】
非公開で保持されるデータに関する計算及び比較
データインスタンスを公開することなく、画像、映像、音、テキストのような２つのデータインスタンスを安全に比較することは、安全なマルチパーティ計算の一部である。２つのデータインスタンスの関数を代数回路として表すことができる場合には、一般に、種々のプライバシー要件を満たしながら関数を計算する一般化されたプロトコルが存在する。しかしながら、実際には、そのような一般化されたプロトコルは、計算及び通信オーバーヘッドの観点から極めて複雑である。それゆえ、ユークリッド距離、ハミング距離又は相互相関のような、一般的に用いられる関数のための効率的なプロトコルを開発する必要がある。
【０００３】
準同型暗号システム
幾つかの方法は、暗号化されたドメインにおいて関数を計算するために公開鍵準同型暗号システムを用いる。準同型暗号システムは、加法準同型暗号システム、乗法準同型暗号システム又は二重準同型暗号システムとして分類することができる。そのような暗号システムを用いて、文字列比較、クラスタリング、最近傍、顔認識、認証用バイオメトリックデータ及び他の応用形態のためのプライバシー保護プロトコルを構成してきた。
【０００４】
それらの方法の大部分は、問い合わせを実行するクライアントの公開暗号鍵を用いてデータを暗号化することを必要とし、２つの段階：（１）データインスタンス間の距離又は相関の安全な計算、及び（２）距離判定基準に基づく情報検索において動作する。それらの方法は、単一の問い合わせに対しては効率的にすることができるものの、サーバに記憶されるデータベースに複数のクライアントが同時に問い合わせる場合への拡張性がない場合がある。例えば、幾つかのクライアントがサーバから類似の画像を検索するとき、各クライアントの暗号／解読鍵対を用いて、プロトコル全体が繰り返される。同時に幾つかの問い合わせがある場合、大量の暗号文が生成され、後に破棄される。
【０００５】
したがって、プライバシーを保護するようにして種々のクライアントによってデータを検索できるように、サーバ上のデータを一度だけ暗号化することが望ましい。
【０００６】
属性に基づく暗号化（ＡＢＥ：Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ）
従来の暗号システムでは、サーバがクライアントにデータインスタンスを安全に送信する必要があるとき、サーバは、サーバ及びクライアントに既知の対称鍵を用いて、又はクライアントの公開鍵を用いて、データインスタンスを暗号化しなければならない。代わりに、ＡＢＥシステムでは、サーバは鍵オーソリティ（ＫＡ：Ｋｅｙ  Ａｕｔｈｏｒｉｔｙ）から幾つかの公開暗号化パラメータを入手し、２つの構成要素：データインスタンスの暗号化、及びデータインスタンスから抽出されたデータインスタンス属性を含む暗号文を生成する。
【０００７】
暗号解読を実行するために、クライアントはその属性を用いてＫＡから解読鍵を要求する。例えば、クライアント及びサーバの属性のドット積が０である場合に限り、クライアントはデータインスタンスを解読することができる。非特許文献１を参照されたい。
【０００８】
しかしながら、上記の方法は幾つかの実用上の制約を有する。第一に、ドット積に基づく構成は、ハミング距離、ユークリッド距離等の距離メトリックに関して、２つのデータインスタンスを比較するために直接用いることができない。第二に、その構成はＫＡを必要とするが、ＫＡはクライアント固有又はサーバ固有の解読鍵を発行し、それゆえ、両方の鍵について完全な知識を有するので、幾つかの応用形態では不都合である可能性がある。そのような大きな権限を有する信頼できる（悪意のない）ＫＡは実際には再現するのが難しい可能性がある。
【０００９】
合成位数の双線形群
合成位数の双線形群の一例は、群位数Ｎが３つの素数の積であるときである。Ｎ＝ｐｑｒとする。ただし、ｐ、ｑ、ｒは３つの異なる素数である。Ｇ及びＧＴを位数Ｎの巡回群とする。その際、写像ｅ：Ｇ×Ｇ→ＧＴがｅ（ｘα，ｙβ）＝ｅ（ｘ，ｙ）αβを満たす場合には、その写像は非縮退双線形写像である。ただし、ｘ、ｙはＧの要素であり、α、βは整数である。更に、ｇがＧの生成元である場合には、ｅ（ｇ，ｇ）はＧＴの生成元である。
【００１０】
位数ｐ、ｑ、ｒをそれぞれ有し、かつ生成元ｇｐ、ｇｑ、ｇｒをそれぞれ有する巡回群Ｇｐ、Ｇｑ及びＧｒについて考える。その際、Ｇ＝Ｇｐ×Ｇｑ×Ｇｒであり、集合Ｇ内の任意の要素ｘはｘ＝ｇｐαｇｑβｇｒγと表すことができる。ただし、α、β、γは整数である。
【００１１】
双線形写像ｅ（・，・）は以下の特性を有する。
【００１２】
【数１】
2014002365.tif 000003
【００１３】
これらの特性を証明することは、上記で与えられた双線形写像の定義と、乗法巡回群の特性とを適用することを伴う。
【００１４】
数学的に解決困難な問題
合成位数の双線形群を用いる属性に基づく暗号システムのセキュリティは、計算上扱いにくいと見なされる下記の２つの問題を解決することに帰着する。大きな素数ｐ、ｑ、ｒの場合の整数Ｎ＝ｐｑｒ、及び巡回群Ｇ＝Ｇｐ×Ｇｑ×Ｇｒについて考える。
【００１５】
その際、以下の問題が数学的に解決困難であると考えられる。
１．部分群決定問題：部分群Ｇｐ×Ｇｑの要素を群Ｇの要素と区別するのは計算上難しい。言い換えると、或る要素がＧ上の一様分布から引き出されたか、又は部分群Ｇｐ×Ｇｑ上の一様分布から引き出されたかを判断するのは計算上難しい。
２．ペアリングディフィー−ヘルマン問題：双線形写像ｅ：Ｇ×Ｇ→ＧＴについて考える。集合｛ｇｐ、ｇｑ、ｇｒ｝から１つの要素として
【数２】
2014002365.tif 000004
を選択する。
【数３】
2014002365.tif 000005
が与えられ、整数ｕがランダムに選択されると仮定する。その際、
【数４】
2014002365.tif 000006
すなわち、ＧＴの１つの要素をＧＴのランダムに選択された要素と区別することは計算上難しい。これについて別の言い方をすると、
【数５】
2014002365.tif 000007
が与えられるときに、νを得るのは計算上難しい。
【００１６】
これらの仮定はいずれも、大きな数Ｎの非自明な素因数を見つけることが計算上困難であることに関連する。合成位数の双線形群に基づいてＡＢＥシステムのセキュリティを証明することに関する詳細な検討は、Ｋａｔｚ他を参照されたい。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】Ｋａｔｚ他「Ｐｒｅｄｉｃａｔｅ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｕｐｐｏｒｔｉｎｇ  Ｄｉｓｊｕｎｃｔｉｏｎ，  Ｐｏｌｙｎｏｍｉａｌ  Ｅｑｕａｔｉｏｎｓ，  ＆  Ｉｎｎｅｒ  Ｐｒｏｄｕｃｔｓ（ＥＵＲＯＣＲＹＰＴ，  Ｉｓｔａｎｂｕｌ，  Ｔｕｒｋｅｙ，  ｐｐ．  １４６−１６２，  Ａｐｒｉｌ  ２００８）
【発明の概要】
【発明が解決しようとする課題】
【００１８】
本発明の幾つかの実施形態の目的は、クライアントの問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるためのシステム及び方法を提供することである。例えば、幾つかの実施形態は、データがサーバにおいて一度記憶され、同じデータが複数のクライアントによって問い合わせられる応用形態によって用いられる。
【００１９】
別の目的は、暗号文の解読を問い合わせ属性及びデータインスタンス属性の距離関数に基づいて実行することができ、その解読に成功すると、対応するデータインスタンスにアクセスするのに適した表現を生成できるように、データインスタンスの暗号化を種々のクライアントによって一度だけ実行することができ、１組の暗号化されたデータインスタンスが１組の暗号文に関連付けられるような方法を提供することである。
【００２０】
幾つかの実施形態の更なる目的は、鍵オーソリティを用いることなく実施することができるような方法を提供することである。
【課題を解決するための手段】
【００２１】
本発明の幾つかの実施形態は、問い合わせ属性及びデータインスタンス属性の距離関数に基づいて暗号文を解読できるように、暗号文を構成することができるという理解に基づく。例えば、暗号文の解読は、データインスタンスの表現と、距離関数がしきい値によって制約される特定の値に対応するときに１になる式との積を求めることを含むことができる。
【００２２】
したがって、一実施の形態は、クライアントの問い合わせ属性を用いて、プライバシーを保護しながら、サーバにある１組の暗号化されたデータインスタンスを問い合わせるための方法を開示し、１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数である。方法は、前記問い合わせ属性及び前記データインスタンス属性の距離関数に基づいて前記１組の暗号文から前記暗号文を解読することであって、前記表現を生成する、解読することと、前記表現を用いて前記対応するデータインスタンスにアクセスすることとを含む。方法のステップは前記クライアントのプロセッサによって実行される。
【００２３】
別の実施の形態は、問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるための方法を開示し、１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数であり、前記問い合わせは前記問い合わせ属性及び前記データインスタンス属性の距離関数に基づく。方法は、マスクされた問い合わせ属性を送信するのに応答して、乗法群の要素を含む予備解読鍵を受信することであって、前記要素の数及び前記要素の数学的な形は、前記距離関数の多項式構造及び前記マスクされた問い合わせ属性に対応する、受信することと、予備解読鍵及び前記マスクされた問い合わせ属性に基づいて解読鍵を求めることと、前記解読鍵を用いて、前記表現と、前記距離関数の結果がしきい値によって制約される値に対応するときに１になる式との積を求めることと、前記表現を用いて前記対応するデータインスタンスにアクセスすることとを含む。前記方法のステップはプロセッサによって実行される。
【００２４】
更に別の実施の形態は、問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるためのシステムを開示し、１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数である。システムは、前記問い合わせ属性及び前記データインスタンス属性の距離関数に基づいて前記１組の暗号文からの前記暗号文を解読し、前記表現を生成するためのプロセッサを備え、前記解読することは、距離関数の結果がしきい値未満である場合に限り成功する。
【発明の効果】
【００２５】
本発明によれば、クライアントの問い合わせ属性を用いて、プライバシーを保護しながら、１組の暗号化されたデータインスタンスを問い合わせるためのシステム及び方法を提供することができる。例えば、幾つかの実施形態は、データがサーバにおいて一度記憶され、同じデータが複数のクライアントによって問い合わせられる応用形態によって用いられる。
【００２６】
また、暗号文の解読を問い合わせ属性及びデータインスタンス属性の距離関数に基づいて実行することができ、その解読に成功すると、対応するデータインスタンスにアクセスするのに適した表現を生成できるように、データインスタンスの暗号化を種々のクライアントによって一度だけ実行することができ、１組の暗号化されたデータインスタンスが１組の暗号文に関連付けられるような方法を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の幾つかの実施形態による、暗号化されたデータを生成するための方法のブロック図である。
【図２】本発明の幾つかの実施形態による、データインスタンスに対応する暗号化されたデータを記憶するためのデータベースの一部の一例を示す図である。
【図３】本発明の幾つかの実施形態による、図２のデータベースに問い合わせるための方法の図である。
【図４】本発明の幾つかの実施形態による、クライアントの問い合わせ属性を用いて、プライバシーを保護しながら、サーバにある１組の暗号化されたデータインスタンスを問い合わせるための方法の図である。
【発明を実施するための形態】
【００２８】
プライバシーを保護しながら問い合わせを行い、データを検索するアプリケーションのための方法の種々のステップの実行は、大きく３つの段階：（１）暗号化されたコンテンツを生成すること、（２）暗号化されたコンテンツを記憶すること、及び（３）検索することに分けることができる。これらの段階は、分類及び概説のためにのみ説明される。本発明の種々の実施形態は、それらの段階のうちの幾つかの段階のステップを実行するか、全ての段階のステップを実行するか、又はいずれのステップも実行しない。例えば、段階（１）及び（２）は、記憶するためにデータが入手可能になるときに、通常サーバによって、一度だけ実行することができる。段階（３）は、プライバシー制約下で、クライアントがデータを検索するときに実行することができる。本明細書において記述される幾つかの実施形態では、サーバに記憶されるデータイスタンスは画像である。しかしながら、他の実施形態は、デジタル形式で記憶することができる他の種類のデータ、例えば、映像、会話、音楽、数値データセット、テキスト等でも良好に機能する。
【００２９】
暗号化されたコンテンツの生成
図１は、プライバシーを保護しながら問い合わせを行い、データを検索するアプリケーションのための、暗号化されたデータを生成する方法１００のブロック図を示す。方法１００は一度だけ実行することができ、例えば、サーバのプロセッサ１０１によって実行することができる。Ｍ（ｉ）が、データベースに収容されることになるデータインスタンス１１０を表すものとする。ただし、ｉは集合｛１，２，．．．，ｍ｝に属する。各ｉについて、サーバはデータインスタンスの表現１３０Ｌｉを生成する。例えば、表現１３０は、データインスタンスに適用される対称暗号化方式の秘密鍵とすることができるか、又はデータインスタンス自体を含む、データインスタンスの任意の他の表現とすることができる。
【００３０】
その表現は、対応するデータインスタンスにアクセスするために用いることができる。一実施形態では、その表現は、データインスタンスを暗号化して（１２０）、暗号化されたデータインスタンスＳ（Ｍ（ｉ），Ｌｉ）１２５を生成するために用いられる秘密鍵である。その表現がわかると、クライアントは暗号化されたデータインスタンスを解読し、暗号化されていないドメイン内のデータインスタンスにアクセスすることができる。
【００３１】
幾つかの実施形態は、その表現を対称暗号システムの秘密鍵として有することによって、サーバ上のデータ記憶要件を最適化することができることを認識した。これは、公開鍵暗号化は暗号文のサイズを著しく大きくし、それに応じて、記憶、計算及び通信オーバーヘッドの増加を引き起こすためである。それゆえ、幾つかの実施形態は、（好ましくは低次元の）属性の場合にのみ公開鍵暗号化を用いる。幾つかの実施形態は、属性だけに基づいて問い合わせ判定基準を評価し、これらの判定基準が満たされた場合には、暗号化されたデータインスタンスＭ（ｊ）がクライアントに転送される。データインスタンスＳ（Ｍ（ｊ），Ｌｊ）の対称暗号化は、記憶及び計算オーバーヘッドに関して効率的であり、暗号文増大を最小限に抑える。
【００３２】
また、サーバは、画像Ｍ（ｉ）のような各データインスタンスから、対応するデータインスタンスのデータインスタンス属性ｘ（ｉ）を抽出する（１４０）。データインスタンス属性は、画像ダイジェスト、特徴ベクトル、ハッシュ、ローカリティセンシティブハッシュ、画像フィンガープリント又はベクトル化された画像マトリックスＭ（ｉ）自体のような、画像から抽出された任意のベクトル又は他のデータとすることができる。その後、サーバは、公開することができる暗号化パラメータＷを生成し（１６０）、暗号文Ｃ（ｘ（ｊ）、Ｌｉ、Ｗ）１５５を決定し（１５０）、暗号文は、データインスタンス属性ｘ（ｉ）と、表現Ｌｉ、例えば、画像Ｍ（ｉ）を暗号化するために用いられる対称鍵とを隠す。
【００３３】
暗号化されたコンテンツの記憶
図２は、データインスタンスＭ（ｉ）に対応する暗号化されたコンテンツを記憶するための表形式のデータベース２００の一部の一例を示す。例えば、データベース２００は、１組の暗号化されたデータインスタンス２２０及び１組の暗号文２３０を含む。１組の暗号化されたデータインスタンスは、例えば、インデックス２１０によって、１組の暗号文に関連付けられる。暗号文は、対応するデータインスタンスの表現と、対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数である。
【００３４】
インデックス２１０ｊ∈｛１，２，．．．，ｍ｝を用いて、任意のデータインスタンス２２０Ｍ（ｊ）を検索するために、クライアントは、暗号文２３０Ｃ（ｘ（ｊ）、Ｌｊ、Ｗ）に隠された対応する表現Ｌｊを入手する必要がある。計算に関して制限された敵対者の場合、データインスタンスＭ（ｊ）及びその属性ｘ（ｊ）についての全ての利用可能な情報が、それぞれＳ（Ｍ（ｊ），Ｌｊ）及びＣ（ｘ（ｊ）、Ｌｊ、Ｗ）に隠される。
【００３５】
暗号化されたコンテンツの検索
図３は、本発明の幾つかの実施形態による、問い合わせ及びデータ検索のための方法３００を示す。その方法は、例えば、クライアントにあるプロセッサ３０１によって実行することができる。クライアントが問い合わせデータインスタンスＱ３１０を有し、そこから、クライアントは属性ベクトルｙ３３５を抽出した（３３０）と仮定する。一実施形態では、クライアント及びサーバによって用いられる属性抽出方法は同一である。しかしながら、他の実施形態では、これは必要条件ではない。
【００３６】
種々の実施形態において、クライアントは、問い合わせ属性及びデータインスタンス属性の距離関数３８０に基づいて暗号文を解読し（３４０）、表現を生成することによって、表現を生成する（３５０）。その表現がデータインスタンスを暗号するために用いられた秘密鍵である場合には、クライアントは、その鍵を用いて、暗号化されたデータインスタンスを解読することができる。距離関数を適用することによって、クライアントの問い合わせ属性ｙが、対応するデータインスタンスのデータインスタンス属性ｘ（ｉ）に関する特定の数学的条件を満たす（３４５）場合に限り、クライアントがサーバからデータインスタンスを検索するのを確実にすることができる。
【００３７】
一実施形態では、特定の数学的条件は、距離関数の結果がしきい値を下回ることである。そうでない場合には、解読は失敗する（３７０）。それゆえ、幾つかの実施形態では、暗号文Ｃ（ｘ（ｊ）、Ｌｊ、Ｗ）は、距離関数ｆ（ｘ（ｊ），ｙ）３８０が許容できる集合Ａ内の値をとる場合にのみクライアントによって解読できるように設計される。
【００３８】
距離関数は、問い合わせ属性及びデータインスタンス属性の要素における任意の多項式とすることができる。当該技術分野において既知であるように、その多項式は、例えば、ａＫＬｘＫｙＬの形をとる、単項式の和とすることができる。ただし、ａ、Ｋ、Ｌは単項式のパラメータである。幾つかの実施形態では、距離関数はユークリッド距離又はハミング距離関数である。
【００３９】
幾つかの実施形態では、データベースエントリのプライバシーを確保するために、属性ｘ（ｊ）を公開することなく、ｆ（ｘ（ｊ），ｙ）が集合Ａに属するという条件が検査される。例えば、表現Ｌｊが生成された後に、クライアントはサーバの暗号化されたデータインスタンス３２０にアクセスすることができる（３６０）。例えば、クライアントは、紛失通信（ＯＴ）によって、サーバから暗号化されたデータインスタンスＳ（Ｍ（ｊ），Ｌｊ）を検索することができ（３９０）、その表現、例えば、秘密鍵を用いてデータインスタンスＭ（ｊ）を入手することができる。構成によって、クライアントは、データベース２００内のいかなる他のデータインスタンスも見いだすことはなく、一方、ＯＴは、サーバが、検索されたデータインスタンスのインデックスを見いださないのを確実にする。他のモードのデータインスタンス検索も可能である。
【００４０】
例示的な実施形態
図４は、本発明の幾つかの実施形態による、クライアントの問い合わせ属性を用いて、プライバシーを保護しながら、サーバにある１組の暗号化されたデータインスタンスを問い合わせるための方法４００を示す。１組の暗号化されたデータインスタンスは１組の暗号文に関連付けられ、暗号文は対応するデータインスタンスの表現と、対応するデータインスタンスから抽出されたデータインスタンス属性との暗号化された関数である。
【００４１】
暗号文Ｃ（ｘ（ｊ）、Ｌｊ、Ｗ）は、距離関数ｆ（ｘ（ｊ），ｙ）が許容できる集合Ａ内の値をとる場合にのみクライアントによって解読されるように設計される。一例では、距離関数は、二乗ユークリッド距離、すなわち、以下の通りである。
【００４２】
【数６】
2014002365.tif 000008
【００４３】
クライアントは、サーバにあるデータベースからデータインスタンスを検索しようと試みる。この例では、１組のデータインスタンスＭ（ｊ）は対称暗号システムを用いて暗号化される。対応するデータインスタンス属性ｘ（ｊ）は、属性に基づく暗号システムを用いて、その表現、例えば、秘密鍵Ｌｊとともに暗号文内に隠される。Ｍ（ｊ）を検索するために、クライアントは対称暗号システムの秘密鍵Ｌｊを見つければ十分である。
【００４４】
幾つかの実施形態は、属性に基づく暗号システムを使用し、その暗号システムは、サーバに記憶された属性ｘ（ｊ）、ｊ∈｛１，２，．．．，ｍ｝とクライアントの属性ｙとの間の二乗ユークリッド距離がしきい値τ未満である場合にのみ、クライアントがＬｊを見いだすのを確実にする。
【００４５】
以下に説明される例示的な実施形態は、少なくとも２つの観点から好都合である。第一に、計算される関数は属性間のドット積ではなく、属性間の距離関数である。それらの実施形態は、属性が異なるときにデータインスタンスの検索を確保し、それは幾つかの応用形態にとって重要である。
【００４６】
第二に、暗号鍵及び解読鍵の生成を含む、全ての計算が、２つの関係者、すなわち、暗号化されたコンテンツを生成するサーバ、及び暗号化されたコンテンツの一部を検索しようと試みるクライアントによってのみ実行される。したがって、ＫＡの必要性は回避されるので、ＫＡが実現できない応用形態において実施形態が実用的となる。
【００４７】
設定段階
サーバは大きな素数ｐ、ｑ、ｒと、位数Ｎ＝ｐｑｒの２つの巡回群Ｇ及びＧＴとを生成する。上記のように、それぞれ位数ｐ、ｑ及びｒと、それぞれ生成元ｇｐ、ｇｑ、ｇｒとを有する巡回群Ｇｐ、Ｇｑ及びＧｒが存在する。ｅ：Ｇ×Ｇ→ＧＴが非縮退双線形写像であるとする。合成位数の乗法巡回群を生成し、これらの群を用いて非縮退双線形写像を生成するために、楕円曲線に基づく手順がある。その例は、ワイルペアリング及びテイトペアリングを含む。
【００４８】
サーバはＧｐの要素としてａを、Ｇｒの要素としてｃをランダムに選択し、公開パラメータｗ＝（Ｎ、ｇｐ、ｇｒ、ｇｑｃ、ｅ（ｇｐ，ａ））を出力し、秘密鍵（ｐ、ｑ、ｒ、ｇｑ、ａ、ｃ）を保持する。クライアント及びサーバは距離しきい値τについて合意する。
【００４９】
暗号化
集合｛１，２，．．．，ｍ｝に属するインデックスｊごとに、サーバは暗号文に隠されることになるデータインスタンス属性ｘ（ｊ）＝（ｘ１（ｊ），ｘ２（ｊ），．．．，ｘｎ（ｊ））を所有する。サーバは１組の整数Ｚからδ、γを、集合Ｇｒ、ｉ＝０，１，２，．．．，ｎからＳｉをランダムに選択し、クライアントによって受信される（４１０）ことになる暗号文を決定する。種々の実施形態において、暗号文は、表現と、合成位数の乗法巡回群への双線形写像との積４１５を含む。幾つかの実施形態では、暗号文は、合成位数の乗法巡回群の要素４１７を更に含む。
【００５０】
例えば、一実施形態では、暗号文は以下の通りである。
【００５１】
【数７】
2014002365.tif 000009
2014002365.tif 000010
【００５２】
一実施形態では、乗法群の要素、すなわち、
【数８】
2014002365.tif 000011
及びＢは、解読の便宜上、二乗ユークリッド距離関数の要素の数及び形に基づいて選択される。パラメータＳｉ、δ及びγはランダムに選択することができ、暗号化ごとに異なることができる。その方法の暗号化が繰り返される度に生成される暗号文が異なる、すなわち、暗号文が意味的に安全であることを確実にするために、これらのパラメータは、解読する関係者、すなわち、クライアント及びサーバによって必要とされない。
【００５３】
解読鍵生成
クライアントは問い合わせデータインスタンスＱ３１０から抽出された問い合わせ属性ｙ＝（ｙ１，ｙ２，．．．，ｙｎ）に基づいて解読鍵を求める。しかしながら、サーバがＱについてのいかなる情報も見いだすのを防ぐために、幾つかの実施形態は、ｙ及び解読鍵の両方をサーバから隠す。
【００５４】
例えば、一実施形態では、クライアントは、ベクトルｚ＝（ｚ１，ｚ２，．．．，ｚｎ）をランダムに選択し、マスクされた問い合わせ属性ｚ＋ｙ４２５及び
【数９】
2014002365.tif 000012
をサーバに送信する（４２０）。サーバは整数α、β、αｉ、ｉ＝１，２，．．．，ｎ及びσｔ、ρｔ、ｔ＝１，２，．．．，τをランダムに選択し、クライアントによって受信される（４３０）ことになる予備解読鍵４３５を生成する。
【００５５】
一実施形態では、この予備解読鍵は以下のものを含む。
【００５６】
【数１０】
2014002365.tif 000013
【００５７】
予備解読鍵と、ｙ及びｚの知識とを用いて、クライアントは、
【数１１】
2014002365.tif 000014
及び以下の関係によって与えられる、解読鍵４４５を求める（４４０）。
【００５８】
【数１２】
2014002365.tif 000015
【００５９】
解読
問い合わせ属性ｙを用いて、クライアントは、ｔ＝１，２，．．．，τごとに、かつ集合｛１，２，．．．，ｍ｝に属するｊごとに、以下の式の値を求める。
【００６０】
【数１３】
2014002365.tif 000016
【００６１】
上記で与えられた双線形写像の４つの特性を繰返し適用することによって、上記の式は以下のように簡単にすることができる。
【００６２】
【数１４】
2014002365.tif 000017
【００６３】
したがって、クライアントは、その表現と、距離関数がしきい値未満の特定の値に対応するときに１になる式との積４５５を求めることができる（４５０）。
【００６４】
こうして、秘密鍵Ｌｊは、ｘ（ｊ）とｙとの間の二乗ユークリッド距離がｔに等しい場合にのみクライアントに対して明らかにされる。そうでない場合には、上記の式の右辺の値を求めた結果は集合ＧＴの要素を返す。クライアントはいかなる段階においてもｘ（ｊ）を見いださないので、幾つかの実施形態は、表現４６０を検査して、クライアントが実際にＬｊを解読したと判断する。例えば、一実施形態は、Ｌｊの数字を左にシフトし、公知の数字パターンを付加する。
【００６５】
例えば、真の表現Ｌｊが「７９８４」である場合には、サーバは「７９８４」２９７４２を暗号化する。ここで、最後の５桁は予め決定されており、正しい解読を検証するために用いられる。暗号文フィールドは非常に大きいので、
【数１５】
2014002365.tif 000018
のときであっても、クライアントによる二乗ユークリッド距離計算が、選択された５桁のパターンを有する値を返す可能性は極めて小さい。クライアントが、上記の式の右辺の数字に埋め込まれた公知のパターンを見いだす場合には、或るｔ≦τの場合に解読に成功している。それゆえ、クライアントは、埋め込まれたパターンを除去し、実際のＬｊを回収することができ、データインスタンスにアクセスすることができる（４７０）。クライアントが、範囲［０、τ］内の任意のｔについて、埋め込まれたパターンを見つけられない場合には、二乗ユークリッド距離判定基準に基づく解読は不成功であったと見なされる。
【００６６】
本発明の上述した実施形態は、数多くの方法のいずれにおいても実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア又はそれらの組合せを用いて実施することができる。ソフトウェアで実施される場合、ソフトウェアコードは、単一のコンピューターに設けられるのか又は複数のコンピューター間に分散されるのかにかかわらず、任意の適したプロセッサ又はプロセッサの集合体において実行することができる。そのようなプロセッサは、１つ又は複数のプロセッサを集積回路部品に有する集積回路として実装することができる。ただし、プロセッサは、任意の適したフォーマットの回路類を用いて実装することができる。
【００６７】
更に、コンピューターは、ラックマウント型コンピューター、デスクトップコンピューター、ラップトップコンピューター、ミニコンピューター又はタブレットコンピューター等の複数の形態のいずれにおいても具現化できることが理解されるべきである。また、コンピューターは、１つ又は複数の入力デバイス及び出力デバイスを有することもできる。これらのデバイスは、中でも、ユーザーインターフェースを提示するのに用いることができる。ユーザーインターフェースを提供するのに用いることができる出力デバイスの例には、出力を視覚提示するためのプリンター又は表示スクリーン、及び出力を可聴提示するためのスピーカー又は他の音発生デバイスが含まれる。ユーザーインターフェースに用いることができる入力デバイスの例には、キーボード、並びにマウス、タッチパッド及びデジタイジングタブレット等のポインティングデバイスが含まれる。別の例として、コンピューターは、音声認識を通じて又は他の可聴フォーマットで入力情報を受け取ることもできる。
【００６８】
そのようなコンピューターは、ローカルエリアネットワーク又はワイドエリアネットワークとしてエンタープライズネットワーク又はインターネット等を含む１つ又は複数のネットワークによって任意の適した形態で相互接続することができる。そのようなネットワークは、任意の適した技術に基づくことができ、任意の適したプロトコルに従って動作することができ、無線ネットワーク、有線ネットワーク又は光ファイバーネットワークを含むことができる。
【００６９】
また、本明細書において概説される様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームのうちの任意のものを用いる１つ又は複数のプロセッサに対して実行可能なソフトウェアとして符号化することができる。加えて、そのようなソフトウェアは、複数の適切なプログラミング言語及び／又はプログラミングツール若しくはスクリプティングツールのうちの任意のものを用いて書くことができ、フレームワーク又は仮想マシン上で実行される実行可能な機械語コード又は中間コードとしてコンパイルすることもできる。
【００７０】
これに関して、本発明は、単数又は複数のコンピューター可読記憶媒体、例えばコンピューターメモリ、コンパクトディスク（ＣＤ）、光ディスク、デジタルビデオディスク（ＤＶＤ）、磁気テープ、及びフラッシュメモリとして実現することができる。代替的に又は付加的に、本発明は、伝播信号等の、コンピューター可読記憶媒体以外のコンピューター可読媒体として具現化することもできる。
【００７１】
「プログラム」又は「ソフトウェア」という用語は、本明細書において、包括的な意味で、上記で検討した本発明の様々な態様を実施するようにコンピューター又は他のプロセッサをプログラムするのに用いることができる任意のタイプのコンピューターコード又は１組のコンピューター実行可能命令を指す。
【００７２】
コンピューター実行可能命令は、１つ若しくは複数のコンピューター又は他のデバイスによって実行された、プログラムモジュール等の多くの形式をとることができる。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造を含む。通常、プログラムモジュールの機能は、様々な実施形態において所望に応じて組み合わせることも分散することもできる。
【００７３】
また、本発明の実施形態は、例が提供された方法として実施することができる。本方法の一部として実行される動作は、任意の適切な方法で順序付けすることができる。したがって、動作が示したものと異なる順序で実行される実施形態を構築することができ、これには、例示の実施形態では一連の動作として示されたにもかかわらず、幾つかの動作を同時に実行することを含めることもできる。
【００７４】
特許請求の範囲における、特許請求の範囲の要素を修飾する「第１の」、「第２の」等の順序を示す用語の使用は、それ自体では、優先度も、優先順位も、１つの特許請求の範囲の要素の別の要素に対する順序も、方法の動作が実行される時間順序も一切暗示するものではなく、単に、或る特定の名称を有する１つの特許請求要素を、（順序を示す用語の使用を除いて）同じ名称を有する別の要素と区別して、それらの特許請求要素を区別するためのラベルとして用いられる。
【図１】
2014002365.tif 000020
【図２】
2014002365.tif 000021
【図３】
2014002365.tif 000022
【図４】
2014002365.tif 000023
【外国語明細書】
2014002365.tif 000024
2014002365.tif 000025
2014002365.tif 000026
2014002365.tif 000027
2014002365.tif 000028
2014002365.tif 000029
2014002365.tif 000030
2014002365.tif 000031
2014002365.tif 000032
2014002365.tif 000033
2014002365.tif 000034
2014002365.tif 000035
2014002365.tif 000036
2014002365.tif 000037
2014002365.tif 000038
2014002365.tif 000039
2014002365.tif 000040
2014002365.tif 000041
2014002365.tif 000042
2014002365.tif 000043
2014002365.tif 000044
2014002365.tif 000045
2014002365.tif 000046
2014002365.tif 000047
2014002365.tif 000048
2014002365.tif 000049
2014002365.tif 000050
2014002365.tif 000051
2014002365.tif 000052
2014002365.tif 000053
2014002365.tif 000054
2014002365.tif 000055
2014002365.tif 000056
2014002365.tif 000057
2014002365.tif 000058