(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022031105
(43)【公開日】2022-02-18
(54)【発明の名称】プライバシー集合の共通部分を取得する方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20220210BHJP
【FI】
G09C1/00 620Z
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021039047
(22)【出願日】2021-03-11
(31)【優先権主張番号】202010789775.7
(32)【優先日】2020-08-07
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110000914
【氏名又は名称】特許業務法人 安富国際特許事務所
(72)【発明者】
【氏名】ソン, チュアンユェン
(72)【発明者】
【氏名】フォン, ジー
(72)【発明者】
【氏名】リュ, リァンリァン
(57)【要約】 (修正有)
【課題】プライバシー集合の共通部分を取得する方法及び装置、電子機器、記憶媒体並びにコンピュータプログラムを提供する。
【解決手段】方法は、準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、暗号文、暗号文関数、公開鍵及び秘密鍵を生成するステップと、暗号文、暗号文関数、公開鍵を共通集合提供側に提供するステップと、共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信するステップとを含む。復号すべき関数値は、共通集合提供側によって公開鍵、共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて得られ、ランダムセキュリティ関数は非共通要素をランダム化処理することに用いられる。方法はさらに、秘密鍵を使用して復号すべき関数値を復号し、双方のプライバシー集合の共通要素を得るステップを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成するステップと、
前記共通集合要求側の暗号文、暗号文関数、公開鍵を共通集合提供側に提供するステップと、
共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信するステップであって、前記共通集合提供側のプライバシー集合の復号すべき関数値は共通集合提供側によって前記公開鍵、前記共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて得られ、前記ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられる、ステップと、
前記秘密鍵を使用して前記共通集合提供側のプライバシー集合の復号すべき関数値を復号し、前記共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得るステップと、を含む共通集合要求側におけるプライバシー集合共通部分取得方法。
【請求項2】
前記の、準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成するステップは、
共通集合要求側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、前記隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられ、前記パラメータ集合中の要素情報は共通集合要求側のプライバシー集合の要素情報を隠している、ステップと、
前記公開鍵を使用して前記パラメータ集合を暗号化し、前記パラメータ集合の暗号文値集合を生成するステップであって、前記暗号文値集合の要素情報は前記共通集合要求側の暗号文である、ステップと、を含む請求項1に記載の方法。
【請求項3】
前記隠し関数は共通集合要求側のプライバシー集合及びラグランジュ補間法に基づいて構築される多項式関数である請求項2に記載の方法。
【請求項4】
共通集合要求側から暗号文、暗号文関数、公開鍵を受信するステップであって、前記暗号文、暗号文関数、公開鍵は共通集合要求側が準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化することによって得られる、ステップと、
共通集合提供側のプライバシー集合の各要素を暗号文関数に代入し、前記各要素の暗号文関数値を計算し、共通集合提供側のプライバシー集合中のある要素の暗号文関数値が0に等しい場合、該要素は前記共通集合提供側のプライバシー集合と前記共通集合要求側のプライバシー集合との共通部分であるステップと、を含む共通集合提供側におけるプライバシー集合共通部分取得方法。
【請求項5】
共通集合要求側から受信された前記公開鍵により共通集合提供側のプライバシー集合を暗号化し、共通集合提供側のプライバシー集合の暗号文を生成するステップと、
ランダムセキュリティ関数に基づいて前記共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を計算するステップであって、ランダムセキュリティ関数は前記共通集合提供側のプライバシー集合中の非共通要素の暗号文に対応するランダムセキュリティ関数値をランダム化処理することに用いられる、ステップと、
前記共通集合提供側のプライバシー集合中の各要素に対応するランダムセキュリティ関数値を共通集合要求側に提供するステップと、をさらに含む請求項4に記載の方法。
【請求項6】
前記の、共通集合要求側から受信された前記公開鍵により共通集合提供側のプライバシー集合を暗号化し、共通集合提供側のプライバシー集合の暗号文を生成するステップは、
共通集合提供側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、前記隠し関数は共通集合提供側のプライバシー集合に対してマッピング保護を行うことに用いられ、前記パラメータ集合中の要素情報は共通集合提供側のプライバシー集合の要素情報を隠しているステップと、
前記公開鍵を使用して前記パラメータ集合を暗号化し、前記パラメータ集合の暗号文値集合を生成するステップであって、前記暗号文値集合の要素情報は前記共通集合提供側のプライバシー集合の暗号文であるステップと、を含む請求項5に記載の方法。
【請求項7】
前記の、ランダムセキュリティ関数に基づいて前記共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を計算するステップは、
共通集合要求側によって構築されたパラメータ集合及び隠し関数に基づいて、共通集合提供側のプライバシー集合の隠し関数の値を計算するステップであって、前記隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられる、ステップと、
摂動数値により共通集合提供側のプライバシー集合の隠し関数の値をランダム化処理するステップと、
共通集合提供側のプライバシー集合の隠し関数の値のランダム化処理結果と前記共通集合提供側のプライバシー集合の暗号文とを加算し、共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を得るステップと、を含む請求項5又は6に記載の方法。
【請求項8】
前記隠し関数はプライバシー集合及びラグランジュ補間法に基づいて構築される多項式関数である請求項6又は7に記載の方法。
【請求項9】
準同型暗号化アルゴリズムにより共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成するように構成される、暗号化モジュールと、
前記共通集合要求側の暗号文、暗号文関数、公開鍵を共通集合提供側に提供するように構成される提供モジュールと、
共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信するように構成される受信モジュールであって、前記共通集合提供側のプライバシー集合の復号すべき関数値は共通集合提供側によって前記公開鍵、前記共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて得られ、前記ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられる、受信モジュールと、
前記秘密鍵を使用して前記共通集合提供側のプライバシー集合の復号すべき関数値を復号し、前記共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得るように構成される復号モジュールと、を含む共通集合要求側によるプライバシー集合共通部分取得装置。
【請求項10】
前記暗号化モジュールはさらに、
共通集合要求側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、前記隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられ、前記パラメータ集合中の要素情報は共通集合要求側のプライバシー集合の要素情報を隠している、ステップと、
前記公開鍵を使用して前記パラメータ集合を暗号化し、前記パラメータ集合の暗号文値集合を生成するステップであって、前記暗号文値集合の要素情報は前記共通集合要求側の暗号文であるステップと、を行うように構成される請求項9に記載の装置。
【請求項11】
前記隠し関数は共通集合要求側のプライバシー集合及びラグランジュ補間法に基づいて構築される多項式関数である請求項10に記載の装置。
【請求項12】
共通集合要求側から暗号文、暗号文関数、公開鍵を受信するように構成される受信モジュールであって、前記暗号文、暗号文関数、公開鍵は共通集合要求側が準同型暗号化アルゴリズムにより共通集合要求側のプライバシー集合を暗号化することによって得られる、受信モジュールと、
共通集合提供側のプライバシー集合中の各要素を暗号文関数に代入し、前記各要素の暗号文関数値を計算するように構成される復号モジュールであって、共通集合提供側のプライバシー集合中のある要素の暗号文関数値が0に等しい場合、該要素は前記共通集合提供側のプライバシー集合と前記共通集合要求側のプライバシー集合との共通部分である、復号モジュールと、を含む共通集合提供側によるプライバシー集合共通部分取得装置。
【請求項13】
共通集合要求側から受信された前記公開鍵に基づいて共通集合提供側のプライバシー集合を暗号化し、共通集合提供側のプライバシー集合の暗号文を生成するように構成される暗号化モジュールと、
ランダムセキュリティ関数に基づいて前記共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を計算するように構成されるランダム化モジュールであって、ランダムセキュリティ関数は前記共通集合提供側のプライバシー集合中の非共通要素の暗号文に対応するランダムセキュリティ関数値をランダム化処理することに用いられる、ランダム化モジュールと、
前記共通集合提供側のプライバシー集合中の各要素に対応するランダムセキュリティ関数値を共通集合要求側に提供するように構成される提供モジュールと、をさらに含む請求項12に記載の装置。
【請求項14】
前記暗号化モジュールはさらに、
共通集合提供側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、前記隠し関数は共通集合提供側のプライバシー集合に対してマッピング保護を行うことに用いられ、前記パラメータ集合中の要素情報は共通集合提供側のプライバシー集合の要素情報を隠している、ステップと、
前記公開鍵を使用して前記パラメータ集合を暗号化し、前記パラメータ集合の暗号文値集合を生成するステップであって、前記暗号文値集合の要素情報は前記共通集合提供側のプライバシー集合の暗号文であるステップと、を行うように構成される請求項13に記載の装置。
【請求項15】
前記ランダム化モジュールはさらに、
共通集合要求側によって構築されたパラメータ集合及び隠し関数に基づいて、共通集合提供側のプライバシー集合の隠し関数の値を計算するステップであって、前記隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられるステップと、
摂動数値により共通集合提供側のプライバシー集合の隠し関数の値をランダム化処理するステップと、
共通集合提供側のプライバシー集合の隠し関数の値のランダム化処理結果と前記共通集合提供側のプライバシー集合の暗号文とを加算し、共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を得るステップと、を行うように構成される請求項13又は14に記載の装置。
【請求項16】
前記隠し関数はプライバシー集合及びラグランジュ補間法に基づいて構築される多項式関数である請求項14又は15に記載の装置。
【請求項17】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に接続されるメモリとを含み、
前記メモリには前記少なくとも1つのプロセッサによって実行可能な指令が記憶されており、前記指令は前記少なくとも1つのプロセッサにより実行されると、請求項1~8のいずれか一項に記載の方法を前記少なくとも1つのプロセッサに実行させる、電子機器。
【請求項18】
請求項1~8のいずれか一項に記載の方法を前記コンピュータに実行させるためのコンピュータ指令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項19】
プロセッサにより実行されると、請求項1~8のいずれか一項に記載の方法を実現する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願はコンピュータの技術分野に関し、具体的には、暗号学の技術分野に関し、特にプライバシー集合の共通部分を取得する方法及び装置、電子機器、記憶媒体並びにコンピュータプログラムに関する。
【背景技術】
【0002】
プライバシー集合の共通部分は、それぞれの集合を持つ2つの当事者が共同で2つのプライバシー集合の共通部分に対してインタラクティブな計算処理を行う演算である。インタラクティブな計算処理の最後に、一方又は両方の当事者はそれらのプライバシー集合の共通部分を得るべきであり、共通部分以外の相手のプライバシー集合中の任意の情報を得ることがない。ユーザデータのプライバシー保護がますます重要視されるに伴い、この方向での研究は、個人情報に依存する様々なサービスの利便性を享受しながら、個人情報のプライバシーを最大限に保護するという人々のますます強くなる必要性を満たすようにするものである。
【0003】
従来技術では、主にDiffie-Hellman及び不注意なトランスミッションプロトコル(inadvertent transmission protocol)に基づいてプライバシー集合の共通部分の演算を実現する。Diffie-HellmanプロトコルはDiffie-Hellman鍵交換プロトコルともいう。Diffie-Hellmanプロトコルを使用したプライバシー集合の共通部分演算スキームにおいて、双方は秘密鍵をランダムに生成して相手に送信する必要があり、計算過程中に双方は通信状態を維持する必要がある。双方間に認証メカニズムがないため、オープンな通信チャネルでは、双方はDiffie-Hellmanプロトコルの中間者からの攻撃を受けやすい。プライバシー要求が高いシーンでは、プライバシー集合の双方はこのようなオンラインプライバシー集合の共通部分演算スキームを受け入れることが困難である。
【発明の概要】
【課題を解決するための手段】
【0004】
本出願の実施例はプライバシー集合の共通部分を取得する方法及び装置、電子機器、記憶媒体並びにコンピュータプログラムを提供する。
【0005】
第1態様によれば、本出願の実施例は、準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成するステップと、前記共通集合要求側の暗号文、暗号文関数、公開鍵を共通集合提供側に提供するステップと、共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信するステップであって、前記共通集合提供側のプライバシー集合の復号すべき関数値は共通集合提供側によって前記公開鍵、前記共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて得られ、前記ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられる、ステップと、前記秘密鍵を使用して前記共通集合提供側のプライバシー集合の復号すべき関数値を復号し、前記共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得るステップと、を含む共通集合要求側におけるプライバシー集合共通部分取得方法を提供する。
【0006】
第2態様によれば、本出願の実施例は、共通集合要求側から暗号文、暗号文関数、公開鍵を受信するステップであって、前記暗号文、暗号文関数、公開鍵は共通集合要求側が準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化することによって得られる、ステップと、共通集合提供側のプライバシー集合の各要素を暗号文関数に代入し、前記各要素の暗号文関数値を計算し、共通集合提供側のプライバシー集合中のある要素の暗号文関数値が0に等しい場合、該要素は前記共通集合提供側のプライバシー集合と前記共通集合要求側のプライバシー集合との共通部分であるステップと、を含む共通集合提供側におけるプライバシー集合共通部分取得方法を提供する。
【0007】
第3態様によれば、本出願の実施例は、準同型暗号化アルゴリズムにより共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成するように構成される、暗号化モジュールと、前記共通集合要求側の暗号文、暗号文関数、公開鍵を共通集合提供側に提供するように構成される提供モジュールと、共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信するように構成される受信モジュールであって、前記共通集合提供側のプライバシー集合の復号すべき関数値は共通集合提供側によって前記公開鍵、前記共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて得られ、前記ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられる、受信モジュールと、前記秘密鍵を使用して前記共通集合提供側のプライバシー集合の復号すべき関数値を復号し、前記共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得るように構成される復号モジュールと、を含む共通集合要求側によるプライバシー集合共通部分取得装置を提供する。
【0008】
第4態様によれば、本出願の実施例は、共通集合要求側から暗号文、暗号文関数、公開鍵を受信するように構成される受信モジュールであって、前記暗号文、暗号文関数、公開鍵は共通集合要求側が準同型暗号化アルゴリズムにより共通集合要求側のプライバシー集合を暗号化することによって得られる、受信モジュールと、共通集合提供側のプライバシー集合中の各要素を暗号文関数に代入し、前記各要素の暗号文関数値を計算するように構成される復号モジュールであって、共通集合提供側のプライバシー集合中のある要素の暗号文関数値が0に等しい場合、該要素は前記共通集合提供側のプライバシー集合と前記共通集合要求側のプライバシー集合との共通部分である、復号モジュールと、を含む共通集合提供側によるプライバシー集合共通部分取得装置を提供する。
【0009】
第5態様によれば、本出願の実施例は、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに通信可能に接続されるメモリとを含み、前記メモリには前記少なくとも1つのプロセッサによって実行可能な指令が記憶されており、前記指令は前記少なくとも1つのプロセッサにより実行されると、第1態様又は第2態様の実施形態のいずれかに記載の方法を前記少なくとも1つのプロセッサに実行させる、電子機器を提供する。
【0010】
第6態様によれば、本出願の実施例は、第1態様又は第2態様の実施形態のいずれかに記載の方法をコンピュータに実行させるためのコンピュータ指令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供する。
【0011】
第7態様によれば、本出願の実施例は、プロセッサにより実行されると、第1態様又は第2態様の実施形態のいずれかに記載の方法を実現する、コンピュータプログラムを提供する。
【0012】
本出願の実施例に係るプライバシー集合の共通部分を取得する方法、装置、電子機器及び記憶媒体は、まず、準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成し、次に、前記共通集合要求側の暗号文、暗号文関数、公開鍵を共通集合提供側に提供し、その後、共通集合提供側は前記公開鍵、前記共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて共通集合提供側のプライバシー集合の復号すべき関数値を得て、前記ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられ、最後に、前記秘密鍵を使用して前記共通集合提供側のプライバシー集合の復号すべき関数値を復号し、前記共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得て、それによって準正直モデル(semi-honest model)を実現するとともに、暗号化アルゴリズムの部分準同型特性を利用し、双方のプライバシー集合情報を漏洩から保護するうえで、共通集合要求側がオフラインで共通部分の結果を求めることを確保することができる。
【0013】
この部分に記載されている内容は、本出願の実施例の重要な特徴を特定することを意図するものではなく、本出願の範囲を限定することを意図するものでもないことを理解されたい。本出願の他の特徴は、以下の明細書によって容易に理解されるであろう。
【0014】
図面は、本解決案をよりよく理解するために使用されており、本出願を限定するものではない。
【図面の簡単な説明】
【0015】
【
図1】本出願を適用できる例示的なシステムアーキテクチャである。
【
図2】本出願に係る共通集合要求側がプライバシー集合の共通部分を取得する方法の一実施例の模式的なフローチャートである。
【
図3】本出願に係る準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化する方法の一実施例の模式図である。
【
図4】本出願に係る共通集合提供側がプライバシー集合の共通部分を取得する方法の一実施例の模式的なフローチャートである。
【
図5】本出願に係るプライバシー集合の共通部分を取得する方法の1つの応用シーンの模式図である。
【
図6】本出願に係る共通集合要求側がプライバシー集合の共通部分を取得する装置の一実施例を示す。
【
図7】本出願に係る共通集合提供側がプライバシー集合の共通部分を取得する装置の一実施例を示す。
【
図8】本出願の実施例に係るプライバシー集合の共通部分を取得する方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0016】
以下では、図面を参照しながら本出願の例示的な実施例を説明するが、この説明には、理解を容易にするために本出願の実施例の様々な詳細が含まれるが、これらは単に例示的なものであると考えるべきである。したがって、当業者が理解できるように、本出願の範囲及び精神を逸脱することなく、ここで記載される実施例に様々な変更及び修正を加えることができる。同様に、以下の説明では、周知の機能及び構造については、明確化及び簡明化のために説明を省略する。
【0017】
図1は本出願に係る共通集合要求側がプライバシー集合の共通部分を取得する方法又は共通集合要求側がプライバシー集合の共通部分を取得する装置の実施例を適用できる例示的なシステムアーキテクチャ100を示す。
【0018】
図1に示すように、システムアーキテクチャ100は記憶装置101、ネットワーク102及び記憶装置103を含む。ネットワーク102は記憶装置101と記憶装置103との間で通信リンクを提供するための媒体である。ネットワーク102は、たとえば、有線、無線通信リンク又は光ファイバ又はケーブル等の様々な接続タイプを含んでもよい。
【0019】
記憶装置101、記憶装置103はそれぞれ共通集合要求側の機器及び共通集合提供側の機器であってもよい。記憶装置101はネットワーク102を介して記憶装置103とインタラクションすることができる。共通集合提供側の記憶装置103として、共通集合提供側のプライバシー集合の復号すべき関数値を提供でき、データベース、ユーザ端末等を含むが、これらに限定されない。好ましくは、共通集合提供側の記憶装置103として、ネットワーク102との接続を切断してもよく、記憶装置103には共通集合提供側のプライバシー集合の復号すべき関数値が保存されており、記憶装置103によって共通集合提供側はそのプライバシー集合の復号すべき関数値を共通集合要求側に提供し、モバイルハードディスク、リムーバブルディスク、USBフラッシュドライブ等を含むが、これらに限定されない。
【0020】
共通集合要求側の記憶装置101として、ネットワーク102との接続を切断してもよい。記憶装置101は本出願に係る共通集合要求側がプライバシー集合の共通部分を取得する方法を実行でき、ユーザ端末、コンピュータ等を含むが、これらに限定されない。例示的には、記憶装置101はLinuxシステムを搭載したコンピュータ機器であってもよい。
【0021】
図1中の記憶装置、ネットワークの数は例示的なものであると理解すべきである。実現の必要に応じて、任意数の記憶装置、ネットワークであってもよい。
【0022】
続いて、
図2に示すように、本出願に係る共通集合要求側がプライバシー集合の共通部分を取得する方法の一実施例のプロセス200を示す。該共通集合要求側がプライバシー集合の共通部分を取得する方法は以下のステップ201~204を含む。
【0023】
ステップ201:準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成する。
【0024】
本実施例では、共通集合要求側はPaillier暗号化アルゴリズムを使用してローカルで鍵ペア(公開鍵と秘密鍵)を生成してもよい。共通集合要求側のプライバシー集合はユーザ識別子集合、たとえば携帯電話番号、身分証明書番号等のプライバシー情報であってもよい。例示的には、共通集合要求側のプライバシー集合はn個の要素を含む集合SetA={x1,x2,x3,…,xn}(nは正の整数)である。共通集合要求側は公開鍵を使用してプライバシー集合SetAを暗号化し、暗号文enc_SetA={enc_x1,enc_x2,enc_x3,…,enc_xn}を生成する。暗号文関数fとは、生成された暗号文enc_SetAを処理する関数であり、ここで、暗号文関数fは共通集合要求側によって共通集合提供側に提供される。準同型暗号化アルゴリズムの特性に基づいて、暗号文関数fを使用して暗号文を処理した結果は平文(すなわち、共通集合要求側のプライバシー集合SetA)を処理した結果に相当する。
【0025】
ステップ202:共通集合要求側暗号文、暗号文関数、公開鍵を共通集合提供側に提供する。
【0026】
本実施例では、共通集合要求側は記憶装置によって提供を行ってもよい。提供の方式はオフラインモードであってもよく、オンラインモードであってもよい。好ましくは、共通集合要求側の記憶装置として、ネットワークとの接続を切断してもよく、記憶装置には共通集合要求側の暗号文、暗号文関数、公開鍵が保存されており、共通集合要求側は、記憶装置によってその暗号文、暗号文関数、公開鍵を共通集合要求側に提供し、記憶装置はモバイルハードディスク、リムーバブルディスク、USBフラッシュドライブ等を含むが、これらに限定されない。
【0027】
ステップ203:共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信する。
【0028】
本実施例では、共通集合提供側のプライバシー集合の復号すべき関数値は、共通集合提供側によって公開鍵、共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて得られ、ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられる。ここで、共通集合提供側は共通集合要求側によって提供された公開鍵を使用して自分のプライバシー集合SetB={y1,y2,y3,…,ym}(mは正の整数)を暗号化し、共通集合提供側のプライバシー集合暗号文enc_setB={enc_y1,enc_y2,enc_y3,…,enc_ym}を生成する。その後、暗号文enc_setB中の各要素をランダムセキュリティ関数encTj(1≦j≦m)に代入し、各要素のランダムセキュリティ関数値encTjを計算し、該ランダムセキュリティ関数値encTjを各要素の復号すべき関数値として共通集合要求側に提供する。ランダムセキュリティ関数が集合SetB中の非共通要素のみをランダム化処理するため、共通集合提供側の集合SetB中の非共通要素の情報を漏洩することがなく、それによって情報のセキュリティを確保できる。
【0029】
ステップ204:秘密鍵を使用して共通集合提供側のプライバシー集合の復号すべき関数値を復号し、共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得る。
【0030】
本実施例では、共通集合要求側はローカル秘密鍵を使用してランダムセキュリティ関数値encTjを復号し、復号後の値がローカルプライバシー集合SetAに属する場合、この値がプライバシー集合SetAとプライバシー集合SetBとの共通要素であることを示す。復号後の値がローカルプライバシー集合SetAに属さない場合、共通集合要求側が得たのは単に1つのランダム値であり、それによって共通集合提供側の集合SetB中の非共通要素の情報を漏洩することがない。
【0031】
従来技術に比べて、共通集合要求側は共通集合提供側の鍵情報を取得する必要がなく、共通集合要求側のローカルの秘密鍵を使用するだけで共通部分情報を復号できる。また、ランダムセキュリティ関数は双方のプライバシー集合中の非共通要素をランダム化処理することで、共通集合提供側の非共通要素が共通集合要求側に漏洩されないことを確保し、双方のセキュリティ保護を実現するだけでなく、リアルタイムなネットワーク通信を行わずに双方のプライバシー集合の共通要素を取得できる。
【0032】
続いて、
図3に示すように、いくつかのオプション的な実施例では、上記ステップ201における「準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成する」ステップは以下のステップ301~302を含む。
【0033】
ステップ301:共通集合要求側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築する。
【0034】
本実施例では、共通集合要求側はローカルのプライバシー集合SetA={x1,x2,x3,…,xn}(nは正の整数)中の各要素を隠し関数fに代入し、それによってパラメータ集合SetP={a0、a1、a2、a3、…、an}(nは正の整数)を構築する。隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられ、例示的には、通常、数学方法を使用してローカルでプライバシー集合に対してマッピング保護を行う。パラメータ集合SetP中の要素情報は共通集合要求側のプライバシー集合中の要素情報を隠しており、共通集合要求側のオリジナルのプライバシー集合SetA中の要素情報はブロックされており、それによって共通集合提供側は集合SetA中の要素情報を推定できず、さらに情報のセキュリティを確保できる。隠し関数によってローカルのプライバシー集合をマッピングすることによって、さらにローカルのオリジナル情報を第三者への漏洩から保護することができる。
【0035】
1つのオプション的な実施例では、隠し関数fは多項式関数であってもよい。好ましくは、共通集合要求側はプライバシー集合SetA及びラグランジュ補間法に基づいて、多項式関数f(x)=(x1-x)*(x2-x)*…*(xn-x)=a0+a1x+a2x2+a3x3+…+anxn(ここで、x1,x2,x3,…,xnは共通集合要求側のプライバシー集合SetA中の要素である)を構築し、構築された多項式関数中の係数a0、a1、a2、a3、…、anをパラメータ集合SetPの要素とし、それによってパラメータ集合SetP={a0,a1,a2,a3,…,an}を生成する。構築された多項式関数によって、共通集合要求側のオリジナルのプライバシー集合SetAの要素情報がブロックされており、数学的複雑さによると、情報の一部が解読されたとしても、プライバシー集合SetA中の要素のID情報を推定できない。
【0036】
ステップ302:公開鍵を使用してパラメータ集合を暗号化し、パラメータ集合の暗号文値集合を生成する。
【0037】
本実施例では、共通集合要求側はローカルの公開鍵を使用して上記パラメータ集合SetP中の要素a0、a1、a2、a3、…、anを暗号化し、暗号文enc_a0、enc_a1、enc_a2、enc_a3、…、enc_anを生成し、該暗号文を公開鍵とともに共通集合提供側に提供する。
【0038】
続いて、
図4に示すように、
図4は本出願に係る共通集合提供側がプライバシー集合の共通部分を取得する方法の一実施例の模式的なフローチャートを示し、以下のステップ401~402を含む。
【0039】
ステップ401:共通集合要求側から暗号文、暗号文関数、公開鍵を受信する。
【0040】
本実施例では、暗号文、暗号文関数、公開鍵は共通集合要求側が準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化することによって得られたものである。共通集合要求側が具体的にはどのように準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化するか及びその技術的効果について、それぞれ
図2、
図3の対応する実施例のステップ201及びステップ301~302の関連説明を参照でき、ここではその説明を省略する。
【0041】
ステップ402:共通集合提供側のプライバシー集合中の各要素を暗号文関数に代入し、前記各要素の暗号文関数値を計算する。
【0042】
本実施例では、共通集合提供側はローカルのプライバシー集合SetB={y
1,y
2,y
3,…,y
m}中の各要素を暗号文関数に代入し、ある要素の暗号文関数値が0に等しい場合、該要素は共通集合提供側のプライバシー集合と共通集合要求側のプライバシー集合との共通部分である。例示的には、共通集合要求側から受信された暗号文を暗号文関数のパラメータとしてもよい。ここで、暗号文は共通集合要求側がそのプライバシー集合SetA中の要素を暗号化することによって得られたものでもよく、共通集合要求側がそのプライバシー集合SetA中の要素を隠し関数に代入することによって得られたものであってもよい。具体的には共通集合要求側がどのように暗号文を得るか及びその技術的効果について、それぞれ
図2、
図3の対応する実施例のステップ201及びステップ301~302の関連説明を参照でき、ここではその説明を省略する。
【0043】
1つのオプション的な実施例では、共通集合提供側は暗号文とするパラメータ集合SetP={enc_a0,enc_a1,enc_a2,enc_a3,…,enc_an}及びローカルプライバシー集合SetB={y1,y2,y3,…,ym}を暗号文関数とする多項式関数f(x)=(x1-x)*(x2-x)*…*(xn-x)=a0+a1x+a2x2+a3x3+…+anxnに代入してもよい。ローカルのプライバシー集合SetB中の各要素の関数値encF(yj)=enc_a0+enc_a1yj+enc_a2yj
2+…+enc_anyj
n(1≦j≦m)を計算する。ある要素yjを復号した値が0に等しい場合、該要素がプライバシー集合SetAとプライバシー集合SetBとの共通要素であることを示す。
【0044】
本実施例では、多項式関数の性質をよく利用することで、復号過程の計算量を大幅に低減させ、復号の効率を向上させることができる。
【0045】
1つのオプション的な実施形態では、本出願に係る共通集合提供側がプライバシー集合の共通部分を取得する方法はさらに、共通集合要求側から受信された公開鍵により共通集合提供側のプライバシー集合を暗号化し、共通集合提供側のプライバシー集合の暗号文を生成するステップと、ランダムセキュリティ関数に基づいて、共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を計算するステップであって、ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素の暗号文に対応するランダムセキュリティ関数値をランダム化処理することに用いられる、ステップと、共通集合提供側のプライバシー集合中の各要素に対応するランダムセキュリティ関数値を共通集合要求側に提供するステップと、を含む。具体的にはどのようにランダムセキュリティ関数値を計算するか及びその技術的効果について、
図2の対応する実施例のステップ203の関連説明を参照でき、ここではその説明を省略する。
【0046】
1つのオプション的な実施形態では、共通集合要求側から受信された公開鍵により共通集合提供側のプライバシー集合を暗号化し、共通集合提供側のプライバシー集合の暗号文を生成するステップは、共通集合提供側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、隠し関数は共通集合提供側のプライバシー集合に対してマッピング保護を行うことに用いられ、パラメータ集合中の要素情報は共通集合提供側のプライバシー集合の要素情報を隠しているステップと、公開鍵を使用して前記パラメータ集合を暗号化し、パラメータ集合の暗号文値集合を生成するステップであって、暗号文値集合の要素情報は共通集合提供側のプライバシー集合の暗号文であるステップと、を含む。
【0047】
1つのオプション的な実施形態では、ランダムセキュリティ関数に基づいて共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を計算するステップは、共通集合要求側によって構築されたパラメータ集合及び隠し関数に基づいて、共通集合提供側のプライバシー集合の隠し関数の値を計算するステップと、摂動数値(perturbation number)により共通集合提供側のプライバシー集合の隠し関数の値をランダム化処理するステップと、共通集合提供側のプライバシー集合の隠し関数の値のランダム化処理結果と共通集合提供側のプライバシー集合の暗号文とを加算し、共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を得るステップと、を含む。
【0048】
本実施例では、隠し関数はローカルのプライバシー集合及びラグランジュ補間法に基づいて構築される多項式関数であってもよい。具体的にはどのように多項式関数を構築するか及びその技術的効果について、
図3の対応する実施例のステップ301の関連説明を参照でき、ここではその説明を省略する。
【0049】
本実施例では、ランダムセキュリティ関数encTj=r*encF(yj)+enc_yjを提供する。ここで、共通集合提供側は公開鍵を使用してローカルのプライバシー集合SetBを暗号化して暗号文enc_yjを得たが、encF(yj)は共通集合提供側のプライバシー集合の隠し関数の値である。好ましくは、共通集合提供側は共通集合要求側から受信されたパラメータ集合SetP={enc_a0,enc_a1,enc_a2,enc_a3,…,enc_an}及びローカルのプライバシー集合SetB={y1,y2,y3,…,ym}を、隠し関数とした多項式関数f(x)=(x1-x)*(x2-x)*…*(xn-x)=a0+a1x+a2x2+a3x3+…+anxnに代入する。集合SetB中の各要素の隠し関数の値encF(yj)=enc_a0+enc_a1yj+enc_a2yj
2+…+enc_anyj
n(1≦j≦m)を計算し、集合SetB中の要素が共通要素である場合、該要素の隠し関数の値encF(yj)が0に等しい。共通集合提供側はローカルで1つの摂動数値rをさらにランダムに生成し、摂動数値rとencF(yj)とを乗算し、このようにして、集合SetB中の非共通要素の隠し関数の値に対するランダム化処理を実現できる。本実施例に係るランダムセキュリティ関数によって、SetB中の非共通要素に対してセキュリティ保護を行うことができる。
【0050】
1つのオプション的な実施例では、まず、隠し関数f
1を使用して共通集合提供側のプライバシー集合SetBに対してマッピング保護を行ってもよい。例示的には、共通集合提供側はローカルのプライバシー集合SetB={y
1,y
2,y
3,…,y
m}(ここで、mは正の整数)中の各要素を隠し関数f
1に代入し、それによってパラメータ集合Set_p={b0,b1,b2,b3,…,bn}(ここで、nは正の整数)を構築し、その後、公開鍵を使用してパラメータ集合Set_pを暗号化して暗号文enc_b
jを得る。得られた暗号文enc_b
jを上記ランダムセキュリティ関数encT
j=r*encF(y
j)+enc_b
jに代入する。共通集合提供側は公開鍵を使用してローカルのプライバシー集合SetBを直接暗号化すると、ローカルのオリジナル情報を第三者に漏洩するリスクが存在する可能性がある。隠し関数によって共通集合提供側のプライバシー集合をマッピングすることによって、さらに共通集合提供側のオリジナル情報を第三者への漏洩から保護できる。続いて、
図5に示すように、理解を容易にするために、
図5は本出願に係るプライバシー集合の共通部分を取得する方法の1つの応用シーンの模式図を示す。
【0051】
図5に示すように、本出願に係るプライバシー集合の共通部分を取得する方法は以下のステップ1~ステップ8を含む。
【0052】
1.共通集合要求側Aはローカルで準同型暗号化(Paillier)アルゴリズムの公開鍵及び秘密鍵を生成する。
2.Aはローカルのプライバシー集合SetA={x1,x2,x3,…,xn}及びラグランジュ補間法に基づいて、多項式関数f(x)=(x1-x)*(x2-x)*…*(xn-x)=a0+a1x+a2x2+a3x3+…+anxnを構築する。
3.Aはローカルの公開鍵を使用して、多項式の係数a0、a1、a2、a3、…、anを暗号化し、暗号文1を生成し、暗号文1及び公開鍵を共通集合提供側Bに提供する。
4.Bは公開鍵及び暗号文1を受信する。
5.Bのローカルの集合SetB要素に対して、準同型暗号化特性を利用して、SetBの要素ごとに、暗号文1の情報を使用して関数値encF(yj)=enc_a0+enc_a1yj+enc_a2yj
2+…+enc_anyj
nを計算する。
6.Bはローカルで1つの摂動数値rをランダムに生成し、encTj=r*encF(yj)+enc_yjによって暗号文2を計算する。
7.m個の暗号文値を含む結果暗号文2をAに送信する。
8.Aはローカルで秘密鍵を使用して暗号文2を復号し、要素がSetAに属する場合、該要素が共通部分であることを示し、乱数である場合、該要素がSetAとSetBとの共通部分ではないことを示す。
【0053】
さらに
図6に示すように、上記各図に示される方法の実現として、本出願は共通集合要求側がプライバシー集合の共通部分を取得する装置の一実施例を提供し、該装置実施例は
図2に示される方法実施例に対応し、該装置は具体的には、様々な電子機器に適用できる。
【0054】
図6に示すように、本実施例に係る共通集合要求側がプライバシー集合の共通部分を取得する装置600は、準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側の暗号文、暗号文関数、公開鍵及び秘密鍵を生成するように構成される暗号化モジュール601と、共通集合要求側の暗号文、暗号文関数、公開鍵を共通集合提供側に提供するように構成される提供モジュール602と、共通集合提供側から共通集合提供側のプライバシー集合の復号すべき関数値を受信するように構成される受信モジュール603であって、共通集合提供側のプライバシー集合の復号すべき関数値は、共通集合提供側によって公開鍵と、共通集合提供側のプライバシー集合と、ランダムセキュリティ関数とに基づいて得られ、ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられる受信モジュール603と、秘密鍵を使用して共通集合提供側のプライバシー集合の復号すべき関数値を復号し、共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得るように構成される復号モジュール604と、を含む。
【0055】
本実施例では、共通集合要求側がプライバシー集合の共通部分を取得する装置において、暗号化モジュール601、提供モジュール602、受信モジュール603、復号モジュール604の具体的な処理及びその技術的効果について、それぞれ
図2の対応する実施例のステップ201~204の関連説明を参照でき、ここではその説明を省略する。
【0056】
本実施例のいくつかのオプション的な実施形態では、暗号化モジュールはさらに、共通集合要求側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられ、パラメータ集合中の要素情報は共通集合要求側のプライバシー集合の要素情報を隠している、ステップと、公開鍵を使用して前記パラメータ集合を暗号化し、パラメータ集合の暗号文値集合を生成するステップであって、暗号文値集合の要素情報は共通集合要求側の暗号文であるステップと、を行うように構成される。
【0057】
本実施例のいくつかのオプション的な実施形態では、隠し関数は共通集合要求側のプライバシー集合及びラグランジュ補間法に基づいて構築された多項式関数である。
【0058】
さらに
図7に示すように、上記各図に示される方法の実現として、本出願は共通集合提供側がプライバシー集合の共通部分を取得する装置の一実施例を提供し、該装置実施例は
図4に示される方法実施例に対応し、該装置は具体的には様々な電子機器に適用できる。
【0059】
図7に示すように、本実施例に係る共通集合提供側がプライバシー集合の共通部分を取得する装置700は、共通集合要求側から暗号文、暗号文関数、公開鍵を受信するように構成される受信モジュール701であって、暗号文、暗号文関数、公開鍵は共通集合要求側が準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化することによって得られる受信モジュール701と、共通集合提供側のプライバシー集合中の各要素を暗号文関数に代入し、各要素の暗号文関数値を計算し、共通集合提供側のプライバシー集合中のある要素の暗号文関数値が0に等しい場合、該要素が共通集合提供側のプライバシー集合と共通集合要求側のプライバシー集合との共通部分であるように構成される復号モジュール702と、を含む。
【0060】
本実施例では、共通集合提供側がプライバシー集合の共通部分を取得する装置において、受信モジュール701、復号モジュール702の具体的な処理及びその技術的効果について、それぞれ
図4の対応する実施例のステップ401~402の関連説明を参照でき、ここではその説明を省略する。
【0061】
本実施例のいくつかのオプション的な実施形態では、該装置はさらに、共通集合要求側から受信された公開鍵に基づいて共通集合提供側のプライバシー集合を暗号化し、共通集合提供側のプライバシー集合の暗号文を生成するように構成される暗号化モジュールと、ランダムセキュリティ関数に基づいて共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を計算するように構成されるランダム化モジュールであって、ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素の暗号文に対応するランダムセキュリティ関数値をランダム化処理することに用いられる、ランダム化モジュールと、共通集合提供側のプライバシー集合中の各要素に対応するランダムセキュリティ関数値を共通集合要求側に提供するように構成される提供モジュールと、を含む。
【0062】
本実施例のいくつかのオプション的な実施形態では、暗号化モジュールはさらに、共通集合提供側のプライバシー集合及び隠し関数に基づいて、パラメータ集合を構築するステップであって、隠し関数は共通集合提供側のプライバシー集合に対してマッピング保護を行うことに用いられ、パラメータ集合中の要素情報は共通集合提供側のプライバシー集合の要素情報を隠している、ステップと、公開鍵を使用してパラメータ集合を暗号化し、パラメータ集合の暗号文値集合を生成するステップであって、暗号文値集合の要素情報は共通集合提供側のプライバシー集合の暗号文であるステップと、を行うように構成される。
【0063】
本実施例のいくつかのオプション的な実施形態では、ランダム化モジュールはさらに、共通集合要求側によって構築されたパラメータ集合及び隠し関数に基づいて、共通集合提供側のプライバシー集合の隠し関数の値を計算するステップであって、隠し関数は共通集合要求側のプライバシー集合に対してマッピング保護を行うことに用いられるステップと、摂動数値により共通集合提供側のプライバシー集合の隠し関数の値をランダム化処理するステップと、共通集合提供側のプライバシー集合の隠し関数の値のランダム化処理結果と共通集合提供側のプライバシー集合の暗号文とを加算し、共通集合提供側のプライバシー集合の暗号文中の各要素に対応するランダムセキュリティ関数値を得るステップと、を行うように構成される。
【0064】
本実施例のいくつかのオプション的な実施形態では、隠し関数はローカルプライバシー集合及びラグランジュ補間法に基づいて構築された多項式関数である。
【0065】
本出願の実施例によれば、本出願はさらに電子機器及び読み取り可能な記憶媒体を提供する。
【0066】
図8に示すように、本出願の実施例に係るプライバシー集合の共通部分を取得する方法の電子機器のブロック図である。電子機器は、たとえば、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及びその他の適切なコンピュータなど、様々な形式のデジタルコンピュータを指すことを意図している。電子機器は、たとえば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブルデバイス、及びその他の類似のコンピューティング装置など、様々な形式のモバイルデバイスを示してもよい。本明細書に示されているコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であるが、本明細書の説明及び/又は要求される本出願の実現を制限する意図はしない。
【0067】
図8に示すように、該電子機器は1つ又は複数のプロセッサ801、メモリ802、及び高速インターフェースと低速インターフェースを含む、様々なコンポーネントを接続するためのインターフェースを含む。各コンポーネントは、異なるバスを介して互いに接続され、共通のマザーボードに取り付けられ、又は必要に応じて他の方式で取り付けられ得る。プロセッサは電子機器内で実行される指令を処理でき、この指令には、メモリ内に記憶される又はメモリ上に記憶されて外部入出力装置(たとえば、インターフェースに結合された表示装置など)にGUIのグラフィック情報を表示する指令が含まれる。他の実施形態では、複数のプロセッサ及び/又は複数のバスを、必要に応じて、複数のメモリ及び複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各機器は必要な動作の一部(たとえば、サーバアレイ、ブレードサーバのグループ、又はマルチプロセッサシステムとして)を提供する。
図8では、1つのプロセッサ801の場合が例示されている。
【0068】
メモリ802は、本出願に係る非一時的なコンピュータ読み取り可能な記憶媒体である。前記メモリは、本出願に係るプライバシー集合の共通部分を取得する方法を前記少なくとも1つのプロセッサに実行させるように、少なくとも1つのプロセッサによって実行可能な指令を記憶している。本出願の非一時的なコンピュータ読み取り可能な記憶媒体は、本出願に係るプライバシー集合の共通部分を取得する方法をコンピュータに実行させるためのコンピュータ指令を記憶している。
【0069】
非一時的なコンピュータ読み取り可能な記憶媒体としてのメモリ802は、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュール、たとえば、本出願の実施例におけるプライバシー集合の共通部分を取得する方法に対応するプログラム指令/モジュール(たとえば、
図6に示される暗号化モジュール601、提供モジュール602、受信モジュール603及び復号モジュール604、またたとえば、
図7に示される受信モジュール701、復号モジュール702)を記憶することができる。プロセッサ801はメモリ802に記憶された非一時的なソフトウェアプログラム、指令、及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち、上記方法実施例におけるプライバシー集合の共通部分を取得する方法を実現する。
【0070】
メモリ802は、プログラム記憶領域及びデータ記憶領域を含むことができ、プログラム記憶領域は、オペレーティングシステム、及び少なくとも1つの機能に必要なアプリケーションプログラムを記憶し、データ記憶領域は、プライバシー集合の共通部分を取得する方法を実行する電子機器の使用に伴って作成されたデータなどを記憶する。また、メモリ802は、高速ランダムアクセスメモリを含み、さらに、たとえば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスなどの非一時的なメモリを含んでもよい。いくつかの実施例では、メモリ802は、プロセッサ801に対して遠隔的に設置されるメモリを選択的に含んでもよく、これらの遠隔メモリは、ネットワークを介してプライバシー集合の共通部分を取得する方法の電子機器に接続され得る。上記ネットワークの例には、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びそれらの組み合わせが含まれるが、これらに限定されない。
【0071】
プライバシー集合共通部分を取得する方法の電子機器はさらに入力装置803及び出力装置804を含んでもよい。プロセッサ801、メモリ802、入力装置803及び出力装置804はバス又はその他の方式で接続してもよく、
図8には、バスによる接続が例示されている。
【0072】
入力装置803は、入力される数字又はキャラクター情報を受信すること、プライバシー集合の共通部分を取得する方法の電子機器、たとえば、タッチパネル、キーパッド、マウス、トラックパッド、タッチパッド、ポインタ、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置のユーザ設定及び機能制御に関連するキー信号入力を生成することができる。出力装置804は、表示装置、補助照明装置(たとえば、LED)、触覚フィードバック装置(たとえば、振動モータ)などを含む。この表示装置は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを含むが、これらに限定されない。いくつかの実施形態では、表示装置はタッチスクリーンであり得る。
【0073】
ここで説明するシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASMC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムにおいて実施され、この1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステムで実行及び/又は解釈され得、このプログラム可能なプロセッサは専用又は汎用のプログラム可能なプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び指令を受信し、データ及び指令をこのストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置に送信することができる。
【0074】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)には、プログラム可能なプロセッサの機械命令が含まれ、ハイレベルプロセス及び/又はオブジェクト指向のプログラミング言語、及び/又はアセンブリ/機械語を用いてこれらのコンピューティングプログラムを実施できる。たとえば、本明細書で使用される「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」という用語は、機械命令及び/又はデータをプログラム可能なプロセッサの任意のコンピュータプログラム製品、機器、及び/又は装置(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジック機器(PLD))に提供するものを指し、機械読み取り可能な信号としての機械命令を受信するための機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、プログラム可能なプロセッサに機械命令及び/又はデータを提供するために使用される任意の信号を指す。
【0075】
ユーザとインタラクションすることができるように、ここで説明するシステム及び技術をコンピュータに実施することができ、このコンピュータは、ユーザに情報を表示するための表示装置(たとえば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニター)、ユーザがコンピュータに入力することを可能とするキーボード及びポインティング装置(たとえば、マウスやトラックボール)を有する。他の種類の装置も、ユーザとのインタラクションを提供することができ、たとえば、ユーザに提供するフィードバックは、任意の形式の感覚フィードバック(たとえば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック)であってもよく、そして、ユーザからの入力は、任意の形式(音響入力、音声入力、又は触覚入力を含む)で受信できる。
【0076】
ここで説明するシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(たとえば、データサーバとして)、又はミドルウェアコンポーネントを含むコンピューティングシステム(たとえば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(たとえば、グラフィカルユーザインターフェース又はWEBブラウザーを備えたユーザコンピュータが挙げられ、ユーザはこのグラフィカルユーザインターフェース又はこのWEBブラウザーを介してここで説明するシステム及び技術の実施形態とインタラクションすることができる)、又はこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、又はフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実施できる。システムのコンポーネントは、任意の形式又は媒体のデジタルデータ通信(たとえば、通信ネットワーク)を介して相互に接続できる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及びインターネットが含まれる。
【0077】
コンピュータシステムには、クライアントとサーバを含むことができる。クライアントとサーバは通常、互いに遠く離れており、通信ネットワークを介して互いにインタラクションするのが一般的である。クライアントとサーバの関係は、対応するコンピュータで実行され、互いにクライアント-サーバの関係を持つコンピュータプログラムによって生成される。
【0078】
本出願の実施例の技術案によれば、まず、準同型暗号化アルゴリズムを使用して共通集合要求側のプライバシー集合を暗号化し、共通集合要求側暗号文、暗号文関数、公開鍵及び秘密鍵を生成し、次に、前記共通集合要求側暗号文、暗号文関数、公開鍵を共通集合提供側に提供し、その後、共通集合提供側は前記公開鍵、前記共通集合提供側のプライバシー集合及びランダムセキュリティ関数に基づいて共通集合提供側のプライバシー集合の復号すべき関数値を得て、前記ランダムセキュリティ関数は共通集合提供側のプライバシー集合中の非共通要素をランダム化処理することに用いられ、最後に、前記秘密鍵を使用して前記共通集合提供側のプライバシー集合の復号すべき関数値を復号し、前記共通集合要求側のプライバシー集合と共通集合提供側のプライバシー集合との共通要素を得て、それによって準正直モデルを実現するとともに、暗号化アルゴリズムの部分準同型特性を利用し、双方のプライバシー集合情報を漏洩から保護するうえに、共通集合要求側がオフラインで共通部分の結果を求めることを確保することができる。
【0079】
なお、上記の様々な形式のプロセスを用いて、ステップを改めて並べ替えたり、追加したり、削除したりすることができる。たとえば、本出願に記載の各ステップは、本出願に開示される技術案の所望の結果が達成できる限り、並行して実施しても、順次実施しても、異なる順序で実施してもよく、本明細書では、それについて限定しない。
【0080】
上記特定実施形態は、本出願の特許範囲に対する制限を構成するものではない。当業者にとって明らかなように、設計要件及び他の要因に応じて、様々な修正、組み合わせ、副次的な組み合わせ、及び置換を行うことができる。本出願の精神及び原則の範囲内で行われた修正、同等の置換、及び改良などであれば、本出願の特許範囲に含まれるものとする。
【外国語明細書】
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8