IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7559926類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム
<>
  • 特許-類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム 図1
  • 特許-類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム 図2
  • 特許-類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム 図3
  • 特許-類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム 図4
  • 特許-類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム 図5
  • 特許-類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20240925BHJP
【FI】
G09C1/00 650Z
【請求項の数】 10
(21)【出願番号】P 2023508194
(86)(22)【出願日】2021-03-23
(86)【国際出願番号】 JP2021011834
(87)【国際公開番号】W WO2022201277
(87)【国際公開日】2022-09-29
【審査請求日】2023-09-21
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100080816
【弁理士】
【氏名又は名称】加藤 朝道
(74)【代理人】
【識別番号】100098648
【弁理士】
【氏名又は名称】内田 潔人
(72)【発明者】
【氏名】田宮 寛人
(72)【発明者】
【氏名】一色 寿幸
(72)【発明者】
【氏名】森 健吾
(72)【発明者】
【氏名】中川 紗菜美
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2014-126866(JP,A)
【文献】安田 雅哉 ほか,イデアル格子準同型暗号を用いた秘匿内積計算,2013年 暗号と情報セキュリティシンポジウム概要集,日本,電子情報通信学会,2013年01月22日,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算システムであって、
前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している類似度計算装置と、
前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを前記類似度計算装置へ入力する第2入力端末と、を備え、
前記類似度計算装置は、前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る類似度計算システム。
【請求項2】
前記第1暗号化ベクトルおよび前記第2暗号化ベクトルは、成分ごとに暗号化されており、
前記類似度計算装置は、前記第1暗号化ベクトルおよび前記第2暗号化ベクトルの各成分を前記準同型演算における乗算を行い、前記乗算後の各成分を前記準同型演算における加算を行う、
請求項1に記載の類似度計算システム。
【請求項3】
前記第1ベクトルおよび前記第2ベクトルは、多項式の係数であり、
前記準同型演算における乗算は、前記多項式の乗算であり、
前記内積は、前記多項式の乗算を利用して得られる定数項である、
請求項1に記載の類似度計算システム。
【請求項4】
前記第1ベクトルと前記第2ベクトルとから得られるベクトルに対する前記準同型演算における乗算から得られる多項式のうち、前記内積を表す定数項以外の項を乱数でマスクする、請求項3に記載の類似度計算システム。
【請求項5】
第1暗号化ベクトルは、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化したものを、前記第1ベクトルの各成分について直列に結合したものであり、
第2暗号化ベクトルは、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化したものを、前記第2ベクトルの各成分について直列に結合したものである、
請求項1から請求項4のいずれか1つに記載の類似度計算システム。
【請求項6】
前記第1ベクトルを入力として、前記第1ベクトルから前記第1暗号化ベクトルを計算し、前記第1暗号化ベクトルを前記類似度計算装置に入力する第1入力端末をさらに備える、
請求項1から請求項5のいずれか1つに記載の類似度計算システム。
【請求項7】
前記暗号化された前記第1ベクトルと前記第2ベクトルとの間の類似度を、前記準同型暗号の秘密鍵で復号する復号装置をさらに備える、
請求項1から請求項6のいずれか1つに記載の類似度計算システム。
【請求項8】
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算装置であって、
前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している記憶部と、
前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信する受信部と、
前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る演算部と、
を備える類似度計算装置。
【請求項9】
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度をコンピュータが計算する類似度計算方法であって、
前記コンピュータが前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照し、
前記コンピュータが前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信し、
前記コンピュータが前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る、類似度計算方法。
【請求項10】
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度をコンピュータに計算させる類似度計算プログラムであって、
前記コンピュータが前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照し、
前記コンピュータが前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信し、
前記コンピュータが前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る、類似度計算プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラムに関するものである。
【背景技術】
【0002】
暗号技術の一つに準同型暗号というものがある。準同型暗号とは、平文m1,m2の暗号文Enc(m1), Enc(m2)が与えられたときに、平文m1, m2の二項演算m1○m2の暗号文Enc(m1○m2)を平文m1, m2に復号することなく計算できるものをいう。ここで「○」は二項演算であり、例えば加法「+」や乗法「×」である。加法「+」に関する準同型暗号は、加法準同型暗号と呼ばれている。また、乗法「×」に関しても準同型である準同型暗号は、完全準同型暗号と呼ばれている。
【0003】
完全準同型暗号は、加法および乗法に関しても準同型であるので最も性質がよい。しかしながら、完全準同型暗号は、計算量が多く実用に難点がある。そこで、加法準同型暗号と完全準同型暗号の中間的性質の準同型暗号も開発されている。例えば、Somewhat準同型暗号と呼ばれる暗号方式は、有限回の加算と乗算に関する準同型性を有する準同型暗号である(例えば非特許文献1参照)。また、例えば、レベル2準同型暗号と呼ばれる暗号方式は、1回の準同型乗算と複数回の準同型加算が可能な準同型暗号である(例えば非特許文献2参照)。これらSomewhat準同型暗号やレベル2準同型暗号などでは、許容し得る演算が限定されている一方で、完全準同型暗号よりは計算量が少なくて済む。したがって、用途に合わせて適切な準同型暗号を選択して実装することで計算量を抑えることができる。
【0004】
このような準同型暗号を利用した暗号プロトコルの一つとして類似度計算がある。ここでは類似度計算の応用例として映画のレコメンデーションサービスを用いて、類似度計算を説明する。映画のレコメンデーションサービスでは、あるユーザYがある映画M*について好みに合うかを判断する際に、映画M*の他の映画に対する評価が近い他のユーザを見つける演算を行う。具体的には、ユーザYと他のユーザUiの映画M1,映画M2,…,映画Mnに対する評価値の類似度を計算し、この類似度が近い場合に映画M*についても好みが合うだろうと判断する。この類似度の例としては、ユークリッド距離やコサイン類似度を用いることができるが、重要な要請として、各ユーザの評価値を秘匿化したままで類似度の計算をすることである。このように対象を秘匿化したままで演算を行う場合に、準同型暗号は利用されている(例えば特許文献1および特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2017/061024号
【文献】特開2016-111594号公報
【非特許文献】
【0006】
【文献】Yasuda M., Shimoyama T., Kogure J., Yokoyama K., Koshiba T. (2013) Packed Homomorphic Encryption Based on Ideal Lattices and Its Application to Biometrics. In: Cuzzocrea A., Kittl C., Simos D.E., Weippl E., Xu L. (eds) Security Engineering and Intelligence Informatics. CD-ARES 2013. Lecture Notes in Computer Science, vol 8128. Springer, Berlin, Heidelberg.
【文献】Boneh D., Goh EJ., Nissim K. (2005) Evaluating 2-DNF Formulas on Ciphertexts. In: Kilian J. (eds) Theory of Cryptography. TCC 2005. Lecture Notes in Computer Science, vol 3378. Springer, Berlin, Heidelberg.
【発明の概要】
【発明が解決しようとする課題】
【0007】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【0008】
ところで、類似度の設計に重み付けを行うことがある。例えば、映画M1の評価値の類似度の方が映画M2の評価値の類似度よりも重要であれば、各映画の評価値の類似度に重みを付与した類似度を用いて評価をする。いわゆる「重み付きユークリッド距離」は、重みを付与した類似度の例である。このような場合、加法準同型暗号を用いて、各ユーザの評価値を秘匿化したままで類似度の計算をすることができる。加法準同型暗号では、平文のスカラー倍についても、暗号文を復号することなく計算できるからである。
【0009】
一方、より精緻に重み付けを行った場合、加法準同型暗号を用いた計算では困難が生じる。例えば、同じ映画の評価値であっても、好みである側で近い場合と好みではない場合で近い場合で異なる重み付けをしたい場合もある。具体的には、例えば評価値を好みの強い順に0から5までとする場合、評価値が0と1の差も評価値が4と5の差も同じ1であるが、好みである側で評価値が近い4と5の差の方をより強く類似度に反映させることが例として挙げられる。
【0010】
そこで、加法準同型暗号ではなく、完全準同型暗号などのより性質のよい暗号方式を利用することが考えられる。しかしながら、上述したように完全準同型暗号は計算量が多くなってしまう。したがって、非線形の重み付き類似度の計算を可能としながらも、用いる演算を少なくしたいという要望がある。
【0011】
本発明の目的は、上述した課題を鑑み、非線形の重み付き類似度を暗号文のまま計算することに寄与する類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラムを提供することにある。
【課題を解決するための手段】
【0012】
本発明の第1の視点では、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算システムであって、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している類似度計算装置と、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを前記類似度計算装置へ入力する第2入力端末と、を備え、前記類似度計算装置は、前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る類似度計算システムが提供される。
【0013】
本発明の第2の視点では、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算装置であって、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している記憶部と、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信する受信部と、前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る演算部と、を備える類似度計算装置が提供される。
【0014】
本発明の第3の視点では、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算方法であって、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照し、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信し、前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る、類似度計算方法が提供される。
【0015】
本発明の第4の視点では、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度をコンピュータに計算させる類似度計算方法であって、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照し、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信し、前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る、類似度計算プログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0016】
本発明の各視点によれば、非線形の重み付き類似度を暗号文のまま計算することに寄与する類似度計算システム、類似度計算装置、類似度計算方法および類似度計算プログラムを提供することができる。
【図面の簡単な説明】
【0017】
図1図1は、第1の実施形態における類似度計算システムの概略構成例を示すブロック図である。
図2図2は、第1の実施形態における類似度計算装置の概略構成例を示すブロック図である。
図3図3は、第1の実施形態における類似度計算システムのシステムフローチャートである。
図4図4は、第2の実施形態における類似度計算システムの概略構成例を示すブロック図である。
図5図5は、第3の実施形態における類似度計算システムの概略構成例を示すブロック図である。
図6図6は、類似度計算装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
【0019】
[第1の実施形態]
以下、図1図2を参照して、第1の実施形態に係る類似度計算システムについて説明する。第1の実施形態は、本発明の基本的なコンセプトのみを説明する実施形態である。
【0020】
図1は、第1の実施形態における類似度計算システムの概略構成例を示すブロック図である。図1に示すように、第1の実施形態に係る類似度計算システム100は、類似度計算装置110と入力端末120とを備えている。類似度計算装置110は、後にハードウェア構成を例示する情報処理装置(コンピュータ)である。一方、入力端末120は、独立した情報処理装置(コンピュータ)とすることも、類似度計算装置110に付属した機器とすることも可能である。類似度計算装置110と入力端末120の関係は、有線通信によって接続されていてもよく、また、無線通信によって接続されていてもよい。例えば、入力端末120は、汎用的パーソナルコンピュータとすることもでき、スマートフォンなどのモバイル端末とすることもできる。
【0021】
図1に示す第1の実施形態に係る類似度計算システム100は、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算するためのものである。第1ベクトル(x1,x2,..,xi_num)は、それぞれの成分の値xi(i=1,...,i_num)が1からSまでの値をとり(つまりxi∈{1,2,...,S})、第2ベクトル(y1,y2,..,yi_num)もそれぞれの成分の値yi(i=1,...,i_num)が0からSまでの値をとる(つまりyi∈{1,2,...,S})。ここで、第1ベクトル(x1,x2,..,xi_num)と第2ベクトル(y1,y2,..,yi_num)の類似度には、非線形の重み付けを許容する。また、ここで非線形の重み付けとは、第1ベクトル(x1,x2,..,xi_num)および第2ベクトル(y1,y2,..,yi_num)の各成分に異なる定数の重みを付与するのではなく、各成分の値xi,yiに従って重みの値が変動するものをいう。
【0022】
第1の実施形態で用いる準同型暗号は、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義されるものを用いることができる。すなわち、第1の実施形態で用いる準同型暗号には、以下の関係式を満たす準同型加算および準同型乗算が定義されている。
・準同型加算
HomAddpk(Encpk(m1), Encpk (m2))=Encpk(m1+m2)
・準同型乗算
HomMulpk(Encpk(m1), Encpk(m2))=Encpk(m1×m2)
【0023】
図2は、第1の実施形態における類似度計算装置の概略構成例を示すブロック図である。図2に示すように、類似度計算装置110は、記憶部111と受信部112と演算部113とを備えている。記憶部111は、第1ベクトルと第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している。受信部112は、第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信する。演算部113は、第1暗号化ベクトルと第2暗号化ベクトルとの内積を準同型演算を用いて計算することで、第1ベクトルと第2ベクトルとの間の類似度を暗号化したものを得る。
【0024】
次に、重み付き類似度テーブルを用いて第1ベクトルと第2ベクトルとの間の類似度を計算する方法について説明する。以下では第1ベクトル(x1,x2,..,xi_num)および第2ベクトル(y1,y2,..,yi_num)の成分をi番目の成分に固定して考え、同じ計算方法を各成分に適用するものとする。
【0025】
重み付き類似度テーブルTiとは、第1ベクトルと第2ベクトルとの間のi成分の類似度を示すテーブルである。第1ベクトルのi成分の値xiは1からSまでの値をとり、第2ベクトルのi成分の値yiは1からSまでの値をとるので、重み付き類似度テーブルTiは、S×Sテーブル(行列)になる。下記テーブルはS=5の場合の重み付き類似度テーブルTiの例である。下記テーブルには、第1ベクトルのi成分の値xiと第2ベクトルのi成分の値yiとの類似度が、より類似するほど低い値となるようなスコアが格納されている。
【0026】
【表1】
【0027】
そして、上記のような重み付き類似度テーブルTiから第1ベクトルのi成分の値xiに対応する行を抽出する。例えば、xi=2の場合、以下のような1×5テーブルが得られる。
【0028】
【表2】
【0029】
この1×5テーブルは、(1, 0, 1, 30, 50)というベクトルであると考えられることができるので、このベクトル(1, 0, 1, 30, 50)を準同型暗号の公開鍵で暗号化することで、第1暗号化ベクトルを得ることができる。
【0030】
一方、第2暗号化ベクトルは、第2ベクトルのi成分の値yiを単位ベクトルにおける1となる成分に変換したものを準同型暗号の公開鍵で暗号化して作成する。つまり、値yiの成分のみ1となる単位ベクトル(0,...,0, 1, 0,...,)を準同型暗号の公開鍵で暗号化したものが第2暗号化ベクトルである。例えば、yi=5の場合、単位ベクトル(0, 0, 0, 0, 1)を暗号化したものが第2暗号化ベクトルになる。
【0031】
このように第1暗号化ベクトルと第2暗号化ベクトルを構成すると、第1暗号化ベクトルと第2暗号化ベクトルとの内積を準同型演算を用いて計算することで、第1ベクトルと第2ベクトルとの間の類似度を暗号化したものを得ることができる。
【0032】
例えば、第1暗号化ベクトルが(1, 0, 1, 30, 50)であり、第2暗号化ベクトルが(0, 0, 0, 0, 1)である場合、内積は50となる。これは、重み付き類似度テーブルTiからxi=2, yi=5の成分を抽出したことと同じである。重み付き類似度テーブルTiは、第1ベクトルと第2ベクトルとの間のi成分の類似度を示すテーブルであるので、これで第1ベクトルと第2ベクトルとの間の類似度を得ることができる。なお、この内積の計算は暗号化されたまま計算されるので、得られる類似度も暗号化された状態の類似度である。暗号化された状態で得られた類似度は、復号して次の処理へ受け渡すこともできるが、復号せずに次の処理へ受け渡すこともできる。これらは得られた類似度の応用の問題となる。
【0033】
【表3】
【0034】
ここで、第1ベクトル(x1,x2,..,xi_num)および第2ベクトル(y1,y2,..,yi_num)の成分をi番目の成分に固定して考えた部分の補足説明を行う。ここでは簡単のため、i成分とi+1成分の関係をxi=2, xi+1=3, yi=5, yi+1=4の例を用いて説明を行う。
【0035】
【表4】
【0036】
上記表から読み取れるように、第1ベクトルと第2ベクトルのi成分とi+1成分がxi=2, xi+1=3, yi=5, yi+1=4の場合、i成分とi+1成分に限った類似度は50+11=61となる。この値を得るための第1暗号化ベクトルと第2暗号化ベクトルは、それぞれの成分で計算した後に直列に結合すればよい。具体的には、以下のように得ることができる。
【0037】
【表5】
【0038】
このように得られた第1暗号化ベクトル(1, 0, 1, 30, 50, 40, 11, 0, 11, 40)と第2暗号化ベクトル(0, 0, 0, 0, 1, 0, 0, 0, 1, 0)の内積を計算すると61を得る。そして、このような処理が第1ベクトル(x1,x2,..,xi_num)および第2ベクトル(y1,y2,..,yi_num)の各成分について行えることは明らかである。
【0039】
次に、図3を参照しながら、類似度計算装置110と入力端末120との間における処理について説明する。図3は、第1の実施形態における類似度計算システムのシステムフローチャートである。図3に示すシステムフローチャートは、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算方法の手順を示している。
【0040】
ステップS1では、類似度計算装置110が、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照する。ここで、第1暗号化ベクトルは、類似度計算装置110内部の記憶部111に記憶しておくとしてもよいが、類似度計算装置110外部のデータベースサーバに記憶しておくとしてもよい。また、第1暗号化ベクトルの取得は、入力端末120ないし別の入力端末から入力されたものとすることができる。
【0041】
ステップS2では、入力端末120が、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを類似度計算装置110に送信する。
【0042】
その後、ステップS3では、類似度計算装置110は、第1暗号化ベクトルと第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る。
【0043】
以上のように、第1の実施形態における類似度計算システムは、非線形の重み付き類似度を暗号文のまま計算することに寄与することができる。また、第1の実施形態における類似度計算システムは、類似度計算方法として実施することができ、第1の実施形態における類似度計算方法は、後述のハードウェア構成の情報処理装置(コンピュータ)で実行するプログラムとしても実施可能である。
【0044】
[第2の実施形態]
以下、図4を参照して、第2の実施形態に係る類似度計算システムについて説明する。第2の実施形態は、具体的な準同型暗号の適用の仕方を含めた実施形態である。ここでは、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される、いわゆるレベル2準同型暗号を用いて第2の実施形態を説明する。ただし、第2の実施形態がレベル2準同型暗号に限定されるものではなく、Somewhat準同型暗号や完全準同型暗号など、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いることができる。
【0045】
図4に示すように、第2の実施形態に係る類似度計算システム200は、類似度計算装置210と第1入力端末221と第2入力端末222と復号装置230を備えている。類似度計算装置210および復号装置230は、後にハードウェア構成を例示する情報処理装置(コンピュータ)である。一方、第1入力端末221および第2入力端末222は、独立した情報処理装置(コンピュータ)とすることも、類似度計算装置210に付属した機器とすることも可能である。類似度計算装置210と第1入力端末221および第2入力端末222の関係は、有線通信によって接続されていてもよく、また、無線通信によって接続されていてもよい。例えば、入力端末220は、汎用的パーソナルコンピュータとすることもでき、スマートフォンなどのモバイル端末とすることもできる。
【0046】
第2の実施形態でも、第1ベクトル(x1,x2,..,xi_num)は、それぞれの成分の値xi(i=1,...,i_num)が1からSまでの値をとり(つまりxi∈{1,2,...,S})、第2ベクトル(y1,y2,..,yi_num)もそれぞれの成分の値yi(i=1,...,i_num)が0からSまでの値をとる(つまりyi∈{1,2,...,S})ものとする。第1ベクトル(x1,x2,..,xi_num)と第2ベクトル(y1,y2,..,yi_num)の類似度には、非線形の重み付けを許容し、第1ベクトルと第2ベクトルとの間のi成分の類似度を示す重み付き類似度テーブルTiによって表されている。なお、重み付き類似度テーブルTiのj行k列の値はTi,j,kと表記する。
【0047】
第2の実施形態で用いる準同型暗号は、少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される例えば非特許文献2に記載の準同型暗号を用いることができる。すなわち、第2の実施形態で用いる準同型暗号には、以下の関係式を満たす準同型加算および準同型乗算が定義されている。なお、第2の実施形態で用いる準同型暗号は、平文をベクトルではなくスカラーとすることができる。
・準同型加算
HomAddpk(Encpk(m1), Encpk (m2))=Encpk(m1+m2)
・準同型乗算
HomMulpk(Encpk(m1), Encpk(m2))=Encpk(m1×m2)
【0048】
準同型暗号の準備として、平文空間サイズs>s_scoreとなる公開鍵pkと秘密鍵skを用意する。なお、スコア空間サイズs_scoreは変数が動き得る大きさを示す量である。公開鍵pkは、スカラーの平文から準同型演算を行うことができる暗号を生成すること、および、公開鍵pkを用いて暗号化された準同型暗号に準同型演算を行うことに用いられる。一方、秘密鍵skは、公開鍵pkを用いて暗号化された準同型暗号を復号するために用いられる。したがって、公開鍵pkは、類似度計算装置210と第1入力端末221と第2入力端末222が持ち、秘密鍵skは、復号装置230が持つ。
【0049】
第1入力端末221は、公開鍵pkと第1ベクトル(x1,x2,..,xi_num)を入力として、第1ベクトル(x1,x2,..,xi_num)から第1暗号化ベクトルを計算する。ここで、第1暗号化ベクトルは、重み付き類似度テーブルTiのうち、第1ベクトルのj成分の値xjに対応する行を抽出したものを準同型暗号の公開鍵で暗号化したものであるが、第2の実施形態で用いる準同型暗号は平文がスカラーであるので、抽出した行の要素ごとに暗号化をする。具体的には、以下のような第1暗号化ベクトルc1が得られる。得られた第1暗号化ベクトルc1は類似度計算装置210に送信される。
【0050】
【数1】
【0051】
第2入力端末222は、公開鍵pkと第2ベクトル(y1,y2,..,yi_num)を入力として、第2暗号化ベクトルを計算する。ここで、第2暗号化ベクトルは、第2ベクトル(y1,y2,..,yi_num)のj成分の値yjを単位ベクトルにおける1となる成分に変換したものを準同型暗号の公開鍵pkで暗号化したものである。したがって、第2暗号化ベクトルc2は、以下のようなものになる。得られた第2暗号化ベクトルc2は類似度計算装置210に送信される。
【0052】
【数2】
【0053】
類似度計算装置210は、第1暗号化ベクトルと第2暗号化ベクトルとの内積を準同型演算を用いて計算する。しかしながら、上記第1暗号化ベクトルおよび第2暗号化ベクトルは、成分ごとに暗号化されているので、類似度計算装置210は、第1暗号化ベクトルおよび第2暗号化ベクトルの各成分を準同型演算における乗算を行い、この乗算後の各成分を準同型演算における加算を行う。具体的には、類似度計算装置210は、最初の下記のようなcmulを計算し、cmulの各成分を準同型加算HomAddpkを用いて足し合わせた暗号文cを得る。得られた暗号文cは復号装置230に送信される。
【0054】
【数3】
【0055】
復号装置230は、上記のように準同型演算で計算された暗号文cを秘密鍵skを用いて復号する。暗号文cから復号された値mは、第1ベクトルと第2ベクトルとの間の類似度となっている。
【0056】
以上のように、第2の実施形態における類似度計算システムは、非線形の重み付き類似度を暗号文のまま計算することに寄与することができる。また、第2の実施形態における類似度計算システムは、後述の第3の実施形態における類似度計算システムとの比較では、マスク処理をしないという点で優位である。
【0057】
[第3の実施形態]
以下、図5を参照して、第3の実施形態に係る類似度計算システムについて説明する。第3の実施形態は、具体的な準同型暗号の適用の仕方を含めた実施形態である。ここでは、有限回の加算と乗算に関する準同型性を有する準同型暗号が定義される、いわゆるSomewhat準同型暗号を用いて第3の実施形態を説明する。ただし、第3の実施形態がSomewhat準同型暗号に限定されるものではなく、完全準同型暗号など、有限回の加算と乗算に関する準同型性を有する準同型暗号が定義される準同型暗号を用いることができる。
【0058】
図5に示すように、第3の実施形態に係る類似度計算システム300は、類似度計算装置310と第1入力端末321と第2入力端末322と復号装置330を備えている。類似度計算装置310および復号装置330は、後にハードウェア構成を例示する情報処理装置(コンピュータ)である。一方、第1入力端末321および第2入力端末322は、独立した情報処理装置(コンピュータ)とすることも、類似度計算装置310に付属した機器とすることも可能である。類似度計算装置310と第1入力端末321および第2入力端末322の関係は、有線通信によって接続されていてもよく、また、無線通信によって接続されていてもよい。例えば、入力端末320は、汎用的パーソナルコンピュータとすることもでき、スマートフォンなどのモバイル端末とすることもできる。
【0059】
第3の実施形態でも、第1ベクトル(x1,x2,..,xi_num)は、それぞれの成分の値xi(i=1,...,i_num)が1からSまでの値をとり(つまりxi∈{1,2,...,S})、第2ベクトル(y1,y2,..,yi_num)もそれぞれの成分の値yi(i=1,...,i_num)が0からSまでの値をとる(つまりyi∈{1,2,...,S})ものとする。第1ベクトル(x1,x2,..,xi_num)と第2ベクトル(y1,y2,..,yi_num)の類似度には、非線形の重み付けを許容し、第1ベクトルと第2ベクトルとの間のi成分の類似度を示す重み付き類似度テーブルTiによって表されている。なお、重み付き類似度テーブルTiのj行目はTi,jと表記する。
【0060】
第3の実施形態で用いる準同型暗号は、有限回の加算と乗算に関する準同型性を有する準同型暗号が定義される例えば非特許文献1に記載の準同型暗号を用いることができる。すなわち、第3の実施形態で用いる準同型暗号には、以下の関係式を満たす準同型加算および準同型乗算が定義されている。なお、第2の実施形態で用いる準同型暗号は、平文をベクトルとみなした多項式とする。つまり、第1ベクトル(x1,x2,..,xi_num)は、m1=x1+x2t1+…+xi_numti_num-1とみなし、第2ベクトル(y1,y2,..,yi_num)は、m2=y1+y2t1+…+yi_numti_num-1とみなす。第1ベクトル(x1,x2,..,xi_num)と第2ベクトル(y1,y2,..,yi_num)の平文としての掛け算は、多項式m1=x1+x2t1+…+xi_numti_num-1と多項式m2=y1+y2t1+…+yi_numti_num-1である。
・準同型加算
HomAddpk(Encpk(m1), Encpk (m2))=Encpk(m1+m2)
・準同型乗算
HomMulpk(Encpk(m1), Encpk(m2))=Encpk(m1×m2)
【0061】
第3の実施形態で用いる準同型暗号は、多項式の性質と上記準同型乗算を用いて準同型内積演算を以下のように定義することができる。なお、下記式中のEnc2pk(m2)は準同型内積演算用の暗号化である。また、mi *は平文空間内にある値である。
【0062】
【数4】
【0063】
準同型暗号の準備として、係数空間サイズs>s_scoreのn-1次多項式(n≧i_num×S)を平文として扱うことができるSomewhat準同型暗号の公開鍵pkと秘密鍵skを用意する。なお、スコア空間サイズs_scoreは変数が動き得る大きさを示す量である。公開鍵pkは、スカラーの平文から準同型演算を行うことができる暗号を生成すること、および、公開鍵pkを用いて暗号化された準同型暗号に準同型演算を行うことに用いられる。一方、秘密鍵skは、公開鍵pkを用いて暗号化された準同型暗号を復号するために用いられる。したがって、公開鍵pkは、類似度計算装置310と第1入力端末321と第2入力端末322が持ち、秘密鍵skは、復号装置330が持つ。
【0064】
第1入力端末321は、公開鍵pkと第1ベクトル(x1,x2,..,xi_num)を入力として、第1ベクトル(x1,x2,..,xi_num)から第1暗号化ベクトルを計算する。ここで、第1暗号化ベクトルは、重み付き類似度テーブルTiのうち、第1ベクトルのj成分の値xjに対応する行を抽出したものを準同型暗号の公開鍵で暗号化したものであるので、第1入力端末321は、まず重み付き類似度テーブルTiのうち、第1ベクトルのj成分の値xjに対応する行を抽出した平文のベクトルを計算する。この結果得られる平文のベクトルは以下のようなm1である。その後、第1入力端末321は、このベクトルm1を暗号化し、第1暗号化ベクトルc1=Encpk(m1)を得る。得られた第1暗号化ベクトルc1は類似度計算装置310に送信される。
【0065】
【数5】
【0066】
第2入力端末322は、公開鍵pkと第2ベクトル(y1,y2,..,yi_num)を入力として、第2暗号化ベクトルを計算する。ここで、第2暗号化ベクトルは、第2ベクトル(y1,y2,..,yi_num)のj成分の値yjを単位ベクトルにおける1となる成分に変換したものを準同型暗号の公開鍵pkで暗号化したものであるので、第2入力端末322は、まず第2ベクトル(y1,y2,..,yi_num)のj成分の値yjを単位ベクトルにおける1となる成分に変換した平文のベクトルを計算する。この結果得られる平文のベクトルは以下のようなm2である。その後、第2入力端末322は、このベクトルm2を暗号化し、第2暗号化ベクトルc2=Enc2pk(m2)を得る。得られた第1暗号化ベクトルc1は類似度計算装置310に送信される。
【0067】
【数6】
【0068】
なお、上記例では、第1暗号化ベクトルをc1=Encpk(m1)とし、第2暗号化ベクトルをc2=Enc2pk(m2)としているが、第1暗号化ベクトルをc1=Enc2pk(m1)とし、第2暗号化ベクトルをc2=Encpk(m2)としても、内積演算の結果は変わらない。
【0069】
類似度計算装置310は、第1暗号化ベクトルと第2暗号化ベクトルとの内積を準同型演算を用いて計算する。しかしながら、多項式の積を利用した準同型内積演算は、得られる多項式の定数項が内積であるが、定数項ではない項から情報が漏洩する可能性がある。したがって、内積を表す定数項以外の項を乱数でマスクする。
【0070】
具体的には、まず類似度計算装置310は、第1暗号化ベクトルc1と第2暗号化ベクトルc2との準同型乗算を行い多項式の暗号文cip=HomMulpk(c1, c2)を計算する。一方、定数項以外をマスクするために、類似度計算装置310は、平文空間上の一様乱数を定数項以外に配置した乱数ベクトルr=(0, r2, r3,...,rn)を生成し、マスク用暗号文cr=Encpk(r)を作成する。そして、上記多項式の暗号文cipとマスク用暗号文crを準同型加算することで、暗号文c=HomAddpk(cip, cr)を得る。得られた暗号文cは復号装置330に送信される。
【0071】
復号装置330は、上記のように準同型演算で計算された暗号文cを秘密鍵skを用いて復号する。ただし、暗号文cから復号された値mは多項式であり、この多項式の定数項が第1ベクトルと第2ベクトルとの間の類似度となっている。このとき、多項式の定数項以外の項も同時に復号されてしまうが、上記のように乱数ベクトルr=(0, r2, r3,...,rn)を用いてマスクがされているので、多項式の定数項以外の項から情報が漏洩することはない。
【0072】
以上のように、第3の実施形態における類似度計算システムは、非線形の重み付き類似度を暗号文のまま計算することに寄与することができる。また、第3の実施形態における類似度計算システムは、多項式の乗算を利用した内積演算を用いていることにより、演算回数が少なく抑えられる。
【0073】
[ハードウェア構成例]
図6は、類似度計算装置のハードウェア構成例を示す図である。すなわち、図6に示すハードウェア構成例は、類似度計算装置110,210,310のハードウェア構成例である。
【0074】
図6に示すハードウェア構成を採用した情報処理装置(コンピュータ)は、上記説明した類似度計算装置方法をプログラムとして実行することで、類似度計算装置110,210,310の各機能を実現することを可能にする。ただし、図6に示すハードウェア構成例は、類似度計算装置110,210,310の各機能を実現するハードウェア構成の一例であり、類似度計算装置110,210,310のハードウェア構成を限定する趣旨ではない。類似度計算装置110,210,310は、図6に示さないハードウェアを含むことができる。
【0075】
図6に示すように、類似度計算装置110,210,310が採用し得るハードウェア構成10は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)11、主記憶装置12、補助記憶装置13、およびIF(Interface)部14を備える。
【0076】
CPU11は、類似度計算装置110,210,310が実行する類似度計算プログラムに含まれる各指令を実行する。主記憶装置12は、例えばRAM(Random Access Memory)であり、類似度計算装置110,210,310が実行する類似度計算プログラムなどの各種プログラムなどをCPU11が処理するために一時記憶する。
【0077】
補助記憶装置13は、例えば、HDD(Hard Disk Drive)であり、類似度計算装置110,210,310が実行する類似度計算プログラムなどの各種プログラムなどを中長期的に記憶しておくことが可能である。類似度計算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置13は、非一時的なコンピュータ可読記録媒体に記録された類似度計算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。IF部14は、類似度計算装置110,210,310と入力端末との間の入出力に関するインターフェイスを提供する。
【0078】
上記のようなハードウェア構成10を採用した情報処理装置は、先述した類似度計算方法をプログラムとして実行することで、類似度計算装置110,210,310の各機能を実現する。
【0079】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。類似度は例えば距離であってもよい。
[付記1]
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算システムであって、
前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している類似度計算装置と、
前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを前記類似度計算装置へ入力する第2入力端末と、を備え、
前記類似度計算装置は、前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る類似度計算システム。
[付記2]
前記第1暗号化ベクトルおよび前記第2暗号化ベクトルは、成分ごとに暗号化されており、
前記類似度計算装置は、前記第1暗号化ベクトルおよび前記第2暗号化ベクトルの各成分を前記準同型演算における乗算を行い、前記乗算後の各成分を前記準同型演算における加算を行う、
付記1に記載の類似度計算システム。
[付記3]
前記第1ベクトルおよび前記第2ベクトルは、多項式の係数であり、
前記準同型演算における乗算は、前記多項式の乗算であり、
前記内積は、前記多項式の乗算を利用して得られる定数項である、
付記1に記載の類似度計算システム。
[付記4]
前記第1ベクトルと前記第2ベクトルとから得られるベクトルに対する前記準同型演算における乗算から得られる多項式のうち、前記内積を表す定数項以外の項を乱数でマスクする、付記3に記載の類似度計算システム。
[付記5]
第1暗号化ベクトルは、前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化したものを、前記第1ベクトルの各成分について直列に結合したものであり、
第2暗号化ベクトルは、前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化したものを、前記第2ベクトルの各成分について直列に結合したものである、
付記1から付記4のいずれか1つに記載の類似度計算システム。
[付記6]
前記第1ベクトルを入力として、前記第1ベクトルから前記第1暗号化ベクトルを計算し、前記第1暗号化ベクトルを前記類似度計算装置に入力する第1入力端末をさらに備える、
付記1から付記5のいずれか1つに記載の類似度計算システム。
[付記7]
前記暗号化された前記第1ベクトルと前記第2ベクトルとの間の類似度を、前記準同型暗号の秘密鍵で復号する復号装置をさらに備える、
付記1から付記6のいずれか1つに記載の類似度計算システム。
[付記8]
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算装置であって、
前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを記憶している記憶部と、
前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信する受信部と、
前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る演算部と、
を備える類似度計算装置。
[付記9]
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度を計算する類似度計算方法であって、
前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照し、
前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信し、
前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る、類似度計算方法。
[付記10]
少なくとも1回の乗算と複数回の加算に関して準同型演算が定義される準同型暗号を用いて第1ベクトルと第2ベクトルとの間の類似度をコンピュータに計算させる類似度計算プログラムであって、
前記第1ベクトルと前記第2ベクトルとの間の各成分の類似度の重み付き類似度テーブルのうち、前記第1ベクトルの成分の値に対応する行を抽出したものを前記準同型暗号の公開鍵で暗号化した第1暗号化ベクトルを参照し、
前記第2ベクトルの成分の値を単位ベクトルにおける1となる成分に変換したものを前記準同型暗号の公開鍵で暗号化した第2暗号化ベクトルを受信し、
前記第1暗号化ベクトルと前記第2暗号化ベクトルとの内積を前記準同型演算を用いて計算することで、前記第1ベクトルと前記第2ベクトルとの間の類似度を暗号化したものを得る、類似度計算プログラム。
【0080】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。さらに、上記引用した文献の各開示事項は、必要に応じ、本発明の趣旨に則り、本発明の開示の一部として、その一部又は全部を、本書の記載事項と組み合わせて用いることも、本願の開示事項に含まれるものと、みなされる。
【符号の説明】
【0081】
100,200,300 類似度計算システム
110,210,310 類似度計算装置
111 記憶部
112 受信部
113 演算部
120,221,222,321,322 入力端末
230,330 復号装置
10 ハードウェア構成
11 CPU(Central Processing Unit)
12 主記憶装置
13 補助記憶装置
14 IF(Interface)部
図1
図2
図3
図4
図5
図6