一种基于双线性映射获取适配器签名的方法和电子设备与流程

文档序号:30973962发布日期:2022-08-02 22:43阅读:293来源:国知局
一种基于双线性映射获取适配器签名的方法和电子设备与流程

1.本发明属于数据处理与安全验证领域,尤其涉及一种基于双线性映射获取适配器签名的方法。


背景技术:

2.区块链是一种去中心化、不可篡改、可追溯的分布式数据存储技术,实现了点对点的价值传递,解决了数字世界中数据流通的可信确权和安全共享问题,其应用已延伸到数字金融、物联网、智能制造、供应链管理等多个领域,成为数字世界中构建信任体系的重要基础设施。
3.然而区块链技术固有的“不可能三角”表明,任何一个区块链都只能在去中心化、可扩展性和安全性中至多兼顾两项。针对可扩展性,链上扩容和链下扩容成为两个重要的发展方向。链上扩容是对区块链本身进行扩展,主要方法有区块扩容、隔离见证和分片技术。链下扩容是指运行在区块链系统之上以提高区块链可扩展性为目标的技术,也就是将区块链上的部分事务移到链下进行处理,只将最终结果上链,从而减轻区块链上的处理压力,提升区块链的整体效率,主要有状态通道、侧链和链下计算等。
4.适配器签名是构建状态通道的一种重要技术手段,最初是为了突破基于脚本语言的区块链系统的局限性,实现了不可见脚本(scriptless script)以及隐私保护功能,后来演变发展为一种新型数字签名的密码学原语。其基本思想是把签名过程和一个秘密的揭示过程绑定在一起。用户首先生成一个预签名,其中隐含了一个困难关系中的声明(声明是可以公开的值,由声明很难计算得到见证)。只有利用困难关系中的见证(未揭示之前是保密的,由见证容易计算得到声明),才可以将预签名转换为一个验证合法的数字签名;使用预签名和对应的数字签名,可以提取困难关系中的见证。
5.适配器签名的签名与秘密揭示绑定的特性,尤其适合于区块链事务(含签名)上链(即公开)被确认(即有效)的应用场景,可以用来实现各种不依赖于可信第三方的原子交换(即交换双方或者都获得了各自的交换对象,或者都没有所获,也称为公平交换),主要包括将适配器用于构造单区块链的链下状态通道,以及两个不同链之间的跨链原子交换,如2019年,在网络与分布式系统安全研讨会(ndss)上,malavolta等人发表的《anonymous multi-hop locks for blockchain scalability and interoperability》一文就利用适配器签名方案实现状态通道网络的隐私保护;再如2020年,在金融密码学与数据安全国际会议(fc)上,deshpande等人在《privacy-preserving cross-chain atomic swaps》一文中,使用适配器签名实现了隐私保护的跨链原子交换方案。
6.以适配器签名用于实现跨链原子交换为例:假设alice希望用1比特币换取bob的13以太币.alice首先将1比特币锁定到一个与bob商定的2-of-2的比特币地址中,并且规定如果超出一个较长的时间后,该地址中的比特币还没有被花费,则1比特币返还到原先alice的地址.随后alice构建比特币事务tx1,将2-of-2地址中的1比特币输出到bob指定的比特币地址中,tx1解锁的条件是同时提供alice和bob对该事务的签名.bob对应地将13以
太币锁定在以太坊上由alice和bob共同管理的账户中,同时规定如果超出一个较长的时间后,该账户中的以太币还没有被花费,则13以太币返还到原先bob的账户.随后bob构建以太坊事务tx2,将共管账户中的13以太币输出到alice指定的以太坊账户中,tx2解锁的条件是同时提供alice和bob对该事国的签名.剩下的任务就是使得两个事务tx1和tx2分别在各自的区块链上一起生效或都不生效(从而保证交换的原子性).这两个事务生效的关键都是除了己方的签名外,还需要对方对各自事务的签名.双方都可以按照适配器签名方案针对不同的事务生成预签名,这些预签名通过相同的基于离散对数关系的困难关系y=gy绑定起来,一旦知晓见证y的一方利用y将某一预签名转换为自己所需的全签名,并在对应的区块链上公开事务(以及相应的全签名),另一方就可以通过观察到的公开信息来计算见证y,从而获得自己所需的全签名,然后在另一个区块链上发布对应的事务。
7.由于适配器特有的属性,引起了区块链和密码学研究者的关注。2017年poelstra首次提出适配器签名的概念,并基于schnorr签名构造了第一个适配器签名方案。2019年,在网络与分布式系统安全研讨会(ndss)上,malavolta等人发表的《anonymous multi-hop locks for blockchain scalability and interoperability》一文分别构造了基于schnorr签名和ecdsa的适配器签名方案。2020年,在欧洲计算机安全研讨会(esorics)上,esgin等人发表的《post-quantum adaptor signature and payment channel networks》一文,基于格密码构造了后量子安全的适配器签名方案。2021年,在金融密码学与数据安全国际会议上,tairi等人发表的《post-quantum adaptor signature for privacy-preserving off-chain payments》一文,基于同源映射密码构造了后量子安全的适配器签名方案。2021年,在亚密会(asiacrypt)上aumayr等人发表的《generalized channels from limited blockchain scripts and adaptor signatures》一文,将适配器签名作为一个独立的密码学原语给出了形式化定义,并对基于schnorr签名和ecdsa的适配器签名方案进行了可证明安全分析。2021年,在公钥密码学国际会议(pkc)上,erwig等人发表的《two-party adaptor signatures from identification schemes》一文指出,满足特定同态性的基于身份协议的数字签名方案可以转化为适配器签名方案。2021年,在国内期刊《计算机研究与发展》,peng等人发表了《基于sm2数字签名算法的适配器签名方案》一文,是基于国密算法sm2数字签名算法,也设计了一种适配器签名方案。
8.适配器签名是一个比较新的密码原语,目前已有的方案比较少,利用椭圆曲线上双线性映射构造的适配器签名方案更是没有。有限域上的超椭圆曲线上的tate对或weil对可以构造双线性映射,而这类超椭圆曲线上存在的一些困难问题,是利用双线性映射构造公钥密码体制的安全基础。双线性映射在公钥密码学中有着至为重要的作用,它可以用来构造其他技术不能实现的密码体制,如基于身份的签名或加密;也可以构造具有性能优势的密码体制,如属性基加密、密钥协商协议以及门限方案等。
9.同时,现有的椭圆曲线上的适配器签名方案也存在一定的局限性:基于schnorr签名的适配器签名虽然在签名长度、签名开销等方面都具有不可比拟的优势,但由于schnorr签名还在专利保护期内,目前并不能在区块链系统中实现。在同样安全强度下,基于ecdsa适配器签名和基于国密算法sm2的适配器签名长度相同,都是基于schnorr签名的适配器签名的三倍。运算开销方面,ecdsa适配器签名明显高于基于schnorr签名的适配器签名,而经过预处理(将签名过程中的一些运算提前处理,不统计在签名开销之内)之后的sm2的适配
器签名与基于ecdsa适配器签名相当。
10.因此,利用双线性映射设计签名长度较短的适配器签名是本发明的主要目标。


技术实现要素:

11.针对上述技术问题,本发明提出一种基于双线性映射获取适配器签名的方案。
12.在适配器签名中,签名者对一个消息产生成预签名,预签名不是一个完整的签名,它包含了一个困难关系中的声明。只有知道该声明所对应见证的用户,才能将预签名转换为一个验证合法的数字签名。对于适配器签名而言,要求该数字签名公开才有效,公开的目的是让签名者获得该数字签名,这时签名者就可以由它和预签名来提取出见证。这样,就实现了签名过程与秘密揭示的绑定。
13.基于ecdsa的适配器签名形式上与主流区块链广泛使用的ecdsa签名没有差异,但可以在其上内嵌隐蔽的控制条件,实现链上与链下的安全互动。因此,将适配器签名用于实现跨链原子交换时,上链数据仅限于常见的数字签名,与一般常规区块链事务无异。这使得攻击者即使能够监视底层的区块链数据,也无法分辨出该事务是否是跨链事务,从而最大程度地保护了跨链事务参与方的隐私性,最小化了链上的开销。
14.然而适配器签名是一个比较新的概念,目前已有的方案还比较少。尤其是基于双线性映射的适配器签名方案更是没有。目前仅有的几个公钥方案中,基于ecdsa适配器签名和基于sm2的适配器签名长度都过长,对于区块容量尤为珍贵的区块链来说是有待进一步提升的。
15.为此,本发明的目标是首次提出一个基于双线性映射的适配器签名方案,它具有较短的签名长度,是基于ecdsa适配器签名和基于sm2的适配器签名长度的一半。运算开销方面,因为使用了双线性映射,签名的运算效率低于基于ecdsa适配器签名和基于sm2的适配器签名。不过这一缺陷在对于区块链系统而言,可以通过本发明的技术方案来解决。
16.本发明第一方面公开了一种基于双线性映射获取适配器签名的方法。
17.所述方法包括:
18.步骤s1、获取签名方和验证方之间的第一签名方案,所述第一签名方案用于实现生成所述签名方的第一签名以及所述验证方对所述第一签名的验证;
19.所述第一签名方案包括密钥生成步骤、第一签名生成步骤和第一签名验证步骤;其中:
20.在所述密钥生成步骤中,生成所述签名方的公钥和私钥,所述公钥基于所述私钥来生成,所述验证方能够获取所述公钥而无法获取所述私钥;
21.在所述第一签名生成步骤中,根据所述私钥和待签名的消息来生成所述签名方的第一签名;
22.在所述第一签名验证步骤中,所述验证方利用所述公钥和所述待签名的消息对所述签名方的第一签名的合法性进行验证;
23.步骤s2、基于所述签名方的第一签名和所述验证方的加密信息完成对所述第一签名方案的适配,以获取经适配的第二签名方案,所述第二签名方案用于实现基于生成的第二签名完成所述签名方和所述验证方之间的信息互换,互换的信息为所述签名方的第一签名和所述验证方的加密信息,使得所述验证方完成对所述第一签名的验证以及所述签名方
对所述验证方的所述加密信息进行解密;
24.所述第二签名方案包括预签名生成步骤、预签名验证步骤、适配第二签名步骤和加密信息提取步骤,所述加密信息包括声明信息和见证信息,所述声明信息基于所述见证信息来生成,所述签名方在适配前仅能够获取所述声明信息而无法获取所述见证信息;其中
25.在所述预签名生成步骤中,根据所述私钥、所述待签名的消息和所述声明信息来生成与所述声明信息相关的所述签名方对所述待签名的消息的预签名;
26.在所述预签名验证步骤中,所述验证方基于所述公钥、所述待签名的消息和所述声明信息对所述签名方的所述预签名的合法性进行验证;
27.在所述适配第二签名步骤中,在完成所述预签名的合法性验证后,所述验证方将所述见证信息嵌入至所述预签名中以生成所述第二签名,同时利用所述见证信息从所述第二签名中获取所述第一签名;
28.在所述加密信息提取步骤中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息。
29.根据本发明第一方面的方法,在所述步骤s1中,生成所述签名方的所述私钥和所述公钥包括:随机选取整数模q的有限域zq中一个非零元素x作为所述私钥sk,其中计算h=g
x
∈g作为所述公钥pk,其中g为椭圆曲线上的点所构成的阶为素数的循环群g的生成元,从而得到公私密钥对(pk,sk)=(h,x)。
30.根据本发明第一方面的方法,在所述步骤s1中,根据所述私钥和待签名的消息来生成所述签名方的第一签名包括:所述签名方随机选取计算r=gr,s=h(m||r)
x
,以得到所述第一签名δ=(r,s),其中,m为所述待签名的消息,h:{0,1}
*

g为将由0和1构成的比特串映射到所述循环群g的抗碰撞哈希函数。
31.根据本发明第一方面的方法,在所述步骤s1中,利用所述公钥和所述待签名的消息对所述第一签名的合法性进行验证包括:所述验证方利用所述公钥pk和所述待签名的消息m,检验等式e(s,g)=e(h(m||gr),h)是否成立,若成立则通过对所述第一签名的合法性,输出1;否则,不通过,输出0。
32.根据本发明第一方面的方法,在所述步骤s2中,生成所述待签名的消息的预签名包括:所述签名方随机选取计算从而得到与所述声明信息y相关的所述签名方对所述待签名的消息m的预签名
33.根据本发明第一方面的方法,在所述步骤s2中,所述验证方对所述签名方的所述预签名的合法性进行验证包括:所述验证者基于所述公钥pk、所述待签名的消息m和所述声明信息y验证等式是否成立,若成立,则通过对所述预签名的合法性验证,输出1;否则,不通过,输出0。
34.根据本发明第一方面的方法,在所述步骤s2中,将所述见证信息嵌入至所述预签名中以生成所述第二签名包括:令令,从而得到嵌入了所述见证信息的所述第二签名
35.根据本发明第一方面的方法,在所述步骤s2中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息包括:令检验等式y=gy是否成立,若成
立,则输出见证y,反之提取失败,输出失败表示符


