CN104219047A - 一种签名验证的方法及设备 - Google Patents

一种签名验证的方法及设备 Download PDF

Info

Publication number
CN104219047A
CN104219047A CN201310213531.4A CN201310213531A CN104219047A CN 104219047 A CN104219047 A CN 104219047A CN 201310213531 A CN201310213531 A CN 201310213531A CN 104219047 A CN104219047 A CN 104219047A
Authority
CN
China
Prior art keywords
signature
verifier
signer
designated
pki
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.)
Granted
Application number
CN201310213531.4A
Other languages
English (en)
Other versions
CN104219047B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310213531.4A priority Critical patent/CN104219047B/zh
Publication of CN104219047A publication Critical patent/CN104219047A/zh
Application granted granted Critical
Publication of CN104219047B publication Critical patent/CN104219047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种签名验证的方法,所述方法通过密钥生成者PKG根据陷门抽样算法生成所述PKG的公钥A和所述PKG的密钥T;PKG根据固定维数的格代理算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证。在实现算法由公钥环境向基于身份环境扩展的同时,也提高了签名算法的效率。另外,计算量更小,签名长度更短,从而实现较高的效率。

Description

一种签名验证的方法及设备
技术领域
本发明涉及算法领域,尤其涉及到一种签名验证的方法及设备。
背景技术
指定验证者签名要求只有指定的验证者能够确定签名者事实上生成了该签名,而任何第三方都无法验证该签名。不仅如此,指定的验证者也无法使得任何第三方相信该签名来自签名者。这是因为指定验证者本人也能生成一个与真实指定验证者签名不可区分的签名。不过,指定验证者签名容易遭受在线的窃听攻击。因为,在线窃听攻击下,第三方有可能在指定验证者之前就得到了签名者签署的签名,由于第三方确定在指定验证者之前得到的签名,因而第三方确信该签名是由签名者签署的。强指定验证者签名能够较好的抵御这种在线攻击,实现上述签名要求。因为,在强指定验证者签名中,签名信息被有效的保护,只有拥有指定验证者密钥的人才能获得真实的签名信息,第三方只能得到一组近似随机的数据,这样,即使第三方通过在线窃听在签名者之前得到签名,在第三方看来这些签名是随机的数字,第三方甚至不清楚该随机的数字包含签名信息。
指定验证者签名在版权保护、合同签署等电子商务领域存在广泛的应用。例如,在电子合同签署领域,两家公司在签署正式合同之前,需要经过多次秘密协商以确定合同条款。在进行合同草本的协商过程中,合同的双方并不希望将协商的内容公开,或者让另一方将与本方的合同草本提供给本方的竞争者以获取更高的报价等,同时还要求合同的另一方完全能够确认本方的利益主张。在这样的应用环境下指定验证者签名能够提供现实需要的安全防护。合同的双方分别作为强指定验证者签名的签名者和指定验证者。通过强指定验证者签名方案,能够实现双方安全、隐私的合同草本的协商。
2012年,Wang等基于盆景树算法构造了一个基于格工具的强指定验证者签名方案,并实现了随机预言机模型下的不可伪造性证明。然而该方案是在公钥环境下设计和构造的,方案自身依赖于公钥证书的使用,这使得方案的实用性较差。因为在公钥环境下,用户的公钥证书都是由一个证书发放机构发放的,该机构要负责用户公钥的注册及维护。当用户过多时,该机构的工作效率降低可能影响用户的效率。同时用户的公钥证书还存在过期、被伪造等安全问题。总之,证书发放机构自身的安全问题及效率问题可能成为公钥基础设施的应用瓶颈。
发明内容
本发明实施例提供了一种签名验证的方法,旨在一定程度上解决强指定验证者签名依赖公钥证书而引起的应用性较差的问题。
第一方面,一种签名验证的方法,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
所述PKG根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
结合第一方面,在第一方面的第一种可能的实现方式中,所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足 AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 Be 2 = ( H 2 ( M , r ) - AR ID - 1 e 1 ) ( mod q ) ;
则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
第二方面,一种签名验证的方法,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
结合第二方面,在第二方面的第一种可能的实现方式中,所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述签名者服务器根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量以满足其中,高斯参数参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 2 - 1 | | · · · | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量 e j ∈ q m , j = 1,2 , k , 满足 | | e 0 , e j | | ≤ s m ;
利用原像抽样函数计算满足
Be 0 = ( H 2 ( M , t ) - Σ j = 1 k AR j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
第三方面,一种签名验证的方法,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
第四方面,一种签名验证的方法,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
第五方面,一种签名验证的系统,所述系统包括:
密钥生成者PKG,签名者服务器,指定验证者服务器;
所述PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
所述指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证。
结合第五方面,在第五方面的第一种可能的实现方式中,所述签名者服务器执行步骤根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算以满足 AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
结合第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述指定者服务器执行步骤根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)求解
根据t计算H3(M,t),并根据加密后的签名中σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
结合第五方面或者第五方面的第一种可能的实现方式或者第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,所述设备中的指定验证者服务器还用于:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 Be 2 = ( H 2 ( M , r ) - AR ID - 1 e 1 ) ( mod q ) ;
则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
第六方面,一种签名验证的系统,所述系统包括:
密钥生成者PKG,签名者服务器,指定验证者服务器;
所述PKG,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
所述签名者服务器,用于根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
所述指定验证者服务器,用于根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
结合第六方面,在第六方面的第一种可能的实现方式中,所述PKG执行步骤根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述签名者服务器执行步骤根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量以满足其中,高斯参数参数限 L ~ ≥ O n log q ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
结合第六方面的第二种可能的实现方式,在第六方面的第三种可能的实现方式中,所述指定验证者服务器执行步骤所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB及求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 2 - 1 | | . . . | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
结合第六方面或者第六方面的第一种可能的实现方式或者第六方面的第二种可能的实现方式或者第六方面的第三种可能的实现方式,在第六方面的第四种可能的实现方式中,所述设备中的指定验证者服务器还用于:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量 e j ∈ q m , j = 1,2 , k , 满足 | | e 0 , e j | | ≤ s m ;
利用原像抽样函数计算满足
Be 0 = ( H 2 ( M , t ) - Σ j = 1 k AR j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
第七方面,一种PKG,所述PKG包括:
第一生成单元,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
第二生成单元,用于根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
第三生成单元,用于根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
第八方面,一种PKG,所述PKG包括:
第一生成单元,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
第二生成单元,用于根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
第三生成单元,用于根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
本发明实施例提供一种签名验证的方法,所述方法通过密钥生成者生成所述PKG的公钥A和所述PKG的密钥T;所述密钥生成者根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,从而实现基于身份环境下的公钥和密钥生成,不依赖于公钥证书;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,仅使用一个错误向量,计算量更小,签名长度更短;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证;或者,密钥生成者根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种签名验证的方法流程图;
图2是本发明实施例提供的一种签名验证的方法流程图;
图3是本发明实施例提供的一种签名验证的方法流程图;
图4是本发明实施例提供的一种签名验证的方法流程图;
图5是本发明实施例提供的算法和现有算法对比示意图;
图6是本发明实施例提供的算法和现有算法效果对比示意图;
图7是本发明实施例提供的一种签名验证的系统结构图;
图8是本发明实施例提供的一种签名验证的系统结构图;
图9是本发明实施例提供的一种签名验证的设备结构图;
图10是本发明实施例提供的一种签名验证的设备结构图;
图11是本发明实施例提供的一种签名验证的设备结构图;
图12是本发明实施例提供的一种签名验证的设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,图1是本发明实施例提供的一种签名验证的方法流程图。如图1所示,所述方法包括以下步骤:
步骤101,密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
密钥生成者(Private key generator,PKG)是基于身份密码系统的一个参与方,其主要功能是为用户生成与其身份对应的密钥。所述PKG可以由为所述身份密码系统服务的生成商或服务商承担。
具体的,所述第一预先设置的算法可以是陷门抽样算法,所述PKG运行陷门抽样算法生成PKG的公钥及其对应的私钥T。满足:AT=0(modq),
步骤102,所述PKG根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
具体的,所述第二预先设置的算法可以是固定维数的格代理算法。
密钥生成的基本原理是利用格上陷门抽样的方法为每一位用户生成一个随机的格同时产生出该格上一组范数较小的基,将随机格对应的校验矩阵A作为公钥,而范数较小的基作为密钥。
具体的,PKG为身份为ID的用户生成公钥及其对应的密钥如下:
PKG计算RID=H1(ID)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足则用户的公钥为密钥为
步骤103,所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
其中,指定验证者可以是电子商务中购买某软件版权的消费者或者电子合同条款秘密协商时合同双方中的一方等。
步骤104,签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
其中,签名者服务器可以是某版权的销售者,某面向指定接收个人的消息发布者,如合同条款协商中的一方等。
具体的,所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
其中,n是安全参数,其他的系统参数都可以用n的函数来描述。而参数m则是方案所基于格的维数,具体表现为密钥生成中心的公钥矩阵的列数。参数q是我们方案的模数,换句话说我们发明的所有运算都将在域¢q上进行。参数限是用来刻画签名密钥的尺寸,因为只有尺寸比较小的格上基向量才能成为该发明的签名密钥。安全hash函数则是密码学的一个基本概念,利用hash函数可以将任意比特的数据“压缩”为固定长度的输出,该输出形式上接近随机,hash函数被广泛的应用于数字签名、公钥加密等等信息安全领域。
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算以满足 AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取一个错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
签名算法中,签名者服务器利用盆景树算法生成消息的签名,该过程与现有技术是一致的,本算法相比现有技术的改进在于有效的提高了算法的简洁度、降低了签名的计算量和签名的长度。具体的,我们的签名实现强性后包含¢q上一个2m维向量,一个m维向量和一个n维向量。与之对比的现有技术中请指定验证者签名包含¢q上一个2m维向量,两个m维向量。因为两个技术中m参数都大于2n,从而本发明签名长度更短。同时,对比两个算法,我们的发明中避免了将一个n维向量扩展为m维向量的计算,从而节省了一些计算消耗。
步骤105,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证,包括:
根据加密后的签名中的y、TB及求解x,并根据y=BTt+x(modq)
求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
本发明的验证算法与已有技术比较,在第一步中仅仅对一个带差错的学习问题(Learning with Errors Problem,LWE)问题实例进行了求逆运算,而现有技术需要对两个LWE问题实例进行求逆运算,其余验证过程两个算法在相同参数下的计算量是相当的,从而综合比较本发明的验证时计算成本更低。
可选地,所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 Be 2 = ( H 2 ( M , r ) - AR ID - 1 e 1 ) ( mod q ) ;
则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
指定验证者这样产生的强指定验证者签名的模拟签名与签名者生成的签名是不可区分的。从而实现了真实的模拟。
本发明实施例提供一种签名验证的方法,所述方法通过密钥生成者生成所述PKG的公钥A和所述PKG的密钥T;所述密钥生成者根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,从而实现基于身份环境下的公钥和密钥生成,不依赖于公钥证书;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,仅使用一个错误向量,计算量更小,签名长度更短;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图2,图2是本发明实施例提供的一种签名验证的方法流程图。如图2所示,所述方法包括以下步骤:
步骤201,密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
步骤202,所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
具体的,所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
具体的,PKG为身份为IDi的环用户生成公钥及其对应的密钥如下:
PKG计算Ri=H1(IDi)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为密钥生成中心最后将所有环用户的公钥级联得到环系统公钥其中k代表环用户的个数,所述环系统为所述签名者所在系统,所述环用户为所述签名者所在系统的其中一个签名者。
步骤203,所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
步骤204,签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
具体的,所述签名者服务器根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量满足其中,高斯参数参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
步骤205,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 1 - 1 | | . . . | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
可选地,所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量 e j ∈ q m , j = 1,2 , k , 满足 | | e 0 , e j | | ≤ s m ;
利用原像抽样函数计算满足
Be 0 = ( H 2 ( M , t ) - Σ j = 1 k AR j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
本发明实施例中,在基于身份(Id-based)的密码中,用户的身份信息被作为用户公钥,从而可以有效的规避系统对公钥证书的依赖,具有很好的应用前景。
本发明实施例提供一种签名验证的方法,所述方法通过密钥生成者根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图3,图3是本发明实施例提供的一种签名验证的方法流程图。如图3所示,所述方法包括以下步骤:
步骤301,密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
具体的,密钥生成者是基于身份密码系统的一个参与方,其主要功能是为用户生成与其身份对应的密钥。所述PKG可以由为所述身份密码系统服务的生成商或服务商承担。
具体的,所述第一预先设置的算法可以是陷门抽样算法,所述PKG运行陷门抽样算法生成PKG的公钥及其对应的私钥T。满足:AT=0(modq),
步骤302,根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
具体的,所述第二预先设置的算法可以是固定维数的格代理算法。
密钥生成的基本原理是利用格上陷门抽样的方法为每一位用户生成一个随机的格同时产生出该格上一组范数较小的基,将随机格对应的校验矩阵A作为公钥,而范数较小的基作为密钥。
具体的,PKG为身份为ID的用户生成公钥及其对应的密钥如下:
PKG计算RID=H1(ID)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为
步骤303,根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述签名者服务器随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
其中,n是安全参数,其他的系统参数都可以用n的函数来描述。而参数m则是方案所基于格的维数,具体表现为密钥生成中心的公钥矩阵的列数。参数q是我们方案的模数,换句话说我们发明的所有运算都将在域¢q上进行。参数限是用来刻画签名密钥的尺寸,因为只有尺寸比较小的格上基向量才能成为该发明的签名密钥。安全hash函数则是密码学的一个基本概念,利用hash函数可以将任意比特的数据“压缩”为固定长度的输出,该输出形式上接近随机,hash函数被广泛的应用于数字签名、公钥加密等等信息安全领域。
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算以满足
AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取一个错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
签名算法中,签名者服务器利用盆景树算法生成消息的签名,该过程与现有技术是一致的,本算法相比现有技术的改进在于有效的提高了算法的简洁度、降低了签名的计算量和签名的长度。具体的,我们的签名实现强性后包含¢q上一个2m维向量,一个m维向量和一个n维向量。与之对比的现有技术中请指定验证者签名包含¢q上一个2m维向量,两个m维向量。因为两个技术中m参数都大于2n,从而本发明签名长度更短。同时,对比两个算法,我们的发明中避免了将一个n维向量扩展为m维向量的计算,从而节省了一些计算消耗。
指定验证者服务器根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
本发明的验证算法与已有技术比较,在第一步中仅仅对一个带差错的学习问题进行了求逆运算,而现有技术需要对两个LWE问题实例进行求逆运算,其余验证过程两个算法在相同参数下的计算量是相当的,从而综合比较本发明的验证时计算成本更低。
本发明实施例提供一种签名验证的方法,所述方法通过密钥生成者生成所述PKG的公钥A和所述PKG的密钥T;所述密钥生成者根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,从而实现基于身份环境下的公钥和密钥生成,不依赖于公钥证书;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,仅使用一个错误向量,计算量更小,签名长度更短;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图4,图4是本发明实施例提供的一种签名验证的方法流程图。如图4所示,所述方法包括以下步骤:
步骤401,密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
步骤402,根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
具体的,所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
具体的,PKG为身份为IDi的环用户生成公钥及其对应的密钥如下:
PKG计算Ri=H1(IDi)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为密钥生成中心最后将所有环用户的公钥级联得到环系统公钥其中k代表环用户的个数,所述环系统为所述签名者所在系统,所述环用户为所述签名者所在系统的其中一个签名者。
步骤403,根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述签名者服务器随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量满足其中,高斯参数参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 1 - 1 | | . . . | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
本发明实施例提供一种签名验证的方法,所述方法通过密钥生成者根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图5,图5是本发明实施例提供的算法和现有算法对比示意图。如图5所示,本发明与已有的公钥环境下的强指定验证者签名方案比较,主要存在以下不同:
1.借助固定维数的格高斯抽样算法,设计了Id-based密码算法的密钥提取协议,从而将格上的强指定验证者签名应用于基于身份密码环境。在该方案中,无论签名者Alice或是指定验证者Bob的公钥均可借助各自的身份信息结合密钥生成中心的公钥生成,同时由密钥生成中心的密钥使用格高斯抽样技术实现密钥的提取。
2.进一步简化了方案实现强性功能的计算步骤。在原公钥环境下的强指定验证者签名方案中,为了实现强性,签名者需要两次抽取错误向量,计算两个LWE实例。而我们的发明中,签名者仅需要抽取一个错误向量,计算一个LWE问题实例即能实现方案的强性。因此,本发明的签名算法与已有算法比较,设计更加简洁、计算效率更高。
3.在简化强性实现过程的同时,与原有发明比较,本发明的签名长度进一步的缩短。实际上,原有方案的签名相当于上一个4m维的向量,签名长度达到4mlogq。而新的Id-based方案中,签名仅仅相当于一个3m+n维的向量,签名长度仅为(3m+n)logq。为实现安全性,实际参数的选择中,参数m远大于2n。因此在相同的参数环境下,本方案的效率更高。
4.本发明中的第三个安全hash函数只要利用其输出的随机性(临时密钥),因此实际应用过程中也可以用相应的随机数生成器来替代。
5.根据Agrawal,Boneh,Boyen的研究,本发明中用于杂凑身份信息的第一个hash函数能够被有效的实现并应用于方案的设计。
参考图6,图6是本发明实施例提供的算法和现有算法效果对比示意图。
本发明利用格工具提出了一个新型的Id-based强指定验证者签名方案。从而为基于身份环境如何限制签名的有效验证权、及防止数字签名的无限制传播提供了一个基于格的解决方案。因此,本发明能够为电子合同签署、版权保护、电子银行、远程谈判等应用环境提供安全保护。
参考图7,图7是本发明实施例提供的一种签名验证的系统结构图。如图7所示,所述系统包括:
密钥生成者PKG701,签名者服务器702,指定验证者服务器703;
所述PKG701根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
具体的,所述第一预先设置的算法可以是陷门抽样算法,密钥生成者(Privatekey generator,PKG)运行陷门抽样算法生成PKG的公钥及其对应的私钥T。满足:AT=0(modq),
具体的,所述第二预先设置的算法可以是固定维数的格代理算法。
密钥生成的基本原理是利用格上陷门抽样的方法为每一位用户生成一个随机的格同时产生出该格上一组范数较小的基,将随机格对应的校验矩阵A作为公钥,而范数较小的基作为密钥。
具体的,PKG为身份为ID的用户生成公钥及其对应的密钥如下:
PKG计算RID=H1(ID)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为
所述签名者服务器702根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
具体的,所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
其中,n是安全参数,其他的系统参数都可以用n的函数来描述。而参数m则是方案所基于格的维数,具体表现为密钥生成中心的公钥矩阵的列数。参数q是我们方案的模数,换句话说我们发明的所有运算都将在域¢q上进行。参数限是用来刻画签名密钥的尺寸,因为只有尺寸比较小的格上基向量才能成为该发明的签名密钥。安全hash函数则是密码学的一个基本概念,利用hash函数可以将任意比特的数据“压缩”为固定长度的输出,该输出形式上接近随机,hash函数被广泛的应用于数字签名、公钥加密等等信息安全领域。
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算以满足 AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
签名算法中,签名者服务器利用盆景树算法生成消息的签名,该过程与现有技术是一致的,本算法相比现有技术的改进在于有效的提高了算法的简洁度、降低了签名的计算量和签名的长度。具体的,我们的签名实现强性后包含¢q上一个2m维向量,一个m维向量和一个n维向量。与之对比的现有技术中请指定验证者签名包含¢q上一个2m维向量,两个m维向量。因为两个技术中m参数都大于2n,从而本发明签名长度更短。同时,对比两个算法,我们的发明中避免了将一个n维向量扩展为m维向量的计算,从而节省了一些计算消耗。
所述指定验证者服务器703根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证。
具体的,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)
求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
本发明的验证算法与已有技术比较,在第一步中仅仅对一个带差错的学习问题(Learning with Errors Problem,LWE)问题实例进行了求逆运算,而现有技术需要对两个LWE问题实例进行求逆运算,其余验证过程两个算法在相同参数下的计算量是相当的,从而综合比较本发明的验证时计算成本更低。
可选地,所述指定验证者服务器503还用于:
根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 Be 2 = ( H 2 ( M , r ) - AR ID - 1 e 1 ) ( mod q ) ;
则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
指定验证者这样产生的强指定验证者签名的模拟签名与签名者生成的签名是不可区分的。从而实现了真实的模拟。
本发明实施例提供一种签名验证的系统,所述系统通过密钥生成者生成所述PKG的公钥A和所述PKG的密钥T;所述密钥生成者根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,从而实现基于身份环境下的公钥和密钥生成,不依赖于公钥证书;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,仅使用一个错误向量,计算量更小,签名长度更短;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图8,图8是本发明实施例提供的一种签名验证的系统结构图。如图8所示,所述系统包括:
密钥生成者PKG801,签名者服务器802,指定验证者服务器803;
所述PKG801,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
具体的,所述PKG601根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
具体的,PKG为身份为IDi的环用户生成公钥及其对应的密钥如下:
PKG计算Ri=H1(IDi)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为密钥生成中心最后将所有环用户的公钥级联得到环系统公钥其中k代表环用户的个数,所述环系统为所述签名者所在系统,所述环用户为所述签名者所在系统的其中一个签名者。
所述签名者服务器802,用于根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
具体的,所述签名者服务器802根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量以满足其中,高斯参数参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
所述指定验证者服务器803,用于根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 1 - 1 | | . . . | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
可选地,所述指定验证者服务器803还用于:
根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量 e j ∈ q m , j = 1,2 , k , 满足 | | e 0 , r j | | ≤ s m ;
利用原像抽样函数计算满足
Be 0 = ( H 2 ( M , t ) - Σ j = 1 k AR j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
本发明实施例中,在基于身份(Id-based)的密码中,用户的身份信息被作为用户公钥,从而可以有效的规避系统对公钥证书的依赖,具有很好的应用前景。
本发明实施例提供一种签名验证的系统,所述系统通过密钥生成者根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图9,图9是本发明实施例提供的一种PKG的设备结构图。如图9所示,所述PKG包括以下单元:
第一生成单元901,用于密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
具体的,密钥生成者是基于身份密码系统的一个参与方,其主要功能是为用户生成与其身份对应的密钥。所述PKG可以由为所述身份密码系统服务的生成商或服务商承担。
具体的,所述第一预先设置的算法可以是陷门抽样算法,所述PKG运行陷门抽样算法生成PKG的公钥及其对应的私钥T。满足:
第二生成单元902,用于根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
具体的,所述第二预先设置的算法可以是固定维数的格代理算法。
密钥生成的基本原理是利用格上陷门抽样的方法为每一位用户生成一个随机的格同时产生出该格上一组范数较小的基,将随机格对应的校验矩阵A作为公钥,而范数较小的基作为密钥。
具体的,PKG为身份为ID的用户生成公钥及其对应的密钥如下:
PKG计算RID=H1(ID)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为
第三生成单元903,用于根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述签名者服务器随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
其中,n是安全参数,其他的系统参数都可以用n的函数来描述。而参数m则是方案所基于格的维数,具体表现为密钥生成中心的公钥矩阵的列数。参数q是我们方案的模数,换句话说我们发明的所有运算都将在域¢q上进行。参数限是用来刻画签名密钥的尺寸,因为只有尺寸比较小的格上基向量才能成为该发明的签名密钥。安全hash函数则是密码学的一个基本概念,利用hash函数可以将任意比特的数据“压缩”为固定长度的输出,该输出形式上接近随机,hash函数被广泛的应用于数字签名、公钥加密等等信息安全领域。
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算以满足 AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取一个错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
签名算法中,签名者服务器利用盆景树算法生成消息的签名,该过程与现有技术是一致的,本算法相比现有技术的改进在于有效的提高了算法的简洁度、降低了签名的计算量和签名的长度。具体的,我们的签名实现强性后包含¢q上一个2m维向量,一个m维向量和一个n维向量。与之对比的现有技术中请指定验证者签名包含¢q上一个2m维向量,两个m维向量。因为两个技术中m参数都大于2n,从而本发明签名长度更短。同时,对比两个算法,我们的发明中避免了将一个n维向量扩展为m维向量的计算,从而节省了一些计算消耗。
指定验证者服务器根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
本发明的验证算法与已有技术比较,在第一步中仅仅对一个带差错的学习问题进行了求逆运算,而现有技术需要对两个LWE问题实例进行求逆运算,其余验证过程两个算法在相同参数下的计算量是相当的,从而综合比较本发明的验证时计算成本更低。
本发明实施例提供一种PKG,所述PKG通过密钥生成者生成所述PKG的公钥A和所述PKG的密钥T;所述密钥生成者根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,从而实现基于身份环境下的公钥和密钥生成,不依赖于公钥证书;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,仅使用一个错误向量,计算量更小,签名长度更短;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
参考图10,图10是本发明实施例提供的一种PKG的设备结构图。如图10所示,所述设备包括以下单元:
第一生成单元1001,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
第二生成单元1002,用于根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
具体的,所述PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
具体的,PKG为身份为IDi的环用户生成公钥及其对应的密钥如下:
PKG计算Ri=H1(IDi)∈Dm×m
由固定维数的格代理算法抽取小范数的矩阵满足
则用户的公钥为密钥为密钥生成中心最后将所有环用户的公钥级联得到环系统公钥其中k代表环用户的个数,所述环系统为所述签名者所在系统,所述环用户为所述签名者所在系统的其中一个签名者。
第三生成单元1003,用于根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
具体的,所述签名者服务器随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量满足其中,高斯参数参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 1 - 1 | | . . . | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
本发明实施例提供一种PKG,所述PKG通过密钥生成者根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB;签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;指定验证者服务器根据所述指定验证者的密钥TB和加密后的签名得到所述签名e,并对所述签名进行验证,在实现算法由公钥环境向基于身份环境扩展,另外,计算量更小,签名长度更短,从而实现较高的效率。
图11是本发明实施例提供的一种签名验证的设备结构图。参考图11,图11是本发明实施例提供的一种签名验证的设备1100,本发明具体实施例并不对所述设备的具体实现做限定。所述设备1100包括:
处理器1101,通信接口(Communications Interface)1102,存储器(memory)1103,总线1104。
处理器1101,通信接口1102,存储器1103通过总线1104完成相互间的通信。
通信接口1102,用于与其他设备进行通信;
处理器1101,用于执行程序。
具体的,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1101可能是一个中央处理器(central processing unit,CPU),或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1103,用于存储程序。存储器1103可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM),或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-statedrive,SSD)。处理器1101根据存储器1103存储的程序指令,执行以下方法:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
所述PKG根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算以满足 AR ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)
求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
| | e | | ≤ s 2 m ( AR ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 Be 2 = ( H 2 ( M , r ) - AR ID - 1 e 1 ) ( mod q ) ;
则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
图12是本发明实施例提供的一种签名验证的设备结构图。参考图12,图12是本发明实施例提供的一种签名验证的设备1200,本发明具体实施例并不对所述设备的具体实现做限定。所述设备1200包括:
处理器1201,通信接口(Communications Interface)1202,存储器(memory)1203,总线1204。
处理器1201,通信接口1202,存储器1203通过总线1204完成相互间的通信。
通信接口1202,用于与其他设备进行通信;
处理器1201,用于执行程序。
具体的,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1201可能是一个中央处理器(central processing unit,CPU),或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1203,用于存储程序。存储器1203可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM),或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-statedrive,SSD)。处理器1201根据存储器1203存储的程序指令,执行以下方法:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
所述签名者服务器根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量以满足其中,高斯参数参数限 L ~ ≥ O ( n log q ) ;
利用原像抽样函数通过所述签名者的密钥TID计算满足
AR i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k AR j - 1 e j - Be 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算H3(M,r')其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)
求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
| | e | | ≤ s ( k + 1 ) m ( B | | AR 1 - 1 | | AR 2 - 1 | | . . . | | AR k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量 e j ∈ q m , j = 1,2 , k , 满足 | | e 0 , e j | | ≤ s m ;
利用原像抽样函数计算满足
Be 0 = ( H 2 ( M , e ) - Σ j = 1 k AR j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (22)

1.一种签名验证的方法,其特征在于,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
所述PKG根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
2.根据权利要求1所述的方法,其特征在于,所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择一个新向量以满足其中,高斯参数参数限
利用原像抽样函数通过所述签名者的密钥TID计算以满足 A R ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
令eT=(e1 T,e2 T),则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
3.根据权利要求2所述的方法,其特征在于,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
( A R ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 B e 2 = ( H 2 ( M , r ) - A R ID - 1 e 1 ) ( mod q ) ;
令eT=(e1 T,e2 T),则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
5.一种签名验证的方法,其特征在于,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
所述PKG根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
6.根据权利要求5所述的方法,其特征在于,所述PKG根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥ARi -1及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
7.根据权利要求6所述的方法,其特征在于,所述签名者服务器根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量以满足其中,高斯参数参数限
利用原像抽样函数通过所述签名者的密钥TID计算满足
A R i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k A R j - 1 e j - B e 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
8.根据权利要求7所述的方法,其特征在于,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
( B | | A R 1 - 1 | | A R 2 - 1 | | · · · | | A R k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
9.根据权利要求5-8任意一项所述的方法,其特征在于,所述方法还包括:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量满足
利用原像抽样函数计算满足
B e 0 = ( H 2 ( M , t ) - Σ j = 1 k A R j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
10.一种签名验证的方法,其特征在于,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名,以及使得指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
11.一种签名验证的方法,其特征在于,所述方法包括:
密钥生成者PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;以及,使得指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
12.一种签名验证的系统,其特征在于,所述系统包括:
密钥生成者PKG,签名者服务器,指定验证者服务器;
所述PKG根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID;根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
所述签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
所述指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
13.根据权利要求12所述的系统,其特征在于,所述签名者服务器执行步骤根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择一个新向量以满足其中,高斯参数 s = L ~ ω ( log n ) , 参数限
利用原像抽样函数通过所述签名者的密钥TID计算以满足 A R ID - 1 e 1 = ( H 2 ( M , r ) - Be 2 ) ( mod q ) ;
令eT=(e1 T,e2 T),则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名为(σ,r,y)。
14.根据权利要求13所述的系统,其特征在于,所述指定者服务器执行步骤根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的y、TB求解x,并根据y=BTt+x(modq)求解
根据t计算H3(M,t),并根据加密后的签名中的σ和H3(M,t)计算e=σ-H3(M,t)(modq);
( A R ID - 1 | | B ) e = H 2 ( M , r ) ( mod q ) , 则验证成功。
15.根据权利要求12-14任意一项所述的系统,其特征在于,所述系统中的指定验证者服务器还用于:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,r);
随机选择一个新向量满足
将TB作为密钥输入原像抽样函数,并根据所述签名者的公钥计算满足 B e 2 = ( H 2 ( M , r ) - A R ID - 1 e 1 ) ( mod q ) ;
令eT=(e1 T,e2 T),则e为指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算
按照错误分布抽取错误向量计算σ=e+H3(M,t)(modq),y=BTt+x(modq);
加密后的签名副本为(σ,r,y)。
16.一种签名验证的系统,其特征在于,所述系统包括:
密钥生成者PKG,签名者服务器,指定验证者服务器;
所述PKG,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID;根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB
所述签名者服务器,用于根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;
所述指定验证者服务器,用于根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
17.根据权利要求16所述的系统,其特征在于,所述PKG执行步骤根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥或者所述所述签名者的密钥TID,包括:
PKG根据第二预先设置的算法、所述PKG的公钥A、所述PKG的密钥T和所述签名者身份ID生成所述签名者的公钥ARi -1及所述签名者的密钥
将所述签名者所在系统的每一个签名者的公钥级联得到所述签名者所在系统的系统公钥其中k代表所述签名者所在系统的签名者个数。
18.根据权利要求17所述的系统,其特征在于,所述签名者服务器执行步骤根据原像抽样函数、所述签名者的密钥所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,包括:
随机选择向量计算H2(M,t),其中,所述安全Hash函数H2映射消息M∈(0,1)*,安全参数m≥2nlogq,q>βω(logn),β=poly(n),安全参数n为素数;
随机选择向量以满足其中,高斯参数参数限
利用原像抽样函数通过所述签名者的密钥TID计算满足
A R i - 1 e i = ( H 2 ( M , t ) - Σ j ≠ i k A R j - 1 e j - B e 0 ) ( mod q )
令eT为所有的级联,其中j=0,1,…,k,则e为所述消息的指定验证者签名;
所述对所述签名e进行加密,得到加密后的签名,包括:
随机选择向量计算其中,安全hash函数H3映射
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq);
加密后的签名为(σ,r,t)。
19.根据权利要求18所述的系统,其特征在于,所述指定验证者服务器执行步骤,所述根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名进行验证,包括:
根据加密后的签名中的r、TB求解x,并根据r=BTr′+x(modq)求解
根据r'计算H3(M,r'),并根据加密后的签名中的σ和H3(M,r')计算e=σ-H3(M,r')(modq);
( B | | A R 1 - 1 | | A R 2 - 1 | | · · · | | A R k - 1 ) e = H 2 ( M , t ) ( mod q ) , 则验证成功。
20.根据权利要求16-19任意一项所述的系统,其特征在于,所述指定验证者服务器还用于:
指定验证者服务器根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密;
所述根据原像抽样函数、所述指定验证者的密钥TB、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成消息的模拟指定验证者签名e,包括:
随机选择向量计算H2(M,t);
随机选择向量满足
利用原像抽样函数计算满足
Be 0 = ( H 2 ( M , t ) - Σ j = 1 k AR j - 1 e j ) ( mod q ) ;
令eT为所有的级联,其中j=0,1,…,k。则e为指定验证者签名;
所述对所述签名e进行加密,包括:
随机选择向量计算
按照错误分布抽取错误向量计算
σ=e+H3(M,r')(modq),r=BTr′+x(modq).
加密后的签名副本为(σ,r,t)。
21.一种PKG,其特征在于,所述PKG包括:
第一生成单元,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
第二生成单元,用于根据第二预先设置的算法、签名者身份ID、所述PKG的公钥A和所述PKG的密钥T生成所述签名者的公钥和所述签名者的密钥TID
第三生成单元,用于根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者的公钥所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名,指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
22.一种PKG,其特征在于,所述PKG包括:
第一生成单元,用于根据第一预先设置的算法生成所述PKG的公钥A和所述PKG的密钥T;
第二生成单元,用于根据第二预先设置的算法、和签名者所在系统的每一个签名者ID、所述PKG的公钥A和所述PKG的密钥T生成所述每一位签名者所在系统的系统公钥和所述所述签名者的密钥TID
第三生成单元,用于根据所述第二预先设置的算法和指定验证者身份ID生成所述指定验证者的公钥B和指定验证者的密钥TB,以使得签名者服务器根据原像抽样函数、所述签名者的密钥TID、所述签名者所在系统的系统公钥、所述指定验证者的公钥B生成指定验证者签名e,并对所述签名e进行加密,得到加密后的签名;指定验证者服务器根据所述指定验证者的密钥TB和所述加密后的签名计算得到所述签名e,并对所述签名e进行验证。
CN201310213531.4A 2013-05-31 2013-05-31 一种签名验证的方法及设备 Active CN104219047B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310213531.4A CN104219047B (zh) 2013-05-31 2013-05-31 一种签名验证的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310213531.4A CN104219047B (zh) 2013-05-31 2013-05-31 一种签名验证的方法及设备

Publications (2)

Publication Number Publication Date
CN104219047A true CN104219047A (zh) 2014-12-17
CN104219047B CN104219047B (zh) 2017-12-15

Family

ID=52100212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310213531.4A Active CN104219047B (zh) 2013-05-31 2013-05-31 一种签名验证的方法及设备

Country Status (1)

Country Link
CN (1) CN104219047B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187208A (zh) * 2015-06-12 2015-12-23 电子科技大学 非授权的基于无证书的强指定验证者签名体制
CN106571927A (zh) * 2016-10-25 2017-04-19 中国科学院信息工程研究所 一种基于对称加密的匿名身份归类识别方法
CN107104788A (zh) * 2017-04-18 2017-08-29 深圳奥联信息安全技术有限公司 终端及其不可抵赖的加密签名方法和装置
CN110138549A (zh) * 2019-04-19 2019-08-16 北京信息科学技术研究院 一种基于格的数字签名方法
WO2020000254A1 (zh) * 2018-06-27 2020-01-02 深圳大学 一种标准模型下的紧凑环签名方法及系统
CN111698081A (zh) * 2020-06-08 2020-09-22 中国科学院重庆绿色智能技术研究院 一种基于格的压缩分块ibe加密装置及方法
CN111917547A (zh) * 2020-07-24 2020-11-10 北京科技大学 基于陷门二元单向函数的广播加密方法及装置
CN112769573A (zh) * 2020-12-26 2021-05-07 西安电子科技大学 一种基于grs码的数字签名方法、验签方法及其装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060023887A1 (en) * 2004-04-02 2006-02-02 Agrawal Dharma P Threshold and identity-based key management and authentication for wireless ad hoc networks
US20070041583A1 (en) * 2001-08-13 2007-02-22 Dan Boneh Systems and methods for identity-based encryption and related cryptographic techniques
CN101820626A (zh) * 2009-10-19 2010-09-01 兰州理工大学 基于无线mesh网络身份的无可信pkg的部分盲签名方法
CN102045164A (zh) * 2009-10-20 2011-05-04 广州信睿网络科技有限公司 一种基于身份的无密钥泄露的变色龙数字签名方法
CN103117858A (zh) * 2013-01-22 2013-05-22 河海大学 一种具备指定可撤销性的Schnorr环签名方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070041583A1 (en) * 2001-08-13 2007-02-22 Dan Boneh Systems and methods for identity-based encryption and related cryptographic techniques
US20060023887A1 (en) * 2004-04-02 2006-02-02 Agrawal Dharma P Threshold and identity-based key management and authentication for wireless ad hoc networks
CN101820626A (zh) * 2009-10-19 2010-09-01 兰州理工大学 基于无线mesh网络身份的无可信pkg的部分盲签名方法
CN102045164A (zh) * 2009-10-20 2011-05-04 广州信睿网络科技有限公司 一种基于身份的无密钥泄露的变色龙数字签名方法
CN103117858A (zh) * 2013-01-22 2013-05-22 河海大学 一种具备指定可撤销性的Schnorr环签名方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何琪芬: "对指定验证者签名方案的安全性分析", 《杭州师范大学学报(自然科学版)》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187208A (zh) * 2015-06-12 2015-12-23 电子科技大学 非授权的基于无证书的强指定验证者签名体制
CN105187208B (zh) * 2015-06-12 2018-12-14 电子科技大学 非授权的基于无证书的强指定验证者签名体制
CN106571927A (zh) * 2016-10-25 2017-04-19 中国科学院信息工程研究所 一种基于对称加密的匿名身份归类识别方法
CN106571927B (zh) * 2016-10-25 2019-07-26 中国科学院信息工程研究所 一种基于对称加密的匿名身份归类识别方法
CN107104788A (zh) * 2017-04-18 2017-08-29 深圳奥联信息安全技术有限公司 终端及其不可抵赖的加密签名方法和装置
WO2020000254A1 (zh) * 2018-06-27 2020-01-02 深圳大学 一种标准模型下的紧凑环签名方法及系统
CN110138549A (zh) * 2019-04-19 2019-08-16 北京信息科学技术研究院 一种基于格的数字签名方法
CN110138549B (zh) * 2019-04-19 2022-03-18 北京信息科学技术研究院 一种基于格的数字签名方法
CN111698081A (zh) * 2020-06-08 2020-09-22 中国科学院重庆绿色智能技术研究院 一种基于格的压缩分块ibe加密装置及方法
CN111698081B (zh) * 2020-06-08 2023-05-02 中国科学院重庆绿色智能技术研究院 一种基于格的压缩分块ibe加密装置及方法
CN111917547A (zh) * 2020-07-24 2020-11-10 北京科技大学 基于陷门二元单向函数的广播加密方法及装置
CN111917547B (zh) * 2020-07-24 2021-06-01 北京科技大学 基于陷门二元单向函数的广播加密方法及装置
CN112769573A (zh) * 2020-12-26 2021-05-07 西安电子科技大学 一种基于grs码的数字签名方法、验签方法及其装置
CN112769573B (zh) * 2020-12-26 2022-08-05 西安电子科技大学 一种基于grs码的数字签名方法、验签方法及其装置

Also Published As

Publication number Publication date
CN104219047B (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN105939191B (zh) 一种云存储中密文数据的客户端安全去重方法
CN104219047A (zh) 一种签名验证的方法及设备
CN111385306B (zh) 一种智能电网中基于防篡改设备的匿名认证方法及系统
CN102420691B (zh) 基于证书的前向安全签名方法及系统
CN104320393B (zh) 重加密可控的高效属性基代理重加密方法
CN101984576B (zh) 一种基于加密人脸的匿名身份认证方法和系统
US20150326392A1 (en) Matrix-based cryptosystem
CN109274502B (zh) 公钥加密及密钥签名的创建方法、设备及可读存储介质
CN109543434B (zh) 区块链信息加密方法、解密方法、存储方法及装置
CN103731261A (zh) 加密重复数据删除场景下的密钥分发方法
CN102594551B (zh) Rfid标签隐私数据可靠统计方法
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和系统
CN104301108A (zh) 一种从基于身份环境到无证书环境的签密方法
Zhao et al. ePUF: A lightweight double identity verification in IoT
CN104618332A (zh) 基于符号边值二叉决策图的安全两方计算方法和系统
CN104753947A (zh) 一种固定密文长度的可验证外包解密的属性基系统及方法
CN109547413A (zh) 具有数据源认证的可转换的数据云存储的访问控制方法
CN113141247A (zh) 一种同态加密方法、装置、系统及可读存储介质
Balogh et al. Modeling of data security in cloud computing
Tahir et al. A scheme for the generation of strong icmetrics based session key pairs for secure embedded system applications
Yevseiev et al. The development of the method of multifactor authentication based on hybrid cryptocode constructions on defective codes
CN117195306A (zh) 基于多方能源数据隐私计算的恶意参与行为检出方法
CN104320249A (zh) 一种基于身份的抗弹性泄漏加密方法和系统
KR101593673B1 (ko) 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치
CN110740034A (zh) 基于联盟链的qkd网络认证密钥生成方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant