CN109936458B - 一种基于多重证据纠错的格基数字签名方法 - Google Patents

一种基于多重证据纠错的格基数字签名方法 Download PDF

Info

Publication number
CN109936458B
CN109936458B CN201910203000.4A CN201910203000A CN109936458B CN 109936458 B CN109936458 B CN 109936458B CN 201910203000 A CN201910203000 A CN 201910203000A CN 109936458 B CN109936458 B CN 109936458B
Authority
CN
China
Prior art keywords
params
aux
algorithm
function
steps
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
CN201910203000.4A
Other languages
English (en)
Other versions
CN109936458A (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.)
Fudan University
Original Assignee
Shanghai Humin Blockchain Technology 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 Shanghai Humin Blockchain Technology Co ltd filed Critical Shanghai Humin Blockchain Technology Co ltd
Priority to CN201910203000.4A priority Critical patent/CN109936458B/zh
Publication of CN109936458A publication Critical patent/CN109936458A/zh
Priority to PCT/CN2019/112512 priority patent/WO2020186750A1/zh
Application granted granted Critical
Publication of CN109936458B publication Critical patent/CN109936458B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

在本发明中,我们引入了一种称为证据不可区分密钥共识的新颖机制,基于此构造了一个高效、模块化、灵活且强安全的签名方案。在传统的格基签名方案的设计中,其公钥是一个MLWE的实例t=(t1,t0)=As+e。为了降低公钥尺寸,可以仅将t1作为签名公钥,而将t0作为私钥的一部分,其中t0对应t的低位,t1对应t的高位。在本发明中,在签名时我们同时使用真实的t0和若干个从t0转换而来的用于混淆的t′0。这种机制可以大幅提升签名效率,同时增强私钥的安全。

Description

一种基于多重证据纠错的格基数字签名方法
技术领域
本发明涉及后量子格基数字签名技术,在保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生方面具有重要应用。
背景技术
数字签名技术是用于解决如下问题:发送方Alice利用私钥sk对消息M进行签名,得到签名σ。接收方Bob利用公钥pk对签名σ进行认证,若认证通过,则接收方Bob承认消息M是由Alice发送的。发明方法是解决如何设计数字签名,保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生。
随着量子计算机的快速发展,发展后量子数字签名方法和技术变得日益迫切。在后量子密码技术路线中,格基密码由于其坚实的计算复杂性基础和性能综合优势成为后量子密码的主流技术路线之一。
在本发明中,我们引入了一种称为证据不可区分密钥共识的新颖机制,构造了一个命名为“木兰”的基于格的高效、模块化、灵活且强安全的签名方案。在传统的格基签名方案的设计中,其公钥是一个MLWE的实例t=(t1,t0)=As+e。为了降低公钥尺寸,可以仅将t1作为签名公钥,而将t0作为私钥的一部分,其中t0对应t的低位,t1对应t的高位。我们通过分析和实验验证发现,至多需要100万个签名即可以很高的概率完全恢复出t0。
在本发明中,我们引入一种新颖的证据不可区分的方法来保护t0。简而言之,在签名时我们同时使用真实的t0和一个从t0转换而来的用于混淆的t′0。注意,对于签名验证者而言,其无法区分(因此验签独立于)签名过程具体用的是t0还是t′0。这种基于证据不可区分的方法,相当于从所看到的签名中恢复t0时引入噪音,这反过来相当于在解决底层的MLWE问题时引入额外噪音,从而在参数不变的情况下实现安全增强。据我们所知,没有已知的方法从签名中恢复出t0。换句话说,从公钥去恢复私钥,Dilithium仅提供了MLWE这一道防线,隐藏t0仅为了减少公钥尺寸;而木兰提供了两道防线“复合装甲”进行私钥保护。更为关键的是,这种“复合装甲”机制还可以大幅提升签名的效率。在相同的安全参数下,木兰的安全性相对于传统签名方法更强并且签名效率提升约1倍。
我们做了大量的参数测试工程化工作以优化和平衡性能。比如,我们通过大量测试发现在对t0的不同比特改变对签名循环次数的改变呈现正态效应。在我们所选取的参数下,相对于传统的格基签名方法我们的签名更短、签名效率提升约1.5倍、签名验证效率由于使用更小的模数q也更优、抗伪造签名安全性更高。
发明内容
运行发明方法的发送方Alice得到私钥sk和公共参数params,对消息M运行签名算法Sign(params,sk,M)进行签名,得到签名σ=(z,c,h),并公开传输签名σ=(z,c,h)给运行发明方法的接收方Bob。Bob得到公钥pk,消息M和对消息M的签名σ=(z,c,h)作为输入,运行验证算法Verify(pk,M,(z,c,h)),得到1/0,分别表示验证通过/不通过。若认证通过,则接收方Bob承认消息M是由Alice发送的。发明方法是解决如何设计数字签名,在保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生方面具有重要应用。
一种基于密钥共识的格基数字签名方法;其中,{…}表示一个信息或者数值的集合;R,Rq表示代数环,其中q是整数;该签名算法包括三个具体的算法:Gen,Sign(·),Verify(·)。
Gen是密钥生成算法,算法输入包含安全参数,输出包含公钥pk和私钥sk。sign(·)是签名算法,算法输入包含***参数params,私钥sk和消息M∈{0,1}*,其中{0,1}*表示任意长度的0-1串构成的集合,输出包含(z,c,h),其中z∈Rlq,
Figure BDA0001998060030000022
Figure BDA0001998060030000021
其中t是正整数,gh(n,m,h,auxh)是关于n,m,h,auxh的函数,auxh是可为空的h的辅助参数集合。运行发明方法的发送方Alice得到私钥sk和公共参数params,对消息M运行签名算法Sign(params,sk,M)进行签名,得到签名σ=(z,c,h),并公开传输签名σ=(z,c,h)给运行发明方法的接收方Bob。Verify(·)是验证算法,算法输入包含***参数params,公钥pk,消息M和签名(z,c,h),输出1或者0,分别表示验证通过或者不通过。Bob得到公钥pk,消息M和对消息M的签名σ=(z,c,h)作为输入,运行验证算法Verify(pk,M,(z,c,h)),得到1/0,分别表示验证通过/不通过。若认证通过,则接收方Bob承认消息M是由Alice发送的。
一种基于多重证据纠错的格基数字签名方法;其中,{…}表示一个信息或者数值的集合;R,Rq表示代数环,其中q是正整数;
Gen是密钥生成算法,算法输入包含安全参数,输出包含公钥pk和私钥sk,算法运行如下:
1)得到***参数params={q,k,d,n,m,l,aux},其中q,k,d,n,m,l均为正整数;aux是可为空的其它辅助***参数的集合;
2)得到
Figure BDA0001998060030000031
3)得到
Figure BDA0001998060030000032
其中s取自集合
Figure BDA0001998060030000033
e取自某可为空的集合
Figure BDA0001998060030000034
Figure BDA0001998060030000035
4)得到
Figure BDA0001998060030000036
5)得到
Figure BDA0001998060030000037
其中
Figure BDA0001998060030000038
是关于t,params,
Figure BDA0001998060030000039
的函数,
Figure BDA00019980600300000310
是可为空的t1的辅助参数集合;得到
Figure BDA00019980600300000311
Figure BDA00019980600300000312
其中
Figure BDA00019980600300000313
是关于t,t1,params,
Figure BDA00019980600300000314
的函数,
Figure BDA00019980600300000315
是可为空的t0,0的辅助参数集合;
6)输出公钥pk和私钥sk;其中,公钥pk包含params,t1,生成A所需要的信息,auxpk,其中auxpk是可为空的公钥的辅助参数集合;私钥sk包含生成A所需要的信息,s,e,t0,0,auxsk,其中auxsk是可为空的私钥的辅助参数集合;
Sign(·)是签名算法,算法输入包含***参数params,公钥pk,私钥sk和消息μ∈{0,1}*,其中{0,1}*表示任意长度的0-1串构成的集合,输出包含(z,c,h),其中
Figure BDA00019980600300000316
其中b是正整数,gh(n,m,h,auxh)是关于n,m,h,auxh的输出结果为整数的函数,auxh是可为空的h的辅助参数集合;算法运行如下:
1)得到
Figure BDA0001998060030000041
2)得到
Figure BDA0001998060030000042
其中fe0是关于e,params,
Figure BDA0001998060030000043
的函数,
Figure BDA0001998060030000044
是可为空的e0的辅助参数集合;
3)得到
Figure BDA0001998060030000045
其中Transformi是关于t0,0,params,
Figure BDA0001998060030000046
的转换函数,
Figure BDA0001998060030000047
是可为空的t0,i的辅助参数集合;
4)得到
Figure BDA0001998060030000048
其中fΔi是关于t0,i,t0,0,params,
Figure BDA0001998060030000049
的函数,
Figure BDA00019980600300000410
是可为空的Δi的辅助参数集合;
5)得到
Figure BDA00019980600300000411
其中,
Figure BDA00019980600300000412
是关于e0i,params,
Figure BDA00019980600300000413
的函数,
Figure BDA00019980600300000414
是可为空的ei的辅助参数集合;
6)得到
Figure BDA00019980600300000415
其中y′可为0向量;
7)得到
Figure BDA00019980600300000416
8)得到
Figure BDA00019980600300000417
其中
Figure BDA00019980600300000429
是关于w,params,
Figure BDA00019980600300000418
的函数,
Figure BDA00019980600300000419
是可为空的w1的辅助参数集合;
9)得到
Figure BDA00019980600300000420
其中
Figure BDA00019980600300000421
是关于w1,params,
Figure BDA00019980600300000422
的函数,
Figure BDA00019980600300000423
是可为空的w′1的辅助参数集合;
10)得到c=H(w′1,μ,auxc),其中H是一个哈希函数,或单向函数,或转换函数,auxc是可为空的c的辅助参数集合;
11)得到z=fz(pk,y,s,w1,c,μ,auxz),其中,fz是关于pk,y,s,w1,c,μ,auxz的函数,auxz是可为空的z的辅助参数集合;
12)判断条件
Figure BDA00019980600300000424
是否成立,其中,
Figure BDA00019980600300000425
是可为空的Rz的辅助参数集合;若不成立,则回到第6)步,循环运行直至Rz成立;
13)判断条件
Figure BDA00019980600300000426
是否成立,其中,bi∈{0,1}p‘,p′=p+1,ji是计数器,w(i)∈Rq是w的第i维,
Figure BDA00019980600300000427
则分别表示e0,e1,…,ep的第i维,i=1,…,m;若成立,则算法记录了正整数ji,σ(i)∈Rq;若不成立,则回到第6)步,循环运行直至
Figure BDA00019980600300000428
成立;
14)得到σ=fσ(1),…,σ(m),params,auxσ),其中,fσ是关于
Figure BDA0001998060030000051
的函数,auxσ是可为空的σ的辅助参数集合;
15)得到
Figure BDA0001998060030000052
其中,
Figure BDA0001998060030000053
是关于
Figure BDA0001998060030000054
的函数,
Figure BDA0001998060030000055
是可为空的t0的辅助参数集合;
16)得到σ′=fσ′(c,t0,params,auxσ′),其中,fσ′是关于c,t0,params,auxσ′的函数,auxσ′是可为空的σ′的辅助参数集合;
17)得到
Figure BDA0001998060030000056
其中,fh是关于w,c,e0,e1,…,ep,t0,σ,σ′,y′,params,
Figure BDA0001998060030000057
的函数,
Figure BDA0001998060030000058
是可为空的h的辅助参数集合;
18)判断条件
Figure BDA0001998060030000059
是否成立,其中,
Figure BDA00019980600300000510
是可为空的Rh的辅助参数集合;若不成立,则回到第6)步,循环运行直至Rh成立;
19)输出签名(z,c,h);
Verify(·)是验签算法,算法输入包含***参数params,公钥pk,消息μ和签名(z,c,h),输出1或者0,其中,1表示验签通过,0表示不通过;算法运行如下:
1)得到
Figure BDA00019980600300000511
2)得到
Figure BDA00019980600300000512
其中
Figure BDA00019980600300000513
是关于h,A,z,c,t1,params,
Figure BDA00019980600300000514
的函数,
Figure BDA00019980600300000515
是可为空的w2的辅助参数集合;
3)得到
Figure BDA00019980600300000516
其中,
Figure BDA00019980600300000517
是关于w2,params,
Figure BDA00019980600300000518
的函数,
Figure BDA00019980600300000519
是可为空的w2′的辅助参数集合;
4)得到c′=H(w′2,μ,auxc′),其中H是一个哈希函数,或单向函数,或转换函数,auxc′是可为空的c′的辅助参数集合;
5)判断条件
Figure BDA00019980600300000520
是否成立,其中,
Figure BDA00019980600300000521
是可为空的Rv的辅助参数集合;若成立,则输出1,否则,输出0。
如上所述的方法,其中,代数环R,Rq满足关系Rq=R/(qR),其中,环R为Zq[X]/(Xn+1),或Zq[X]/(Xn+Xn-1+…+1),或Zq[X]/(Xn-1),其中,n是正整数。
如上所述方法,其中,aux包含{η,η‘,ξ,ζ,γ,B,B‘,ω,σ,σ‘,g,q′,α,α′,p,p′}的可为空的子集合,其中,η,η‘,ξ,ζ,γ,B,B‘,ω,σ,σ‘,g,p,p′为正整数,p+1=2p′或否,q′=lcm(q,k)是q和k的最小公倍数,α=q′/q,α′=q′/k。
如上所述的方法,其中,
Figure BDA0001998060030000061
服从
Figure BDA0001998060030000062
上概率分布。
如上所述的方法,其中,Sam是扩展输出函数,y~S:=Sam(x)表示输入为x,按分布S(或集合S上的均匀分布)输出值y。
如上所述的方法,其中,ρ是随机种子,即固定长度的随机数。
如上述的方法,其中,s可服从
Figure BDA0001998060030000063
上的均匀分布,或离散高斯分布,其中,Sη表示环R中各个系数属于[-η,η]的多项式全体所构成的集合;e可服从
Figure BDA0001998060030000064
上的均匀分布,或离散高斯分布,或e=0。
如上所述的方法,其中,当s,e的每个系数分别服从[-η,η]和[-η‘,η’]上的均匀分布时,s,e可用扩展输出函数Sam输入种子生成。
如上所述的方法,其中,
Figure BDA0001998060030000065
的计算方法包括:
t1=(t-tmod±2d)/2d,其中,对于任意整数a和正整数b,amod±b表示落在
Figure BDA0001998060030000069
的唯一整数c,使得b|c-a,这里对于任意实数x,
Figure BDA00019980600300000610
表示小于或者等于x的最大整数;
t1=(t-t mo d2d)/2d,其中,对于任意整数a和正整数b,a mod b表示落在[0,b-1]的唯一整数c,使得b|c-a。
如上所述的方法,其中,生成A所需的信息可包含随机种子ρ。
如上所述的方法,其中,auxsk可包含公钥pk。
如上所述的方法,其中,
Figure BDA0001998060030000066
的计算方法包括:t0,0=t-t1·2d
如上所述的方法,其中,
Figure BDA0001998060030000067
的计算方法为:把e0赋值为e,即e0←e。
如上所述的方法,其中,
Figure BDA0001998060030000068
的计算方法包括:
将t0,0的若干维的若干个比特进行翻转;
将t0,0若干维的若干个比特变成0;
将t0,0若干维的若干个比特变成1;
将t0,0若干维的若干个比特进行翻转,或变成0,或变成1;
将t0,0若干维的若干个比特进行随机替换;
上述五种方法的组合。
如上所述的方法,其中,
Figure BDA0001998060030000071
的计算方法包括:
Δi=t0,i-t0,0;或
Δi=t0,0-t0,i
如上所述的方法,其中,
Figure BDA0001998060030000072
的计算方法包括:
ei=e0i;或
ei=e0i
如上所述的方法,其中t0,ii,ei的计算根据i的取值循环生成。
如上所述的方法,其中,
Figure BDA0001998060030000073
可服从
Figure BDA0001998060030000074
上均匀分布,或标准差为σ的离散高斯分布;
Figure BDA0001998060030000075
可服从
Figure BDA0001998060030000076
上均匀分布,或标准差为σ‘的离散高斯分布;其中B,B‘,σ,σ’是辅助参数;
如上所述的方法,其中,y,y′可用扩展输出函数Sam输入种子、公钥pk、auxsk、auxy确定性地生成,其中auxy是可为空的集合。
如上所述的方法,其中,
Figure BDA0001998060030000077
的计算方法为:w1←HighBitsq,k(w,params),其中HighBitsq,k是一个转换函数。
如上所述的方法,其中,对于r∈Zq,HighBitsq,k(r,params)算法运行如下:
计算(r1,r0)←Con(r,params),其中Con是一个编码算法;
输出r1
若算法HighBitsq,k(·)输入
Figure BDA0001998060030000078
和公共参数params,则意味着对多项式向量w中的每个系数分别使用HighBitsq,k算法。
如上所述的方法,其中,编码算法Con(·)输入包含r∈Zq和公共参数params,算法对r∈Zq基于params进行编码,输出包含(r1,r0),其中r1∈Zk,r0∈Zt,k是***参数,t是整数;若算法Con(·)输入
Figure BDA0001998060030000079
和公共参数params,则意味着对多项式向量w中的每个系数分别使用Con算法。
如上所述的方法,其中,r0∈Zt中整数t的取值包含:t=g或t=g+1。如权利要求21所述的方法,其中,Con(r,params)算法运行如下:
计算σA∈Zq′
计算r0
计算r1
返回(r1,r0)。
如上所述的方法,其中,σA的计算方法包括:从集合[0,α-1]或集合
Figure BDA00019980600300000814
Figure BDA00019980600300000815
中选取确定的元素e,特别地,取e=0;计算,σA=αr+e∈Zq′
如权利要求25所述的方法,其中,σA=αr+e∈Zq′的计算方法包括:
σA=αr+e mod q′,或
σA=αr+e mod±q′。
如上所述的方法,其中,
Figure BDA0001998060030000081
Figure BDA0001998060030000082
是关于σA,α,α′,k的函数。
如上所述的方法,其中r0的计算方法包括:
计算r0=σAmod±α′,或
计算r0=σAmodα′,或
计算
Figure BDA00019980600300000811
计算
Figure BDA00019980600300000810
计算
Figure BDA0001998060030000089
计算
Figure BDA0001998060030000088
其中,k,q是***参数,g,α′是辅助参数;对于任意实数a,
Figure BDA00019980600300000816
表示与a最接近的整数。
如上所述的方法,其中r1的计算方法包括:
计算
Figure BDA00019980600300000812
计算
Figure BDA00019980600300000813
若k,q互素且kr-r0=kq,则令r1=0;否则,计算r1=(kr-r0)/q,
其中,k,q是***参数,α′是辅助参数。
如上所述的方法,其中,
Figure BDA0001998060030000083
的计算方法包括:
Figure BDA0001998060030000087
Figure BDA0001998060030000086
其中,k,q是***参数。
如上所述的方法,其中,auxc包含pk和/或params和/或公钥证书certificate。如权利要求1所述的方法,其中,z=fz(pk,y,s,w1,c,μ,auxz)的计算方法包括:
Figure BDA0001998060030000084
如上所述的方法,其中,条件
Figure BDA0001998060030000085
包括:‖z‖<ξ,其中,ξ是辅助参数;对于任意a∈R,‖a‖表示多项式a的所有系数的绝对值的最大值;对于任意a=(a1,…,ab)∈Rb,b是正整数,‖σ‖表示‖ai,1≤i≤b的最大值。
如权利要求1所述的方法,其中,条件
Figure BDA0001998060030000091
的判断步骤包含:
选取bi∈{0,1}p‘;
令计数器ji=bi
计算
Figure BDA0001998060030000092
计算
Figure BDA0001998060030000093
判断条件
Figure BDA0001998060030000094
是否成立,若成立,则记录ji,σ(i)
否则令ji=bi+1,继续回到c)直至
Figure BDA0001998060030000095
成立或ji=bi+p+1;
若ji=bi+p+1,则判定
Figure BDA0001998060030000096
不成立。
如上所述的方法,其中,步骤b)—f),可通过for循环语句实现。
如权利要求34所述的方法,其中,
Figure BDA0001998060030000097
可通过计算
Figure BDA0001998060030000098
Figure BDA0001998060030000099
获得。
如上所述的方法,其中,条件
Figure BDA00019980600300000910
包含:
Figure BDA00019980600300000911
Figure BDA00019980600300000912
Figure BDA00019980600300000913
其中,ζ是辅助参数。
如上所述的方法,其中,σ=fσ(1),…,σ(m),params,auxσ)的计算方法包括:σ=(σ(1),…,σ(m))。
如上所述的方法,其中,
Figure BDA00019980600300000914
的计算方法包括:
Figure BDA00019980600300000915
如上所述的方法,其中,σ′=fσ′(c,t0,params,auxσ′)的计算方法包括:
σ′=ct0
σ′=-ct0
如上所述的方法,其中,
Figure BDA00019980600300000916
的计算方法包括:
h=MakeHint(-σ′,σ+σ′,params),其中MakeHint是一个转换函数;或
h=MakeHint(σ′,σ-σ′,params),或
h=MakeGHint(-σ′,σ+σ′,params),或
h=MakeGHint(σ′,σ-σ′,params)。
如上所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeHint(z,r,params)的计算方法如下:
r1=HighBitsq,k(r,params);
v1=HighBitsq,k(r+z,params);
若r1=v1,则返回0;否则,返回1。
若算法MakeH int(·)输入z′,
Figure BDA0001998060030000101
和公共参数params,其中a是正整数,则
意味着对多项式向量z′,
Figure BDA0001998060030000102
中的每组对应的系数分别使用MakeHint算法。如权利要求41所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeGHint(z,r,params)的计算方法如下:
r1=HighBitsq,k(r,params);
v1=HighBitsq,k(r+z,params);
返回h=(v1-r1)mod±k或h=(v1-r1)mod k。
若算法MakeGH int(·)输入z′,
Figure BDA0001998060030000103
和公共参数params,其中a是正整数,则意味着对多项式向量z′,
Figure BDA0001998060030000104
中的每组对应的系数分别使用MakeGHint算法。
如上所述的方法,其中,条件
Figure BDA0001998060030000105
包括:‖σ′‖<γ和#h≤ω,其中,γ是辅助参数对于h∈{0,1}a,a是正整数,#h表示多项式向量h中系数1的个数。
如上所述的方法,其中,
Figure BDA0001998060030000106
的计算方法包括:
Figure BDA0001998060030000107
Figure BDA0001998060030000108
Figure BDA0001998060030000109
其中,
Figure BDA00019980600300001010
是关于h,A,z,c,t1,params,
Figure BDA00019980600300001011
的函数,
Figure BDA00019980600300001012
Re c是解码函数。
如上所述的方法,其中,
Figure BDA0001998060030000111
的计算方法包括:
Figure BDA0001998060030000112
其中,d是***参数。
如权利要求45所述的方法,其中,解码算法Re c(·),算法输入包含r′∈Zq,r0∈Zt和***参数params,其中,(r1,r0)←Con(r,params),r∈Zq,|r′-r|q≤d′,d′为一个整数;对于任意整数a,|a|q定义为min{a mod q,q-a mod q},min{·}定义为取最小值;算法对r′∈Zq,r0∈Zt基于params进行解码,输出包含r′1,其中r′1∈Zk,k是***参数;若r′与r的距离d′满足一定的限制条件,则r′1=r1,双方纠错成功。
如上所述的方法,其中,Re c(r′,r0,params)的计算方法包括:
Figure BDA0001998060030000116
Figure BDA0001998060030000117
Figure BDA0001998060030000118
其中c′是一个实数。
如上所述的方法,其中,d′满足的关系式包含:
(2d′+1)k<q(1-1/g),或
(2d′+2)k<q(1-1/g),或
(2d′+1)k<q(1-2τ/g),其中τ为max{|c|,|1-c|},对于任意实数a,|a|表示取a的绝对值,max{·}定义为取最大值,或
(d′+1)k<q(1/2-τ/g),或
2kd′<q,或
2k(d′+1)<q。
如上所述的方法,其中,c′为实数,满足0≤c′≤1。
如上所述的方法,其中,对于h∈{0,1},r∈Zq,算法UseHint(h,r,params)的计算方法如下:
(r1,r0)=Con(r,params);
若h=1且r0>0,返回(r1+1)mod k;若h=1且r0<0,返回(r1-1)mod k;
否则,若h=0,返回r1
如上所述的方法,其中,对于h∈{0,1},r∈Zq,算法UseGHint(h,r,params)的计算方法如下:
r1=HighBits(r,params);
返回(r1+h)mod k。
如上所述的方法,其中,
Figure BDA0001998060030000113
的计算方法包括:
Figure BDA0001998060030000114
Figure BDA0001998060030000115
如上所述的方法,其中,auxc′包含pk和/或params和/或公钥证书certificate。如权利要求1所述的方法,其中,条件
Figure BDA0001998060030000121
包括:,
c=c′且‖z‖<ξ,或
c=c′且‖z‖<ξ且#h≤ω;
其中,ξ,ω是辅助参数。
如上所述的方法,如权利要求18所述的方法,其中,auxsk包含一个随机数种子K,auxy包含一个计数器counter用于记录每次签名时对第6)步的第counter次执行。
如上所述的方法,y,y′由Expand(ρ,K,tr,counter)确定性地生成,其中tr=CRH(ρ,K),CRH是一个抗碰撞的密码哈希函数,Expand是一个确定性的扩展函数。
如上所述的方法,其中,随机选取bi←{0,1}p‘,或bi被设定为{0,1}p‘,或bi从{pk,ρ,K,tr,auxsk,auxy}确定性地导出。
如上所述的方法,其中,bi在得到y,y′过程中同时导出。
如上所述的方法,签名过程中所需生成的t0,i、Δi、ei可以在签名之前离线计算并存储,或其部分或全体放在auxsk作为私钥的一部分。
具体实施方式
在发明方法的实际应用中,建议p=1或3。如果p=1,Transform函数建议对t0,0每一维的中间一个比特进行翻转或随机替换;如果p=3对t0,0每一维的中间三个比特进行翻转或随机替换(或比特翻转和随机替换并用)。当p=1或3时,对于大致128-比特的后量子安全级别,建议的具体参数如下:
Figure BDA0001998060030000122
对于上面具体的参数,当p=1时,Transform函数建议对t0,0每一维的低位第5个比特进行翻转或随机替换;如果p=3对t0,0每一维的低位第5、6、7间三个比特进行翻转或随机替换(或二者结合)。
下面以p=1时,描述Gen,Sign(·),Verify(·),Con(·)和HighBits(·)具体实施方式如下。具体实施方式可以简单地扩展到p=3的情况。
Gen:
1)得到***参数params={q,k,d,n,m,l,aux},其中q,k,d,n,m,l均为整数;aux是可为空的其它辅助***参数的集合;
2)ρ←{0,1}256
3)
Figure BDA0001998060030000131
4)
Figure BDA0001998060030000132
5)
Figure BDA0001998060030000133
6)t1=(t-tmod±2d)/2d
7)t0,0=t-t1·2d
8)K←{0,1}256
9)tr=CRH(ρ||t1)∈{0,1}384,其中||是字符串连接符;
10)输出pk=(ρ,t1,params,auxpk),sk=(s,e,t0,0,auxsk={K,tr},ρ);
Sign(params,pk,sk,μ)-1:
Figure BDA0001998060030000134
Figure BDA0001998060030000141
Sign(params,sk,μ)-2:
Figure BDA0001998060030000142
Figure BDA0001998060030000151
Figure BDA0001998060030000161
Verify(pk,μ,(z,c,h)):
1)
Figure BDA0001998060030000162
2)w2=UseH int(h,Az-ct1·2d,params);
3)
Figure BDA0001998060030000163
4)c′=H(ρ,t1,w′2,μ)
5)若c=c′且‖z‖<ξ且h中1的个数≤ω,则输出1;否则,输出0;
Con(r,params):
1)r0=krmod±q;
2)若kr-r0=kq,则令r1=0;否则,计算r1=(kr-r0)/q;
3)返回(r1,r0)。
Highbits(r,params):
1)(r1,r0)←Con(r,params);
2)返回r1

