[发明专利]面向区块链智能合约的不可拆分数字签名通用构造方法有效

专利信息
申请号: 201910487516.6 申请日: 2019-06-05
公开(公告)号: CN110233733B 公开(公告)日: 2022-02-01
发明(设计)人: 史扬;李晔;韩秋月;马致远 申请(专利权)人: 同济大学
主分类号: H04L9/32 分类号: H04L9/32
代理公司: 上海科律专利代理事务所(特殊普通合伙) 31290 代理人: 叶凤;李耀霞
地址: 200092 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了面向区块链智能合约的不可拆分数字签名通用构造方法,属于密码学与区块链技术领域。包括以下算法:(1)Setup:该算法用于生成方案的公共系统参数。(2)KGen:该算法用于生成用户的公钥与私钥,其中私钥用于签名,公钥用于验证。(3)SignFuncGen:该算法用于在客户端生成不可拆分数字签名算法,并与智能合约的内容绑定。(4)UndSign:该算法用于生成交易的不可拆分签名值,输入为不可拆分签名算法fSigned(x),待签名的交易t。(5)UndVerify:该算法用于验证智能合约交易的不可拆分签名,输出“有效”或者“无效”。本发明在白盒攻击环境下,可实现适用于任何数字签名的智能合约代理不可拆分数字签名。
搜索关键词: 面向 区块 智能 合约 不可 拆分 数字签名 通用 构造 方法
【主权项】:
1.一种面向区块链智能合约的不可拆分数字签名通用构造方法,其特征在于,包括如下步骤:步骤1.在每一台运行区块链客户端的计算机上,在规定好的安全级别下,输入需要的安全指数k,运行算法1,算法定义如下:算法1.系统初始化算法:Setup(1k),输入的k∈N(N为自然数)是一个安全参数,算法输出公共参数设置在公共参数Ω中,是一个循环群,称为“群”,其阶数为质数q,G是“群”的生成元,其阶数为质数q,满足q·G=O,O代表“群”的零元,H(·)是一个密码杂凑函数,SigG,q,H,x是一个任意的数字签名函数,VerG,q,H,Y是对应该SigG,q,H,x签名函数的验证函数;步骤2.算法1执行结束后得到了系统参数Ω,区块链中所有客户端用户都可以得到该参数,随后每一个客户本地运行算法2,具体定义如下:算法2.KGen()(1)调用SigG,q,H,x的公钥私钥生成算法,生成私钥x和公钥Y;在运行完算法2后,每个用户得到私钥x和公钥Y;用户各自妥善保管自己的私钥x,其公钥Y可以公开在区块链网络中;步骤3.客户端在本地将私钥x,需求描述字符串c,签名算法SigG,q,H,x作为输入运行算法3,c是客户端对交易的一种限定;该算法3将生成一个不可拆分签名函数fsigned(x);算法3.不可拆分签名算法生成算法SignFuncGen(x,c,SigG,q,H,x)(1)Zq中随机选取的一个元素xc,xc的作用相当于一个临时的私钥;(2)计算Yc←xc·G,Yc是对应于临时私钥xc的临时公钥;(3)计算Σc←SigG,q,H,x(Yc||c),Σc是对Yc与限定条件c拼接字符串的签名值;(4)输出fsigned(x)=<xc,Ycc>;执行完该算法3后客户端将输出一个不可拆分签名函数fsigned(x)=<xc,Ycc>;该函数对应c和私钥x有唯一的<xc,Ycc>值;步骤4.客户端调用代理签名智能合约,并将不可拆分签名函数fsigned(x)以及待签名交易t传递给智能合约,智能合约收到参数后执行算法4,代理用户对该交易进行签名;算法4.不可拆分签名生成算法UndSign(fsigned(x),t);输入不可拆分签名函数fsigned(x),待签名交易t,算法步骤按顺序执行如下:(1)计算e=H(t),其中H(·)是密码杂凑函数,e是t的哈希值对应的整数值;(2)随机选取Zq与算法3中的Zq相同;(3)计算椭圆曲线的点R=(rx,ry)=k·G,rx,ry是点R的横坐标与纵坐标;(4)计算rc=rxmodq,rc是rx在Zq中对应的元素,如果rc=0,返回步骤(2);(5)从fSigned(x)中提取xc;(6)计算sc=k‑1·(e+rc·xc)modq,如果sc=0,返回步骤(2);(7)从fSigned(x)中提取Yc,∑c;(8)输出签名值UndSig(t)=<rc,sc,Ycc>;步骤5.智能合约将该签名后的交易t以及其签名值UndSig(t)广播到区块链网络中去;步骤6.签名后的交易被加入到区块链中矿工节点所维护的交易池中,之后矿工按顺序检验交易的合法性,运行算法5,验证该交易的签名;算法5.签名验证算法UndVerify(Y,t,c,<rc,sc,Ycc>,VerG,q,H,Y);输入公钥Y,交易t,需求描述字符串c,签名值<rc,sc,Ycc>,签名验证算法VerG,q,H,Y;算法步骤按顺序执行如下:(1)检验Yc是否是“群”中的元素,如果不是则签名无效,否则执行下一步;(2)利用VerG,q,H,Y算法检验∑c是否为Yc||c的合法签名,如果是则执行下一步,否则签名无效;(3)计算e=H(t),其中H(·)是密码杂凑函数,提供给步骤(5);(4)计算w=sc‑1modq,提供给步骤(5);(5)计算u1=e·wmod q和u2=rc·wmod q;提供给步骤(6);(6)计算曲线点(x1,y1)=u1·G+u2·Yc,如果(x1,y1)=O则签名无效,否则计算z=x1modq;(7)如果rc=z则签名有效,否则无效;如果签名有效,则该交易合法,完成交易并将该交易添加到下一个区块中即可,如果签名无效,则表明该交易不合法或者代理合约不合法,则该交易无效,并不会被区块链网络所认可;至此,整个方案的步骤结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201910487516.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top