JP6459658B2 - 暗号処理装置、暗号処理方法、および暗号処理プログラム - Google Patents

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

Info

Publication number
JP6459658B2
JP6459658B2 JP2015047742A JP2015047742A JP6459658B2 JP 6459658 B2 JP6459658 B2 JP 6459658B2 JP 2015047742 A JP2015047742 A JP 2015047742A JP 2015047742 A JP2015047742 A JP 2015047742A JP 6459658 B2 JP6459658 B2 JP 6459658B2
Authority
JP
Japan
Prior art keywords
encryption
vector
polynomial
random number
information
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.)
Active
Application number
JP2015047742A
Other languages
English (en)
Other versions
JP2016167037A (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 JP2015047742A priority Critical patent/JP6459658B2/ja
Priority to US15/058,677 priority patent/US9960905B2/en
Priority to EP16158229.1A priority patent/EP3068066B1/en
Publication of JP2016167037A publication Critical patent/JP2016167037A/ja
Application granted granted Critical
Publication of JP6459658B2 publication Critical patent/JP6459658B2/ja
Active 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/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Collating Specific Patterns (AREA)
  • Arrangements For Transmission Of Measured Signals (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の暗号処理装置を適用することで、ユーザの生体情報を保護したままで個人認証を行う個人認証システムを実現することができる。しかしながら、個人認証システムにおいては、悪意のあるユーザが暗号情報を盗聴することで再送攻撃(Replay攻撃)を行って、正規のユーザに成りすますことが可能である。
なお、かかる問題は、暗号化秘匿距離に基づく個人認証システムに限らず、暗号化多項式を用いた暗号演算処理に基づく他の認証システムにおいても生ずるものである。
1つの側面において、本発明は、暗号化多項式を用いた暗号演算処理において、暗号情報の盗聴に対する耐性を向上させることを目的とする。
実施の形態の暗号処理装置は、生成部、送信部、受信部、復号部、および処理部を備える。
前記生成部は、格子次元である2冪の整数n、法とする素数q、及び、前記素数qよりも小さい整数tを鍵生成パラメータとして用いて生成される準同型暗号の暗号鍵のうちの公開鍵を用いて、0より大きい整数であって前記整数tよりも小さい第1の乱数を成分としてゼロベクトルに付加した第1のベクトルに対応する第1の多項式を準同型暗号により暗号化して、第1の暗号化多項式を生成する。
前記送信部は、前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信する。
前記受信部は、前記第1の暗号化多項式と0より大きい整数であって前記整数tよりも小さい第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、前記公開鍵を用いて第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を準同型暗号により暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記公開鍵を用いて前記第2の乱数についての前記整数tを法とする逆元を準同型暗号により暗号化して得られる暗号化逆元を表す第3の暗号情報を前記計算装置から受信する。
前記復号部は、前記暗号鍵のうちの秘密鍵を用いて前記第2の暗号情報および前記第3の暗号情報を復号する。
前記処理部は、前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第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,a1,...,an-1) (41)
B=(b0,b1,...,bn-1) (42)
2つのベクトルを暗号化したままで2つのベクトルの間の内積又は距離を高速に計算するために、例えば、次のような昇順変換と降順変換の2種類の多項式変換が用いられる。
[昇順変換]
Figure 0006459658
[降順変換]
Figure 0006459658
多項式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 0006459658
式(47)は、ベクトルAとベクトルBの内積を表している。この方法によれば、ベクトルAとベクトルBの各要素を暗号化して乗算する方法よりも効率的に、内積を計算することができる。さらに、この内積計算を応用することで、ハミング距離、L2ノルム等を暗号化したままで高速に計算することもできる。
図1は、特許文献1の暗号処理装置を適用した生体認証システムの構成例を示している。図1の生体認証システムは、生体情報を利用した個人認証システムであり、端末装置101、計算装置102、及び認証装置103を含む。計算装置102と、端末装置101及び認証装置103とは、通信ネットワークにより接続されている。端末装置101は、例えば、クライアント端末のようなユーザの装置であり、計算装置102及び認証装置103は、例えば、サーバである。端末装置101は、準同型暗号の公開鍵を持ち、認証装置103は、準同型暗号の秘密鍵を持つ。
生体認証システムは、ユーザがパスワード等の複雑な情報を覚える必要がないため、利用しやすい個人認証システムである反面、生体情報はユーザにとって終生不変な機密情報であるため、生体情報の漏洩等に対する強力な保護が望まれる。そこで、図1の生体認証システムでは、準同型暗号によりユーザの生体情報を保護している。
生体情報の登録時に、端末装置101は、登録者であるユーザの生体情報をセンサにより取得し、生体情報から抽出した特徴情報を、式(41)のようなベクトルAに変換し、暗号化処理111−1を行う。センサにより取得される生体情報としては、指紋、顔、静脈、虹彩等の画像情報又は声等の音声情報を用いることができる。
暗号化処理111−1において、端末装置101は、ベクトルAを式(43)のような多項式pm1(A)に変換し、多項式pm1(A)を準同型暗号により暗号化して暗号化多項式E(pm1(A))を生成する。そして、端末装置101は、暗号化多項式E(pm1(A))を表す暗号情報を計算装置102へ送信する。計算装置102は、端末装置101から受信した暗号情報を、登録生体情報を表すテンプレート112として、データベースに登録する。
生体情報の認証時に、端末装置101は、認証対象者であるユーザの生体情報をセンサにより取得し、生体情報から抽出した特徴情報を、式(42)のようなベクトルBに変換し、暗号化処理111−2を行う。
暗号化処理111−2において、端末装置101は、ベクトルBを式(44)のような多項式pm2(B)に変換し、多項式pm2(B)を準同型暗号により暗号化して暗号化多項式E(pm2(B))を生成する。そして、端末装置101は、暗号化多項式E(pm2(B))を表す暗号情報を計算装置102へ送信する。
計算装置102は、テンプレート112が表す暗号化多項式E(pm1(A))と、端末装置101から受信した暗号情報が表す暗号化多項式E(pm2(B))とを用いて暗号演算処理を行い、暗号演算結果を表す暗号情報を認証装置103へ送信する。
認証装置103は、暗号処理装置101から受信した暗号情報に基づいて、認証対象者を認証する認証処理114を行う。認証処理114において、認証装置103は、受信した暗号情報を復号してベクトルAとベクトルBの演算結果を生成し、生成した演算結果に基づいて認証を行う。
ベクトルAとベクトルBの演算結果としては、例えば、ベクトルAとベクトルBとの間の距離(ハミング距離等)が用いられる。この場合、計算装置102は、2つのベクトルを暗号化したままの状態で、ベクトルAとベクトルBとの間の距離を計算することができ、認証装置103は、距離を閾値と比較して、認証の成否を判定することができる。距離が閾値より小さければ、認証対象者の認証が成功したと判定され、距離が閾値以上であれば、認証が失敗したと判定される。
このような生体認証システムによれば、端末装置101から計算装置102へは暗号化された情報のみが送信され、計算装置102は秘密鍵を持たないため、計算装置102がユーザの生体情報を表すベクトルを知ることはない。また、計算装置102から認証装置103へは暗号演算結果のみが送信され、認証装置103は、復号によりベクトルAとベクトルBの演算結果のみを生成するため、認証装置103がユーザの生体情報を表すベクトルを知ることもない。
したがって、計算装置102と認証装置103とが結託しない限り、ベクトルA又はベクトルBが生成されることはなく、ユーザの生体情報を保護したままで個人認証サービスが提供される。
しかしながら、図1の生体認証システムにおいては、悪意のあるユーザが再送攻撃を行って、正規のユーザに成りすますことが可能である。再送攻撃は、認証システムにおける代表的な成りすまし攻撃の1つであり、具体的には、攻撃者が端末装置101と計算装置102との間の通信路を盗聴することで、正規のユーザが送信する暗号化多項式の暗号情報を不正に取得する。攻撃者は、正規のユーザに成りすまして、取得した暗号情報を計算装置102へ再送することで、認証装置103による認証を成功させることができる。
このような再送攻撃に対する対策として、チャレンジ・レスポンス認証方式が有効である。この認証方式では、認証側の装置がチャレンジと呼ばれる乱数を生成して、端末装置へ送信する。端末装置は、受信したチャレンジと認証対象の情報とを基にレスポンスと呼ばれるデータを生成し、認証側の装置へ返信する。そして、認証側の装置は、チャレンジと受信したレスポンスとを用いて認証処理を行う。チャレンジ・レスポンス認証方式によれば、チャレンジが生成される度にレスポンスが毎回変化するため、レスポンスを盗聴して再送しても認証に失敗してしまう。
そこで、図1の生体認証システムにおける再送攻撃対策として、チャレンジ・レスポンス認証の仕組みを導入することが考えられる。
実施の形態の生体認証システムの説明の前に、準同型暗号による暗号演算処理に関する性質について述べる。
式(31)及び式(32)に示したように、準同型暗号による暗号演算処理において、2つの多項式f(x)及びg(x)に対する加算及び乗算は、次式のような性質を持つ。
E(f(x))+E(g(x))=E(f(x)+g(x)) (51)
E(f(x))*E(g(x))=E(f(x)*g(x)) (52)
さらに、非特許文献2の実用的な構成法を用いた場合、これらの加算及び乗算の性質を次式のように書き換えることができる。
f(x)+E(g(x))=E(f(x)+g(x)) (53)
f(x)*E(g(x))=E(f(x)*g(x)) (54)
式(53)又は式(54)は、f(x)を暗号化せずにE(g(x))と加算又は乗算しても、得られた演算結果を復号すれば、E(f(x)+g(x))又はE(f(x)*g(x))の復号結果と一致することを表している。このような暗号演算処理によれば、f(x)の暗号化処理を省略することができるため、処理が効率化される。そこで、以下の暗号演算処理では、式(53)及び式(54)の性質を用いることがある。
図2は、実施の形態に係る生体認証システムの構成図である。
生体認証システム200は、端末装置201、計算装置301、および認証装置401を備える。端末装置201、計算装置301、および認証装置401は、通信ネットワークにより接続されており、互いに通信可能である。
端末装置201は、例えば、クライアント端末のようなユーザの装置であり、計算装置301および認証装置401は、例えば、サーバである。端末装置201および認証装置401は、準同型暗号の公開鍵を持ち、認証装置401は、公開鍵に対応する準同型暗号の秘密鍵を持つ。また、端末装置201および認証装置401は、公開鍵の生成時に用いられた鍵パラメータtを持つ。認証装置401は、暗号処理装置の一例である。
端末装置201は、生体情報の登録時に、登録者の生体情報をセンサにより取得し、生体情報から抽出した特徴情報を、式(41)のようなベクトルAに変換する。次に、端末装置201は、ベクトルAに最終成分(要素)として0を付加したベクトルA’を生成する。尚、ベクトルA’はベクトル(A||0)と表記する場合もある。ベクトルA’は、下式(61)のようになる。
A’=(A||0)=(a0,a1,...,an-1,0)
=(a0,a1,...,an-1,an),ただしan=0 (61)
端末装置201は、ベクトルA’を下式(63)のような多項式pm1(A’)に変換し、多項式pm1(A’)を準同型暗号により暗号化して暗号化多項式E(pm1(A’))を生成する。そして、端末装置201は、暗号化多項式E(pm1(A’))を表す暗号情報を計算装置301へ送信する。
Figure 0006459658
端末装置201は、認証装置401からチャレンジを受信し、乱数rを生成する。端末装置201は、乱数rとチャレンジを用いてレスポンスを生成し、レスポンスを計算装置301に送信する。
計算装置301は、受信部311、記憶部321、算出部331、および送信部341を備える。
受信部311は、端末装置201から暗号情報を受信する。また、受信部311は、端末装置21からレスポンスを受信する。
記憶部321は、計算装置301で使用されるプログラムやデータ等を記憶する記憶装置である。記憶部321は、暗号化多項式を格納する。詳細には、記憶部321は、端末装置201から受信した暗号化多項式E(pm1(A’))を示す暗号情報を登録暗号情報322として格納する。暗号化多項式を表す暗号情報としては、例えば、暗号化多項式の各項が有する係数を用いることができる。また、記憶部321は、公開鍵および鍵パラメータtを格納する。
算出部331は、端末装置201から受信したレスポンスと登録暗号情報322から暗号演算を行う。
送信部341は、算出部331による暗号演算結果を表す暗号情報と乱数rを表す暗号情報を認証装置401に送信する。
認証装置401は、生成部411、送信部421、受信部431、復号部441、認証処理部451、および記憶部461を備える。
生成部411は、乱数pを生成し、乱数pを用いてチャレンジを生成する。
送信部421は、生成されたチャレンジを端末装置201に送信する。
受信部431は、計算装置301から受信した暗号情報を受信する。
復号部441は、受信した暗号情報を復号する。
認証処理部451は、復号結果に基づいて、認証処理を行う。
記憶部461は、認証装置401で使用されるプログラムやデータ等を記憶する記憶装置である。記憶部461は、生成した乱数p、公開鍵、秘密鍵、および鍵パラメータtを格納する。
図3は、実施の形態に係る暗号処理のフローチャートである。
ステップ501において、端末装置201は、認証要求を認証装置401へ送信する。
ステップ502において、受信部431は、認証要求を受信する。そして、生成部411は、乱数pを生成する。乱数pは、0より大きい整数であり、鍵生成パラメータtよりも小さい。生成部411は、ゼロベクトルに乱数rを成分として付加したベクトルP’を生成する。詳細には、生成部411は、乱数pを最終成分とし、最終成分以外のn個の成分を0とするベクトルP’を生成する。尚、ベクトルP’はベクトル(0・・・0||p)と表記する場合もある。ベクトルP’は、下式(71)のようになる。
P’=(0・・・0||p)=(0,0,...,0,p)
=(p0,p1,...,pn-1,pn),ただしp0〜pn-1=0,pn=p(71)
ステップ503において、生成部411は、ベクトルP’を降順多項式変換により式(72)のような多項式pm2(P’)に変換する。
Figure 0006459658
生成部411は、多項式pm2(P’)を準同型暗号により暗号化してチャレンジ暗号データchl=E(pm2(P’))を生成する。
ステップ504において、送信部421は、チャレンジ暗号データchlを表す暗号情報をチャレンジとして端末装置201に送信する。
ステップ505において、端末装置201は、認証装置401からチャレンジ暗号データchlを受信する。詳細には、端末装置201は、チャレンジ暗号データchlを表す暗号情報を受信する。端末装置201は、認証対象者の生体情報をセンサにより取得し、生体情報から抽出した特徴情報を、式(42)のようなベクトルBに変換する。尚、実施の形態において、ベクトルAおよびベクトルBは、2値ベクトルである。すなわち、ベクトルAの要素a0〜要素an-1のすべてが0又は1であり、ベクトルBの要素b0〜要素bn-1のすべてが0又は1である。
ステップ506において、端末装置201は、ベクトルBに最終成分(要素)として0を付加したベクトルB’を生成する。尚、ベクトルB’はベクトル(B||0)と表記する場合もある。ベクトルB’は、下式(73)のようになる。
B’=(B||0)=(b0,b1,...,bn-1,0)
=(b0,b1,...,bn-1,bn),ただしbn=0 (73)
端末装置201は、ベクトルB’を降順多項式変換により下式(74)のような多項式pm2(B’)に変換する。
Figure 0006459658
ステップ507において、端末装置201は、乱数rを生成する。そして、端末装置201は、tを法とする乱数rの逆元r−1を算出する。尚、乱数rは、0より大きい整数であり、鍵パラメータtよりも小さい。
ステップ508において、端末装置201は、チャレンジ暗号データchlと乱数rとを乗算し、乗算結果に多項式pm2(B’)を加算して、レスポンス暗号データresを算出する。暗号化多項式であるレスポンス暗号データresは、式(53)、(54)で示される性質を用いることにより、下式(75)のようになる。
res=pm2(B’)+chl*r
=pm2(B||0)+E(pm2(0・・・0||p))*r
=pm2(B||0)+E(pm2(0・・・0||rp))
=E(pm2(B||rp)) (75)
尚、ベクトル(B||rp)=(b0,b1,...,bn-1,rp)である。
さらに、端末装置201は、逆元r−1を準同型暗号により暗号化して暗号化逆元E(r−1)を生成する。
ステップ509において、端末装置201は、レスポンス暗号データresと暗号化逆元E(r−1)をそれぞれ表す暗号情報をレスポンスとして計算装置301に送信する。暗号化逆元E(r−1)から暗号化乱数E(r)を算出するのは困難なので、攻撃者がチャレンジ暗号データchlとレスポンス暗号データresとを盗聴した場合でも、それらの情報から暗号化多項式E(pm2(B||0)が算出されることを防止でき、セキュリティが向上する。
ステップ510において、受信部311は、端末装置201からレスポンスを受信する。算出部331は、記憶部321に格納されている登録暗号情報322(すなわち、暗号化多項式E(pm1(A’)))と、レスポンス暗号データres(すなわち、暗号化多項式E(pm2(B||rp)))とを用いて暗号演算処理を行い、暗号演算結果を生成する。
詳細には、算出部は、E(pm1(A’))とE(pm2(B||rp))の暗号演算結果として、下式(76)によりベクトルA’とベクトル(B||rp)の暗号化ハミング距離E(DH)を計算する。
E(DH)=E(pm1(A’))*C1+E(pm2(B||rp))*C2
−2*E(pm1(A’))*E(pm2(B||rp)) (76)
ここで、多項式C1及び多項式C2は、下式により与えられる。
Figure 0006459658
ステップ511において、送信部341は、暗号化ハミング距離E(DH)と暗号化逆元E(r−1)をそれぞれ表す暗号情報を認証装置401へ送信する。暗号化逆元E(r−1)を表す暗号情報は、乱数rを表す暗号情報の一例である。
ステップ512において、受信部431は、暗号化ハミング距離E(DH)と暗号化逆元E(r−1)をそれぞれ表す暗号情報を受信する。
復号部441は、受信した暗号情報が表す暗号化ハミング距離E(DH)を復号して、復号結果である多項式DHを生成する。この多項式DHは、下式(79)により計算される多項式と等価である。
pm1(A’)*C1+pm2(B||rp)*C2
−2*pm1(A’)*pm2(B||rp) (79)
さらに、復号部441は、受信した暗号情報が表す暗号化逆元を復号して逆元r−1を算出する。
ステップ513において、認証処理部451は、逆元r−1から乱数rを算出する。認証処理部451は、乱数rと乱数pを乗算して乗算結果rpを算出する。認証処理部451は、多項式DHに含まれる定数項から、下式(80)で表されるベクトルA’とベクトル(B||rp)のハミング距離HDを算出する。
HD=a0+a1+・・・+an-1+an+b0+b1+・・・+bn-1+bn
−2(a00+a11+・・・+an-1n-1+ann),
ただし、an=0,bn=rp (80)
認証処理部451は、ハミング距離HDから乗算結果rpを減算して、演算結果を算出する。上式(80)で表されるベクトルA’とベクトル(B||rp)のハミング距離HDは、ベクトルAとベクトルBのハミング距離HDABに乗算結果rpを加算した値と等しい。したがって、ハミング距離HDから乗算結果rpを減算することにより、演算結果として、ベクトルAとベクトルBのハミング距離HDABが得られる。
認証処理部451は、演算結果(ハミング距離HDAB)に基づいて認証対象者の認証を行い、認証結果を出力する。詳細には、認証処理部451は、演算結果(ハミング距離HDAB)を閾値と比較して、認証の成否を判定する。この場合、演算結果(ハミング距離HDAB)が閾値より小さければ、認証対象者の認証が成功したと判定され、演算結果(ハミング距離HDAB)が閾値以上であれば、認証が失敗したと判定される。
実施の形態の生体認証システムによれば、認証装置がチャレンジ暗号データを生成する度にレスポンス暗号データが変化するため、攻撃者がレスポンス暗号データを盗聴して再送しても認証に失敗する。したがって、再送攻撃による成りすましを防ぐことができる。
また、実施の形態の生体認証システムによれば、攻撃者が計算装置のデータを見ることが可能な場合(例えば、攻撃者が計算装置の管理者の場合)でも、端末装置と認証装置で生成された乱数を用いてレスポンス暗号データを生成するので、再送攻撃による成りすましを防ぐことができる。
図2の生体認証システムの構成は一例に過ぎず、計算装置301および認証装置401の用途や条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図2の生体認証システムにおいて、認証対象者は、端末装置201とは異なる端末装置を用いて、生体情報の認証のための処理を行ってもよい。複数のユーザが生体情報の登録及び認証のための処理を行ってもよく、複数のユーザのための複数の端末装置201を設けてもよい。
さらに、図2の計算装置301および認証装置401は、ベクトルAとベクトルBの演算結果を利用する、生体認証システム以外の認証システムにも適用できる。例えば、生体情報以外の画像情報、音声情報等をベクトルに変換して、個人認証を行うことも可能である。
図3のフローチャートは一例に過ぎず、計算装置301、認証装置401、又は生体認証システムの構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、図3の暗号処理において、認証装置401の外部の装置が乱数を生成する場合は、ステップ502の乱数pを生成する処理を省略することができる。同様に、端末装置201の外部の装置が乱数を生成する場合は、ステップ507の乱数rを生成する処理を省略することができる。
式(1)〜式(80)は一例に過ぎず、他の定式化を用いてもよい。例えば、式(63)の昇順変換をベクトルA’に対して適用し、式(72)の降順変換をベクトルP’に適用し、式(74)の降順変換をベクトルB’に対して適用する代わりに、昇順変換をベクトルP’およびベクトルB’に対して適用し、降順変換をベクトルA’に対して適用してもよい。
上述のベクトルA’,B’,P’は一例に過ぎず、ベクトルA,Bに成分として付加する0の位置とベクトルP’の乱数pの位置が同じであれば、ベクトルA’,B’の0の位置とベクトルP’の乱数pの位置は任意の位置でよい。例えば、ベクトルAに先頭成分として0を付加したベクトルをベクトルA’とし、乱数pを先頭成分として、先頭成分以外のn個の成分を0とするベクトルをベクトルP’とし、ベクトルBに先頭成分として0を付加したベクトルをベクトルB’としてもよい。
準同型暗号による暗号演算処理において、2つの多項式f(x)及びg(x)に対する加算及び乗算を、式(53)及び式(54)に基づいて行う代わりに、式(51)及び式(52)に基づいて行ってもよい。
端末装置201が暗号化逆元E(r−1)を示す暗号情報を送信する代わりに暗号化乱数E(r)を示す暗号情報を送信しても良い。その場合、計算装置301の送信部431は、暗号化逆元E(r−1)を示す暗号情報を送信する代わりに暗号化乱数E(r)を示す暗号情報を送信する。認証装置401の復号部441は、受信した暗号情報を復号して乱数rを算出し、認証処理部451は、復号部441により得られた乱数rを利用する。
式(79)の多項式DHに含まれる定数項の代わりに、他の項の係数にハミング距離HDが現れるような定式化を用いてもよい。
図2の端末装置201、計算装置301、および認証装置401は、例えば、ハードウェア回路として実装することができる。この場合、計算装置301および認証装置401の各構成要素を個別の回路として実装してもよく、複数の構成要素を1つの集積回路として実装してもよい。
図4は、情報処理装置(コンピュータ)の構成図である。
端末装置201、計算装置301、および認証装置401は、図4に示すような情報処理装置(コンピュータ)を用いて実現することも可能である。
図4の情報処理装置は、Central Processing Unit(CPU)701、メモリ702、入力装置703、出力装置704、補助記憶装置705、媒体駆動装置706、及びネットワーク接続装置707を含む。これらの構成要素はバス708により互いに接続されている。
メモリ702は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリである。メモリ702は、端末装置201、計算装置301、または認証装置401が行う処理のためのプログラム及びデータを格納する。メモリ702は、記憶部321、461として用いることができる。
情報処理装置が端末装置201である場合、CPU701は、例えば、メモリ702を利用してプログラムを実行することにより、端末装置201の処理を行う。
情報処理装置が計算装置301である場合、CPU701は、例えば、メモリ702を利用してプログラムを実行することにより、算出部331として動作し、暗号処理を行う。
情報処理装置が認証装置401である場合、CPU701は、例えば、メモリ702を利用してプログラムを実行することにより、生成部421、復号部441、および認証処理部451として動作し、暗号処理を行う。
入力装置703は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置704は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。処理結果は、認証装置401による認証処理の結果であってもよい。
補助記憶装置705は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置705は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置705にプログラム及びデータを格納しておき、それらをメモリ702にロードして使用することができる。補助記憶装置705は、記憶部321、461として用いることができる。
媒体駆動装置706は、可搬型記録媒体709を駆動し、その記録内容にアクセスする。可搬型記録媒体709は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体709は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体709にプログラム及びデータを格納しておき、それらをメモリ702にロードして使用することができる。
このように、プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ702、補助記憶装置705、及び可搬型記録媒体709のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置707は、Local Area Network(LAN)、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置707を介して外部の装置からプログラム及びデータを受信し、それらをメモリ702にロードして使用することができる。ネットワーク接続装置707は、受信部311、431または送信部341、421として用いることができる。
なお、情報処理装置が図4のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータからの指示や情報の入力を行わない場合は、入力装置703を省略してもよく、ユーザ又はオペレータへの問い合わせや処理結果の出力を行わない場合は、出力装置704を省略してもよい。情報処理装置が可搬型記録媒体709にアクセスしない場合は、媒体駆動装置706を省略してもよい。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
ゼロベクトルに第1の乱数を成分として付加した第1のベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成する生成部と、
前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信する送信部と、
前記第1の暗号化多項式と第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記第2の乱数を表す第3の暗号情報を前記計算装置から受信する受信部と、
前記第2の暗号情報および前記第3の暗号情報を復号する復号部と、
前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第2の演算結果を生成する処理部と、
を備える暗号処理装置。
(付記2)
前記第1の演算結果は、前記第5のベクトルと前記第6のベクトルとのハミング距離を表し、
前記第2の演算結果は、前記第2ベクトルと前記第4のベクトルとのハミング距離を表すことを特徴とする付記1記載の暗号処理装置。
(付記3)
前記第3の暗号情報は、前記第2の乱数の逆元を暗号化した暗号化逆元を表し、
前記処理部は、前記第3の暗号情報の復号結果である前記第2の乱数の逆元から前記第2の乱数を算出し、前記第1の演算結果から前記第1の乱数と前記第2の乱数との前記乗算結果を減算することで前記第2の演算結果を算出することを特徴とする付記1又は2記載の暗号処理装置。
(付記4)
ゼロベクトルに第1の乱数を成分として付加した第1のベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成し、
前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信し、
前記第1の暗号化多項式と第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記第2の乱数を表す第3の暗号情報を前記計算装置から受信し、
前記第2の暗号情報および前記第3の暗号情報を復号し、
前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第2の演算結果を生成する、
処理を暗号処理装置が実行することを特徴とする暗号処理方法。
(付記5)
前記第1の演算結果は、前記第5のベクトルと前記第6のベクトルとのハミング距離を表し、
前記第2の演算結果は、前記第2ベクトルと前記第4のベクトルとのハミング距離を表すことを特徴とする付記4記載の暗号処理方法。
(付記6)
前記第3の暗号情報は、前記第2の乱数の逆元を暗号化した暗号化逆元を表し、
前記第2の演算結果を生成する処理は、前記第3の暗号情報の復号結果である前記第2の乱数の逆元から前記第2の乱数を算出し、前記第1の演算結果から前記第1の乱数と前記第2の乱数との前記乗算結果を減算することで前記第2の演算結果を算出することを特徴とする付記4又は5記載の暗号処理方法。
(付記7)
コンピュータに、
ゼロベクトルに第1の乱数を成分として付加した第1のベクトルに対応する第1の多項式を暗号化して、第1の暗号化多項式を生成し、
前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信し、
前記第1の暗号化多項式と第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記第2の乱数を表す第3の暗号情報を前記計算装置から受信し、
前記第2の暗号情報および前記第3の暗号情報を復号し、
前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第2の演算結果を生成する、
処理を実行させる暗号処理プログラム。
(付記8)
前記第1の演算結果は、前記第5のベクトルと前記第6のベクトルとのハミング距離を表し、
前記第2の演算結果は、前記第2ベクトルと前記第4のベクトルとのハミング距離を表すことを特徴とする付記7記載の暗号処理プログラム。
(付記9)
前記第3の暗号情報は、前記第2の乱数の逆元を暗号化した暗号化逆元を表し、
前記第2の演算結果を生成する処理は、前記第3の暗号情報の復号結果である前記第2の乱数の逆元から前記第2の乱数を算出し、前記第1の演算結果から前記第1の乱数と前記第2の乱数との前記乗算結果を減算することで前記第2の演算結果を算出することを特徴とする付記7又は8記載の暗号処理プログラム。
101 端末装置
102 計算装置
103 認証装置
200 生体認証システム
201 端末装置
301 計算装置
311 受信部
321 記憶部
331 算出部
341 送信部
401 認証装置
411 生成部
421 送信部
431 受信部
441 復号部
451 認証処理部

Claims (5)

  1. 格子次元である2冪の整数n、法とする素数q、及び、前記素数qよりも小さい整数tを鍵生成パラメータとして用いて生成される準同型暗号の暗号鍵のうちの公開鍵を用いて、0より大きい整数であって前記整数tよりも小さい第1の乱数を成分としてゼロベクトルに付加した第1のベクトルに対応する第1の多項式を準同型暗号により暗号化して、第1の暗号化多項式を生成する生成部と、
    前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信する送信部と、
    前記第1の暗号化多項式と0より大きい整数であって前記整数tよりも小さい第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、前記公開鍵を用いて第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を準同型暗号により暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記公開鍵を用いて前記第2の乱数についての前記整数tを法とする逆元を準同型暗号により暗号化して得られる暗号化逆元を表す第3の暗号情報を前記計算装置から受信する受信部と、
    前記暗号鍵のうちの秘密鍵を用いて前記第2の暗号情報および前記第3の暗号情報を復号する復号部と、
    前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第2の演算結果を生成する処理部と、
    を備える暗号処理装置。
  2. 前記第1の演算結果は、前記第5のベクトルと前記第6のベクトルとのハミング距離を表し、
    前記第2の演算結果は、前記第2ベクトルと前記第4のベクトルとのハミング距離を表すことを特徴とする請求項1記載の暗号処理装置。
  3. 前記処理部は、前記第3の暗号情報の復号結果である前記第2の乱数の逆元から前記第2の乱数を算出し、前記第1の演算結果から前記第1の乱数と前記第2の乱数との前記乗算結果を減算することで前記第2の演算結果を算出することを特徴とする請求項1又は2記載の暗号処理装置。
  4. 格子次元である2冪の整数n、法とする素数q、及び、前記素数qよりも小さい整数tを鍵生成パラメータとして用いて生成される準同型暗号の暗号鍵のうちの公開鍵を用いて、0より大きい整数であって前記整数tよりも小さい第1の乱数を成分としてゼロベクトルに付加した第1のベクトルに対応する第1の多項式を準同型暗号により暗号化して、第1の暗号化多項式を生成し、
    前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信し、
    前記第1の暗号化多項式と0より大きい整数であって前記整数tよりも小さい第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、前記公開鍵を用いて第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を準同型暗号により暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記公開鍵を用いて前記第2の乱数についての前記整数tを法とする逆元を準同型暗号により暗号化して得られる暗号化逆元を表す第3の暗号情報を前記計算装置から受信し、
    前記暗号鍵のうちの秘密鍵を用いて前記第2の暗号情報および前記第3の暗号情報を復号し、
    前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第2の演算結果を生成する、
    処理を暗号処理装置が実行することを特徴とする暗号処理方法。
  5. コンピュータに、
    格子次元である2冪の整数n、法とする素数q、及び、前記素数qよりも小さい整数tを鍵生成パラメータとして用いて生成される準同型暗号の暗号鍵のうちの公開鍵を用いて、0より大きい整数であって前記整数tよりも小さい第1の乱数を成分としてゼロベクトルに付加した第1のベクトルに対応する第1の多項式を準同型暗号により暗号化して、第1の暗号化多項式を生成し、
    前記第1の暗号化多項式を表す第1の暗号情報を端末装置に送信し、
    前記第1の暗号化多項式と0より大きい整数であって前記整数tよりも小さい第2の乱数との乗算結果に対して、第2のベクトルに0を成分として付加した第3のベクトルに対応する第2の多項式を加算した第2の暗号化多項式と、前記公開鍵を用いて第4のベクトルに0を成分として付加した第5のベクトルに対応する第3の多項式を準同型暗号により暗号化した第3の暗号化多項式とから算出される、前記第5のベクトルと前記第2のベクトルに前記第1の乱数と前記第2の乱数との乗算結果を成分として付加した第6のベクトルとの第1の演算結果を含む第4の暗号化多項式を表す第2の暗号情報を計算装置から受信するとともに、前記公開鍵を用いて前記第2の乱数についての前記整数tを法とする逆元を準同型暗号により暗号化して得られる暗号化逆元を表す第3の暗号情報を前記計算装置から受信し、
    前記暗号鍵のうちの秘密鍵を用いて前記第2の暗号情報および前記第3の暗号情報を復号し、
    前記第2の暗号情報の復号結果と前記第3の暗号情報の復号結果とに基づいて、前記第2のベクトルと前記第4のベクトルとの第2の演算結果を生成する、
    処理を実行させる暗号処理プログラム。
JP2015047742A 2015-03-10 2015-03-10 暗号処理装置、暗号処理方法、および暗号処理プログラム Active JP6459658B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015047742A JP6459658B2 (ja) 2015-03-10 2015-03-10 暗号処理装置、暗号処理方法、および暗号処理プログラム
US15/058,677 US9960905B2 (en) 2015-03-10 2016-03-02 Cryptographic processing device and cryptographic processing method
EP16158229.1A EP3068066B1 (en) 2015-03-10 2016-03-02 Private computation on encrypted biometric data using homomorphic encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015047742A JP6459658B2 (ja) 2015-03-10 2015-03-10 暗号処理装置、暗号処理方法、および暗号処理プログラム

Publications (2)

Publication Number Publication Date
JP2016167037A JP2016167037A (ja) 2016-09-15
JP6459658B2 true JP6459658B2 (ja) 2019-01-30

Family

ID=55521504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015047742A Active JP6459658B2 (ja) 2015-03-10 2015-03-10 暗号処理装置、暗号処理方法、および暗号処理プログラム

Country Status (3)

Country Link
US (1) US9960905B2 (ja)
EP (1) EP3068066B1 (ja)
JP (1) JP6459658B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6413598B2 (ja) * 2014-10-10 2018-10-31 富士通株式会社 暗号処理方法、暗号処理装置、及び暗号処理プログラム
FR3035986B1 (fr) * 2015-05-06 2018-07-27 Morpho Procede de generation d'une signature de message a partir d'un jeton de signature chiffre a l'aide d'une fonction de chiffrement homomorphique
FR3043807B1 (fr) * 2015-11-18 2017-12-08 Bull Sas Dispositif de validation de communication
US10333715B2 (en) * 2016-11-14 2019-06-25 International Business Machines Corporation Providing computation services with privacy
US11128462B2 (en) 2016-12-15 2021-09-21 Nec Corporation Matching system, method, apparatus, and program
WO2019014425A1 (en) * 2017-07-13 2019-01-17 Pindrop Security, Inc. SAFE PARTY WITH SEVERAL PARTIES KNOWING NO VOICE IMPRESSIONS
US10665244B1 (en) 2018-03-22 2020-05-26 Pindrop Security, Inc. Leveraging multiple audio channels for authentication
US20190318118A1 (en) * 2018-04-16 2019-10-17 International Business Machines Corporation Secure encrypted document retrieval
JP6977882B2 (ja) * 2018-05-25 2021-12-08 日本電信電話株式会社 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム
JP7259868B2 (ja) * 2018-12-12 2023-04-18 日本電気株式会社 システムおよびクライアント
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
JP7527866B2 (ja) * 2020-07-01 2024-08-05 キヤノン株式会社 プログラム、情報処理装置及び制御方法
CN112187477A (zh) * 2020-10-11 2021-01-05 桂林电子科技大学 一种虹膜保密认证方法
CN116992204B (zh) * 2023-09-26 2023-12-29 蓝象智联(杭州)科技有限公司 一种基于隐私保护的数据点乘运算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2495908A4 (en) 2009-10-29 2017-07-19 Mitsubishi Electric Corporation Data processing device
DK2634955T3 (da) * 2010-10-29 2020-02-03 Hitachi Ltd Fremgangsmåde til informationsautentifikation og informationsautentifikationssystem
JP2014126865A (ja) 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
JP6421576B2 (ja) * 2014-12-12 2018-11-14 富士通株式会社 暗号処理装置、暗号処理方法、及び暗号処理プログラム

Also Published As

Publication number Publication date
EP3068066A3 (en) 2016-12-21
EP3068066B1 (en) 2019-11-27
US9960905B2 (en) 2018-05-01
US20160269174A1 (en) 2016-09-15
EP3068066A1 (en) 2016-09-14
JP2016167037A (ja) 2016-09-15

Similar Documents

Publication Publication Date Title
JP6459658B2 (ja) 暗号処理装置、暗号処理方法、および暗号処理プログラム
JP6421576B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US11882218B2 (en) Matching system, method, apparatus, and program
US9571268B2 (en) Method and system for homomorphicly randomizing an input
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
US9860060B2 (en) Information processing method, computer-readable recording medium, and information processing apparatus
EP3038286B1 (en) Information processing method, information processing program, and information processing apparatus
US20160119119A1 (en) Compact fuzzy private matching using a fully-homomorphic encryption scheme
JP6738062B2 (ja) 暗号文照合システム、方法、および記録媒体
JP6738061B2 (ja) 暗号文照合システム、方法、および記録媒体
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP7276423B2 (ja) 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
KR101593673B1 (ko) 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치
KR101523053B1 (ko) 래티스 기반 증명가능암호 서명 시스템 및 방법
US20240356725A1 (en) Authentication system, authenticatee apparatus, authenticator apparatus, authentication method, and authentication program
WO2023032031A1 (ja) 認証システム、被認証者装置、認証者装置、認証方法、および認証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181120

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: 20181204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181217

R150 Certificate of patent or registration of utility model

Ref document number: 6459658

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150