[发明专利]基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法有效

专利信息
申请号: 201910162884.3 申请日: 2019-03-05
公开(公告)号: CN109768866B 公开(公告)日: 2021-03-30
发明(设计)人: 史扬;李晔;马致远;韩秋月 申请(专利权)人: 同济大学
主分类号: H04L9/32 分类号: H04L9/32;H04L9/30;G06Q20/38;G06Q40/04
代理公司: 上海科律专利代理事务所(特殊普通合伙) 31290 代理人: 叶凤
地址: 200092 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 椭圆 曲线 数字签名 区块 智能 合约 不可 拆分 签名 方法
【权利要求书】:

1.一种适用于区块链智能合约的不可拆分数字签名方法,它包括六个如下步骤:

步骤1.在每一台运行区块链客户端的计算机上输入需要的安全指数k,并在规定好的安全级别下运行算法1,算法定义如下:

算法1.系统初始化算法:Setup(1k),输入的k∈N是一个安全参数,N为自然数,算法输出公共参数设置Ω=(CURVE,G,p,q,H(·));

在公共参数Ω中,CURVE代表所使用的椭圆曲线的方程式及其数域,G代表椭圆曲线的基点,即椭圆曲线的生成元,其阶数为质数q,满足q·G=O,O代表零点,“·”表示椭圆曲线标量点乘法;p表示椭圆曲线坐标所在的域的阶数,也为质数;

定义:在椭圆曲线上的离散对数问题(ECDLP):给定素数阶p和椭圆曲线CURVE,对B=k·A,在已知点A,B的情况下,可以证明已知k和A计算B比较容易,而由B和A计算k则比较困难;

步骤2.算法1执行结束后得到了系统参数Ω,区块链中所有用户都可以得到该参数,随后每一个客户本地运行算法2,具体定义如下:

算法2.KGEN()

(1)

(2)Y=x·G

在运行完算法2后,每个用户得到公钥Y和私钥x;用户各自妥善保管自己的私钥,其公钥可以公开在区块链网络中;

步骤3.客户端在本地将私钥x,需求描述字符串Q作为输入运行算法3,Q是客户端对交易的一种限定;该算法将生成一个不可拆分签名函数fSigned(x);

算法3.不可拆分签名算法生成算法SignFuncGen(x,Q)

(1)随机选取

(2)计算Z=(zx,zy)=w·G

(3)计算xQ=xw+zx

(4)计算YQ=xZ+zx·G

(5)计算u=H(Z||Q||YQ),H(·)是密码杂凑函数

(6)v=w-xumodq

(7)输出fSigned(x)=<xQ,YQ,u,v>

执行完该算法后客户端将输出一个不可拆分签名函数fSigned(x)=<xQ,YQ,u,v>,该函数对应私钥x和Q有唯一的<xQ,YQ,u,v>值;

步骤4.客户端调用代理签名智能合约,并将不可拆分签名函数fSigned(x)以及待签名交易t传递给智能合约,智能合约收到参数后执行算法4,代理用户对该交易进行签名;

算法4.不可拆分签名生成算法Sign(fSigned(x),t);输入不可拆分签名函数fSigned(x),待签名交易t,算法步骤按顺序执行如下:

(1)计算e=H(t),其中H(·)是密码杂凑函数

(2)随机选取

(3)计算R=(rx,ry)=k·G

(4)计算r=rxmodq,如果r=0,返回步骤(2)

(5)从fSigned(x)中提取xQ

(6)计算s=k-1·(e+r·xQ)modq,如果s=0,返回步骤(2)

(7)从fSigned(x)中提取u,v,YQ

(8)输出签名值Sig(t)=r,s,u,v,YQ

步骤5.智能合约将该签名后的交易t以及其签名值Sig(t)广播到区块链网络中去;

步骤6.签名后的交易被加入到区块链中矿工节点所维护的交易池中,之后矿工按顺序检验交易的合法性,运行算法5,验证该交易的签名;

算法5.签名验证算法Verify(Y,t,Q,r,s,u,v,YQ);输入公钥Y,交易t,需求描述字符串Q,签名值r,s,u,v,YQ,算法步骤按顺序执行如下:

(1)检验YQ是否是椭圆曲线CURVE上的点,如果不是则签名无效,否则执行下一步

(2)检验YQ是否是椭圆曲线CURVE上的零点O,如果是则签名无效,否则执行下一步

(3)检验r和s是否都是中的元素,如果不是则签名无效

(4)计算Zv=v·G+u·Y

(5)计算uv=H(Zv||Q||YQ),H(·)是密码杂凑函数

(6)判断是否uv=u,如果不相等则签名无效

(7)计算e=H(t),其中H(·)是密码杂凑函数

(8)计算w=s-1mod q

(9)计算u1=ewmod q和u2=rwmod q

(10)计算曲线点(x1,y1)=u1·G+u2·YQ,如果(x1,y1)=O则签名无效;

(11)如果r≡x1(modq)则签名有效,否则无效;

如果签名有效,则该交易合法,完成交易并将该交易添加到下一个区块中即可,如果签名无效,则表明该交易不合法或者代理合约不合法,则该交易无效,并不会被区块链网络所认可;

至此,整个方案的步骤结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

本文链接:http://www.vipzhuanli.com/pat/books/201910162884.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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