36.本发明第二方面公开了一种基于双线性映射获取适配器签名的系统。
37.所述系统包括:
38.第一处理单元,被配置为,获取签名方和验证方之间的第一签名方案,所述第一签名方案用于实现生成所述签名方的第一签名以及所述验证方对所述第一签名的验证;
39.所述第一签名方案包括密钥生成步骤、第一签名生成步骤和第一签名验证步骤;其中:
40.在所述密钥生成步骤中,生成所述签名方的公钥和私钥,所述公钥基于所述私钥来生成,所述验证方能够获取所述公钥而无法获取所述私钥;
41.在所述第一签名生成步骤中,根据所述私钥和待签名的消息来生成所述签名方的第一签名;
42.在所述第一签名验证步骤中,所述验证方利用所述公钥和所述待签名的消息对所述签名方的第一签名的合法性进行验证;
43.第二处理单元,被配置为,基于所述签名方的第一签名和所述验证方的加密信息完成对所述第一签名方案的适配,以获取经适配的第二签名方案,所述第二签名方案用于实现基于生成的第二签名完成所述签名方和所述验证方之间的信息互换,互换的信息为所述签名方的第一签名和所述验证方的加密信息,使得所述验证方完成对所述第一签名的验证以及所述签名方对所述验证方的所述加密信息进行解密;
44.所述第二签名方案包括预签名生成步骤、预签名验证步骤、适配第二签名步骤和加密信息提取步骤,所述加密信息包括声明信息和见证信息,所述声明信息基于所述见证信息来生成,所述签名方在适配前仅能够获取所述声明信息而无法获取所述见证信息;其中
45.在所述预签名生成步骤中,根据所述私钥、所述待签名的消息和所述声明信息来生成与所述声明信息相关的所述签名方对所述待签名的消息的预签名;
46.在所述预签名验证步骤中,所述验证方基于所述公钥、所述待签名的消息和所述声明信息对所述签名方的所述预签名的合法性进行验证;
47.在所述适配第二签名步骤中,在完成所述预签名的合法性验证后,所述验证方将所述见证信息嵌入至所述预签名中以生成所述第二签名,同时利用所述见证信息从所述第二签名中获取所述第一签名;
48.在所述加密信息提取步骤中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息。
49.根据本发明第二方面的系统,所述第一处理单元具体被配置为,生成所述签名方的所述私钥和所述公钥包括:随机选取整数模q的有限域zq中一个非零元素x作为所述私钥sk,其中计算h=g
x
∈g作为所述公钥pk,其中g为椭圆曲线上的点所构成的阶为素数的循环群g的生成元,从而得到公私密钥对(pk,sk)=(h,x)。
50.根据本发明第二方面的系统,所述第一处理单元具体被配置为,根据所述私钥和待签名的消息来生成所述签名方的第一签名包括:所述签名方随机选取计算r=gr,s=h(m||r)
x
,以得到所述第一签名δ=(r,s),其中,m为所述待签名的消息,h:{0,1}
*

g为将由0和1构成的比特串映射到所述循环群g的抗碰撞哈希函数。
51.根据本发明第二方面的系统,所述第一处理单元具体被配置为,利用所述公钥和所述待签名的消息对所述第一签名的合法性进行验证包括:所述验证方利用所述公钥pk和所述待签名的消息m,检验等式e(s,g)=e(h(m||gr),h)是否成立,若成立则通过对所述第一签名的合法性,输出1;否则,不通过,输出0。
52.根据本发明第二方面的系统,所述第二处理单元具体被配置为,生成所述待签名的消息的预签名包括:所述签名方随机选取计算从而得到与所述声明信息y相关的所述签名方对所述待签名的消息m的预签名
53.根据本发明第二方面的系统,所述第二处理单元具体被配置为,所述验证方对所述签名方的所述预签名的合法性进行验证包括:所述验证者基于所述公钥pk、所述待签名的消息m和所述声明信息y验证等式是否成立,若成立,则通过对所述预签名的合法性验证,输出1;否则,不通过,输出0。
54.根据本发明第二方面的系统,所述第二处理单元具体被配置为,将所述见证信息嵌入至所述预签名中以生成所述第二签名包括:令令从而得到嵌入了所述见证信息的所述第二签名
55.根据本发明第二方面的系统,所述第二处理单元具体被配置为,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息包括:令检验等式y=gy是否成立,若成立,则输出见证y,反之提取失败,输出失败表示符


56.本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于双线性映射获取适配器签名的方法中的步骤。
57.本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种基于双线性映射获取适配器签名的方法中的步骤。
58.综上,本发明提供的技术方案为在区块链中使用适配器签名方案提供更多的选择。由于使用双线性映射,本发明的适配器签名长度仅为基于ecdsa适配器签名和基于国密算法sm2适配器签名的一半。为了提升本发明中验证算法的效率,使用了批量验证的方法,使之在多个签名时极大地提升运算效率。而基于ecdsa适配器签名和基于国密算法sm2的适配器签名是不具有批量验证的特性的。因此,在处理多个签名时,本发明的运算性能与基于ecdsa适配器签名和基于国密算法sm2的适配器签名会进一步缩小差距。
附图说明
59.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1为根据本发明实施例的一种基于双线性映射获取适配器签名的方法的流程图;
61.图2为根据本发明实施例一种基于双线性映射获取适配器签名的系统的结构图;
62.图3为根据本发明实施例的一种电子设备的结构图。
具体实施方式
63.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
64.本发明第一方面公开了一种基于双线性映射获取适配器签名的方法。图1为根据本发明实施例的一种基于双线性映射获取适配器签名的方法的流程图;如图1所示,所述方法包括:
65.步骤s1、获取签名方和验证方之间的第一签名方案,所述第一签名方案用于实现生成所述签名方的第一签名以及所述验证方对所述第一签名的验证;
66.所述第一签名方案包括密钥生成步骤、第一签名生成步骤和第一签名验证步骤;其中:
67.在所述密钥生成步骤中,生成所述签名方的公钥和私钥,所述公钥基于所述私钥来生成,所述验证方能够获取所述公钥而无法获取所述私钥;
68.在所述第一签名生成步骤中,根据所述私钥和待签名的消息来生成所述签名方的第一签名;
69.在所述第一签名验证步骤中,所述验证方利用所述公钥和所述待签名的消息对所述签名方的第一签名的合法性进行验证;
70.步骤s2、基于所述签名方的第一签名和所述验证方的加密信息完成对所述第一签名方案的适配,以获取经适配的第二签名方案,所述第二签名方案用于实现基于生成的第二签名完成所述签名方和所述验证方之间的信息互换,互换的信息为所述签名方的第一签名和所述验证方的加密信息,使得所述验证方完成对所述第一签名的验证以及所述签名方对所述验证方的所述加密信息进行解密;
71.所述第二签名方案包括预签名生成步骤、预签名验证步骤、适配第二签名步骤和加密信息提取步骤,所述加密信息包括声明信息和见证信息,所述声明信息基于所述见证信息来生成,所述签名方在适配前仅能够获取所述声明信息而无法获取所述见证信息;其中
72.在所述预签名生成步骤中,根据所述私钥、所述待签名的消息和所述声明信息来生成与所述声明信息相关的所述签名方对所述待签名的消息的预签名;
73.在所述预签名验证步骤中,所述验证方基于所述公钥、所述待签名的消息和所述声明信息对所述签名方的所述预签名的合法性进行验证;
74.在所述适配第二签名步骤中,在完成所述预签名的合法性验证后,所述验证方将所述见证信息嵌入至所述预签名中以生成所述第二签名,同时利用所述见证信息从所述第二签名中获取所述第一签名;
75.在所述加密信息提取步骤中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息。
76.本发明第一方面的方法利用双线性映射构造了一个概率型数字签名方案(第一签
名方案),然后用该方案构造相应的适配器签名方案(第二签名方案)。在介绍所构造的签名方案之前,首先介绍下方案中使用到的两个概念,即双性映射和困难关系。
77.双线性映射:g和g
t
是椭圆曲线上的点所构成的阶为大素数q的循环群,称映射e:g
×g→gt
为双线性映射,如果e具有以下性质:
78.双线性:对于p,q∈g,以及整数模q的有限域zq中的任意两个元素a和b,都有e(pa,qb)=e(p,q)
ab

79.非退化性:若g是群g的生成元,则e(g,g)是非退化的,即
80.可计算性:对于任意p,q∈g,e(p,q)可被有效计算。
81.困难关系:设r为一种二元关系,lr是描述这种关系的语言,记为这里表示(y,y)是满足二元关系的一个实例,称y为声明,y为见证。若r满足下面的性质,则称r为一个困难关系:
82.(1)存在一个概率多项式时间算法,输入安全参数,输出
83.(2)存在一个确定多项式时间算法,能够判断(y,y)是否为满足困难关系,即是否成立。
84.(3)对任意多项式时间的敌手和计算y使得的概率可忽略。
85.在步骤s1,获取签名方和验证方之间的第一签名方案,所述第一签名方案用于实现生成所述签名方的第一签名以及所述验证方对所述第一签名的验证。
86.所述第一签名方案包括密钥生成步骤、第一签名生成步骤和第一签名验证步骤;其中:
87.在所述密钥生成步骤中,生成所述签名方的公钥和私钥,所述公钥基于所述私钥来生成,所述验证方能够获取所述公钥而无法获取所述私钥;
88.在所述第一签名生成步骤中,根据所述私钥和待签名的消息来生成所述签名方的第一签名;
89.在所述第一签名验证步骤中,所述验证方利用所述公钥和所述待签名的消息对所述签名方的第一签名的合法性进行验证。
90.具体地,基于上面的定义的双线性映射e:g
×g→gt
,以及一个把由0和1构成的比特串映射到群g的抗碰撞的哈希函数,即h:{0,1}
*

g,第一签名方案sig=(keygen,sign,vrfy),它包括密钥生成算法keygen(密钥生成步骤)、签名算法sign(第一签名生成步骤)和签名验证算法vrfy(第一签名验证步骤)。三个子算法(模块)具体如下:
91.在一些实施例中,在所述步骤s1中,生成所述签名方的所述私钥和所述公钥包括:随机选取整数模q的有限域zq中一个非零元素x作为所述私钥sk,其中计算h=g
x
∈g作为所述公钥pk,其中g为椭圆曲线上的点所构成的阶为素数的循环群g的生成元,从而得到公私密钥对(pk,sk)=(h,x)。
92.具体地,keygen(1n):密钥生成算法,输入为安全参数n,输出为一对公钥密钥对(pk,sk)=(h,x)。具体过程为:随机选取整数模q的有限域zq中一个非零元素x,即计算h=g
x
∈g。签名者的公私密钥对为(pk,sk)=(h,x),将公钥pk公开,私钥sk保密。
93.在一些实施例中,在所述步骤s1中,根据所述私钥和待签名的消息来生成所述签名方的第一签名包括:所述签名方随机选取计算r=gr,s=h(m||r)
x
,以得到所述第
一签名δ=(r,s),其中,m为所述待签名的消息,h:{0,1}
*

g为将由0和1构成的比特串映射到所述循环群g的抗碰撞哈希函数。
94.具体地,sign(sk,m):签名算法,输入为签名者的私钥sk和要签名的消息m,输出为消息m的签名δ=(r,s)。具体过程为:签名者随机选计算r=gr,s=h(m||r)
x
,得到消息m的签名δ=(r,s)。
95.在一些实施例中,在所述步骤s1中,利用所述公钥和所述待签名的消息对所述第一签名的合法性进行验证包括:所述验证方利用所述公钥pk和所述待签名的消息m,检验等式e(s,g)=e(h(m||gr),h)是否成立,若成立则通过对所述第一签名的合法性,输出1;否则,不通过,输出0。
96.具体地,vrfy(pk,m,δ):验证算法,输入消息m、签名δ=(r,s)和签名公钥pk,若签名验证合法则输出1,反之则输出0。具体过程为:签名验证者收到消息m及其相应的签名δ=(r,s)后,检验等式e(s,g)=e(h(m||gr),h)是否成立,若成立则签名验证合法输出1;否则输出0。
97.在步骤s2,基于所述签名方的第一签名和所述验证方的加密信息完成对所述第一签名方案的适配,以获取经适配的第二签名方案,所述第二签名方案用于实现基于生成的第二签名完成所述签名方和所述验证方之间的信息互换,互换的信息为所述签名方的第一签名和所述验证方的加密信息,使得所述验证方完成对所述第一签名的验证以及所述签名方对所述验证方的所述加密信息进行解密;
98.所述第二签名方案包括预签名生成步骤、预签名验证步骤、适配第二签名步骤和加密信息提取步骤,所述加密信息包括声明信息和见证信息,所述声明信息基于所述见证信息来生成,所述签名方在适配前仅能够获取所述声明信息而无法获取所述见证信息;其中
99.在所述预签名生成步骤中,根据所述私钥、所述待签名的消息和所述声明信息来生成与所述声明信息相关的所述签名方对所述待签名的消息的预签名;
100.在所述预签名验证步骤中,所述验证方基于所述公钥、所述待签名的消息和所述声明信息对所述签名方的所述预签名的合法性进行验证;
101.在所述适配第二签名步骤中,在完成所述预签名的合法性验证后,所述验证方将所述见证信息嵌入至所述预签名中以生成所述第二签名,同时利用所述见证信息从所述第二签名中获取所述第一签名;
102.在所述加密信息提取步骤中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息。
103.基于上面的第一签名方案sig=(keygen,sign,vrfy),以及上述群g上的困难关系π的一个实例(y,y),即y=gy,提出基于双线性映射的适配器签名方案(第二签名方案),该方案包括了预签名算法psign(预签名生成步骤)、预签名验证算法pvrfy(预签名验证步骤)、适配算法adapt(适配第二签名步骤)和提取算法ext(加密信息提取步骤)。四个子算法(模块)具体如下:
104.在一些实施例中,在所述步骤s2中,生成所述待签名的消息的预签名包括:所述签名方随机选取计算从而得到与所述声明信息y相关的所述
签名方对所述待签名的消息m的预签名
105.具体地,psign(sk,m,y):预签名算法,输入为签名者的私钥sk、消息m和困难关系中的声明y,输出为相应的预签名具体过程如下:签名者随机选取计算于是得到与声明y相关的对消息m的预签名为
106.在一些实施例中,在所述步骤s2中,所述验证方对所述签名方的所述预签名的合法性进行验证包括:所述验证者基于所述公钥pk、所述待签名的消息m和所述声明信息y验证等式是否成立,若成立,则通过对所述预签名的合法性验证,输出1;否则,不通过,输出0。
107.具体地,预签名验证算法,输入签名公钥pk、消息m、声明y和预签名若预签名验证合法则输出1,反之输出0。具体过程如下:预签名验证者收到消息m的预签名之后,检验等式是否成立,若成立则预签名验证合法输出1,反之输出0。
108.在一些实施例中,在所述步骤s2中,将所述见证信息嵌入至所述预签名中以生成所述第二签名包括:令令从而得到嵌入了所述见证信息的所述第二签名:
[0109][0110]
具体地,适配算法,输入预签名和见证y,输出消息m的签名δ=(r,s)。具体过程如下:拥有见证y的签名验证者,使用该算法将预签名转化为对消息m的第二签名(其中嵌入了见证信息)。具体计算过程为:计算令于是得到对消息m的签名:
[0111][0112]
在一些实施例中,在所述步骤s2中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息包括:令检验等式y=gy是否成立,若成立,则输出见证y,反之提取失败,输出失败表示符


[0113]
具体地,见证提取算法,输入预签名签名δ=(r,s)以及声明y,输出见证y。具体过程如下:签名者计算检验等式y=gy是否成立,若成立则输出见证y,反之提取失败输出失败表示符


[0114]
从上面签名过程可以看出,适配器签名具有以下特点:
[0115]
(1)适配器签名是把签名过程与一个秘密的揭示绑定在一起。它首先是把困难关系中的声明y嵌入到预签名中,再利用即困难关系中的见证y(未向签名者揭示之前是保密的)把预签名转化完整的签名。
[0116]
(2)由适配器签名最终得到的完整签名,与前面数字签名sig得到的签名形式上是一致。因此,除非签名参与者,其他用户是不能区分一个签名是由适配器签名得到,还是适配器对应的数字签名计算得到的,从而进一步增强了区块链的隐私性。
[0117]
本发明第二方面公开了一种基于双线性映射获取适配器签名的系统。图2为根据本发明实施例一种基于双线性映射获取适配器签名的系统的结构图;如图2所示,所述系统200包括:
[0118]
第一处理单元201,被配置为,获取签名方和验证方之间的第一签名方案,所述第一签名方案用于实现生成所述签名方的第一签名以及所述验证方对所述第一签名的验证;
[0119]
所述第一签名方案包括密钥生成步骤、第一签名生成步骤和第一签名验证步骤;其中:
[0120]
在所述密钥生成步骤中,生成所述签名方的公钥和私钥,所述公钥基于所述私钥来生成,所述验证方能够获取所述公钥而无法获取所述私钥;
[0121]
在所述第一签名生成步骤中,根据所述私钥和待签名的消息来生成所述签名方的第一签名;
[0122]
在所述第一签名验证步骤中,所述验证方利用所述公钥和所述待签名的消息对所述签名方的第一签名的合法性进行验证;
[0123]
第二处理单元202,被配置为,基于所述签名方的第一签名和所述验证方的加密信息完成对所述第一签名方案的适配,以获取经适配的第二签名方案,所述第二签名方案用于实现基于生成的第二签名完成所述签名方和所述验证方之间的信息互换,互换的信息为所述签名方的第一签名和所述验证方的加密信息,使得所述验证方完成对所述第一签名的验证以及所述签名方对所述验证方的所述加密信息进行解密;
[0124]
所述第二签名方案包括预签名生成步骤、预签名验证步骤、适配第二签名步骤和加密信息提取步骤,所述加密信息包括声明信息和见证信息,所述声明信息基于所述见证信息来生成,所述签名方在适配前仅能够获取所述声明信息而无法获取所述见证信息;其中
[0125]
在所述预签名生成步骤中,根据所述私钥、所述待签名的消息和所述声明信息来生成与所述声明信息相关的所述签名方对所述待签名的消息的预签名;
[0126]
在所述预签名验证步骤中,所述验证方基于所述公钥、所述待签名的消息和所述声明信息对所述签名方的所述预签名的合法性进行验证;
[0127]
在所述适配第二签名步骤中,在完成所述预签名的合法性验证后,所述验证方将所述见证信息嵌入至所述预签名中以生成所述第二签名,同时利用所述见证信息从所述第二签名中获取所述第一签名;
[0128]
在所述加密信息提取步骤中,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息。
[0129]
根据本发明第二方面的系统,所述第一处理单元201具体被配置为,生成所述签名方的所述私钥和所述公钥包括:随机选取整数模q的有限域zq中一个非零元素x作为所述私钥sk,其中计算h=g
x
∈g作为所述公钥pk,其中g为椭圆曲线上的点所构成的阶为素数的循环群g的生成元,从而得到公私密钥对(pk,sk)=(h,x)。
[0130]
根据本发明第二方面的系统,所述第一处理单元201具体被配置为,根据所述私钥和待签名的消息来生成所述签名方的第一签名包括:所述签名方随机选取计算r=gr,s=h(m||r)
x
,以得到所述第一签名δ=(r,s),其中,m为所述待签名的消息,h:{0,1}
*

