CN108011723A - 入侵回弹的不可拆分数字签名方法 - Google Patents
入侵回弹的不可拆分数字签名方法 Download PDFInfo
- Publication number
- CN108011723A CN108011723A CN201711330710.0A CN201711330710A CN108011723A CN 108011723 A CN108011723 A CN 108011723A CN 201711330710 A CN201711330710 A CN 201711330710A CN 108011723 A CN108011723 A CN 108011723A
- Authority
- CN
- China
- Prior art keywords
- key
- algorithm
- signature
- cert
- sks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
一种入侵回弹的不可拆分数字签名方法。本发明的创新在于通过特殊的算法设计,进而同时达到入侵回弹和不可拆分签名的安全特征。它并不是单纯简单的算法拼装,而是通过理论推理论证以及相应的实验而达到的两种安全方案的有机结合。本发明的目的在于克服目前方案在移动代理安全领域各自的不足,既能解决生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题,又能解除移动代理或其子系统在路过某恶意主机时可能会形成白盒攻击(WBAC)环境时所面临的威胁。同时由于不需要专门的安全机构来颁发证书或者是密钥,增加了签名方法的适用范围,也抵消了权威机构被攻破的巨大威胁。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及移动安全代理技术,应用于电子商务、移动计算等。
背景技术
随着越来越多的基于移动代理技术进入实践阶段,如果没有合适的、安全的、可信的和隐秘的技术来保护敏感的商业数据并且让商业伙伴们有充分的信心来一起合作的话,这些应用是不可能成功实现的。然而,移动代理面临着巨大的安全威胁,当前移动安全代理领域上基于身份的以及前向安全的不可拆分数字签名方法可以很好的并安全有效地完成任务。
但是,基于身份的不可拆分数字签名方法必须需要一个中心化分发密钥的安全机构,而实际上有很多情况是没有这种具有权威性,可靠性的机构的;而随着移动代理的不断发展,基于前向安全的不可拆分数字签名方法也逐渐暴露出许多缺陷,如未考虑对组件或者子系统进行攻击的可能性。因此这里急需一个不依靠密钥分发机构的,又同时具有理想的安全性及可靠性的方法来保护移动代理。
该方案是建立在双线性对基础上的。其安全性依赖于对在Diffie-Hellman组求解计算Diffie-Hellman问题的困难度上。其中大部分基本概念,例如群、环、域,在近世代数一科中都属于标准概念。该方案可以使用多种基于离散对数的数字签名方案(例如RSA和BLS签名方案)来构建不可拆分的签名方案。
相似技术(产品)简述:
为了解决在以往的传统电子签名方案实现中,移动代理在代理原始用户活动时,生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题。采用Kotzanikolaous,P.,Burmester,M.,Chrissikopoulos,V.,Secure Transactions with Mobile Agents in HostileEnvironments,proceeding of ACISP 2000,pp289-297,2000;Yang Shi,Xiaoping Wang,Liming Cao,et.al.A Security Scheme of Electronic Commerce for Mobile AgentsUses Undetachable Digital Signatures.The Third International Conference onInformation Security,ACM Press,2004:pp.242-243.和Yang Shi,Xiaoping Wang,Liming Cao,Jianxin Ren.Secure Mobile Agents in Electronic Commerce by UsingUndetachable Signatures from Pairings.Proc.The 4th International Conferenceon Electronic Business,pp.1038-1043.三篇文献给出的任意一种,可以在一定程度上控制签名密钥或者签名方法的泄露。
为了解决在没有可靠密钥分发机构情况下,密钥生成者会被攻击得到签名密钥的问题;为了弥补前向安全数字签名的安全缺陷,提供更理想的安全性。GeneItkis.Intrusion-Resilient Signatures:Generic Constructions,or DefeatingStrong Adversary with Minimal Assumptions.Conference on Security inCommunication Networks 2002:pp.102-118;Gene Itkis and Leonid Reyzin.SiBIR:Signer-Base Intrusion-Resilient Signatures.CRYPTO 2002:pp.499-514和BenoitLibert,Jean-Jacques Quisquater and Moti Yung.Efficient Intrusion-ResilientSignatures Without Random Oracles.Lecture Notes in Computer Science Vol.4318,2006:pp.27-41.这三篇文献提出了的概念,并在此基础上提出了几个具体的签名构造方法。此方法在签名者主机和基地主机同时被攻陷形成白盒攻击环境时,仍具有前向的安全性,即该方案密钥是随时间二维更新变化的,且签名者与基地的联系建立在三层签名的基础上,即便一个子系统被攻击,攻击者也不能仿造整个的签名,且在被攻陷的时间点之前的已经使用过的签名密钥及基地密钥都是无法获取的,故又保证前向的安全性。
但是这几种签名方案各自并不能满足目前移动代理安全性的需求。
发明内容
众所周知,签名密钥是一个签名方案的核心,如果签名密钥被盗,那么整个签名方法就失去了作用,因此上文提到的入侵回弹签名方法可以让签名密钥随时间的流逝而进行二维更新,每过一个时间段就不可逆地升级一次密钥,且每个时间段内都有R轮不可逆地刷新。这样,即便系统被攻陷后,仍能保证当前时间片段以前的签名密钥的安全性,即已经签名过的数据无法再仿造。又因上文提到的基地与签名者的联系需依赖对密钥的外层签名,因此系统可抵抗对子系统的攻击。
但是,目前入侵回弹的签名方案又无法达到不可拆分签名的效果。由于公开的签名方案中,并没有有效的方案是两种特点结合,因为这种结合可以说是相当困难的,因此同时具有两种特点的签名方案成为了目前移动代理安全领域的空白。
而本发明的目的在于克服目前这两种方案在移动代理安全领域各自的不足,既能解决生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题,又能解除移动代理或其子系统在路过某恶意主机时可能会形成白盒攻击(WBAC)环境时所面临的威胁。同时由于不需要专门的安全机构来颁发证书或者是密钥,增加了签名方法的适用范围,也抵消了权威机构被攻破的巨大威胁。总而言之,本发明填补了移动安全领域该项的空白。
本发明的创新在于通过特殊的算法设计,进而同时达到入侵回弹和不可拆分签名的安全特征。它并不是单纯简单的算法拼装,而是通过理论推理论证以及相应的实验而达到的两种安全方案的有机结合。
为此,本发明给出的技术方案为:
一种入侵回弹的不可拆分数字签名方法,其特征在于,它包括十一个步骤如下:
步骤1.在一台权威认证的可信机构服务器Server上,根据规定好的安全级别下(输入需要的安全指数k)运行算法1.,生成全局参数并输出公共参数和轮常数链。算法定义如下:
算法1.密钥生成算法IRKGen(1k):
1.1.输入总共的时间片段数T和1k,(N为自然数)为一个安全参数,算法首先生成全局参数:
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(1);
1.5.循环计算其他时间段内(t=2,…,T)的轮常数:并删除所有轮的密钥元素,并生成轮常数链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*发送给基地;
Ω解释说明:上述中,关于安全参数1k是一个概念性说法,k就是安全指数,可以简单理解为加密系统是k位长度的,当具体实现时,视项目需求和采用的公钥加密系统(比如hyperelliptic椭圆曲线等)而定。均是阶为q的乘法循环群。G和P是和各自的固定生成元是一个线性映射,将和中的元素先做笛卡儿积,然后映射到中的元素上。是两个特殊的哈希映射,作用就是将任意二进制数值分别映射到和上,其中是以质数q为阶且无零元的整数加法群。由于全局参数在实际应用当中,生成以后一般不会改变(例如国标SM2算法的全局参数是推荐,且固定的),任何算法都可以轻易得到,因此以下算法不再提及全局参数作为输入。
步骤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(1≤r≤Round(t),Round(t)表示某时间段t内,基地密钥刷新算法和签名密钥刷新算法各要运行Round(t)次),以及前一轮的基地密钥SKBt,r-1,刷新得到时间段t内第r轮的基地密钥SKBt,r。具体定义如下:
算法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。
说明:由于I2,2(SKSt,r-1)等价于I2,2(SKSt,r-2),…,以此类推,最终等价于I2,2(SKSt,0),由算法2和算法3可知,该项为当前时间段证书CERTt。
步骤6.客户端(签名者)完成交易,准备发送移动代理进行交易。
步骤7.客户端(签名者)在获取当前的签名密钥SKSt,r之后,将此密钥与REQ_C||IDc(签名者需求及ID属于敏感数据)作为输入运行算法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>,使代理携带。
说明:由上述步骤的6.2.及6.3.可推导出不可拆分签名方法fSign(·)与普通签名方法Sign的关系:
步骤8.随后客户端运行算法7为代理中的敏感数据签名,输入为当前敏感数据Msg、当前时间片t、当前轮数r、以及当前签名密钥SKSt,r,输出代理携带的签名。算法定义如下:
算法7.基于离散对数的普通签名算法Sign(即上文中提及的BLS签名算法):
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.基于离散对数的普通验证算法Vrfy:
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的合法性,若输出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、交易消息CONTR4CT||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,完成交易。
到此,整个入侵回弹的不可拆分数字签名方法已经完成。
通过以上技术方案,本发明在白盒攻击环境下(例如不安全的计算机上),可实现入侵回弹的不可拆分数字签名。本方案解决了目前移动代理上缺乏良好的安全方案的问题。整个方案中,基地与签名者的联系建立在签名的基础上,通过在不同层面上对密钥使用不同的签名引擎进行外层签名来抵抗对子系统的攻击。又因加密的功能与原始签署者的要求及身份相结合,所以签名算法的误操作可被防止。此外,由于该方案即不需要专门的密钥分发机构,同时即便签名者与基地同时被攻破(即对基地主机的入侵有一定容忍程度),该方案仍具有前向安全性(被攻破当前时间点之前的基地密钥及签名密钥不会泄露)。因此,该方案可以很好的抵抗目前移动代理所面临的威胁。
附图说明
图1为本发明入侵回弹的不可拆分的数字签名方法的工作原理。
图2为对照整个方法的流程示意图。
图3为10个基本算法的基本关系。
具体实施方式
图1、图2描述该算法在入侵回弹的不可拆分的数字签名方案中的使用。
如图1所示,入侵回弹的不可拆分的数字签名方案通常的工作原理如下。首先,权威机构先运行IRKGen(1k)生成相应的全局参数、公钥和初始基地密钥。随后基地与客户端通信依次运行UB、US、RB、RS更新签名密钥,随后根据时间流逝,不断更新密钥。然后客户端完成购物,产生代理,先使用IRUndFunGen生成不可拆分签名方法对<f(·),fSign(·)>,然后使用BLS签名算法Sign为代理的敏感数据Msg签名。之后代理迁移到商店服务器,商店接收到代理之后先用Vrfy检验代理的合法性,如果不合法直接终止交易,如果合理则继续处理交易,然后在商店间迁移完成交易,最后在最终同意交易的商店里生成合同以及其他交易信息,然后用不可拆分签名算法IRUndSign为这些信息产生不可拆分签名,然后将代理及不可拆分签名返回到客户端。客户端接收到代理,使用不可拆分签名验证算法IRUndVrfy来检验交易的合法性,只有算法输出为1才使交易成功。之后如果继续其他交易,那么就可能会使用新的密钥进行签名,即便当前密钥被盗,也能保证之前的交易是安全的。
如图2所示,入侵回弹的不可拆分的签名方案包括如下十一个步骤:
1)权威机构运行IRKGen(1k)产生全局设置及公共参数,跳到2)
2)基地运行UB输出当前时间段内初始基地密钥以及密钥升级消息,跳到3)
3)客户端运行US输出当前时间段内初始签名密钥,跳到4)
4)基地运行RB输出当前轮数的基地密钥以及密钥更新消息,跳到5)
5)客户端运行RS输出当前轮数的签名密钥,跳到6)
6)客户端完成购买清单,准备进行交易,直接执行7)
7)客户端运行IRUndFunGen输出不可拆分签名方法对<f(·),fSign(·)>,使代理携带<f(·),fSign(·)>,跳到8)
8)客户端运行Sign为代理敏感数据签名,并与代理一起发送至商店,跳到9)
9)商店服务器用Vrfy验证代理,不合法直接终止交易,若合法调到10)
10)商店进行交易,生成合同,并用IRUndSign为合同进行签名,跳到11)
11)客户端用IRUndVrfy来验证合同,如果不合法终止交易,否则完成交易
图3中是对于10个算法的联系作用:首先由IRKGen生成全局变量及公共参数,然后UB负责随时间流逝过程中不断升级初始基地密钥,而US负责不断升级时间片内的初始签名密钥,随即基地运行RB刷新当前轮数的基地密钥,而客户端运行RS刷新当前的签名密钥得到最终的签名密钥。IRUndFunGen负责产生一种“半成品”<f(·),fSign(·)>,使传递过程中不必暴露签名密钥,IRUndSign是将前面的“半成品”生成“成品”,即不可拆分签名,而IRUndVrfy是相应的不可拆分验证方法,而剩下的Sign和Vrfy是相应的普通签名方法。
下面以具体实施例对本发明作进一步说明:
本方案是建立在双线性对基础上的的。其安全性依赖于对在Diffie-Hellman组求解计算Diffie-Hellman问题的困难度上。
本实例是采用JAVA语言编写,使用The Java Pairing Based CryptographyLibrary(JPBC)库来实现的。JPBC库是一组关于非对称密码系统的一套标准API,官方网址http://gas.dia.unisa.it/projects/jpbc/。
算法IRKGen(1k)的实现是基于JPBC的Type A型椭圆曲线,在此有官方配置文件a.properties作为输入,因此实例不需要明显的1k参数。而建立的椭圆曲线性质如下:
椭圆曲线采用域上构建的y2=x3+x,其中质数q=3mod4,JPBC库提供了映射的API,在当前设定的椭圆曲线系统上,映射中的因此满足IRKGen(1k)定义中的存在同态映射ψ:有ψ(p)=G条件。在此使用上,在椭圆曲线系统初始化完成后,会得到一个Pairing对象,通过Pairing的成员函数,getG1(),getGT()和getZr()可以得到和进而通过getG1().newRandomElement()取到的生成元G,同理从取s,便可以调用G的成员函数powZn(s)计算PK,而通过调用或下的成员函数newElementFromHash()可以实现Ω中的两个哈希函数。按算法描述,便可轻易构造出Ω。
同样,纵观10个算法,其中的调用也就基本为以上函数,并无更多区别,在此就不尽数介绍,在10个算法都使用JAVA实现之后,就可以进行以下步骤:
步骤1.假设有一台权威认证的可信机构服务器,该权威机构根据规定好的安全级别下(输入需要的安全指数k)运行算法1,算法输出全局变量及公共参数。将全局设定Ω存储在公钥中,也就是公钥元素携带着全局信息。IRKGen(1k)算法完成,输出一系列公共参数,进行下一步。
步骤2.基地向算法2输入轮常数链R和当前时间片t,运行算法2,升级得到当前时刻的初始基地密钥SKBt,0并返回证书CERTt及密钥升级信息SKUt-1,进行下一步。
步骤3.客户端向算法3输入密钥升级信息SKUt-1,得到当前时间片的初始签名密钥SKSt,0。
步骤4.基地继续向算法4输入时间片t和轮数r,刷新得到时间段t内第r轮的基地密钥SKBt,r,返回证书certt,r和密钥更新信息SKRt,r-1,进行下一步。
步骤5.客户端以接收到的密钥刷新消息SKRt,r-1以及时间段t内前一轮的签名密钥SKSt,r-1作为算法5的输入,刷新得到当前轮数的签名密钥SKSt,r。
步骤6.客户端完成交易,准备发送移动代理进行交易。
步骤7.客户端以REQ_C||IDC,SKSt,r为输入运行算法6,其中REQ_C||IDC是客户需求和用户ID属于敏感数据,输出不可拆分签名方法<f(·),fSign(·)>,存到代理中。
步骤8.随后客户端运行算法7为代理敏感数据签名,输入为敏感数据、当前时间片段t,当前轮数r以及当前密钥SKSt,r,输出当前时期的普通签名,同样存到代理中,并发送至商店。
步骤9.商店接收到代理,先用算法8检验代理的合法性,输入为公共参数、普通签名、消息、当前时间片和当前轮数,如果输出为0,退出交易;如果输出为1,判断是否代理继续在商店间迁移,如果需要,重复该步骤,即进行步骤9;否则进行步骤10。
步骤10.在此,指定商店已经做出最终决策完成交易,以生成的合同CONTRACT和其他交易信息作为输入,运行算法9,输出为最终的不可拆分签名(记为ungsig),保存到代理中,然后使代理迁移回到客户端。
步骤11.客户端收到交易完成的代理,以不可拆分签名undsig、消息(合同CONTRACT和其他交易信息)、约束条件REQ_C||IDc为输入运行不可拆分验证算法算法10,验证不可拆分签名的合法性。
到此,整个前向安全的不可拆分方法已经完成。
Claims (1)
1.一种入侵回弹的不可拆分数字签名方法,其特征在于,它包括十一个步骤具体如下:
步骤1.在一台权威认证的可信机构服务器Server上,根据规定好的安全级别下输入需要的安全指数k,运行算法1.,生成全局参数并输出公共参数和轮常数链,算法定义如下:
算法1.密钥生成算法IRKGen(1k):
1.1.输入总共的时间片段数T和1k,(为自然数)为一个安全参数,算法首先生成全局参数:
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(1);
1.5.循环计算其他时间段内(t=2,…,T)的轮常数: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(1≤r≤Round(t),Round(t)表示某时间段t内,基地密钥刷新算法和签名密钥刷新算法各要运行Round(t)次),以及前一轮的基地密钥SKBt,r-1,刷新得到时间段t内第r轮的基地密钥SKBt,r。具体定义如下:
算法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(签名者需求及ID属于敏感数据)作为输入运行算法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(即上文中提及的BLS签名算法):
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.基于离散对数的普通验证算法Vrfy:
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,完成交易。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711330710.0A CN108011723B (zh) | 2017-12-13 | 2017-12-13 | 入侵回弹的不可拆分数字签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711330710.0A CN108011723B (zh) | 2017-12-13 | 2017-12-13 | 入侵回弹的不可拆分数字签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108011723A true CN108011723A (zh) | 2018-05-08 |
CN108011723B CN108011723B (zh) | 2020-11-03 |
Family
ID=62058699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711330710.0A Active CN108011723B (zh) | 2017-12-13 | 2017-12-13 | 入侵回弹的不可拆分数字签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108011723B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109768866A (zh) * | 2019-03-05 | 2019-05-17 | 同济大学 | 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法 |
CN110233733A (zh) * | 2019-06-05 | 2019-09-13 | 同济大学 | 面向区块链智能合约的不可拆分数字签名通用构造方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202930A (en) * | 1989-09-05 | 1993-04-13 | Alexander Livshitz | High precision on-line signature dynamic verification system |
CN104168115A (zh) * | 2014-08-19 | 2014-11-26 | 同济大学 | 前向安全的不可拆分数字签名方法 |
CN104184588A (zh) * | 2014-08-15 | 2014-12-03 | 同济大学 | 基于身份的不可拆分数字签名方法 |
CN104519054A (zh) * | 2014-12-12 | 2015-04-15 | 中金金融认证中心有限公司 | 一种数字签名方法及设备、系统 |
CN105491069A (zh) * | 2016-01-14 | 2016-04-13 | 西安电子科技大学 | 云存储中基于抵抗主动攻击的完整性验证方法 |
-
2017
- 2017-12-13 CN CN201711330710.0A patent/CN108011723B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202930A (en) * | 1989-09-05 | 1993-04-13 | Alexander Livshitz | High precision on-line signature dynamic verification system |
CN104184588A (zh) * | 2014-08-15 | 2014-12-03 | 同济大学 | 基于身份的不可拆分数字签名方法 |
CN104168115A (zh) * | 2014-08-19 | 2014-11-26 | 同济大学 | 前向安全的不可拆分数字签名方法 |
CN104519054A (zh) * | 2014-12-12 | 2015-04-15 | 中金金融认证中心有限公司 | 一种数字签名方法及设备、系统 |
CN105491069A (zh) * | 2016-01-14 | 2016-04-13 | 西安电子科技大学 | 云存储中基于抵抗主动攻击的完整性验证方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109768866A (zh) * | 2019-03-05 | 2019-05-17 | 同济大学 | 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法 |
CN109768866B (zh) * | 2019-03-05 | 2021-03-30 | 同济大学 | 基于椭圆曲线数字签名的区块链智能合约不可拆分签名方法 |
CN110233733A (zh) * | 2019-06-05 | 2019-09-13 | 同济大学 | 面向区块链智能合约的不可拆分数字签名通用构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108011723B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | A novel and provably secure authentication and key agreement scheme with user anonymity for global mobility networks | |
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
JP7493014B2 (ja) | 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法 | |
CN104184588B (zh) | 基于身份的不可拆分数字签名方法 | |
CN110383754B (zh) | 基于椭圆曲线同源的密钥协商协议 | |
US10887104B1 (en) | Methods and systems for cryptographically secured decentralized testing | |
CN109756893A (zh) | 一种基于混沌映射的群智感知物联网匿名用户认证方法 | |
CN109660345A (zh) | 基于非对称密钥池服务器的抗量子计算区块链交易方法和系统 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
CN110400162B (zh) | 一种数据处理方法、装置、服务器及系统 | |
CN114175028B (zh) | 密码假名映射方法、计算机系统、计算机程序和计算机可读介质 | |
CN111327419B (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
CN110737915B (zh) | 基于隐式证书的抗量子计算匿名身份识别方法及系统 | |
Songara et al. | Blockchain: a decentralized technique for securing Internet of Things | |
CN113360943A (zh) | 一种区块链隐私数据的保护方法及装置 | |
CN104901804A (zh) | 一种基于用户自主的标识认证实现方法 | |
CN110661613A (zh) | 基于联盟链的抗量子计算隐式证书颁发方法及系统 | |
Yu et al. | Identity‐Based Proxy Signcryption Protocol with Universal Composability | |
Mashhadi et al. | Provably secure verifiable multi‐stage secret sharing scheme based on monotone span program | |
Meshram et al. | A provably secure lightweight subtree-based short signature scheme with fuzzy user data sharing for human-centered IoT | |
CN104168115B (zh) | 前向安全的不可拆分数字签名方法 | |
Yang et al. | Cloud Storage Data Access Control Scheme Based on Blockchain and Attribute‐Based Encryption | |
CN108011723A (zh) | 入侵回弹的不可拆分数字签名方法 | |
CN103795548B (zh) | 一种基于群签名算法的分布式数据库系统及其实现方法 | |
CN110768782B (zh) | 基于非对称密钥池和ibs的抗量子计算rfid认证方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |