【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業に係る委託研究、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
多項式の演算が可能な準同型暗号方式を用いた暗号化システムであって、
平文に対応する暗号文の算出に用いる暗号化鍵と、前記暗号文に対応する復号文の算出に用いる復号鍵とを生成する鍵生成手段と、
下記の[数1]に基づき、m行k列で示される第1平文から第1要素、及びk行l列で示される第2平文から第2要素をそれぞれ導出する導出手段と、
下記の[数2]に示す暗号化アルゴリズムを用いて、前記第1要素から第1暗号文、及び前記第2要素から第2暗号文をそれぞれ算出する暗号文算出手段と、
前記第1暗号文と、前記第2暗号文との内積を演算し、下記の[数3]に示す第1内積値、第2内積値、第3内積値、及び第4内積値を取得する内積手段と、
下記の[数4]に示す復号アルゴリズムを用いて、前記第1内積値、前記第2内積値、前記第3内積値、及び前記第4内積値から前記復号文を算出する復号文算出手段と、
を備え、
前記復号文は、下記の[数5]に基づく前記第1平文と前記第2平文との行列乗算の結果を含むこと
を特徴とする暗号化システム。
【数1】
ここで、左辺M(ハット)は、前記第1要素又は前記第2要素を示し、M
β(r)は前記第1平文又は前記第2平文のβ行に対応するベクトルを示し、M
β(c)は前記第1平文又は前記第2平文のβ列に対応するベクトルを示し、値βは値m、値k、及び値lのうち最大の値と等しく、値xは変数を示し、変数ベクトルXは下記の[数6]で示される。
【数2】
ここで、Encは、前記暗号化鍵(pk)を用いる前記暗号化アルゴリズムを示し、
A(ハット)は、前記第1要素を示し、B(ハット)は、前記第2要素を示し、c
1及びc
2は、前記第1暗号文の暗号文要素を示し、d
1及びd
2は、前記第2暗号文の暗号文要素を示し、R
qは暗号文空間を示す。
【数3】
ここで、
ipは前記第1暗号文と、前記第2暗号文との内積演算の結果を示し、W
1は前記第1内積値を示し、W
21は前記第2内積値を示し、W
22は前記第3内積値を示し、ξは前記第4内積値を示し、qは素数を示し、Zqは暗号文空間の集合を示す。
【数4】
ここで、DecIP
*は前記復号鍵(S)を用いた前記復号アルゴリズムを示し、S
*=SS
Tは内積算出対応復号鍵を示し、nは正の整数を示し、w
k、u
k、及びv
kはそれぞれ係数を示す。
【数5】
ここで、m
ijは前記復号文に含まれる要素を示し、pは前記素数qよりも小さい素数を示し、Vecは下記の[数7]で示される係数ベクトルを示す。
【数6】
【数7】
ここで、R
pは平文空間を示す。
【背景技術】
【0002】
従来、統計計算や機械学習の分野において、最も基本的で有用な操作の1つとして、行列乗算が挙げられる。行列乗算は、例えばクラウドサーバ等の必ずしも安全ではない環境において、機密情報を含むデータの解析を行う必要がある場合に用いられる。特に、データの解析を委託する際、情報漏洩を防止するために、準同型暗号が注目を集めている。
【0003】
準同型暗号とは、データを暗号化した状態で計算できる技術である。例えば、加法と乗法とが計算できる公開鍵準同型暗号(Somewhat PHE)であれば、暗号化前の平文に対応する行列の各項目が暗号化されたセキュアな行列乗算の自明な構成ができる。準同型暗号方式を用いた技術として、例えば特許文献1、非特許文献1、及び非特許文献2等が開示されている。
【0004】
特許文献1では、c
1=e
1A+pe
2、c
2=e
1P+pe
3+mに従い、クライアントの公開鍵(A,P,n,s)で暗号化された、ベクトル形式を有する暗号データc=(c
1,c
2)を複数記憶保持し、クライアントから、複数の暗号データのうちの2つの暗号データc、c’に対応する2つの平文データについて内積を求めるべき情報がもたらされたときに該情報を受け付け、この情報に基づいて、n行n列の正方行列W
1=c
1’
Tc
1、n行l列の行列W
2=c
1’
Tc
2+c
1Tc
2’、およびスカラーξ=c
2c
2’
Tを算出し、正方行列W
1、行列W
2、およびスカラーξをクライアントに提供する旨の技術が開示されている。
【0005】
非特許文献1では、効率の良いセキュアな行列乗算が提案されている。非特許文献1では、既存のセキュアな内積演算のためのパッキング方法(非特許文献3)を拡張し、非特許文献4により提案されたBV-PHEというRing-LWEベース準同型暗号に基づく行列演算が開示されている。
【0006】
非特許文献2では、行列のトレースの性質を用いて、準同型内積演算の一般的構成法が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2017−97102号公報
【非特許文献】
【0008】
【非特許文献1】Dung, D. H., Mishra, P. K., Yasuda, M.: Efficient secure matrix multiplication over LWE-based homomorphic encryption. In: Tatra Mt. Math. Publ. vol. 67, pp. 69-83 (2016)
【非特許文献2】林 卓也,青野 良範,レ チュウ フォン,王 立華,“効率的な準同型内積演算の一般的構成”SCIS2017, Jan. 2017
【非特許文献3】Yasuda, M., Shimoyama,T., Kogure, J., Yokoyama, K., Koshiba, T.: Secure statistical analysis using RLWE-based homomorphic encryption. In: Foo, E., Stebila, D. (eds.) ACISP 2015. LNCS, vol. 9144, pp. 471-487. Springer, Cham (2015)
【非特許文献4】Brakerski, Z., Vaikuntanathan, V.: Fully homomorphic encryption from ring-LWE and security for key dependent messages. In: P. Rogaway (Ed.) CRYPTO 2011.LNCS, vol. 6841, pp. 505-524. Springer, Heidelberg (2011)
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した開示技術では、パッキング法を用いる回数が多い点や、暗号文の復号時における計算量が多い点等に起因する計算効率の悪さが課題として挙げられている。
【0010】
そこで本発明は、上述した問題点に鑑みて案出されたものであり、その目的とするところは、計算効率の向上を図ることができる暗号化システムを提供することにある。
【課題を解決するための手段】
【0011】
本発明者らは、上述した問題点を解決するために、多項式の演算が可能な準同型暗号方式を用い、鍵生成手段と、導出手段と、暗号文算出手段と、内積手段と、復号文算出手段とを備える暗号化システムを発明した。鍵生成手段は、平文に対応する暗号文の算出に用いる暗号化鍵と、暗号文に対応する復号文の算出に用いる復号鍵とを生成する。導出手段は、m行k列で示される第1平文から第1要素、及びk行l列で示される第2平文から第2要素をそれぞれ導出する。暗号文算出手段は、第1要素から第1暗号文、及び第2要素から第2暗号文をそれぞれ算出する。内積手段は、第1暗号文と、第2暗号文との内積を演算し、第1内積値、第2内積値、第3内積値、及び第4内積値を取得する。復号文算出手段は、第1内積値、第2内積値、第3内積値、及び第4内積値から復号文を算出する。復号文は、第1平文と第2平文との行列乗算の結果を含む。
【0012】
請求項1に記載の暗号化システムは、多項式の演算が可能な準同型暗号方式を用いた暗号化システムであって、平文に対応する暗号文の算出に用いる暗号化鍵と、前記暗号文に対応する復号文の算出に用いる復号鍵とを生成する鍵生成手段と、下記の[数1]に基づき、m行k列で示される第1平文から第1要素、及びk行l列で示される第2平文から第2要素をそれぞれ導出する導出手段と、下記の[数2]に示す暗号化アルゴリズムを用いて、前記第1要素から第1暗号文、及び前記第2要素から第2暗号文をそれぞれ算出する暗号文算出手段と、前記第1暗号文と、前記第2暗号文との内積を演算し、下記の[数3]に示す第1内積値、第2内積値、第3内積値、及び第4内積値を取得する内積手段と、下記の[数4]に示す復号アルゴリズムを用いて、前記第1内積値、前記第2内積値、前記第3内積値、及び前記第4内積値から前記復号文を算出する復号文算出手段と、を備え、前記復号文は、下記の[数5]に基づく前記第1平文と前記第2平文との行列乗算の結果を含むことを特徴とする。
【数1】
ここで、左辺M(ハット)は、前記第1要素又は前記第2要素を示し、M
β(r)は前記第1平文又は前記第2平文のβ行に対応するベクトルを示し、M
β(c)は前記第1平文又は前記第2平文のβ列に対応するベクトルを示し、値βは値m、値k、及び値lのうち最大の値と等しく、値xは変数を示し、変数ベクトルXは下記の[数6]で示される。
【数2】
ここで、Encは、前記暗号化鍵(pk)を用いる前記暗号化アルゴリズムを示し、
A(ハット)は、前記第1要素を示し、B(ハット)は、前記第2要素を示し、c
1及びc
2は、前記第1暗号文の暗号文要素を示し、d
1及びd
2は、前記第2暗号文の暗号文要素を示し、R
qは暗号文空間を示す。
【数3】
ここで、
ipは前記第1暗号文と、前記第2暗号文との内積演算の結果を示し、W
1は前記第1内積値を示し、W
21は前記第2内積値を示し、W
22は前記第3内積値を示し、ξは前記第4内積値を示し、qは素数を示し、Zqは暗号文空間の集合を示す。
【数4】
ここで、DecIP
*は前記復号鍵(S)を用いた前記復号アルゴリズムを示し、S
*=SS
Tは内積算出対応復号鍵を示し、nは正の整数を示し、w
k、u
k、及びv
kはそれぞれ係数を示す。
【数5】
ここで、m
ijは前記復号文に含まれる要素を示し、pは前記素数qよりも小さい素数を示し、Vecは下記の[数7]で示される係数ベクトルを示す。
【数6】
【数7】
ここで、R
pは平文空間を示す。
【0013】
請求項2に記載の暗号化システムは、請求項1記載の暗号化システムにおいて、前記値βは、下記の[数8]で示す条件を満たすことを特徴とする。
【数8】
【0014】
請求項3に記載の暗号化システムは、請求項1又は請求項2記載の暗号化システムにおいて、前記内積手段は、下記の[数9]及び[数10]に基づき、前記第1内積値、前記第2内積値、前記第3内積値、及び前記第4内積値を取得することを特徴とする。
【数9】
【数10】
ここで、W
2は前記第2内積値W
21及び前記第3内積値W
22を含む内積値示す。
【0015】
請求項4に記載の暗号化システムは、請求項3記載の暗号化システムにおいて、前記復号文算出手段は、下記の[数11]及び前記[数5]に基づき、前記復号文を算出することを特徴とする。
【数11】
【0016】
請求項5に記載の暗号化システムは、請求項1〜請求項4の何れか記載の暗号化システムにおいて、前記値kは、前記値m及び前記値lとは異なる値であることを特徴とする。
【発明の効果】
【0017】
上述した構成からなる本発明によれば、導出手段は、[数1]に基づき、第1平文から第1要素、及び第2平文から第2要素をそれぞれ導出する。このため、1つの平文に対して導出される要素を1つに抑制することができ、暗号文算出手段における算出回数を最小限に抑えることができる。これにより、計算効率の向上を図ることが可能となる。また、計算量及びデータ通信量を低減させることが可能となる。
【0018】
また、上述した構成からなる本発明によれば、内積手段は、[数3]に示す第1内積値〜第4内積値を取得し、復号文算出手段は、[数4]に示す復号アルゴリズムを用いて、復号文を算出する。このとき、復号文は、[数5]に基づく第1平文と第2平文との行列乗算の結果を含む。このため、1回の復号計算により第1平文と第2平文との行列乗算の結果を取得することができる。これにより、計算効率の向上を図ることが可能となる。
【0019】
また、上述した構成からなる本発明によれば、例えば値kは、値m及び値lとは異なる値である。このため、各平文が長方行列の場合においても、正方行列の場合と同様に処理を実行することができる。これにより、平文の自由度を大幅に拡大することが可能となる。
【発明を実施するための形態】
【0021】
(実施形態:暗号化システム100の構成)
以下、本発明の実施形態としての暗号化システム100について詳細に説明する。
図1は、本実施形態における暗号化システム100の一例を示す模式図である。
【0022】
暗号化システム100は、多項式の演算が可能な準同型暗号方式を用いており、主に秘匿性の高いデータを扱う場合に用いられる。
図1に示すように、暗号化システム100は、分析者端末10と、サーバ20と、プロバイダ端末30とを備え、それぞれ公衆通信網40を介して接続される。
【0023】
暗号化システム100では、例えばプロバイダ端末30が平文に対応する暗号文を取得する。その後、サーバ20が準同型暗号方式を用いて、暗号文に対して統計処理を行う。そして、分析者端末10が、演算処理の結果から平文に対応する復号文を算出する。
【0024】
このため、平文が秘匿性の高いデータを含む場合、データの内容を外部に漏らすことなくプロバイダ端末30から分析者端末10へと送ることができる。
【0025】
上記に加え、データの内容を暗号化した状態で統計処理を行うことができる。これにより、統計処理を外部に委託した場合においても、情報漏洩等の発生を防止することが可能となる。
【0026】
暗号化システム100では、任意の行列で示される平文から、多項式で示される要素を導出し(パッキング方法)、要素から暗号文が算出される。また、2つの暗号文における内積を演算して取得された内積値から、復号文が算出される。
【0027】
暗号文は、暗号化アルゴリズムを用いて算出され、復号文は、復号アルゴリズムを用いて算出される。暗号化アルゴリズムに用いられる暗号化鍵、及び復号アルゴリズムに用いられる復号鍵は、分析者端末10で生成される。暗号化鍵は、生成された後に公開され、プロバイダ端末30等で用いることができる。復号鍵は、生成された後、公開せず分析者端末10に記憶される。
【0028】
このとき、分析者端末10は、例えば内積準同型方式を用いて演算処理した結果のみから復号文に算出可能となり、プロバイダ端末30から直接暗号文を取得できない状態で用いられる。例えば
図1に示すように、分析者端末10とプロバイダ端末30とが異なる公衆通信網40a、40bに接続されてもよい。
【0029】
<分析者端末10>
分析者端末10は、例えば暗号化システム100の管理者等が保有する端末を示す。分析者端末10は、生成部11と、復号文算出部12と、記憶部13と、通信インターフェース14とを有する。
【0030】
生成部11は、暗号化システム100に用いられる各種情報を生成する。生成部11は、例えばパラメータ生成部11aと、鍵生成部11bとを有する。パラメータ生成部11aは、暗号化鍵及び復号鍵を生成するために必要となるパラメータを生成する。鍵生成部11bは、平文に対応する暗号文の算出に用いられる暗号化鍵と、暗号文から平文に対応する復号文の算出に用いられる復号鍵とを生成する。復号文算出部12は、復号アルゴリズムを用いて、内積値から復号文を算出する。このとき、復号文は、2つの平文の行列乗算の結果を含む。
【0031】
記憶部13は、暗号化鍵や復号鍵等の各種情報を記憶する。通信インターフェース14は、公衆通信網40と接続され、外部と各種情報を送受信する。
【0032】
<サーバ20>
サーバ20は、例えばクラウドサーバのように、管理者等に代わって各種情報の記憶や統計処理を行う第三者機関(業務委託先等)が保有するサーバを示す。サーバ20は、内積部21と、記憶部22と、通信インターフェース23とを有する。
【0033】
内積部21は、2つの暗号文における内積を演算し、内積値を取得する。記憶部22は、暗号文や内積等の各種情報を記憶する。通信インターフェース23は、公衆通信網40と接続され、外部と各種情報を送受信する。
【0034】
<プロバイダ端末30>
プロバイダ端末30は、例えば秘匿性の高いデータを扱うプロバイダが保有する端末を示す。プロバイダ端末30は、導出部31と、暗号文算出部32と、記憶部33と、通信インターフェース34とを有する。なお、プロバイダ端末30は、
図1では2つ(30a、30b)接続されているが、接続される数は任意である。
【0035】
導出部31は、平文から要素を導出する。暗号文算出部32は、暗号化アルゴリズムを用いて、要素から暗号文を算出する。記憶部33は、平文、要素や暗号文等の各種情報を記憶する。通信インターフェース34は、公衆通信網40と接続され、外部と各種情報を送受信する。
【0036】
(実施形態:暗号化システム100の動作)
次に、本実施形態における暗号化システム100の動作について詳細に説明する。
図2は、本実施形態における暗号化システム100の動作の一例を示すフローチャートである。
【0037】
暗号化システム100の動作は、鍵生成手段S110と、導出手段S120と、暗号文算出手段S130と、内積手段S140と、復号文算出手段S150とを有する。各手段は、下記の[数12]〜[数14]、[数16]、[数18]及び
図3の3a、3bに示すアルゴリズム(The Ring-LWE-based LNV scheme)を適宜用いてもよい。
【0038】
<鍵生成手段:S110>
先ず、平文に対応する暗号文の算出に用いる暗号化鍵と、暗号文に対応する復号文の算出に用いる復号鍵とを生成する(鍵生成手段S110)。鍵生成手段S110は、例えば第1ステップS110aと、第2ステップS110bとを有する。
【0039】
第1ステップS110aは、暗号化鍵及び復号鍵を生成するために必要となるパラメータを生成する。パラメータ生成部11aは、下記の[数12]に示すパラメータ生成アルゴリズム(ParamGen(1
λ)→pp)に基づき、パラメータpp=(q、n、p)を生成する。パラメータ生成部11aは、素数q、素数qよりも小さい素数p、及び正の整数nを生成する。
【数12】
ここで、Z
+は正の整数の集合を示し、λはセキュリティパラメータを示す。
【0040】
このとき、パラメータ生成部11aは、下記の[数13]に基づきパラメータを設定する。
【数13】
ここで、Rは多項式環を示し、R
pは平文空間を示し、R
qは暗号文空間を示す。
Z
(0、
s2)は、中心0、分散s
2>0の整数上の離散ガウス分布を示し、R
(0、
s2)は多項式環Rの各係数を離散ガウス分布Z
(0、
s2)から独立に抽出した環上の離散ガウス分布を示す。
【0041】
その後、第2ステップS110bは、暗号化鍵及び復号鍵を生成する。鍵生成部11bは、下記の[数14]に示す鍵生成アルゴリズム(KeyGen(1
λ、pp)→(pk、sk))に基づき、暗号化鍵pk=(a、P)、及び復号鍵sk=Sを生成する。鍵生成部11bは、環上の離散ガウス分布R
(0、
s2)から抽出した値r及び値S、並びに暗号文空間R
qから一様ランダム抽出した値aを生成する。
【数14】
ここで、R
+は正の実数の集合を示す。
【0042】
その後、例えばプロバイダ端末30は、例えば各通信インターフェース14、34を介して、暗号化鍵pkを取得する。
【0043】
<導出手段:S120>
次に、下記の[数1]に基づき、平文から要素を導出する(導出手段S120)。プロバイダ端末30の導出部31は、m行k列で示される第1平文から第1要素、及びk行l列で示される第2平文をそれぞれ導出する。なお、第1平文及び第2平文は、それぞれ下記の[数15]で示す行列として導出部31によって生成又は取得される。
【数1】
ここで、左辺M(ハット)は、各要素(第1要素、第2要素)を示し、M
β(r)は各平文(第1平文、第2平文)のβ行に対応するベクトルを示し、M
β(c)は各平文のβ列に対応するベクトルを示し、値βは値m、値k、及び値lのうち最大の値と等しく、値xは変数を示し、変数ベクトルXは下記の[数6]で示される。すなわち、各要素は、多項式を含むスカラー量で示される。
【数6】
【数15】
ここで、Z
pは平文空間の集合を示す。
【0044】
このとき、例えば値βは、下記の[数8]に示す条件を満たしてもよい。この場合、第1要素及び第2要素を示す多項式の項数を所定の数に抑えることができる。
【数8】
【0045】
また、値kは、値m及び値lと同じ値であるほか、例えば値m及び値lとは異なる値でもよい。すなわち、各平文が長方行列の場合においても、平行行列の場合と同様に処理を実行することができる。なお、値mは、値lと同じ値であるほか、例えば値lと異なる値でもよい。
【0046】
<暗号文算出手段:S130>
次に、下記の[数2]に示す暗号化アルゴリズムを用いて、要素から暗号文を算出する(暗号文算出手段S130)。暗号文算出部32は、第1要素から第1暗号文、及び第2要素から第2暗号文をそれぞれ算出する。
【数2】
ここで、Encは、暗号化鍵pkを用いる暗号化アルゴリズムを示し、c
1及びc
2は、第1暗号文の暗号文要素を示し、d
1及びd
2は、第2暗号文の暗号文要素を示し、R
qは暗号文空間を示す。
【0047】
なお、例えば下記の[数16]に示すアルゴリズムに基づき、暗号化アルゴリズムが用いられる。暗号文算出部32は、環上の離散ガウス分布R
(0、
s2)から抽出したノイズe
1、e
2、e
3を生成する。
【数16】
ここで、m
eは平文から算出された各要素(第1要素、第2要素)を示す。
【0048】
<内積手段:S140>
次に、2つの暗号文における内積を演算し、内積値を取得する(内積手段S140)。サーバ20の内積部21は、各通信インターフェース23、34を介して、第1暗号文及び第2暗号文を取得する。内積部21は、第1暗号文と、第2暗号文との内積を演算し、下記の[数3]に示す第1内積値〜第4内積値を取得する。
【数3】
ここで、W
1は第1内積値を示し、W
21は第2内積値を示し、W
22は第3内積値を示し、ξは第4内積値を示し、Z
qは暗号文空間の集合を示す。
【0049】
内積部21は、例えば下記の[数9]及び[数10]に基づき、第1内積値〜第4内積値を取得する。
【数9】
【数10】
ここで、W
2は第2内積値W
21及び第3内積値W
22を含む内積値示す。
【0050】
なお、内積部21は、内積の演算において下記の[数17](係数転置変換性質)を用いて第1内積値〜第4内積値を取得する。
【数17】
【0051】
例えば内積部21は、第1暗号文と、第2暗号文との内積を演算する前に、
図3に示したアルゴリズムを用いて、各暗号文同士の加算等を演算してもよい。
【0052】
例えば、[数1]及び[数2]を用いて暗号化された同じサイズ(m行m列)の第1暗号文c及び第2暗号文c’に対して、3a枠に示す加算アルゴリズムAdd(c,c’)に基づきc
add=c+c’を計算できる。この場合、分析者端末10の復号文算出部12において、3b枠に示す復号アルゴリズムDecA(S,c
add)=Dec(S,c
add)に基づきm+m’を計算できる。更に、3a枠に示す加算アルゴリズムの出力を用いた後、[数3]、並びに後述する[数4]及び[数5]を用いることで、第1平文Aと第2平文Bに対して(A+B)
2を計算することもできる。
【0053】
<復号文算出手段:S150>
次に、第1内積値〜第4内積値から復号文を算出する(復号文算出手段S150)。分析者端末10の復号文算出部12は、各通信インターフェース14、23を介して、第1内積値〜第4内積値を取得する。復号文算出部12は、下記の[数4]に示す復号アルゴリズムを用いて、第1内積値〜第4内積値から復号文を算出する。
【数4】
ここで、DecIP
*は復号鍵Sを用いた復号アルゴリズムを示し、S
*=SS
Tは内積算出対応復号鍵を示し、値w
k、値u
k、及び値v
kはそれぞれ係数を示す。
【0054】
復号文算出部12は、例えば下記の[数11]に基づき、復号文を算出する。このとき、復号文算出部12は、[数17]を用いて復号文を算出する。
【数11】
【0055】
なお、例えば下記の[数18]に示すアルゴリズムに基づき、復号アルゴリズムが用いられる。
【数18】
ここで、mは復号文を示す。ここで、復号文mに含まれる要素m
ijは、下記の[数5]で示すように、第1平文及び第2平文の行列要素を用いて表すことができる。すなわち、[数5]は[数11]と等しい値を示し、復号文mは第1平文と第2平文との行列乗算の結果を含む。なお、復号文mとして、例えば要素m
ijを行列要素とした行列が用いられるほか、例えばスカラー量が用いられてもよい。
【数5】
ここで、Vecは下記の[数7]で示される係数ベクトルを示す。
【数7】
【0056】
上述した動作を実施することで、本実施形態における暗号化システム100の動作は終了する。なお、上述した導出手段S120では、1つのプロバイダ端末30を用いて第1要素及び第2要素が導出されるほか、例えば第1プロバイダ端末30aを用いて第1要素、及び第2プロバイダ端末30bを用いて第2要素が導出されてもよい。
【0057】
次に、本実施形態における分析者端末10の構成の一例を説明する。なお、サーバ20及びプロバイダ端末30においても、分析者端末10と同様の構成を備えることができるため、説明を省略する。
【0058】
図4は、分析者端末10の構成の一例を示す模式図である。分析者端末10として、パーソナルコンピュータ(PC)等の電子機器が用いられるほか、例えばウェブサーバ等により具現化されてもよい。分析者端末10は、と、CPU101と、ROM102と、RAM103と、保存部104と、I/F105〜107とを備える。各構成101〜107は、内部バス110により接続され、筐体111内に格納される。
【0059】
CPU(Central Processing Unit)101は、分析者端末10全体を制御する。ROM(Read Only Memory)102は、CPU101の動作コードを格納する。RAM(Random Access Memory)103は、CPU101の動作時に使用される作業領域である。保存部104は、記憶部13を介して各種情報が保存される。保存部104としてデータ保存装置が用いられ、例えばHDD(Hard Disk Drive)、SSD(solid state drive)等が用いられる。
【0060】
I/F105は、公衆通信網40等と接続するためのインターフェース部品であり、例えばI/F105を介してサーバ20等との各種情報の送受信が行われる。
【0061】
I/F106は、入力部分108との情報の送受信を行うためのインターフェース部品である。入力部分108として、例えばキーボードが用いられ、分析者端末10の利用者等は、入力部分108を介して、各種情報又は分析者端末10の制御コマンド等を入力できる。I/F107は、出力部分109との各種情報の送受信を行うためのインターフェース部品である。出力部分109は、保存部104に保存された各種情報、又は分析者端末10の処理状況等を出力できる。出力部分109として、例えばディスプレイが用いられる。なお、生成部11、復号文算出部12、記憶部13、及び通信インターフェース14は、CPU101が、RAM103を作業領域として、保存部104等に保存されたプログラム(命令)を実行することにより実現される。
【0062】
本実施形態によれば、導出手段S120は、[数1]に基づき、第1平文から第1要素、及び第2平文から第2要素をそれぞれ導出する。このため、1つの平文に対して導出される要素を1つに抑制することができ、暗号文算出手段S130における算出回数を最小限に抑えることができる。これにより、計算効率の向上を図ることが可能となる。また、計算量及びデータ通信量を低減させることが可能となる。
【0063】
また、本実施形態によれば、内積手段S140は、[数3]に示す第1内積値〜第4内積値を取得し、復号文算出手段S150は、[数4]に示す復号アルゴリズムを用いて、復号文を算出する。このとき、復号文は、[数5]に基づく第1平文と第2平文との行列乗算の結果を含む。このため、1回の復号計算により第1平文と第2平文との行列乗算の結果を取得することができる。これにより、計算効率の向上を図ることが可能となる。
【0064】
また、本実施形態によれば、例えば値kは、値m及び値lとは異なる値でもよい。このとき、各平文が長方行列の場合においても、正方行列の場合と同様に処理を実行することができる。これにより、平文の自由度(柔軟性)を向上させることが可能となる。
【0065】
また、本実施形態によれば、例えば第1平文Aと第2平文Bとの乗算ABに加え、乗算BAが必要なときにおいても、第1平文A及び第2平文Bに対してそれぞれ1通りのパッキング方法により上述した計算を実現することが可能となる。これにより、乗算AB及び乗算BAを演算するときのコストを削減することが可能となる。
【0066】
例えば、下記の[数19]で示すm行k列の第1平文A及びk行m列の第2平文Bで示される場合、[数1]、[数2]、[数3]、下記の[数20]、下記の[数21]を用いて復号文を算出できる。この結果は、下記の[数22]乗算AB
m×
m、及び乗算BA
k×
kに対応するため、乗算AB及び乗算BAを1回復号で計算できることが示される。
【数19】
【数20】
【数21】
ここで、η
kは係数を示し、第1内積値W
1、第2内積値W
21、第3内積値W
22は[数3]の値が用いられ、第4内積値ξは[数20]の値が用いられる。
【数22】
【0067】
上記より、第1平文Aの列と第2平文Bの行、及び第1平文Bの行と第2平文の列とが等しいとき、[数3]に示したξを簡易に示すことができ、[数4]よりも係数の少ない[数21]に示す復号アルゴリズムを用いることができる。
【0068】
また、本実施形態によれば、例えばm行k列の第1平文A、k行l列の第2平文B、及びl行m列の第3平文Cを用いた場合、乗算ABと乗算CAとの演算が必要なときにおいても、第1平文Aに対して1通りのパッキング方法により上述した計算を実現することが可能となる。
【0069】
また、本実施形態によれば、プライバシー保護、PCA(主成分分析)計算、データの次元圧縮等への応用を実現することが可能となる。