説明

鍵生成装置、鍵生成方法、プログラム及び記録媒体

【課題】実用的な準同型暗号方式を実現する。
【解決手段】任意値生成部116が、絶対値が所定値以上となるn個(nは正の整数)の任意値λ(i=0,..,n−1)を生成する。暗号鍵生成部117は、これらを用いて、n個の任意値λ(i=0,..,n−1)の離散フーリエ変換結果に対応するn個の要素をv(i=0,..,n−1)とした場合における、n×nの巡回行列rot(v)に対して定まるn×nの行列を、準同型暗号方式の暗号鍵として生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号技術に関し、特に、準同型暗号方式の暗号鍵を生成する技術に関する。
【背景技術】
【0002】
準同型暗号(homomorphic encryption)方式とは、ある平文集合に演算を施して得られる暗号文を、その平文集合に属する各々の平文の暗号文から構成できる、という性質を持つ暗号方式である。例えば、平文集合Sに属する平文M1,M2∈Sとし、加法及び乗法について準同型な準同型暗号方式の暗号化関数をEncとすると、以下の式(1)(2)の性質が成り立つ。
【0003】
Enc(M1+M2)=Enc(M1)+Enc(M2) …(1)
Enc(M1・M2)=Enc(M1)・Enc(M2) …(2)
準同型暗号方式を用いれば、暗号文どうしの加算や乗算により、暗号文を復号することなく、加算や乗算を行った演算結果の暗号文を得ることができる。例えば、データを準同型暗号方式で暗号化しておけば、1以上の演算ゲート(以下「ゲート」)から構成される任意の演算回路(以下「回路」)にデータを入力して演算結果を得る計算を、暗号文のまま行うことができる。この性質はプログラム秘匿やデータ秘匿において非常に重要である。そのため、準同型暗号方式を構成する研究が長年行われてきた。しかしながら、加法及び乗法について準同型な準同型暗号方式の構成に成功したと認められる研究はいまだなく、近年はこのような準同型暗号方式が存在するかどうかの研究が主題であった。このような中、任意の深さの回路に適用可能で加法及び乗法について準同型な準同型暗号方式が存在することを主張する画期的な論文が発表された(非特許文献1)。なお、回路の深さとは、その回路の入力ゲートから出力ゲートまでのゲート数の最大値を意味する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】C. Gentry., "Fully Homomorphic encryption using ideal lattices", STOC 2009, pp. 169-178, 2009
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1では、十分な鍵長を確保して十分な演算時間を費やすならば理論的に機能する準同型暗号方式が存在することのみが示されるにとどまり、準同型暗号方式の実用的な構成方法は明らかにされていない。すなわち、非特許文献1の準同型暗号方式は、各平文にそれぞれ対応する暗号文間の演算結果と、各平文間の演算結果に対する暗号文との間に許容範囲内の誤差があったとしても、前者の暗号文間の演算結果を復号した結果が、後者の演算結果に対する暗号文を復号した結果と等しくなるように構成されている。そして、非特許文献1には、大きな鍵長の暗号鍵を用いることで上記の誤差を許容範囲内に収め、準同型暗号方式を構成することが示されている。ところが、非特許文献1の準同型暗号方式には、回路の深さが深くなるにつれて上記の誤差が蓄積されて大きくなる性質がある。そのため、非特許文献1の準同型暗号方式を実用的に用いるためには、回路の深さと誤差との関係について具体的な評価を行い、誤差が許容範囲を超える前に誤差を再び小さくするといった処理を行う必要がある。しかしながら、非特許文献1に開示された内容では誤差を再び小さくする処理を行うことができる鍵長や、その処理の手数は膨大と考えられ、実用的な程度にはいたっていない。
【課題を解決するための手段】
【0006】
本発明では、回路の深さと誤差との関係を評価し、その評価結果を暗号化処理や復号処理に反映させるというアプローチではなく、鍵生成処理の時点で所望の範囲に誤差を収めることが可能な暗号鍵を生成しておくというアプローチをとる。すなわち、本発明の鍵生成処理では、絶対値が所定値以上となるn個(nは正の整数)の任意値λi(i=0,..,n-1)を生成し、n個の任意値λi(i=0,..,n-1)の離散フーリエ変換結果に対応するn個の要素をv i(i=0,..,n-1)とした場合における、n×nの巡回行列
【0007】
【数1】

に対して定まるn×nの行列を、準同型暗号方式の暗号鍵として出力する。
【発明の効果】
【0008】
本発明で生成された暗号鍵を用いた場合の上記誤差の範囲は、任意値λiが採りうる範囲に依存する。よって、回路の深さに応じた適切な範囲から任意値λiを選択することで、容易に実用的な準同型暗号方式を構成することができる。
【図面の簡単な説明】
【0009】
【図1】実施形態のセキュリティシステムの全体構成を説明するための図。
【図2】実施形態のセキュリティシステムの全体構成を説明するための図。
【図3】実施形態の鍵生成装置の構成を説明するための図。
【図4】実施形態の鍵生成処理を説明するための図。
【図5】第2実施形態の鍵情報生成部の構成を説明するための図。
【図6】第2実施形態のステップS25の詳細を説明するための図。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施形態を説明する。
【0011】
〔定義〕
まず、本形態で用いる基本的な用語を定義する。
【0012】
<格子(lattice)>
格子とは、Zn中の離散的な加法的部分群を意味する。格子は、Zn中の線形独立な基底b0,b2,...,bn-1∈Znの線形結合で表現される。なお、Znはn次元(nは整数)の整数からなる整数環である。また、基底を並べたn×nの行列B=(b0,b2,...,bn-1)を基底行列と呼ぶ。
【0013】
<イデアル格子(ideal lattice)>
格子がイデアル格子であるとは、その格子と加群として同型な剰余環R=Z[x]/f(x)のイデアルが存在することである。なお、Z[x]は整数係数多項式環であり、f(x)は最高次の係数が1である(monicな)次数nの整数係数一変数多項式である。また、剰余環Rのイデアルとは、剰余環Rの加法的部分群であり、その元に対して剰余環Rの元を左右どちらから掛けても、その演算結果が当該加法的部分群の元となるものを意味する(両側イデアルと呼ぶ場合もある)。また、剰余環Rのイデアルとして最も単純なものは剰余環Rの1つの元を用いて生成される単項イデアルである。
【0014】
<巡回行列(circulant matrix)>
巡回行列(「循環行列」とも呼ばれる)とは、各行ベクトルが1つ前の行ベクトルの要素を1つ巡回させたように構成された行列である。
【0015】
剰余環Rの1つの元
V=v0+v1・x+...+vn-1・xn-1 mod f(x)
で生成される単項イデアルの元は、V, V・x,..., V・xn-1の線形結合で書ける。ただし、ベクトルv=T(v0,v1,...,vn-1)∈Znとし、T(α)をαの転置とする。本形態では、この生成系のベクトルv=T(v0,v1,...,vn-1)∈Znを並べた巡回行列を巡回行列rot(v)と表現する。特に、f(x)=xn-1のとき、巡回行列rot(v)は以下のようになる。
【0016】
【数2】

f(x)=xn-1のとき、巡回行列rot(v)は基底行列Bとなる。
【0017】
<半開基本平行体(half-open parallelepiped)>
基底行列Bに対して、
P(B)={B・T(x0,x1,...,xn-1)|-1/2≦xi≦1/2}2 …(4)
を半開基本並行体と呼ぶ。
【0018】
<格子による剰余>
基底行列Bに対応する基底で構成される格子をL(B)と表現する。ベクトルt∈Znについて、t-t'∈L(B)かつt'∈P(B)を満たすベクトルt'∈Zn
t mod B …(5)
と表現し、基底行列Bとベクトルtに対してベクトルt'を求める演算をtのBによる剰余と呼ぶ。
【0019】
<ノルム>
ベクトルαのユークリッドノルム(Euclid norm)を‖α‖と表現する。また、n次正方行列Αのスペクトルノルム(spectral norm)を‖Α‖を表現する。‖Α‖は、任意のn次元ベクトルXに対し、以下のように定義される。
【0020】
【数3】

また、n次正方行列Αのフロベニウスノルム(frobenius norm)を‖Α‖Fを表現する。‖Α‖Fは、Αのi行j列の要素をαij(0≦i,j<n)とした場合に(A=(αij)0≦i,j<n)、以下のように定義される。
【0021】
【数4】

また、n次正方行列Αの随伴行列をΑ*とし、λ|max|*・Α)をΑ*・Αの固有値の絶対値の最大値とし、λ|min|*・Α)をΑ*・Αの固有値の絶対値の最小値と表現する。この場合、
【0022】
【数5】

となることがよく知られている。また、
‖Α‖≦‖Α‖F …(9)
を満たすことがよく知られている。
【0023】
〔非特許文献1の準同型暗号方式〕
次に、本形態の前提となる非特許文献1の準同型暗号方式(以下「Gentry方式」)の一例を示す。
【0024】
まず、剰余環R=Z[x]/f(x)を定める。以下では、f(x)=xn-1の場合を例示する。また、I=(2Z)nとし、(2Z)nに属する線形独立なベクトルである基底からなる基底行列をBIとし、平文空間PをP∈P(BI)∩Znとする。さらにn次元のベクトルs=T(2,0,...,0)を定める。また、この例では、回路Copeを構成するゲートの集合をΓ=(+I, ×I)とする。ただし、この例の「+I」は、Zn上の二項加算を行いmod BIを計算するゲートを意味し、この例の「×I」は、Zn上の二項乗算を行いmod BIを計算するゲートを意味する。
【0025】
<鍵生成>
Iと互いに素なベクトルv=T(v0,v1,...,vn-1)∈Znを選択し、その巡回行列rot(v)を秘密鍵Bskとする。さらに、秘密鍵Bskのエルミート標準形(Hermite Normal Form)である行列を公開鍵Bpkとする。なお、エルミート標準形とは、正則な正方整数行列に対して整数上の行基本変形を施して得られる上三角行列である。エルミート標準形が効率的に計算できることはよく知られている(例えば、「H. Cohen., "A course in computational algebraic number theory", GTM138, Springer, 1996」参照)。
【0026】
<暗号化>
平文π∈Pに対して以下の処理が行われる。
【0027】
(1)ユークリッド・ノルム‖r‖がL以下となるようにr∈Znをランダムに選ぶ。なお、Lはセキュリティパラメータである。
【0028】
(2)φ'=π+r×s …(10)
を計算する。ただし、r×sは、rを係数とする多項式とsを係数とする多項式との乗算を意味する。
【0029】
(3)φ=φ'mod Bpk …(11)
を暗号文とする。
【0030】
<復号>
暗号文φ∈P(Bpk)∩Znに対し、以下の処理が行われる。
【0031】
(1)φ'=φ mod Bsk …(12)
(2)π=φ mod BI …(13)
を平文とする。
【0032】
<評価>
平文π1,...,πq∈P(qは正の整数)に対応する暗号文の組(φ1,...,φq)と回路Copeに対し、以下の処理が行われる。
【0033】
(1) 回路Copeのゲート+I, ×Iをそれぞれ+J, ×Jに置き換えた回路Cope'を用い、Cope'(φ1,...,φq)を計算する。ただし、「+J」は、Zn上の二項加算を行いmod Bpkを計算するゲートを意味し、この例の「×J」は、Zn上の二項乗算を行いmod Bpkを計算するゲートを意味する。また、Cope'(φ1,...,φq)は、暗号文の組(φ1,...,φq)を回路Cope'に入力して得られる回路Cope'からの出力値を示す。
【0034】
Cope'(φ1,...,φq)∈P(Bpk)∩Znをφとして式(12)(13)によって復号された値と、Cope1,...,φq)とが等しくなる確率が圧倒的であるとき、準同型暗号方式の要件を満たすと判定される。非特許文献1の[THEOREM 8]には、2≦γxの場合に回路の深さdが以下の式(14)の条件を満たすとき、この準同型暗号方式の要件が満たされることが示されている。
【0035】
【数6】

【0036】
【数7】

ρDec=sup{ρ∈RE>0|Bρ⊂P(Bsk)} …(16)
Bρ={t∈REn|‖t‖<ρ} …(17)
である。なお、
【0037】
【数8】

は、αの条件を満たすβの中で最大のものを意味する。また、sup{α}は集合αの上限を示し、RE>0は0よりも大きい実数を示し、REnはn次元の実数からなる実数環である。また、γxは任意のZnの元u,v∈Znに対して、
‖u×v‖≦γx・‖u‖・‖v‖ …(18)
となる最小の値を意味する。特に、f(x)=xn-1の場合には、
γx=√n …(19)
となる。なお、式(18)の演算子「×」の意味は式(10)と同様である。
【0038】
また、
(b0*,...,bn-1*)={(Bsk)-1}* …(20)
とおくと、
【0039】
【数9】

を満たす。なお、α*はαのエルミート共役(随伴作用素)を意味する。また、行列βに対するβ-1は、行列βの逆行列を意味する。
【0040】
〔本形態の原理〕
以上を前提とし、本形態の原理について説明する。
【0041】
式(20)のようにおいた場合、式(6)のスペクトルノルムの定義から、
【0042】
【数10】

の関係が成り立つ。また、式(7)のフロベニウスノルムの定義、及び式(9)の関係から、
【0043】
【数11】

の関係が成り立つ。よって、式(22)(23)から
【0044】
【数12】

の関係が成り立つ。また、式(8)より、
【0045】
【数13】

の関係が成り立つ。なお、式(25)の変形は、n×nの正則行列Aの固有値が逆行列A-1の固有値の逆数となることに基づく。なお、正則行列Aの固有方程式はf(t)=det(A-t・I)=0となり、その根tが固有値となる。ただし、det(α)は行列αの行列式であり、Iは単位行列である。また、逆行列A-1の固有方程式はg(t)=det(A-1-t・I)=det(t・A-1)・det((1/t)・I-A)=0となる。したがって、逆行列A-1の固有方程式はg(t)={(-t)n/det(A)}・f(1/t)=0となる。よって、正則行列Aの固有値は、正則行列Aの逆行列A-1の固有値の逆数となる。
【0046】
式(24)(25)から
【0047】
【数14】

の関係が成り立ち、さらには、
【0048】
【数15】

の関係が成り立つ。さらに、式(21)より、
【0049】
【数16】

の関係が成り立つ。なお、秘密鍵Bskが対角化可能な行列である場合、
【0050】
【数17】

の関係が成り立つ。よって、秘密鍵Bskが対角化可能な行列である場合、式(28)(29)から、
【0051】
【数18】

の関係が成り立つ。これより、秘密鍵Bskが対角化可能な行列である場合、ρDecの範囲を制御するためには、秘密鍵Bskの固有値を制御すればよいことが分る。
【0052】
一方、式(14)から、
【0053】
【数19】

の関係が成り立つ。
【0054】
特に、f(x)=xn-1の場合にはγx=√n(式(19))を満たすから、式(31)は以下のように変形できる。
【0055】
2d・log2(√n・ρEnc)≦log2ρDec …(32)
よって、f(x)=xn-1の場合には、
【0056】
【数20】

の要件を満たせば、準同型暗号方式の要件が満たされることになる。
【0057】
ここで、式(33)の要件を満たすようにρDecの範囲を制御することを考える。秘密鍵Bskが対角化可能な行列である場合、前述の式(30)の関係から
【0058】
【数21】

の関係を満たす場合には必ず式(33)を満たす。よって、秘密鍵Bskの各固有値λ(Bsk)の絶対値|λ(Bsk)|が
【0059】
【数22】

の関係を満たすように秘密鍵Bskが生成されれば、深さdの回路に対して必ず準同型暗号方式の要件が満たされることになる。また、例えば、暗号文への総当り攻撃に対する安全性を確保するために、
ρEnc≦n …(36)
とするのであれば、秘密鍵Bskの各固有値λ(Bsk)の絶対値|λ(Bsk)|が
【0060】
【数23】

の関係を満たすように秘密鍵Bskが生成されれば、深さdの回路に対して必ず準同型暗号方式の要件が満たされることになる。
【0061】
以上に例示したように、秘密鍵Bskの各固有値λ(Bsk)の範囲を制御することで、所望の深さdの回路に対して準同型暗号方式の要件を満たすGentry方式を構築できる。本形態では、絶対値が所定値以上となるn個の任意値λi(i=0,..,n-1)を選択し、それらを固有値とする巡回行列rot(v)を生成して秘密鍵Bskを生成する。
【0062】
まず、ωを1の原始n乗根とし、i行j列の要素をωi・j(0≦i,j<n)とするn×nの行列を
W=(ωi・j)0≦i,j<n …(38)
とする。この行列Wは離散フーリエ変換行列(discrete Fourier transform matrix)である。このとき、n×nの任意の巡回行列Cは、離散フーリエ変換行列Wで対角化可能である。すなわち、n×nの任意の巡回行列Cの各固有値が対角成分に並ぶn×nの対角行列をΛとした場合、
C=W・Λ・W-1 …(39)
の関係が成り立つ。これは、絶対値が所定値以上となる(例えば、λ(Bsk)=λi(i=0,..,n-1)とした式(35)や(37)を満たす)n個の任意値λi(i=0,..,n-1)を選択し、それらを固有値λi(i=0,..,n-1)とし、各固有値λi(i=0,..,n-1)が対角成分に並ぶn×nの対角行列Λを生成し、式(39)によって巡回行列Cを生成することによって、深さdの回路に対して必ず準同型暗号方式の要件を満たすような暗号鍵を生成できることを示している。
【0063】
しかし、一般に、原始n乗根ωは複素数体の元であり、式(39)で生成された巡回行列Cの要素は複素数体の元となる。このように生成された巡回行列Cは、Gentry方式の秘密鍵Bskとして用いることはできない。前述のように、Gentry方式の秘密鍵Bskとして用いることができる巡回行列は、整数要素の行列(整数要素行列)である必要があるからである。よって、本形態では、n,ωを2のべき乗からなる整数とし、
m=ωn/2+1 …(40)
とおく。このとき、ωはmを法とする剰余環Z/mZにおいて1の原始n乗根となる。このような制約のもと式(39)で生成された巡回行列Cの要素は剰余環Z/mZの元となり、それらを整数に写像することで得られる(例えば、巡回行列Cの要素を整数とみなして得られる)n×nの巡回行列は、巡回行列rot(v)(式(3))となる。このような巡回行列rot(v)は、Gentry方式の秘密鍵Bskとして用いることができる。さらに、このように生成された秘密鍵Bskのエルミート標準形を公開鍵Bpkとすることができる。これにより、所望の深さdの回路に対して準同型暗号方式の要件を満たすGentry方式の秘密鍵Bskと公開鍵Bpkとの鍵ペアが生成できる。
【0064】
また、本形態では、式(39)をそのまま計算して上述の秘密鍵Bsk及び公開鍵Bpkを求めるよりも高速に、同様な性質を持つ秘密鍵Bsk及び公開鍵Bpkを求める方法を提供する。以下にそのことを説明する。
【0065】
上述の離散フーリエ変換行列Wの逆行列W-1のi行j列の要素はω-i・j/nとなる。つまり、離散フーリエ変換行列Wの逆行列は
W-1=(ω-i・j/n)0≦i,j<n …(41)
となる。また、各固有値λi(i=0,..,n-1)が対角成分に並ぶn×nの対角行列Λのi行j列の要素はλi・δi,jとなる。なお、δi,jはクロネッカーのデルタ(Kronecker delta)関数であり、i=jのときδi,j=1となり、i≠jのときδi,j=0となる関数である。よって、W・Λ・W-1のi行g行(0≦i,g<n)の要素(W・Λ・W-1)i,g
【0066】
【数24】

となる。クロネッカーのデルタ関数δi,jの性質から、式(42)は
【0067】
【数25】

と変形できる。前述のように、式(43)は巡回行列Cのi行g列の要素となる。
【0068】
一方、T0,...,λn-1)を離散フーリエ変換した結果をT(v'0,...,v'n-1)とすると、
【0069】
【数26】

の関係が成り立つ。また、T(v'0,...,v'n-1)から構成される巡回行列C'のi行g列の要素は、
【0070】
【数27】

となる。よって、式(43)(45)より、
C'=n・(W・Λ・W-1) …(46)
の関係が成り立つ。
【0071】
ここで、T0,...,λn-1)を離散フーリエ変換し、それによって得られたT(v'0,...,v'n-1)から巡回行列C'を構成するための演算量は、W・Λ・W-1の演算量よりも小さい。また、式(46)の巡回行列C'の各固有値はn・λi(i∈{0,...,N-1})となり、それぞれ、W・Λ・W-1の各固有値λi(i∈{0,...,N-1})よりも大きい。よって、巡回行列C'の各要素を整数に写像することで得られる(例えば、回行列C'の要素を整数とみなして得られる)n×nの巡回行列をGentry方式の秘密鍵Bskとし、秘密鍵Bskのエルミート標準形を公開鍵Bpkとしても、所望の深さdの回路に対して準同型暗号方式の要件を満たすGentry方式が実現できる。また、式(46)の巡回行列C'を1/n倍した行列を用いて秘密鍵Bskや公開鍵Bpkを生成しても同様な効果を得ることができる。また、例えば、
【0072】
【数28】

