首页 / 专利库 / 电脑安全 / 密码学 / 一种不限制签名算法的许可链账户系统

一种不限制签名算法许可链账户系统

阅读:50发布:2020-05-12

专利汇可以提供一种不限制签名算法许可链账户系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种不限制签名 算法 的 许可 链账户系统,该系统舍弃去中心化的哈希地址生成算法,改用有权限的分配生成方法,以解耦账户地址和账户公钥的 密码学 对应关系,系统定义几种签名算法,每个用户可以从中选择适合自己的算法。,下面是一种不限制签名算法许可链账户系统专利的具体信息内容。

1.一种不限制签名算法许可链账户系统,其特征在于,包含多个数字签名算法,并分配编号S1、S2、……、Si,还包含许可链系统的用户注册规则,包含如下内容:
用户账户数据users,结构为map:账户地址addr=>[公钥pk,算法编号Si],注册函数,包含参数:公钥pk、算法编号Si;
修改函数,包含参数:新公钥pk’、新算法编号Si’、新私钥对数字0的签名sign’;
账户的注册方法如下:
(1)在创世中为用户注册规则,生成调用地址addr_regi,许可链从创世块启动,并准备接受用户的注册交易和普通交易;
(2)用户选择系统规定的几种算法之一的Si,根据算法生成私钥sk和公钥pk;
(3)用户调用注册规则的注册函数,传入参数:公钥pk、算法编号Si,并生成注册交易tx0,其中注册交易的来源地址为空,目标地址为addr_regi,然后用私钥sk生成签名sign0,并广播;
(4)出块节点接收到目标地址为addr_regi的用户注册交易tx0后,如果验证通过,则为用户分配唯一性地址addr,并将公钥pk和算法编号Si加入users中,验证条件如下:
条件1:公钥pk和算法编号Si的组合不在users中;
条件2:使用算法编号Si和公钥pk验证签名sign0合法。
2.根据权利要求1所述的系统,其特征在于,所述系统的账户普通交易发送方法如下:
(1)用户监听到许可链系统的变更,得知自己的注册交易通过后,既可以使用addr发起后续的普通交易,并可以看到其他用户的地址;
(2)如果账户A的地址addr_a向账户B的地址addr_b发起普通交易tx1,需给普通交易设定来源地址为addr_a,目标地址为addr_b,附属普通交易数据,并用用户A注册时选择的算法Sa和私钥ska对普通交易生成签名sign1,并广播;
(3)出块节点收到目标地址为普通账户地址的普通交易tx1后,如果验证通过,则为合法普通交易,执行普通交易,验证条件如下:
条件1:来源地址addr_a和目标地址addr_b均在users中;
条件2:读取addr_a对应的用户公钥pka和签名算法编号Sa,验证tx1的签名sign1合法。
3.根据权利要求1所述的系统,其特征在于,所述系统的账户修改方法如下:
(1)用户如果需要修改自己的签名算法或者公钥,可以选择新的算法Si’,生成新私钥sk’和新公钥pk’,并用sk’对数字0签名后生成sign’;
(2)然后调用注册规则的修改函数,传入参数:新公钥pk’、新算法编号Si’,新签名sign’,并生成注册交易tx2,其中注册交易的来源地址为addr,目标地址为addr_regi,然后用老私钥sk生成签名sign2,并广播;
(3)出块节点接收到目标地址为addr_regi的用户修改注册交易tx2后,如果验证通过,则在users中将用户的公钥pk和算法编号Si,替换为新公钥pk’和新算法编号Si’,验证条件如下:
条件1:验证该注册交易发起者在users中;
条件2:使用users中的算法编号Si,通过公钥pk验证签名sign2合法;
条件3:使用注册交易中的算法编号Si’,用pk’验证对数字0的签名sign’合法。

说明书全文

一种不限制签名算法许可链账户系统

技术领域

[0001] 本发明涉及链模型中账户地址、公私钥生成和签名算法等相关的领域,改进了原有区块链模型中系统需使用固定的签名算法和地址生成算法的问题。

背景技术

