CN101965711B - 签名及验证方法、签名生成装置及签名验证装置 - Google Patents

签名及验证方法、签名生成装置及签名验证装置 Download PDF

Info

Publication number
CN101965711B
CN101965711B CN200980108247.2A CN200980108247A CN101965711B CN 101965711 B CN101965711 B CN 101965711B CN 200980108247 A CN200980108247 A CN 200980108247A CN 101965711 B CN101965711 B CN 101965711B
Authority
CN
China
Prior art keywords
mentioned
vector
signature
multinomial
data
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
CN200980108247.2A
Other languages
English (en)
Other versions
CN101965711A (zh
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101965711A publication Critical patent/CN101965711A/zh
Application granted granted Critical
Publication of CN101965711B publication Critical patent/CN101965711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

提供签名生成装置及签名验证装置,可以对抗在NTRUSign签名方式中,通过分析多个签名文(消息数据和签名的对)来求取私钥的抄本攻击(transcript attack)。签名生成装置计算消息数据的散列值向量H,对消息数据的散列值向量H,加上基于保密分布的向量,计算变换散列值向量H′,在根据私钥基底向量确定的网格上,求取与变换散列值向量H′最接近的网格点,将其作为签名向量S。签名验证装置判断消息数据的散列值向量H和签名向量S之间的距离是否为L′以内,在L′以内时,将消息数据认作合法。

Description

签名及验证方法、签名生成装置及签名验证装置
技术领域
本发明涉及作为信息安全技术的加密技术,特别涉及到数字签名及其验证。
背景技术
当从发送装置向接收装置发送数据时,因为要确定发送者,并且检测或防止数据的篡改,所以使用作为公钥加密的一种的数字签名方式。
这里,所谓的数据签名方式,是一种发送装置对于想要发送的数据,使用发送装置的私钥(加密密钥)来制作签名数据,和想要发送的数据一起将签名数据向接收装置发送,接收装置使用发送装置的公钥来验证签名数据,判定是否已被篡改的方法(例如参见非专利文献1)。这里,由于难以根据公钥计算私钥的值,因而不可能由非法者冒充为发送装置,制作伪造的签名数据。
作为这种公钥加密***,最好将比较短且易于制作的密钥,和比较高速的加密过程及解密过程进行组合,专利文献1公示出一种公钥加密***,能够从向量大的集合大致随机地选择密钥长度与其他的一般公钥加密***的密钥长度相当的密钥,具备适合的安全·级别。
另外,作为能高速处理的公钥加密,提出了NTRU(NTRUCryptosystems Incorporated的注册商标)加密(例如参见非专利文献2)。该NTRU加密由于与在某个模之下进行幂乘余数运算的RSA加密或进行椭圆曲线上点的标量乘运算的椭圆曲线加密相比,使用能高速运算的多项式运算进行加密和解密,因而能够比以往的公钥加密更高速地进行处理,即使在软件的处理中也可以在实用的时间内进行处理。从而,对于在公钥加密中使用NTRU加密的加密通信***来说,具有与以往的使用公钥加密的加密通信***相比,能够更高速地进行发送装置及接收装置的处理这样的优点。
还有,NTRU加密不仅仅是能够高速处理,作为其安全性根据的在计算量方面很难的问题也和RSA加密或椭圆曲线加密不同。RSA加密以素数因数分解问题为安全性的根据,椭圆曲线加密以椭圆曲线上的离散对数问题为安全性的根据。另一方面,NTRU加密以对于被称为网格的向量集合的最短向量问题或者最接近问题为安全性的根据。
上面所提出的NTRU加密是一种为了使数据变为保密,将数据加密的保密加密方式,并且随后,提出了NTRU加密的数字签名方式(参见非专利文献3)。有关该数字签名方式,因加密分析法的出现等,而其方式已数次变更。下面,简单说明被称为NTRUSign的数字签名方式(有关详细情况,参见专利文献2及非专利文献4)。
<NTRUSign签名方式>
(1)NTRUSign签名方式的***参数
在NTRUSign签名方式中,存在作为非负整数的参数的N、q、df、dg、Normbound。下面,说明这些参数的含义。
(i)参数N
NTRUSign签名方式是一种通过多项式的运算实施签名生成及签名验证的数字签名方式。参数N决定在NTRUSign签名方式中处理的多项式的次数。
在NTRUSign签名方式中处理的多项式对于参数N,是N-1次以下的整数系数多项式。在N=5时,例如是多项式X^4+X^3+1。还有,在本说明书中,“X^a”意味着X的a次幂。另外,在NTRUSign签名方式中使用的公钥h及签名s全都作为N-1次以下的多项式来表现。另外,私钥是4个N-1次以下的多项式对(f,g,F,G)。也就是说,f、g、F、G全都是N-1次以下的多项式。还有,在下面,还有时将4个组(f,g,F,G)取为2个对(f,g)、(F,G)所进一步构成的对,记述为{(f,g),(F,G)}。
接着,在NTRUSign签名方式的多项式运算中,对于参数N,使用X^N=1这样的关系式,进行运算以使运算结果总是成为N-1次以下的多项式。例如,在N=5的情况下,多项式X^4+X^2+1和多项式X^3+X的积若用“x”表现出多项式和多项式的积,用“·”表现出整数和多项式的积(或者是整数和整数的积),则由于存在X^5=1这样的关系,因而如同
(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的系数,是整数。
(ii)参数q
在NTRUSign签名方式中,使用作为值“2”以上的整数的参数q。对于在NTRUSign签名方式中出现的多项式的系数其运算为,取以q为模的余数。
(iii)参数df、dg
作为在NTRUSign签名方式中处理的私钥一部分的多项式f及多项式g的选择方法分别由参数df、dg决定。这里,多项式g在生成作为公钥的多项式h时,和多项式f一起使用。
对于多项式f选择为,其N个系数之中,df个系数分别是值“1”,且其他的系数分别为值“0”。也就是说,多项式f是N-1次以下的多项式,从0次(常数项)到N-1次,具有N个系数。其选择为,该N个系数之中,df个系数是值“1”,且(N-df)个系数为值“0“。
同样,多项式g是N-1次以下的多项式,对于多项式g选择为,其N个系数之中,dg个系数分别是值“1”,且其他的系数分别为值“0”。
(iv)参数Normbound
在NTRUSign签名方式中,如下所述,计算“根据签名s制作的2·N维向量”和“作为对于消息数据的散列值的2·N维向量”之间的距离,根据计算出的距离,来判定是否是正确的签名。Normbound是在该判定时使用的阈值。也就是说,如果计算出的距离低于Normbound(距离<Normbound),则作为正确的签名来受理。另一方面,如果计算出的距离为Normbound以上(距离≥Normbound),则作为不正确的签名加以拒绝。
在非专利文献4中,作为NTRUSign签名方式的参数例,举出了(N,q,df,dg,Normbound)=(251,128,73,71,310)。
(2)消息数据的散列值、范数及向量间的距离
在NTRUSign签名方式中,制作对于消息数据散列值的签名。消息数据的散列值是N次多项式的对,作为2·N维的向量来表现。关于根据消息数据求取散列值的散列函数,已在非专利文献1中进行了详细说明。
在NTRUSign签名方式中,在签名验证中使用向量的距离。下面表示其定义。
如下定义多项式a=a_0+a_1·X+a_2·X^2+…+a_(N-1)·X^(N-1)的范数‖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)的范数‖(a,b)‖。
‖(a,b)‖=sqrt(‖a‖^2+‖b‖^2)
多项式a、b的对(a,b)和c、d的对(c,d)之间的距离用‖c-a,d-b‖进行定义。
(3)NTRUSign签名方式的密钥生成
在NTRUSign签名方式中,如上所述,使用参数df、dg来随机生成多项式f、多项式g。然后,如非专利文献4所述的那样,使用作为Fq×f=1(mod q)的多项式Fq,通过
h=Fq×g(mod q)
来生成多项式h。进而,求取满足下式的那种范数小的多项式F、G。
f×G-g×F=q
这里,{(f,g),(F,G)}是私钥,h是公钥。私钥是用来生成签名的密钥,也被称为签名生成密钥。另外,公钥是用来验证签名的密钥,也被称为签名验证密钥。
这里,在x=y(mod q)中,进行如下的运算。也就是说,对于i(i=0、1、2、…、N-1),用模q除多项式y的第i次系数,以使余数包括在0到q-1的范围内,并且求取余数,将求出的余数设为多项式x的第i次系数。也就是说,对多项式y的各系数进行mod q运算,使之包括在0到(q-1)的范围内,将得到的多项式设为多项式x。
(4)NTRUSign签名方式的签名生成
在NTRUSign签名方式的签名生成中,计算应发送的消息数据的散列值向量,将其最接近网格点作为签名向量。通过将Lsec坐标系上的系数化为整数,就轻易获得最接近网格点。
下面,说明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的系数是用模q相除使之包括在<-q/2>+1到<q/2>的范围内时的余数。也就是说,在用模q相除时的余数为<q/2>到q-1的情况下,只减去q,并进行调整使之包括在上述范围内。这里,<x>表示在x以下的数之中最大的数。例如,<-1/2>=-1。
接着,通过下式,计算s、t,将s作为签名进行输出。
s=f×B+F×b(mod q)
t=g×B+G×b(mod q)
(5)NTRUSign签名方式的签名验证
在NTRUSign签名方式的签名验证中,如下所示,验证签名s对于作为签名对象的消息数据m是否正确。
首先,计算作为对于消息数据m的散列值的2·N维向量(m1,m2)。
接着,使用公钥h,通过下式计算多项式t。
t=s×h(mod q)
再者,求取2·N维向量(s,t)和2·N维向量(m1,m2)之间的距离,检查是否低于Normbound。如果低于Normbound,则判定为签名s正确,并受理签名s。如果是Normbound以上,则判定为签名s不正确,并拒绝签名s。
这样,在NTRUSign签名方式的签名验证中,如果签名向量与散列值向量非常接近,则决定为正确的签名。
<作为安全性根据的网格的问题>
NTRUSign签名方式以网格的问题为安全性的根据。
在下面,对其进行说明。
在NTRUSign签名方式中,取从私钥{(f,g),(F,G)}获得的
(f×α,g×α)+(F×β,G×β)
的2·N维向量全体,来作为网格(网格Lsec)。这里,α、β是任意的多项式。此时,将私钥中的(f,g)、(F,G)称为网格的基底(向量)。在图20(a)中图示出,取该2·N维向量全体来作为网格(网格Lsec)时的Lsec坐标系。
另一方面,还取将由公钥h和“1”组成的(1,h)及由“0”和q组成的(0,q)设为基底时的
(1×α′,h×α′)+(0,q×β′)
的2·N维向量全体,来作为网格(网格Lpub)。这里,α′、β′是任意的多项式。在图20(b)中图示出,取该2·N维向量全体来作为网格(网格Lpub)时的Lpub坐标系。
在签名验证中,求取作为签名向量的2·N维向量(s,t)822和作为从消息数据得到的散列值向量的2·N维向量(m1,m2)821之间的距离,检查是否低于Normbound。换言之,如图20(b)所示,检查在以2·N维向量(s,t)822为中心的半径Normbound的超球823内,是否存在2·N维向量(m1,m2)821。存在于超球823内的场合,决定为签名验证成功。不存在于超球823内的场合,决定为签名验证失败。
这里,网格Lsec和网格Lpub表示出相同的向量全体。但是,构成网格Lsec所需的基底向量(称为私钥基底向量)的范数与构成网格Lpub所需的基底向量(称为公钥基底向量)的范数相比,非常小。一般来说根据具有较大范数的基底向量,求取具有最小范数的基底向量的问题(称为最短基底向量问题)很困难。从而,根据公钥基底向量求取私钥基底向量也很困难,这成为对于密钥的安全性根据。凭借这种根据,一般认为难以根据私钥取得公钥。
如图20(a)所示,在NTRUSign签名方式的签名生成中,将与消息数据的散列值向量801H(m)=(m1,m2)接近的网格点的向量(最接近网格点),作为签名向量800(s,t)。此时,通过使用私钥基底802(f,g)及私钥基底803(F,G),计算映射于其基底上并且距离近的网格点,来求出最接近的网格点的向量。
这样,在NTRUSign签名方式中,签名向量(s,t)就成为与消息数据的散列值向量(m1,m2)最接近的网格点的向量。
另一方面,如图20(b)所示,采用Lpub坐标系的公钥基底向量812(1,h)及公钥基底向量811(0,q),因为基底向量的范数过大,所以难以计算距离近的网格点。
一般而言,将计算距离最近的网格向量的问题称为网格的最接近问题,NTRUSign签名方式对于签名的安全性以该网格的最接近问题为根据。
此外,作为下述签名方式,GGH签名方式已为众所周知,该签名方式如同NTRUSign签名方式那样,对于密钥以网格的最短基底向量问题为安全性的根据,对于签名以网格的最接近问题为安全性的根据(参见非专利文献6)。
专利文献1:日本特表2000-516733,“公钥加密***方法及装置”
专利文献2:WO2003050998,“Signing and verifying digital documentusing NTRU or convolution modular lattic vector crypotgraphic system”
非专利文献1:冈本龙明、山本博资“现代加密”、产业图书(1997年)
非专利文献2:J.Hoffstein,J.Pipher,and J.H.Silverman,“NTRU:A ringbased public key cryptosystem”,Lecture Notes in Computer Science,1423,pp.267-288,Springer-Verlag,1998.
非专利文献3:J.Hoffstein,J.Pipher,and J.Silverman,“NSS:An NTRULattice-Based Signature Scheme,”Advances in Cryptoplogy-Eurocrypt′01,LNCS,Vol.2045,pp.123-137,Springer-Verlag,2001
非专利文献4:J.Hoffstein,N.Graham,J.Pipher,J.Silverman and W.Whyte,“NTRUSign:Digital Signatures Using the NTRU Lattice,”CT-RSA′03,LNCS,Vol.2612,pp.122-140,Springer-Verlag,2003
非专利文献5:“Efficient Embedded Security Standards(EESS)EESS#1:Implementation Aspects of NTRUEncrypt and NTRUSign”,Ver2.0,June20th,2003
非专利文献6:O.Goldreich,S.Goldwasser and S.Halevi“Public-keycryptography from lattice reduction problems,”In Proc.CRYPTO′97,LNCS,Vol.1294,pp.112-131,Springer-Verlag,1997
发明内容
针对上述的NTRUSign签名方式,有一种被称为抄本攻击(Transcriptattack)的攻击。抄本攻击是根据多个签名文(消息数据和签名的对)求取私钥的攻击。下面,对于抄本攻击进行简单说明(详细情况参见非专利文献4)。
抄本攻击利用多个签名s和消息数据的散列值(m1,m2)的一部分m1之间的差分m1-s为
m1-s=e1×f+e2×F
(这里,e1、e2分别是其系数包括在-1/2到1/2的范围内的多项式)
的状况,通过计算差分m1-s的2次矩及4次矩的平均值,来求取作为私钥一部分的f、F。
这里,多项式a的2次矩a~指的是,
a=a_0+a_1·X+a_2·X^2+…+a_(N-2)·X^(N-2)+a_(N-1)·X^(N-1)和
a的逆a*=a_0+a_(N-1)·X+a_(N-2)·X^2+…+a_2·X^(N-2)+a_1·X^(N-1)
的积a~2=a×a*。
另外,4次矩a~4是a~2的2次幂,也就是说,a~4=a~2×a~2。
(m1-s的2次矩)=(e1×f+e2×F)×(e1*×f*+e2*×F*)=e1~×f~+e2~×F~+e1×f×e2*×F*+e2×F×e1*×f*
若签名文的个数增加,则m1-s的2次矩的平均中包含的e1~、e2~收敛为某个一定值k1、k2,上式e1×f×e2*×F*和e2×F×e1*×f*接近于0。从而,在签名文的个数较大的情况下,m1-s的2次矩的平均与k1×f~+k2×F~大致相等。进而,利用4次矩的平均,也能够同样获得与f及F相关的信息,根据两者的信息求取f。
根据非专利文献4,为了从2次矩及4次矩的平均获得与私钥有关的信息所需要的签名文的个数分别是10^4、10^8。从而,为了使NTRUSign签名方式的抄本攻击成功,一般认为需要10^8个以上的签名文。还有,抄本攻击在以网格的问题为安全性根据的其他签名方式(例如GGH签名方式)中也同样可能产生。
为了解决上述问题,本发明提供可以对抗上述抄本攻击的签名及验证方法、签名生成装置、签名验证装置、签名生成方法以及记录有签名生成所需的计算机程序的记录介质。
为了达到上述目的,作为本发明一个实施方式的方法用来将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,在对象数据中签名并进行验证,其特征为,包含:取得步骤,取得对象数据;变换步骤,利用比第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;签名步骤,在将确定私钥向量为基底向量的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;验证步骤,使用公钥向量和上述签名数据,将上述签名向量复原,验证由上述对象数据得到的向量和复原后的上述签名向量之间的距离是否为比上述第1大小大的第2大小以下;以及输出步骤,在是第2大小以下时,输出表示验证已成功的成功信息。
发明效果
根据该方法,产生下述这样的优良效果,也就是,即便进行抄本攻击的攻击者收集发送的对象数据及签名数据的对进行分析,也由于签名数据是针对利用比第1大小小的保密的干扰向量,对上述对象数据所生成的变换向量进行变换来生成的,因而进行抄本攻击的攻击者求取签名时所使用的私钥在计算量方面很难。另外,由于在签名数据的验证中,验证由上述对象数据得到的向量和上述签名向量之间的距离是否为比上述第1大小大的第2大小以下,在是第2大小以下时,视为验证成功,因而可以实现签名数据的验证。
根据该签名及验证方法,可以防止抄本攻击,其价值很大。
附图说明
图1是表示作为本发明所涉及的1个实施方式的数字签名***10结构的框图。
图2是表示均匀分布一例的附图。
图3表示分布表410的数据结构。
图4是表示不均匀分布一例的附图。
图5表示分布表450的数据结构。
图6是表示改进NTRUSign签名方式的签名生成处理的附图。
图7是表示改进NTRUSign签名方式的签名验证处理的附图。
图8是表示签名生成装置100结构的框图。
图9表示签名生成装置100具有的公钥证书存储部103、私钥存储部102及***参数存储部106中所记录的数据。
图10是表示签名生成部104结构的框图。
图11是表示签名验证装置200结构的框图。
图12表示签名验证装置200具有的CA公钥存储部202、签名数据集存储部203及***参数存储部205中所记录的数据。
图13是表示签名验证部204结构的框图。
图14是表示密钥生成装置300结构的框图。
图15表示密钥生成装置300具有的证书生成密钥存储部304及***参数存储部306中所记录的数据。
图16是表示数字签名***10动作的流程图。
图17是表示签名生成装置100动作的流程图。
图18是表示签名验证装置200中的签名验证动作的流程图。
图19是表示密钥生成装置1300动作的流程图。
图20是表示以往NTRUSign签名方式的附图。(a)图示出取2·N维向量全体来作为网格(网格Lsec)时的Lsec坐标系。(b)图示出取2·N维向量全体来作为网格(网格Lpub)时的Lpub坐标系。
图21表示分布表610的数据结构。
图22表示分布表650的数据结构。
符号说明
10数字签名***
20通信路径
100签名生成装置
200签名验证装置
300密钥生成装置
101发送部
102私钥存储部
103公钥证书存储部
104签名生成部
105签名数据集生成部
106***参数存储部
111散列值计算部
112向量生成部
113散列值变换部
114签名生成部
115签名确认部
116向量组选择存储部
201接收部
202CA公钥存储部
203签名数据集存储部
204签名验证部
205***参数存储部
211散列值计算部
212签名向量生成部
213距离判定部
301分布生成部
302密钥生成部
303证书生成部
304证书生成密钥存储部
305密钥设定部
306***参数存储部
具体实施方式
作为第一发明的方法用来将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,在对象数据中签名并进行验证,其特征为,包含:取得步骤,取得对象数据;变换步骤,利用比第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;签名步骤,在将私钥向量确定为基底向量的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;验证步骤,使用公钥向量和上述签名数据,将上述签名向量复原,验证由上述对象数据得到的向量和复原后的上述签名向量之间的距离是否为比上述第1大小大的第2大小以下;输出步骤,在是第2大小以下时,输出表示验证已成功的成功信息。
另外,作为第二发明的签名生成装置用来将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,生成对于对象数据的签名数据,其特征为,具备:取得机构,取得对象数据;保密存储机构,保密地存储有私钥向量;数据变换机构,利用比第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;签名生成机构,在将私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;输出步骤,输出上述对象数据和所生成的签名数据。
根据该结构,产生下述这样的优良效果,也就是,即使进行抄本攻击的攻击者收集发送的对象数据及签名数据的对进行分析,也由于签名数据是针对利用比第1大小小的保密的干扰向量,变换上述对象数据所生成的变换向量,来生成的,因而进行抄本攻击的攻击者求取签名时所使用的私钥在计算量方面很难。
另外,在作为第三发明的签名生成装置中,其特征为,上述保密存储机构还存储有分布,表示比上述第1大小小的多个备选向量所属的范围;上述数据变换机构从属于由上述分布所示的范围内的上述备选向量,选择1个备选向量,将其作为上述干扰向量。
根据该结构,由于签名生成的每次,都从多个备选向量选择1个备选向量将其作为干扰向量,因而使用的干扰向量可取得的范围扩大,可以对于进行攻击的攻击者,使求取私钥变得更加困难。
另外,在作为第四发明的签名生成装置中,其特征为,上述保密存储机构具有防篡改性,上述私钥及上述分布被保密地保护使之不能从外部获知。
根据该结构,由于选择的干扰向量被保密地保护,因而可以使求取私钥变得困难。
另外,在作为第五发明的签名生成装置中,其特征为,在由上述保密存储机构中所存储的上述分布所示的范围内,多个备选向量被进行了配置,以便被选择的概率不一样,上述数据变换机构按照上述概率,选择1个上述备选数据将其作为上述干扰向量。
根据该结构,签名生成的每次,使用的干扰向量可取得的范围都扩大,可以对于进行攻击的攻击者,使求取私钥变得更加困难。
另外,在作为第六发明的签名生成装置中,其特征为,由上述分布所示的范围具有多个区域,对于各区域预先规定该区域的选择概率,在上述多个区域的各自上,配置多个备选向量,上述数据变换机构根据上述选择概率来选择1个区域,从选择出的上述区域选择1个上述备选向量将其作为上述干扰向量。
另外,在作为第七发明的签名生成装置中,其特征为,上述数据变换机构包括:向量生成部,从属于由上述分布所示的范围内的上述备选向量,选择1个备选向量,将其作为上述干扰向量;加法部,通过对基于上述对象数据的向量,加上上述干扰向量,来生成上述变换向量。
另外,在第八发明的签名生成装置中,其特征为,上述向量生成部通过从根据上述分布预先选择出的多个备选向量,进行随机选择,来生成上述干扰向量。
另外,在作为第九发明的签名生成装置中,其特征为,上述分布包含于以上述第1大小为半径的超球内。
另外,在作为第十发明的签名生成装置中,其特征为,还包括公开存储机构,存储有比上述第1大小大的第2大小;上述数据变换机构还计算由上述对象数据得到的向量和上述变换向量之间的距离,在计算出的距离不是上述第2大小以下时,利用比第1大小小的保密的别的干扰向量,对取得的对象数据进行变换,生成别的变换向量。
另外,在作为第十一发明的签名生成装置中,其特征为,上述私钥向量对于作为定义了加法、减法、乘法和表示元的大小的范数的N维排列的集合的环R和正整数q,从上述环R的元f、g以及基于下述元Fq和(F,G)的上述元的4个组(f,g,F,G)获得,该元Fq是f(mod q)的倒数,该(F,G)满足f×G-g×F=q;上述公钥向量根据元h获得,该元h对上述正整数q来说与上述元g及上述元Fq的积mod q同余。
另外,作为第十二发明的签名验证装置用来验证签名数据,该签名数据是将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,由签名生成装置,利用比第1大小小的保密的干扰向量,从对象数据通过变换生成上述变换向量,在将密钥向量确定为基底的网格上,作为签名向量的一部分所生成的,该签名向量是与上述变换向量最接近的网格点,其特征为,具备:取得机构,取得上述对象数据及签名数据;存储机构,存储有公钥向量;验证机构,使用公钥向量和上述签名数据,将上述签名向量复原,验证由上述对象数据得到的向量和复原后的上述签名向量之间的距离是否为比上述第1大小大的第2大小以下;输出机构,在是第2大小以下时,输出表示验证已成功的成功信息。
根据该结构,由于在签名数据的验证中,验证由上述对象数据得到的向量和上述签名向量之间的距离是否为比上述第1大小大的第2大小以下,在是第2大小以下时,视为验证成功,因而可以实现签名数据的验证。
另外,作为第十三发明的签名生成方法在签名生成装置中使用,该签名生成装置将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,生成对于对象数据的签名数据,其特征为,包含:取得步骤,取得对象数据;数据变换步骤,利用比第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;签名生成步骤,在将私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;输出步骤,输出上述对象数据和所生成的签名数据。
另外,作为第十四发明的记录介质是在下述计算机中使用的记录有签名生成用计算机程序的计算机可读取的记录介质,该计算机将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,生成对于对象数据的签名数据,其特征为,记录有上述计算机程序,该计算机程序使上述计算机执行:取得步骤,取得对象数据;数据变换步骤,利用比第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;签名生成步骤,在将私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;输出步骤,输出上述对象数据和所生成的签名数据。
另外,作为第十五发明的***由将数据分割为多个,作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,进行签名的签名生成装置以及进行验证的签名验证装置构成,其特征为,上述签名生成装置具备:取得机构,取得对象数据;保密存储机构,保密地存储有私钥向量;数据变换机构,利用比第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;签名生成机构,在将私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;输出机构,输出上述对象数据和所生成的签名数据;上述签名验证装置具备:取得机构,取得上述对象数据及签名数据;存储机构,存储有公钥向量;验证机构,使用公钥向量和上述签名数据,将上述签名向量复原,验证由上述对象数据得到的向量和复原后的上述签名向量之间的距离是否为比上述第1大小大的第2大小以下;输出机构,在是第2大小以下时,输出表示验证已成功的成功信息
〔实施方式1〕
对于作为本发明所涉及的1个实施方式的数字签名***10,进行说明。
数字签名***10如图1所示,由消息生成装置30、签名生成装置100、签名验证装置200、密钥生成装置300及消息接收装置40构成,签名生成装置100和签名验证装置200经由以因特网为代表的通信路径20进行连接,签名生成装置100和密钥生成装置300通过经由保证了安全性的通信路径进行连接,或者采用其他保证了安全性的手段,来相互传输信息。
在数字签名***10中,消息生成装置30生成应发送的消息数据m(也称为签名的对象数据。),将所生成的消息数据m输出给签名生成装置100。接着,使用将NTRUSign签名方式改进后的改进NTRUSign签名方式,密钥生成装置300实施密钥生成,签名生成装置100生成对于消息数据m的签名数据SD,经由通信路径20向签名验证装置200发送包含消息数据m及签名数据SD在内的签名数据集SS,签名验证装置200接收签名数据集SS,验证接收到的签名数据集SS,将验证结果及消息数据m输出给消息接收装置40。消息接收装置40获取验证结果及消息数据m,根据接收到的验证结果,来决定接收到的消息数据m采用与否。
1.改进NTRUSign签名方式
改进NTRUSign签名方式以最短向量问题或者近似最短向量问题为安全性的根据。最短向量问题(Shortest Vector Problem)是从1个基底向量求取其网格中包含的“最短的向量”的问题。近似最短向量问题(ApproximateShortest Vector Problem)是近似地求取最短的向量(虽然不是最短向量,但是与之接近的大小的向量)的问题。
(1)改进NTRUSign签名方式的***参数
在改进NTRUSign签名方式中,除了和以往NTRUSign签名方式相同的非负整数参数N、q、df、dg之外,还存在距离L及L′。在以往的NTRUSign签名方式中,在验证时使用Normbound。与之相对,在改进NTRUSign签名方式中,如同后面所说明的那样,在验证时,取代Normbound而使用距离L′。
下面,说明这些参数的含义。
(i)参数N
改进NTRUSign签名方式是一种通过多项式的运算进行签名生成及签名验证的数字签名方式。在改进NTRUSign签名方式中处理的多项式的次数由参数N来决定。
在改进NTRUSign签名方式中处理的多项式对于参数N,是N-1次以下的整数系数多项式,在N=5时,例如是多项式X^4+X^3+1。
另外,公钥h、签名s全都作为N-1次以下的多项式来表现。另外,私钥是4个N-1次以下的多项式对(f,g,F,G)。也就是说,f、g、F、G都是N-1次以下的多项式。还有,在下面,也有时将4个组(f,g,F,G)取为2个对(f,g)、(F,G)所进一步构成的对,记述为{(f,g),(F,G)}。
这样,作为私钥的向量对于作为定义了加法、减法、乘法和表示元的大小的范数的N维排列的集合的环R和正整数q,从上述环R的元f、g以及基于下述元Fq和(F、G)的上述元的4个组(f,g,F,G)获得,该元Fq是f(mod q)的倒数,该(F、G)满足f×G-g×F=q。另外,作为公钥的向量,根据元h获得,该元h对于上述正整数q来说,与上述元g和上述元Fq的积mod q同余。
再者,在改进NTRUSign签名方式的多项式运算中,对于参数N,使用X^N=1这样的关系式进行运算,以使运算结果总是成为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各项的系数,是整数。
(ii)参数q
在改进NTRUSign签名方式中,使用作为“2”以上的整数的参数q。对于在改进NTRUSign签名方式中出现的多项式的各系数其运算为,取以q为模的余数。
(iii)参数df、dg
作为在改进NTRUSign签名方式中处理的私钥一部分的多项式f及多项式g的选择方法分别由参数df、dg来决定。多项式g在生成作为公钥的多项式h时,和多项式f一起使用。
多项式f选择为,N个系数之中,df个系数是“1”,且其他的系数为“0”。也就是说,多项式f是N-1次以下的多项式,虽然对于从0次(常数项)到N-1次的N个项,分别存在1个系数,合计有N个系数,但是选择为,这些N个系数之中,df个系数是“1”,且(N-df)个系数为“0“。
另外同样,多项式g选择为,dg个系数是“1”,且其他的系数为“0”。
(iv)参数L(距离)
参数L(也称为第1大小。)是2·N维向量空间内超球的半径。在下面,对于在改进NTRUSign签名方式中加上的随机向量的选择和超球及分布η之间的关系,进行说明。
在改进NTRUSign签名方式中,如下所述,对作为消息数据的散列值的2·N维向量(称为散列值向量),加上随机的向量(也称为干扰向量。),生成变换散列值向量。
分布η设定为包含于半径L的超球内,随机的向量从存在于分布η内的多个向量(也称为备选向量。)按等概率随机选择。从而,选择出的向量的范数为L以下。
在图2中表示分布η的一例。图2是将2·N维向量空间模式表现在2维的图纸上的附图,具有中心406,表现出半径L(距离402)的超球401。在超球401的内部,存在分布400。分布400完全包含在超球401内。从存在于分布400内的多个向量,例如随机选择向量403。还有,也有时选择向量404,并且还有时选择向量405。
将分布400的数据结构,表示于图3的分布表410中。
分布表410用来在2·N维向量空间上,规定分布400所占的空间结构,包含2·N个临界值对来构成。2·N个临界值对分别对应于2·N维向量的2·N个元素。2·N个临界值对由第1组及第2组构成,第1组包含N个临界值对,第2组包含剩余的N个临界值对。各临界值对包含下限值及上限值。
在2·N维向量空间上,对应于2·N维向量的2·N个元素,各临界值对中包含的下限值以上及上限值以下的空间是分布400所占的空间。各临界值已经设定,以使该空间包含于超球401的内部。
分布表410的第1组中包含的第0个临界值对内的下限值V1_0_min411及上限值V1_0_max412分别作为一例是“3”及“8”,第1组中包含的第N-1个临界值对内的下限值V1_(N-1)_min413及上限值V1_(N-1)_max414分别作为一例是“2”及“5”。另外,分布表410的第2组中包含的第0个临界值对内的下限值V2_0_min415及上限值V2_0_max416分别作为一例是“1”及“6”,第2组中包含的第N-1个临界值对内的下限值V2_(N-1)_min417及上限值V2_(N-1)_max418分别作为一例是“4”及“7”。
使用分布表410的2·N个临界值对,在概率上均等地,也就是均匀随机地选择各临界值对中包含的下限值以上且上限值以下的值。这样一来,就选择2·N个随机的值V1_0、V1_1、V1_2、…、V1_(N-1)、V2_0、V2_1、V2_2、…、V2_(N-1),将选择出的2·N个随机的值的组作为上述随机选择出的向量V(V1,V2)。
这里,V1=(V1_0,V1_1,V1_2,…,V1_(N-1))
      V2=(V2_0,V2_1,V2_2,…,V2_(N-1))
这样,图2表示出选择从原点朝向分布范围的任一点的向量的状况,在该分布的例子中,在分布的范围内均匀(以等概率)随机地选择向量。
参数L作为***参数而被公开。参数L作为一例,L=200。
接着,在图4中表示分布η的另一例。图4和图2相同,是将2·N维向量空间模式表现在2维的图纸上的附图,具有中心441,表现出半径L(距离442)的超球431。在超球431的内部,存在分布432。分布432完全包含在超球431内。
分布432如图4所示,其范围已分割为3份,由部分区域A(433),部分区域B(434)及部分区域C(435)构成。对于各部分区域,规定了选择该部分区域的概率。选择部分区域A(433)的概率是1/6,选择部分区域B(434)的概率是1/2,选择部分区域C(435)的概率是1/3。在使用该分布432时,首先,依赖于这些概率来选择部分区域A(433)、部分区域B(434)及部分区域C(435)的某一个,随后,在选择出的部分区域的范围内从备选向量随机选择向量。还有,这些概率的合计是“1”。
1/6+1/2+1/3=1
这样,在分布432中,多个备选向量其配置为,选择的概率不一样。
将分布432的数据结构,表示于图5的分布表450中。
分布表450用来在2·N维向量空间上,规定分布432所占的空间结构,包含多个部分表和发生概率的组来构成。具体而言,分布表450包含部分表451和发生概率454的组、部分表452和发生概率455的组以及部分表453和发生概率456的组。3个部分表451、452及453分别对应于图4的部分区域A(433)、部分区域B(434)及部分区域C(435)。与各部分表对应的发生概率是选择图4所示分布432的部分区域的概率。各部分表部具有和图3所示的分布表410相同的结构,各自包含2·N个临界值对来构成。
依赖于分布表450中包含的3个发生概率454、455及456,选择一个部分表,在选择出的部分表所示的范围内,随机选择向量。
(v)参数L′(距离)
在改进NTRUSign签名方式中,如下所述,计算根据签名s制作的2·N维向量(称为签名向量)和散列值向量之间的距离,根据该距离来判定是否是正确的签名。参数L′(第2大小)是在该判定时使用的阈值。也就是说,如果计算出的上述距离为L′以下,则作为正确的签名来受理,如果比L′大,则作为不正确的签名加以拒绝。
在非专利文献4中,作为以往NTRUSign签名方式的参数例,举出了(N,q,df,dg)=(251,128,73,71)的例子。
在改进NTRUSign签名方式中,也可以使用同样的参数例。在改进NTRUSign签名方式中,在选择出距离L的超球内的向量时,进行调节以使散列值向量和所正确生成的签名向量之间的距离大致为L′。
例如,参数L、L′例如是(L,L′)=(200,500)。在上述以往NTRUSign签名方式的参数例中,Normbound为300~310,这种情况下散列值向量和所正确生成的签名向量的距离大致在Normbound以内。
与之相对,在改进NTRUSign签名方式中,变换散列值向量和签名向量之间的距离大致在Normbound以内。因为变换散列值向量和散列值向量之差是随机向量,其距离为L以内,所以将L′设定为Normbound+L左右就可以。从而,假设L为200,则将L′设定为500~510就可以。这样,L′就变得比L大。
(2)消息数据的散列值、范数及向量间的距离
在改进NTRUSign签名方式中,制作对于消息数据的散列值的签名。消息数据的散列值是N次多项式的对,视为和2·N维的向量相同。关于散列函数,已在非专利文献1中进行了详细说明。
作为一例,假设根据消息数据m,生成3514位(=1757位×2=7位×251×2)的散列值。这里,设为N=251。若将所生成的3514位的散列值从开始分别按7位隔开,则合计形成251×2=502个位串,将这些502个位串设为N(=251)次多项式的对的各系数。
这里,假设3514位的散列值为(Bit1-1,Bit1-2,Bit1-3,…Bit1-251)、(Bit2-1,Bit2-2,Bit2-3,…Bit2-251),并且作为对于消息数据m的散列值的2·N维向量H=(m1,m2)(m1及m2是N次多项式),则N次多项式m1的系数是(Bit1-1,Bit1-2,Bit1-3,…Bit1-251),N次多项式m2的系数是(Bit2-1,Bit2-2,Bit2-3,…Bit2-251)。这里,Biti-j(i=1、2,j=1、2、3、…251)是7位的长度。
在改进NTRUSign签名方式中,也使用和以往NTRUSign签名方式相同的向量的距离。下面表示其定义。
如下定义多项式a=a_0+a_1·X+a_2·X^2+…+a_(N-1)·X^(N-1)的范数‖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)的范数‖(a,b)‖。
‖(a,b)‖=sqrt(‖a‖^2+‖b‖^2)
多项式a、b的对(a,b)和c、d的对(c,d)之间的距离用‖c-a,d-b‖进行定义。
(3)改进NTRUSign签名方式的密钥生成
在改进NTRUSign签名方式中,如上所述,使用参数df、dg来随机生成多项式f、多项式g。然后,象非专利文献4所述的那样,使用作为Fq×f=1(mod q)的多项式Fq,通过
h=Fq×g(mod q)
来生成多项式h。进而,求取满足下式的那种范数小的多项式F、G。
f×G-g×F=q
这里,x=y(mod q)是对于多项式y的第i次(0≤i≤N-1)的系数,将用模q除该第i次的系数以使余数包括在0到q-1的范围内时的余数,设为多项式x的第i次系数的运算。也就是说,是将对y的各系数进行mod q运算使之包括在0到(q-1)的范围内而得到的多项式作为多项式x的运算。
再者,还任意设定分布η,以使该分布η包含于距离L的超球内。作为要设定的信息,是分布的范围、分布的范围内选择的概率。例如,设定图2或图4所示的那种分布。
将私钥设为{(f,g),(F,G)}和分布η,将公钥设为h。私钥是用来生成签名的密钥,也被称为签名生成密钥。另外,公钥是用来验证签名的密钥,也被称为签名验证密钥。
分布η因为包含在私钥中,所以当然要事先保密地保持。还有,虽然也可以使分布η的全部成为保密,例如使图2所示的分布400的范围成为保密,但是也可以事先将根据分布400,均匀随机地选择向量的情况进行公开。另外,在图4所示的分布432中,既可以将分布432的范围及选择各部分区域的概率双方设为保密,也可以公开分布432的范围,将选择各部分区域的概率设为保密。
(4)改进NTRUSign签名方式的签名生成
对于改进NTRUSign签名方式的签名生成,使用图6及图17进行说明。
在改进NTRUSign签名方式的签名生成中,计算作为签名对象的消息数据m的签名s。图6是表示签名生成处理的附图,图示出取2·N维向量全体来作为网格(网格Lsec)时的Lsec坐标系。图17是表示签名生成处理过程的流程图。
首先,计算作为对于消息数据m的散列值的2·N维向量H=(m1,m2)(m1及m2分别是N次多项式)(步骤SG1)。在下面,将H称为散列值向量。另外,在图6中用参照符号501来表示散列值向量H。
接着,在分布的范围内随机选择向量V,计算变换散列值向量H′=H+V(步骤SG2)。这里,将m1′、m2′设为满足H′=(m1′,m2′)的多项式。在图6中用参照符号502来表示变换散列值向量H′。
采用和以往NTRUSign签名方式相同的方法,计算与变换散列值向量H′最接近的网格点的向量S=(s,t)(步骤SG3)。在图6中用参照符号503来表示向量S。
使用该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的系数取用模q相除使之包括在<-q/2>+1到<q/2>的范围内时的余数。也就是说,在用模q相除时的余数是<q/2>到q-1的情况下,只减去q,进行调整使之包括在上述范围内。这里,<x>表示在x以下的数之中最大的数。例如,<-1/2>=-1。
接着,通过下式计算s、t。
s=f×B+F×b(mod q)
t=g×B+G×b(mod q)
接着,计算散列值向量H和S的距离,判定H和S的距离是否为L′以内(步骤SG4)。如果是L′以内(步骤SG4中的是),则将s作为签名(步骤SG5)。如果不是L′以内(步骤SG4中的否),则从步骤SG2重新执行。
在将L及L′如同上述例子那样设定成(L,L′)=(200,500)的情况下,在步骤SG4中,因为散列值向量H和S的距离大致包括在L′以内,所以返回步骤SG2的次数不太多。
(5)改进NTRUSign签名方式的签名验证
对于改进NTRUSign签名方式的签名验证,使用图7及图18进行说明。
在改进NTRUSign签名方式的签名验证中,验证签名s是否是作为签名对象的消息数据m正确的签名。图7是表示签名验证处理的附图,图示出取2·N维向量全体来作为网格(网格Lpub)时的Lpub坐标系。图18是表示签名生成处理过程的流程图。
首先,计算作为对于消息数据m的散列值的2·N维向量H=(m1,m2)(步骤SV1)。在图7中用参照符号531来表示向量H。
接着,使用公钥h,通过下式计算多项式t,将签名向量S=(s,t)复原(步骤SV2)。在图7中用参照符号532来表示签名向量S。
t=s×h  (mod q)
求取H和S的距离,检查求出的距离是否为L′以下(步骤SV3)。如果是L′以下(步骤SV3中的是),则判定为签名s正确,受理签名s,并输出OK(步骤SV4)。如果比L′大(步骤SV3中的否),则判定为签名s非法,拒绝签名s,并输出NG(步骤SV5)。
2.各装置的结构
(1)签名生成装置100的结构
签名生成装置100生成应发送给对方的对于消息数据m的签名数据集SS。签名生成装置100如图8所示,具备发送部101、私钥存储部102、公钥证书存储部103、签名生成部104、签名数据集生成部105及***参数存储部106。
私钥存储部102具有防篡改性,如图9所示,预先存储有私钥{(f,g),(F,G)}及作为私钥的分布η。私钥及分布被保密地保护使之不能从外部获知。
***参数存储部106如图9所示,预先作为***参数,存储有参数N、参数q及参数L′(距离)。
公钥证书存储部103如图9所示,预先存储有公钥h的证书CP。证书CP包括公钥h和对于公钥h的由密钥生成装置300而产生的签名数据SP。签名数据SP也使用改进NTRUSign签名方式来生成。另外,设为证书CP是预先赋予的。还有,证书CP除了公钥h及签名数据SP之外,例如还可以包含用户的标识符或证书的期限等数据。
签名生成部104如上所述,根据改进NTRUSign签名方式,使用私钥存储部102中所存储的私钥{(f,g),(F,G)}及分布η,生成对于消息数据m的签名数据SD。
签名数据集生成部105从公钥证书存储部103获取证书CP,从签名生成部104获取签名数据SD,生成由消息数据m、证书CP及签名数据SD构成的签名数据集SS。
发送部101将所生成的签名数据集SS,经由通信路径20发送给签名验证装置200。
(签名生成部104的结构)
签名生成部104如图10所示,包括散列值计算部111、向量生成部112、散列值变换部113、签名生成部114、签名确认部115及向量组选择存储部116。
散列值计算部111执行改进NTRUSign签名方式的签名生成处理内步骤SG1的处理,计算对于消息数据m的散列值向量H。
向量生成部112生成改进NTRUSign签名方式的签名生成处理内在步骤SG2中使用的向量V。
散列值变换部113使用由向量生成部112所生成的向量V,执行改进NTRUSign签名方式的签名生成处理内步骤SG2的处理,生成变换散列值向量H′=H+V。
签名生成部114执行改进NTRUSign签名方式的签名生成处理内步骤SG3的处理,生成签名向量S=(s,t)。
签名确认部115执行改进NTRUSign签名方式的签名生成处理内步骤SG4的处理,确认签名向量。在确认后的结果为,散列值向量和签名向量不是距离L′以内时,从向量生成部112的处理重新执行。在是距离L′以内时,将签名向量S=(s,t)的s作为签名数据SD。
(2)签名验证装置200的结构
签名验证装置200如图11所示,具备接收部201、CA公钥存储部202、签名数据集存储部203、签名验证部204及***参数存储部205。
***参数存储部205如图12所示,预先作为***参数,存储有参数N、参数q及参数L′(距离)。
CA公钥存储部202如图12所示,预先存储有用来验证证书CP的密钥生成装置300的公钥KCP。
接收部201经由通信路径20接收从签名生成装置100所发送的签名数据集SS,将接收到的签名数据集SS写入签名数据集存储部203中。
签名数据集存储部203如图12所示,存储接收到的签名数据集SS。签名数据集SS由消息数据m、签名数据SD及证书CP构成。证书CP包含公钥H及签名数据SP。
签名验证部204验证签名数据集SS中包含的签名数据SD,另外,还验证证书CP中包含的签名数据SP。
(签名验证部204的结构)
签名验证部204如图13所示,由散列值计算部211、签名向量生成部212及距离判定部213构成。
签名验证部204验证签名数据SD,并验证证书CP中包含的签名数据SP。在下面,说明对签名数据SD的签名验证。有关签名数据SP,由于可以将消息数据m取代为公钥h,将签名数据SD取代为SP,同样地进行验证,因而省略其详细的说明。
散列值计算部211执行改进NTRUSign签名方式的签名验证处理内步骤SV1的处理,计算对于消息数据m的散列值向量H。
签名向量生成部212执行改进NTRUSign签名方式的签名验证处理内步骤SV2的处理,从签名数据SD生成签名向量S。
距离判定部213执行改进NTRUSign签名方式的签名验证处理内步骤SV3的处理,计算散列值向量H和签名向量S的距离。在其距离为L′以内时,判定为签名数据正确。如果比L′大,则判定为签名数据非法。
(3)密钥生成装置300的结构
密钥生成装置300如图14所示,具备分布生成部301、密钥生成部302、证书生成部303、证书生成密钥存储部304、密钥设定部305及***参数存储部306。
***参数存储部306如图15所示,预先作为***参数,存储有参数N、参数q及参数L′(距离)、参数L(距离)及参数df、dg。
证书生成密钥存储部304如图15所示,预先存储有作为密钥生成装置300的私钥的证书生成密钥KCS。
分布生成部301例如通过生成图3所示的分布表410或者图5所示的分布表450,来生成改进NTRUSign签名的密钥生成处理内的分布η,将所生成的分布η输出给密钥生成部302。
具体而言,如下所述,分布生成部301生成分布表410。
分布生成部301从***参数存储部306读出参数N及参数L,生成具有用户存储2·N个临界值对的区域的分布表。接着,针对各临界值对,使之产生随机数,随机决定该临界值对中包含的下限值。接着,使之产生随机数,随机决定比该下限值大的上限值。对于全部的临界值对都进行下限值的决定和上限值的决定。将决定出的下限值及上限值存储于上述分布表中。这样就生成分布表410。还有,各下限值及各上限值决定为,分布内向量的范数为L以下。
另外,作为别的例子,如下所述,分布生成部301生成分布表450。
分布生成部301从***参数存储部306读出参数N及参数L,使之产生随机数,决定分布表450中包含的部分表个数。作为一例,假设作为随机数生成了“3”。这种情况下,生成3个部分表,以便各部分表具备用于存储2·N个临界值对的区域。接着,随机决定3个发生概率(各发生概率比“0”大,并且比“1”小)。这里,使3个发生概率的合计为“1”。
接着,对于各部分表,和上述分布表410相同,决定各临界值对中包含的下限值及上限值,存储于各部分表中。
密钥生成部302从***参数存储部306读出参数N、参数q、参数df、dg及参数L,如上所述,采用改进NTRUSign签名方式的密钥生成处理方法,生成私钥{(f,g),(F,G)}及公钥h。另外,密钥生成部302还从分布生成部301获取分布η。接着,密钥生成部302将私钥{(f,g),(F,G)}、公钥h及分布η输出给密钥设定部305。另外,还将公钥h输出给证书生成部303。
证书生成部303从证书生成密钥存储部304读出证书生成密钥KCS,从密钥生成部302获取公钥h,使用所读出的证书生成密钥KCS,生成对于公钥h的证书CP。这里,证书CP由公钥h和使用公钥h之证书生成密钥KCS的签名数据SP构成。还有,签名数据SP的生成采用和由签名生成装置100的签名生成部104做出的签名生成方法相同的签名生成方法,进行。
密钥设定部305将私钥{(f,g),(F,G)}及作为私钥的分布η写入到签名生成装置100的私钥存储部102中。另外,还将证书CP写入到签名生成装置100的公钥证书存储部103中。
3.数字签名***10的动作
对于数字签名***10的概要动作,使用图16所示的流程图进行说明。
签名生成装置100生成签名数据(步骤S101),生成签名数据集SS(步骤S102),将所生成的签名数据集SS经由通信路径20发送给签名验证装置200(步骤S103)。
签名验证装置200的接收部201经由通信路径20接收从签名生成装置100所发送的签名数据集SS,将接收到的签名数据集SS存储于签名数据集存储部203中(步骤S201)。
签名验证部204针对签名数据集SS之中的证书CP中包含的公钥h和其签名数据SP,使用CA公钥存储部202中所存储的密钥生成装置300的公钥KCP,来验证签名数据SP是否是公钥h正确的签名(步骤S202)。在签名数据SP不正确的情况下(步骤S203),输出NG(步骤S107),并结束。
在签名数据SP正确的情况下(步骤S203),签名验证部204针对签名数据集SS之中的消息数据m和其签名数据SD,使用公钥h来验证签名数据SD是否是消息数据m正确的签名(步骤S204)。在签名数据SD不正确的情况下(步骤S205),输出NG(步骤S207),并结束。在签名数据SD正确的情况下(步骤S205),输出OK(步骤S206),并结束。
(2)签名生成装置100的动作
对于签名生成装置100的动作,使用图17所示的流程图进行说明。
散列值计算部111计算对于消息数据m的散列值向量H(步骤SG1)。
向量生成部112生成向量V,散列值变换部113生成变换散列值向量H′=H+V(步骤SG2)。
签名生成部114生成签名向量S=(s,t)(步骤SG3)。
签名确认部115确认签名向量(步骤SG4)。在确认后的结果为,散列值向量和签名向量不是距离L′以内的情况下(步骤SG4中的否),返回步骤SG2,从向量生成部112的处理重新执行。在是距离L′以内的情况下(步骤SG4中的是),将签名向量S=(s,t)作为签名数据SD(步骤SG5)。
(3)签名验证装置200的签名验证部204的动作
对于签名验证装置200的签名验证部204的签名验证动作,使用图18所示的流程图进行说明。
签名验证部204计算作为对于消息数据m的散列值的2·N维向量H=(m1,m2)(步骤SV1),使用公钥h,通过t=s×h(mod q),来计算多项式t,将签名向量S=(s,t)复原(步骤SV2),求取H和S的距离,检查求出的距离是否为L′以下(步骤SV3),如果是L′以下(步骤SV3中的是),则判定为签名s正确,受理签名s,并输出OK(步骤SV4)。如果比L′大(步骤SV3中的否),则判定为签名s非法,拒绝签名s,并输出NG(步骤SV5)。
(4)密钥生成装置300的动作
密钥生成装置300将私钥{(f,g),(F,G)}、分布η和证书CP设定于签名生成装置100中。下面,使用图19所示的流程图,对于其动作进行说明。
密钥生成装置300的密钥生成部302生成私钥{(f,g),(F,G)}和公钥h(步骤S401),分布生成部301生成分布η(步骤S402),证书生成部303使用证书生成密钥存储部304中所存储的证书生成密钥KCS,生成对于公钥h的证书CP(步骤S403),密钥设定部305将私钥{(f,g),(F,G)}、分布η及证书CP分别存储于签名生成装置100的私钥存储部102和公钥证书存储部103中(步骤S404)。
4.实施方式1的效果
在实施方式1的数字签名***10中如图7所示,隐藏了以签名向量S作为最接近网格的向量的变换散列值向量H′,未发送给验证者。因此,在发生了向验证者发送时通信路径上的攻击者监听的场合,或验证者自身为攻击者的场合下,即便攻击者尝试抄本攻击,也因为无法获知向量和其最接近网格的向量之间的差分的分布,所以抄本攻击变得很难。
抄本攻击利用了各个签名向量和散列值之差除私钥的相关性之外都是均匀分布的性质。在此基础上,通过收集多个签名数据,使用与差分的分布有关的信息(分布的范围或发生概率),以统计的形式去除均匀分布的部分,而只提取私钥的部分。即便在使该抄本攻击发展,执行使用签名向量和散列值向量之间的差分分布的攻击的情况下,也因为分布的范围为保密,无法满足分布的范围为已知的条件,所以不能实现预测分布后的攻击,这种攻击变得很难。在下面,对于该情况再稍微详细地进行说明。
签名向量是使用分布η来变换散列值向量所得到的变换散列值向量的最接近网格点的向量。这里,分布η因为分布的范围为保密,所以攻击者不清楚签名向量和散列值向量之间的差分分布的范围。因此,上述那种攻击变得很难。
另外,在虽然攻击者已知分布的范围,但是分布不均匀,并且象图4那样各部分区域的发生概率不是已知的情况下,同样抄本攻击变得很难。
还有,即便在对于攻击者来说,分布的范围为已知,并且发生概率也为已知的情况下,也由于对散列值向量加上随机的向量V,因而分布的范围增大。在抄本攻击中,为了去除均匀分布的部分,需要依赖于其分布大小的签名的采样数。从而,具有因为通过加上随机的向量V,分布的范围增大,并且抄本攻击所需要的签名的采样数增多,所以攻击变得很难这样的效果。
5.如同上面所说明的那样,本发明的目的为提供一种可以防止上述的抄本攻击,基于以网格的问题为安全性根据的签名方式,特别是NTRUSign签名方式的数字签名***。
本发明的1个方式是一种签名生成装置,使用签名方式,生成对于消息数据的签名数据,其特征为,上述签名方式以作为向量集合的网格的最接近问题为安全性的根据,包含:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述签名生成装置具备:私钥存储部,存储为了生成上述签名数据所使用的上述私钥;签名生成部,使用上述私钥存储部中所存储的上述私钥,生成对于上述消息数据的作为上述网格元的上述签名数据;上述私钥包含预定向量的分布,上述签名生成部包括:向量生成机构,生成基于上述分布的向量;消息变换机构,根据上述向量来变换上述消息数据,生成变换消息数据;签名生成机构,使用上述变换消息数据来作为上述消息数据,生成上述签名数据。
这里,上述分布也可以不均匀。
这里,上述分布的范围也可以为保密。
这里,也可以为,上述分布的范围分割为多个区域,预先规定各区域的选择概率,上述向量生成机构根据上述选择概率来选择上述区域,根据选择出的上述区域进行向量生成。
这里,也可以为,上述向量生成机构生成根据上述分布随机选择出的向量,上述消息变换机构对上述消息数据加上上述向量,生成上述变换消息数据。
这里,上述向量生成机构也可以通过从根据上述分布预先选择出的多个向量,进行随机选择,来生成向量。
这里,上述分布也可以包含于预定距离L的超球内。
这里,也可以为,上述公钥包含与上述距离L相关的距离L′,上述签名生成部在上述消息数据和上述签名数据之间的距离不是L′以内的情况下,重新计算上述变换消息数据。
这里,上述公钥也可以包含上述距离L′。
这里,上述距离L′也可以是上述签名方式的***参数。
这里,也可以为,上述私钥基底向量对于作为定义了加法、减法、乘法和表示元的大小的范数的N维排列的集合的环R和正整数q,从上述环R的元f、g以及基于下述元Fq和(F,G)的上述元的4个组(f,g,F,G)获得,该元Fq是f(mod q)的倒数,该(F,G)满足f×G-g×F=q;上述公钥基底向量根据元h获得,该元h对于上述正整数q,与上述元g及上述元Fq的积mod q同余。
这里,上述私钥存储部也可以实施篡改攻击的应对措施。
另外,本发明的另1个方式是一种签名验证装置,使用签名方式,来验证对于消息数据的签名数据,其特征为,上述签名方式以作为向量集合的网格的最接近问题为安全性的根据,包含:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和包括用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述签名验证装置具备:公钥存储部,存储为了验证上述签名数据所使用的上述公钥;签名验证部,使用上述公钥存储部中所存储的上述公钥,来验证对于上述消息数据的作为上述网格元的上述签名数据;上述私钥包括预定距离L的超球内包含的预定向量的分布,上述公钥包含与上述距离L相关的距离L′,上述签名验证部判定上述消息数据和上述签名数据的距离是否为L′以内。
这里,也可以是一种认证数据生成装置,使用签名方式,生成对于询问数据的作为响应数据的认证数据,上述签名方式以作为向量集合的网格的最接近问题为安全性的根据,包含:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和包括用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述认证数据生成装置具备:私钥存储部,存储为了生成上述认证数据所使用的上述私钥;认证数据生成部,使用上述私钥存储部中所存储的上述私钥,生成对于上述询问数据的上述认证数据;上述私钥包含预定向量的分布,上述认证数据生成部包含:向量生成机构,生成基于上述分布的向量;消息数据生成机构,生成对于上述询问数据的作为散列值的上述消息数据;消息变换机构,根据上述向量来变换上述消息数据,生成变换询问数据;认证数据生成机构,生成使用上述变换消息数据来作为上述消息数据时的上述签名数据,来作为上述认证数据。
另外,本发明的另1方式是一种签名生成方法,使用以作为向量集合的网格的最接近问题为安全性根据的签名方式,来生成对于消息数据的签名数据,其特征为,包含:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和包括用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述私钥包含预定向量的分布,上述签名生成步骤针对使用基于上述分布的向量来变换上述消息数据后的变换消息数据,使用上述私钥基底向量来生成作为上述网格元的上述签名数据。
这里,上述分布也可以不均匀。
这里,上述分布的范围也可以为保密。
这里,也可以为,上述分布的范围分割为多个区域,预先规定各区域的选择概率,上述签名生成步骤使用根据上述选择概率来选择上述区域,并根据选择出的上述区域所生成的向量。
这里,上述签名生成步骤也可以对上述消息数据,加上根据上述分布随机选择出的向量,生成上述变换消息数据。
这里,上述分布也可以包含于预定距离L的超球内。
另外,本发明的另1个方式是一种使签名生成装置执行的程序,该签名生成装置使用以作为向量集合的网格的最接近问题为安全性根据的签名方式,来生成对于消息数据的签名数据,其特征为,使上述签名生成装置执行:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和包括用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述私钥包含预定向量的分布,上述签名生成步骤针对使用基于上述分布的向量来变换上述消息数据后的变换消息数据,使用上述私钥基底向量来生成作为上述网格元的上述签名数据。
这里,上述程序也可以记录在记录介质中。
另外,本发明的另1个方式是一种签名生成装置的集成电路,该签名生成装置使用签名方式,来生成对于消息数据的签名数据,其特征为,上述签名方式以作为向量集合的网格的最接近问题为安全性的根据,包含:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和包括用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述签名生成装置具备:私钥存储部,存储为了生成上述签名数据所使用的上述私钥;签名生成部,使用上述私钥存储部中所存储的上述私钥,生成对于上述消息数据的作为上述网格元的上述签名数据;上述私钥包含预定向量的分布,上述签名生成部包含:消息变换机构,根据上述向量来变换上述消息数据,生成变换消息数据;签名生成机构,使用上述变换消息数据来作为上述消息数据,生成上述签名数据。
另外,本发明的另1个方式是一种由签名生成装置和签名验证装置组成的数字签名***,该签名生成装置使用签名方式,生成对于消息数据的签名数据,该签名验证装置验证上述签名数据,其特征为,上述签名方式以作为向量集合的网格的最接近问题为安全性的根据,包含:密钥生成步骤,生成包括用来构成下述私钥基底向量的信息在内的私钥和包括用来构成下述公钥基底向量的信息在内的公钥,该私钥基底向量是保密的网格的基底向量,该公钥基底向量是表现和上述私钥基底向量相同的上述网格的公开的基底向量;签名生成步骤,使用上述私钥,生成对于上述消息数据的、由1个以上上述网格的元组成的上述签名数据;签名验证步骤,使用上述公钥来验证上述签名数据;上述签名生成装置具备:私钥存储部,存储为了生成上述签名数据所使用的上述私钥;签名生成部,使用上述私钥存储部中所存储的上述私钥,生成对于上述消息数据的作为上述网格元的上述签名数据;上述签名验证装置具备:公钥存储部,存储为了验证上述签名数据所使用的上述公钥;签名验证部,使用上述公钥存储部中所存储的上述公钥,来验证对于上述消息数据的作为上述网格元的上述签名数据;上述私钥包含预定向量的分布,上述签名生成部包含:向量生成机构,生成基于上述分布的向量;消息变换机构,根据上述向量来变换上述消息数据,生成变换消息数据;签名生成机构,使用上述变换消息数据来作为上述消息数据,生成上述签名数据;上述签名验证部判定上述消息数据和上述签名数据的距离。
6.异例
上面所说明的实施方式是本发明实施的一例,本发明并不对该实施方式做出任何限定,在不脱离其宗旨的范围内能够以各种各样的方式加以实施。例如,下面那种情形也包含于本发明中。
(1)在实施方式1的数字签名***10中,虽然根据分布来选择随机的向量,但是也可以预先求取基于分布的向量进行存储,使用所存储的该向量。另外,也可以预先求取多个基于多个分布的向量进行存储,从所存储的多个向量选择1个向量。
(2)在数字签名***10中,虽然加上向量V来生成变换散列值向量,但是不限于此。例如,也可以加上使向量V成为n倍(n为0以外的整数)后的向量,来生成变换散列值向量。另外,还可以减去向量V来生成变换散列值。
(3)改进NTRUSign签名方式中的L和L′虽然设为(L,L′)=(200,500),但是也可以是其他的值。例如,也可以是(L,L′)=(50,350)。另外,L和L′之差虽然设为和以往NTRUSign签名方式的Normbound相同的程度,但是也可以比Normbound小。L′如果大致的散列值向量和所正确生成的签名向量的距离是包括在该值以下的值,则也可以是任意。
(4)在改进NTRUSign签名方式中,虽然将距离L作为***参数进行了公开,但是也可以按生成签名的每名用户设为不同的值。那种情况下,也可以将L′包含于公钥内,通知给验证签名的用户。另外,也可以使距离L成为保密。
(5)在改进NTRUSign签名方式中,虽然作为分布η使用了图2或图4所示的分布400、432,但是不限于此。例如,也可以将某个维(例如第i个,也就是i-1次的项)的要素限制为预定的范围(例如2以上5以下)内。
(6)在NTRUSign签名方式中,因为在将私钥中的(f,g)、(F,G)设为网格的基底向量(私钥基底向量),并将公钥中从h和作为***参数的q获得的(1,h)、(0,q)设为网格的基底向量(公钥基底向量)时,从各个基底向量获得的网格点相同,所以称为以网格的问题(网格的最接近问题)为根据的签名方式。改进NTRUSign签名方式也具有同样的私钥基底向量和公钥基底向量。
在本发明中,虽然作为签名方式使用了以NTRUSign签名方式为根据的改进NTRUSign签名方式,但是不限于此。抄本攻击也可以在其他以网格的问题为根据的签名方式,例如GGH签名方式中适用。作为签名方式,也可以以抄本攻击可适用的下述签名方式例如GGH签名方式为根据,上述签名方式以网格的问题为根据。GGH签名方式已在非专利文献6中进行了详细说明。也可以以其他的下述签名方式为根据,该签名方式以网格的最接近问题为签名安全性的根据。
(7)对于作为分布η之数据结构的分布表另一例,进行说明。
图21所示的分布表610由3个分布信息i(i=1、2、3)构成,分布信息i包含下限值C_i_min、上限值C_i_max、多项式Base1_i及多项式Base2_i。
在设为i=1时,均匀随机地选择下限值C_1_min以上且上限值C_1_max以下的C_1,在设为i=2时,均匀随机地选择下限值C_2_min以上且上限值C_2_max以下的C_2,在设为i=3时,均匀随机地选择下限值C_3_min以上且上限值C_3_max以下的C_3。
接着,计算V1=C_1×Base1_1+C_2×Base1_2+C_3×Base1_3,并且计算V2=C_1×Base2_1+C_2×Base2_2+C_3×Base2_3,设为V=(V1,V2)。
在上述分布之中范数变得最大的向量V_max(=(V1_max,V2_max))是
V1_max=c_1_max×Base1_1+c_2_min×Base1_2+c_3_max×Base1_3
V2_max=c_1_max×Base2_1+c_2_min×Base2_2+c_3_max×Base2_3
其范数是194.9<200。
在分布表610中,基础的多项式Base1_i,Base2_i(i=1、2、3)虽然具有3个系数(权重),但是不限于此。例如,既可以是2个,也可以是4个以上。
另外,在分布表610中,虽然对于Base1_i,Base2_i的各自,多项式的个数是3个,但是既可以是2个,也可以是4个以上。
(8)对于作为分布η之数据结构的分布表再一例,进行说明。
图22所示的分布表650由3个分布信息i(i=1、2、3)构成,分布信息i包含第1子分布信息及第2子分布信息,第1子分布信息包含下限值C_1_i_min、上限值C_1_i_max及多项式Base1_i,第2子分布信息包含下限值C_2_i_min、上限值C_2_i_max及多项式Base2_i。
在设为i=1时,均匀随机地选择下限值C_1_1_min以上且上限值C_1_1_max以下的C_1_1,并且均匀随机地选择下限值C_2_1_min以上且上限值C_2_1_max以下的C_2_1。在设为i=2时,均匀随机地选择下限值C_1_2_min以上且上限值C_1_2_max以下的C_1_2,并且均匀随机地选择下限值C_2_2_min以上且上限值C_2_2_max以下的C_2_2。在设为i=3时,均匀随机地选择下限值C_1_3_min以上且上限值C_1_3_max以下的C_1_3,并且均匀随机地选择下限值C_2_3_min以上且上限值C_2_3_max以下的C_2_3。
接着,计算V1=C_1_1×Base1_1+C_1_2×Base1_2+C_1_3×Base1_3,并计算V2=C_2_1×Base2_1+C_2_2×Base2_2+C_2_3×Base2_3,设为V=(V1,V2)。
在上述分布之中范数变得最大的向量V_max(=(V1_max,V2_max))是
V1_max=c_1_1_max×Base1_1+c_1_2_max×Base1_2+c_1_3_max×Base1_3
V2_max=c_2_1_max×Base2_1+c_2_2_min×Base2_2+c_2_3_min×Base2_3
其范数是199.1<200。
这里,c_1_i或c_2_i虽然是在min到max之间均匀随机地选择(生成)的,但是不限于此。例如,也可以按照高斯分布随机选择。那种情况下,要预先决定平均值和分散,按照高斯分布使之发生。
还有,有关高斯分布的发生方法,已在下面的文献中进行了详细记述。
D.E.Knuth,“THE ART OF COMPUTER PROGRAMMING,2nd ed.,
Vol.2:Seminumerical Algorithms”,ADDISON-WESLEY,1981,pp.129-130
(9)在上述实施方式中,虽然设为在签名验证时,根据“L以内”判定为正确,但是不限定于此,也可以设为根据“低于L”判定为正确。那种情况下,并不是在“比L大”时判定为非法,而在“L以上”时判定为非法。
(10)上述实施方式及异例在认证中适用。所谓的认证指的是,消息数据由象自称一样的人传送的状况,并且消息数据未被篡改这种状况的验证。另外,实施方式及异例在身份的证明中适用。所谓身份的证明指的是,例如具有对数据的访问权或者对设施的访问权(进入权)的状况之证明,或者自己是象声称一样的人的状况之证明。再者,实施方式及异例在否认防止中适用。所谓的否认防止是指,例如对抗实际同意了什么却声称未同意的人的状况。
(11)上述的各装置具体而言,是由微处理器、ROM、RAM、硬盘单元、显示单元、键盘、鼠标等构成的计算机***。在上述RAM或硬盘单元中,存储有计算机程序。通过由上述微处理器按照上述计算机程序进行动作,各装置实现其功能。这里,计算机程序是为了实现预定的功能,组合多个表示对于计算机的指令的命令代码来构成的。
构成上述各装置的结构要件一部分或者全部也可以由1个***LSI(Large Scale Integration:大规模集成电路)构成。***LSI是将多个结构部集成在1个芯片上制造出来的超多功能LSI,具体而言,是包含微处理器、ROM、RAM等来构成的计算机***。在上述RAM中,存储有计算机程序。通过由上述微处理器按照上述计算机程序进行动作,***LSI实现其功能。
构成上述各装置的结构要件一部分或者全部也可以由在各装置上可拆装的IC卡或单体的模块构成。上述IC卡或上述模块是由微处理器、ROM、RAM等构成的计算机***。上述IC卡或上述模块也可以包含上述的超多功能LSI。通过由上述微处理器按照上述计算机程序进行动作,上述IC卡或上述模块实现其功能。该IC卡或该模块也可以具有防篡改性。
另外,本发明也可以是上面所示的方法。另外,既可以是由计算机实现这些方法的计算机程序,也可以是由上述计算机程序构成的数字信号。
另外,本发明也可以将上述计算机程序或者上述数字信息记录在计算机可读取的记录介质,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)及半导体存储器等中。另外,也可以是记录在这些记录介质中的上述数字信号。
另外,本发明也可以将上述计算机程序或者上述数字信号,经由电气通信线路、无线或有线通信线路、以因特网为代表的网络及数据广播等进行传输。
另外,本发明也可以是具备微处理器和存储器的计算机***,并且上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序进行动作。
另外,也可以通过将上述程序或者上述数字信号记录于上述记录介质中并移送,或者通过将上述程序或上述数字信号经由上述网络等进行移送,而由独立的其他计算机***来实施。
(12)也可以将上述实施方式及上述异例分别组合。
产业上的可利用性
构成本发明的各装置在需要认证、身份的证明及否认的防止等处理的各种各样的产业领域中,可以在进行认证、身份的证明及否认的防止等处理时,在经营上并且持续及反复地使用,以及进行制造。

Claims (15)

1.一种签名生成及签名验证方法,被具备保密存储机构的签名生成装置和签名验证装置使用,该保密存储机构保密地存储私钥向量,并存储表示比第1大小小的多个备选向量所属于的范围的分布,该方法将数据分割为多个并作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,对对象数据签名并进行验证,其特征为,
包含:
取得步骤,取得对象数据;
变换步骤,利用比上述第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;
签名步骤,在将上述私钥向量确定为基底向量的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;
验证步骤,使用公钥向量和上述签名数据,将上述签名向量复原,验证由上述对象数据得到的向量与复原后的上述签名向量之间的距离是否为比上述第1大小大的第2大小以下;以及
输出步骤,在是第2大小以下时,输出表示验证已成功的成功信息;
上述分布包含于以上述第1大小为半径的超球内,上述分布的数据结构通过分布表来表示,
各向量通过多项式来表现,
上述分布表包含上限值、下限值以及多项式,
在上述变换步骤,随机选择上限值以下且下限值以上的值,将选择的值乘到上述多项式,得到多项式,并将得到的多项式作为表示上述干扰向量的多项式而生成。
2.一种签名生成装置,将数据分割为多个并作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,生成对于对象数据的签名数据,其特征为,
具备:
取得机构,取得对象数据;
保密存储机构,保密地存储有私钥向量,并存储表示比第1大小小的多个备选向量所属于的范围的分布;
数据变换机构,利用比上述第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;
签名生成机构,在将私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;以及
输出机构,输出上述对象数据和生成的签名数据;
上述分布包含于以上述第1大小为半径的超球内,上述分布的数据结构通过分布表来表示,
各向量通过多项式来表现,
上述分布表包含上限值、下限值以及多项式,
上述数据变换机构随机选择上限值以下且下限值以上的值,将选择的值乘到上述多项式,得到多项式,并将得到的多项式作为表示上述干扰向量的多项式而生成。
3.如权利要求2所述的签名生成装置,其特征为,
上述数据变换机构从属于由上述分布所示的范围的上述备选向量中,选择1个备选向量作为上述干扰向量。
4.如权利要求3所述的签名生成装置,其特征为,
上述保密存储机构具有防篡改性,上述私钥及上述分布被保密地保护以便不从外部被获知。
5.如权利要求4所述的签名生成装置,其特征为,
在上述保密存储机构中存储的上述分布所示的范围内,多个备选向量被进行了配置,以便被选择的概率不一样,
上述数据变换机构按照上述概率,选择1个上述备选数据作为上述干扰向量。
6.如权利要求4所述的签名生成装置,其特征为,
由上述分布所示的范围具有多个区域,对于各区域预先规定该区域的选择概率,在上述多个区域的各个中,配置多个备选向量,
上述数据变换机构根据上述选择概率来选择1个区域,从选择出的上述区域中选择1个上述备选向量作为上述干扰向量。
7.如权利要求4所述的签名生成装置,其特征为,
上述数据变换机构,包括:
向量生成部,从属于由上述分布所示的范围的上述备选向量中,选择1个备选向量作为上述干扰向量;以及
加法部,通过对基于上述对象数据的向量加上上述干扰向量,生成上述变换向量。
8.如权利要求7所述的签名生成装置,其特征为,
上述向量生成部通过从基于上述分布而预先选择出的多个备选向量中进行随机选择,生成上述干扰向量。
9.如权利要求4所述的签名生成装置,其特征为,
上述签名生成装置还包括公开存储机构,该公开存储机构存储有比上述第1大小大的第2大小;
上述数据变换机构还计算由上述对象数据得到的向量和上述变换向量之间的距离,在计算出的距离不是上述第2大小以下时,利用比第1大小小的保密的其他的干扰向量,对取得的对象数据进行变换,生成其他的变换向量。
10.如权利要求4所述的签名生成装置,其特征为,
上述私钥向量对于作为定义了加法、减法、乘法和表示元的大小的范数的N维排列的集合的环R和正整数q,从上述环R的元f、g以及基于元Fq和(F,G)的上述元的4个组(f,g,F,G)获得,该元Fq是f(modq)的倒数,该(F,G)满足f×G-g×F=q,
根据元h获得公钥向量,该元h对于上述正整数q来说,与上述元g及上述元Fq的积mod q同余。
11.一种签名生成方法,在签名生成装置中使用,该签名生成装置将数据分割为多个并作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,生成对于对象数据的签名数据,该签名生成装置具备保密存储机构,该保密存储机构保密地存储私钥向量,并存储表示比第1大小小的多个备选向量所属于的范围的分布,该方法其特征为,
该签名生成方法包含:
取得步骤,取得对象数据;
数据变换步骤,利用比上述第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;
签名生成步骤,在将上述私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;以及
输出步骤,输出上述对象数据和生成的签名数据;
上述分布包含于以上述第1大小为半径的超球内,上述分布的数据结构通过分布表来表示,
各向量通过多项式来表现,
上述分布表包含上限值、下限值以及多项式,
在上述数据变换步骤,随机选择上限值以下且下限值以上的值,将选择的值乘到上述多项式,得到多项式,并将得到的多项式作为表示上述干扰向量的多项式而生成。
12.一种签名生成及签名验证***,由签名生成装置以及签名验证装置构成,该签名生成装置以及该签名验证装置将数据分割为多个并作为多维的向量来表现,以最短向量问题或者近似最短向量问题为安全性的根据,并且分别进行签名和验证,该***的特征为,
上述签名生成装置,具备:
取得机构,取得对象数据;
保密存储机构,保密地存储有私钥向量,并存储表示比第1大小小的多个备选向量所属于的范围的分布;
数据变换机构,利用比上述第1大小小的保密的干扰向量,对取得的对象数据进行变换,生成变换向量;
签名生成机构,在将私钥向量确定为基底的网格上,求取与上述变换向量最接近的网格点,生成对于上述变换向量的签名向量,将上述签名向量的一部分作为签名数据;以及
输出机构,输出上述对象数据和生成的签名数据;
上述分布包含于以上述第1大小为半径的超球内,上述分布的数据结构通过分布表来表示,
各向量通过多项式来表现,
上述分布表包含上限值、下限值以及多项式,
上述数据变换机构随机选择上限值以下且下限值以上的值,将选择的值乘到上述多项式,得到多项式,并将得到的多项式作为表示上述干扰向量的多项式而生成,
上述签名验证装置,具备:
取得机构,取得上述对象数据及签名数据;
存储机构,存储有公钥向量;
验证机构,使用公钥向量和上述签名数据,将上述签名向量复原,验证由上述对象数据得到的向量与复原后的上述签名向量之间的距离是否为比上述第1大小大的第2大小以下;以及
输出机构,在是第2大小以下时,输出表示验证已成功的成功信息。
13.如权利要求5所述的签名生成装置,其特征为,
上述变换向量被隐藏。
14.如权利要求2所述的签名生成装置,其特征为,
上述分布表包含多个分布信息,各分布信息包含上限值、下限值、第1多项式以及第2多项式,
上述数据变换机构对于多个分布信息的每一个,随机选择上限值以下且下限值以上的值,
对于多个分布信息的每一个,将根据该分布信息的上限值及下限值而选择的值乘到同一该分布信息的上述第1多项式,生成多个第3多项式,并加算得到的多个第3多项式,生成第1干扰多项式,
对于多个分布信息的每一个,将根据该分布信息的上限值及下限值而选择的值乘到同一该分布信息的上述第2多项式,生成多个第4多项式,并加算得到的多个第4多项式,生成第2干扰多项式,
将上述第1干扰多项式以及上述第2干扰多项式作为表示上述干扰向量的多项式而生成。
15.如权利要求2所述的签名生成装置,其特征为,
上述分布表包含多个分布信息,各分布信息包含第1子分布信息以及第2子分布信息,第1子分布信息包含第1上限值、第1下限值以及第1多项式,第2子分布信息包含第2上限值、第2下限值以及第2多项式,
上述数据变换机构对于上述第1子分布信息,按照多个上述分布信息的每一个随机选择第1上限值以下且第1下限值以上的值,将根据该分布信息的第1上限值及第1下限值而选择得到的多个值乘到同一该分布信息的上述第1多项式,生成多个第3多项式,加算得到的多个第3多项式,生成第1干扰多项式,
上述数据变换机构对于上述第2子分布信息,按照多个上述分布信息的每一个随机选择第2上限值以下且第2下限值以上的值,将根据该分布信息的第2上限值及第2下限值而选择得到的多个值乘到同一该分布信息的上述第2多项式,生成多个第4多项式,加算得到的多个第4多项式,生成第2干扰多项式,
将上述第1干扰多项式以及上述第2干扰多项式作为表示上述干扰向量的多项式而生成。
CN200980108247.2A 2008-04-09 2009-03-02 签名及验证方法、签名生成装置及签名验证装置 Active CN101965711B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008-101281 2008-04-09
JP2008101281 2008-04-09
PCT/JP2009/000923 WO2009125537A1 (ja) 2008-04-09 2009-03-02 署名及び検証方法、署名生成装置並びに署名検証装置

Publications (2)

Publication Number Publication Date
CN101965711A CN101965711A (zh) 2011-02-02
CN101965711B true CN101965711B (zh) 2014-12-03

Family

ID=41161675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980108247.2A Active CN101965711B (zh) 2008-04-09 2009-03-02 签名及验证方法、签名生成装置及签名验证装置

Country Status (5)

Country Link
US (1) US8452975B2 (zh)
EP (1) EP2264941A1 (zh)
JP (1) JP5341878B2 (zh)
CN (1) CN101965711B (zh)
WO (1) WO2009125537A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026021B1 (ko) * 2009-09-16 2011-03-30 포항공과대학교 산학협력단 시공간 블록 부호의 검출 방법 및 장치
IL205803A0 (en) * 2010-05-16 2010-12-30 Yaron Sella Collision-based signature scheme
US20120291096A1 (en) * 2011-05-12 2012-11-15 Nokia Corporation Method and apparatus for secure signing and utilization of distributed computations
JP5790286B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP5790318B2 (ja) * 2011-08-29 2015-10-07 ソニー株式会社 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
CN103780382B (zh) * 2014-01-13 2017-01-18 华南理工大学 一种基于超球面的多变量公钥加密/解密***及方法
JP2016116134A (ja) * 2014-12-16 2016-06-23 パナソニックIpマネジメント株式会社 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
KR102520502B1 (ko) 2016-08-02 2023-04-12 엑스-로고스, 엘엘씨 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
US9698986B1 (en) * 2016-09-23 2017-07-04 ISARA Corporation Generating shared secrets for lattice-based cryptographic protocols
WO2018187604A1 (en) * 2017-04-07 2018-10-11 X-Logos, LLC Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
US11080365B2 (en) * 2018-10-31 2021-08-03 Fujitsu Limited Solving lattice problems using annealing
CN110351097B (zh) * 2019-07-01 2020-08-14 中国科学院数学与***科学研究院 一种基于格的数字签名方法
DE102020119569B3 (de) * 2020-07-24 2021-12-09 Infineon Technologies Ag Bereitstellen einer kryptografischen Information
US11764943B2 (en) 2020-08-10 2023-09-19 Algemetric, Inc. Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
CN112003707A (zh) * 2020-08-25 2020-11-27 湖南宸瀚信息科技有限责任公司 一种抗量子计算攻击的区块链数字签名加密方法及***
WO2022061184A2 (en) 2020-09-17 2022-03-24 X-Logos, LLC Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers
KR102474894B1 (ko) * 2022-09-01 2022-12-06 (주)노르마 양자 내성 암호화 알고리즘에 기초한 서명과 인증을 수행함으로써 가상 사설 네트워크를 제공하는 가상 사설 네트워크 형성 방법 및 이를 수행하는 가상 사설 네트워크 운용 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL128552A (en) 1996-08-19 2004-06-01 Ntru Cryptosystems Inc Method and device of a public key in a crypto system
US6959085B1 (en) * 1999-05-03 2005-10-25 Ntru Cryptosystems, Inc. Secure user identification based on ring homomorphisms
JP2002230202A (ja) * 2001-01-31 2002-08-16 Ricoh Co Ltd 電子データ化方法及び装置
WO2002091664A1 (en) 2001-05-04 2002-11-14 Docomo Communications Laboratories Usa, Inc. Ring-based signature scheme
JP2005515659A (ja) 2001-12-07 2005-05-26 エヌティーアールユー・クリプトシステムズ・インコーポレーテッド ディジタル署名、認証方法及び装置
US20040151309A1 (en) 2002-05-03 2004-08-05 Gentry Craig B Ring-based signature scheme
JP4552044B2 (ja) * 2003-08-22 2010-09-29 独立行政法人情報通信研究機構 暗号化データ作成装置および方法ならびにそのプログラム
JP4255895B2 (ja) * 2004-08-11 2009-04-15 Kddi株式会社 擬似乱数生成装置および方法
EP1873964A1 (en) * 2005-04-18 2008-01-02 Matsushita Electric Industrial Co., Ltd. Signature creation device, and signature verification device
JP2007288230A (ja) * 2006-03-24 2007-11-01 Tatsuomi Sakata コンピュータ通信装置、複号情報生成装置、プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Jeffrey Hoffstein 等.NTRUSign: Digital Singatures Using the NTRU Lattice Preliminary Draft 2.《NTRUSign: Digital Singatures Using the NTRU Lattice Preliminary Draft 2》.2002, *
Jeffrey Hoffstein 等.NTRUSign: Digital Singatures Using the NTRU Lattice.《NTRUSign: Digital Singatures Using the NTRU Lattice》.2003, *
NTRUSign: Digital Singatures Using the NTRU Lattice Preliminary Draft 2;Jeffrey Hoffstein 等;《NTRUSign: Digital Singatures Using the NTRU Lattice Preliminary Draft 2》;20021231;第1-31页 *
NTRUSign: Digital Singatures Using the NTRU Lattice;Jeffrey Hoffstein 等;《NTRUSign: Digital Singatures Using the NTRU Lattice》;20031231;第1-18页 *

Also Published As

Publication number Publication date
US8452975B2 (en) 2013-05-28
WO2009125537A1 (ja) 2009-10-15
US20110016325A1 (en) 2011-01-20
CN101965711A (zh) 2011-02-02
JPWO2009125537A1 (ja) 2011-07-28
JP5341878B2 (ja) 2013-11-13
EP2264941A1 (en) 2010-12-22

Similar Documents

Publication Publication Date Title
CN101965711B (zh) 签名及验证方法、签名生成装置及签名验证装置
CN104539423B (zh) 一种无双线性对运算的无证书公钥密码体制的实现方法
JP5790319B2 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN101107808B (zh) 署名生成装置及署名验证装置
JP6069852B2 (ja) 情報処理装置、情報処理方法、及びプログラム
KR101099867B1 (ko) 서명 장치, 검증 장치, 증명 장치, 암호화 장치, 및 복호화장치
CN110138543B (zh) 格公钥密码体制下的盲签密方法
CN104168114A (zh) 一种分布式的基于(k,n)门限证书加密方法及***
CN106936584B (zh) 一种无证书公钥密码***的构造方法
WO2013031555A1 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
CN113268542A (zh) 一种基于多方授权的区块链重写方法及***
CN1954547B (zh) 签名生成装置和签名验证装置
Zhu et al. An identity‐based proxy signature on NTRU lattice
CN115529134A (zh) 格上基于身份的代理盲签名方法
Tanwar et al. An efficient and secure identity based multiple signatures scheme based on RSA
Li et al. A forward-secure certificate-based signature scheme
Wang et al. An improved digital signature algorithm and authentication protocols in cloud platform
CN116388991A (zh) 基于非门限结构的公证人组跨链交易方法及***
CN113438085B (zh) 高效属性基服务器辅助签名验证方法及***
JP5314449B2 (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
WO2013031420A1 (ja) 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法
Xu et al. An Improved Identity-Based Multi-Proxy Multi-Signature Scheme.
CN110830265A (zh) 一种无证书混合密签通讯方法
JP5017645B2 (ja) 公開鍵認証プログラム及び電子署名プログラム
CN113761592B (zh) 一种云存储中基于模糊身份的数据完整性检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant