CN109687969B - 一种基于密钥共识的格基数字签名方法 - Google Patents

一种基于密钥共识的格基数字签名方法 Download PDF

Info

Publication number
CN109687969B
CN109687969B CN201811462651.7A CN201811462651A CN109687969B CN 109687969 B CN109687969 B CN 109687969B CN 201811462651 A CN201811462651 A CN 201811462651A CN 109687969 B CN109687969 B CN 109687969B
Authority
CN
China
Prior art keywords
params
algorithm
aux
calculating
empty
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
CN201811462651.7A
Other languages
English (en)
Other versions
CN109687969A (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 CN201811462651.7A priority Critical patent/CN109687969B/zh
Publication of CN109687969A publication Critical patent/CN109687969A/zh
Priority to PCT/CN2019/112510 priority patent/WO2020114121A1/zh
Application granted granted Critical
Publication of CN109687969B publication Critical patent/CN109687969B/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/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)
  • Complex Calculations (AREA)

Abstract

提供了一种基于密钥共识的格基数字签名方法。运行发明方法的发送方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发送的。发明方法是解决如何设计数字签名,在保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生方面具有重要应用。

Description

一种基于密钥共识的格基数字签名方法
技术领域
本发明涉及数字签名技术,在保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生方面具有重要应用。
背景技术
数字签名技术是用于解决如下问题:发送方Alice利用私钥sk对消息M进行签名,得到签名σ。接收方Bob利用公钥pk对签名σ进行认证,若认证通过,则接收方Bob承认消息M是由Alice发送的。发明方法是解决如何设计数字签名,保证信息传输的完整性、进行信息发送者的身份认证、防止交易中的抵赖发生。
发明内容
运行发明方法的发送方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),其中
Figure BDA0001889000250000021
c∈R,
Figure BDA0001889000250000022
其中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,算法运行如下:
⑴得到***参数params={q,k,d,n,m,l,aux},其中q,k,d,n,m,l均为整数;aux是可为空的其它辅助***参数的集合;
⑵得到
Figure BDA0001889000250000023
⑶得到s1∈Rl,s2∈Rm,其中s1取自某集合
Figure BDA0001889000250000024
s2取自某可为空的集合
Figure BDA0001889000250000025
⑷得到
Figure BDA0001889000250000026
⑸得到
Figure BDA0001889000250000027
ft是关于t,params,auxt的函数,其中auxt是可为空的t的辅助参数集合;
⑹输出公钥pk和私钥sk;其中,公钥pk包含params,t1,生成A所需要的信息,auxpk,其中auxpk是可为空的公钥的辅助参数集合;私钥sk包含s1,s2,t0,auxsk,其中auxsk是可为空的私钥的辅助参数集合;
Sign(·)是签名算法,算法输入包含***参数params,私钥sk和消息M∈{0,1}*,其中{0,1}*表示任意长度的0-1串构成的集合,输出包含(z,c,h),其中z∈Rlq,c∈R,
Figure BDA0001889000250000031
其中b是正整数,gh(n,m,h,auxh)是关于n,m,h,auxh的输出结果为整数的函数,auxh是可为空的h的辅助参数集合;算法运行如下:
⑴得到
Figure BDA0001889000250000032
⑵得到
Figure BDA0001889000250000033
⑶得到
Figure BDA0001889000250000034
其中y2可为0向量;
⑷得到
Figure BDA0001889000250000035
⑸得到
Figure BDA0001889000250000036
其中
Figure BDA0001889000250000037
是关于v,params的函数,
Figure BDA0001889000250000038
是可为空的k1的辅助参数集合;
⑹得到
Figure BDA0001889000250000039
其中
Figure BDA00018890002500000310
是关于k1,params,
Figure BDA00018890002500000311
的函数,
Figure BDA00018890002500000312
是可为空的k1′的辅助参数集合;
⑺得到c=H(k1′,M,auxc),其中H是一个哈希函数,或单向函数,或转换函数,auxc是可为空的c的辅助参数集合;
⑻得到z=fz(pk,y1,s1,k1,c,M,auxz),其中,fz是关于pk,y1,s1,k1,c,M,auxz的函数,auxz是可为空的z的辅助参数集合;
⑼得到
Figure BDA00018890002500000313
其中,
Figure BDA00018890002500000314
是关于v,c,s2,params,
Figure BDA00018890002500000315
的函数,auxk2是可为空的k2,sig2的辅助参数集合;
⑽判断条件
Figure BDA00018890002500000316
是否成立,其中,
Figure BDA00018890002500000317
是可为空的R1的辅助参数集合;若不成立,则回到第⑵步,循环运行直至R1成立;
⑾得到
Figure BDA00018890002500000318
其中,fh是关于v,c,s2,y2,t0,params,
Figure BDA00018890002500000319
的函数,
Figure BDA00018890002500000320
是可为空的h的辅助参数集合;
⑿判断条件
Figure BDA00018890002500000321
是否成立,其中,
Figure BDA00018890002500000322
是可为空的R2的辅助参数集合;若不成立,则回到第⑵步,循环运行直至R2成立;
⒀输出签名(z,c,h);
Verify(·)是验签算法,算法输入包含***参数params,公钥pk,消息M和签名(z,c,h),输出1或者0,算法运行如下:
⑴得到
Figure BDA00018890002500000323
⑵得到
Figure BDA0001889000250000041
其中
Figure BDA0001889000250000042
是关于h,A,z,c,t1,params,
Figure BDA0001889000250000043
的函数,
Figure BDA0001889000250000044
是可为空的k′2的辅助参数集合;
⑶得到
Figure BDA0001889000250000045
其中,
Figure BDA0001889000250000046
是关于k′2,params,
Figure BDA0001889000250000047
的函数,
Figure BDA0001889000250000048
是可为空的k″2的辅助参数集合;
⑷得到c′=H(k″2,M,auxc'),其中H是一个哈希函数,或单向函数,或转换函数,auxc′是可为空的c′的辅助参数集合;
⑸判断条件
Figure BDA0001889000250000049
是否成立,其中,
Figure BDA00018890002500000410
是可为空的R3的辅助参数集合;若成立,则输出1,否则,输出0;
本发明要求q-1不能整除的2的某次幂或D2为空,或k1′≠k1
如上所述的方法,其中,代数环R,Rq满足关系Rq=R/qR,其中,环R为Z[X]/(Xn+1),或Z[X]/(Xn+Xn-1+…+1),或Z[X]/(Xn-1);环Rq为Zq[X]/(Xn+1),或Zq[X]/(Xn+Xn-1+…+1),或Zq[X]/(Xn-1),其中,n是正整数。
如上所述方法,其中,aux包含{η,β,ξ,ζ,B,ω,σ,g,q′,α,α′}的可为空的子集合,其中,η,β,ξ,ζ,B,ω,σ,g为正整数,q′=lcm(q,k)是q和k的最小公倍数,α=q′/q,α′=q′/k。
如上所述的方法,其中,
Figure BDA00018890002500000411
服从
Figure BDA00018890002500000412
上概率分布。
如上所述的方法,其中,Sam是扩展输出函数,y~S:=Sam(x)表示输入为x,按分布S(或集合S上的均匀分布)输出值y。
如上所述的方法,其中,ρ是随机种子,取法包括取{0,1}n中随机串。
如上所述的方法,其中,s1可服从
Figure BDA00018890002500000413
上的均匀分布,或离散高斯分布,其中,Sη表示环R中系数属于[-η,η]的多项式全体;s2可服从
Figure BDA00018890002500000414
上的均匀分布,或离散高斯分布,或s2=0。
如上所述的方法,其中,当s1,s2的每个系数均服从[-η,η]上的均匀分布时,可用扩展输出函数Sam输入种子生成。
如上所述的方法,其中,(t1,t0)=ft(t,params,auxt)的计算方法包括:
⑴t0=tmod±2d,t1=(t-t0)/2d,其中,对于任意整数a和正整数b,amod±b表示落在
Figure BDA00018890002500000415
的唯一整数c,使得b|c-a,这里对于任意实数x,
Figure BDA00018890002500000416
表示小于或者等于x的最大整数;
⑵t0=tmod2d,t1=(t-t0)/2d,其中,对于任意整数a和正整数b,amodb表示落在[0,b-1]的唯一整数c,使得b|c-a。
如上所述的方法,其中,生成A所需的信息可包含随机种子ρ。
如上所述的方法,其中,auxsk可包含公钥pk。
如上所述的方法,其中,
Figure BDA0001889000250000051
可服从
Figure BDA0001889000250000052
上均匀分布,或标准差为σ的离散高斯分布;
Figure BDA0001889000250000053
可服从
Figure BDA0001889000250000054
上均匀分布,或标准差为σ的离散高斯分布;其中B,σ是辅助参数;
如上所述的方法,其中,当
Figure BDA0001889000250000055
服从均匀分布时,可用扩展输出函数Sam输入种子生成。
如上所述的方法,其中,
Figure BDA0001889000250000056
的计算方法包括:计算k1←HighBits(v,params)。
如上所述的方法,其中,对于r∈Zq,HighBits(r,params)算法运行如下:
(1)计算(r1,r0)←Con(r,params);
(2)输出r1
若算法HighBits(·)输入
Figure BDA0001889000250000057
和公共参数params,则意味着对多项式向量v中的每个系数分别使用HighBits算法。
如上所述的方法,其中,编码算法Con(·)输入包含r∈Zq和公共参数params,算法对r∈Zq基于params进行编码,输出包含(r1,r0),其中r1∈Zk,r0∈Zt,k是***参数,t是整数;若算法Con(·)输入
Figure BDA0001889000250000058
和公共参数params,则意味着对多项式向量v中的每个系数分别使用Con算法。
如上所述的方法,其中,Con(r,params)算法运行如下:
(1)计算σA∈Zq′
(2)计算r0
(3)计算r1
(4)返回(r1,r0)。
如上所述的方法,其中,σA的计算方法包括:从集合[0,α-1]或集合
Figure BDA0001889000250000059
中选取确定的元素e,特别地,取e=0;计算σA=ασ1+e∈Zq′
如上所述的方法,其中,σA=αr+e∈Zq′的计算方法包括:
⑴σA=αr+emodq′,或
⑵σA=αr+emod±q′。
如上所述的方法,其中,
Figure BDA0001889000250000061
Figure BDA0001889000250000062
是关于σA,α,α′,k的函数。
如上所述的方法,其中r0的计算方法包括:
(1)计算r0=σAmod±α′,或
(2)计算r0=σAmodα′,或
(3)计算
Figure BDA0001889000250000063
(4)计算
Figure BDA0001889000250000064
(5)计算
Figure BDA0001889000250000065
(6)计算
Figure BDA0001889000250000066
其中,k,q是***参数,g,α′是辅助参数;对于任意实数a,「a」表示与a最接近的整数。
如上所述的方法,其中r1的计算方法包括:
(1)计算
Figure BDA0001889000250000067
(2)计算r1=「σA/β」mod±k
(3)若k,q互素且kr-r0=kq,则令r1=0;否则,计算r1=(kr-r0)/q,
其中,k,q是***参数。
如上所述的方法,其中,r0∈Zt中t的取值包含:t=g或t=g+1。21.如权利要求1所述的方法,其中,
Figure BDA0001889000250000068
的计算方法包括:
(1)
Figure BDA0001889000250000069
(2)k′1=「qk1/k」,
其中,k,q是***参数。
如上所述的方法,其中,auxc包含pk和/或params和/或公钥证书certificate。
如上所述的方法,其中,z=fz(pk,y1,s1,k1,c,M,auxz)的计算方法包括:
Figure BDA00018890002500000610
如上所述的方法,其中,
Figure BDA00018890002500000611
的计算方法包括:
Figure BDA00018890002500000612
其中,
Figure BDA0001889000250000071
是关于v,c,s2,params,
Figure BDA0001889000250000072
的函数。
如上所述的方法,其中,
Figure BDA0001889000250000073
的计算方法包括:
Figure BDA0001889000250000074
如上所述的方法,其中,条件
Figure BDA0001889000250000075
包括:||z||≤ξ且||sig2||≤ζ且k1=k2,其中,对于任意a∈R,||a||表示多项式a的所有系数的绝对值的最大值;对于任意a=(a1,…,ab)∈Rb,b是正整数,||a||表示||ai||,1≤i≤b的最大值。
如上所述的方法,其中,
Figure BDA0001889000250000076
的计算方法包括:
(1)h=sig2,或
(2)h=MakeHint(-ct0,v-cs2+ct0,params),或
(3)h=MakeGHint(-ct0,v-cs2+ct0,params)。
如上所述的方法,其中,h=sig2的计算方法如下:
(1)
Figure BDA0001889000250000077
(2)输出h=sig2
如上所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeHint(z,r,params)的计算方法如下:
(1)r1=HighBits(r,params);
(2)v1=HighBits(r+z,params);
(3)若r1=v1,则返回0;否则,返回1。
若算法MakeHint(·)输入
Figure BDA0001889000250000078
和公共参数params,其中a是正整数,则意味着对多项式向量
Figure BDA0001889000250000079
中的每组对应的系数分别使用MakeHint算法。
如上所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeGHint(z,r,params)的计算方法如下:
(1)r1=HighBits(r,params);
(2)v1=HighBits(r+z,params);
(3)返回h=(v1-r1)mod±k或h=(v1-r1)mod k。
若算法MakeGHint(·)输入
Figure BDA00018890002500000710
和公共参数params,其中a是正整数,则意味着对多项式向量
Figure BDA00018890002500000711
中的每组对应的系数分别使用MakeGHint算法。
如上所述的方法,其中,
Figure BDA00018890002500000712
的计算方法包括:
(1)
Figure BDA00018890002500000713
(2)
Figure BDA0001889000250000081
(3)
Figure BDA0001889000250000082
其中,
Figure BDA0001889000250000083
是关于h,A,z,c,t1,params,
Figure BDA0001889000250000084
的函数。
如上所述的方法,其中,
Figure BDA0001889000250000085
的计算方法包括:
Figure BDA0001889000250000086
其中,d是***参数。
如上所述的方法,其中,解码算法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进行解码,输出包含r1′,其中r1′∈Zk,k是***参数;若r′与r的距离d′满足一定的限制条件,则r1′=r1,双方纠错成功。
如上所述的方法,其中,Rec(r′,r0,params)的计算方法包括:
⑴r′1=「ασ2/β-v/g」modk,或
⑵r′1=「ασ2/β-(v+1/2)/g」modk,或
⑶r′1=「ασ2/β-(v+c)/g」modk,其中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)的计算方法如下:
(1)(r1,r0)=Con(r,params);
(2)若h=1且r0>0,返回(r1+1)modk;若h=1且r0<0,返回(r1-1)modk;否则,若h=0,返回r1
如上所述的方法,其中,对于h∈Zk,r∈Zq,算法UseGHint(h,r,params)的计算方法如下:
(1)r1=HighBits(r,params);
(2)返回(r1+h)modk。
如上所述的方法,其中,
Figure BDA0001889000250000091
的计算方法包括:
(1)
Figure BDA0001889000250000092
(2)k″2=「qk′2/k」。
如上所述的方法,其中,auxc′包含pk和/或params和/或公钥证书certificate。
如上所述的方法,其中,
Figure BDA0001889000250000093
条件包括:
(1)c=c′且||z||≤ξ;
(2)c=c′且||z||≤ξ且#h≤ω,其中对于h∈{0,1}a,a是正整数,#h表示多项式向量h中系数1的个数;
其中,ξ,ω是辅助参数。
在发明方法的实际应用中,推荐的Gen,Sign(·),Verify(·),Con(·)和HighBits(·)具体实施方式如下:
Gen:
⑴得到***参数params={q,k,d,n,m,l,aux},其中q,k,d,n,m,l均为整数;aux是可为空的其它辅助***参数的集合;
Figure BDA0001889000250000094
Figure BDA0001889000250000095
Figure BDA0001889000250000096
⑸t0=tmod±2d,t1=(t-t0)/2d
⑹输出pk=(ρ,t1,params,auxpk),sk=(s1,s2,t0,auxsk,ρ);
Sign(params,sk,M):
Figure BDA0001889000250000097
⑵t0=tmod±2d,t1=(t-t0)/2d
Figure BDA0001889000250000098
Figure BDA0001889000250000099
⑸k1←HighBits(v,params);
⑹)k′1=「qk1/k」;
⑺c=H(ρ,t1,k′1,M);
⑻z=y1+cs1
⑼(k2,sig2)←Con(v-cs2,params);
⑽若||z||<B-β且||sig2||<q/2-kβ且k1=k2不成立,则回到⑵,循环运行直至成立;
⑾h=MakeHint(-ct0,v-cs2+ct0,params);
⑿若||ct0||<q/2k且h中1的个数≤ω不成立,则回到⑵,循环运行直至成立;
⒀输出签名(z,c,h);
Verify(pk,M,(z,c,h)):
Figure BDA0001889000250000101
⑵k′2=UseHint(h,Az-ct1·2d,params);
⑶k″2=「qk′2/k」;
⑷c′=H(ρ,t1,k″2,M);
⑸若c=c′且||z||<B-β且且h中1的个数≤ω,则输出1;否则,输出0;
Con(r,params):
⑴r0=krmod±q;
⑵若kr-r0=kq,则令r1=0;否则,计算r1=(kr-r0)/q;
⑶返回(r1,r0)。
Highbits(r,params):
⑴(r1,r0)←Con(r,params);
⑵返回r1