g为将由0和1构成的比特串映射到所述循环群g的抗碰撞哈希函数。
[0131]
根据本发明第二方面的系统,所述第一处理单元201具体被配置为,利用所述公钥和所述待签名的消息对所述第一签名的合法性进行验证包括:所述验证方利用所述公钥pk和所述待签名的消息m,检验等式e(s,g)=e(h(m||gr),h)是否成立,若成立则通过对所述
第一签名的合法性,输出1;否则,不通过,输出0。
[0132]
根据本发明第二方面的系统,所述第二处理单元202具体被配置为,生成所述待签名的消息的预签名包括:所述签名方随机选取计算从而得到与所述声明信息y相关的所述签名方对所述待签名的消息m的预签名
[0133]
根据本发明第二方面的系统,所述第二处理单元202具体被配置为,所述验证方对所述签名方的所述预签名的合法性进行验证包括:所述验证者基于所述公钥pk、所述待签名的消息m和所述声明信息y验证等式是否成立,若成立,则通过对所述预签名的合法性验证,输出1;否则,不通过,输出0。
[0134]
根据本发明第二方面的系统,所述第二处理单元202具体被配置为,将所述见证信息嵌入至所述预签名中以生成所述第二签名包括:令令从而得到嵌入了所述见证信息的所述第二签名
[0135]
根据本发明第二方面的系统,所述第二处理单元202具体被配置为,所述签名方利用所述声明信息从所述第二签名中提取出所述见证信息包括:令检验等式y=gy是否成立,若成立,则输出见证y,反之提取失败,输出失败表示符


[0136]
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于双线性映射获取适配器签名的方法中的步骤。
[0137]
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种基于边缘结构相似度的星上切片图像质量评价方法中的步骤。
[0138]
图3为根据本发明实施例的一种电子设备的结构图,如图3所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、近场通信(nfc)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0139]
本领域技术人员可以理解,图3中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0140]
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种基于双线性映射获取适配器签名的方法中的步骤。
[0141]
综上,本发明提供的技术方案为在区块链中使用适配器签名方案提供更多的选择。由于使用双线性映射,本发明的适配器签名长度仅为基于ecdsa适配器签名和基于国密算法sm2适配器签名的一半。为了提升本发明中验证算法的效率,使用了批量验证的方法,
使之在多个签名时极大地提升运算效率。而基于ecdsa适配器签名和基于国密算法sm2的适配器签名是不具有批量验证的特性的。因此,在处理多个签名时,本发明的运算性能与基于ecdsa适配器签名和基于国密算法sm2的适配器签名会进一步缩小差距。
[0142]
请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1