组合签名及验证签名方法、系统及存储介质与流程

文档序号:23063351发布日期:2020-11-25 17:47阅读:216来源:国知局
组合签名及验证签名方法、系统及存储介质与流程

本发明涉及区块链技术领域,具体地,涉及组合签名及验证签名方法、系统及存储介质。



背景技术:

基于非对称密码学技术的私钥-公钥对及其签名、验签操作经常被用于ca证书系统、数据传输、数字资产交易、电子合同签订等应用场景的安全基础设施中,但一直面临两难境地。拿近年来关注比较多的数字资产交易举例:通过生成一组私钥-公钥对,用公钥来声明某种数字资产及数量,用私钥来控制其转移。一方面,现有钱包等应用工具可为用户在本地设备生成并存储私钥和公钥,确保用户对数字资产的绝对控制权,用户用私钥进行签名即可转移数字资产,然而一旦私钥丢失或损坏便无法恢复,用户再也无法动用该私钥控制的数字资产。另一方面,用户可将数字资产托管至专业的中心化机构并由其管理私钥并代理用户进行相关操作,虽然这是目前数字资产二级交易市场普遍采取方式,但安全和信用风险一直是投资者的忧虑点。

申请公布号cn110086612a的中国专利公布了《一种区块链公私钥备份及丢失找回方法和系统》提出将用户私钥拆分成多份,通过服务器将分别用备份方公钥加密后的私钥片段发送至多个备份方进行托管,备份方可以用自己的私钥还原出它收到的私钥片段,但原则上不能知道其它私钥片段。用户提出找回私钥时,n个备份方中只需m个备份方将用户提供的传输公钥加密后的私钥片段发送给用户,用户即可用传输私钥解密后恢复私钥片段。该技术中私钥片段在同一客户端生成并进行复制派发,派发过程依赖服务器的安全性和可信度,且仍然存在女巫攻击等问题,即攻击方冒充多个备份方收集m个私钥片段实现盗币作假等操作。

申请公布号cn110741600a的中国专利公布了《提供去中心化协议以找回加密资产的计算机实现的系统和方法》,该技术通过对区块链上数字资产设置访问权限使两种类型的签名可以访问该数字资产,并引入去中心化区块链网络的集体存储私钥份额,用于生成阈值签名代表用户访问数字资产,虽避免了私钥派发复制可能存在的安全隐患,仍然存在女巫攻击风险。并且由于私钥-公钥生成过程的不可逆特性,为已经存储于区块链某对私钥-公钥下的数字资产设置额外的访问权限,即从一个公钥倒推出满足阈值签名要求的私钥份额可行性非常低。

并且上述两种技术都是针对用户自己持有完整私钥的情况给出应对私钥丢失解决方案,没有涉及用户将资产托管至第三方机构的情况,并解决第三方信用风险等问题。

现有技术,例如申请公布号cn109934585a的中国专利公布的《一种基于安全多方计算的签名方法、装置及系统》,提出让多方持有私钥或私钥分片,并基于多重签名、阈值签名、安全多方计算等技术管理资产的控制权,可将控制权拆分到多方,避免单方持有控制权带来的信用风险,并只需n方中的m方(m<=n)用私钥或私钥分片即可完成签名,应用到包括用户、业务方、监管方等多方签名的场景中,在一方私钥分片丢失的情况下可由其它多方进行签名重置,但上述技术仍然存在用户以外的至少m方联合作假签名的可能。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种组合签名及验证签名方法、系统及存储介质。

根据本发明提供的一种组合签名及验证签名方法,包括:

步骤s1:n组设备端构成设备集群,所述设备集群确定组合方式,创建登记、签名及验证签名程序提交至系统;

步骤s2:所述设备端集群根据初始化程序各自在本地生成私钥或私钥分片;基于所述私钥或私钥分片构成的至少两个组合生成共享公钥组合;所述共享公钥组合用于标记待操作对象,所述私钥或私钥分片用于生成签名并许可有关标记对象的操作;系统记录共享公钥组合与待操作对象的对应关系;

步骤s3:根据应用场景选择及签名程序,设备端使用所述私钥或私钥分片构成的k个组合生成k个签名元素,将k个签名元素构成组合签名发送至系统,其中k>=1;

步骤s4:系统的验证签名程序对组合签名进行多级验签,验证签名通过则执行有关所述共享公钥组合标记对象的操作。

优选地,所述步骤s1:

所述系统能够为设备端提供基础编程语言,设备端集群能够自行或请第三方基于基础编程语言开发并创建登记、签名及验证签名程序;系统也能够为设备端提供通用程序模板;

所述设备端包括:

独立的设备,包括:用于加解密运算的密码机、计算机、手机、安全硬件模组hsm;

