JP6093719B2 - 暗号化装置、復号装置、およびプログラム - Google Patents

暗号化装置、復号装置、およびプログラム Download PDF

Info

Publication number
JP6093719B2
JP6093719B2 JP2014006695A JP2014006695A JP6093719B2 JP 6093719 B2 JP6093719 B2 JP 6093719B2 JP 2014006695 A JP2014006695 A JP 2014006695A JP 2014006695 A JP2014006695 A JP 2014006695A JP 6093719 B2 JP6093719 B2 JP 6093719B2
Authority
JP
Japan
Prior art keywords
ciphertext
natural number
encryption
unit
value
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
JP2014006695A
Other languages
English (en)
Other versions
JP2015135407A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014006695A priority Critical patent/JP6093719B2/ja
Publication of JP2015135407A publication Critical patent/JP2015135407A/ja
Application granted granted Critical
Publication of JP6093719B2 publication Critical patent/JP6093719B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号技術に関し、特に暗号文のコンパクト化に関する。
一部の暗号方式(例えば、非特許文献1,2等参照)では、鍵dk=(s,...,sn−1)∈Z について
dk =(s,2s,2,...,2m−1,...,sn−1,2sn−1,2n−1,...,2m−1n−1)∈Z nm
を考え、このdk をビット分解した列の暗号文dk が必要となる。
より一般的に平文空間をZ(例えば、Z={0,...,p−1})とし、mをpm−1<q≦pを満たす自然数とする。情報dk=(s,...,sn−1)∈Z について、
dk=(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm
を考え、このdkの各要素をp進分解した列の暗号文dkが必要になったとする。ここで、a∈Zをp進表現したときのk+1桁目の分解値<a>∈Zと表すことにする。すなわち、a=<a>+p<a>+...+pm−1<a>m−1である。dkの各要素p(ただし、i=0,...,m−1,j=0,...,n−1)をp進分解すると、要素pごとにm個の分解値<p,<p,...,<pm−1に分解される。
そのため、暗号文dkを生成するためには、i=0,...,m−1、j=0,...,n−1およびk=0,...,m−1のそれぞれについて、<pの暗号文E(<p)を用意する必要がある。すなわち、m・n回の暗号化を行ってm・n個の暗号文E(<p)を生成しなければならない。
Zvika Brakerski and Vinod Vaikuntanathan, "Lattice-based FHE as secure as PKE," Cryptology ePrint Archive, Report 2013/541, 2013. Craig Gentry, Amit Sahai, and BrentWaters, "Homomorphic encryption from learning with errors: Conceptually-simpler, asymptotically-faster, attribute-based," CRYPTO 2013, to appear, 2013.
本発明の課題は、(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmをp進分解した列の暗号文のコストを削減することである。
pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、i=0,...,m−1であり、j=0,...,n−1であり、k=0,...,m−1であり、q=pとして集合(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmの要素s=<s+p<s+...+pm−1<sm−1について分解値<s∈Zを暗号化した第1暗号文φ[j,k]=E(<s)を得、j=0,...,n−1およびk=0,...,m−1についての第1暗号文φ[j,k−i]を、k≧iを満たす<pの暗号文として出力する。
或いは、k”=0,...,m−1−αであり、αが0<α≦m−1の自然数であり、q=pm+αとして集合(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmの要素s=<s+p<s+...+pm−1<sm−1について分解値<sk”∈Zを暗号化した第1暗号文φ[j,k”]=E(<sk”)を得、j=0,...,n−1およびk”=0,...,m−1−αについての第1暗号文φ[j,k”−i]を、m−1−α≧k”≧iを満たす<pk”の暗号文として出力する。
或いは、k’=0,...,m−1+βであり、βが1以上の自然数であり、q=pm+βとして集合(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmの要素s=<s+p<s+...+pm−1+β<sm−1+βについて分解値<sk’∈Zを暗号化した第1暗号文φ[j,k’]=E(<sk’)を得、j=0,...,n−1およびk’=0,...,m−1+βについての第1暗号文φ[j,k’−i]を、k’≧iを満たす<pk’の暗号文として出力する。
本発明では、(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmをp進分解した列の暗号文のコストを削減できる。
図1Aは実施形態の暗号化装置のブロック図である。図1Bは実施形態の復号装置のブロック図である。 図2Aは第1実施形態の暗号化方法のフロー図である。図2Bは第1実施形態の復号方法のフロー図である。 図3Aは第2実施形態の暗号化方法のフロー図である。図3Bは第2実施形態の復号方法のフロー図である。 図4Aは第3実施形態の暗号化方法のフロー図である。図4Bは第3実施形態の復号方法のフロー図である。 図5Aは第1実施形態の処理を説明するための図であり、図5Bは第2実施形態の処理を説明するための図であり、図5Cは第3実施形態の処理を説明するための図である。
以下、本発明の実施形態を説明する。
[概要]
各実施形態では、pの冪乗をqとし、ベクトル(集合)dk=(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmの各要素をp進分解した列の暗号文を生成する。ただし、pは2以上の自然数(例えば、pは素数)、nは1以上の自然数(例えば、nは2以上の自然数)、mは2以上の自然数である。Zはqを法とした剰余類を表す。以下では、Zをその完全代表系{0,...,q−1}で表現する。
《q=pとする例》
まず、q=pとする例について説明する。
jを固定して、ベクトルdkの部分ベクトル(s,ps,p,...,pm−1)∈Z を考える。完全代表系{0,...,q−1}の場合、この部分ベクトルは(s mod q,ps mod q,p mod q,...,pm−1 mod q)である。p進表現の定義から、要素sは以下のように表現できる。
=<s+p<s+p<s+...+pm−1<sm−1 …(1)
q=pであるから、
mod q=p<s+pi+1<s+pi+2<s
+...+pi+m−1<sm−1 mod p
=0+p・0+...+pi−1・0
+p<s+...+pm―1<sm−1−i
となる。これを行列で表現すると以下のようになる(図5A参照)。
Figure 0006093719
例えば、p=2,m=4,q=2=16,s=11の場合には、以下のようになる。
Figure 0006093719
このように、q=pとすることで、上記式(2)のm×m行列の1行目の行ベクトル(<s,<s,<s,...,<sm−1)をi個右シフトして得られるベクトルがそのi行目の行ベクトルとなる。そのため、任意のi=0,...,m−1、j=0,...,n−1、k=0,...,m−1について、以下が成立する。
Figure 0006093719
よって、j=0,...,n−1のそれぞれについての、上記式(2)のm×m行列の1行目の行ベクトルのm個の要素<s(ただし、k=0,...,m−1)の暗号文(第1暗号文)φ[j,k]=E(<s)と、0の暗号文(第2暗号文)φ=E(0)だけで、ベクトルdk=(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nmの各要素をp進分解した列の暗号文dkを生成できる。すなわち、nm個の暗号文E(<s)と1個の暗号文E(0)だけで、暗号文dkを生成できる。暗号文E(0)を予め生成しておけば、nm個の暗号文E(<s)の生成だけで、この暗号文dkを生成できる。或いは、復号側で暗号文E(0)の復号値が0であることが既知であるならば、暗号文dkが暗号文E(0)を含まなくてもよい。
ここで、第1暗号文φ[j,k−i]はk≧iを満たす<pの暗号文Ψ[i,j,k]に対応し、第2暗号文φはk<iを満たす<pの暗号文Ψ[i,j,k]に対応する。すなわち、
k≧iならば、Ψ[i,j,k]=φ[j,k−i]
k<iならば、Ψ[i,j,k]=φ
である。従って、復号側では、j=0,...,n−1およびk=0,...,m−1について、入力された暗号文φ[j,k]を復号して復号値d[j,k]を得て、復号値d[j,k−i]を、k≧iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k](=<p)とし、0(暗号文E(0)の復号値、または既知の値)を、k<iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k](=<p)とすればよい。
《q=pm−αとする例》
次に、q=pm−αとする例について説明する。ただし、αは0<α≦m−1の自然数であり、例えば、0<α≦m−2である。この場合、式(2)に相当する行列表現は以下のようになる(図5B参照)。
Figure 0006093719
例えば、α=1,p=2,m=4,q=2=8,s=11の場合には、以下のようになる。
Figure 0006093719

例えば、α=2,p=2,m=4,q=2=4,s=11の場合には、以下のようになる。
Figure 0006093719
そのため、q=pm−αとすることで、任意のi=0,...,m−1、j=0,...,n−1、k=0,...,m−1について、以下が成立する。
Figure 0006093719
よって、j=0,...,n−1のそれぞれについての、上記式(3)のm×m行列の1行目の(m−α)個の要素<sk”(ただし、k”=0,...,m−1−α)の暗号文(第1暗号文)φ[j,k”]=E(<sk”)と、0の暗号文(第2暗号文)φ=E(0)だけで、暗号文dkを生成できる。暗号文E(0)を予め生成しておけば、n(m−α)個の暗号文E(<sk”)の生成だけで、この暗号文dkを生成できる。或いは、復号側で暗号文E(0)の復号値が0であることが既知であるならば、暗号文dkが暗号文E(0)を含まなくてもよい。
ここで、第1暗号文φ[j,k”−i]はm−1−α≧k”≧iを満たす<pk”の暗号文Ψ[i,j,k”]に対応し、第2暗号文φはk<iを満たすかm−1−α<kを満たすかm−1−α<iを満たす<pの暗号文Ψ[i,j,k]に対応する。すなわち、
m−1−α≧k”≧iならば、Ψ[i,j,k”]=φ[j,k”−i]
m−1−α<iまたはm−1−α<kまたはk<iならば、Ψ[i,j,k]=φ
である。従って、復号側では、j=0,...,n−1およびk”=0,...,m−1−αについて、入力された第1暗号文φ[j,k”]を復号して復号値d[j,k”]を得て、復号値d[j,k”−i]を、m−1−α≧k”≧iを満たすi=0,...,m−1、j=0,...,n−1およびk”=0,...,m−1−αについての復号値d[i,j,k”](=<pk”)とし、0(暗号文E(0)の復号値、または既知の値)を、k<iを満たすかm−1−α<kを満たすかm−1−α<iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k](=<p)とすればよい。
《q=pm+βとする例》
次に、q=pm+βとする例について説明する。ただし、βは1以上の自然数であり、例えば、m+β<mまたはm+β+1<mを満たす。この場合、式(2)に相当する行列表現は以下のようになる(図5C参照)。
Figure 0006093719
例えば、β=1,p=2,m=4,q=2=32,s=11の場合には、以下のようになる。
Figure 0006093719

例えば、β=3,p=2,m=4,q=2=64,s=11の場合には、以下のようになる。
Figure 0006093719
このように、q=pm+βとすることで、上記式(4)の(m+β)×m行列の1行目の行ベクトル(<s,<s,<s,...,<sm−1+β)をi個右シフトして得られるベクトルがそのi行目の行ベクトルとなる。そのため、任意のi=0,...,m−1、j=0,...,n−1、k’=0,...,m−1+βについて、以下が成立する。
Figure 0006093719
よって、j=0,...,n−1のそれぞれについての、上記式(4)のm×(m+β)行列の1行目の行ベクトルのm+β個の要素<sk’(ただし、k’=0,...,m−1+β)の暗号文(第1暗号文)φ[j,k’]=E(<sk’)と、0の暗号文(第2暗号文)φ=E(0)だけで、暗号文dkを生成できる。すなわち、n(m+β)個の暗号文E(<sk’)と1個の暗号文E(0)だけで、暗号文dkを生成できる。暗号文E(0)を予め生成しておけば、n(m+β)個の暗号文E(<sk’)の生成だけで、この暗号文dkを生成できる。或いは、復号側で暗号文E(0)の復号値が0であることが既知であるならば、暗号文dkが暗号文E(0)を含まなくてもよい。
ここで、第1暗号文φ[j,k’−i]はk’≧iを満たす<pk’の暗号文Ψ[i,j,k’]に対応し、第2暗号文φはk’<iを満たす<pk’の暗号文Ψ[i,j,k’]に対応する。すなわち、
k’≧iならば、Ψ[i,j,k’]=φ[j,k’−i]
k’<iならば、Ψ[i,j,k’]=φ
である。従って、復号側では、j=0,...,n−1およびk’=0,...,m−1+βについて、入力された暗号文φ[j,k’]を復号して復号値d[j,k’]を得て、復号値d[j,k’−i]を、k’≧iを満たすi=0,...,m−1、j=0,...,n−1およびk’=0,...,m−1+βについての復号値d[i,j,k’](=<pk’)とし、0(暗号文E(0)の復号値、または既知の値)を、k’<iを満たすi=0,...,m−1、j=0,...,n−1およびk’=0,...,m−1+βについての復号値d[i,j,k’](=<pk’)とすればよい。
以上のようにqをpの冪乗とし、暗号化方法を工夫することで暗号文の個数を削減でき、省メモリを実現できる。また、同じ暗号文を繰り返し用いることにより、キャッシュ呼び出し回数が増え、計算の高速化を実現できる。その結果、暗号文dkのコストを削減できる。
[第1実施形態]
次に、第1実施形態を詳細に説明する。第1実施形態ではq=pとして処理を行う。
<構成>
図1Aに例示するように、本形態の暗号化装置11は、p進分解部111、記憶部112、制御部113、暗号化部114,115、および暗号文出力部116を有する。図1Bに例示するように、本形態の復号装置12は、入力部121、記憶部122、制御部123、復号部124,125、および復号値生成部126を有する。暗号化装置11および復号装置12は、CPU(central processing unit)やRAM(random-access memory)等を備える汎用または専用のコンピュータに所定のプログラムを読み込むことにより構成される装置であり、それぞれ、制御部113,123の制御のもとで各処理を実行する。入力データや各部で得られたデータは、それぞれ記憶部112,122に格納され、必要に応じて読み出されてその他の処理に用いられる。暗号化装置11の記憶部112には、暗号化のための暗号鍵wが格納され、復号装置12の記憶部122には復号のための復号鍵vが格納される。共通鍵暗号方式に則って暗号化および復号が行われる場合、暗号化鍵wおよび復号鍵vは互いに等しい共通鍵である。公開鍵暗号方式に則って暗号化および復号が行われる場合、暗号化鍵wは公開鍵であり、復号鍵vは秘密鍵である。IDベース暗号方式に則って暗号化および復号が行われる場合、暗号化鍵wはIDであり、復号鍵vは秘密鍵である。関数暗号方式に則って暗号化および復号が行われる場合、暗号化鍵wはベクトルであり、復号鍵vは秘密鍵である。
<暗号化>
本形態の暗号化処理を説明する。図2Aに例示するように、暗号化装置11のp進分解部111は、暗号化対象の平文であるベクトルdk=(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm(ただし、q=p)を入力とし、要素sから分解値<s(ただし、j=0,...,n−1、k=0,...,m−1)を得、分解値<sおよび0を出力する(ステップS111)。
暗号化部114は、0および記憶部112から読み出した暗号化鍵wを入力とし、暗号化鍵wを用いて0を暗号化した暗号文(第2暗号文)φ=E(0)を得て出力する(ステップS114)。
暗号化部115は、分解値<sおよび記憶部112から読み出した暗号化鍵wを入力とし、暗号化鍵wを用いて分解値<sを暗号化した暗号文(第1暗号文)φ[j,k]=E(<s)(ただし、j=0,...,n−1、k=0,...,m−1)を得て出力する(ステップS115)。
暗号文出力部116は、暗号文φ[j,k](ただし、j=0,...,n−1、k=0,...,m−1)および暗号文φを入力とし、暗号文φ[j,k−i]をk≧iを満たす<pの暗号文として出力し、暗号文φをk<iを満たす<pの暗号文として出力する。すなわち、暗号文出力部116は、nm個の暗号文φ[j,k](ただし、j=0,...,n−1、k=0,...,m−1)と1個の暗号文φとを出力する(ステップS116)。
<復号>
本形態の復号処理を説明する。図2Bに例示するように、入力部121には暗号文φ[j,k](ただし、j=0,...,n−1、k=0...,m−1)および暗号文φが入力される(ステップS121)。
復号部124は、暗号文φおよび記憶部122から読み出した復号鍵vを入力とし、復号鍵vを用いて暗号文φを復号して0を得る(ステップS124)。
復号部125は、暗号文φ[j,k]を入力とし、第1暗号文φ[j,k]を復号して復号値d[j,k](=<s)(ただし、j=0,...,n−1、k=0...,m−1)を得る(ステップS125)。
復号値生成部126は、0および復号値d[j,k]を入力とし、復号値d[j,k−i]を、k≧iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k](=<p)とし、0を、k<iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k](=<p)として出力する(ステップS126)
[第2実施形態]
次に、第2実施形態を詳細に説明する。第2実施形態ではq=pm―αとして処理を行う。なお、以下では、第1実施形態と共通する事項については、同じ参照番号を用いて説明を簡略化する。
<構成>
図1Aに例示するように、本形態の暗号化装置21は、p進分解部211、記憶部112、制御部113、暗号化部114,215、および暗号文出力部216を有する。図1Bに例示するように、本形態の復号装置22は、入力部221、記憶部122、制御部123、復号部124,225、および復号値生成部226を有する。暗号化装置21および復号装置22は、CPUやRAM等を備える汎用または専用のコンピュータに所定のプログラムを読み込むことにより構成される装置であり、それぞれ、制御部113,123の制御のもとで各処理を実行する。入力データや各部で得られたデータは、それぞれ記憶部112,122に格納され、必要に応じて読み出されてその他の処理に用いられる。
<暗号化>
本形態の暗号化処理を説明する。図3Aに例示するように、暗号化装置21のp進分解部111は、暗号化対象の平文であるベクトルdk=(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm(ただし、q=pm―α、0<α≦m−1)を入力とし、要素sから分解値<sk”(ただし、j=0,...,n−1、k”=0,...,m−1−α)を得、分解値<sk”および0を出力する(ステップS211)。
次に、暗号化部114は、第1実施形態で説明したステップS114の処理を実行する。また、暗号化部215は、分解値<sk”および記憶部112から読み出した暗号化鍵wを入力とし、暗号化鍵wを用いて分解値<sk”を暗号化した暗号文(第1暗号文)φ[j,k”]=E(<sk”)(ただし、j=0,...,n−1、k”=0,...,m−1−α)を得て出力する(ステップS215)。
暗号文出力部216は、暗号文φ[j,k”](ただし、j=0,...,n−1、k”=0,...,m−1−α)および暗号文φを入力とし、暗号文φ[j,k”−i]をm−1−α≧k”≧iを満たす<pk”の暗号文として出力し、暗号文φをk<iを満たすかm−1−α<kを満たすかm−1−α<iを満たす<pの暗号文として出力する。すなわち、暗号文出力部216は、n(m−α)個の暗号文φ[j,k”](ただし、j=0,...,n−1、k”=0,...,m−1−α)と1個の暗号文φとを出力する(ステップS216)。
<復号>
本形態の復号処理を説明する。図3Bに例示するように、入力部221には暗号文φ[j,k”](ただし、j=0,...,n−1、k”=0...,m−1−α)および暗号文φが入力される(ステップS221)。
復号部124は、第1実施形態で説明したステップS124の処理を実行する。復号部225は、暗号文φ[j,k”]を入力とし、第1暗号文φ[j,k”]を復号して復号値d[j,k”](=<sk”)(ただし、j=0,...,n−1、k”=0...,m−1−α)を得る(ステップS225)。復号値生成部226は、0および復号値d[j,k”]を入力とし、復号値d[j,k”−i]を、m−1−α≧k”≧iを満たすi=0,...,m−1、j=0,...,n−1およびk”=0,...,m−1−αについての復号値d[i,j,k”](=<pk”)とし、0を、k<iを満たすかm−1−α<kを満たすかm−1−α<iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k](=<p)として出力する(ステップS226)
[第3実施形態]
次に、第3実施形態を詳細に説明する。第1実施形態ではq=pm+βとして処理を行う。
<構成>
図1Aに例示するように、本形態の暗号化装置31は、p進分解部311、記憶部112、制御部113、暗号化部114,315、および暗号文出力部316を有する。図1Bに例示するように、本形態の復号装置32は、入力部321、記憶部122、制御部123、復号部124,325、および復号値生成部326を有する。暗号化装置31および復号装置32は、CPUやRAM等を備える汎用または専用のコンピュータに所定のプログラムを読み込むことにより構成される装置であり、それぞれ、制御部113,123の制御のもとで各処理を実行する。入力データや各部で得られたデータは、それぞれ記憶部112,122に格納され、必要に応じて読み出されてその他の処理に用いられる。
<暗号化>
本形態の暗号化処理を説明する。図3Aに例示するように、暗号化装置31のp進分解部311は、暗号化対象の平文であるベクトルdk=(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm(ただし、q=pm+β、βは1以上の自然数、例えば、m+β<m)を入力とし、要素sから分解値<sk’(ただし、j=0,...,n−1、k’=0,...,m−1+β)を得、分解値<sk’および0を出力する(ステップS311)。
暗号化部114は、第1実施形態で説明したステップS114の処理を実行する。暗号化部315は、分解値<sk’および記憶部112から読み出した暗号化鍵wを入力とし、暗号化鍵wを用いて分解値<sk’を暗号化した暗号文(第1暗号文)φ[j,k’]=E(<sk’)(ただし、j=0,...,n−1、k’=0,...,m−1+β)を得て出力する(ステップS315)。
暗号文出力部316は、暗号文φ[j,k’](ただし、j=0,...,n−1、k’=0,...,m−1+β)および暗号文φを入力とし、暗号文φ[j,k’−i]をk’≧iを満たす<pk’の暗号文として出力し、暗号文φをk’<iを満たす<pk’の暗号文として出力する。すなわち、暗号文出力部316は、n(m+β)個の暗号文φ[j,k’](ただし、j=0,...,n−1、k’=0,...,m−1+β)と1個の暗号文φとを出力する(ステップS316)。
<復号>
本形態の復号処理を説明する。図3Bに例示するように、入力部321には暗号文φ[j,k’](ただし、j=0,...,n−1、k’=0,...,m−1+β)および暗号文φが入力される(ステップS321)。
復号部124は、第1実施形態で説明したステップS124の処理を実行する。復号部325は、暗号文φ[j,k’]を入力とし、第1暗号文φ[j,k’]を復号して復号値d[j,k’](=<sk’)(ただし、j=0,...,n−1、k’=0,...,m−1+β)を得る(ステップS325)。
復号値生成部326は、0および復号値d[j,k’]を入力とし、復号値d[j,k’−i]を、k’≧iを満たすi=0,...,m−1、j=0,...,n−1およびk’=0,...,m−1+βについての復号値d[i,j,k’](=<pk’)とし、0を、k’<iを満たすi=0,...,m−1、j=0,...,n−1およびk’=0,...,m−1+βについての復号値d[i,j,k](=<p)として出力する(ステップS326)
[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、第1から3実施形態では、暗号化部が0を暗号化して暗号文φ=E(0)を生成したが、予め暗号文φが生成されていてもよい。また、暗号化装置が0の暗号文φを出力せず、復号装置が暗号文φを復号することなく、復号値生成部が0を復号値として用いてもよい。
また、復号装置が、暗号装置から出力された暗号文φ[j,k](またはφ[j,k”]またはφ[j,k’])および暗号文φそのものを復号するのではなく、暗号文φ[j,k](またはφ[j,k”]またはφ[j,k’])および暗号文φに対して何らかの線形演算が施されたものを新たな暗号文φ[j,k](またはφ[j,k”]またはφ[j,k’])および暗号文φとし、復号処理が実行されてもよい。
また、暗号装置が暗号文φ[j,k]や暗号文φがいずれのφ[i,j,k]に対応するのかを表す情報を、暗号文φ[j,k]や暗号文φとともに出力してもよい。これにより、この対応関係の情報を持たない復号装置も復号を行うことができる。
また、暗号化装置から復号装置への暗号文の伝達はネットワーク等の伝送路を用いて行われてもよいし、可搬型記録媒体を用いて行われてもよい。用途によっては、暗号装置および復号装置が同一の装置として構成されてもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
本発明の用途に特に限定はないが、例えば、本発明を秘密鍵を平文とする暗号文を生成する用途に適用すれば、その省メモリ、省計算力を実現できる。実際的な応用として、ディスク暗号化を例示できる。例えば、ディスク暗号化ソフトであるBitLocker(登録商標)では、秘密鍵自身を公開鍵で暗号化することがある。秘密鍵を平文として暗号化する場合の安全な暗号方式として、参考文献(Isamu Teranishi, “Survey of key dependent message (KDM) security,” IEICE Fundamentals Review, 6(1):26-36, 2012.)に開示されたものがある。
また完全準同型暗号においてRefreshと呼ばれる操作をする際に、秘密鍵を平文とした暗号文を用いることがある。完全準同型暗号において、復号アルゴリズムをDとし、準同型演算評価アルゴリズムをEvalとする。鍵ペア(ek,dk)と鍵ペア(ek’,dk’)を考える。暗号文Cが平文Mを鍵ekで暗号化した暗号文であるとする。dkをek’で暗号化した暗号文dkがあれば、C’=Eval(ek’,D,(C,dk))は平文Mをek’で暗号化した暗号文に相当する。すなわち、C’をdk’で復号すると、Mが得られる。
11,21,31 暗号化装置
12,22,32 復号装置

Claims (12)

  1. pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、i=0,...,m−1であり、j=0,...,n−1であり、k=0,...,m−1であり、q=pとして集合(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm(s ,ps ,p ,...,p m−1 )∈Z
    Figure 0006093719

    と表現したときの要素s=<s+p<s+...+pm−1<sm−1について分解値<s∈Zを暗号化した第1暗号文φ[j,k]=E(<s)を得る暗号化部と、
    j=0,...,n−1およびk=0,...,m−1についてのnm個の前記第1暗号文φ[j,k]を出力する暗号文出力部と、を有し、
    前記第1暗号文φ[j,k−i]要素p =<p +p<p +...+p m−1 <p m−1 におけるk≧iを満たす<pの暗号文である、暗号化装置。
  2. 請求項1の暗号化装置であって、
    前記暗号文出力部は、0を暗号化した第2暗号文φ=E(0)を、k<iを満たす<pの暗号文として出力する、暗号化装置。
  3. pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、i=0,...,m−1であり、j=0,...,n−1であり、k=0,...,m−1であり、k”=0,...,m−1−αであり、αが0<α≦m−1の自然数であり、q=pαとして集合(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm(s ,ps ,p ,...,p m−1 )∈Z
    Figure 0006093719
    と表現したときの要素s=<s+p<s+...+pm−1<sm−1について分解値<sk”∈Zを暗号化した第1暗号文φ[j,k”]=E(<sk”)を得る暗号化部と、
    j=0,...,n−1およびk”=0,...,m−1−αについてのn(m−α)個の前記第1暗号文φ[j,k”]を出力する暗号文出力部と、を有し、
    前記第1暗号文φ[j,k”−i]要素p =<p +p<p +...+p m−1 <p m−1 におけるm−1−α≧k”≧iを満たす<pk”の暗号文である、暗号化装置。
  4. 請求項3の暗号化装置であって、
    前記暗号文出力部は、0を暗号化した第2暗号文φ=E(0)を、k<iを満たすかm−1−α<kを満たすかm−1−α<iを満たす<pの暗号文として出力する、暗号化装置。
  5. pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、i=0,...,m−1であり、j=0,...,n−1であり、k’=0,...,m−1+βであり、βが1以上の自然数であり、q=pm+βとして集合(s,ps,p,...,pm−1,...,sn−1,psn−1,pn−1,...,pm−1n−1)∈Z nm(s ,ps ,p ,...,p m−1 )∈Z
    Figure 0006093719
    と表現したときの要素s=<s+p<s+...+pm−1+β<sm−1+βについて分解値<sk’∈Zを暗号化した第1暗号文φ[j,k’]=E(<sk’)を得る暗号化部と、
    j=0,...,n−1およびk’=0,...,m−1+βについてのn(m+β)個の前記第1暗号文φ[j,k’]を出力する暗号文出力部と、を有し、
    前記第1暗号文φ[j,k’−i]要素p =<p +p<p +...+p m−1 <p m−1 におけるk’≧iを満たす<pk’の暗号文である、暗号化装置。
  6. 請求項5の暗号化装置であって、
    前記暗号文出力部は、0を暗号化した第2暗号文φ=E(0)を、k’<iを満たす<pk’の暗号文として出力する、暗号化装置。
  7. 請求項5または6の暗号化装置であって、
    m+β<mまたはm+β+1<mである、暗号化装置。
  8. 請求項1から7の何れかの暗号化装置であって、
    前記要素sから前記分解値を得るp進分解部を有し、
    前記暗号化部は、前記p進分解部で得られた前記分解値を入力として、前記第1暗号文を得る、暗号化装置
  9. q=p とした集合(s ,ps ,p ,...,p m−1 ,...,s n−1 ,ps n−1 ,p n−1 ,...,p m−1 n−1 )∈Z nm の要素p が<p +p<p +...+p m−1 <p m−1 であり、pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、j=0,...,n−1およびk=0,...,m−1について、入力されたnm個の第1暗号文φ[j,k]を復号して復号値d[j,k]=<s を得る復号部と、
    前記復号値d[j,k−i]=<s k−i を、k≧iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k]=<p とし、0を、k<iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k]=<p とする復号値生成部と、
    を有する復号装置。
  10. q=p m−α とした集合(s ,ps ,p ,...,p m−1 ,...,s n−1 ,ps n−1 ,p n−1 ,...,p m−1 n−1 )∈Z nm の要素p が<p +p<p +...+p m−1 <p m−1 であり、pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、αが0<α≦m−1の自然数であり、j=0,...,n−1およびk”=0,...,m−1−αについて、入力されたn(m−α)個の第1暗号文φ[j,k”]を復号して復号値d[j,k”]=<s k” を得る復号部と、
    前記復号値d[j,k”−i]=<s k”−i を、m−1−α≧k”≧iを満たすi=0,...,m−1、j=0,...,n−1およびk”=0,...,m−1−αについての復号値d[i,j,k”]=<p k” とし、0を、k<iを満たすかm−1−α<kを満たすかm−1−α<iを満たすi=0,...,m−1、j=0,...,n−1およびk=0,...,m−1についての復号値d[i,j,k]=<p とする復号値生成部と、
    を有する復号装置。
  11. q=p m+β とした集合(s ,ps ,p ,...,p m−1 ,...,s n−1 ,ps n−1 ,p n−1 ,...,p m−1 n−1 )∈Z nm の要素p が<p +p<p +...+p m−1 <p m−1 であり、pが2以上の自然数、nが1以上の自然数、mが2以上の自然数であり、βが1以上の自然数であり、j=0,...,n−1およびk’=0,...,m−1+βについて、入力されたn(m+β)個の第1暗号文φ[j,k’]を復号して復号値d[j,k’]=<s k’ を得る復号部と、
    前記復号値d[j,k’−i]=<s k’−i を、k’≧iを満たすi=0,...,m−1、j=0,...,n−1およびk’=0,...,m−1+βについての復号値d[i,j,k’]=<p k’ とし、0を、k’<iを満たすi=0,...,m−1、j=0,...,n−1およびk’=0,...,m−1+βについての復号値d[i,j,k’]=<p k’ とする復号値生成部と、
    を有する復号装置。
  12. 請求項1から8の何れかの号化装置、または請求項9から11の何れかの復号装置としてコンピュータを機能させるためのプログラム。
JP2014006695A 2014-01-17 2014-01-17 暗号化装置、復号装置、およびプログラム Active JP6093719B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014006695A JP6093719B2 (ja) 2014-01-17 2014-01-17 暗号化装置、復号装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014006695A JP6093719B2 (ja) 2014-01-17 2014-01-17 暗号化装置、復号装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015135407A JP2015135407A (ja) 2015-07-27
JP6093719B2 true JP6093719B2 (ja) 2017-03-08

Family

ID=53767279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014006695A Active JP6093719B2 (ja) 2014-01-17 2014-01-17 暗号化装置、復号装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP6093719B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6430337B2 (ja) 2015-07-06 2018-11-28 株式会社ニューフレアテクノロジー 気相成長方法および気相成長装置
CN108476136B (zh) 2016-01-18 2021-01-05 三菱电机株式会社 密文转换装置、计算机能读取的记录介质和密文转换方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5448863B2 (ja) * 2010-01-15 2014-03-19 日本電信電話株式会社 鍵生成装置、鍵生成方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
JP2015135407A (ja) 2015-07-27

Similar Documents

Publication Publication Date Title
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
JP5966877B2 (ja) 復号方法、復号プログラム、復号装置、および鍵生成方法
US9521124B2 (en) Secure computation using a server module
KR101861089B1 (ko) 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
CN107294697A (zh) 基于明文相似矩阵的对称全同态加密方法
JP2014126866A (ja) 暗号処理装置および方法
JP6194886B2 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
CN102187617B (zh) 密码***
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
WO2020110800A1 (ja) 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム
JP2019215391A (ja) 復号装置、暗号化装置及び暗号システム
KR20130024143A (ko) 래티스 환경을 기반으로 한 대리 재암호화 방법 및 장치
JP6093719B2 (ja) 暗号化装置、復号装置、およびプログラム
JP7117964B2 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
JP2019200382A (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
WO2022054130A1 (ja) 暗号システム、方法及びプログラム
JP6189788B2 (ja) 鍵生成装置、再暗号化装置、およびプログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP6952337B2 (ja) 暗号化システム
JP2013098722A (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号方法、およびプログラム
JP5103407B2 (ja) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
JP4658150B2 (ja) 暗号化方法および復号方法
JP2013105065A (ja) セキュリティシステム、暗号化装置、復号装置、再暗号化装置、難読化装置、それらの方法、及びプログラム
US20220321329A1 (en) Dictionary-attack-resistant database encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170123

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170213

R150 Certificate of patent or registration of utility model

Ref document number: 6093719

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150