[发明专利]入侵回弹的不可拆分数字签名方法有效
申请号: | 201711330710.0 | 申请日: | 2017-12-13 |
公开(公告)号: | CN108011723B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 史扬;张清;傅晓巍 | 申请(专利权)人: | 同济大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/16;H04L29/06 |
代理公司: | 上海科律专利代理事务所(特殊普通合伙) 31290 | 代理人: | 叶凤 |
地址: | 200092 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 入侵 回弹 不可 拆分 数字签名 方法 | ||
1.一种入侵回弹的不可拆分数字签名方法,其特征在于,它包括十一个步骤具体如下:
步骤1.在一台权威认证的可信机构服务器Server上,根据规定好的安全级别下输入需要的安全指数k,算法1,生成全局参数并输出公共参数和轮常数链,算法定义如下:
算法1,密钥生成算法IRKGen(1k):
1.1.输入总共的时间片段数T和1k,为自然数,为一个安全参数,算法首先生成全局参数:Ω中均是阶为q的乘法循环群;G、P是各自的固定生成元;是一个线性映射,将中的元素先做笛卡儿积,然后映射到中的元素上;和是两个哈希映射,作用是将任意二进制数值分别映射到和上,其中是以质数q为阶且无零元的整数加法群;
1.2.调用任一基于离散对数的数字签名方案中的密钥生成算法KG生成两对公钥、私钥对:PK,sk←KG(1k)以及〈PK*,sk*←KG(1k);其中,PK=Gsk,PK*=Gsk*,G是群的生成元;
1.3.从BLS签名方案的密钥池D中均匀随机地选一个初始密钥元素:
1.4.调用BLS签名方案中的任一指数运算计算初始时间段内t=1的轮常数:R(1)←Gk(t);
1.5.循环计算其他时间段内的轮常数:k(t)←H1(k(t-1)),并删除所有轮的密钥元素,并生成轮常数链R=R(1),…,R(T);
1.6.以sk为私钥调用BLS签名算法Sign为R和PK*签名:σpub=(H2(R,PK*))sk,并删除签名所用的私钥sk,输出公共参数R,PK,PK*及签名σpub;
1.7.将另一私钥sk*发送给基地;
步骤2.随后基地算法2输入当前时间片t、链R和私钥sk*,然后算法2,实现基地的密钥升级,输出当前时间段的初始基地密钥SKBt,0,其定义如下:
算法2,基地密钥升级算法UB:
2.1.输入t,R,从R中读取当前时间段的轮常数:R(t)←R;
2.2.调用密钥生成算法KG生成当前时间段内的公钥、私钥对:PKt,skt←KG(1k),其中
2.3.以sk*为私钥调用BLS签名算法Sign构造当前时间段的签名:σt=(H2(t,PKt)+R(t))sk*,其中R(t)用来与H2(t,PKt)相加;
2.4.生成当前时间段内的公钥证书CERTt=σt,t,PKt以及当前时间段t的初始基地密钥SKBt,0=⊥,skt;
2.5.删除前一时间段的初始基地密钥SKBt-1,0,并发送密钥升级消息SKUt-1=CERTt给客户端进行下一步;
步骤3.客户端为签名者,接收到密钥升级消息SKUt-1,将其作为算法3的输入,初始化当前时间段的签名密钥,其定义如下:
算法3,签名密钥升级算法US:
3.1.输入密钥升级消息SKUt-1;
3.2.输出时间段t内的初始签名密钥SKSt,0=⊥,SKUt-1,删除前一时间段的初始签名密钥SKSt-1,0;
步骤4.基地,再次通过向算法4输入当前时间片t,当前轮数r,表示某时间段t内,基地密钥刷新算法和签名密钥刷新算法各要运行Round(t)次,以及前一轮的基地密钥SKBt,r-1,刷新得到时间段t内第r轮的基地密钥SKBt,r;1≤r≤Round(t),Round(t);
具体定义如下:
算法4,基地密钥刷新算法RB:
4.1.输入t,r以及SKBt,r-1;
4.2.从SKBt,r-1中提取私钥skt:skt←I2,2(SKBt,r-1),其中Ia,b代表从a元组中提取第b个元素;
4.3.调用BLS方案中的密钥生成算法KG生成当前时间段t内第r轮的公钥、私钥对:PKt,r,skt,r←KG(1k);
4.4.以skt为私钥调用BLS签名算法Sign构造当前时间段t内第r轮的签名:
4.5.生成当前时间段t内第r轮的公钥证书certt,r=σt,r,t,r,PKt,r,以及时间段t内第r轮的基地密钥SKBt,r=skt,r,skt;
4.6.删除前一轮的基地密钥SKBt,r-1,并发送密钥刷新消息SKRt,r-1=skt,r,certt,r〉给客户端进行下一步;
步骤5.客户端,签名者以接收到的密钥刷新消息SKRt,r-1以及时间段t内前一轮的签名密钥SKSt,r-1作为算法5的输入,定义如下:
算法5,签名密钥刷新算法RS:
5.1.输入SKRt,r-1以及前一轮签名密钥SKSt,r-1;
5.2.生成时间段t内第r轮的签名密钥SKSt,r=SKRt,r-1,I2,2(SKSt,r-1),删除前一轮签名密钥SKSt,r-1;
步骤6.在客户端,签名者完成交易,准备发送移动代理进行交易;
步骤7.在客户端,签名者在获取当前的签名密钥SKSt,r之后,将此密钥与REQ_C||IDc作为输入算法6,其定义如下:
算法6,不可拆分签名方法的生成算法IRUndFunGen:
6.1.从签名密钥SKSt,r中获取当前时间段内当前轮数生成的私钥skt,r及两个证书:
skt,r←I2,1(I2,1(SKSt,r)),certt,r←I2,2(I2,1(SKSt,r)),CERTt←I2,2(SKSt,r);
6.2.以skt,r为私钥调用BLS签名算法Sign对REQ_C||IDc进行签名:首先利用哈希函数H2将二进制变量REQ_C||IDc转换为群上的元素H←H2(REQ_C||IDc),再得到
6.3.生成不可拆分签名方法对:x为任一待签名消息;
6.4.输出fIRSign(x)=t,r,f(x),fSign(x),certt,r,CERTt,使代理携带;
步骤8.随后客户端算法7为代理中的敏感数据签名,输入为当前敏感数据Msg、当前时间片t、当前轮数r、以及当前签名密钥SKSt,r,输出代理携带的签名,算法定义如下:
算法7,基于离散对数的普通签名算法Sign:
7.1.从签名密钥SKSt,r中获取当前时间段内当前轮数生成的私钥skt,r及两个证书:
skt,r←I2,1(I2,1(SKSt,r)),certt,r←I2,2(I2,1(SKSt,r)),CERTt←I2,2(SKSt,r);
7.2.以skt,r为私钥为敏感数据Msg签名:
7.3.输出sig=t,r,certt,r,CERTt,σsig,由代理携带,进行下一步;
步骤9.商店接受到代理以及代理携带的签名,先用算法8检验代理的合法性,即验证步骤8中的生成的签名σ是否合法;输入为系列公共参数R,PK,PK*,σpub及代理携带敏感数据Msg及签名,验证算法定义如下:
算法8,基于离散对数的普通验证算法yrfy:
8.1.t,r,certt,r,CERTt,σsig←sig,σt,t,PKt←CERTt,σt,r,t,r,PKt,r←certt,r;
8.2.首先验证公共签名σpub,检验轮常数链R的合法性:若输出0,算法结束;否则进行下一步;
8.3.验证证书CERTt的合法性,若输出0,算法结束;否则进行下一步;
8.4.验证证书certt,r的合法性,PKt←I2,2(I2,2(CERTt)),若输出0,算法结束;否则进行下一步;
8.5.验证签名σsig的合法性,PKt,r←I3,3(I2,2(certt,r)),若输出0,算法结束;否则输出1;
如果输出为0,退出交易;如果输出为1,判断代理是否继续在商店间迁移,如果需要,则新商店需要重复步骤9验证步骤;否则进行步骤10;
步骤10.在此,商店已经做出最终决策完成交易,那么生成CONTRACT和其他交易信息M作为输入,同时利用代理携带的不可拆分签名方法对f(x),fSign(x)算法9,得到最终的不可拆分签名undsig,算法定义如下:
算法9,不可拆分签名算法IRUndSign:
9.1.f(x),fSign(x)←I5,3(fIRsign(x)),certt,r←I5,4(fIRsign(x)),CERTt←I5,5(fIRsign(x));
9.2.以CONTRACT||M作为不可拆分方法fSign(x)的输入生成不可拆分签名:
σundsig=fSign(CONTRACT||M);
9.3.输出undsig=t,r,σundsig,certt,r,CERTt,保存至代理中,然后使代理迁移返回客户端,进行下一步;
步骤11.最后客户端收到交易完成的代理,以不可拆分签名undsig、交易消息CONTRACT||M、约束条件REQ_C||IDc及公共参数R,PK,PK*,σpub为输入运行不可拆分签名验证算法,验证不可拆分签名的合法性,输出0或1,算法定义如下:
算法10,不可拆分签名验证算法IRUndVrfy:
10.1.t,r,certt,r,CERTt,σundsig←undsig,σt,t,PKt←CERTt,σt,r,t,r,PKt,r←certt,r;
10.2.首先验证公共签名σpub,检验轮常数链R的合法性:若输出0,算法结束;否则进行下一步;
10.3.验证证书CERTt的合法性,若输出0,算法结束;否则进行下一步;
10.4.验证证书certt,r的合法性,PKt←I2,2(I2,2(CERTt)),若输出0,算法结束;否则进行下一步;
10.5.验证签名σundsig的合法性,PKt,r←I3,3(I2,2(certt,r)),若输出0,算法结束;否则输出1;如果输出为0,退出交易;如果输出为1,完成交易。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711330710.0/1.html,转载请声明来源钻瓜专利网。