嵌入设备的部件,能够进行密码学相关的运算并与其它设备端通讯;

所述系统指对接设备端的服务器,包括:区块链系统、中心化服务器。

优选地,所述步骤s2:

所述共享公钥组合包括至少两个公钥元素;将所述公钥元素标记为常规公钥元素或备选公钥元素两类;

将至少一个所述常规公钥元素标记为常规必要公钥元素;

所述公钥元素包括:单一子公钥、子公钥列表。

优选地,所述步骤s3:

设备端通过将共享公钥组合或签名内容明文提交至系统等方式告知系统签名对应的待操作对象;所述签名内容包含有关操作的内容;

所述签名元素,分为常规签名元素或备选签名元素两类;常规签名元素用于证明对所述共享公钥组合标记对象进行常规操作的许可,备选签名元素用于证明处理私钥中出现丢失、损坏等情况时对所述共享公钥组合标记对象进行备选操作的许可;

所述生成k个签名元素:每个签名元素的生成算法互相独立,包括普通签名或多重签名或阈值签名或安全多方计算等生成算法;

所述设备端集群中的一组设备端可单独生成签名,也可由多组设备共同生成签名;

一组设备端包含一个或多个设备端,在本地生成一个私钥或多个私钥或多个私钥分片,所述私钥或私钥分片用于生成普通签名、多重签名及阈值签名;

多组设备的至少两个设备端在本地生成私钥或私钥分片,用于生成多重签名或阈值签名;

所述设备端集群,对应用户或用户群、业务方、监管方。

优选地,所述步骤s4:

所述多级验签:验证签名程序判断组合签名是否包含常规签名元素,若包含,则进入常规验签子程序,若不包含,则进入备选验签子程序;

所述常规验签子程序判断所述共享公钥组合中每个常规必要公钥元素是否存在对应的满足验证条件的常规签名元素;若至少一个不存在,则常规验签失败,结束验证签名程序;若全部存在,则进一步验证所述共享公钥组合中剩余每个常规公钥元素是否存在对应的满足验证条件的常规签名元素;若全部存在,则通过常规验签流程,系统执行签名指示的有关所述共享公钥组合标记对象的操作;若至少一个不存在,则常规验签失败,结束验证签名程序;

所述备选验签子程序判断组合签名是否包含备选签名元素且备选签名元素满足与备选公钥元素匹配的验证条件,若存在且满足,则通过备选验签流程,系统执行签名指示的有关所述共享公钥组合标记对象的备选操作,否则,备选验签失败,结束验证签名流程。

优选地,所述系统设置设备准入机制,包括联盟链系统,由多个互相独立的可信第三方处理备选验签相关的操作;

所述多级验签程序通过在系统嵌入智能合约自动执行;

所述组合签名及验证签名方法还包括:备选验签触发方法;

所述触发方法的实现方法包括:所述共享公钥组合标记的对象的所有者事先向系统申请ca证书等身份认证工具,当所有者向系统发起备选操作申请,系统验证其身份后启动备选验签流程。

根据本发明提供的一种组合签名及验证签名系统,包括:

模块s1:n组设备端构成设备集群,所述设备集群确定组合方式,创建登记、签名及验证签名程序提交至系统;

模块s2:所述设备端集群根据初始化程序各自在本地生成私钥或私钥分片;基于所述私钥或私钥分片构成的至少两个组合生成共享公钥组合;所述共享公钥组合用于标记待操作对象,所述私钥或私钥分片用于生成签名并许可有关标记对象的操作;系统记录共享公钥组合与待操作对象的对应关系;

模块s3:根据应用场景选择及签名程序,设备端使用所述私钥或私钥分片构成的k个组合生成k个签名元素,将k个签名元素构成组合签名发送至系统,其中k>=1;

模块s4:系统的验证签名程序对组合签名进行多级验签,验证签名通过则执行有关所述共享公钥组合标记对象的操作。

优选地,所述模块s1:

所述系统能够为设备端提供基础编程语言,设备端集群能够自行或请第三方基于基础编程语言开发并创建登记、签名及验证签名程序;系统也能够为设备端提供通用程序模板;

所述设备端包括:

独立的设备,包括:用于加解密运算的密码机、计算机、手机、安全硬件模组hsm;

嵌入设备的部件,能够进行密码学相关的运算并与其它设备端通讯;

所述系统指对接设备端的服务器,包括:区块链系统、中心化服务器;

所述模块s2:

所述共享公钥组合包括至少两个公钥元素;将所述公钥元素标记为常规公钥元素或备选公钥元素两类;

将至少一个所述常规公钥元素标记为常规必要公钥元素;

所述公钥元素包括:单一子公钥、子公钥列表;

所述模块s3:

设备端通过将共享公钥组合或签名内容明文提交至系统等方式告知系统签名对应的待操作对象;所述签名内容包含有关操作的内容;

所述签名元素,分为常规签名元素或备选签名元素两类;常规签名元素用于证明对所述共享公钥组合标记对象进行常规操作的许可,备选签名元素用于证明处理

私钥中出现丢失、损坏等情况时对所述共享公钥组合标记对象进行备选操作的许可;

所述生成k个签名元素:每个签名元素的生成算法互相独立,包括普通签名或多重签名或阈值签名或安全多方计算等生成算法;

所述设备端集群中的一组设备端可单独生成签名,也可由多组设备共同生成签名;

一组设备端包含一个或多个设备端,在本地生成一个私钥或多个私钥或多个私钥分片,所述私钥或私钥分片用于生成普通签名、多重签名及阈值签名;

多组设备的至少两个设备端在本地生成私钥或私钥分片,用于生成多重签名或阈值签名;

所述设备端集群,对应用户或用户群、业务方、监管方;

所述模块s4:

所述多级验签:验证签名程序判断组合签名是否包含常规签名元素,若包含,则进入常规验签子程序,若不包含,则进入备选验签子程序;

所述常规验签子程序判断所述共享公钥组合中每个常规必要公钥元素是否存在对应的满足验证条件的常规签名元素;若至少一个不存在,则常规验签失败,结束验证签名程序;若全部存在,则进一步验证所述共享公钥组合中剩余每个常规公钥元素是否存在对应的满足验证条件的常规签名元素;若全部存在,则通过常规验签流程,系统执行签名指示的有关所述共享公钥组合标记对象的操作;若至少一个不存在,则常规验签失败,结束验证签名程序;

所述备选验签子程序判断组合签名是否包含备选签名元素且备选签名元素满足与备选公钥元素匹配的验证条件,若存在且满足,则通过备选验签流程,系统执行签名指示的有关所述共享公钥组合标记对象的备选操作,否则,备选验签失败,结束验证签名流程。

优选地,所述系统设置设备准入机制,包括联盟链系统,由多个互相独立的可信第三方处理备选验签相关的操作;

所述多级验签程序通过在系统嵌入智能合约自动执行;

所述组合签名及验证签名系统还包括:备选验签触发方法;

所述触发方法的实现方法包括:所述共享公钥组合标记的对象的所有者事先向系统申请ca证书等身份认证工具,当所有者向系统发起备选操作申请,系统验证其身份后启动备选验签流程。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现上述中任一项所述的组合签名及验证签名方法的步骤。

与现有技术相比,本发明具有如下的有益效果:

1.本发明通过将多组设备端生成的签名进行区分再组合,并对组合签名设置多级验签条件,实现在拆分控制权到多方的同时保留部分签名方的绝对控制权,解决涉及第三方托管的现有技术可能出现联合作假签名的问题。

2.通过设置备选验签方法,解决签名所需私钥或私钥分量丢失或损坏导致无法进行相关操作的问题。

3.通过采用设备端本地生成私钥或私钥分片,再交互生成共享公钥组合的方法,既避免私钥传输过程中的安全问题和信用风险,又提高了方案可行性。

4.通过引入设备准入机制,可进一步降低女巫攻击等风险。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明提供的组合签名及验证签名方法示意图。

图2为本发明提供的验签程序的流程示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明提出一种区分不同角色方签名权重和操作权限的组合签名及验证签名方法,包括初始化、登记、签名、验证签名四个步骤,通过引入常规必要公钥元素赋予部分签名方绝对控制权,避免第三方托管信用风险,同时引入备选签名及验签流程解决私钥丢失或损坏情况下问题。

一种组合签名及验证签名方法,如图1所示,包括:

步骤一:n组设备端构成设备集群,所述设备集群确定组合方式,创建登记、签名及验证签名程序提交至系统;设备端可以是一个独立的设备,例如专门用于加解密运算的密码机、计算机、手机、安全硬件模组hsm,也可以是嵌入设备的某个部件,可以进行密码学相关的运算并与其它设备端通讯即可。系统是指对接设备端的服务器,可以是一个区块链系统,也可以是中心化服务器。

所述组合方式,例如:10个设备端构成设备集群,其中分三组,一组由一个用户持有的设备端组成,二组由1个业务方持有的设备端组成,三组由8个监管方持有的设备端组成。这三组经协商后确定常规签名只需一组、二组、三组的1个设备端进行,其中一组生成1个常规必要公钥元素,二组和三组组合生成常规公钥元素,三组生成备选公钥元素。这些公钥元素构成共享公钥组合。签名时,必须包含匹配常规必要公钥元素的签名元素(用户必须参与签名)、同时满足其它常规公钥元素的验签条件(用户单方面签名没用),才能通过常规验签。若用户丢失私钥,需要三组的全体私钥进行备选签名才能进行恢复等操作。