Claims (44)

1.一种基于密钥共识的格基数字签名方法,其中,{…}表示一个信息或者数值的集合;R,Rq表示代数环,其中q是整数;
Gen是密钥生成算法,算法输入包含安全参数,输出包含公钥pk和私钥sk,算法运行如下:
⑴得到***参数params={q,k,d,n,m,l,aux},其中q,k,d,n,m,l均为整数;aux是可为空的其它辅助***参数的集合;
⑵得到
Figure FDA0003110156690000011
⑶得到s1∈Rl,s2∈Rm,其中s1取自某集合
Figure FDA0003110156690000012
s2取自某可为空的集合
Figure FDA0003110156690000013
⑷得到
Figure FDA0003110156690000014
⑸得到
Figure FDA0003110156690000015
ft是关于t,params,auxt的函数,其中auxt是可为空的t的辅助参数集合;
⑹输出公钥pk和私钥sk;其中,公钥pk包含params,t1,生成A所需要的信息,auxpk,其中auxpk是可为空的公钥的辅助参数集合;私钥sk包含s1,s2,t0,auxsk,其中auxsk是可为空的私钥的辅助参数集合;
Sign(·)是签名算法,算法输入包含***参数params,私钥sk和消息M∈{0,1}*,其中{0,1}*表示任意长度的0-1串构成的集合,输出包含(z,c,h),其中
Figure FDA0003110156690000016
c∈R,
Figure FDA0003110156690000017
其中b是正整数,gh(n,m,h,auxh)是关于n,m,h,auxh的输出结果为整数的函数,auxh是可为空的h的辅助参数集合;算法运行如下:
⑴得到
Figure FDA0003110156690000018
⑵得到
Figure FDA0003110156690000019
⑶得到
Figure FDA0003110156690000021
其中y2可为0向量;
⑷得到
Figure FDA0003110156690000022
⑸得到
Figure FDA0003110156690000023
其中
Figure FDA0003110156690000024
是关于v,params的函数,
Figure FDA0003110156690000025
是可为空的k1的辅助参数集合;
⑹得到
Figure FDA0003110156690000026
其中
Figure FDA0003110156690000027
是关于k1,params,
Figure FDA0003110156690000028
的函数,
Figure FDA0003110156690000029
是可为空的k′1的辅助参数集合;
⑺得到c=H(k′1,M,auxc),其中H是一个哈希函数,或单向函数,或转换函数,auxc是可为空的c的辅助参数集合;
⑻得到z=fz(pk,y1,s1,k1,c,M,auxz),其中,fz是关于pk,y1,s1,k1,c,M,auxz的函数,auxz是可为空的z的辅助参数集合;
⑼得到
Figure FDA00031101566900000210
其中,
Figure FDA00031101566900000211
是关于v,c,s2,params,
Figure FDA00031101566900000212
的函数,
Figure FDA00031101566900000213
是可为空的k2,sig2的辅助参数集合;
⑽判断条件
Figure FDA00031101566900000214
是否成立,其中,
Figure FDA00031101566900000215
是可为空的R1的辅助参数集合;若不成立,则回到第⑵步,循环运行直至R1成立;其中,条件
Figure FDA00031101566900000216
包括:||z||≤ξ且||sig2||≤ζ且k1=k2,其中,对于任意a∈R,||a||表示多项式a的所有系数的绝对值的最大值;对于任意a=(a1,…,ab)∈Rb,b是正整数,||a||表示||ai||,1≤i≤b的最大值;
⑾得到
Figure FDA00031101566900000217
其中,fh是关于v,c,s2,y2,t0,params,
Figure FDA00031101566900000218
的函数,
Figure FDA00031101566900000219
是可为空的h的辅助参数集合;
⑿判断条件
Figure FDA00031101566900000220
是否成立,其中,
Figure FDA00031101566900000221
是可为空的R2的辅助参数集合;若不成立,则回到第⑵步,循环运行直至R2成立;
⒀输出签名(z,c,h);
Verify(·)是验签算法,算法输入包含***参数params,公钥pk,消息M和签名(z,c,h),输出1或者0,其中,1表示验签通过,0表示不通过;算法运行如下:
⑴得到
Figure FDA0003110156690000031
⑵得到
Figure FDA0003110156690000032
其中
Figure FDA0003110156690000033
是关于h,A,z,c,t1,params,
Figure FDA0003110156690000034
的函数,
Figure FDA0003110156690000035
是可为空的k′2的辅助参数集合;
⑶得到
Figure FDA0003110156690000036
其中,
Figure FDA0003110156690000037
是关于k′2,params,
Figure FDA0003110156690000038
的函数,
Figure FDA0003110156690000039
是可为空的k″2的辅助参数集合;
⑷得到c′=H(k″2,M,auxc'),其中H是一个哈希函数,或单向函数,或转换函数,auxc′是可为空的c′的辅助参数集合;
⑸判断条件
Figure FDA00031101566900000310
是否成立,其中,
Figure FDA00031101566900000311
是可为空的R3的辅助参数集合;若成立,则输出1,否则,输出0;其中,
Figure FDA00031101566900000312
条件包括:
(1)c=c′且||z||≤ξ;
(2)c=c′且||z||≤ξ且#h≤ω,其中对于h∈{0,1}a,a是正整数,#h表示多项式向量h中系数1的个数;其中,ξ,ω是辅助参数;
本发明要求q-1不能整除的2的某次幂或D2为空,或k′1≠k1
2.如权利要求1所述的方法,其中,代数环R,Rq满足关系Rq=R/(qR),其中,环R为Z[X]/(Xn+1),或Z[X]/(Xn+Xn-1+…+1),或Z[X]/(Xn-1);环Rq为Zq[X]/(Xn+1),或Zq[X]/(Xn+Xn-1+…+1),或Zq[X]/(Xn-1),其中,n是正整数。
3.如权利要求1所述方法,其中,aux包含{η,β,ξ,ζ,B,ω,σ,g,q′,α,α′}的可为空的子集合,其中,η,β,ξ,ζ,B,ω,σ,g为正整数,q′=lcm(q,k)是q和k的最小公倍数,α=q′/q,α′=q′/k。
4.如权利要求1所述的方法,其中,
Figure FDA0003110156690000041
服从
Figure FDA0003110156690000042
上概率分布。
5.如权利要求4所述的方法,其中,Sam是扩展输出函数,y~S:=Sam(x)表示输入为x,按分布S(或集合S上的均匀分布)输出值y。
6.如权利要求4所述的方法,其中,ρ是随机种子。
7.如权利要求1所述的方法,其中,s1可服从
Figure FDA0003110156690000043
上的均匀分布,或离散高斯分布,其中,Sη表示环R中系数属于[-η,η]的多项式全体;s2可服从
Figure FDA0003110156690000044
上的均匀分布,或离散高斯分布,或s2=0。
8.如权利要求1所述的方法,其中,当s1,s2的每个系数均服从[-η,η]上的均匀分布时,可用扩展输出函数Sam输入种子生成。
9.如权利要求1所述的方法,其中,(t1,t0)=ft(t,params,auxt)的计算方法包括:
⑴t0=tmod±2d,t1=(t-t0)/2d,其中,对于任意整数a和正整数b,amod±b表示落在
Figure FDA0003110156690000045
的唯一整数c,使得b|c-a,这里对于任意实数x,
Figure FDA0003110156690000046
表示小于或者等于x的最大整数;
⑵t0=tmod2d,t1=(t-t0)/2d,其中,对于任意整数a和正整数b,amodb表示落在[0,b-1]的唯一整数c,使得b|c-a。
10.如权利要求1所述的方法,其中,生成A所需的信息可包含随机种子ρ。
11.如权利要求1所述的方法,其中,auxsk可包含公钥pk。
12.如权利要求1所述的方法,其中,
Figure FDA0003110156690000051
可服从
Figure FDA0003110156690000052
上均匀分布,或标准差为σ的离散高斯分布;
Figure FDA0003110156690000053
可服从
Figure FDA0003110156690000054
上均匀分布,或标准差为σ的离散高斯分布;其中B,σ是辅助参数。
13.如权利要求12所述的方法,其中,当
Figure FDA0003110156690000055
服从均匀分布时,可用扩展输出函数Sam输入种子生成。
14.如权利要求1所述的方法,其中,
Figure FDA0003110156690000056
的计算方法包括:计算k1←HighBits(v,params)。
15.如权利要求14所述的方法,其中,对于r∈Zq,HighBits(r,params)算法运行如下:
(1)计算(r1,r0)←Con(r,params);
(2)输出r1
若算法HighBits(·)输入
Figure FDA0003110156690000057
和公共参数params,则意味着对多项式向量v中的每个系数分别使用HighBits算法。
16.如权利要求15所述的方法,其中,编码算法Con(·)输入包含r∈Zq和公共参数params,算法对r∈Zq基于params进行编码,输出包含(r1,r0),其中r1∈Zk,r0∈Zt,k是***参数,t是整数;若算法Con(·)输入
Figure FDA0003110156690000058
和公共参数params,则意味着对多项式向量v中的每个系数分别使用Con算法。
17.如权利要求16所述的方法,其中,Con(r,params)算法运行如下:
(1)计算σA∈Zq′
(2)计算r0
(3)计算r1
(4)返回(r1,r0)。
18.如权利要求17所述的方法,其中,σA的计算方法包括:从集合[0,α-1]或集合
Figure FDA0003110156690000067
中选取确定的元素e,特别地,取e=0;计算σA=ασ1+e∈Zq′
19.如权利要求18所述的方法,其中,σA=αr+e∈Zq′的计算方法包括:
⑴σA=αr+emodq′,或
⑵σA=αr+emod±q′。
20.如权利要求17所述的方法,其中,
Figure FDA0003110156690000061
Figure FDA0003110156690000062
Figure FDA0003110156690000063
是关于σA,α,α′,k的函数。
21.如权利要求20所述的方法,其中r0的计算方法包括:
(1)计算r0=σAmod±α′,或
(2)计算r0=σAmodα′,或
(3)计算r0=「g(σAmod±α′)/q」,或
(4)计算r0=「g(σAmodα′)/q」,或
(5)计算
Figure FDA0003110156690000064
(6)计算
Figure FDA0003110156690000065
其中,k,q是***参数,g,α′是辅助参数;对于任意实数a,「a」表示与a最接近的整数。
22.如权利要求20所述的方法,其中r1的计算方法包括:
(1)计算
Figure FDA0003110156690000066
(2)计算r1=「σA/β」mod±k
(3)若k,q互素且kr-r0=kq,则令r1=0;否则,计算r1=(kr-r0)/q,
其中,k,q是***参数。
23.如权利要求16所述的方法,其中,r0∈Zt中t的取值包含:t=g或t=g+1。
24.如权利要求1所述的方法,其中,
Figure FDA0003110156690000071
的计算方法包括:
(1)
Figure FDA00031101566900000711
(2)k′1=「qk1/k」,
其中,k,q是***参数。
25.如权利要求1所述的方法,其中,auxc包含pk和/或params和/或公钥证书certificate。
26.如权利要求1所述的方法,其中,z=fz(pk,y1,s1,k1,c,M,auxz)的计算方法包括:
Figure FDA0003110156690000072
27.如权利要求1所述的方法,其中,
Figure FDA0003110156690000073
的计算方法包括:
Figure FDA0003110156690000074
其中,
Figure FDA0003110156690000075
是关于v,c,s2,params,
Figure FDA0003110156690000076
的函数。
28.如权利要求27所述的方法,其中,
Figure FDA0003110156690000077
的计算方法包括:
Figure FDA0003110156690000078
29.如权利要求1所述的方法,其中,条件
Figure FDA0003110156690000079
包括:||z||≤ξ且||sig2||≤ζ且k1=k2,其中,对于任意a∈R,||a||表示多项式a的所有系数的绝对值的最大值;对于任意a=(a1,…,ab)∈Rb,b是正整数,||a||表示||ai||,1≤i≤b的最大值。
30.如权利要求1所述的方法,其中,
Figure FDA00031101566900000710
的计算方法包括:
(1)h=sig2,或
(2)h=MakeHint(-ct0,v-cs2+ct0,params),或
(3)h=MakeGHint(-ct0,v-cs2+ct0,params)。
31.如权利要求30所述的方法,其中,h=sig2的计算方法如下:
(1)
Figure FDA0003110156690000081
(2)输出h=sig2
32.如权利要求15所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeHint(z,r,params)的计算方法如下:
(1)r1=HighBits(r,params);
(2)v1=HighBits(r+z,params);
(3)若r1=v1,则返回0;否则,返回1;
若算法MakeHint(·)输入
Figure FDA0003110156690000082
和公共参数params,其中a是正整数,则意味着对多项式向量
Figure FDA0003110156690000083
中的每组对应的系数分别使用MakeHint算法。
33.如权利要求15所述的方法,其中,对于z∈Zq,r∈Zq,算法MakeGHint(z,r,params)的计算方法如下:
(1)r1=HighBits(r,params);
(2)v1=HighBits(r+z,params);
(3)返回h=(v1-r1)mod±k或h=(v1-r1)mod k;
若算法MakeGHint(·)输入
Figure FDA0003110156690000084
和公共参数params,其中a是正整数,则意味着对多项式向量
Figure FDA0003110156690000085
中的每组对应的系数分别使用MakeGHint算法。
34.如权利要求1所述的方法,其中,
Figure FDA0003110156690000091
的计算方法包括:
(1)
Figure FDA0003110156690000092
(2)
Figure FDA0003110156690000093
(3)
Figure FDA0003110156690000094
其中,
Figure FDA0003110156690000095
是关于h,A,z,c,t1,params,
Figure FDA0003110156690000096
的函数。
35.如权利要求34所述的方法,其中,
Figure FDA0003110156690000097
的计算方法包括:
Figure FDA0003110156690000098
其中,d是***参数。
36.如权利要求34所述的方法,其中,解码算法Rec(·),算法输入包含r′∈Zq,r0∈Zt和***参数params,其中,(r1,r0)←Con(r,params),r∈Zq,|r′-r|q≤d′,d′为一个整数;对于任意整数a,|a|q定义为min{amodq,q-amodq},min{·}定义为取最小值;算法对r′∈Zq,r0∈Zt基于params进行解码,输出包含r1′,其中r1′∈Zk,k是***参数;若r′与r的距离d′满足一定的限制条件,则r1′=r1,双方纠错成功。
37.如权利要求36所述的方法,其中,Rec(r′,r0,params)的计算方法包括:
⑴r1′=「ασ2/β-v/g」modk,或
⑵r1′=「ασ2/β-(v+1/2)/g」modk,或
⑶r1′=「ασ2/β-(v+c)/g」modk,其中c是一个实数。
38.如权利要求36所述的方法,其中,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。
39.如权利要求37所述的方法,其中,c为实数,满足0≤c≤1。
40.如权利要求34所述的方法,其中,对于h∈{0,1},r∈Zq,算法UseHint(h,r,params)的计算方法如下:
(1)(r1,r0)=Con(r,params);
(2)若h=1且r0>0,返回(r1+1)modk;若h=1且r0<0,返回(r1-1)modk;否则,若h=0,返回r1
41.如权利要求34所述的方法,其中,对于h∈Zk,r∈Zq,算法UseGHint(h,r,params)的计算方法如下:
(1)r1=HighBits(r,params);
(2)返回(r1+h)modk。
42.如权利要求1所述的方法,其中,
Figure FDA0003110156690000101
的计算方法包括:
(1)
Figure FDA0003110156690000103
(2)k″2=「qk′2/k」。
43.如权利要求1所述的方法,其中,auxc′包含pk和/或params和/或公钥证书certificate。
44.如权利要求1所述的方法,其中,
Figure FDA0003110156690000102
条件包括:
(1)c=c′且||z||≤ξ;
(2)c=c′且||z||≤ξ且#h≤ω,其中对于h∈{0,1}a,a是正整数,#h表示多项式向量h中系数1的个数;
其中,ξ,ω是辅助参数。
CN201811462651.7A 2018-12-03 2018-12-03 一种基于密钥共识的格基数字签名方法 Active CN109687969B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811462651.7A CN109687969B (zh) 2018-12-03 2018-12-03 一种基于密钥共识的格基数字签名方法
PCT/CN2019/112510 WO2020114121A1 (zh) 2018-12-03 2019-10-22 一种基于密钥共识的格基数字签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811462651.7A CN109687969B (zh) 2018-12-03 2018-12-03 一种基于密钥共识的格基数字签名方法

Publications (2)

Publication Number Publication Date
CN109687969A CN109687969A (zh) 2019-04-26
CN109687969B true CN109687969B (zh) 2021-10-15

Family

ID=66185991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811462651.7A Active CN109687969B (zh) 2018-12-03 2018-12-03 一种基于密钥共识的格基数字签名方法

Country Status (2)

Country Link
CN (1) CN109687969B (zh)
WO (1) WO2020114121A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109687969B (zh) * 2018-12-03 2021-10-15 上海扈民区块链科技有限公司 一种基于密钥共识的格基数字签名方法
CN113541952B (zh) * 2020-04-17 2023-07-25 赵运磊 基于格的数字签名方法
CN116781262B (zh) * 2023-08-22 2023-11-03 晨越建设项目管理集团股份有限公司 基于元宇宙***的空间区域安全认证方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833265A (zh) * 2012-09-13 2012-12-19 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
WO2014205570A1 (en) * 2013-06-27 2014-12-31 Infosec Global Inc. Key agreement protocol
CN105099671A (zh) * 2015-08-20 2015-11-25 赵运磊 一种身份隐藏且非延展安全的认证密钥协商方法
CN106301789A (zh) * 2016-08-16 2017-01-04 电子科技大学 应用基于格的线性同态签名的云存储数据的动态验证方法
CN107124272A (zh) * 2017-05-02 2017-09-01 西南石油大学 支持数据代理上传的格基云存储数据安全审计方法
US9780948B1 (en) * 2016-06-15 2017-10-03 ISARA Corporation Generating integers for cryptographic protocols

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120071884A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 래티스 기반의 링 서명 방법
US10742413B2 (en) * 2017-04-25 2020-08-11 International Business Machines Corporation Flexible verifiable encryption from lattices
CN109687969B (zh) * 2018-12-03 2021-10-15 上海扈民区块链科技有限公司 一种基于密钥共识的格基数字签名方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833265A (zh) * 2012-09-13 2012-12-19 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
WO2014205570A1 (en) * 2013-06-27 2014-12-31 Infosec Global Inc. Key agreement protocol
CN105099671A (zh) * 2015-08-20 2015-11-25 赵运磊 一种身份隐藏且非延展安全的认证密钥协商方法
US9780948B1 (en) * 2016-06-15 2017-10-03 ISARA Corporation Generating integers for cryptographic protocols
CN106301789A (zh) * 2016-08-16 2017-01-04 电子科技大学 应用基于格的线性同态签名的云存储数据的动态验证方法
CN107124272A (zh) * 2017-05-02 2017-09-01 西南石油大学 支持数据代理上传的格基云存储数据安全审计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
格基签密关键技术研究;闫建华;《中国博士学位论文全文数据库信息科技辑》;20160315;全文 *

Also Published As

Publication number Publication date
WO2020114121A1 (zh) 2020-06-11
CN109687969A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN109474422B (zh) 一种多方协同产生sm2数字签名的方法
CN109377360B (zh) 基于加权门限签名算法的区块链资产交易转账方法
CN108418783B (zh) 一种保护区块链智能合约隐私的方法、介质
US11438144B2 (en) Computer-implemented systems and methods for performing computational tasks across a group operating in a trust-less or dealer-free manner
CN109687969B (zh) 一种基于密钥共识的格基数字签名方法
CN110971405A (zh) 多方协同的sm2签名、解密方法及其***
CN111819817A (zh) 针对基于双线性映射累加器的授权的区块链实现的方法和***
CN110011803B (zh) 一种轻量级sm2两方协同生成数字签名的方法
CN113065934B (zh) 一种隐私可验证的竞拍方法、***、计算机设备及应用
CN109936458B (zh) 一种基于多重证据纠错的格基数字签名方法
Saha et al. A blockchain framework in post-quantum decentralization
CN111010285B (zh) 一种适用于轻量级客户端的sm2两方协同签名方法及介质
CN112380495B (zh) 安全多方乘法运算方法及***
CN115883079A (zh) 一种数据处理方法、***、装置、电子设备与存储介质
Zhang et al. Simpler efficient group signature scheme with verifier-local revocation from lattices
Tian et al. DIVRS: Data integrity verification based on ring signature in cloud storage
CN116318736A (zh) 一种用于分级管理的二级门限签名方法及装置
CN114065233A (zh) 一种面向大数据和区块链应用的数字签名聚合方法
CN110505052B (zh) 一种保护数据隐私的云数据公开验证方法
CN110430041B (zh) 云服务场景下无证书数字签名方法
Tan et al. Multi-party co-signature scheme based on SM2
CN110995441A (zh) 一种多方协同EdDSA数字签名生成方法与介质
CN117499039B (zh) 基于椭圆曲线公钥密码算法的区块链签名方法
CN112087296A (zh) 一种基于证据不可区分密钥共识的格基数字签名方法
Debnath et al. Post‐quantum protocol for computing set intersection cardinality with linear complexity

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

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

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

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