Claims (60)

1.一种基于多重证据纠错的格基数字签名方法;其中,{…}表示一个信息或者数值的集合;R,Rq表示代数环,其中q是正整数;
Gen是密钥生成算法,算法输入包含安全参数,输出包含公钥pk和私钥sk,算法运行如下:
1)得到***参数params={q,k,d,n,m,l,aux},其中q,k,d,n,m,l均为正整数;aux是可为空的其它辅助***参数的集合;
2)得到
Figure FDA0003407248440000011
3)得到
Figure FDA0003407248440000012
其中s取自集合
Figure FDA0003407248440000013
e取自某可为空的集合
Figure FDA0003407248440000014
Figure FDA0003407248440000015
4)得到
Figure FDA0003407248440000016
5)得到
Figure FDA0003407248440000017
其中
Figure FDA0003407248440000018
是关于
Figure FDA0003407248440000019
的函数,
Figure FDA00034072484400000110
是可为空的t1的辅助参数集合;得到
Figure FDA00034072484400000111
Figure FDA00034072484400000112
其中
Figure FDA00034072484400000113
是关于t,t1,params,
Figure FDA00034072484400000114
的函数,
Figure FDA00034072484400000115
是可为空的t0,0的辅助参数集合;
6)输出公钥pk和私钥sk;其中,公钥pk包含params,t1,生成A所需要的信息,auxpk,其中auxpk是可为空的公钥的辅助参数集合;私钥sk包含生成A所需要的信息,s,e,t0,0,auxsk,其中auxsk是可为空的私钥的辅助参数集合;
Sign(·)是签名算法,算法输入包含***参数params,公钥pk,私钥sk和消息μ∈{0,1}*,其中{0,1}*表示任意长度的0-1串构成的集合,输出包含(z,c,h),其中
Figure FDA00034072484400000116
c∈R,
Figure FDA00034072484400000117
其中b是正整数,gh(n,m,h,auxh)是关于n,m,h,auxh的输出结果为整数的函数,auxh是可为空的h的辅助参数集合;算法运行如下:
1)得到
Figure FDA00034072484400000118
2)得到
Figure FDA00034072484400000119
其中
Figure FDA00034072484400000120
是关于e,params,
Figure FDA00034072484400000121
的函数,
Figure FDA00034072484400000122
是可为空的e0的辅助参数集合;
3)得到
Figure FDA00034072484400000123
其中Transformi是关于
Figure FDA0003407248440000021
的转换函数,
Figure FDA0003407248440000022
是可为空的t0,i的辅助参数集合;
4)得到
Figure FDA0003407248440000023
其中
Figure FDA0003407248440000024
是关于t0,i,t0,0,params,
Figure FDA0003407248440000025
的函数,
Figure FDA0003407248440000026
是可为空的Δi的辅助参数集合;
5)得到
Figure FDA0003407248440000027
i=1,…p,其中,
Figure FDA0003407248440000028
是关于e0,Δi,params,
Figure FDA0003407248440000029
的函数,
Figure FDA00034072484400000210
是可为空的ei的辅助参数集合;
6)得到
Figure FDA00034072484400000211
其中y′可为0向量;
7)得到
Figure FDA00034072484400000212
8)得到
Figure FDA00034072484400000213
其中
Figure FDA00034072484400000214
是关于w,params,
Figure FDA00034072484400000215
的函数,
Figure FDA00034072484400000216
是可为空的w1的辅助参数集合;
9)得到
Figure FDA00034072484400000217
其中
Figure FDA00034072484400000218
是关于w1,params,
Figure FDA00034072484400000219
的函数,
Figure FDA00034072484400000220
是可为空的w′1的辅助参数集合;
10)得到c=H(w′1,μ,auxc),其中H是一个哈希函数,或单向函数,或转换函数,auxc是可为空的c的辅助参数集合;
11)得到z=fz(pk,y,s,w1,c,μ,auxz),其中,fz是关于pk,y,s,w1,c,μ,auxz的函数,auxz是可为空的z的辅助参数集合;
12)判断条件
Figure FDA00034072484400000221
是否成立,其中,
Figure FDA00034072484400000222
是可为空的Rz的辅助参数集合;若不成立,则回到第8)步,循环运行直至Rz成立;
13)判断条件
Figure FDA00034072484400000223
是否成立,其中,bi∈{0,1}p’,p′=p+1,ji是计数器,w(i)∈Rq是w的第i维,
Figure FDA00034072484400000224
则分别表示e0,e1,…,ep的第i维,i=1,…,m;若成立,则算法记录了正整数ji,σ(i)∈Rq;若不成立,则回到第8)步,循环运行直至
Figure FDA00034072484400000230
成立;
14)得到σ=fσ(1),…,σ(m),params,auxσ),其中,fσ是关于σ(1),…,σ(m),params,
Figure FDA00034072484400000225
的函数,auxσ是可为空的σ的辅助参数集合;
15)得到
Figure FDA00034072484400000226
其中,
Figure FDA00034072484400000227
是关于t0,1,…,t0,p,j1,…jm,params,
Figure FDA00034072484400000228
的函数,
Figure FDA00034072484400000229
是可为空的t0的辅助参数集合;
16)得到σ′=fσ′(c,t0,params,auxσ′),其中,fσ′是关于c,t0,params,auxσ′的函数,auxσ′是可为空的σ′的辅助参数集合;
17)得到
Figure FDA0003407248440000031
其中,fh是关于w,c,e0,e1,…,ep,t0,σ,σ′,y′,params,
Figure FDA0003407248440000032
的函数,
Figure FDA0003407248440000033
是可为空的h的辅助参数集合;
18)判断条件
Figure FDA0003407248440000034
是否成立,其中,
Figure FDA0003407248440000035
是可为空的Rh的辅助参数集合;若不成立,则回到第6)步,循环运行直至Rh成立;
19)输出签名(z,c,h);
Verify(·)是验签算法,算法输入包含***参数params,公钥pk,消息μ和签名(z,c,h),输出1或者0,其中,1表示验签通过,0表示不通过;算法运行如下:
1)得到
Figure FDA0003407248440000036
2)得到
Figure FDA0003407248440000037
其中
Figure FDA0003407248440000038
是关于h,A,z,c,t1,params,
Figure FDA0003407248440000039
的函数,
Figure FDA00034072484400000310
是可为空的w2的辅助参数集合;
3)得到
Figure FDA00034072484400000311
其中,
Figure FDA00034072484400000312
是关于w2,params,
Figure FDA00034072484400000313
的函数,
Figure FDA00034072484400000314
是可为空的w′2的辅助参数集合;
4)得到c′=H(w′2,μ,auxc′),其中H是一个哈希函数,或单向函数,或转换函数,auxc′是可为空的c′的辅助参数集合;
5)判断条件
Figure FDA00034072484400000315
是否成立,其中,
Figure FDA00034072484400000316
是可为空的Rv的辅助参数集合;若成立,则输出1,否则,输出0。
2.如权利要求1所述的方法,其中,代数环R,Rq满足关系Rq=R/(qR),其中,环R为Zq[X]/(Xn+1),或Zq[X]/(Xn+Xn-1+…+1),或Zq[X]/(Xn-1),其中,n是正整数。
3.如权利要求1所述方法,其中,aux包含{η,η′,ξ,ζ,γ,B,B′,ω,σ,σ′,g,q′,α,α′,p,p′}的可为空的子集合,其中,η,η′,ξ,ζ,γ,B,B′,ω,σ,σ′,g,p,p′为正整数,p+1=2p′或否,q′=lcm(q,k)是q和k的最小公倍数,α=q′/q,α′=q′/k。
4.如权利要求1所述的方法,其中,
Figure FDA0003407248440000041
服从
Figure FDA0003407248440000042
上概率分布。
5.如权利要求4所述的方法,其中,Sam是扩展输出函数,y~S:=Sam(x)表示输入为x,按分布S或集合S上的均匀分布输出值y。
6.如权利要求4所述的方法,其中,ρ是随机种子,即固定长度的随机数。
7.如权利要求1所述的方法,其中,s可服从
Figure FDA0003407248440000043
上的均匀分布,或离散高斯分布,其中,Sη表示环R中各个系数属于[-η,η]的多项式全体所构成的集合;e可服从
Figure FDA0003407248440000044
上的均匀分布,或离散高斯分布,或e=0。
8.如权利要求1所述的方法,其中,当s,e的每个系数分别服从[-η,η]和[-η’,η’]上的均匀分布时,s,e可用扩展输出函数Sam输入种子生成。
9.如权利要求1所述的方法,其中,
Figure FDA0003407248440000045
的计算方法包括:
1)t1=(t-t mod±2d)/2d,其中,对于任意整数a和正整数b,a mod±b表示落在
Figure FDA0003407248440000046
的唯一整数c,使得b|(c-a),这里对于任意实数x,
Figure FDA0003407248440000047
表示小于或者等于x的最大整数;
2)t1=(t-t mod 2d)/2d,其中,对于任意整数a和正整数b,a mod b表示落在[0,b-1]的唯一整数c,使得b|(c-a)。
10.如权利要求1所述的方法,其中,生成A所需的信息可包含随机种子ρ。
11.如权利要求1所述的方法,其中,auxsk可包含公钥pk或t1
12.如权利要求1所述的方法,其中,
Figure FDA0003407248440000048
的计算方法包括:t0,0=t-t1·2d
13.如权利要求1所述的方法,其中,
Figure FDA0003407248440000049
的计算方法为:把e0赋值为e,即e0←e。
14.如权利要求1所述的方法,其中,
Figure FDA00034072484400000410
Figure FDA00034072484400000411
的计算方法包括:
1)将t0,0的若干维的若干个比特进行翻转;
2)将t0,0若干维的若干个比特变成0;
3)将t0,0若干维的若干个比特变成1;
4)将t0,0若干维的若干个比特进行翻转,或变成0,或变成1;
5)将t0,0若干维的若干个比特进行随机替换;
6)上述五种方法的组合。
15.如权利要求1所述的方法,其中,
Figure FDA0003407248440000051
的计算方法包括:
1)Δi=t0,i-t0,0;或
2)Δi=t0,0-t0,i
16.如权利要求1所述的方法,其中,
Figure FDA0003407248440000052
的计算方法包括:
1)ei=e0i;或
2)ei=e0i
17.如权利要求1所述的方法,其中t0,ii,ei的计算根据i的取值循环生成。
18.如权利要求1所述的方法,其中,
Figure FDA0003407248440000053
可服从
Figure FDA0003407248440000054
上均匀分布,或标准差为σ的离散高斯分布;
Figure FDA0003407248440000055
可服从
Figure FDA0003407248440000056
上均匀分布,或标准差为σ’的离散高斯分布;其中B,B’,σ,σ’是辅助参数。
19.如权利要求18所述的方法,其中,y,y′可用扩展输出函数Sam输入种子、公钥pk、auxsk、auxy的一个非空子集确定性地生成,其中auxy是可为空的集合。
20.如权利要求1所述的方法,其中,
Figure FDA0003407248440000057
的计算方法为:w1←HighBitsq,k(w,params),其中HighBitsq,k是一个转换函数。
21.如权利要求20所述的方法,其中,对于r∈Zq,HighBitsq,k(r,params)算法运行如下:
1)计算(r1,r0)←Con(r,params),其中Con是一个编码算法;
2)输出r1
若算法HighBitsq,k(·)输入
Figure FDA0003407248440000058
和公共参数params,则意味着对多项式向量w中的每个系数分别使用HighBitsq,k算法。
22.如权利要求21所述的方法,其中,编码算法Con(·)输入包含r∈Zq和公共参数params,算法对r∈Zq基于params进行编码,输出包含(r1,r0),其中r1∈Zk,r0∈Zt,k是***参数,t是整数;若算法Con(·)输入
Figure FDA0003407248440000059
和公共参数params,则意味着对多项式向量w中的每个系数分别使用Con算法。
23.如权利要求22所述的方法,其中,r0∈Zt中整数t的取值包含:t=g或t=g+1。
24.如权利要求21所述的方法,其中,Con(r,params)算法运行如下:
1)计算σA∈Zq′
2)计算r0
3)计算r1
4)返回(r1,r0)。
25.如权利要求24所述的方法,其中,σA的计算方法包括:从集合[0,α-1]或集合
Figure FDA00034072484400000611
中选取确定的元素e,特别地,取e=0;计算σA=αr+e∈Zq′
26.如权利要求25所述的方法,其中,σA=αr+e∈Zq′的计算方法包括:
1)σA=αr+e mod q′,或
2)σA=αr+e mod±q′。
27.如权利要求24所述的方法,其中,
Figure FDA0003407248440000061
Figure FDA0003407248440000062
是关于σA,α,α′,k的函数。
28.如权利要求27所述的方法,其中r0的计算方法包括:
1)计算r0=σAmod±α′,或
2)计算r0=σAmodα′,或
3)计算
Figure FDA0003407248440000063
4)计算
Figure FDA0003407248440000064
5)计算
Figure FDA0003407248440000065
6)计算
Figure FDA0003407248440000066
其中,k,q是***参数,g,α′是辅助参数;对于任意实数a,
Figure FDA0003407248440000067
表示与a最接近的整数。
29.如权利要求27所述的方法,其中r1的计算方法包括:
1)计算
Figure FDA0003407248440000068
2)计算
Figure FDA0003407248440000069
3)若k,q互素且kr-r0=kq,则令r1=0;否则,计算r1=(kr-r0)/q,其中,k,q是***参数,α′是辅助参数。
30.如权利要求1所述的方法,其中,
Figure FDA00034072484400000610
的计算方法包括:
1)
Figure FDA0003407248440000071
2)
Figure FDA0003407248440000072
其中,k,q是***参数。
31.如权利要求1所述的方法,其中,auxc包含pk和/或params和/或公钥证书certificate全部或部分信息。
32.如权利要求1所述的方法,其中,z=fz(pk,y,s,w1,c,μ,auxz)的计算方法包括:
Figure FDA0003407248440000073
33.如权利要求1所述的方法,其中,条件
Figure FDA0003407248440000074
包括:‖z‖<ξ,其中,ξ是辅助参数;对于任意a∈R,‖a‖表示多项式a的所有系数的绝对值的最大值;对于任意a=(a1,…,ab)∈Rb,b是正整数,‖a‖表示‖ai,1≤i≤b的最大值。
34.如权利要求1所述的方法,其中,条件
Figure FDA0003407248440000075
的判断步骤包含:
a)选取bi∈{0,1}p’
b)令计数器ji=bi
c)计算
Figure FDA0003407248440000076
d)计算
Figure FDA0003407248440000077
e)判断条件
Figure FDA0003407248440000078
是否成立,若成立,则记录ji,σ(i);否则令ji=bi+1,继续回到c)直至
Figure FDA0003407248440000079
成立或ji=bi+p+1;
f)若ji=bi+p+1,则判定
Figure FDA00034072484400000710
不成立。
35.如权利要求34所述的方法,其中,步骤b)—f)可通过for循环语句实现。
36.如权利要求34所述的方法,其中,
Figure FDA00034072484400000711
可通过计算
Figure FDA00034072484400000712
Figure FDA00034072484400000713
获得。
37.如权利要求34所述的方法,其中,条件
Figure FDA00034072484400000714
包含:
Figure FDA00034072484400000715
Figure FDA00034072484400000716
其中,ζ是辅助参数。
38.如权利要求1所述的方法,其中,σ=fσ(1),…,σ(m),params,auxσ)的计算方法包括:σ=(σ(1),…,σ(m))。
39.如权利要求1所述的方法,其中,
Figure FDA00034072484400000717
Figure FDA0003407248440000081
的计算方法包括:
Figure FDA0003407248440000082
Figure FDA0003407248440000083
40.如权利要求1所述的方法,其中,σ′=fσ′(c,t0,params,auxσ′)的计算方法包括:
1)σ′=ct0
2)σ′=-ct0
41.如权利要求1所述的方法,其中,
Figure FDA0003407248440000084
Figure FDA0003407248440000085
的计算方法包括:
1)h=MakeHint(-σ′,σ+σ′,params),其中MakeHint是一个转换函数;或
2)h=MakeHint(σ′,σ-σ′,params),或
3)h=MakeGHint(-σ′,σ+σ′,params),或
4)h=MakeGHint(σ′,σ-σ′,params)。
42.如权利要求41所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeHint(z,r,params)的计算方法如下:
1)r1=HighBitsq,k(r,params);
2)v1=HighBitsq,k(r+z,params);
3)若r1=v1,则返回0;否则,返回1,
若算法MakeHint(·)输入
Figure FDA0003407248440000086
和公共参数params,其中a是正整数,则意味着对多项式向量
Figure FDA0003407248440000087
中的每组对应的系数分别使用MakeHint算法。
43.如权利要求41所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeGHint(z,r,params)的计算方法如下:
1)r1=HighBitsq,k(r,params);
2)v1=HighBitsq,k(r+z,params);
3)返回h=(v1-r1)mod±k或h=(v1-r1)mod k,
若算法MakeGH int(·)输入
Figure FDA0003407248440000088
和公共参数params,其中a是正整数,则意味着对多项式向量
Figure FDA0003407248440000089
中的每组对应的系数分别使用MakeGHint算法。
44.如权利要求1所述的方法,其中,条件
Figure FDA00034072484400000810
包括:‖σ′‖<γ和#h≤ω,其中,γ是辅助参数对于h∈{0,1}a,a是正整数,#h表示多项式向量h中系数1的个数。
45.如权利要求1所述的方法,其中,
Figure FDA0003407248440000091
的计算方法包括:
1)
Figure FDA0003407248440000092
2)
Figure FDA0003407248440000093
3)
Figure FDA0003407248440000094
其中,
Figure FDA0003407248440000095
是关于h,A,z,c,t1,params,
Figure FDA0003407248440000096
的函数,
Figure FDA0003407248440000097
Re c是解码函数。
46.如权利要求45所述的方法,其中,
Figure FDA0003407248440000098
的计算方法包括:
Figure FDA0003407248440000099
其中,d是***参数。
47.如权利要求45所述的方法,其中,解码算法Rec(·),算法输入包含r′∈Zq,r0∈Zt和***参数params,其中,(r1,r0)←Con(r,params),r∈Zq,|r′-r|q≤d′,d′为一个整数;对于任意整数a,|a|q定义为min{a mod q,q-a mod q},min{·}定义为取最小值;算法对r′∈Zq,r0∈Zt基于params进行解码,输出包含r′1,其中r′1∈Zk,k是***参数;若r′与r的距离d′满足一定的限制条件,则r′1=r1,双方纠错成功。
48.如权利要求47所述的方法,其中,Rec(r′,r0,params)的计算方法包括:
1)
Figure FDA00034072484400000910
2)
Figure FDA00034072484400000911
3)
Figure FDA00034072484400000912
其中c′是一个实数。
49.如权利要求47所述的方法,其中,d′满足的关系式包含:
1)(2d′+1)k<q(1-1/g),或
2)(2d′+2)k<q(1-1/g),或
3)(2d′+1)k<q(1-2τ/g),其中τ为max{|c|,|1-c|},对于任意实数a,|a|表示取a的绝对值,max{·}定义为取最大值,或
4)(d′+1)k<q(1/2-τ/g),或
5)2kd′<q,或
6)2k(d′+1)<q。
50.如权利要求48所述的方法,其中,c′为实数,满足0≤c′≤1。
51.如权利要求45所述的方法,其中,对于h∈{0,1},r∈Zq,算法UseHint(h, r,params)的计算方法如下:
1)(r1,r0)=Con(r,params);
2)若h=1且r0>0,返回(r1+1)mod k;若h=1且r0<0,返回(r1-1)mod k;否则,若h=0,返回r1
52.如权利要求45所述的方法,其中,对于h∈{0,1},r∈Zq,算法UseGHint(h,r,params)的计算方法如下:
1)r1=HighBits(r,params);
2)返回(r1+h)mod k。
53.如权利要求1所述的方法,其中,
Figure FDA0003407248440000101
的计算方法包括:
1)
Figure FDA0003407248440000102
2)
Figure FDA0003407248440000103
54.如权利要求1所述的方法,其中,auxc′包含pk和/或params和/或公钥证书certificate。
55.如权利要求1所述的方法,其中,条件
Figure FDA0003407248440000104
包括:,
1)c=c′且‖z‖<ξ,或
2)c=c′且‖z‖<ξ且#h≤ω;
其中,ξ,ω是辅助参数。
56.如权利要求19所述的方法,如权利要求18所述的方法,其中,auxsk包含一个随机数种子K,auxy包含一个计数器counter用于记录每次签名时对第6)步的第counter次执行。
57.如权利要求56所述的方法,y,y′由Expand(ρ,K,tr,counter)确定性地生成,其中tr=CRH(ρ,K),CRH是一个抗碰撞的密码哈希函数,Expand是一个确定性的扩展函数。
58.如权利要求34所述的方法,其中,随机选取bi←{0,1}p’,或bi被设定为{0,1}p’,或bi从{pk,ρ,K,tr,auxsk,auxy}确定性地导出。
59.如权利要求58所述的方法,其中,bi在得到y,y′过程中同时导出。
60.如权利要求1所述的方法,签名过程中所需生成的t0,i、Δi、ei可以在签名之前离线计算并存储,或其部分或全体放在auxsk作为私钥的一部分。
CN201910203000.4A 2019-03-18 2019-03-18 一种基于多重证据纠错的格基数字签名方法 Active CN109936458B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910203000.4A CN109936458B (zh) 2019-03-18 2019-03-18 一种基于多重证据纠错的格基数字签名方法
PCT/CN2019/112512 WO2020186750A1 (zh) 2019-03-18 2019-10-22 一种基于多重证据纠错的格基数字签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910203000.4A CN109936458B (zh) 2019-03-18 2019-03-18 一种基于多重证据纠错的格基数字签名方法

Publications (2)

Publication Number Publication Date
CN109936458A CN109936458A (zh) 2019-06-25
CN109936458B true CN109936458B (zh) 2022-04-26

Family

ID=66987344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910203000.4A Active CN109936458B (zh) 2019-03-18 2019-03-18 一种基于多重证据纠错的格基数字签名方法

Country Status (2)

Country Link
CN (1) CN109936458B (zh)
WO (1) WO2020186750A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936458B (zh) * 2019-03-18 2022-04-26 上海扈民区块链科技有限公司 一种基于多重证据纠错的格基数字签名方法
CN112910649A (zh) * 2019-12-04 2021-06-04 深圳奥联信息安全技术有限公司 Dilithium算法的实现方法和装置
CN112217629B (zh) * 2020-10-13 2022-07-22 安徽大学 一种云存储公开审计方法
CN113037484B (zh) * 2021-05-19 2021-08-24 银联商务股份有限公司 数据传输方法、装置、终端、服务器及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237116B1 (en) * 2000-01-19 2007-06-26 International Business Machines Corporation Digital signature system and method based on hard lattice problem
CN101997683A (zh) * 2009-08-10 2011-03-30 北京多思科技发展有限公司 一种零知识证明的认证方法及认证装置
CN102833265A (zh) * 2012-09-13 2012-12-19 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
CN103986576A (zh) * 2014-04-18 2014-08-13 深圳大学 基于格的代理签名方法及***
CN104009847A (zh) * 2014-05-14 2014-08-27 国家电网公司 一种基于格的大数据存储完整性验证方法
WO2015030553A1 (ko) * 2013-08-30 2015-03-05 고려대학교 산학협력단 래티스 기반 인증서 비사용 서명 시스템 및 방법
CN107592203A (zh) * 2017-09-25 2018-01-16 深圳技术大学筹备办公室 一种基于格的聚合签名方法及其***
CN107947944A (zh) * 2017-12-08 2018-04-20 安徽大学 一种基于格的增量签名方法
CN108989031A (zh) * 2018-07-27 2018-12-11 上海扈民区块链科技有限公司 一种多比特纠错编码解码方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120071884A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 래티스 기반의 링 서명 방법
WO2012098543A2 (en) * 2011-01-18 2012-07-26 Fortress Gb Ltd. System and method for computerized negotiations based on coded integrity
CN105791321A (zh) * 2016-05-03 2016-07-20 西南石油大学 一种具有抗密钥泄露特性的云存储数据公共审计方法
CN109936458B (zh) * 2019-03-18 2022-04-26 上海扈民区块链科技有限公司 一种基于多重证据纠错的格基数字签名方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237116B1 (en) * 2000-01-19 2007-06-26 International Business Machines Corporation Digital signature system and method based on hard lattice problem
CN101997683A (zh) * 2009-08-10 2011-03-30 北京多思科技发展有限公司 一种零知识证明的认证方法及认证装置
CN102833265A (zh) * 2012-09-13 2012-12-19 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
WO2015030553A1 (ko) * 2013-08-30 2015-03-05 고려대학교 산학협력단 래티스 기반 인증서 비사용 서명 시스템 및 방법
CN103986576A (zh) * 2014-04-18 2014-08-13 深圳大学 基于格的代理签名方法及***
CN104009847A (zh) * 2014-05-14 2014-08-27 国家电网公司 一种基于格的大数据存储完整性验证方法
CN107592203A (zh) * 2017-09-25 2018-01-16 深圳技术大学筹备办公室 一种基于格的聚合签名方法及其***
CN107947944A (zh) * 2017-12-08 2018-04-20 安徽大学 一种基于格的增量签名方法
CN108989031A (zh) * 2018-07-27 2018-12-11 上海扈民区块链科技有限公司 一种多比特纠错编码解码方法

Also Published As

Publication number Publication date
WO2020186750A1 (zh) 2020-09-24
CN109936458A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN109936458B (zh) 一种基于多重证据纠错的格基数字签名方法
Campanelli et al. Zero-knowledge contingent payments revisited: Attacks and payments for services
CN110971405B (zh) 多方协同的sm2签名、解密方法及其***
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
CN102263638B (zh) 认证设备、认证方法和签名生成设备
Wei et al. SecCloud: Bridging secure storage and computation in cloud
CN107196763A (zh) Sm2算法协同签名及解密方法、装置与***
CN110933045A (zh) 一种基于承诺的区块链数字资产隐私保护方法
US11349648B2 (en) Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
CN113111373B (zh) Vbft共识机制的随机数生成方法和共识机制***
JPWO2005071881A1 (ja) ミックスネットシステム
Yuen PAChain: private, authenticated & auditable consortium blockchain and its implementation
JP4835831B2 (ja) 多数の入力から関数を計算する方法および装置
CN109818752B (zh) 信用评分生成方法、装置、计算机设备和存储介质
EP3864794B1 (en) Linking transactions
US20210279341A1 (en) Cryptographic security system, method, and program product using data partitioning
Teh et al. A Chaos‐Based Authenticated Cipher with Associated Data
CN113424492A (zh) 更高效的后量子签名
CN114666032A (zh) 基于同态加密的区块链交易数据隐私保护方法
CN109687969B (zh) 一种基于密钥共识的格基数字签名方法
CN113268762B (zh) 一种基于lfsr哈希的无条件安全认证方法
CN107465508A (zh) 一种软硬件结合构造真随机数的方法、***和设备
CN110266479A (zh) 一种基于模容错学习问题的双向可否认加密方法
Adelsbach et al. Overcoming the obstacles of zero-knowledge watermark detection
Tamil Selvi et al. Post‐Quantum Cryptosystems for Blockchain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40008162

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220816

Address after: Room 717, School of Computer Science, Fudan University (Jiangwan Campus), No. 2005, Songhu Road, Yangpu District, Shanghai, 200438

Patentee after: Zhao Yunlei

Address before: Room 345, No.5, Lane 786, Xinzhong Road, Xinhe Town, Chongming District, Shanghai 202156

Patentee before: SHANGHAI HUMIN BLOCKCHAIN TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240104

Address after: 200433 No. 220, Handan Road, Shanghai, Yangpu District

Patentee after: FUDAN University

Address before: Room 717, School of Computer Science, Fudan University (Jiangwan Campus), No. 2005, Songhu Road, Yangpu District, Shanghai, 200438

Patentee before: Zhao Yunlei