分组方式和每组设定的签名条件根据具体业务场景设计,可以有很多种形式。

步骤二:所述设备端集群根据初始化程序各自在本地生成私钥或私钥分片;基于所述私钥或私钥分片构成的至少两个组合生成共享公钥组合(现有技术中的组合元素是没有区分的,或者说是同质的,且一般以同一种签名方式组合到一起,本发明首先对组合元素进行了区分,分为常规必要、常规、备选,并且支持不同签名方式可以嵌套组合在一起);所述共享公钥组合用于标记待操作对象,所述私钥或私钥分片用于生成签名并许可有关标记对象的操作;系统记录共享公钥组合与待操作对象的对应关系(指映射关系,将共享公钥组合和一个待操作对象建立一对一映射关系。届时签名中指定共享公钥组合和要进行的操作,验签通过系统就会通知相关模块执行对待操作对象的操作);

步骤三:根据应用场景选择及签名程序,设备端使用所述私钥或私钥分片构成的k(k>=1)个组合生成k个签名元素,将k个签名元素构成组合签名发送至系统;

步骤四:系统的验证签名程序对组合签名进行多级验签,验证签名通过则执行有关所述共享公钥组合标记对象的操作。

所述步骤一,其特征在于,系统可为设备端提供基础编程语言,设备端集群可自行或请第三方基于基础编程语言开发并创建登记、签名及验证签名程序;系统也可为设备端提供通用程序模板;

所述步骤二,其特征在于,所述共享公钥组合包括至少两个公钥元素;将所述公钥元素标记为常规公钥元素或备选公钥元素两类;将至少一个所述常规公钥元素标记为常规必要公钥元素;常规公钥元素是指共享公钥组合中的一类组成元素,在后续生成的签名元素中,必须存在与常规必要公钥匹配的签名才有可能通过验签。

其特征还在于,所述公钥元素可以是单一子公钥或子公钥列表;

所述步骤三,其特征在于,设备端通过将共享公钥组合或签名内容明文提交至系统等方式告知系统签名对应的待操作对象;所述签名内容包含有关操作的内容;

步骤三所述签名元素,分为常规签名元素或备选签名元素两类;常规签名元素用于证明对所述共享公钥组合标记对象进行常规操作的许可,备选签名元素用于证明处理私钥中出现丢失、损坏等情况时对所述共享公钥组合标记对象进行备选操作的许可;

步骤三所述生成k个签名元素,其特征在于,每个签名元素的生成算法互相独立,可以是普通签名或多重签名或阈值签名或安全多方计算等生成算法。

所述步骤三,其特征还在于,所述设备端集群中的一组设备端可单独生成签名,也可由多组设备共同生成签名;

一组设备端可能包含一个或多个设备端,在本地生成一个私钥或多个私钥或多个私钥分片,这些私钥或私钥分片用于生成普通签名、多重签名、阈值签名等;

多组设备的至少两个设备端在本地生成私钥或私钥分片,用于生成多重签名或阈值签名等。

所述设备端集群,可对应用户或用户群、业务方、监管方等角色。

如图2所示,步骤四所述多级验签,其特征在于,验证签名程序判断组合签名是否包含常规签名元素,若包含,则进入常规验签子程序,若不包含,则进入备选验签子程序;

所述常规验签子程序判断所述共享公钥组合中每个常规必要公钥元素是否存在对应的满足验证条件的常规签名元素;若至少一个不存在,则常规验签失败,结束验证签名程序;若全部存在,则进一步验证所述共享公钥组合中剩余每个常规公钥元素是否存在对应的满足验证条件的常规签名元素;若全部存在,则通过常规验签流程,系统执行签名指示的有关所述共享公钥组合标记对象的操作;若至少一个不存在,则常规验签失败,结束验证签名程序;

所述备选验签子程序判断组合签名是否包含备选签名元素且备选签名元素满足与备选公钥元素匹配的验证条件,若存在且满足,则通过备选验签流程,系统执行签名指示的有关所述共享公钥组合标记对象的备选操作,否则,备选验签失败,结束验证签名流程。

优选地,所述系统可以设置设备准入机制,例如联盟链系统,由多个互相独立的可信第三方处理备选验签相关的操作;

所述多级验签程序可通过在系统嵌入智能合约自动执行。

优选地,本发明所述组合签名及验证签名方法,还可增加备选验签触发方法。所述触发方法的一种实现方法可以是,所述共享公钥组合标记的对象的所有者事先向系统申请ca证书等身份认证工具,当所有者向系统发起备选操作申请,系统验证其身份后启动备选验签流程。

在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1