CN104184588B - 基于身份的不可拆分数字签名方法 - Google Patents
基于身份的不可拆分数字签名方法 Download PDFInfo
- Publication number
- CN104184588B CN104184588B CN201410403433.1A CN201410403433A CN104184588B CN 104184588 B CN104184588 B CN 104184588B CN 201410403433 A CN201410403433 A CN 201410403433A CN 104184588 B CN104184588 B CN 104184588B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- mrow
- mover
- msub
- agency
- 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.)
- Active
Links
Abstract
基于身份的不可拆分数字签名方法,属于信息安全领域。包括:(1)KGEN:这是公用密钥生成算法生成的主密钥和系统参数。(2)EXTRACT:输入是一个身份标识ID和主密钥s;在多项式时间输出私钥skID。(3)UndSigFunGen:是一个概率多项式时间算法,需要一个客户的REQ_C,客户身份的要求IDC,和客户的公钥以及私钥。(4)IDUndSig:是一个多项式时间算法,这需要合同(或相关的哈希值)作为输入。(5)DUndVrfy:是一个多项式时间算法,这需要合同和不可拆卸的签名作为输入。(6)IDSig:是一个概率多项式时间算法。(7)IDVer:是一个多项式时间的算法,需要输入签名者的身份ID,消息Msg和数字签名,并输出该“接受”或“拒绝”。本发明在白盒攻击环境下,可实现基于身份的不可拆分数字签名。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及移动安全代理技术,应用于电子商务、移动计算等。
背景技术
随着越来越多的基于移动代理技术的实践,如果没有合适的安全的、可信的、隐秘的技术来保护敏感的商业数据并且让商业伙伴们一起完整有信心的合作的话,这些应用是不可能成功调用的。当前移动安全代理学上急需一个技能实现安全,又能有移动性的高效的且成熟的安全方案。
该方案是建立在双线性对基础上的,诸如Weil配对或Tate配对。其安全性依赖于对在Diffie‐Hellman组求解计算Diffie‐Hellman问题的困难度上。其中大部分基本概念,例如群、环、域,在近世代数一科中都属于标准概念。
相似技术(产品)简述:
为了解决在以往的传统电子签名方案实现中,移动代理在代理原始用户活动时,生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题。采用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.三篇文献给出的任意一种不可拆分电子签名,可以在一定程度上控制签名密钥或者签名方法的泄露。
为了解决移动代理在路过某恶意主机时可能会形成白盒攻击(WBAC)环境的威胁,采用P.V.S.S.N.Gopal,P.Vasudeva Reddy and T.Gowri.New ID‐based signaturesscheme from bilinear pairings over elliptic curves.2013IEEE InternationalAdvance Computing Conference(IACC),2013,pp.361–365.文献提出的基于身份的数字签名方案可以解决这类问题。同时,基于身份的数字签名使得移动代理生成的验证的签名并不需要与证书颁发机构的沟通。信息的完整性也可以在不认证机构的帮助下检查。
但是这两种签名方案各自并不能满足目前移动代理安全性的需求。
发明内容
就目前所知,所有公开的不可拆分签名都是基于证书,这就说明,不论是在签名还是验证的过程中,都要不断向证书机构或密钥分发机构不断索取信息。在这种情况下,具有移动性和自治性的移动代理就要不断通过网络联系证书机构或密钥分发机构,这就意味着,移动代理不能高效的发挥它本身的优势,而且效率低下,同时增加通信也相当于增加了威胁。
目前基于身份的签名方案又无法达到不可拆分签名的效果。同时具有两种特点的签名方案成为了目前移动代理安全领域的空白,因为公开的签名方案中,并没有方案有效的方案是两种特点结合,因为这种结合可以说是相当困难的。
而本发明的目的在于克服目前这两种方案在移动代理安全领域各自的不足,既能解决生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题,又能解除移动代理在路过某恶意主机时可能会形成白盒攻击(WBAC)环境时所面临的威胁,同时移动代理生成的验证的签名并不需要与证书颁发机构的沟通。信息的完整性也可以在不认证机构的帮助下检查。填补了移动安全领域该项的空白。
本发明的创新在于通过特殊的算法设计,进而同时达到基于身份和不可拆分签名的安全特征。它并不是单纯简单的算法拼装,而是通过理论推理论证以及相应的实验而达到的两种安全方案的有机结合。
为此,本发明给出的技术方案为:
一种基于身份的不可拆卸的数字签名方法,其特征在于,它包括七个步骤如下:
步骤1.在一台权威认证的可信机构服务器C_Server上,在规定好的安全级别下,即输入需要的安全参数k,运行算法1.,算法定义如下
算法1.密钥生成算法:KGen输入1k当(为自然数)时一个安全参数,算法输出系统参数以及主密钥s。上述中,关于安全参数1k是一个概念性说法,k就是安全指数,可以简单理解为加密系统是k位长度的,当具体实现时,视项目需求和采用的公钥加密系统(比如hyperelliptic椭圆曲线等)而定。
在系统参数Ω中,G1是由生成元P产生的循环群,它的阶数是质数q,G2是相同的阶为q的循环乘法群。假设离散对数问题在G1和G2之间是艰难的。映射e:G1×G1→G2是双线性映射满足以下三个条件双线性映射:
条件1,双线性:同时满足 (1) 和 (2) 或单独满足 (3)
上述 为以质数q为阶且无零元的整数加法群。
条件2,非退化性:存在P∈G1和Q∈G1满足(4)
条件3,可计算性:存在一个有效的算法来计算e(P,Q),对所有
注意到,与超奇异椭圆曲线或阿贝尔簇相关联的Weil配对和Tate配对可被修改,用以创建诸如双线性映射。
因此,系统参数可以按如下步骤生成:
让P成为G1的生成元,取一个随机数然后计算Ppub=sP以及g=e(P,Q)∈G2。此外,同样在通用设定中给出两个安全的哈希函数:H2:{0,1}*→G1和H2的作用是将任意长度二进制数值映射到群G1;而H3的作用是将任意长度二进制数值与G2群中某元素的布尔乘积映射到整数加法群上。至此,Ω已被介绍完毕。Ω应该由受信任的颁发机构(TA)发布到所有参与者。
假设通过著名的Compute Diffie‐Hellman Problem(CDHP)和DiscreteLogarithm Problem(DLP)顽固性的公共密钥设置,这意味着没有多项式时间算法来解决CDHP或DLP。当Decision Diffie‐Hellman Problem(DDHP)很容易,但CDHP是在组G1上很难,G1被称为Gap Diffie‐Hellman(GDH)群。具备这些特性的群可以在有限域的supersingular椭圆曲线或有限域上的hyperelliptic椭圆曲线上找到,而双线性投到来自Weil或Tate配对e:G1×G1→G2。我们的方案可以建在任何GDH群上。
注释:假设G是一个加法群。三个著名的数学问题定义如下:
Discrete Logarithm Problem(DLP):给出两个群元素P和Q,则必存在一个整数n,使等式Q=nP成立。
Decision Diffie–Hellman Problem(DDHP):对于在给出P,aP,bP,cP时,判定c≡ab(modq)是否成立。
Computational Diffie–Hellman Problem(CDHP):对于给出P,aP,bP时,在不知道a或b的情况下,计算出abP的值。
本文中A Gap Diffie–Hellman群(GDHG)是一个群,在这个群上DDHP是容易的,但是CDHP是困难的。
步骤2.C_server上算法1执行结束后会得到系统参数Ω和一个随机数Ω是所有人都可以轻易得到的,而s是要绝对保密的。随后C_server为每一个参与者即客户代理运行算法2,其具体定义如下
算法2.基于身份私钥生成算法:Extract
一个身份ID作为输入,算法输出私钥DID=sQID,其中QID=H2(ID)。H2是上述哈希函数H2:{0,1}*→G1。对于身份识别码ID,起到了关联公共密钥的作用。
步骤3.C_server将Ω公开,然后通过特殊安全通道把私钥DID派送给客户端,并同时把拥有相应身份识别码ID的代理迁移给请求的客户端。
步骤4.客户端安装移动代理,然后得到Ω,再然后通过特殊安全通道得到私钥DID,将DID和REQ_C作为输入运行算法3,REQ_C是移动代理对交易的一种限定,比如价格不能超过600元等各种规定。算法定义如下。
算法3.不可拆分签名函数生成算法:UndSigFunGen
输入:REQ_C和DID后:
表示从群中随机取出元素r。从Ω中取出g,随后计算U←gr和h←H3(REQ_C,U),H3为上述哈希函数。从Ω中取出Ppub,然后计算V←DID+rhPpub。表示从群中随机取出元素t,计算A1←gt和A2←tPpub。最后输出函数fSigned(·)如下:
fSigned(x)=<<U,V,A1>,V+xA2>。
在客户端运行算法3后,移动代理就会一直携带不可拆分函数fSigned(x),随后运行算法6.其定义如下:
算法6.签名算法:IDSig
输入m=<m1,m2>和DID,m为需要签名的消息。其中m1为不敏感数据,m2为敏感数据,例如REQ_C等,从下面的公式就能看到,m1是没有进行签名的,而m2进行了签名运算。
随机取t,计算A1←gt和A2←tPpub。
y1←m1;y2←H3(m2,A1);y←<y1,y2>
简单来说y←〈m1,y2〉
然后输出签名并将签名Sig(y)保存在代理当中,至此客户发送出代理,代理来代替客户在商店服务器中进行自己的行为,例如买卖购物,此为代理的迁移。
步骤5.第一个接收到代理的商店在进行交易之前,先运行算法7.代理的合法性,即验证有没有被恶意篡改过。算法运行前需要输入代理携带来的签名Σ=〈Σ1,Σ2>,即对应算法6.中的Sig(y),如此可知Σ1=<y1,A1>,而Σ2=DID+y2A2但是由于运算的特性,仅知道Σ2是无法计算DID的,这样保证了安全性。算法定义如下
算法7.验证算法:IDVer
输入Σ=<Σ1,Σ2>,m=<m1,m2>
解析Σ1=(y1,A1)
判断和是否相等
是则输出1,否则输出0。
在运行完算法7后,如果输出1则代理继续执行,否则终止交易。如果代理继续执行且交易需要代理迁移到另一台商店服务器,那么在新的商店服务器上重复运行步骤5.如图2,如果本商店服务器是最终交易服务器,即代理不需要再进行商店间迁移,那么执行步骤6.
步骤6.在此,商店已经做出最终决策,如果完成交易,那么生成CONTRACT,然后运行算法4,其输入为CONTRACT和代理自身携带的,在步骤4中生成的fSigned(x)。其中CONTRACT定义为CONTRACT=REQ_C||ID||BID_S||TBID_S,四个信息为(1)客户限制,(2)商店ID,(3)交易信息,(4)交易时间。因此这里应该相应的算法来验证四个信息的逻辑和数值合法性,但不属于本发明范围,就不在此介绍。算法4如下
算法4.不可拆分签名算法:IDUndSig
输入CONTRACT,fSigned(x)
从fSigned(x)中提取A1
计算x←H3(CONTRACT,A1),代入fSigned(x),z←fSigned(x)=<<U,V,A1>,V+xA2>输出z。
算法4.完成之后,代理将保存CONTRACT和z随后迁移回到客户端,进入步骤7。
步骤7.客户端接收到交易完成后的代理后,运行算法5验证代理的合法性,防止被篡改,算法输入为代理携带的CONTRACT和z=<<U,V,A1>,B>
算法5.不可拆分签名验证算法:IDUndVrfy
输入CONTRACT,z=<<U,V,A1>,B>
(1)从CONTRACT字符串中,提取IDC,REQ_C和BID_S。如果BID_S不满足REQ_C,输出0,并终止该算法,否则跳到(2).
(2)从z中提取<U,V>。
(3)判断:和是否相等,
如果相等,跳到第(4)步;
否则输出0,终止算法。
(4)x←H3(CONTRACT,A1)
(5)计算B←V+xA2,
(6)计算和是否相等,如果相等,则输出1,不
相等则输出0。
如果算法5返回0,那么说明代理或交易不合法,终止交易;如果返回1,说明交易和代理合法,那么完成交易即可。
在此,这个方案步骤结束。
通过以上技术方案,本发明在白盒攻击环境下(例如不安全的计算机上),可实现基于身份的不可拆分数字签名。本方案解决了目前移动代理上没有良好的安全方案问题。整个方案中,移动代理不需要携带私有密钥当它们产生的数字签名代表原始签名,因此私钥将不会受到影响。加密的功能与原始签署者的要求相结合,所以签名算法的误操作可被防止。此外,由于该方案是基于身份的,通过移动代理生成的验证的签名并不需要与证书颁发机构的沟通。该合同的完整性也可以在不认证机构的帮助下检查。因此,通信和在一个稳定的网络连接的依赖双方的成本少于正常的不可拆分的数字签名方案。
附图说明
图1为本发明基于身份的不可拆卸的数字签名方法的工作原理。
图2为对照于图1的流程示意图。
具体实施方式
本发明基于身份的不可拆分的签名技术方案中包括的七个算法:
(1)KGEN:这是公用密钥生成算法生成的主密钥和系统参数。输入是一个安全参数k,其中k是属于N。该算法在多项式时间输出系统参数Ω和主密钥s。该算法是概率性的。
(2)EXTRACT:输入是一个身份标识ID和主密钥s;该算法在多项式时间输出私钥DID。
(3)UndSigFunGen:不可拆分签名函数生成算法UndSigFunGen是一个概率多项式时间算法,这需要一个客户的REQ_C和公钥以及私钥DID。这个算法输出一个函数fSigned(x)。
(4)IDUndSig:不可拆分签名算法IDUndSig是一个多项式时间算法,这需要合同(或相关的哈希值)作为输入。该算法输出一个不可拆分的数字签名的z。
(5)IDUndVrfy:不可拆卸签名验证算法IDUndVrfy是一个多项式时间算法,这需要合同和不可拆卸的签名作为输入。该算法输出该“接受”或“拒绝”,只是1或0。
(6)IDSig:基于身份的签名算法IDSig是一个概率多项式时间算法,其输入为需要签名的消息m,一个签名者的身份识别码ID(或签名者的公钥)和签名者的私钥DID,然后输出一个签名的消息。
(7)IDVer:基于身份的验证算法IDVer是一个多项式时间的算法,需要输入签名者的身份ID,消息Msg和数字签名,并输出该“接受”或“拒绝”,1或0。
图1、图2描述各算法在基于身份的不可拆分的数字签名方案中的使用。
如图1所示,基于身份的不可拆卸的数字签名方案通常的工作原理如下。首先,可信的机构(TA)如KDC,应通过运行KGen(k)发布加密所有的公共参数。那么可靠的机构为每个参与者运行Extract算法生成基于身份ID的私钥,并通过相应的安全通信通道发送私钥给每个参与者并分配拥有相应ID的移动代理。当客户想要一个移动代理以自己的名义购物时,客户先安装身份为ID的移动代理,并将相应的私钥DID和REC_Q为参数运行算法UndSigFunGen,得到不可拆分函数fSigned(x),保存到代理中。在同一时间,敏感的数据,如客户的需求REC_Q应该使用IDSig签署。然后移动代理开始寻找愿意满足客户的要求的商店。当一个移动代理代表客户到达时,店内的服务器应该先使用与IDSig签名算法相应的验证算法IDVer来验证移动代理携带数据的完整性。然后,如果店铺的老板或代表拥有者的智能销售代理愿意与客户做出交易,那么拥有者或智能代理应运行算法IDUndSig为交易产生的合约CONTRACT签名。最后,任何人都可以使用的算法IDUndVer验证交易合同的有效性。
如图2所示,基于身份的不可拆分的签名方案包括如下七个步骤:
1)由权威机构运行KGen(k)得到全局设置,跳到2)。
2)权威机构运行Extract(ID),跳到3)。
3)权威机构对所有参与者发放全局设置、身份IDC的代理和相应的私钥,跳到4)。
4)客户端安装代理并运行UndSigFunGen,代理迁移到商店服务器跳到5)。
5)商店服务器用IDVer验证代理,合法则跳到6),否则终止交易。
6)进行交易行为,如果需要另一个商店跳到5),不需要则用IDUndSig算法为合同进行签名,然后跳到7)。
7)客户端用IDUndVer来验证合同,合法完成交易,不合法则终止交易。
下面以具体实施例对本发明作进一步说明:
本方案是建立在双线性对基础上的,诸如Weil配对或Tate配对。其安全性依赖于对在Diffie‐Hellman组求解计算Diffie‐Hellman问题的困难度上。
本实例是采用JAVA语言编写,使用The Java Pairing Based CryptographyLibrary(JPBC)库来实现的。JPBC库是一组关于非对称密码系统的一套标准API,官方网址http://gas.dia.unisa.it/projects/jpbc/。
算法KGen(1k)的实现是基于JPBC的Type A型椭圆曲线,在此有官方配置文件a.properties作为输入,因此此实例不需要明显的1k参数。而建立的椭圆曲线性质如下:
椭圆曲线采用域Fq上构建的y2=x3+x,其中质数q=3mod4,JPBC库提供了映射的API,在当前设定的椭圆曲线系统上,映射中的G1=G2,因此满足KGen(1k)定义中的条件,因而也满足Tate配对的条件。因此,使用上,在椭圆曲线系统初始化完成后,会得到一个Pairing对象,通过Pairing的成员函数,getG1(),getGT()和getZr()可以得到G1、G2和进而通过getG1().newRandomElement()取到G1的生成元P,同理从取s,便可以调用P的成员函数powZn(s)计算Ppub,而通过调用G1或下的成员函数newElementFromHash()可以实现Ω中的两个哈希函数。按算法描述,便可轻易构造出Ω。
同样,纵观7个算法,其中的调用也就基本为以上函数,并无更多区别,在此就不尽数介绍,在7个算法都使用JAVA实现之后,然后进行下面步骤:
如图1所示:
步骤1、在这里,假设有一台权威认证的可信机构服务器C_Server,输入a.properties然后运行KGen(1k)生成Ω和临时私钥s,然后为每个参与者用不同的IDi(i=1,2,...,n)运行算法2根据身份ID生成密钥通过特殊渠道向参与者们分发并将携带相应ID代理也分发下去。
步骤2、假设有一台客户端想要进行交易,首先安装携带身份ID的移动交易代理,并输入其他公共信息和从特殊渠道得到的步骤1的密钥,运行算法3,得到不可拆分签名方法fSigned(x),并将代理中的敏感数据用算法6进行签名。然后该代理进行迁移,即发送到商店服务器。
步骤3、假设代理总共需要迁移路过3家商店服务器,分别命名商店1、商店2和商店3。商店1接收到代理后用算法7验证代理的合法性,不合法直接终止交易。合法的话就继续交易处理,并且使代理迁移到商店2,商店2进行与商店1相同的步骤,如果合法将迁移到最终商店3。
说明:算法7需要从步骤1的C_Server中取得公钥和全局设置才能进行验证。
步骤4、这里的商店3是被假设成最后的交易商店,同上,先用算法7验证代理的合法性,然后如果交易成功,那么用算法4为交易生成的合同进行不可拆分签名,然后使代理迁移回客户端。
说明:算法7如上述说明相同。
步骤5、客户端收到交易完成的代理,然后通过输入公共信息(公钥和全局设置)使用算法5进行不可拆分签名验证,如果验证成功则表示交易成功,否则失败。
Claims (1)
1.一种基于身份的不可拆卸的数字签名方法,其特征在于,它包括七个步骤如下:
步骤1.在一台权威认证的可信机构服务器C_Server上,在规定好的安全级别下,输入需要的安全指数k,运行算法1.,算法定义如下
算法1.密钥生成算法:KGen输入1k当且为自然数时一个安全参数,算法输出系统参数以及主密钥s;k是安全指数,
在系统参数Ω中,G1是由生成元P产生的循环群,它的阶数是质数q,G2是相同的阶为q的循环乘法群;假设离散对数问题在G1和G2之间是艰难的;映射是满足以下三个条件的双线性映射:
条件1,双线性:同时满足(1)和(2)或单独满足(3)
<mrow>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<msub>
<mi>P</mi>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mi>P</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>Q</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<msub>
<mi>P</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<mi>Q</mi>
<mo>)</mo>
</mrow>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<msub>
<mi>P</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>Q</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<mi>P</mi>
<mo>,</mo>
<msub>
<mi>Q</mi>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mi>Q</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<mi>P</mi>
<mo>,</mo>
<msub>
<mi>Q</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<mi>P</mi>
<mo>,</mo>
<msub>
<mi>Q</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<mi>a</mi>
<mi>P</mi>
<mo>,</mo>
<mi>b</mi>
<mi>Q</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<msup>
<mrow>
<mo>(</mo>
<mi>P</mi>
<mo>,</mo>
<mi>Q</mi>
<mo>)</mo>
</mrow>
<mrow>
<mi>a</mi>
<mi>b</mi>
</mrow>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
上述 为以质数q为阶且无零元的整数加法群;条件2,非退化性:存在P∈G1和Q∈G1受制于(4)
<mrow>
<mover>
<mi>e</mi>
<mo>^</mo>
</mover>
<mrow>
<mo>(</mo>
<mi>P</mi>
<mo>,</mo>
<mi>Q</mi>
<mo>)</mo>
</mrow>
<mo>&NotEqual;</mo>
<mn>1</mn>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
条件3,可计算性:存在一个有效的算法来计算对所有
系统参数可以按如下步骤生成:
让P成为G1的生成元,取一个随机数然后计算Ppub=sP以及此外,同样在通用设定中给出两个安全的哈希函数:H2:{0,1}*→G1和H2的作用是将任意长度二进制数值映射到群G1;而H3的作用是将任意长度二进制数值与G2群中某元素的布尔乘积映射到整数加法群上;
步骤2.C_server上算法1执行结束后会得到系统参数Ω和一个随机数Ω是所有人都可以轻易得到的,而s是要绝对保密的,随后C_server为每一个参与者即客户代理运行算法2,其具体定义如下
算法2.基于身份私钥生成算法:Extract
一个身份ID作为输入,算法输出私钥DID=sQID,其中QID=H2(ID),H2是上述哈希函数H2:{0,1}*→G1;私钥DID对于身份识别码ID,起到了关联公共密钥的作用;
步骤3.C_server将系统参数Ω公开,然后通过特殊安全通道把私钥DID派送给客户端,并同时把拥有相应身份识别码ID的代理迁移给请求的客户端;
步骤4.客户端安装移动代理,然后得到系统参数Ω,再然后通过特殊安全通道得到私钥DID,将DID和REQ_C作为输入运行算法3,算法定义如下:
算法3.不可拆分签名函数生成算法:UndSigFunGen
输入:REQ_C和DID后:
表示从群中随机取出元素r,从系统参数Ω中取出g,随后计算U←gr和h←H3(REQ_C,U),H3为上述哈希函数,从Ω中取出Ppub,然后计算 表示从群中随机取出元素t,计算A1←gt和A2←tPpub,最后输出函数fSigned(x)如下:
fSigned(x)=<<U,V,A1>,V+xA2>,
在客户端运行算法3后,移动代理就会一直携带不可拆分函数fSigned(·),随后运行
算法6.其定义如下:
算法6.签名算法:IDSig
输入m=〈m1,m2〉和DID,m为需要签名的消息,其中m1为不敏感数据,m2为敏感数据,m1是没有进行签名的,而m2进行了签名运算,
随机取t,计算A1←gt和A2←tPpub;
y1←m1;y2←H3(m2,A1);y←〈y1,y2〉;然后输出签名Sig(y)=<<y1,A1〉,DID+y2A2〉,并将签名Sig(y)保存在代理当中,至此客户发送出代理,代理来代替客户在商店服务器中进行自己的行为,代理的迁移;
步骤5.第一个接收到代理的商店在进行交易之前,先运行算法7,验证代理的合法性,即验证有没有被恶意篡改过,算法运行前需要输入代理携带来的签名Σ=〈Σ1,Σ2〉,即对应算法6.中的Sig(y),如此可知Σ1=〈y1,A1〉,而Σ2=DID+y2A2但是由于运算的特性,仅知道Σ2是无法计算DID的,这样保证了安全性,算法定义如下:
算法7.验证算法:IDVer
输入Σ=<Σ1,Σ2>,m=<m1,m2〉
解析Σ1=(y1,A1)
判断和是否相等
是则输出1,否则输出0,
在运行完算法7后,如果输出1则代理继续执行,否则终止交易,如果代理继续执行且交易需要代理迁移到另一台商店服务器,那么在新的商店服务器上重复运行步骤5.如果本商店服务器是最终交易服务器,即代理不需要再进行商店间迁移,那么执行步骤6.
步骤6.在此,商店已经做出最终决策,如果完成交易,那么生成CONTRACT,然后运行算法4,其输入为CONTRACT和代理自身携带的,在步骤4中生成的fSigned(x),其中CONTRACT定义为CONTRACT=REQ_C||ID||BID_S||TBID_S,四个信息为(1)客户限制,(2)商店ID,(3)交易信息,(4)交易时间,算法4如下:
算法4.不可拆分签名算法:IDUndSig
输入CONTRACT,fSigned(x)
从fSigned(x)中提取A1
计算x←H3(CONTRACT,A1),代入fSigned(x),z←fSigned(x)=<<U,V,A1>,V+xA2>输出z;
算法4.完成之后,代理将保存CONTRACT和z随后迁移回到客户端,进入步骤7;
步骤7.客户端接收到交易完成后的代理后,运行算法5验证代理的合法性,防止被篡改,算法输入为代理携带的CONTRACT和z=<<U,V,A1>,B>
算法5.不可拆分签名验证算法:IDUndVrfy
输入CONTRACT,z=<<U,V,A1>,B>
(1)从CONTRACT字符串中,提取ID,REQ_C和BID_S;如果BID_S不满足REQ_C,输出0,并终止该算法,否则跳到(2),
(2)从z中提取<U,V>,
(3)判断:和是否相等,
如果相等,跳到第(4)步;
否则输出0,终止算法,
(4)x←H3(CONTRACT,A1)
(5)计算B←V+xA2,QID←H2(ID)
(6)计算和是否相等,如果相等,则输出1,不相等则输出0;
如果算法5返回0,那么说明代理或交易不合法,终止交易;如果返回1,说明交易和代理合法,那么完成交易即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410403433.1A CN104184588B (zh) | 2014-08-15 | 2014-08-15 | 基于身份的不可拆分数字签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410403433.1A CN104184588B (zh) | 2014-08-15 | 2014-08-15 | 基于身份的不可拆分数字签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104184588A CN104184588A (zh) | 2014-12-03 |
CN104184588B true CN104184588B (zh) | 2017-09-08 |
Family
ID=51965353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410403433.1A Active CN104184588B (zh) | 2014-08-15 | 2014-08-15 | 基于身份的不可拆分数字签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104184588B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187212A (zh) * | 2015-08-07 | 2015-12-23 | 河海大学 | 一种具有指定可验证性的Schnorr环签名方案 |
CN105049453A (zh) * | 2015-08-26 | 2015-11-11 | 同济大学 | 一种签名验证方法 |
CN105743647B (zh) * | 2016-03-17 | 2019-01-08 | 西安电子科技大学 | 空间信息网跨域的广播认证方法 |
CN105978869B (zh) * | 2016-05-06 | 2018-11-30 | 西安电子科技大学 | 一种空间信息网络中可跨域的基于身份广播加密方法 |
CN106603224B (zh) * | 2016-12-05 | 2019-09-27 | 同济大学 | 基于白盒加密的安全运行方法及系统 |
CN107609417B (zh) * | 2017-08-29 | 2019-12-20 | 北京航空航天大学 | 用于审计和追踪的匿名消息发送系统及方法 |
CN108011723B (zh) * | 2017-12-13 | 2020-11-03 | 同济大学 | 入侵回弹的不可拆分数字签名方法 |
CN108667619B (zh) * | 2018-05-10 | 2020-11-24 | 武汉大学 | 一种sm9数字签名的白盒实现方法与装置 |
CN110233733B (zh) * | 2019-06-05 | 2022-02-01 | 同济大学 | 面向区块链智能合约的不可拆分数字签名通用构造方法 |
CN111404693B (zh) * | 2020-03-06 | 2022-06-03 | 电子科技大学 | 一种适用于数字签名的密码逆向防火墙方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0840478A2 (en) * | 1996-10-31 | 1998-05-06 | Hitachi, Ltd. | Digital signature generating/verifying method and system using public key encryption |
US6292897B1 (en) * | 1997-11-03 | 2001-09-18 | International Business Machines Corporation | Undeniable certificates for digital signature verification |
CN102420691A (zh) * | 2011-12-16 | 2012-04-18 | 河海大学 | 基于证书的前向安全签名方法及系统 |
CN102983971A (zh) * | 2012-10-10 | 2013-03-20 | 中国科学技术大学苏州研究院 | 网络环境中进行用户身份认证的无证书签名方法 |
CN103905189A (zh) * | 2012-12-24 | 2014-07-02 | 航天信息股份有限公司 | 无证书且无配对的基于身份的代理签密方法和系统 |
-
2014
- 2014-08-15 CN CN201410403433.1A patent/CN104184588B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0840478A2 (en) * | 1996-10-31 | 1998-05-06 | Hitachi, Ltd. | Digital signature generating/verifying method and system using public key encryption |
US6292897B1 (en) * | 1997-11-03 | 2001-09-18 | International Business Machines Corporation | Undeniable certificates for digital signature verification |
CN102420691A (zh) * | 2011-12-16 | 2012-04-18 | 河海大学 | 基于证书的前向安全签名方法及系统 |
CN102983971A (zh) * | 2012-10-10 | 2013-03-20 | 中国科学技术大学苏州研究院 | 网络环境中进行用户身份认证的无证书签名方法 |
CN103905189A (zh) * | 2012-12-24 | 2014-07-02 | 航天信息股份有限公司 | 无证书且无配对的基于身份的代理签密方法和系统 |
Non-Patent Citations (2)
Title |
---|
An Undetachable Threshold Digital Signature Scheme Based on Conic Curves;Yang Shi;《Applied Mathematics & Information Sciences》;20130301;全文 * |
基于身份的密码体制研究及其在移动支付业务中的应用;李曦;《中国博士学位论文全文数据库》;20091231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104184588A (zh) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104184588B (zh) | 基于身份的不可拆分数字签名方法 | |
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
He et al. | A pairing‐free certificateless authenticated key agreement protocol | |
He et al. | An efficient and provably‐secure certificateless signature scheme without bilinear pairings | |
US9698985B2 (en) | Authentication | |
US8971540B2 (en) | Authentication | |
CN113569294B (zh) | 一种零知识证明方法及装置、电子设备、存储介质 | |
CN109728906B (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
Misra et al. | A unique key sharing protocol among three users using non-commutative group for electronic health record system | |
Zhu et al. | A round-optimal lattice-based blind signature scheme for cloud services | |
Mangipudi et al. | A secure identification and key agreement protocol with user anonymity (SIKA) | |
CN104270249A (zh) | 一种从无证书环境到基于身份环境的签密方法 | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
Velliangiri et al. | An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography | |
CN109787758B (zh) | 基于私钥池和Elgamal的抗量子计算MQV密钥协商方法和系统 | |
JP2021510954A (ja) | デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム | |
CN104301108A (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
CN109905229B (zh) | 基于群组非对称密钥池的抗量子计算Elgamal加解密方法和系统 | |
Verma et al. | Efficient identity‐based blind message recovery signature scheme from pairings | |
WO2019110399A1 (en) | Two-party signature device and method | |
Sahu et al. | Provable secure identity‐based multi‐proxy signature scheme | |
KR20030062401A (ko) | 겹선형쌍을 이용한 개인식별정보 기반의 은닉서명 장치 및방법 | |
Padhye et al. | ECDLP‐based certificateless proxy signature scheme with message recovery | |
CN102301643B (zh) | 数据处理系统中的密码证书的管理方法和系统 | |
Meshram et al. | A provably secure lightweight subtree-based short signature scheme with fuzzy user data sharing for human-centered IoT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |