欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

簽名生成裝置和簽名驗證裝置的制作方法

文檔序號:7635389閱讀:327來源:國知局
專利名稱:簽名生成裝置和簽名驗證裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及作為信息安全技術(shù)的加密技術(shù),特別涉及進(jìn)行基于數(shù)字簽名的處理的簽名生成裝置和簽名驗證裝置。
背景技術(shù)
作為防止從接收裝置向發(fā)送裝置發(fā)送數(shù)據(jù)時確定發(fā)送人及篡改數(shù)據(jù)的技術(shù),有作為一種公鑰(公開鍵)加密的數(shù)字簽名方式。
在這種數(shù)字簽名方式中,發(fā)送裝置對于要發(fā)送的數(shù)據(jù),使用發(fā)送裝置的私鑰(秘密鍵)作成簽名數(shù)據(jù),并將簽名數(shù)據(jù)與要發(fā)送的數(shù)據(jù)一起向接收裝置發(fā)送。接收裝置使用發(fā)送裝置的公鑰來驗證簽名數(shù)據(jù),判定是否被篡改(例如,參照非專利文獻(xiàn)1)。再有,由公鑰難以計算私鑰的值。
最近,作為可高速處理的公鑰加密,提出了NTRU(NTRUCryptosystems Inc.的注冊商標(biāo))加密(例如,參照非專利文獻(xiàn)2)。這種NTRU加密與在某個模下進(jìn)行冪乘余數(shù)運(yùn)算的RSA(Rivest ShamirAdleman)加密或進(jìn)行橢圓曲線上的點的數(shù)乘(scalar倍)運(yùn)算的橢圓曲線加密相比,通過可進(jìn)行高速運(yùn)算的多項式運(yùn)算來進(jìn)行加密和解密。因此,NTRU加密與現(xiàn)有的公鑰加密相比可高速地進(jìn)行處理,即使是軟件的處理,也可在實用的時間內(nèi)進(jìn)行處理。
即,在公鑰加密中使用了NTRU加密的加密系統(tǒng)中,與現(xiàn)有的使用了公鑰加密的加密通信系統(tǒng)相比,具有發(fā)送裝置及接收裝置的處理可高速地進(jìn)行的優(yōu)點。
可是,上述非專利文獻(xiàn)2中提出的方式是將數(shù)據(jù)加密的保密加密方式,但其后提出了NTRU加密的數(shù)字簽名方式(例如,參照非專利文獻(xiàn)3)。這種數(shù)字簽名方式因解讀法的出現(xiàn)等,其方式被變更過幾次。
以下,簡單地說明有關(guān)被稱為NTRUSign的數(shù)字簽名方式(以下,稱為NTRUSign簽名方式)(例如,參照專利文獻(xiàn)1和非專利文獻(xiàn)4)。
<NTRUSign簽名方式>
(1)NTRUSign簽名方式的參數(shù)在NTRUSign簽名方式中,使用作為非負(fù)整數(shù)的參數(shù)的N、q、df、dg、Normbound。以下,說明這些參數(shù)的含義。
(i)參數(shù)NNTRUSign簽名方式是通過多項式的運(yùn)算進(jìn)行簽名生成及簽名驗證的數(shù)字簽名方式。NTRUSign簽名方式中處理的多項式的次數(shù)由上述參數(shù)N決定。
NTRUSign簽名方式中處理的多項式,是對于上述參數(shù)N的N-1次以下的整數(shù)系數(shù)多項式,例如N=5時,是X^4+X^3+1等的多項式。其中,‘X^a’意味著X的a次冪。此外,公鑰h和簽名s都被作為N-1次以下的多項式來表現(xiàn)。而私鑰是四個N-1次以下的多項式對(f,g,F(xiàn),G)。即,f,g,F(xiàn),G都是N-1次以下的多項式。再有,在下文中,有時還有將四個多項式組成的組(f,g,F(xiàn),G)捕捉為(f,g)、(F,G)的進(jìn)一步的對,并表示為{(f,g),(F,G)}的情況。
然后,多項式運(yùn)算對于上述參數(shù)N,使用X^N=1的關(guān)系式進(jìn)行運(yùn)算,以使運(yùn)算結(jié)果始終為N-1次以下的多項式。例如,在N=5的情況下,多項式X^4+X^2+1和多項式X^3+X之積,在多項式和多項式之積為×,整數(shù)和多項式之積(或整數(shù)和整數(shù)之積)為·時,根據(jù)X^5=1的關(guān)系,進(jìn)行運(yùn)算,如(X^4+X^2+1)×(X^3+X)=X^7+2·X^5+2·X^3+X=X^2·1+2·1+2·X^3+X=2·X^3+X^2+X+2那樣,以始終成為N-1次以下的多項式。
再有,在NTRUSign簽名方式中,N-1次的多項式a=a_0+a_1·X+a_2·X^2+…+a_(N-1)·X^(N-1)被視為與矢量(a_0,a_1,a_2,…,a_(N-1))相同。其中,a_0,a_1,a_2,…,a_(N-1)是多項式a的系數(shù),為整數(shù)。
(ii)參數(shù)q在NTRUSign簽名方式中,使用2以上的整數(shù)的參數(shù)q。在NTRUSign簽名方式中出現(xiàn)的多項式的系數(shù)取以q為模的余數(shù)。
(iii)參數(shù)df,dg在NTRUSign簽名方式中生成作為處理的私鑰的一部分的多項式f及作為公鑰的多項式h時,多項式f與一起使用的多項式g的選擇方法分別由參數(shù)df、dg決定。
首先,將多項式f選擇為df個系數(shù)為1,并且其他系數(shù)為0。即,多項式f是N-1次以下的多項式,將其選擇為從0次(常數(shù)項)至N-1次有N個系數(shù),但在該N個系數(shù)中,df個系數(shù)為1,并且(N-df)個系數(shù)為0。然后,將多項式g選擇為dg個系數(shù)為1,并且其他系數(shù)為0。
(iv)參數(shù)Normbound在NTRUSign簽名方式中,計算由簽名s形成的2·N維的矢量和作為消息數(shù)據(jù)(以下,簡稱為消息)的散列值的2·N維的矢量之間的距離,通過該距離判定簽名s是否為正確的簽名。Normbound是在該判定時使用的閾值。即,如果上述距離低于Normbound,則簽名s作為正確的簽名被受理,如果在Normbound以上,則作為不正確的簽名而被拒絕。再有,在非專利文獻(xiàn)4中,作為NTRUSign簽名方式的參數(shù)的例子,列舉有(N,q,df,dg,Normbound)=(251,128,73,71,310)的例子。
(2)消息的散列值、范數(shù)(ノルム)及矢量間的距離在NTRUSign簽名方式中,形成對于消息的散列值的簽名。消息的散列值是N次的多項式的對,被視為與2·N維的矢量相同。再有,關(guān)于從消息求散列值的散列函數(shù),非專利文獻(xiàn)1十分詳盡。
在NTRUSign簽名方式中,在簽名驗證中使用矢量間的距離,在這樣的距離的計算中使用范數(shù)(Centeredノルム中心范數(shù))。以下,表示范數(shù)和矢量間的距離的定義。
將多項式a=a_0+a_1·X+a_2·X^2+…+a_(N-1)·X^(N-1)的范數(shù)||a||如以下那樣定義。
||a||=sqrt((a_0-μ)^2+(a_1-μ)^2+…+(a_(N-1)-μ)^2)
μ(1/N)·(a_0+a_1+a_2+…+a_(N-1))其中,sqrt(x)表示x的平方根。
將多項式a,b的對(a,b)的范數(shù)||(a,b)||如以下那樣定義。
||(a,b)||=sqrt(||a||^2+||b||^2)多項式a,b的對(a,b)和c,d的對(c,d)之間的距離(矢量間的距離)按||(c-a,d-b)||來定義。
(3)NTRUSign簽名方式的密鑰生成在NTRUSign簽名方式中,如上述那樣,使用參數(shù)df,dg隨機(jī)地生成多項式f、多項式g。然后,如非專利文獻(xiàn)4中記載的那樣,使用Fq×f=1(mod q)組成的多項式Fq,通過h=Fq×g(mod q)生成多項式h。而且,求滿足下式的范數(shù)小的多項式F、G。
f×G-g×F=q其中,設(shè)私鑰為{(f,g),(F,G)},公鑰為h。私鑰是用于生成簽名的密鑰,也被稱為簽名生成密鑰。而公鑰是用于驗證簽名的密鑰,也被稱為簽名驗證密鑰。
此時,x=y(tǒng)(mod q)是將多項式y(tǒng)的第i次的系數(shù)除以模q時的余數(shù)作為多項式x的第i次的系數(shù),以使余數(shù)被限制在從0至q-1的范圍的運(yùn)算(0≤i≤N-1)。即,是將對多項式y(tǒng)的各系數(shù)進(jìn)行了(mod q)運(yùn)算、以限制在從0至(q-1)的范圍的多項式,作為多項式x的運(yùn)算。
(4)NTRUSign簽名方式的簽名生成在NTRUSign簽名方式的簽名生成中,計算作為簽名對象的消息m的簽名s。首先,計算作為對于消息m的散列值的2·N維的矢量(m1,m2)(m1及m2為N次多項式)。
使用該2·N維的矢量(m1,m2)和私鑰{(f,g),(F,G)},計算滿足下式的多項式a,b,A,B。
G×m1-F×m2=A+q×B-g×m1+f×m2=a+q×b其中,將A,a的系數(shù)取為除以模q時的余數(shù)限制在從<-q/2>+1至<q/2>的范圍的余數(shù)。即,在除以模q時的余數(shù)為從<q/2>至q-1的情況下,減去q,從而進(jìn)行調(diào)整以限制在上述范圍。這里,<x>表示在x以下的數(shù)之中最大的數(shù)。例如,<-1/2>=-1。
接著,通過下式,計算多項式s,t,并將多項式s作為簽名輸出。
s=f×B+F×b(mod q)t=g×B+G×b(mod q)圖1是用于說明簽名s的生成方法的說明圖。
在NTRUSign簽名方式中,在通過私鑰矩陣{(f,g),(F,G)}擴(kuò)展的2·N維點陣上,對應(yīng)于消息m的散列值H(m)=(m1,m2)的最接近點陣點P通過上述的式s=f×B+F×b(mod q)和t=g×B+G×b(mod q)而被導(dǎo)出。即,最靠近(m1,m2)的點陣點作為最接近點陣點P而被發(fā)現(xiàn)。然后,在表示該最接近點陣點P的簽名矢量(s,t)中,僅多項式s被作為簽名來處理。
(5)NTRUSign簽名方式的簽名驗證在NTRUSign簽名方式的簽名驗證中,對簽名s是否是作為簽名對象的消息m正確的簽名進(jìn)行驗證。首先,計算作為對應(yīng)于消息m的散列值的2·N維的矢量(m1,m2)。
使用公鑰h,通過下式,計算多項式t。
t=s×h(mod q)求2·N維矢量(s,t)和(m1,m2)之間的距離,檢查是否是低于Normbound。如果低于Normbound,則判定為簽名s正確從而受理該簽名s。如果在Normbound以上,則判定為簽名s非法而拒絕該簽名s。
圖2是用于說明簽名s的驗證方法的說明圖。
在NTRUSign簽名方式中,通過使用了簽名s和公鑰h的上述式t=s×h(mod q),導(dǎo)出由公鑰矩陣{(1,h),(0,q)}擴(kuò)展的2·N維點陣上的點陣點P(s,t)。這里,在這樣的2·N維點陣上,判定相應(yīng)于消息m的散列值H(m)=(m1,m2)是否在以點陣點P(s,t)為中心的半徑=Normbound的超球內(nèi)。如果在超球內(nèi),則簽名s被判定為正確并被受理,如果不在超球內(nèi),簽名s被判定為非法而被拒絕。
專利文獻(xiàn)1國際公開第03/050998號小冊子非專利文獻(xiàn)1岡本龍明、山本博資“現(xiàn)代暗號”(現(xiàn)代加密)、産業(yè)図書(1997年)非專利文獻(xiàn)2J.Hoffstein,J.Pipher,and J.H.Silverman,“NTRUA ring based public key cryptosystem”,Lecture Notes in ComputerScience,1423,pp.267-288,Springer-Verlag,1988.
非專利文獻(xiàn)3J.Hoffstein,J.Pipher and J.Silverman,“NSSAnNTRU Lattice-Based Signature Scheme,”Advances in Cryptoplogy-Eurocrypt’01,LNCS,Vo1.2045,pp.123-137,Springer-Verlag,2001非專利文獻(xiàn)4J.Hoffstein,N.Graham,J.Pipher,J.Silverman andW.Whyte,“NTRUSignDigital Signatures Using the NTRU Lattice,”CT-RSA’03,LNCS,Vol.2612,pp.122-140,Springer-Verlag,2003非專利文獻(xiàn)5S.Min,G.Yamamoto and K.Kim,“On thesecurity of NTRUSign signature scheme”,SCIS2004但是,在上述專利文獻(xiàn)1和非專利文獻(xiàn)4的NTRUSign簽名方式中,存在可以偽造簽名的問題。
即,在上述現(xiàn)有的NTRUSign簽名方式中,即使在正規(guī)的簽名s上加上范數(shù)0矢量,相加了該范數(shù)0矢量的簽名s也可能被驗證為正確的簽名。
范數(shù)0矢量是范數(shù)為0的矢量,例如,所有的元素為1的矢量是范數(shù)0矢量。
全部的元素為1的矢量v0=(1,1,…,1)的范數(shù),根據(jù)范數(shù)的定義,為||v0 ||=sqrt((1-μ)^2+(1-μ)^2+…+(1-μ)^2)。
這里,由于μ=(1/N)·(1+1+1+…+1)=1,所以||v0||=sqrt((1-1)^2+(1-1)^2+…+(1-1)^2)=0。
即,在簽名s上相加范數(shù)0矢量而生成的偽造簽名(s+v0)的范數(shù)與簽名s的范數(shù)相等,所以(s+v0,t)和(m1,m2)的距離,與(s,t)和(m1,m2)之間距離相等。其結(jié)果,該偽造簽名(s+v0)在簽名驗證時被驗證為正確的簽名。以下,將這樣的范數(shù)0矢量的相加造成的對簽名s的攻擊稱為‘范數(shù)0矢量偽造攻擊’。再有,對于這樣的攻擊,在非專利文獻(xiàn)5中被指出。

發(fā)明內(nèi)容
因此,本發(fā)明鑒于這樣的問題而完成,其目的在于提供能夠防止范數(shù)0矢量偽造攻擊的簽名生成裝置和簽名驗證裝置。
為了實現(xiàn)上述目的,本發(fā)明的簽名生成裝置使用簽名方式來生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述簽名生成裝置包括簽名生成單元,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名變換單元,變換所述簽名數(shù)據(jù)的形式,以使所述簽名數(shù)據(jù)的范數(shù)不改變、而所述簽名數(shù)據(jù)中包含的N個元素中某一個對象元素成為預(yù)先確定的值。
由此,由NTRUSign簽名方式生成的簽名數(shù)據(jù)的形式被變換為其范數(shù)不變化、對象元素成為預(yù)先確定的值的形式,所以取得該簽名數(shù)據(jù)和消息數(shù)據(jù)的簽名驗證裝置,對于該簽名數(shù)據(jù),可以進(jìn)行利用NTRUSign簽名方式的簽名驗證,并且,根據(jù)該簽名數(shù)據(jù)的形式,可以容易地判定是否試圖進(jìn)行了范數(shù)0矢量偽造攻擊。例如,在該簽名數(shù)據(jù)的形式被變換,以使簽名數(shù)據(jù)中包含的N個元素中的第一個元素為0的情況下,在對該簽名數(shù)據(jù)試圖范數(shù)0矢量偽造攻擊時,該對象元素成為與0不同的值。因此,簽名驗證裝置僅判別該簽名數(shù)據(jù)的第一個元素是否為0,就可以簡單地防止范數(shù)0矢量偽造攻擊。其結(jié)果,可以提高數(shù)字簽名的安全性。
此外,所述簽名生成裝置的特征在于,還包括散列值生成單元,生成用于表示對于所述消息數(shù)據(jù)的散列值的兩個N維排列,對所述N維排列的每個,變換所述各N維排列的形式,以使該N維排列的范數(shù)不改變、而該N維排列中包含的N個元素中的某一個對象元素成為預(yù)先確定的值,所述簽名生成單元使用所述組{f,g,F(xiàn),G}的各個元的形式以該元中包含的N個元素中的某一個對象元素成為預(yù)先確定的值的方式被調(diào)整的所述私鑰、以及通過所述散列值生成單元而被變換了形式的散列值,來生成所述簽名數(shù)據(jù)。
由此,表示散列值的兩個N維排列和表示私鑰的四個元f,g,F(xiàn),G分別使包含于它們中的對象元素為預(yù)先確定的值,所以即使對它們相加范數(shù)0矢量,也可以容易地檢測該加法行為,可以可靠地提高數(shù)字簽名的安全性。
此外,本發(fā)明的簽名驗證裝置使用簽名方式來驗證對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、 g以及作為f(modq)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述簽名驗證裝置包括簽名形式判定單元,判定所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素是否為預(yù)先確定的值,并在判定為不是預(yù)先確定的值時,將所述簽名數(shù)據(jù)作為非法數(shù)據(jù)來處理;以及簽名驗證單元,使用所述公鑰來驗證作為所述環(huán)R的元的所述簽名數(shù)據(jù)。
例如,在該簽名數(shù)據(jù)的形式被變換,以使由NTRUSign簽名方式生成的簽名數(shù)據(jù)的范數(shù)不變化、對象元素為預(yù)先確定的值的情況下,簽名驗證裝置對于該簽名數(shù)據(jù),可以進(jìn)行利用NTRUSign簽名方式的簽名驗證,并且,根據(jù)該簽名數(shù)據(jù)的形式,可以容易地判定是否試圖進(jìn)行了范數(shù)0矢量偽造攻擊。例如,在該簽名數(shù)據(jù)的形式被變換,以使簽名數(shù)據(jù)中包含的N個元素中的第一個元素為0的情況下,在試圖對該簽名數(shù)據(jù)進(jìn)行范數(shù)0矢量偽造攻擊時,該對象元素成為與0不同的值。因此,簽名驗證裝置僅判別該簽名數(shù)據(jù)的第一個元素是否為0,就可以簡單地防止范數(shù)0矢量偽造攻擊。其結(jié)果,可以提高簽名數(shù)據(jù)的安全性。
此外,所述簽名驗證單元的特征在于,包括散列值生成單元,生成用于表示對于所述消息數(shù)據(jù)的散列值的兩個N維排列,并對所述N維排列的每個,變換所述各N維排列的形式,以使該N維排列的范數(shù)不改變、而該N維排列的元素中的某一個對象元素成為預(yù)先確定的值;簽名矢量生成單元,將以所述元h中包含的N個元素中的某一個對象元素成為預(yù)先確定的值的方式而被調(diào)整形式的所述公鑰和所述簽名數(shù)據(jù)之積,作為所述環(huán)R的元t來計算,通過變換所述元t的形式,以使所述元t的范數(shù)不變化、而所述元t中包含的N個元素中的某一個對象元素成為預(yù)先確定的值,從而生成由形式被變換過的所述元t和簽名數(shù)據(jù)構(gòu)成的簽名矢量;以及距離判定單元,基于所述簽名矢量生成單元生成的簽名矢量和通過所述散列值生成單元而被變換了形式的散列值之間的距離,驗證所述簽名數(shù)據(jù)。
由此,由于表示散列值的兩個N維排列、表示公鑰的元h、以及元t分別使包含于它們中的對象元素為預(yù)先確定的值,所以即使對它們相加范數(shù)0矢量,也可以容易地檢測該加法行為,可以可靠地提高數(shù)字簽名的安全性。
再有,本發(fā)明不僅可以作為這樣的簽名生成裝置和簽名驗證裝置來實現(xiàn),也可以作為其方法或程序、存儲該程序的存儲媒體、集成電路來實現(xiàn)。
發(fā)明效果本發(fā)明的簽名生成裝置和簽名驗證裝置具有可以防止范數(shù)0矢量偽造攻擊的作用效果,其價值很大。


圖1是用于說明簽名的生成方法的說明圖。
圖2是用于說明簽名的驗證方法的說明圖。
圖3是表示本發(fā)明的實施方式的數(shù)字簽名系統(tǒng)的結(jié)構(gòu)的方框圖。
圖4是表示本發(fā)明的實施方式的簽名生成部的結(jié)構(gòu)的方框圖。
圖5是表示本發(fā)明的實施方式的簽名生成部的動作的流程圖。
圖6是表示本發(fā)明的實施方式的簽名生成裝置的整體動作的流程圖。
圖7是表示本發(fā)明的實施方式的簽名驗證部的結(jié)構(gòu)的方框圖。
圖8是表示本發(fā)明的實施方式的簽名驗證部的動作的流程圖。
圖9是表示本發(fā)明的實施方式的簽名驗證裝置的整體動作的流程圖。
圖10是表示本發(fā)明的實施方式的變形例1的簽名生成部的動作的流程圖。
圖11是表示本發(fā)明的實施方式的變形例1的簽名驗證部的動作的流程圖。
圖12是表示本發(fā)明的實施方式的變形例2的簽名生成部的動作的流程圖。
圖13是表示本發(fā)明的實施方式的變形例2的簽名驗證部的動作的流程圖。
標(biāo)號說明100數(shù)字簽名系統(tǒng)110簽名生成裝置111發(fā)送部112私鑰存儲部113公鑰證書存儲部114簽名生成部115簽名數(shù)據(jù)集生成部120簽名驗證裝置
121接收部122CA公鑰存儲部123簽名數(shù)據(jù)集存儲部124簽名驗證部130通信線路1141散列值生成部1142簽名矢量生成部1143簽名變換部1241散列值生成部1242簽名形式判定部1243簽名矢量生成部1244距離判定部具體實施方式
(實施方式)本發(fā)明的實施方式的改進(jìn)NTRUSign簽名方式是改進(jìn)了現(xiàn)有的NTRUSign簽名方式的簽名方式,是生成簽名并進(jìn)行驗證以便能夠防止范數(shù)0矢量偽造攻擊的簽名方式。
以下,詳細(xì)地說明有關(guān)本實施方式的改進(jìn)NTRUSign簽名方式。
<改進(jìn)NTRUSign簽名方式>
(1)改進(jìn)NTRUSign簽名方式的參數(shù)在改進(jìn)NTRUSign簽名方式中,使用非負(fù)整數(shù)的參數(shù)N、q、df、dg、Normbound。這些參數(shù)的定義與現(xiàn)有的NTRUSign簽名方式相同。以下,說明這些參數(shù)的含義。
(i)參數(shù)N改進(jìn)的NTRUSign簽名方式是通過多項式的運(yùn)算進(jìn)行簽名生成及簽名驗證的數(shù)字簽名方式。改進(jìn)NTRUSign簽名方式中處理的多項式的次數(shù)由上述參數(shù)N決定。
改進(jìn)NTRUSign簽名方式中處理的多項式是對于上述參數(shù)N的N-1次以下的整數(shù)系數(shù)多項式,例如N=5時,是X^4+X^3+1等的多項式。其中,‘X^a’意味著X的a次冪。此外,公鑰h和簽名s都被作為N-1次以下的多項式來表現(xiàn)。此外,私鑰是四個N-1次以下的多項式對{f,g,F(xiàn),G}。即,f、g、F、G都是N-1次以下的多項式。再有,以下,有時還有將四個多項式組成的組(f,g,F(xiàn),G)捕捉為進(jìn)一步的(f,g)、(F,G)的對,并表示為{(f,g),(F,G)}的情況。
然后,多項式運(yùn)算對于上述參數(shù)N,使用X^N=1的關(guān)系式進(jìn)行運(yùn)算,以使運(yùn)算結(jié)果始終為N-1次以下的多項式。例如,在N=5的情況下,多項式X^4+X^2+1和多項式X^3+X之積,在多項式和多項式之積為×,整數(shù)和多項式之積(或整數(shù)和整數(shù)之積)為·時,根據(jù)X^5=1的關(guān)系,進(jìn)行運(yùn)算,如(X^4+X^2+1)×(X^3+X)=X^7+2·X^5+2·X^3+X=X^2·1+2·1+2·X^3+X=2·X^3+X^2+X+2那樣,始終成為N-1次以下的多項式。
再有,在改進(jìn)NTRUSign簽名方式中,N-1次的多項式a=a_0+a_1·X+a_2·X^2+…+a_(N-1)·X^(N-1)也被視為與矢量(a_0,a_1,a_2,…,a_(N-1))相同。其中,a_0,a_1,a_2,…,a_(N-1)是多項式a的系數(shù),為整數(shù)。
(ii)參數(shù)q在改進(jìn)NTRUSign簽名方式中,使用2以上的整數(shù)的參數(shù)q。在改進(jìn)NTRUSign簽名方式中出現(xiàn)的多項式的系數(shù)取以q為模的余數(shù)。
(iii)參數(shù)df,dg在改進(jìn)NTRUSign簽名方式中生成作為處理的私鑰的一部分的多項式f及作為公鑰的多項式h時,多項式f與一起使用的多項式g的選擇方法分別由參數(shù)df、dg決定。
首先,將多項式f選擇為df個系數(shù)為1,并且其他系數(shù)為0。即,多項式f是N-1次以下的多項式,將其選擇為從0次(常數(shù)項)至N-1次有N個系數(shù),但在該N個系數(shù)中,df個系數(shù)為1,并且(N-df)個系數(shù)為0。然后,將多項式g選擇為dg個系數(shù)為1,并且其他系數(shù)為0。
(iv)參數(shù)Normbound在改進(jìn)NTRUSign簽名方式中,計算后述的由簽名s形成的2·N維的矢量和作為消息數(shù)據(jù)(以下,簡稱為消息)的散列值的2·N維的矢量之間的距離,通過該距離判定簽名s是否為正確的簽名。Normbound是在該判定時使用的閾值。即,如果上述距離低于Normbound,則簽名s作為正確的簽名被受理,如果在Normbound以上,則作為不正確的簽名而被拒絕。再有,在非專利文獻(xiàn)4中,作為NTRUSign簽名方式的參數(shù)的例子,列舉有(N,q,df,dg,Normbound)=(251,128,73,71,310)的例子。在改進(jìn)NTRUSign簽名方式中,也可以使用同樣的參數(shù)例。
(2)消息的散列值、范數(shù)及矢量間的距離在改進(jìn)NTRUSign簽名方式中,也形成對于消息的散列值的簽名。消息的散列值是N次的多項式的對,被視為與2·N維的矢量相同。再有,關(guān)于從消息求散列值的散列函數(shù),非專利文獻(xiàn)1十分詳盡。
在改進(jìn)NTRUSign簽名方式中,與現(xiàn)有的NTRUSign簽名方式同樣,在簽名驗證中使用矢量間的距離,在這樣的距離的計算中使用范數(shù)(Centeredノルム中心范數(shù))。以下,表示范數(shù)和矢量間的距離的定義。
將多項式a=a_0+a_1·X+a_2·X^2+…+a_(N-1)·X^(N-1)的范數(shù)||a||如以下那樣定義。
||a||=sqrt((a_0-μ)^2+(A_1-μ)^2+…+(a_(N-1)-μ)^2)μ=(1/N)·(a_0+a_1+a_2+…+a_(N-1))其中,sqrt(x)表示x的平方根。
將多項式a,b的對(a,b)的范數(shù)||(a,b)||如以下那樣定義。
||(a,b)||=sqrt(||a||^2+||b||^2)多項式a,b的對(a,b)和c,d的對(c,d)之間的距離(矢量間的距離)按||(c-a,d-b)||來定義。
(3)改進(jìn)NTRUSign簽名方式的密鑰生成在改進(jìn)NTRUSign簽名方式中,按與NTRUSign簽名方式同樣的方法進(jìn)行密鑰生成。首先,如上述那樣,使用參數(shù)df,dg隨機(jī)地生成多項式f、多項式g。然后,如非專利文獻(xiàn)4中記載的那樣,使用Fq×f=1(mod q)的多項式Fq,通過h=Fq×g(mod q)生成多項式h。而且,求滿足下式的范數(shù)小的多項式F、G。
F×G-g×F=q其中,設(shè)私鑰為{(f,g),(F,G)},公鑰為h。私鑰是用于生成簽名的密鑰,也被稱為簽名生成密鑰。而公鑰是用于驗證簽名的密鑰,也被稱為簽名驗證密鑰。
此外,x=y(tǒng)(mod q)是將多項式y(tǒng)的第i次的系數(shù)除以模q、以使余數(shù)限制在從0至q-1的范圍時的余數(shù),作為多項式x的第i次的系數(shù)的運(yùn)算(0≤i≤N-1)。即,是將多項式y(tǒng)的各系數(shù)進(jìn)行了(mod q)運(yùn)算、以限制在從0至(q-1)的范圍的多項式,作為多項式x的運(yùn)算。
(4)改進(jìn)NTRUSign簽名方式的簽名生成在改進(jìn)NTRUSign簽名方式的簽名生成中,計算作為簽名對象的消息m的簽名s。
首先,計算作為對應(yīng)于消息m的散列值的2·N維的矢量(m1,m2)(m1及m2為N次多項式)。
使用該2·N維的矢量(m1,m2)和私鑰{(f,g),(F,G)},計算滿足下式的多項式a,b,A,B。
G×m1-F×m2=A+q×B …(式1)-g×m1+f×m2=a+q×b …(式2)其中,將A,a的系數(shù)取為除以模q時余數(shù)限制在從<-q/2>+1至<q/2>的范圍的系數(shù)。即,在除以模q時的余數(shù)為從<q/2>至q-1的情況下,減去q,從而進(jìn)行調(diào)整以限制在上述范圍。這里,<x>表示在x以下的數(shù)之中最大的數(shù)。例如,<-1/2>=-1。
接著,通過下式,計算多項式s,t。
s=f×B+F×b(mod q) …(式3)t=g×B+G×b(mod q) …(式4)在本發(fā)明的實施方式中,進(jìn)一步,在s=s_0+s_1·X+s_2·X^2+…+s_(N-1)·X^(N-1)時,使用該多項式s和與范數(shù)0矢量(1,1,…,1)對應(yīng)的多項式v0,如以下的(式5)所示那樣,計算簽名s’。
s’=s-s_0×v0=0+(s_1-s_0)·X+(s_2-s_0)·X^2+…+(s_(N-1)-s_0)·X^(N-1) …(式5)即,在本實施方式中,從多項式s減去范數(shù)0矢量,以使多項式s的第一個元素(0次項的系數(shù))為0,并將該減法結(jié)果的多項式s’作為簽名。
換句話說,在本實施方式中,多項式s的范數(shù)不變化而變換該多項式s的形式,以使包含于該多項式s中的N個元素中第一個元素為0,其結(jié)果,生成多項式s’。
(5)改進(jìn)NTRUSign簽名方式的簽名驗證在改進(jìn)NTRUSign簽名方式的簽名驗證中,對簽名s’是否是作為簽名對象的消息m正確的簽名進(jìn)行驗證。
具體地說,首先,檢驗簽名s’的第一個元素(0次項的系數(shù))是否為0。如果第一個元素不為0,則判定為簽名s’為非法而拒絕該簽名s’。即,通過這樣的檢驗,能夠防止范數(shù)0矢量偽造攻擊。
另一方面,如果第一個元素為0,則計算作為對于消息m的散列值的2·N維的矢量(m1,m2)。然后,使用公鑰h,通過以下的(式6),計算多項式t’。
t’=s’×h(mod q) …(式6)求2·N維矢量(s’,t’)和(m1,m2)之間的距離,檢驗是否低于Normbound。如果低于Normbound,則判定為簽名s’正確從而受理該簽名s’。如果在Normbound以上,則判定為簽名s’非法而拒絕該簽名s’。再有,在進(jìn)行了2·N維矢量的距離是否低于Normbound的檢驗后,進(jìn)行簽名s’的第一個元素是否為0的檢驗也可以。
圖3是表示本發(fā)明的實施方式的數(shù)字簽名系統(tǒng)100的結(jié)構(gòu)的方框圖。
該數(shù)字簽名系統(tǒng)100是使用上述改進(jìn)NTRUSign簽名方式生成并驗證簽名的系統(tǒng),包括簽名生成裝置110、簽名驗證裝置120、以及通信線路130。
簽名生成裝置110利用改進(jìn)NTRUSign簽名方式,生成包含有對于輸入的消息m的簽名s’等的簽名數(shù)據(jù)集SS,并將該簽名數(shù)據(jù)集SS通過通信線路130發(fā)送到簽名驗證裝置120。此外,這樣的簽名生成裝置110包括發(fā)送部111、私鑰存儲部112、公鑰證書存儲部113、簽名生成部114、以及簽名數(shù)據(jù)集生成部115。
簽名驗證裝置120通過通信線路130從簽名生成裝置110接收簽名數(shù)據(jù)集SS,并利用改進(jìn)NTRUSign簽名方式,對包含于該簽名數(shù)據(jù)集SS中的簽名s’等進(jìn)行驗證。此外,這樣的簽名驗證裝置120包括接收部121、CA公鑰存儲部122、簽名數(shù)據(jù)集存儲部123、以及簽名驗證部124。
以下,詳細(xì)說明有關(guān)本實施方式的簽名生成裝置110。
簽名生成裝置110的發(fā)送部111將簽名數(shù)據(jù)集SS通過通信線路130發(fā)送到簽名驗證裝置120。
私鑰存儲部112存儲用于生成對于消息m的簽名s’的私鑰KS。設(shè)私鑰KS被預(yù)先提供。
公鑰證書存儲部113存儲由上述多項式h表示的公鑰KP(公鑰h)的公鑰證書CP。公鑰證書CP由公鑰KP、以及表示認(rèn)證局CA進(jìn)行的公鑰KP的簽名的簽名數(shù)據(jù)SP構(gòu)成。該簽名數(shù)據(jù)SP也使用改進(jìn)NTRUSign簽名方式來生成。此外,設(shè)公鑰證書CP被預(yù)先提供。再有,公鑰證書CP也可以包含公鑰KR和簽名數(shù)據(jù)SP以外的其他數(shù)據(jù)。例如,也可以包含用戶的識別符或公鑰證書CP的期限等。
簽名生成部114使用被存儲于私鑰存儲部112中的私鑰KS,生成用于表示對于消息m的簽名s’的簽名數(shù)據(jù)S。
圖4是表示本實施方式的簽名生成部114的結(jié)構(gòu)的方框圖。
簽名生成部114包括散列值生成部1141、簽名矢量生成部1142、以及簽名變換部1143。
散列值生成部1141計算用于表示對于消息m的散列值H的2·N維的矢量(m1,m2)(m1及m2為N次多項式)。
簽名矢量生成部1142使用私鑰KS和散列值H,利用上述(式1)~(式4),生成多項式s。
簽名變換部1143使用由簽名矢量生成部1142生成的多項式s,利用上述(式5),生成多項式s’。即,在多項式s由s=s_0+s_1·X+s_2·X^2+…+s_(N-1)·X^(N-1)表示的情況下,簽名變換部1143使用該多項式s和作為范數(shù)0矢量的v0=(1,1,…,1),計算s’=0+(s_1-s_0)·X+(s_2-s_0)·X^2+…+(s_(N-1)-s_0)·X^(N-1)。
即,本實施方式的簽名變換部1143從多項式s減去范數(shù)0矢量,以使多項式s的第一個元素(0次項的系數(shù))為0,并將作為該減法結(jié)果的多項式s’作為簽名、即簽名數(shù)據(jù)S而生成。
換句話說,簽名變換部1143不改變多項式s的范數(shù),而是變換該多項式s的形式,以使包含于該多項式s中的N個元素中第一個元素為0,并將其結(jié)果、多項式s’作為簽名而生成。
簽名數(shù)據(jù)集生成部115生成由消息m、消息m的簽名數(shù)據(jù)S、公鑰證書CP構(gòu)成的簽名數(shù)據(jù)集SS。
圖5是表示簽名生成部114的動作的流程圖。
首先,簽名生成部114的散列值生成部1141計算用于表示對于消息m的散列值H的2·N維的矢量(m1,m2)(步驟S100)。
接著,簽名生成部114的簽名矢量生成部1142計算滿足上述(式1)和(式2)的多項式a,b,A,B(步驟S102)。而且,簽名矢量生成部1142利用上述(式3),計算多項式s(步驟S104)。
然后,簽名生成部114的簽名變換部1143利用上述(式5),從該多項式s減去范數(shù)0矢量,將第一個元素(0次項的系數(shù))為0的多項式s’作為簽名即簽名數(shù)據(jù)S而生成(步驟S106)。
圖6是表示簽名生成裝置110的整體動作的流程圖。
簽名生成裝置110的簽名生成部114使用被存儲于私鑰存儲部112中的私鑰KS,生成對于消息m的簽名數(shù)據(jù)S(步驟S120)。
接著,簽名生成裝置110的簽名數(shù)據(jù)集生成部115生成由消息m、簽名數(shù)據(jù)S、存儲于公鑰證書存儲部113中的公鑰證書CP構(gòu)成的簽名數(shù)據(jù)集SS(步驟S122)。
然后,簽名生成裝置110的發(fā)送部111通過通信線路130將簽名數(shù)據(jù)集SS發(fā)送到簽名驗證裝置120(步驟S124)。
以下,詳細(xì)說明有關(guān)本實施方式的簽名驗證裝置120。
簽名驗證裝置120的接收部121通過通信線路130接收從簽名生成裝置110發(fā)送的簽名數(shù)據(jù)集SS。
CA公鑰存儲部122存儲用于驗證被包含在簽名數(shù)據(jù)集SS中的公鑰證書CP的認(rèn)證局CA的公鑰KCP。
簽名數(shù)據(jù)集存儲部123存儲由接收部121接收到的簽名數(shù)據(jù)集SS。
簽名驗證部124對包含于簽名數(shù)據(jù)集SS中的簽名數(shù)據(jù)S、以及包含于公鑰證書CP中的簽名數(shù)據(jù)SP進(jìn)行驗證。
圖7是表示本實施方式的簽名驗證部124的結(jié)構(gòu)的方框圖。
簽名驗證部124包括散列值生成部1241、簽名形式判定部1242、簽名矢量生成部1243、以及距離判定部1244。
散列值生成部1241計算作為簽名對象數(shù)據(jù)的消息m和公鑰KP的各自的散列值H(=(m1,m2))。
簽名形式判定部1242判定作為改進(jìn)NTRUSign簽名方式的驗證對象的簽名數(shù)據(jù)S和簽名數(shù)據(jù)SP的各自的第一個元素是否為0。這里,簽名形式判定部1242在判定為簽名數(shù)據(jù)S和簽名數(shù)據(jù)SP的至少一方的第一個元素為0時,對于由接收部121接收到的簽名數(shù)據(jù)集SS判斷為試圖范數(shù)0矢量偽造攻擊。即,簽名形式判定部1242判斷為對簽名數(shù)據(jù)集SS進(jìn)行過偽造。因此,在本實施方式,通過進(jìn)行這樣的判定,能夠防止范數(shù)0矢量偽造攻擊。
簽名矢量生成部1243使用由簽名數(shù)據(jù)S和簽名數(shù)據(jù)SP的每個所表示的多項式s’、以及由公鑰KP或公鑰KCP所表示的多項式h,通過上述(式6),計算多項式t’。即,簽名矢量生成部1243利用t’=s’×h(mod q),計算對于簽名數(shù)據(jù)S和簽名數(shù)據(jù)SP的每個的多項式t’。
而且,簽名矢量生成部1243對于簽名數(shù)據(jù)S和簽名數(shù)據(jù)SP的每個,將2·N維矢量(s’,t’)作為簽名矢量SV而生成。
距離判定部1244對于消息m及簽名數(shù)據(jù)S、和公鑰KP及簽名數(shù)據(jù)SP的每個,計算散列值H和簽名矢量SV的距離,并判定該距離是否低于Normbound。即,如果對于消息m和簽名數(shù)據(jù)S的、散列值和簽名矢量SV的距離低于Normbound,則距離判定部1244判定為簽名數(shù)據(jù)正確而受理該簽名數(shù)據(jù)S。另一方面,如果在Normbound以上,則距離判定部1244判定為簽名數(shù)據(jù)S非法而拒絕該簽名數(shù)據(jù)S。此外,如果對于公鑰KP和簽名數(shù)據(jù)SP的、散列值和簽名矢量SV的距離低于Normbound,則距離判定部1244判定為簽名數(shù)據(jù)SP正確而受理該簽名數(shù)據(jù)SP。另一方面,如果在Normbound以上,則距離判定部1244判定為簽名數(shù)據(jù)SP非法而拒絕該簽名數(shù)據(jù)SP。
圖8是表示簽名驗證部124的動作的流程圖。
簽名驗證部124使用公鑰KP,通過對消息m和簽名數(shù)據(jù)S進(jìn)行圖8所示的動作,驗證該簽名數(shù)據(jù)S。再有,簽名驗證部124在進(jìn)行簽名數(shù)據(jù)S的驗證之前,使用公鑰KCP,通過對公鑰KP和簽名數(shù)據(jù)SP進(jìn)行圖8所示的動作,驗證該簽名數(shù)據(jù)SP。
以下,對于簽名驗證部124驗證簽名數(shù)據(jù)S的具體的動作,參照圖8進(jìn)行說明。
簽名驗證部124的簽名形式判定部1242首先判定由簽名數(shù)據(jù)S所表示的多項式s’的第一個元素(0次項的系數(shù))是否為0(步驟S140)。這里,簽名形式判定部1242在判定為不是0的情況下(步驟S140為“否”),將簽名數(shù)據(jù)S作為非法從而拒絕該簽名數(shù)據(jù)S(步驟S142)。另一方面,在通過簽名形式判定部1242判定為是0的情況下(步驟S140為“是”),散列值生成部1241計算與該簽名數(shù)據(jù)S對應(yīng)的消息m的散列值H(=(m1,m2))(步驟S144)。
接著,簽名矢量生成部1243使用由簽名數(shù)據(jù)S所表示的多項式s’、以及由公鑰KP表示的多項式h,利用上述(式6),計算多項式t’(步驟S146)。此時,簽名矢量生成部1243對于簽名數(shù)據(jù)S,將2·N維矢量(s’,t’)作為簽名矢量SV而生成。
距離判定部1244計算由步驟S114算出的散列值H(=(m1,m2))、和由步驟S146生成的簽名矢量SV之間的距離(步驟S148)。然后,距離判定部1244判定該距離是否低于Normbound(步驟S150)。距離判定部1244在判定為低于Normbound時(步驟S150為“是”),判定為簽名數(shù)據(jù)S正確而受理該簽名數(shù)據(jù)S(步驟S152)。另一方面,距離判定部1244在判定為不低于Normbound時(步驟S150為“否”),判斷為簽名數(shù)據(jù)S非法而拒絕該簽名數(shù)據(jù)S(步驟S142)。
圖9是表示簽名驗證裝置120的整體動作的流程圖。
首先,簽名驗證裝置120的接收部121通過通信線路130從簽名生成裝置110接收簽名數(shù)據(jù)集SS,并將該簽名數(shù)據(jù)集SS存儲在簽名數(shù)據(jù)集存儲部123中(步驟S170)。
簽名驗證部124對于包含在簽名數(shù)據(jù)集SS中的公鑰證書CP中的公鑰KP和該簽名數(shù)據(jù)SP,使用被存儲在CA公鑰存儲部122中的認(rèn)證局CA的公鑰KCP,來驗證簽名數(shù)據(jù)SP是否為公鑰KP的正確的簽名。即,簽名驗證部124判別簽名數(shù)據(jù)SP是否為正確的簽名(步驟S172)。這里,簽名驗證部124在判別為不是正確的簽名時(步驟S172為“否”),拒絕該簽名數(shù)據(jù)SP(步驟S174)。
另一方面,簽名驗證部124在步驟S172中判別為簽名數(shù)據(jù)SP是正確的簽名時(步驟S172為“是”),受理該簽名數(shù)據(jù)SP,而且,對于簽名數(shù)據(jù)集SS中的消息m和其簽名數(shù)據(jù)S,使用公鑰KP驗證簽名數(shù)據(jù)S是否為消息m的正確的簽名。即,簽名驗證部124判別簽名數(shù)據(jù)S是否為正確的簽名(步驟S176)。
這里,簽名驗證部124在判別為不是正確的簽名時(步驟S176為“否”),拒絕該簽名數(shù)據(jù)S(步驟S174),在判別為是正確的簽名時(步驟S176為“是”),受理該簽名數(shù)據(jù)S(步驟S178)。即,在步驟S178,簽名驗證部124識別為簽名數(shù)據(jù)集SS是接受了合法的簽名的數(shù)據(jù)。
這樣,在以本實施方式的改進(jìn)NTRUSign簽名方式進(jìn)行處理的數(shù)字簽名系統(tǒng)100中,如上述(式5)所示,不使多項式s的范數(shù)變化,而變換該多項式s的形式,并將作為該變換結(jié)果的、第一個元素為0的形式的多項式s’作為簽名來處理。因而,在該數(shù)字簽名系統(tǒng)100中,在對表示多項式的簽名數(shù)據(jù)進(jìn)行驗證時,通過判定該多項式的第一個元素是否為0,能夠防止對該簽名數(shù)據(jù)的范數(shù)0矢量偽造攻擊。
即,在本實施方式中,簽名驗證裝置120判別被作為簽名處理的多項式是否為上述形式,如果不是上述形式,則將該多項式作為非法的簽名來處理。
例如,簽名生成裝置110將第一個元素為0的s’=0+s_1·X+s_2·X^2+…+s_(N-1)·X^(N-1)作為簽名而生成。對于該多項式s’相加范數(shù)0矢量v0(1,1,…,1)時,相加后的多項式sa為sa=s’+v0=1+(s_1+1)·X+(s_2+1)·X^2+…+(s_(N-1)+1)·X^(N-1)。即,多項式sa的第一個元素不為0,多項式的sa的形式未變成上述那樣的形式。因此,由于多項式sa的形式不是上述那樣的形式,所以簽名驗證裝置120將該多項式sa作為非法簽名來處理。
即,在現(xiàn)有技術(shù)中,在對被作為簽名處理的多項式相加范數(shù)0矢量時,由于該多項式的范數(shù)、和被相加了范數(shù)0矢量的多項式的范數(shù)相等,所以相加了范數(shù)0矢量的多項式也會被作為合法的簽名來處理。即,在現(xiàn)有技術(shù)中,受到范數(shù)0矢量偽造攻擊。但是,在本實施方式中,如上述那樣,簽名生成時,將作為簽名處理的多項式的形式變換為預(yù)先確定的形式,并在簽名驗證時,判別驗證對象多項式的形式是否為該預(yù)先確定的形式。由此,即使簽名生成時生成的多項式的范數(shù)和驗證對象的多項式的范數(shù)相等,也能夠容易地判別該驗證對象的多項式是否是相加了范數(shù)0矢量的非法的簽名。
換句話說,在本實施方式中,將現(xiàn)有的2·N維矢量(s,t)和(m1,m2)之間的距離為相等的多個多項式s,以預(yù)先規(guī)定的格式的一個多項式匯總地來表現(xiàn),并將該格式的多項式作為簽名來處理。例如,在將s’、s’+(1,1,…,1)、s’+(2,2,…,2)、s’+(3,3,…,3)、…分別作為多項式s時,對各多項式s計算的、2·N維矢量(s,t)和(m1,m2)之間的距離分別為相等。因此,在本實施方式中,將s’、s’+(1,1,…,1)、s’+(2,2,…,2)、s’+(3,3,…,3)、…例如以第一個元素為0的格式的多項式s’匯總來表現(xiàn),并將該多項式s’作為簽名來處理。因而,對于對多項式s’相加了范數(shù)0矢量的s’+(2,2,…,2)或s’+(3,3,…,3)等的多項式的上述距離、和對于多項式s’的上述距離相等。但是,這些多項式的格式與多項式s’的格式有所不同,所以這些多項式被判斷為是非法簽名。
這樣,在本實施方式的數(shù)字簽名系統(tǒng)100中,范數(shù)0矢量偽造攻擊不成功,因而安全。
(變形例1)這里,說明有關(guān)上述實施方式的第1變形例。
在上述實施方式中,將第一個元素為0的多項式s’作為簽名來處理,但在本變形例中,將最后的元素(N-1次項的系數(shù))為0的多項式s’作為簽名來處理。即,在上述實施方式中被作為簽名處理的多項式的形式是第一個元素為0的形式,而在本變形例中被作為簽名處理的多項式的形式是最后的元素為0的形式。
具體地說,本變形例的簽名生成部114的簽名變換部1143不是利用多項式s和上述(式5),來計算多項式s’,而是利用以下的(式7),計算多項式s’。
s’=s(mod L) …(式7)再有,設(shè)L=X^(N-1)+X^(N-2)+…+X+1。
圖10是表示本變形例的簽名生成部114的動作的流程圖。
首先,簽名生成部114的散列值生成部1141計算用于表示對消息m的散列值H的2·N維的矢量(m1,m2)(步驟S190)。
接著,簽名生成部114的簽名矢量生成部1142計算滿足上述(式1)和(式2)的多項式a,b,A,B(步驟S192)。而且,簽名矢量生成部1142利用上述(式3),計算多項式s(步驟S194)。
然后,簽名生成部114的簽名變換部1143利用上述(式7),計算該多項式s的以L(=X^(N-1)+X^(N-2)+…+X+1)為模的余數(shù),并將最后的元素(N-1次項的系數(shù))為0的多項式s’作為簽名即簽名數(shù)據(jù)S而生成(步驟S196)。
圖11是表示本變形例的簽名驗證部124的動作的流程圖。
簽名驗證部124通過使用公鑰KP,對消息m和簽名數(shù)據(jù)S進(jìn)行圖11所示的動作,由此驗證該簽名數(shù)據(jù)S。再有,簽名驗證部124在進(jìn)行簽名數(shù)據(jù)S的驗證之前,通過使用公鑰KCP,對公鑰KP和簽名數(shù)據(jù)S進(jìn)行圖11所示的動作,由此驗證該簽名數(shù)據(jù)SP。
以下,對于簽名驗證部124驗證簽名數(shù)據(jù)S的具體動作,參照圖11進(jìn)行說明。
簽名驗證部124的簽名形式判定部1242首先判定由簽名數(shù)據(jù)S表示的多項式s’的最后的元素(N-1次項的系數(shù))是否為0(步驟S210)。這里,簽名形式判定部1242在判定為不是0的情況下(步驟S210為“否”),將簽名數(shù)據(jù)S作為非法而拒絕該簽名數(shù)據(jù)S(步驟S212)。另一方面,在通過簽名形式判定部1242判定為是0的情況下(步驟S210為“是”),散列值生成部1241計算與該簽名數(shù)據(jù)S對應(yīng)的消息m的散列值H(=(m1,m2))(步驟S214)。
接著,簽名矢量生成部1243使用由簽名數(shù)據(jù)S表示的多項式s’、和由公鑰KP表示的多項式h,利用上述(式6),計算多項式t’(步驟S216)。此時,簽名矢量生成部1243對于簽名數(shù)據(jù)S,將2·N維矢量(s’,t’)作為簽名矢量SV而生成。
距離判定部1244計算在步驟S214中算出的散列值H(=(m1,m2))和在步驟S216中生成的簽名矢量SV之間的距離(步驟S218)。然后,距離判定部1244判定該距離是否低于Normbound(步驟S220)。距離判定部1244在判定為低于Normbound時(步驟S220為“是”),判斷為簽名數(shù)據(jù)S正確而受理該簽名數(shù)據(jù)S(步驟S222)。另一方面,距離判定部1244判定為不低于Normbound時(步驟S220為“否”),判斷為簽名數(shù)據(jù)S非法而拒絕該簽名數(shù)據(jù)S(步驟S212)。
這樣,在本變形例中,如上述(式7)所示,不使多項式s的范數(shù)變化,而變換該多項式s的形式,并將作為該變換結(jié)果的最后的元素為0的形式的多項式s’作為簽名來處理。因而,在該數(shù)字簽名系統(tǒng)100中,在對表示多項式的簽名數(shù)據(jù)進(jìn)行驗證時,通過判定該多項式的最后的元素是否為0,能夠防止對該簽名數(shù)據(jù)的范數(shù)0矢量偽造攻擊。
(變形例2)這里,說明有關(guān)上述實施方式的第2變形例。
在本變形例中,與變形例1同樣,將多項式s的形式變換而不使該多項式的范數(shù)變化,以使最后的元素(N-1次項的系數(shù))為0,并且,對于消息m的散列值、以及簽名和公鑰之積的各自的形式也進(jìn)行變換而不使各自的范數(shù)變化,以使最后的元素(N-1次項的系數(shù))為0。
此外,在本變形例的數(shù)字簽名系統(tǒng)100中,通過取代多項式對{f,g,F(xiàn),G}而將多項式對{f”,g”,F(xiàn)”,G”}作為私鑰,并取代多項式h而將多項式h”用作公鑰KP,進(jìn)行簽名生成和簽名驗證。這里,設(shè)L=X^(N-1)+X^(N-2)+…+X+1時,f”,g”,F(xiàn)”,G”和h”利用下式表示。
f”=f(mod L)、g”=g(mod L)、F”=F(mod L)、G”=G(mod L)、h”=h(mod L)即,本變形例中處理的私鑰的四個多項式分別以最后的元素(N-1次項的系數(shù))為0的形式被整理,表示本變形例中處理的公鑰的多項式也以最后的元素(N-1次項的系數(shù))為0的形式被整理。再有,多項式f,g,F(xiàn),G的各自的范數(shù)與多項式f”,g”,F(xiàn)”,G”各自的范數(shù)相等,多項式h的范數(shù)與多項式h”的范數(shù)相等。
圖12是表示本變形例的簽名生成部114的動作的流程圖。
首先,簽名生成部114的散列值生成部1141計算用于表示消息m的散列值H的2·N維的矢量(m1,m2)(步驟S230)。而且,散列值生成部1141利用m1”=m1(mod L)和m2”=m2(mod L)計算(m1”,m2”)(步驟S232)。即,散列值生成部1141通過將2·N維的矢量(m1,m2)的各多項式的形式進(jìn)行變換而不使這些多項式的范數(shù)變化,以使最后的元素(N-1次項的系數(shù))為0,從而生成矢量(m1”,m2”)。
接著,簽名生成部114的簽名矢量生成部1142計算滿足以下的(式8)和(式9)的多項式a”,b”,A”,B”(步驟S234)。
G”×m1”-F”×m2”=A”+q×B” …(式8)-g”×m1”+f”×m2”=a”+q×b” …(式9)而且,簽名矢量生成部1142利用以下的(式10),計算多項式s(步驟S236)。
S=f”×B”+F”×b”(mod q)…(式10)然后,簽名生成部114的簽名變換部1143利用以下的(式11),計算該多項式s的以L(=X^(N-1)+X^(N-2)+…+X+1)為模的余數(shù),并將最后的元素(N-1次項的系數(shù))為0的多項式s”作為簽名即簽名數(shù)據(jù)S而生成(步驟S238)。
s”=s(mod L) …(式11)圖13是表示本變形例的簽名驗證部124的動作的流程圖。
簽名驗證部124通過使用公鑰KP,對消息m和簽名數(shù)據(jù)S進(jìn)行圖13所示的動作,由此驗證該簽名數(shù)據(jù)S。再有,簽名驗證部124在進(jìn)行簽名數(shù)據(jù)S的驗證之前,通過使用公鑰KCP,對公鑰KP和簽名數(shù)據(jù)SP進(jìn)行圖13所示的動作,由此驗證該簽名數(shù)據(jù)SP。
以下,對于簽名驗證部124驗證簽名數(shù)據(jù)S的具體動作,參照圖13進(jìn)行說明。
簽名驗證部124的簽名形式判定部1242首先判定由簽名數(shù)據(jù)S表示的多項式s”的最后的元素(N-1次項的系數(shù))是否為0(步驟S260)。這里,簽名形式判定部1242在判定為不是0的情況下(步驟S260為“否”),將簽名數(shù)據(jù)S作為非法而拒絕該簽名數(shù)據(jù)S(步驟S262)。另一方面,在由簽名形式判定部1242判定為是0的情況下(步驟S260為“是”),散列值生成部1241計算與該簽名數(shù)據(jù)S對應(yīng)的消息m的散列值H(=(m1,m2))(步驟S264)。而且,散列值生成部1241利用m1”=m1(mod L)和m2”=m2(mod L)計算(m1”,m2”)(步驟S266)。
接著,簽名矢量生成部1243使用由簽名數(shù)據(jù)S表示的多項式s”和由公鑰KP表示的多項式h”,利用以下的(式12),計算多項式t”(步驟S268)。
t”=s”×h”(mod L) …(式12)此時,簽名矢量生成部1243對于簽名數(shù)據(jù)S,將2·N維矢量(s”,t”)作為簽名矢量SV而生成。
距離判定部1244計算在步驟S266中算出的散列值H(=(m1”,m2”))和在步驟S216中生成的簽名矢量SV之間的距離(步驟S270)。然后,距離判定部1244判定該距離是否低于Normbound(步驟S272)。距離判定部1244在判定為低于Normbound時(步驟S272為“是”),判斷為簽名數(shù)據(jù)S正確而受理該簽名數(shù)據(jù)S(步驟S274)。另一方面,距離判定部1244在判定為不低于Normbound時(步驟S272為“否”),判斷為簽名數(shù)據(jù)S非法而拒絕該簽名數(shù)據(jù)S(步驟S262)。
這樣,在本變形例中,不僅將被作為簽名處理的多項式s”的形式以最后的元素(N-1次項的系數(shù))為0的形式來整理,而且還將表示私鑰的四個多項式f”,g”,F(xiàn)”,G”、表示公鑰的多項式h”、消息m的散列值(m1”,m2”)、以及簽名s”和公鑰h”之積的t”的各自的形式,以最后的元素(N-1次項的系數(shù))為0的形式來整理。由此,能夠提高對多項式s”,f”,g”,F(xiàn)”,G”,h”,m1”,m2”,t”各自的安全性。
此外,s”,f”,g”,F(xiàn)”,G”,h”,m1”,m2”,t”的每個的最后的元素被固定為0,所以不存儲最后的元素而僅存儲0~N-2次的項就可以。由此,可以削減存儲所需的大小。
再有,在本變形例中,將多項式對{f”,g”,F(xiàn)”,G”}構(gòu)成的私鑰預(yù)先存儲在私鑰存儲部112中,但也可以將多項式對{f,g,F(xiàn),G}構(gòu)成的私鑰預(yù)先存儲在私鑰存儲部112中。同樣,在本變形例中,將多項式h”表示的公鑰KP預(yù)先存儲在公鑰證書存儲部113中,但也可以將多項式h表示的公鑰KP預(yù)先存儲在公鑰證書存儲部113中。這種情況下,簽名生成部114將存儲于私鑰存儲部112中的多項式對{f,g,F(xiàn),G}變換為多項式對{f”,g”,F(xiàn)”,G”},并使用該多項式對{f”,g”,F(xiàn)”,G”}生成簽名s”。此外,簽名數(shù)據(jù)集生成部115將存儲于公鑰證書存儲部113中的表示公鑰KP的多項式h變換為多項式h”,并將該多項式h”表示的公鑰KP包含在簽名數(shù)據(jù)集SS中。
以上,使用上述實施方式和變形例對本發(fā)明進(jìn)行了說明,但它們是本發(fā)明的一例,本發(fā)明不限定于這樣的實施方式和變形例。即,本發(fā)明在不脫離本發(fā)明的本質(zhì)的范圍中可以各種各樣的方式來實施。例如,以下的情況也被包含在本發(fā)明中。
(1)在上述實施方式和變形例中,在簽名生成時,使多項式s’的第一個元素(0次項的系數(shù))或最后的元素(N-1次項的系數(shù))為0,在簽名驗證時,驗證該元素是否為0,但也可以使該元素以外的元素為0。例如,也可以使第i(i為從2至N-1的任何一個整數(shù))個元素為0。此外,也可以使該元素不為‘0’,而為j(j為從1至q-1的任何一個整數(shù))。此外,也可以使該元素與包含在多項式m1中的任何一個元素相等。例如,在簽名生成時,使多項式s’的第一個元素與多項式m1的第一個元素相等,而在簽名驗證時,驗證多項式s’的第一個元素是否與多項式m1的第一個元素相等就可以。
(2)上述實施方式和變形例的簽名生成裝置110和簽名驗證裝置120具體地是由微處理器、ROM(Read Only Memory只讀存儲器)、RAM(Random Access Memory隨機(jī)存取存儲器)、硬盤單元、顯示單元、鍵盤、以及鼠標(biāo)等構(gòu)成的計算機(jī)系統(tǒng)。在上述RAM或硬盤單元中,存儲有計算機(jī)程序。通過上述微處理器根據(jù)上述計算機(jī)程序而動作,簽名生成裝置110和簽名驗證裝置120實現(xiàn)其功能。這里,計算機(jī)程序是為了實現(xiàn)規(guī)定的功能,將表示對計算機(jī)的指令的命令碼多個組合而構(gòu)成的。
(3)構(gòu)成上述實施方式和變形例的簽名生成裝置110及簽名驗證裝置120的結(jié)構(gòu)要素的一部分或全部,也可以由一個系統(tǒng)LSI(LargeScale Integration大規(guī)模集成電路)構(gòu)成。系統(tǒng)LSI是將多個構(gòu)成部集成在一個芯片上而制造出來的超多功能LSI,具體地說,是包含微處理器、ROM、RAM等所構(gòu)成的計算機(jī)系統(tǒng)。在上述RAM中,存儲有計算機(jī)程序。通過上述微處理器根據(jù)上述計算機(jī)程序而動作,系統(tǒng)LSI實現(xiàn)其功能。
(4)構(gòu)成上述實施方式和變形例的簽名生成裝置110及簽名驗證裝置120的結(jié)構(gòu)要素的一部分或全部,也可以由在簽名生成裝置110或簽名驗證裝置120上可拆裝的IC(Integrated Circuit集成電路)卡、或單體的模塊構(gòu)成。上述IC卡或者上述模塊是由微處理器、ROM、RAM等構(gòu)成的計算機(jī)系統(tǒng)。上述IC卡或上述模塊也可以包含上述超多功能LSI。通過微處理器根據(jù)計算機(jī)程序而動作,上述IC卡或上述模塊實現(xiàn)其功能。這種IC卡或這種模塊也可以具有防篡改性。
(5)本發(fā)明不僅作為上述實施方式和變形例的數(shù)字簽名系統(tǒng)100中的該系統(tǒng)或裝置來實現(xiàn),也可以作為處理方法來實現(xiàn)。此外,還可以作為使計算機(jī)執(zhí)行這種處理方法的動作的計算機(jī)程序來實現(xiàn),也可以作為上述計算機(jī)程序構(gòu)成的數(shù)字信號來實現(xiàn)。
(6)此外,本發(fā)明也可以作為將上述計算機(jī)程序或上述數(shù)字信號記錄在計算機(jī)可讀取的記錄媒體、例如軟盤、硬盤、CD-ROM(CompactDisk Read Only Memory緊致盤只讀存儲器)、MO(Magneto-Opticaldisk磁光盤)、DVD(Digital Versatile Disk數(shù)字通用盤)、DVD-ROM、DVD-RAM、BD(Blu-ray Disc藍(lán)光光盤)、半導(dǎo)體存儲器等中來實現(xiàn)。此外,也可以作為記錄于這些記錄媒體中的所述數(shù)字信號來實現(xiàn)。
(7)此外,本發(fā)明也可以作為將上述計算機(jī)程序或上述數(shù)字信號經(jīng)由電氣通信線路、無線或有線通信線路、以因特網(wǎng)為代表的網(wǎng)絡(luò)、或數(shù)據(jù)廣播等傳送來實現(xiàn)。
(8)此外,本發(fā)明也可以作為包括了微處理器和存儲器的計算機(jī)系統(tǒng)來實現(xiàn)。這種情況下,上述存儲器預(yù)先存儲上述計算機(jī)程序,上述微處理器根據(jù)上述計算機(jī)程序而動作。
(9)此外,本發(fā)明也可以通過將上述計算機(jī)程序或上述數(shù)字信號記錄在上述記錄媒體中并轉(zhuǎn)送,或?qū)⑸鲜鲇嬎銠C(jī)程序或上述數(shù)字信號經(jīng)由上述網(wǎng)絡(luò)等而轉(zhuǎn)送,從而由獨立的其他計算機(jī)系統(tǒng)來實現(xiàn)。
(10)此外,本發(fā)明也可以將上述實施方式和變形例分別組合來實現(xiàn)。
產(chǎn)業(yè)上的可利用性本發(fā)明的簽名生成裝置和簽名驗證裝置具有能夠防止NTRUSign簽名方式等中的范數(shù)0矢量偽造攻擊的效果,例如能夠適用于數(shù)字簽名系統(tǒng)等。
權(quán)利要求
1.一種簽名生成裝置,使用簽名方式來生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述簽名生成裝置包括簽名生成單元,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名變換單元,變換所述簽名數(shù)據(jù)的形式,以使所述簽名數(shù)據(jù)的范數(shù)不改變、而所述簽名數(shù)據(jù)中包含的N個元素中某一個對象元素成為預(yù)先確定的值。
2.如權(quán)利要求1所述的簽名生成裝置,其特征在于,所述簽名變換單元變換所述簽名數(shù)據(jù)的形式,以使所述對象元素成為從0至q-1的某一個整數(shù)。
3.如權(quán)利要求1所述的簽名生成裝置,其特征在于,所述簽名變換單元變換所述簽名數(shù)據(jù)的形式,以使所述對象元素成為0。
4.如權(quán)利要求1所述的簽名生成裝置,其特征在于,所述簽名生成裝置還包括散列值生成單元,生成用于表示對于所述消息數(shù)據(jù)的散列值的兩個N維排列,所述簽名變換單元變換所述簽名數(shù)據(jù)形式,以使所述對象元素成為表示所述散列值的兩個N維排列中包含的2·N個元素中的某一個的值,其中,“·”表示整數(shù)的乘法運(yùn)算。
5.如權(quán)利要求1所述的簽名生成裝置,其特征在于,所述簽名變換單元變換所述簽名數(shù)據(jù)的形式,以使與由所述簽名數(shù)據(jù)表示的多項式的0次項對應(yīng)的元素為預(yù)先確定的值。
6.如權(quán)利要求1所述的簽名生成裝置,其特征在于,所述簽名變換單元通過將范數(shù)0矢量從所述簽名數(shù)據(jù)中減去,由此變換所述簽名數(shù)據(jù)的形式,其中所述范數(shù)0矢量是范數(shù)為0的矢量。
7.如權(quán)利要求6所述的簽名生成裝置,其特征在于,所述簽名變換單元從所述簽名數(shù)據(jù)中減去作為由全部相同值的元素組成的N維排列而構(gòu)成的所述范數(shù)0矢量。
8.如權(quán)利要求1所述的簽名生成裝置,其特征在于,所述簽名生成裝置還包括散列值生成單元,生成用于表示對于所述消息數(shù)據(jù)的散列值的兩個N維排列,對所述N維排列的每個,變換所述各N維排列的形式,以使該N維排列的范數(shù)不改變、而該N維排列中包含的N個元素中的某一個對象元素成為預(yù)先確定的值,所述簽名生成單元使用所述組{f,g,F(xiàn),G}的各個元的形式以該元中包含的N個元素中的某一個對象元素成為預(yù)先確定的值的方式被調(diào)整的所述私鑰、以及通過所述散列值生成單元被變換了形式的散列值,來生成所述簽名數(shù)據(jù)。
9.一種簽名驗證裝置,使用簽名方式來驗證對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述簽名驗證裝置包括簽名形式判定單元,判定所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素是否為預(yù)先確定的值,并在判定為不是預(yù)先確定的值時,將所述簽名數(shù)據(jù)作為非法數(shù)據(jù)來處理;以及簽名驗證單元,使用所述公鑰來驗證作為所述環(huán)R的元的所述簽名數(shù)據(jù)。
10.如權(quán)利要求9所述的簽名驗證裝置,其特征在于,所述簽名形式判定單元判定所述對象元素是否是從0至q-1的多個整數(shù)中預(yù)先選擇出的一個整數(shù)。
11.如權(quán)利要求9所述的簽名驗證裝置,其特征在于,所述簽名形式判定單元判定所述對象元素是否為0。
12.如權(quán)利要求9所述的簽名驗證裝置,其特征在于,所述簽名生成裝置還包括散列值生成單元,生成用于表示對于所述消息數(shù)據(jù)的散列值的兩個N維排列,所述簽名形式判定單元判定所述對象元素的值是否為表示所述散列值的兩個N維排列中包含的2·N個元素中的某一個的值,其中,“·”表示整數(shù)的乘法運(yùn)算。
13.如權(quán)利要求9所述的簽名驗證裝置,其特征在于,所述簽名形式判定單元判定與由所述簽名數(shù)據(jù)表示的多項式的0次項對應(yīng)的元素是否為預(yù)先確定的值。
14.如權(quán)利要求9所述的簽名驗證裝置,其特征在于,所述簽名驗證單元還包括散列值生成單元,生成用于表示對于所述消息數(shù)據(jù)的散列值的兩個N維排列,并對所述N維排列的每個,變換所述各N維排列的形式,以使該N維排列的范數(shù)不改變、而該N維排列的元素中的某一個對象元素成為預(yù)先確定的值;簽名矢量生成單元,將以所述元h中包含的N個元素中的某一個對象元素成為預(yù)先確定的值的方式被調(diào)整形式的所述公鑰和所述簽名數(shù)據(jù)之積,作為所述環(huán)R的元t來計算,通過變換所述元t的形式,以使所述元t的范數(shù)不變化、而所述元t中包含的N個元素中的某一個對象元素成為預(yù)先確定的值,從而生成由形式被變換過的所述元t和簽名數(shù)據(jù)構(gòu)成的簽名矢量;以及距離判定單元,基于所述簽名矢量生成單元生成的簽名矢量和通過所述散列值生成單元而被變換了形式的散列值之間的距離,驗證所述簽名數(shù)據(jù)。
15.一種簽名生成方法,使用簽名方式來生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述簽名生成方法包括所述簽名生成步驟;以及簽名變換步驟,變換所述簽名數(shù)據(jù)的形式,以使所述簽名數(shù)據(jù)的范數(shù)不改變、而所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素成為預(yù)先確定的值。
16.一種簽名驗證方法,使用簽名方式來驗證對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述簽名驗證方法包括簽名形式判定步驟,判定所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素是否為預(yù)先確定的值,并在判定為不是預(yù)先確定的值時,將所述簽名數(shù)據(jù)作為非法數(shù)據(jù)來處理;以及所述簽名驗證步驟。
17.一種程序,用于使用簽名方式生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述程序使計算機(jī)執(zhí)行所述簽名生成步驟;以及簽名變換步驟,變換所述簽名數(shù)據(jù)的形式,以使所述簽名數(shù)據(jù)的范數(shù)不改變、而所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素成為預(yù)先確定的值。
18.一種程序,用于使用簽名方式生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述程序使計算機(jī)執(zhí)行簽名形式判定步驟,判定所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素是否為預(yù)先確定的值,并在判定為不是預(yù)先確定的值時,將所述簽名數(shù)據(jù)作為非法數(shù)據(jù)來處理;以及所述簽名驗證步驟。
19.一種集成電路,使用簽名方式來生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述集成電路包括簽名生成單元,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名變換單元,變換所述簽名數(shù)據(jù)的形式,以使所述簽名數(shù)據(jù)的范數(shù)不改變、而所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素成為預(yù)先確定的值。
20.一種集成電路,使用簽名方式來生成對于消息數(shù)據(jù)的簽名數(shù)據(jù),其特征在于,所述簽名方式包括密鑰生成步驟,對于作為定義了加法、減法、乘法、以及表示元的大小的范數(shù)的N維排列的集合的環(huán)R、和正整數(shù)q,生成所述環(huán)R的元f、g以及作為f(mod q)的倒數(shù)的元Fq,并生成元h作為公鑰,該元h與所述元g和所述元Fq之積在模為q時同余,并生成滿足f×G-g×F=q的元F、G,將所述四個元f、g、F、G構(gòu)成的組{f、g、F、G}作為私鑰而生成,其中,f(mod q)表示將f除以q所得的余數(shù),“×”表示環(huán)R的乘法運(yùn)算;簽名生成步驟,使用所述私鑰生成對于所述消息數(shù)據(jù)的、作為所述環(huán)R的元的所述簽名數(shù)據(jù);以及簽名驗證步驟,使用所述公鑰驗證所述簽名數(shù)據(jù),所述集成電路包括簽名形式判定單元,判定所述簽名數(shù)據(jù)中包含的N個元素中的某一個對象元素是否為預(yù)先確定的值,并在判定為不是預(yù)先確定的值時,將所述簽名數(shù)據(jù)作為非法數(shù)據(jù)來處理;以及簽名驗證單元,使用所述公鑰來驗證作為所述環(huán)R的元的所述簽名數(shù)據(jù)。
全文摘要
提供一種可防止范數(shù)0矢量偽造攻擊的簽名生成裝置和簽名驗證裝置。簽名生成裝置(110)包括簽名生成單元(114),使用被存儲在私鑰存儲單元(112)中的私鑰生成對于消息(m)的簽名數(shù)據(jù)(S),并變換該簽名數(shù)據(jù)(S)的形式,以不改變該簽名數(shù)據(jù)(S)的范數(shù),使簽名數(shù)據(jù)(S)中包含的N個元素中一個元素為0。簽名驗證裝置(120)包括簽名驗證單元(124),判定簽名數(shù)據(jù)(S)中包含的N個元素中一個元素是否為0,并在判定為不是0時,將簽名數(shù)據(jù)作為非法數(shù)據(jù)來處理。
文檔編號H04L9/32GK1954547SQ20068000016
公開日2007年4月25日 申請日期2006年3月14日 優(yōu)先權(quán)日2005年4月18日
發(fā)明者布田裕一, 長谷川真吾, 磯邊秀司, 大森基司, 靜谷啟樹 申請人:松下電器產(chǎn)業(yè)株式會社, 國立大學(xué)法人東北大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
砀山县| 昌黎县| 闽侯县| 张家口市| 浏阳市| 宜州市| 八宿县| 万盛区| 五台县| 巫溪县| 来凤县| 仁化县| 赣州市| 尉氏县| 舒兰市| 饶阳县| 乐昌市| 东乡族自治县| 辛集市| 土默特左旗| 闻喜县| 龙州县| 姜堰市| 五大连池市| 弥渡县| 寻乌县| 皋兰县| 山西省| 井冈山市| 定西市| 澳门| 兰溪市| 临湘市| 搜索| 任丘市| 都昌县| 阿勒泰市| 白银市| 台安县| 石屏县| 苗栗县|