[0002] 区块链是一种新的分布式技术,由一个个顺序排列而成的交易组成块,再由一个个顺序排列而成的块组成链,每个块包含一个自增的高度作为编号,还有一个时间戳用于记载打包时间。用户数据的安全性依赖公私钥体系,只有用户私钥签名的交易才是合法的交易,故他人无法代为发起,且每个交易只存在唯一哈希,以确保无法重复发起。同时为了去中心化地生成唯一的用户地址,需要对用户公钥进行哈希。
[0003] 公有链是指没有准入机制,全世界任何人都可以根据公开协议,生成合法账户,参与读取,发送交易,交易确认,甚至参与共识的区块链。
[0004] 许可链是指节点和用户有准入机制的区块链,由若干个机构组成共同体,每个机构都运行着一个节点,为了使每个区块生效需要获得其中多数机构的确认。区块链上用户的身份也经过审核,大多为实名制,与现实世界的身份关系对应。
[0005] 目前的公有链协议中事先规定了使用的公私钥生成算法、地址生成算法、以及私钥签名算法。用户在本地客户端按照这些算法,依次进行如下运算,1:生成随机的私钥;2:由私钥推导出公钥;3:由公钥计算出地址,4:使用该地址生成交易,5:使用私钥签名该交易,6:广播该签名后的交易。节点在接收到用户的交易后,依次进行如下运算,1:从签名推导出公钥;2:用公钥验证签名;3:用公钥推导出地址;4:用推导出的地址验证是否和发送者地址一致,如果都验证通过则为合法签名交易。
[0006] 这些算法的流程导致了系统运行之前就需要选定密码学算法和参数,但密码学算法是个博大精深的领域,一个固定的签名算法不能满足不同系统的特殊需求,甚至不同的用户都需要使用不同的算法和参数,而且例如SM2之类的签名算法生成的签名恢复不出公钥,因此区块链需要灵活配置的密码学算法账户模型。

发明内容

[0007] 本发明的目的是针对现有技术的不足,提供一种不限制签名算法的许可链账户系统。
[0008] 本发明的目的是通过以下技术方案实现的:一种不限制签名算法的许可链账户系统,包含多个数字签名算法,并分配编号S1、S2、……、Si,还包含许可链系统的用户注册规则,包含如下内容:
[0009] 用户账户数据users,结构为map(账户地址addr=>[公钥pk,算法编号Si])[0010] 注册函数,包含参数:公钥pk、算法编号Si。
[0011] 修改函数,包含参数:新公钥pk’、新算法编号Si’、新私钥对数字0的签名sign’。
[0012] 账户的注册方法如下:
[0013] (1)在创世块中为用户注册规则,生成调用地址addr_regi,许可链从创世块启动,并准备接受用户的注册交易和普通交易。
[0014] (2)用户选择系统规定的几种算法之一的Si,根据算法生成私钥sk和公钥pk。
[0015] (3)用户调用注册规则的注册函数,传入参数:公钥pk、算法编号Si,并生成交易tx0,其中交易的来源地址为空,目标地址为addr_regi,然后用私钥sk生成签名sign0,并广播。
[0016] (4)出块节点接收到目标地址为addr_regi的用户注册交易tx0后,如果验证通过,则为用户分配唯一性地址addr,并将公钥pk和算法编号Si加入users中。验证条件如下:
[0017] 条件1:公钥pk和算法编号Si的组合不在users中。
[0018] 条件2:使用算法编号Si和公钥pk验证签名sign0合法。
[0019] 进一步的,所述系统的账户交易发送方法如下:
[0020] (1)用户监听到许可链系统的变更,得知自己的注册交易通过后,既可以使用addr发起后续的普通交易,并可以看到其他用户的地址。
[0021] (2)如果账户A(地址addr_a)想向账户B(地址addr_b)发起交易tx1,需给交易设定来源地址为addr_a,目标地址为addr_b,附属交易数据,并用用户A注册时选择的算法Sa和私钥ska对交易生成签名sign1,并广播。
[0022] (3)出块节点收到目标地址为普通账户地址的交易tx1后,如果验证通过,则为合法交易,执行交易。验证条件如下:
[0023] 条件1:来源地址addr_a和目标地址addr_b均在users中。
[0024] 条件2:读取addr_a对应的用户公钥pka和签名算法编号Sa,验证tx1的签名sign1合法。
[0025] 进一步的,所述系统的账户修改方法如下
[0026] (1)用户如果需要修改自己的签名算法或者公钥,可以选择新的算法Si’,生成新私钥sk’和新公钥pk’,并用sk’对数字0签名后生成sign’。
[0027] (2)然后调用注册规则的修改函数,传入参数:新公钥pk’、新算法编号Si’,新签名sign’,并生成交易tx2,其中交易的来源地址为addr,目标地址为addr_regi,然后用老私钥sk生成签名sign2,并广播。
[0028] (3)出块节点接收到目标地址为addr_regi的用户修改交易tx2后,如果验证通过,则在users中将用户的公钥pk和算法编号Si,替换为新公钥pk’和新算法编号Si’。验证条件如下:
[0029] 条件1:验证该交易发起者在users中。
[0030] 条件2:使用users中的算法编号Si,通过公钥pk验证签名sign2合法。
[0031] 条件3:使用交易中的算法编号Si’,用pk’验证对数字0的签名sign’合法。
[0032] 本发明的有益效果在于:本发明舍弃了去中心化的哈希地址生成算法,解耦了账户地址和账户公钥的密码学对应关系,使用户可以灵活选择公私钥生成算法和私钥签名算法,例如RSA、ECC、Elgamal、SM2等非对称加密体系,或者在同一体系内采用不同的参数。

具体实施方式

[0033] 一种不限制签名算法的许可链账户系统,所述系统包含多个数字签名算法,并分配编号S1、S2、……、Si,例如RSA、ECC、Elgamal、SM2等体系,以及对应的不同参数。还包括许可链系统的用户注册规则,包含如下内容:
[0034] 用户账户数据users,结构为map(账户地址addr=>[公钥pk,算法编号Si])[0035] 注册函数,包含参数:公钥pk、算法编号Si。
[0036] 修改函数,包含参数:新公钥pk’、新算法编号Si’、新私钥对数字0的签名sign’。
[0037] 本发明不限定用户注册规则的实现方式,可以使用VM上的智能合约,也可以在许可链底层直接使用原生代码实现。
[0038] 账户的注册方法如下:
[0039] (1)在创世块中为用户注册规则,生成调用地址addr_regi,许可链从创世块启动,并准备接受用户的注册交易和普通交易。
[0040] (2)用户选择系统规定的几种算法之一的Si,根据算法生成私钥sk和公钥pk。
[0041] (3)用户调用注册规则的注册函数,传入参数:公钥pk、算法编号Si,并生成交易tx0,其中交易的来源地址为空,目标地址为addr_regi,然后用私钥sk生成签名sign0,并广播。
[0042] (4)出块节点接收到目标地址为addr_regi的用户注册交易tx0后,如果验证通过,则为用户分配唯一性地址addr,并将公钥pk和算法编号Si加入users中。验证条件如下:
[0043] 条件1:公钥pk和算法编号Si的组合不在users中。
[0044] 条件2:使用算法编号Si和公钥pk验证签名sign0合法。
[0045] 本发明不限定地址addr的生成方法,可以采用不重复的字符串或简单采用自增的数字编号等。
[0046] 所述系统的账户交易发送方法如下:
[0047] (1)用户监听到许可链系统的变更,得知自己的注册交易通过后,既可以使用addr发起后续的普通交易,并可以看到其他用户的地址。
[0048] (2)如果账户A(地址addr_a)想向账户B(地址addr_b)发起交易tx1,需给交易设定来源地址为addr_a,目标地址为addr_b,附属交易数据,并用用户A注册时选择的算法Sa和私钥ska对交易生成签名sign1,并广播。
[0049] (3)出块节点收到目标地址为普通账户地址的交易tx1后,如果验证通过,则为合法交易,执行交易。验证条件如下:
[0050] 条件1:来源地址addr_a和目标地址addr_b均在users中。
[0051] 条件2:读取addr_a对应的用户公钥pka和签名算法编号Sa,验证tx1的签名sign1合法。
[0052] 所述系统的账户修改方法如下:
[0053] (1)用户如果需要修改自己的签名算法或者公钥,可以选择新的算法Si’,生成新私钥sk’和新公钥pk’,并用sk’对数字0签名后生成sign’。
[0054] (2)然后调用注册规则的修改函数,传入参数:新公钥pk’、新算法编号Si’,新签名sign’,并生成交易tx2,其中交易的来源地址为addr,目标地址为addr_regi,然后用老私钥sk生成签名sign2,并广播。
[0055] (3)出块节点接收到目标地址为addr_regi的用户修改交易tx2后,如果验证通过,则在users中将用户的公钥pk和算法编号Si,替换为新公钥pk’和新算法编号Si’。验证条件如下:
[0056] 条件1:验证该交易发起者在users中。
[0057] 条件2:使用users中的算法编号Si,通过公钥pk验证签名sign2合法。
[0058] 条件3:使用交易中的算法编号Si’,用pk’验证对数字0的签名sign’合法。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