又は、
【0073】
【数29】

の関係を満たすように選択されたT0,...,λn-1)を離散フーリエ変換し、それによって得られたT(v'0,...,v'n-1)から巡回行列C'を生成し、それから秘密鍵Bskや公開鍵Bpkを生成しても同様な効果を得ることができる。
【0074】
〔第1実施形態〕
次に、本発明の第1実施形態を説明する。
【0075】
<全体構成>
図1は、実施形態のセキュリティシステムの全体構成を説明するための図である。
【0076】
図1に例示するように、第1実施形態のセキュリティシステム1は、鍵生成装置11と、暗号化装置12−1〜Q(Qは正の整数)と、復号装置13とを有し、これらはネットワークを通じて通信可能に構成されている。
【0077】
鍵生成装置11は、Gentry方式の秘密鍵Bskと公開鍵Bpkとを生成する装置である。
【0078】
暗号化装置12−1〜Qは、それぞれ、平文π1,...,πq∈Pに対してGentry方式の暗号化処理を行いて暗号文φ1,...,φqを生成する公知の装置である。また、少なくとも一部の暗号化装置12−1〜Qは、各暗号文φ1,...,φqを回路Copeに入力して暗号文Cope1,...,φq)を生成する機能を備える。
【0079】
復号装置13は、暗号文Cope1,...,φq)が入力され、それらにGentry方式の復号処理を施し、平文π1,...,πq∈Pを回路Copeに入力して得られる演算結果Cope1,...,πq)を出力する公知の装置である。
【0080】
暗号化装置12−1〜Q及び復号装置13は公知の装置であるため、以下では鍵生成装置11の構成のみを説明する。
【0081】
<鍵生成装置11の構成>
図2は、実施形態の鍵生成装置の構成を説明するための図である。また、図3は、実施形態の鍵情報生成部の構成を説明するための図である。
【0082】
図2に例示するように、本形態の鍵生成装置11は、入力部111と、記憶部112と、制御部113と、設定部114,115と、任意値生成部116と、鍵情報生成部117とを有する。また、図3に例示するように、本形態の鍵情報生成部117は、離散フーリエ変換部117aと、巡回行列生成部117bと、秘密鍵生成部117cと、公開鍵生成部117dとを有する。
【0083】
鍵生成装置11は、例えば、CPU(central processing unit),RAM(random-access memory),ROM(read-only memory)等からなる公知のコンピュータ又は専用のコンピュータに所定のプログラムが読み込まれて構成される特別な装置である。入力部111は、例えば、入力インタフェースや入力ポートなどであり、記憶部112は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスク装置等から構成される記憶領域である。また、制御部113、設定部114,115、任意値生成部116及び鍵情報生成部117は、CPUに所定のプログラムが読み込まれて構成される処理部である。また、処理部の少なくとも一部が集積回路によって構成されてもよい。
【0084】
<鍵生成処理>
次に、本形態の鍵生成処理を説明する。
【0085】
図4(A)(B)は、実施形態の鍵生成処理を説明するための図である。
【0086】
鍵生成装置11は、制御部113の制御のもと、以下の鍵生成処理を実行する。
【0087】
図4(A)に例示するように、まず、鍵生成装置11(図2)の入力部111に、セキュリティパラメータである正の整数n,κと、回路Copeの深さを示す正の整数dとが入力され、これらが記憶部112に格納される。本形態の整数nは2のべき乗からなる。また、安全性の観点から、κは{2・log2(2・η-1)}/2以上の自然数であることが望ましい。なお、本形態では、準同型暗号方式の暗号鍵を生成するために、絶対値が所定値以上となるn個の任意値λi(i=0,...,n-1)を生成するが(後述)、この「所定値」が2・ηに相当する。
【0088】
次に、設定部114に整数n,dが入力され、設定部114がこれらに対応するηを設定して記憶部112に格納する(ステップS12)。
【0089】
[ηの設定方法の例示]
本形態の設定部114は、例えば、
【0090】
【数30】

の演算によってηを設定する。なお、式(10)(15)に示したように、ρEncはn次元ベクトルφ'の最大値である。ρEncは、例えば定数として設定部114に設定されている。また、式(49)の代わりに、設定部114が、
【0091】
【数31】

の演算によってηを設定してもよい。また、ρEnc≦nなのであれば、設定部114が、以下の何れかの演算によってηを設定してもよい。
【0092】
【数32】

その他、式(49)〜(52)で定まる値よりも大きな値をηとしてもよい。例えば、式(49)〜(52)で定まる値の定数倍をηとしてもよい([ηの設定方法の例示]の説明終わり)。
【0093】
次に、設定部115に整数κが入力される。設定部115は、
ω=2κ …(53)
m=ωn/2+1 …(54)
の演算によってmを設定し、記憶部112に格納する(ステップS13)。
【0094】
次に、上記のように設定されたパラメータを用いて暗号鍵の生成が行われる。なお、ステップS11からS13の処理は毎回実行される必要はない。n,κ,d,m,ηの値に変化がないのであれば、以前に行われたステップS11からS13の処理で設定されたn,κ,d,m,ηを用いて暗号鍵の生成が実行されてもよい。また、ステップS11からS13の処理で設定されるパラメータが入力部111に入力され、暗号鍵の生成に用いられてもよい。
【0095】
暗号鍵の生成を行う場合、まず、任意値生成部116にηとmとnが入力される。任意値生成部116は、絶対値が2・η(所定値)以上m未満となるn個の任意値λi(i=0,..,n-1)を生成し、記憶部112に格納する(ステップS14)。なお、演算効率の面から、任意値λiの絶対値はm未満であることが望ましい。しかし、m未満という制約を外し、絶対値が2・η以上となるn個の任意値λi(i=0,..,n-1)が選択される構成でもよい。
【0096】
次に、暗号鍵生成部117にn個の任意値λi(i=0,..,n-1)が入力される。暗号鍵生成部117は、n個の任意値λi(i=0,..,n-1)の離散フーリエ変換結果に対応するn個の要素をv i(i=0,..,n-1)とした場合における、n×nの巡回行列
【0097】
【数33】

に対して定まるn×nの行列を、準同型暗号方式の暗号鍵として生成する(ステップS15)。本形態では、準同型暗号方式の秘密鍵Bskと公開鍵Bpkとが生成される。以下に、ステップS15の詳細を例示する。
【0098】
[ステップS15の詳細の例示]
図4(B)に例示するように、本形態のステップS15では、まず、暗号鍵生成部117(図3)の離散フーリエ変換部117aに、mとn個の任意値λi(i=0,..,n-1)とが入力される。離散フーリエ変換部117aは、以下のように、mを法とする剰余環Z/mZ上の離散フーリエ変換をn個の任意値λi(i=0,..,n-1)に対して施し、n個の要素v'i∈Z/mZ (i=0,..,n-1)を生成する。なお、Wは離散フーリエ変換行列である。
【0099】
T(v'0,..,v'n-1)=W・T0,..,λn-1) …(56)
さらに、離散フーリエ変換部117aは、n個の要素v'i∈Z/mZ (i=0,..,n-1)を整数に写像したn個の要素vi∈Z (i=0,..,n-1)を生成する。なお、要素vi∈Z (i=0,..,n-1)の例は、要素v'i∈Z/mZ (i=0,..,n-1)を整数とみなした値、要素v'i∈Z/mZ (i=0,..,n-1)を整数とみなした値の定数倍値、その他、要素v'i∈Z/mZ (i=0,..,n-1)から整数へ単写した値などである。また、n個の要素vi∈Z (i=0,..,n-1)は、「n個の任意値λi(i=0,..,n-1)の離散フーリエ変換結果に対応するn個の要素」に相当し、m=ωn/2+1を法とする剰余環Z/mZ上の離散フーリエ変換をn個の任意値λi(i=0,..,n-1)に対して施すことで得られる剰余環Z/mZの要素を整数に写像した値と等しい。生成されたn個の要素vi∈Z (i=0,..,n-1)は、記憶部112に格納される(ステップS151)。
【0100】
次に、巡回行列生成部117bに、生成されたn個の要素vi(i=0,..,n-1)が入力される。巡回行列生成部117bは、n個の要素viを用い、式(55)の巡回行列rot(v)を生成し、記憶部112に格納する(ステップS152)。
【0101】
次に、秘密鍵生成部117cに、巡回行列rot(v)が入力される。秘密鍵生成部117cは、巡回行列rot(v)を秘密鍵Bskとする。或いは、密鍵生成部117cは、巡回行列rot(v)の像であるn×nの整数要素行列を秘密鍵Bskとしてもよい。なお、当該整数要素行列の固有値の絶対値の最小値は、巡回行列rot(v)の固有値の絶対値の最小値以上であるこのような整数要素行列の例は、巡回行列rot(v)の各要素を整数倍した行列などである。また、その他、巡回行列rot(v)を特定可能な情報を秘密鍵Bskとして生成してもよい。以上のように生成された秘密鍵Bskは、記憶部112に格納される(ステップS153)。
【0102】
次に、公開鍵生成部117dに秘密鍵Bskが入力される。公開鍵生成部117dは、秘密鍵Bskを用い、上記の巡回行列rot(v)のエルミート標準形、又は、上記の整数要素行列のエルミート標準形を、公開鍵Bpkとして生成する。例えば、公開鍵生成部117dは、秘密鍵Bskのエルミート標準形を公開鍵Bpkとして生成する。生成された公開鍵Bpkは、記憶部112に格納される(ステップS153)。以上の処理により、深さdの回路に対して準同型暗号方式の要件を満たすGentry方式の秘密鍵Bskと公開鍵Bpkとの鍵ペアが生成された([ステップS15の詳細の例示]の説明終わり)。
【0103】
次に、出力部118に秘密鍵Bskと公開鍵Bpkとが入力され、出力部118がこれらを出力する(ステップS16)。出力された公開鍵Bpkは、例えば、ネットワーク経由で各暗号化装置12−1〜Qに送られる。また、出力された秘密鍵Bskは、例えば、暗号化された通信路などを用いて復号装置13に送られる。
【0104】
〔第2実施形態〕
次に、本発明の第2実施形態と説明する。本形態は第1実施形態の変形例であり、n個の任意値λi(i=0,..,n-1)を対角成分に持つn×nの対角行列Λと、離散フーリエ変換行列Wと、その逆行列W-1とを用い、式(55)の巡回行列rot(v)を生成する。以下では、第1実施形態との相違点を中心に説明する。
【0105】
<全体構成>
図1を用いて第2実施形態のキュリティシステム2の全体構成を説明する。なお、第1実施形態と共通する部分については、第1実施形態と同じ参照番号を利用し、説明を省略する。図1に例示するように、第2実施形態のセキュリティシステム2は、鍵生成装置21と、暗号化装置12−1〜Q(Qは正の整数)と、復号装置13とを有し、これらはネットワークを通じて通信可能に構成されている。
【0106】
<鍵生成装置21の構成>
本形態の鍵生成装置21も、例えば、公知のコンピュータ又は専用のコンピュータに所定のプログラムが読み込まれて構成される特別な装置である。図2に例示するように、本形態の鍵生成装置21は、入力部111と、記憶部112と、制御部113と、設定部114,115と、任意値生成部116と、鍵情報生成部217とを有する。
【0107】
図5は、第2実施形態の鍵情報生成部217の構成を説明するための図である。図5に例示するように、本形態の鍵情報生成部217は、巡回行列生成部217bと、秘密鍵生成部117cと、公開鍵生成部117dとを有する。
【0108】
<鍵生成処理>
次に、図4(A)を用い、本形態の鍵生成処理を説明する。
【0109】
鍵生成装置21は、制御部113の制御のもと、以下の鍵生成処理を実行する。
【0110】
まず、第1実施形態と同様に、ステップS11〜S14の処理が実行される。ただし、本形態のステップS12で設定されるηは、例えば、式(49)(51)で定まる値、又は、式(49)(51)で定まる値よりも大きな値であることが望ましい。
【0111】
次に、暗号鍵生成部217にn個の任意値λi(i=0,..,n-1)が入力される。暗号鍵生成部217は、n個の任意値λi(i=0,..,n-1)に離散フーリエ変換を施して得られるn個の要素をv i(i=0,..,n-1)とした場合における、n×nの巡回行列rot(v)(式(55))に対して定まるn×nの行列を、準同型暗号方式の暗号鍵として生成する(ステップS25)。本形態では、準同型暗号方式の秘密鍵Bskと公開鍵Bpkとが生成される。以下に、ステップS25の詳細を例示する。
【0112】
[ステップS25の詳細の例示]
図6は、第2実施形態のステップS25の詳細を説明するための図である。
【0113】
図6に例示するように、本形態のステップS25では、巡回行列生成部117b(図5)に、mとn個の任意値λi(i=0,..,n-1)とが入力される。巡回行列生成部117bは、n個の任意値λi(i=0,..,n-1)を対角成分に持つn×nの対角行列Λと、離散フーリエ変換行列Wと、その逆行列W-1とを用い、剰余環Z/mZ上で、
rot'(v)=W・Λ・W-1 …(57)
の演算を行い、剰余環Z/mZの元を要素に持つ、n×nの巡回行列rot'(v)を生成する。次に、巡回行列生成部117bは、巡回行列rot'(v)の各要素を整数に写像したn×nの巡回行列rot(v)を生成する。なお、この場合のn×nの巡回行列rot(v)の要素の例は、巡回行列rot'(v)の要素を整数とみなした値、巡回行列rot'(v)の要素を整数とみなした値の定数倍値、その他、巡回行列rot'(v)の要素から整数へ単写した値などである。また、巡回行列rot(v)の要素は、「n個の任意値λi(i=0,..,n-1)の離散フーリエ変換結果に対応するn個の要素」に相当し、m=ωn/2+1を法とする剰余環Z/mZ上の離散フーリエ変換をn個の任意値λi(i=0,..,n-1)に対して施すことで得られる剰余環Z/mZの要素を整数に写像した値と等しい。生成されたn×nの巡回行列rot(v)は、記憶部112に格納される(ステップS252)。
【0114】
その後、第1実施形態と同様、ステップS153,S154の処理が実行される([ステップS25の詳細の例示]の説明終わり)。
【0115】
その後、第1実施形態と同様、ステップS16の処理が実行される。
【0116】
〔その他の変形例〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、第1実施形態では、ステップS151で、n個の要素v'i∈Z/mZ (i=0,..,n-1)を整数に写像したn個の要素vi∈Z (i=0,..,n-1)を生成し、ステップS152で、n個の要素viを用いて式(55)の巡回行列rot(v)を生成することとした。しかし、ステップS151でn個の要素v'i∈Z/mZ (i=0,..,n-1)をそのまま出力し、ステップS152で、n個の要素v'i∈Z/mZを用いて巡回行列rot'(v)を生成し、巡回行列rot'(v)の要素を整数に写像することで式(55)の巡回行列rot(v)を生成してもよい。
【0117】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0118】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0119】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0120】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0121】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0122】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0123】
1,2 セキュリティシステム
11、21 鍵生成装置

【特許請求の範囲】
【請求項1】
絶対値が所定値以上となるn個(nは正の整数)の任意値λi(i=0,..,n-1)を生成する任意値生成部と、
n個の前記任意値λi(i=0,..,n-1)の離散フーリエ変換結果に対応するn個の要素をv i(i=0,..,n-1)とした場合における、n×nの巡回行列
【数34】

に対して定まるn×nの行列を、準同型暗号方式の暗号鍵として出力する暗号鍵生成部と、
を有する鍵生成装置。
【請求項2】
請求項1の鍵生成装置であって、
前記任意値生成部は、
dを正の整数とし、φ'をn次元ベクトルとし、Bpkをn×nの行列からなる公開鍵とし、φ' mod Bpkを暗号文とし、当該n次元ベクトルφ'の最大値をρEncとし、
【数35】

とした場合に、絶対値が2・η以上となる前記任意値λi(i=0,..,n-1)を生成する、
ことを特徴とする鍵生成装置。
【請求項3】
請求項1又は2の鍵生成装置であって、
前記任意値生成部は、
dを正の整数とし、
【数36】

とした場合に、絶対値が2・η以上となる前記任意値λi(i=0,..,n-1)を生成する、
ことを特徴とする鍵生成装置。
【請求項4】
請求項1から3の何れかの鍵生成装置であって、
前記整数nは2のべき乗からなり、
前記要素vi(i=0,..,n-1)は、m=ωn/2+1(ωは2のべき乗からなる整数)を法とする剰余環Z/mZ上の離散フーリエ変換をn個の前記任意値λi(i=0,..,n-1)に対して施すことで得られる剰余環Z/mZの要素を整数に写像した値と等しい、
ことを特徴とする鍵生成装置。
【請求項5】
請求項4の鍵生成装置であって、
ω=2κであり、
κは、{2・log2(2・η-1)}/2以上の自然数であり、
前記ηは、dを正の整数とし、φ'をn次元ベクトルとし、Bpkをn×nの行列からなる公開鍵とし、φ' mod Bpkを暗号文とし、当該n次元ベクトルφ'の最大値をρEncとした場合における、
【数37】

の何れかである、
ことを特徴とする鍵生成装置。
【請求項6】
請求項1から5の何れかの鍵生成装置であって、
前記暗号鍵生成部は、
n個の前記任意値λi(i=0,..,n-1)に離散フーリエ変換を施し、前記要素v i(i=0,..,n-1)を生成する離散フーリエ変換部と、
前記要素vi(i=0,..,n-1)を用い、前記巡回行列rot(v)を生成する巡回行列生成部と、を含む、ことを特徴とする鍵生成装置。
【請求項7】
請求項1から6の何れかの鍵生成装置であって、
前記鍵情報は、準同型暗号方式の秘密鍵を含み、
前記暗号鍵生成部は、前記巡回行列rot(v)、又は、前記巡回行列rot(v)の像であるn×nの整数要素行列を、前記秘密鍵として出力する秘密鍵生成部を含み、
前記整数要素行列の固有値の絶対値の最小値は、前記巡回行列rot(v)の固有値の絶対値の最小値以上である、
ことを特徴とする鍵生成装置。
【請求項8】
請求項1から7の何れかの鍵生成装置であって、
前記鍵情報は、準同型暗号方式の公開鍵を含み、
前記暗号鍵生成部は、前記巡回行列rot(v)のエルミート標準形、又は、前記巡回行列rot(v)の像であるn×nの整数要素行列のエルミート標準形を、前記公開鍵として出力する公開鍵生成部を含み、
前記整数要素行列の固有値の絶対値の最小値は、前記巡回行列rot(v)の固有値の絶対値の最小値以上である、
ことを特徴とする鍵生成装置。
【請求項9】
請求項1から5の何れかの鍵生成装置であって、
前記暗号鍵生成部は、
n個の前記任意値λi(i=0,..,n-1)を対角成分とするn×nの対角行列をΛとし、n×nの離散フーリエ変換行列をWとし、当該離散フーリエ変換行列Wの逆行列をW-1とした場合における、n×nの巡回行列rot'(v)=W・Λ・W-1を用い、前記巡回行列rot(v)を生成する巡回行列生成部を含む、ことを特徴とする鍵生成装置。
【請求項10】
請求項9の鍵生成装置であって、
前記鍵情報は、準同型暗号方式の秘密鍵を含み、
前記暗号鍵生成部は、前記巡回行列rot(v)、又は、前記巡回行列rot(v)の像であるn×nの整数要素行列を、前記秘密鍵として出力する秘密鍵生成部を含み、
前記整数要素行列の固有値の絶対値の最小値は、前記巡回行列rot(v)の固有値の絶対値の最小値以上である、
ことを特徴とする鍵生成装置。
【請求項11】
請求項9又は10の鍵生成装置であって、
前記鍵情報は、準同型暗号方式の公開鍵を含み、
前記暗号鍵生成部は、前記巡回行列rot(v)のエルミート標準形、又は、前記巡回行列rot(v)の像であるn×nの整数要素行列のエルミート標準形を、前記公開鍵として出力する公開鍵生成部を含み、
前記整数要素行列の固有値の絶対値の最小値は、前記巡回行列rot(v)の固有値の絶対値の最小値以上である、
ことを特徴とする鍵生成装置。
【請求項12】
任意値生成部が、絶対値が所定値以上となるn個(nは正の整数)の任意値λi(i=0,..,n-1)を生成するステップと、
暗号鍵生成部が、n個の前記任意値λi(i=0,..,n-1)の離散フーリエ変換結果に対応するn個の要素をv i(i=0,..,n-1)とした場合における、n×nの巡回行列
【数38】

に対して定まるn×nの行列を、準同型暗号方式の暗号鍵として出力するステップと、
を有する鍵生成方法。
【請求項13】
請求項1から11の何れかの鍵生成装置としてコンピュータを機能させるためのプログラム。
【請求項14】
請求項13のプログラムを格納したコンピュータ読取可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate