JP6413743B2 - 暗号処理装置、暗号処理方法、及び暗号処理プログラム - Google Patents

暗号処理装置、暗号処理方法、及び暗号処理プログラム Download PDF

Info

Publication number
JP6413743B2
JP6413743B2 JP2014254548A JP2014254548A JP6413743B2 JP 6413743 B2 JP6413743 B2 JP 6413743B2 JP 2014254548 A JP2014254548 A JP 2014254548A JP 2014254548 A JP2014254548 A JP 2014254548A JP 6413743 B2 JP6413743 B2 JP 6413743B2
Authority
JP
Japan
Prior art keywords
polynomial
vector
encryption
cryptographic
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014254548A
Other languages
English (en)
Other versions
JP2016114855A (ja
Inventor
雅哉 安田
雅哉 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014254548A priority Critical patent/JP6413743B2/ja
Priority to US14/869,470 priority patent/US9794068B2/en
Priority to EP15187868.3A priority patent/EP3035581B1/en
Publication of JP2016114855A publication Critical patent/JP2016114855A/ja
Application granted granted Critical
Publication of JP6413743B2 publication Critical patent/JP6413743B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、暗号処理装置、暗号処理方法、及び暗号処理プログラムに関する。
現在、個人情報及び機密情報を保護する規制が強化される一方で、それらの情報を利用したサービスの市場が拡大しつつある。このようなサービスとしては、例えば、スマートフォンから取得できる個人ユーザの位置情報等を活用したサービスが挙げられる。
そこで、個人情報又は機密情報を保護したままで、情報の利活用ができる秘匿化技術が注目されている。秘匿化技術の中には、データ種別又はサービス要件に応じて暗号技術又は統計技術を用いる方法がある。
暗号技術を用いた秘匿化技術として、準同型暗号技術が知られている。準同型暗号技術は、暗号化と復号とで一対の異なる鍵を用いる公開鍵暗号方式の1つであり、暗号化したままでデータ操作が可能となる機能を有する。例えば、加算及び乗算に関する準同型暗号の暗号化関数Eは、平文m1及び平文m2に対して、次式のような性質を持つ。
E(m1)+E(m2)=E(m1+m2) (1)
E(m1)*E(m2)=E(m1*m2) (2)
式(1)は、加算に対して準同型であることを表し、式(2)は、乗算に対して準同型であることを表す。このように、準同型暗号技術によれば、2つ以上の暗号文を対象に加算、乗算等に対応する操作を行うことで、暗号文を復号することなく、元の平文同士に対して加算、乗算等を行った演算結果の暗号文を得ることができる。
このような準同型暗号の性質は、電子投票、電子現金等の分野、及び近年ではクラウド・コンピューティングの分野において利用されることが期待されている。加算又は乗算に関する準同型暗号としては、乗算のみ可能なRivest Shamir Adleman(RSA)暗号、加算のみ可能なAdditive ElGamal暗号等が知られている。
また、2009年には、式(1)及び式(2)を満たす、加算と乗算の両方が可能な準同型暗号が提案されている(例えば、非特許文献1を参照)。非特許文献1では、準同型暗号の理論的な実現方法のみしか示されておらず、実用的な構成法は明らかにされていない。しかし、近年では、加算と乗算の両方が可能な準同型暗号の実用的な構成法も提案されている(例えば、非特許文献2を参照)。
準同型暗号を利用した秘匿距離計算において、暗号ベクトルデータのサイズと秘匿距離計算の時間の両方を削減する暗号処理装置も知られている(例えば、特許文献1を参照)。この暗号処理装置は、第1のベクトルから第1の変換多項式を用いて第1の多項式を得るとともに、第2のベクトルから第2の変換多項式を用いて第2の多項式を得る。次に、暗号処理装置は、第1のベクトルの秘匿距離に関する第1の重みと、第2のベクトルの秘匿距離に関する第2の重みとを得る。
次に、暗号処理装置は、第1の多項式、第2の多項式、第1の重み、及び第2の重みのそれぞれを準同型暗号方式を用いて暗号化し、第1の暗号化多項式、第2の暗号化多項式、第1の暗号化重み、及び第2の暗号化重みを得る。そして、暗号処理装置は、第1の暗号化多項式、第2の暗号化多項式、第1の暗号化重み、及び第2の暗号化重みから、第1のベクトルと第2のベクトルの秘匿距離の暗号化に対応する暗号化秘匿距離を得る。
特開2014−126865号公報
C. Gentry, "Fully Homomorphic Encryption Using Ideal Lattices", STOC 2009, pp. 169-178, 2009. K. Lauter, M. Naehrig, V. Vaikuntanathan, "Can Homomorphic Encryption be Practical?", In ACM workshop on Cloud Computing Security Workshop-CCSW 2011, ACM, pp. 113-124, 2011.
特許文献1の暗号処理装置を適用することで、2つのベクトルの各要素を暗号化して乗算する方法よりも効率的に、2つのベクトルの間の内積又は距離を計算することができる。しかしながら、2つのベクトルの各要素の値が大きくなると、準同型暗号により生成される暗号化多項式のサイズも大きくなるため、準同型暗号の処理性能が低下すると考えられる。
なお、かかる問題は、2つのベクトルの間の内積又は距離を求める場合に限らず、2つのベクトルの他の演算結果を求める場合においても生ずるものである。
1つの側面において、本発明は、暗号化多項式を用いた暗号演算によって2つのベクトルの演算結果を効率よく求めることを目的とする。
1つの案では、暗号処理装置は、記憶部、生成部、及び送信部を含む。
記憶部は、第1のベクトルを記憶する。生成部は、第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する。送信部は、第1の暗号化多項式を表す暗号情報を暗号演算装置へ送信する。
暗号演算装置は、第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成する。第3の暗号化多項式を復号して得られる第3の多項式の所定部分の変数に2を代入することで、第1のベクトルと第2のベクトルとの演算結果が得られる。
実施形態によれば、暗号化多項式を用いた暗号演算によって2つのベクトルの演算結果を効率よく求めることができる。
暗号処理装置の機能的構成図である。 暗号処理のフローチャートである。 統計システムの構成図である。 暗号処理の具体例を示すフローチャートである。 情報処理装置の構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
非特許文献2の3.2節には、準同型暗号の実用的な構成法について記載されている。この構成法では、まず、暗号鍵生成において、主に3つの鍵生成パラメータ(n,q,t)が用いられる。nは2冪の整数であり、格子次元と呼ばれる。qは素数であり、tは素数qよりも小さい整数である。
暗号鍵生成の手順として、まず、秘密鍵として各係数が非常に小さいn−1次多項式skがランダムに生成される。各係数の大きさは、あるパラメータσにより制限される。次に、各係数がqより小さいn−1次多項式a1と、各係数が非常に小さいn−1次多項式eとがランダムに生成される。そして、次式の多項式a0が計算され、多項式の組(a0,a1)が公開鍵pkとして定義される。
a0=−(a1*sk+t*e) (11)
ただし、多項式a0の計算では、n次以上の多項式に対してxn=−1,xn+1=−x,...を適用することで、絶えずn次より小さい次数の多項式が計算される。さらに、多項式に含まれる各項の係数としては、その係数を素数qで除算したときの剰余が用いられる。このような多項式演算を行う空間は、学術的にはRq:=Fq[x]/(xn+1)と表されることが多い。
次に、各係数がtより小さいn−1次多項式で表される平文データmと公開鍵pkとに対して、各係数が非常に小さい3つのn−1次多項式u、f、及びgがランダムに生成され、平文データmの暗号データEnc(m,pk)が次式により定義される。
Enc(m,pk)=(c0,c1) (12)
c0=a0*u+t*g+m (13)
c1=a1*u+t*f (14)
多項式c0及び多項式c1の計算においても、空間Rq上の多項式演算が用いられる。このとき、暗号データEnc(m1,pk)=(c0,c1)と暗号データEnc(m2,pk)=(d0,d1)とに対する暗号加算は、次式により計算される。
Enc(m1,pk)+Enc(m2,pk)
=(c0+d0,c1+d1) (15)
また、暗号データEnc(m1,pk)と暗号データEnc(m2,pk)とに対する暗号乗算は、次式により計算される。
Enc(m1,pk)*Enc(m2,pk)
=(c0*d0,c0*d1+c1*d0,c1*d1) (16)
式(16)の暗号乗算を行うと、暗号データが2次元ベクトルから3次元ベクトルに変化する。暗号乗算を複数回繰り返すと、乗算結果の暗号データの要素はさらに増加する。
次に、復号処理について説明する。複数回の暗号乗算等の操作により要素が増加した暗号データc=(c0,c1,c2,...)に対して、秘密鍵skを用いて次式の復号結果Dec(c,sk)を計算することで、暗号データcが復号される。
Dec(c,sk)
=[c0+c1*sk+c2*sk2+・・・]q mod t (17)
式(17)において、[f(x)]q mod tは、多項式f(x)の各係数ziを[zi]q mod tに置き換えた多項式を表す。整数zに対する[z]qの値は、zをqで除算したときの剰余wを用いて、次式により定義される。
[z]q=w (w<q/2の場合) (18)
[z]q=w−q (w≧q/2の場合) (19)
したがって、[z]qの値域は[−q/2,q/2)となる。また、a mod tは、整数aをtで除算したときの剰余を表す。
例えば、(n,q,t)=(4,1033,20)の場合、秘密鍵sk、公開鍵pk、及び暗号データEnc(m,pk)の簡単な例として、以下のような多項式が挙げられる。
sk=Mod(Mod(4,1033)*x3+Mod(4,1033)*x2
+Mod(1,1033)*x,x4+1) (20)
pk=(a0,a1) (21)
a0=Mod(Mod(885,1033)*x3
+Mod(519,1033)*x2+Mod(621,1033)*x
+Mod(327,1033),x4+1) (22)
a1=Mod(Mod(661,1033)*x3
+Mod(625,1033)*x2+Mod(861,1033)*x
+Mod(311,1033),x4+1) (23)
Enc(m,pk)=(c0,c1) (24)
m=3+2x+2x2+2x3 (25)
c0=Mod(Mod(822,1033)*x3
+Mod(1016,1033)*x2+Mod(292,1033)*x
+Mod(243,1033),x4+1) (26)
c1=Mod(Mod(840,1033)*x3
+Mod(275,1033)*x2+Mod(628,1033)*x
+Mod(911,1033),x4+1) (27)
式(20)〜式(27)において、Mod(a,q)は、整数aを素数qで除算したときの剰余を表し、Mod(f(x),x4+1)は、多項式f(x)を多項式x4+1で除算したときの剰余(多項式)を表す。例えば、f(x)=x4に対するMod(f(x),x4+1)は、f(x)=−1に対するMod(f(x),x4+1)と等しく、f(x)=x5に対するMod(f(x),x4+1)は、f(x)=−xに対するMod(f(x),x4+1)と等しい。
n−1次以下の2つの多項式f(x)及びg(x)に対する2つの暗号データEnc(f(x),pk)及びEnc(g(x),pk)は、加算及び乗算に関して、次式のような性質を持つ。
Enc(f(x),pk)+Enc(g(x),pk)
=Enc(f(x)+g(x),pk) (31)
Enc(f(x),pk)*Enc(g(x),pk)
=Enc(f(x)*g(x),pk) (32)
さらに、特許文献1の暗号処理装置によれば、ベクトルデータを多項式変換により1つの多項式で表現し、その多項式を準同型暗号により暗号化することで、処理時間や暗号データのサイズが大幅に改善される。
この暗号処理装置では、例えば、次のような2つのn次元ベクトルが入力データとして用いられる。
A=(a0,a2,...,an-1) (41)
B=(b0,b2,...,bn-1) (42)
2つのベクトルを暗号化したままで2つのベクトルの間の内積又は距離を高速に計算するために、例えば、次のような昇順変換と降順変換の2種類の多項式変換が用いられる。
[昇順変換]
Figure 0006413743
[降順変換]
Figure 0006413743
多項式pm1(A)及び多項式pm2(B)は、変数xの多項式である。多項式pm1(A)及び多項式pm2(B)を準同型暗号により暗号化すると、暗号化多項式E(pm1(A))及び暗号化多項式E(pm2(B))が生成される。
E(pm1(A))=Enc(pm1(A),pk) (45)
E(pm2(B))=Enc(pm2(B),pk) (46)
暗号化多項式E(pm1(A))及び暗号化多項式E(pm2(B))を乗算すると、暗号化したままで乗算pm1(A)*pm2(B)が行われる。そして、乗算結果E(pm1(A))*E(pm2(B))を復号すると、復号結果の多項式に含まれる定数項は、次式のような値になる。
Figure 0006413743
式(47)は、ベクトルAとベクトルBの内積を表している。この方法によれば、ベクトルAとベクトルBの各要素を暗号化して乗算する方法よりも効率的に、内積を計算することができる。ベクトルAとベクトルBの内積はこれらのベクトルの間の相関を表すため、内積計算を統計システムに対して適用することが可能である。
例えば、2つのクライアント端末がそれぞれデータDA及びデータDBを保持しており、お互いのデータを公開することなくデータDAとデータDBとの間の相関を求めたい場合がある。
この場合、まず、2つのクライアント端末が、それぞれ、データDA及びデータDBをベクトルA及びベクトルBに変換して、暗号化多項式E(pm1(A))及び暗号化多項式E(pm2(B))を生成し、クラウド内の暗号演算サーバへ送信する。次に、暗号演算サーバが、暗号化多項式E(pm1(A))及び暗号化多項式E(pm2(B))を乗算して暗号乗算結果を生成し、第3者機関の分析サーバへ送信する。そして、分析サーバが、秘密鍵で暗号乗算結果を復号して、復号結果の多項式からベクトルAとベクトルBの内積を求め、その内積に基づいて、データDAとデータDBとの間の相関分析を行う。
しかしながら、ベクトルAの各要素aiとベクトルBの各要素biの値が大きくなると、式(47)の内積も巨大な値になると考えられる。例えば、ai及びbiが16ビットの値である場合、内積はn個の32ビットの値の和という巨大な値になる。内積が巨大な値になる場合、内積が準同型暗号の鍵生成パラメータtよりも小さくなるように、tも巨大な値に設定され、式(13)及び式(14)の暗号化多項式のサイズが大きくなるため、準同型暗号の処理性能が低下する。
図1は、実施形態の暗号処理装置の機能的構成例を示している。図1の暗号処理装置101は、記憶部111、生成部112、及び送信部113を含む。
記憶部111は、第1のベクトルを記憶する。生成部112は、第1のベクトルを用いて第1の暗号化多項式を生成し、送信部113は、第1の暗号化多項式を表す暗号情報を暗号演算装置へ送信する。
図2は、図1の暗号処理装置101が行う暗号処理の例を示すフローチャートである。まず、生成部112は、第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する(ステップ201)。そして、送信部113は、第1の暗号化多項式を表す暗号情報を暗号演算装置へ送信する(ステップ202)。
暗号演算装置は、第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成する。第3の暗号化多項式を復号して得られる第3の多項式の所定部分の変数に2を代入することで、第1のベクトルと第2のベクトルとの演算結果が得られる。
このような暗号処理装置101によれば、暗号化多項式を用いた暗号演算によって2つのベクトルの演算結果を効率よく求めることができる。
図3は、図1の暗号処理装置101を適用した統計システムの構成例を示している。図3の統計システムは、端末装置301、端末装置302、暗号演算装置303、及び分析装置304を含む。暗号演算装置303と、端末装置301、端末装置302、及び分析装置304とは、通信ネットワークにより接続されており、暗号演算装置303は、クラウド上に設けられる。端末装置301及び端末装置302の各々は、図1の暗号処理装置101に対応する。
この例では、相関分析を行う分析者の分析装置304が、準同型暗号の公開鍵と秘密鍵とを生成し、公開鍵の情報のみを公開する。これにより、端末装置301、端末装置302、及び暗号演算装置303は、公開鍵を知ることが可能になる。そこで、端末装置301及び端末装置302は、保持しているベクトルの情報を公開鍵により暗号化し、暗号情報のみを暗号演算装置303へ送信する。
暗号演算装置303は、端末装置301及び端末装置302から受信した暗号情報を用いて暗号演算を行い、暗号演算結果のみを分析装置304へ送信する。通信ネットワーク上の情報はすべて暗号化されているため、ベクトルの情報が暗号演算装置303に漏洩することはない。
端末装置301は、記憶部311、生成部312、及び送信部313を含む。記憶部311は、データDAを表すベクトルVAを記憶する。生成部312は、ベクトルVAをバイナリベクトルUAに変換し、バイナリベクトルUAと公開鍵とを用いて暗号化多項式E(pm1(UA))を生成する。送信部313は、暗号化多項式E(pm1(UA))を表す暗号情報を暗号演算装置303へ送信する。
端末装置302は、記憶部321、生成部322、及び送信部323を含む。記憶部321は、データDBを表すベクトルVBを記憶する。生成部322は、ベクトルVBをバイナリベクトルUBに変換し、バイナリベクトルUBと公開鍵とを用いて暗号化多項式E(pm2(UB))を生成する。送信部323は、暗号化多項式E(pm2(UB))を表す暗号情報を暗号演算装置303へ送信する。
データDA及びデータDBは、例えば、テキストデータ、画像データ、音声データ等である。テキストデータは、例えば、店舗等で顧客が購入した商品の識別情報、個数、価格等を表す購買履歴データであってもよい。画像データは、例えば、カメラにより撮影された被写体の画像であってもよい。音声データは、例えば、音声レコーダにより録音された人間、動物、又は物体の音声であってもよい。
端末装置301及び端末装置302は、例えば、データDA及びデータDBから抽出した特徴情報を特徴ベクトルに変換することで、ベクトルVA及びベクトルVBを生成することができる。また、暗号化多項式を表す暗号情報としては、例えば、暗号化多項式の各項が有する係数を用いることができる。
暗号演算装置303は、受信部331、生成部332、及び送信部333を含む。受信部331は、端末装置301から暗号化多項式E(pm1(UA))を表す暗号情報を受信し、端末装置302から暗号化多項式E(pm2(UB))を表す暗号情報を受信する。生成部332は、暗号化多項式E(pm1(UA))と暗号化多項式E(pm2(UB))とを乗算して、乗算結果の暗号化多項式E(pm1(UA))*E(pm2(UB))を生成する。送信部333は、暗号化多項式E(pm1(UA))*E(pm2(UB))を表す暗号情報を分析装置304へ送信する。
分析装置304は、受信部341及び分析部342を含む。受信部341は、暗号演算装置303から暗号化多項式E(pm1(UA))*E(pm2(UB))を表す暗号情報を受信する。分析部342は、暗号化多項式E(pm1(UA))*E(pm2(UB))を秘密鍵により復号して、多項式pm1(UA)*pm2(UB)を生成し、生成した多項式の所定部分の変数に2を代入することで、ベクトルVAとベクトルVBの内積を求める。そして、分析部342は、その内積に基づいて、データDAとデータDBとの間の相関分析のための統計処理を行って、処理結果を出力する。
次に、図3の統計システムにおける暗号処理の具体例について説明する。この暗号処理では、例えば、次のような2つのk次元ベクトルがベクトルVA及びベクトルVBとして用いられる。
VA=(a0,a2,...,ak-1) (51)
VB=(b0,b2,...,bk-1) (52)
端末装置301の生成部312及び端末装置302の生成部322は、ベクトルVA及びベクトルVBの各要素を、次式のようなバイナリ変換によりバイナリ値に変換する。
Figure 0006413743
ただし、dは2以上の整数であり、要素ai及び要素biは、2d未満の整数であると仮定する。式(53)のai (u) 及び式(54)のbi (u) は、0又は1のバイナリ値である。このバイナリ変換により、ベクトルVA及びベクトルVBは、次式のようなkd次元のバイナリベクトルに変換される。
VA→(a0 (0),a0 (1),...,a0 (d-1),a1 (0),a1 (1),...,a1 (d-1),...,
k-1 (0),ak-1 (1),...,ak-1 (d-1)) (55)
VB→(b0 (0),b0 (1),...,b0 (d-1),b1 (0),b1 (1),...,b1 (d-1),...,
k-1 (0),bk-1 (1),...,bk-1 (d-1)) (56)
次に、生成部312は、式(55)のバイナリベクトルの要素ai (d-1) の後にd個の0を挿入して、2kd次元のバイナリベクトルUAを生成し、生成部322は、式(56)のバイナリベクトルの要素bi (d-1) の後にd個の0を挿入して、2kd次元のバイナリベクトルUBを生成する。
UA=(a0 (0),a0 (1),...,a0 (d-1),0,0,...,0,
1 (0),a1 (1),...,a1 (d-1),0,0,...,0,...,
k-1 (0),ak-1 (1),...,ak-1 (d-1),0,0,...,0) (57)
UB=(b0 (0),b0 (1),...,b0 (d-1),0,0,...,0,
1 (0),b1 (1),...,b1 (d-1),0,0,...,0,...,
k-1 (0),bk-1 (1),...,bk-1 (d-1),0,0,...,0) (58)
バイナリベクトルUA及びバイナリベクトルUBは、それぞれ、式(41)のベクトルA及び式(42)のベクトルBとして用いられる。次に、生成部312及び生成部322は、バイナリベクトルUA及びバイナリベクトルUBを用いて、式(43)及び式(44)により、多項式pm1(UA)及び多項式pm2(UB)を生成する。
Figure 0006413743
この場合、n=2kdである。式(60)は、式(59)の多項式Ai(x)を表し、式(62)は、式(61)の多項式Bi(x)を表す。生成部312及び生成部322は、式(45)及び式(46)により、暗号化多項式E(pm1(UA))及び暗号化多項式E(pm2(UB))を生成する。
暗号演算装置303の生成部332は、暗号化多項式E(pm1(UA))と暗号化多項式E(pm2(UB))とを乗算する。式(31)及び式(32)に示したように、準同型暗号による暗号演算処理において、2つの多項式f(x)及びg(x)に対する加算及び乗算は、次式のような性質を持つ。
E(f(x))+E(g(x))=E(f(x)+g(x)) (71)
E(f(x))*E(g(x))=E(f(x)*g(x)) (72)
そこで、以下では、E(pm1(UA))とE(pm2(UB))の乗算をpm1(UA)とpm2(UB)の乗算に置き換えて、生成部332が行う暗号演算を説明する。式(59)のpm1(UA)と式(61)のpm2(UB)とを乗算すると、次のような多項式が得られる。
Figure 0006413743
式(74)は、式(73)の多項式P1(x)を表す。式(74)の計算では、xn=−1が適用されている。多項式P1(x)は、2(d−1)次の多項式であり、多項式P2(x)は、2d次以上の項を含む多項式である。暗号化多項式E(pm1(UA))*E(pm2(UB))は、暗号化多項式E(P1(x)+P2(x))と等価になる。
分析装置304の分析部342は、暗号化多項式E(pm1(UA))*E(pm2(UB))を復号して、多項式P1(x)+P2(x)を生成する。そして、分析部342は、得られた多項式のうち、0次から2(d−1)次までの項を含む部分であるP1(x)の変数xに2を代入することで、P1(2)の値を計算する。
Figure 0006413743
式(75)が示すように、得られたP1(2)の値は、ベクトルVAとベクトルVBの内積を表している。ベクトルVA及びベクトルVBを、式(57)及び式(58)のようなバイナリベクトルUA及びバイナリベクトルUBに変換することで、復号結果に式(74)の多項式P1(x)が現れる仕組みになっている。そして、P1(x)にx=2を代入することで、ベクトルVAとベクトルVBの内積が得られる。
このような暗号処理によれば、鍵生成パラメータtの値は、多項式P1(x)に含まれる各項の係数よりも大きな値に設定すればよい。具体的には、ベクトルVA及びベクトルVBの要素数kと、各要素の最大ビット数dとに対して、鍵生成パラメータtの値をt>kdを満たすように設定すればよいことが分かる。これに対して、ベクトルVA及びベクトルVBのバイナリ変換を行わずに、暗号化多項式E(pm1(VA))と暗号化多項式E(pm2(VB))とを乗算する場合は、鍵生成パラメータtに対する条件は、t>m*2^(2d)となる。
例えば、k=1000、d=16と設定して、E(pm1(VA))*E(pm2(VB))を計算する場合、tの値は1000*2^32より大きくなる。これに対して、バイナリベクトルUA及びバイナリベクトルUBを用いて、E(pm1(UA))*E(pm2(UB))を計算する場合、tの値は16000より大きければ十分である。このtの値は、非特許文献2の準同型暗号にとって十分に実用的なレベルである。
このように、ベクトルをバイナリ変換してから暗号化多項式を生成することで、大きな値を要素に持つベクトルに対して、暗号化多項式のサイズを増大させることなく、特許文献1と同様の一括暗号化方式を適用できるようになる。具体的には、1回の暗号乗算により、大きな値を要素に持つベクトルを暗号化したままで、効率よく内積を計算することが可能になる。
分析装置304は、ベクトルAとベクトルBの内積だけでなく、内積に基づく様々な統計値を計算することができる。分析装置304は、内積に基づく類似度(例えば、コサイン類似度)又は内積に基づく相違度(例えば、ハミング距離、ユークリッド距離等)を計算してもよい。
図4は、図3の統計システムにおける暗号処理の例を示すフローチャートである。この暗号処理において、分析装置304は、ベクトルVAとベクトルVBの内積を用いて、ベクトルVAとベクトルVBの共分散cov(VA,VB)及び相関係数r(VA,VB)を計算する。共分散cov(VA,VB)及び相関係数r(VA,VB)は、ベクトルVAの要素の平均mVA及び標準偏差sVAと、ベクトルVBの要素の平均mVB及び標準偏差sVBとを用いて、次式により計算される。
Figure 0006413743
まず、端末装置301の生成部312は、データDAからベクトルVAを生成し(ステップ411)、ベクトルVAの各要素をバイナリ変換して、式(55)のバイナリベクトルを生成する(ステップ412)。次に、生成部312は、式(55)のバイナリベクトルの要素ai (d-1) の後にd個の0を挿入して、式(57)のバイナリベクトルUAを生成する(ステップ413)。
次に、生成部312は、式(43)及び式(44)を用いて、バイナリベクトルUAを多項式pm1(UA)及び多項式pm2(UA)に変換する(ステップ414)。そして、生成部312は、多項式pm1(UA)及び多項式pm2(UA)を公開鍵により暗号化して、暗号化多項式E(pm1(UA))及び暗号化多項式E(pm2(UA))を生成する。送信部313は、暗号化多項式E(pm1(UA))を表す暗号情報と、暗号化多項式E(pm2(UA))を表す暗号情報とを、暗号演算装置303へ送信する(ステップ415)。
一方、端末装置302の生成部322は、データDBからベクトルVBを生成し(ステップ421)、ベクトルVBの各要素をバイナリ変換して、式(56)のバイナリベクトルを生成する(ステップ422)。次に、生成部322は、式(56)のバイナリベクトルの要素bi (d-1) の後にd個の0を挿入して、式(58)のバイナリベクトルUBを生成する(ステップ423)。
次に、生成部322は、式(43)及び式(44)を用いて、バイナリベクトルUBを多項式pm1(UB)及び多項式pm2(UB)に変換する(ステップ424)。そして、生成部322は、多項式pm1(UB)及び多項式pm2(UB)を公開鍵により暗号化して、暗号化多項式E(pm1(UB))及び暗号化多項式E(pm2(UB))を生成する。送信部323は、暗号化多項式E(pm1(UB))を表す暗号情報と、暗号化多項式E(pm2(UB))を表す暗号情報とを、暗号演算装置303へ送信する(ステップ425)。
暗号演算装置303の生成部332は、まず、すべての要素が1であるk次元のベクトルVCを、式(55)及び式(57)と同様にしてバイナリ変換することで、2kd次元のバイナリベクトルUCを生成する(ステップ431)。
VC=(1,1,...,1) (91)
VC→(1,0,...,0,1,0,...,0,...,
1,0,...,0) (92)
UC=(1,0,...,0,0,0,...,0,
1,0,...,0,0,0,...,0,...,
1,0,...,0,0,0,...,0) (93)
次に、生成部332は、式(43)及び式(44)を用いて、バイナリベクトルUCを多項式pm1(UC)及び多項式pm2(UC)に変換する。そして、生成部332は、多項式pm1(UC)及び多項式pm2(UC)を公開鍵により暗号化して、暗号化多項式E(pm1(UC))及び暗号化多項式E(pm2(UC))を生成する。
次に、生成部332は、次のような5種類の暗号乗算を行って、5つの乗算結果を生成する(ステップ432)。
(1)生成部332は、暗号化多項式E(pm1(UA))と暗号化多項式E(pm2(UC))とを乗算して、乗算結果の暗号化多項式E(pm1(UA))*E(pm2(UC))を生成する。
(2)生成部332は、暗号化多項式E(pm1(UC))と暗号化多項式E(pm2(UB))とを乗算して、乗算結果の暗号化多項式E(pm1(UC))*E(pm2(UB))を生成する。
(3)生成部332は、暗号化多項式E(pm1(UA))と暗号化多項式E(pm2(UA))とを乗算して、乗算結果の暗号化多項式E(pm1(UA))*E(pm2(UA))を生成する。
(4)生成部332は、暗号化多項式E(pm1(UB))と暗号化多項式E(pm2(UB))とを乗算して、乗算結果の暗号化多項式E(pm1(UB))*E(pm2(UB))を生成する。
(5)生成部332は、暗号化多項式E(pm1(UA))と暗号化多項式E(pm2(UB))とを乗算して、乗算結果の暗号化多項式E(pm1(UA))*E(pm2(UB))を生成する。
そして、送信部333は、各乗算結果の暗号化多項式を表す暗号情報を分析装置304へ送信する(ステップ433)。
分析装置304の分析部342は、5つの乗算結果の暗号化多項式を秘密鍵により復号して、5つの復号結果の多項式を生成する(ステップ441)。次に、分析部342は、各復号結果の多項式に含まれる項のうち、2(d−1)次より大きな次数の項を除く、2(d−1)次の多項式の部分にx=2を代入することで、次のような5種類の内積を計算する(ステップ442)。
(a)ベクトルVAとベクトルVCの内積
(b)ベクトルVCとベクトルVBの内積
(c)ベクトルVAとベクトルVAの内積
(d)ベクトルVBとベクトルVBの内積
(e)ベクトルVAとベクトルVBの内積
ベクトルVAとベクトルVCの内積は、式(81)の右辺に現れるベクトルVAの要素の総和を表し、ベクトルVCとベクトルVBの内積は、式(82)の右辺に現れるベクトルVBの要素の総和を表す。
ベクトルVAとベクトルVAの内積は、式(83)の右辺に現れるベクトルVAの要素の二乗和を表し、ベクトルVBとベクトルVBの内積は、式(84)の右辺に現れるベクトルVBの要素の二乗和を表す。ベクトルVAとベクトルVBの内積は、式(85)の右辺に現れ、式(74)の多項式P1(x)にx=2を代入することで計算される。
分析部342は、5種類の内積と式(81)〜式(86)とを用いて、ベクトルVAとベクトルVBの共分散cov(VA,VB)及び相関係数r(VA,VB)を計算する統計処理を行い、処理結果を出力する(ステップ443)。
このような暗号処理によれば、大きな値を要素に持つベクトルに対して暗号化多項式のサイズを増大させることなく、5種類の暗号乗算により、効率よく共分散及び相関係数を計算することが可能になる。
図1の暗号処理装置101及び図3の統計システムの構成は一例に過ぎず、暗号処理装置の用途や条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図3の統計システムにおいて、端末装置301又は端末装置302のいずれか一方を用いて、ベクトルVA及びベクトルVBを生成し、E(pm1(UA))、E(pm2(UA))、E(pm1(UB))、及びE(pm2(UB))を生成してもよい。この場合、他方の端末装置を省略することができる。
図2及び図4のフローチャートは一例に過ぎず、暗号処理装置又は統計システムの構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、図4の暗号処理において、E(pm1(UC))及びE(pm2(UC))があらかじめ生成されている場合は、ステップ431の処理を省略することができる。
図4のステップ443において、分析装置304は、ベクトルVAとベクトルVBの内積のみに基づく処理結果を生成してもよい。この場合、分析装置304は、ステップ442において、ベクトルVAとベクトルVCの内積、ベクトルVCとベクトルVBの内積、ベクトルVAとベクトルVAの内積、及びベクトルVBとベクトルVBの内積の計算を省略することができる。
また、端末装置301は、ステップ414において、E(pm2(UA))の生成を省略することができ、端末装置302は、ステップ424において、E(pm1(UB))の生成を省略することができる。暗号演算装置303は、ステップ431の処理を省略することができ、ステップ432において、E(pm1(UA))とE(pm2(UB))との乗算以外の4つの暗号乗算を省略することができる。
式(1)〜式(93)は一例に過ぎず、他の定式化を用いてもよい。例えば、式(73)の多項式に含まれる2(d−1)次の多項式の代わりに、他の部分の多項式からベクトルVAとベクトルVBの内積が得られるような定式化を用いてもよい。
図1及び図3の暗号処理装置101、端末装置301、端末装置302、暗号演算装置303、及び分析装置304は、例えば、ハードウェア回路として実装することができる。この場合、暗号処理装置101の各構成要素を個別の回路として実装してもよく、複数の構成要素を1つの集積回路として実装してもよい。
暗号処理装置101、端末装置301、端末装置302、暗号演算装置303、及び分析装置304は、図5に示すような情報処理装置(コンピュータ)を用いて実現することも可能である。
図5の情報処理装置は、Central Processing Unit(CPU)501、メモリ502、入力装置503、出力装置504、補助記憶装置505、媒体駆動装置506、及びネットワーク接続装置507を含む。これらの構成要素はバス508により互いに接続されている。
メモリ502は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリである。メモリ502は、暗号処理装置101、端末装置301端末装置302、暗号演算装置303、又は分析装置304が行う処理のためのプログラム及びデータを格納する。メモリ502は、図1の記憶部111、図3の記憶部311、又は記憶部321として用いることができる。
情報処理装置が暗号処理装置101である場合、CPU501は、例えば、メモリ502を利用してプログラムを実行することにより、生成部112として動作し、暗号処理を行う。
情報処理装置が端末装置301である場合、CPU501は、例えば、メモリ502を利用してプログラムを実行することにより、生成部312として動作し、暗号処理を行う。情報処理装置が端末装置302である場合、CPU501は、例えば、メモリ502を利用してプログラムを実行することにより、生成部322として動作し、暗号処理を行う。
情報処理装置が暗号演算装置303である場合、CPU501は、例えば、メモリ502を利用してプログラムを実行することにより、生成部332として動作する。情報処理装置が分析装置304である場合、CPU501は、例えば、メモリ502を利用してプログラムを実行することにより、分析部342として動作する。
入力装置503は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置504は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。処理結果は、分析装置304による統計処理の結果であってもよい。
補助記憶装置505は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置505は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置505にプログラム及びデータを格納しておき、それらをメモリ502にロードして使用することができる。補助記憶装置505は、図1の記憶部111、図3の記憶部311、又は記憶部321として用いることができる。
媒体駆動装置506は、可搬型記録媒体509を駆動し、その記録内容にアクセスする。可搬型記録媒体509は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体509は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体509にプログラム及びデータを格納しておき、それらをメモリ502にロードして使用することができる。
このように、プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ502、補助記憶装置505、及び可搬型記録媒体509のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置507は、Local Area Network(LAN)、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置507を介して外部の装置からプログラム及びデータを受信し、それらをメモリ502にロードして使用することができる。ネットワーク接続装置507は、図1の送信部113、図3の送信部313、送信部323、受信部331、送信部333、又は受信部341として用いることができる。
なお、情報処理装置が図5のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータからの指示や情報の入力を行わない場合は、入力装置503を省略してもよく、ユーザ又はオペレータへの問い合わせや処理結果の出力を行わない場合は、出力装置504を省略してもよい。情報処理装置が可搬型記録媒体509にアクセスしない場合は、媒体駆動装置506を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図5を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1のベクトルを記憶する記憶部と、
前記第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する生成部と、
前記第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成する暗号演算装置へ、前記第1の暗号化多項式を表す暗号情報を送信する送信部とを備え、
前記第3の暗号化多項式を復号して得られる第3の多項式の所定部分の変数に2を代入することで、前記第1のベクトルと前記第2のベクトルとの演算結果が得られることを特徴とする暗号処理装置。
(付記2)
前記生成部は、前記第1のベクトルの要素を複数のビットを含むビット列に変換し、2つの要素に対応する2つのビット列の間に、複数の0を表すビット値を含むビット列を挿入することで、前記第1のバイナリベクトルを生成することを特徴とする付記1記載の暗号処理装置。
(付記3)
前記複数の0を表すビット値を含む前記ビット列のビット数は、前記複数のビットを含む前記ビット列のビット数dと等しく、前記第3の多項式の前記所定部分は、前記第3の多項式に含まれる2(d−1)次以下の次数の項に対応し、前記演算結果は、前記第1のベクトルと前記第2のベクトルとの内積であることを特徴とする付記2に記載の暗号処理装置。
(付記4)
暗号処理装置が、第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する工程と、
前記暗号処理装置が、前記第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成する暗号演算装置へ、前記第1の暗号化多項式を表す暗号情報を送信する工程とを備え、
前記第3の暗号化多項式を復号して得られる第3の多項式の所定部分の変数に2を代入することで、前記第1のベクトルと前記第2のベクトルとの演算結果が得られることを特徴とする暗号処理方法。
(付記5)
前記第1の暗号化多項式を生成する工程は、前記第1のベクトルの要素を複数のビットを含むビット列に変換し、2つの要素に対応する2つのビット列の間に、複数の0を表すビット値を含むビット列を挿入することで、前記第1のバイナリベクトルを生成することを特徴とする付記4記載の暗号処理方法。
(付記6)
前記複数の0を表すビット値を含む前記ビット列のビット数は、前記複数のビットを含む前記ビット列のビット数dと等しく、前記第3の多項式の前記所定部分は、前記第3の多項式に含まれる2(d−1)次以下の次数の項に対応し、前記演算結果は、前記第1のベクトルと前記第2のベクトルとの内積であることを特徴とする付記5に記載の暗号処理方法。
(付記7)
暗号処理をコンピュータに実行させる暗号処理プログラムであって、
前記暗号処理は、
第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する工程と、
前記第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成する暗号演算装置へ、前記第1の暗号化多項式を表す暗号情報を送信する工程とを備え、
前記第3の暗号化多項式を復号して得られる第3の多項式の所定部分の変数に2を代入することで、前記第1のベクトルと前記第2のベクトルとの演算結果が得られることを特徴とする暗号処理プログラム。
(付記8)
前記第1の暗号化多項式を生成する工程は、前記第1のベクトルの要素を複数のビットを含むビット列に変換し、2つの要素に対応する2つのビット列の間に、複数の0を表すビット値を含むビット列を挿入することで、前記第1のバイナリベクトルを生成することを特徴とする付記7記載の暗号処理プログラム。
(付記9)
前記複数の0を表すビット値を含む前記ビット列のビット数は、前記複数のビットを含む前記ビット列のビット数dと等しく、前記第3の多項式の前記所定部分は、前記第3の多項式に含まれる2(d−1)次以下の次数の項に対応し、前記演算結果は、前記第1のベクトルと前記第2のベクトルとの内積であることを特徴とする付記8に記載の暗号処理プログラム。
101 暗号処理装置
111、311、321 記憶部
112、312、322、332 生成部
113、313、323、333 送信部
301、302 端末装置
303 暗号演算装置
304 分析装置
331、341 受信部
342 分析部
501 CPU
502 メモリ
503 入力装置
504 出力装置
505 補助記憶装置
506 媒体駆動装置
507 ネットワーク接続装置
508 バス
509 可搬型記録媒体

Claims (4)

  1. 暗号処理装置と暗号演算装置と分析装置とを備えるシステムであって、
    前記暗号処理装置は、
    第1のベクトルを記憶する記憶部と、
    前記第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する生成部と、
    記第1の暗号化多項式を表す暗号情報を前記暗号演算装置へ送信する送信部とを含み
    前記暗号演算装置は、前記第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成し、前記第3の暗号化多項式を表す暗号情報を前記分析装置へ送信し、
    前記分析装置は、前記第3の暗号化多項式を復号して第3の多項式を生成し、前記第3の多項式の所定部分の変数に2を代入することで、前記第1のベクトルと前記第2のベクトルとの演算結果を求めることを特徴とするシステム
  2. 前記生成部は、前記第1のベクトルの要素を複数のビットを含むビット列に変換し、2つの要素に対応する2つのビット列の間に、複数の0を表すビット値を含むビット列を挿入することで、前記第1のバイナリベクトルを生成することを特徴とする請求項1記載のシステム
  3. 前記複数の0を表すビット値を含む前記ビット列のビット数は、前記複数のビットを含む前記ビット列のビット数dと等しく、前記第3の多項式の前記所定部分は、前記第3の多項式に含まれる2(d−1)次以下の次数の項に対応し、前記演算結果は、前記第1のベクトルと前記第2のベクトルとの内積であることを特徴とする請求項2記載のシステム
  4. 暗号処理装置が、第1のベクトルの要素をバイナリ変換した第1のバイナリベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する工程と、
    前記暗号処理装置が、前記第1の暗号化多項式を表す暗号情報を暗号演算装置へ送信する工程と
    前記暗号演算装置が、前記第1の暗号化多項式と、第2のベクトルの要素をバイナリ変換した第2のバイナリベクトルに対応する第2の多項式を暗号化して生成される、第2の暗号化多項式とを乗算して、第3の暗号化多項式を生成する工程と、
    前記暗号演算装置が、前記第3の暗号化多項式を表す暗号情報を分析装置へ送信する工程と、
    前記分析装置が、前記第3の暗号化多項式を復号して第3の多項式を生成する工程と、
    前記分析装置が、前記第3の多項式の所定部分の変数に2を代入することで、前記第1のベクトルと前記第2のベクトルとの演算結果を求める工程と、
    を備えることを特徴とする暗号処理方法。
JP2014254548A 2014-12-16 2014-12-16 暗号処理装置、暗号処理方法、及び暗号処理プログラム Expired - Fee Related JP6413743B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014254548A JP6413743B2 (ja) 2014-12-16 2014-12-16 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US14/869,470 US9794068B2 (en) 2014-12-16 2015-09-29 Cryptographic processing device and cryptographic processing method
EP15187868.3A EP3035581B1 (en) 2014-12-16 2015-10-01 Homomorphic cryptographic processing method and cryptographic processing device for pattern matching with similarities computation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014254548A JP6413743B2 (ja) 2014-12-16 2014-12-16 暗号処理装置、暗号処理方法、及び暗号処理プログラム

Publications (2)

Publication Number Publication Date
JP2016114855A JP2016114855A (ja) 2016-06-23
JP6413743B2 true JP6413743B2 (ja) 2018-10-31

Family

ID=54251442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014254548A Expired - Fee Related JP6413743B2 (ja) 2014-12-16 2014-12-16 暗号処理装置、暗号処理方法、及び暗号処理プログラム

Country Status (3)

Country Link
US (1) US9794068B2 (ja)
EP (1) EP3035581B1 (ja)
JP (1) JP6413743B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018125020A1 (en) * 2016-12-29 2018-07-05 Limited Liability Company "Innovation Development Hub" Cryptographic transformation device
US10666422B2 (en) * 2017-12-29 2020-05-26 Shenzhen China Star Optoelectronics Technology Co., Ltd. Data processing method
US10797856B2 (en) * 2018-04-18 2020-10-06 Fujitsu Limited Outsourcing processing operations with homomorphic encryption
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
JP6977882B2 (ja) * 2018-05-25 2021-12-08 日本電信電話株式会社 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム
DE102018122278A1 (de) * 2018-09-12 2020-03-12 Infineon Technologies Ag Ausführen einer kryptographischen Operation
JP6916770B2 (ja) * 2018-09-27 2021-08-11 Kddi株式会社 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
WO2020145503A1 (en) * 2019-01-10 2020-07-16 Crypto Lab Inc. Apparatus for processing approximately encrypted messages and methods thereof
JP7349616B2 (ja) * 2019-04-26 2023-09-25 株式会社エーエヌラボ 支払支援システム、支払支援方法及び支払支援プログラム
KR102424856B1 (ko) * 2019-05-09 2022-07-22 구글 엘엘씨 Rlwe 암호문들의 압축 및 불확정적 확장
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands
JP7527866B2 (ja) * 2020-07-01 2024-08-05 キヤノン株式会社 プログラム、情報処理装置及び制御方法
JP7101430B1 (ja) 2021-10-28 2022-07-15 Eaglys株式会社 暗号処理プログラム、暗号処理方法、暗号処理装置、暗号処理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3824397B2 (ja) 1997-09-10 2006-09-20 オリンパス株式会社 ベクトル規格化装置
US20060245587A1 (en) * 2005-04-28 2006-11-02 Binyamin Pinkas System and method for private information matching
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
JP5258915B2 (ja) * 2011-02-28 2013-08-07 株式会社デンソーアイティーラボラトリ 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム
US8925075B2 (en) * 2011-11-07 2014-12-30 Parallels IP Holdings GmbH Method for protecting data used in cloud computing with homomorphic encryption
US9436835B1 (en) * 2012-01-05 2016-09-06 Gokay Saldamli Homomorphic encryption in computing systems and environments
JP5862413B2 (ja) * 2012-03-28 2016-02-16 富士通株式会社 情報変換規則生成プログラム、情報変換規則生成装置および情報変換規則生成方法
JP2014126865A (ja) 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
JP6173904B2 (ja) * 2013-12-13 2017-08-02 株式会社東芝 共通鍵暗号装置及びプログラム、並びに、共通鍵復号装置及びプログラム
JP6260442B2 (ja) 2014-05-02 2018-01-17 富士通株式会社 情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2016114855A (ja) 2016-06-23
EP3035581B1 (en) 2018-10-24
US20160197726A1 (en) 2016-07-07
US9794068B2 (en) 2017-10-17
EP3035581A1 (en) 2016-06-22

Similar Documents

Publication Publication Date Title
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP6083234B2 (ja) 暗号処理装置
JP6421576B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
EP3068066B1 (en) Private computation on encrypted biometric data using homomorphic encryption
US9100185B2 (en) Encryption processing apparatus and method
RU2017139315A (ru) Способ защиты информации в облачных вычислениях с использованием гомоморфного шифрования
JP6349841B2 (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
JP2016012111A (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
JP6260442B2 (ja) 情報処理方法及びプログラム
US20150270964A1 (en) Encryption device, encryption method, information processing device, and encryption system
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP2015031935A (ja) 情報処理方法及びプログラム
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP7117964B2 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
JP5323196B2 (ja) 演算装置、方法およびプログラム
WO2022009384A1 (ja) 最終べき計算装置、ペアリング演算装置、暗号処理装置、最終べき計算方法及び最終べき計算プログラム
KR101932032B1 (ko) 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법
CN118368046A (zh) 密文降噪方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180917

R150 Certificate of patent or registration of utility model

Ref document number: 6413743

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees