CN104168115B - The undetachable digital signatures method of forward secrecy - Google Patents
The undetachable digital signatures method of forward secrecy Download PDFInfo
- Publication number
- CN104168115B CN104168115B CN201410407512.XA CN201410407512A CN104168115B CN 104168115 B CN104168115 B CN 104168115B CN 201410407512 A CN201410407512 A CN 201410407512A CN 104168115 B CN104168115 B CN 104168115B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- signature
- key
- output
- cert
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 239000003795 chemical substances by application Substances 0.000 claims description 42
- 238000013507 mapping Methods 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 239000000654 additive Substances 0.000 claims description 2
- 230000000996 additive effect Effects 0.000 claims description 2
- 102100035437 Ceramide transfer protein Human genes 0.000 claims 12
- 101710119334 Ceramide transfer protein Proteins 0.000 claims 12
- 230000001010 compromised effect Effects 0.000 abstract description 6
- 238000012795 verification Methods 0.000 abstract description 5
- 230000008520 organization Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000011265 semifinished product Substances 0.000 description 2
- 238000005336 cracking Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 150000003278 haem Chemical class 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种前向安全的不可拆分数字签名方法,该方法中包括算法有:密钥生成算法KGen,密钥升级算法KUpd,不可拆分签名方法生成算法UndSigFunGen,不可拆分签名算法FSUndSig,不可拆分签名验证算法FSUndVrfy,签名算法Sign,验证算法Vrfy。本发明在白盒攻击环境下,可实现前向安全的不可拆分数字签名。整个方案中,移动代理不需要携带私有密钥当它们产生的数字签名代表原始签名,因此私钥将不会受到影响。加密的功能与原始签署者的要求相结合,所以签名算法的误操作可被防止。该方案并不需要专门的密钥分发机构,同时即便签名者被攻破,该方案仍具有前向安全性。
The invention discloses a forward secure inseparable digital signature method, the method includes the following algorithms: key generation algorithm KGen, key upgrade algorithm KUpd, inseparable signature method generation algorithm UndSigFunGen, inseparable signature algorithm FSUndSig, indivisible signature verification algorithm FSUndVrfy, signature algorithm Sign, verification algorithm Vrfy. The present invention can realize the forward-safe inseparable digital signature under the white-box attack environment. Throughout the scheme, mobile agents do not need to carry the private key as the digital signature they generate represents the original signature, so the private key will not be affected. The function of encryption is combined with the request of the original signer, so the misoperation of the signature algorithm can be prevented. The scheme does not need a special key distribution organization, and even if the signer is compromised, the scheme still has forward security.
Description
技术领域technical field
本发明涉及信息安全技术领域,具体涉及移动安全代理技术,应用于电子商务、移动计算等。The invention relates to the technical field of information security, in particular to mobile security agent technology, which is applied to e-commerce, mobile computing and the like.
背景技术Background technique
随着越来越多的基于移动代理技术进入实践阶段,如果没有合适的、安全的、可信的和隐秘的技术来保护敏感的商业数据并且让商业伙伴们有充分的信心来一起合作的话,这些应用是不可能成功实现的。然而,移动代理面临着巨大的安全威胁,当前移动安全代理领域上基于身份的不可拆分数字签名方法可以很好的并安全有效的完成任务。As more and more mobile agent-based technologies come into practice, without suitable, secure, trusted and stealthy technologies to protect sensitive business data and allow business partners to work together with sufficient confidence, These applications are impossible to implement successfully. However, mobile agents are facing a huge security threat, and the current identity-based inseparable digital signature method in the field of mobile security agents can complete the task safely and effectively.
但是,基于身份的不可拆分数字签名方法必须需要一个中心化分发密钥的安全机构,而实际上有很多情况是没有这种具有权威性,可靠性的机构的。因此这里急需一个不依靠密钥分发机构的,又同时具有高安全性,高可靠性的方法来保护移动代理。However, the identity-based inseparable digital signature method must require a centralized security agency that distributes keys, but in fact there are many cases where there is no such authoritative and reliable agency. Therefore, there is an urgent need for a method that does not rely on the key distribution organization, but also has high security and high reliability to protect the mobile agent.
该方案是建立在双线性对基础上的。其安全性依赖于对在Diffie-Hellman组求解计算Diffie-Hellman问题的困难度上。其中大部分基本概念,例如群、环、域,在近世代数一科中都属于标准概念。The scheme is based on bilinear pairings. Its security depends on the difficulty of solving computational Diffie-Hellman problems in Diffie-Hellman groups. Most of the basic concepts, such as groups, rings, and fields, are standard concepts in modern algebra.
相似技术(产品)简述:Brief description of similar technologies (products):
为了解决在以往的传统电子签名方案实现中,移动代理在代理原始用户活动时,生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题。采用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.三篇文献给出的任意一种不可拆分电子签名,可以在一定程度上控制签名密钥或者签名方法的泄露。In order to solve the problem in the implementation of traditional electronic signature schemes in the past, when the mobile agent generates an electronic signature on behalf of the original user, it needs to carry the signature algorithm and signature key itself, which will allow the attacker to forge the signature algorithm from the agent, or even crack Security issues for signing keys. Using Kotzanikolaous, P., Burmester, M., Chrissikopoulos, V., Secure Transactions with Mobile Agents in Hostile Environments, 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 on Information Security, ACM Press, 2004: pp.242-243. and Yang Shi, Xiaoping Wang, Liming Cao, Jianxin Ren. Secure Mobile Agents in Electronic Commerce by Using Undetachable Signatures from Pairings.Proc.The 4th International Conference on Electronic Business,pp.1038-1043.Any kind of inseparable electronic signature given in the three documents can control the leakage of the signature key or signature method to a certain extent.
为了解决在没有可靠密钥分发机构情况下,密钥生成者会被攻击得到签名密钥的安全威胁H.Krawezyk.Simple forward-secure signatures from any Signatureseheme.Proceedings of the 7th ACM Conference on Computer and CommunicationsSeeurity,2000,pp.108-115.文献提出了前向安全签名方法来解决这类问题,而且,即便当签名者主机被攻陷形成白盒攻击环境时,仍能保证签名密钥是前向安全的,即该方案密钥是随时间变化的,在被攻陷的时间点之前的已经使用过的签名密钥都是无法获取的,故名前向安全。In order to solve the security threat that the key generator will be attacked to obtain the signature key in the absence of a reliable key distribution agency H. Krawezyk. Simple forward-secure signatures from any Signaturese heme. Proceedings of the 7th ACM Conference on Computer and Communications Seeurity, 2000, pp.108-115. The literature proposes a forward secure signature method to solve this kind of problem, and even when the host of the signer is compromised to form a white box attack environment, the signature key can still be guaranteed to be forward secure, That is to say, the key of this scheme changes with time, and the signature key that has been used before the time point of being compromised cannot be obtained, so it is called forward security.
但是这几种签名方案各自并不能满足目前移动代理安全性的需求。However, each of these signature schemes cannot meet the current security requirements of mobile agents.
发明内容Contents of the invention
众所周知,签名密钥是一个签名方案的核心,如果签名密钥被盗,那么整个签名方法就失去了作用,因此上文提到的前向安全签名方法可以让签名密钥随时间的流逝而更新,没过一个时间段就不可逆地更新一次密钥,这样,即便当签名者被攻陷后,仍能保证当前时间片段以前的签名密钥的安全性,即,已经签名过得数据无法再仿造。As we all know, the signature key is the core of a signature scheme. If the signature key is stolen, the entire signature method will be useless. Therefore, the forward security signature method mentioned above can allow the signature key to be updated over time. , the key is irreversibly updated every time period, so that even when the signer is compromised, the security of the signature key before the current time period can still be guaranteed, that is, the signed data cannot be counterfeited.
但是,目前前向安全的签名方案又无法达到不可拆分签名的效果。同时具有两种特点的签名方案成为了目前移动代理安全领域的空白,因为公开的签名方案中,并没有方案有效的方案是两种特点结合,因为这种结合可以说是相当困难的。而本发明的目的在于克服目前这两种方案在移动代理安全领域各自的不足,既能解决生成电子签名需要自身携带签名算法以及签名密钥的过程中,会让攻击者从代理端伪造签名算法,甚至破解签名密钥的安全问题,又能解除移动代理在路过某恶意主机时可能会形成白盒攻击(WBAC)环境时所面临的威胁,同时也不需要专门的安全机构来颁发证书或者是密钥,增加了签名方法的适用范围,再者,不仅使通讯风险更加低,也抵消了权威机构被攻破的巨大威胁,填补了移动安全领域该项的空白。However, the current forward-secure signature scheme cannot achieve the effect of indivisible signatures. The signature scheme with two characteristics at the same time has become a blank in the field of mobile agent security, because among the public signature schemes, there is no effective scheme that combines the two characteristics, because this combination can be said to be quite difficult. The purpose of the present invention is to overcome the respective deficiencies of the current two solutions in the field of mobile agent security, and to solve the problem of generating an electronic signature that requires itself to carry a signature algorithm and a signature key, which will allow an attacker to forge a signature algorithm from the agent , even cracking the security issue of the signature key, and can remove the threat that the mobile agent may face when it passes a malicious host and may form a white-box attack (WBAC) environment, and does not require a special security agency to issue certificates or The key increases the scope of application of the signature method. Furthermore, it not only reduces the communication risk, but also offsets the huge threat of the authoritative organization being breached, filling the gap in the field of mobile security.
本发明的创新在于通过特殊的算法设计,进而同时达到前向安全和不可拆分签名的安全特征。它并不是单纯简单的算法拼装,而是通过理论推理论证以及相应的实验而达到的两种安全方案的有机结合。The innovation of the present invention lies in the design of a special algorithm so as to simultaneously achieve the security features of forward security and inseparable signatures. It is not a simple assembly of algorithms, but an organic combination of two security solutions achieved through theoretical reasoning and corresponding experiments.
为此,本发明给出的技术方案为:For this reason, the technical scheme that the present invention provides is:
一种前向安全的不可拆分数字签名方法,其特征在于,它包括八个步骤如下:步骤1.某客户在一台客户端计算机上完成购物,随即,计算机生成移动代理,之后客户端计算机根据规定好的安全级别下(输入需要的安全指数k)运行算法1.,算法定义如下A kind of forward safe inseparable digital signature method, it is characterized in that, it comprises eight steps as follows: Step 1. certain client completes shopping on a client computer, then, computer generates mobile agent, client computer afterwards Run Algorithm 1. according to the specified security level (input the required security index k), the algorithm is defined as follows
算法1.密钥生成算法:KGen(1k)输入总共的时间片段数T和1k当k∈□(□为自然数)时一个安全参数,算法输出公共密钥设置以及初始密钥S0。Algorithm 1. Key generation algorithm: KGen(1 k ) inputs the total number of time segments T and 1 k as a security parameter when k∈□ (□ is a natural number), and the algorithm outputs the public key setting and the initial key S 0 .
Ω解释说明:上述中,关于安全参数1k是一个概念性说法,k就是安全指数,可以简单理解为加密系统是k位长度的,当具体实现时,视项目需求和采用的公钥加密系统(比如hyperelliptic椭圆曲线等)而定。Ω Explanation: In the above, the security parameter 1 k is a conceptual statement, and k is the security index, which can be simply understood as the encryption system is of k-bit length. When it is implemented, it depends on the project requirements and the public key encryption system used. (such as hyperelliptic elliptic curves, etc.) depends.
Ω中G1是一个阶为q乘法循环群,G2同样是一个阶为q的乘法循环群。G和P是G1和G2各自的固定生成元。是一个线性映射,将G1和G2中的元素先做笛卡尔积,然后映射到GT中的元素上。和H2:{0,1}*→G1是两个特殊的哈希映射,作用就是分别将任意二进制数值映射到和G1,是以质数q为阶且无零元的整数加法群。G 1 in Ω is a multiplicative cyclic group with order q, and G 2 is also a multiplicative cyclic group with order q. G and P are fixed generators of G1 and G2 respectively. Is a linear mapping, the elements in G 1 and G 2 are firstly Cartesian product, and then mapped to the elements in G T. and H 2 : {0,1} * →G 1 are two special hash maps, which are used to map any binary value to and G 1 , is the additive group of integers of order q with no zero elements.
注解:假设存在同态映射ψ:G2→G1有ψ(P)=G。Note: Suppose there is a homomorphic map ψ:G 2 →G 1 with ψ(P)=G.
定义:在(G1,G2)上的判定Diffie-Hellman问题(co-DDH):给出P,Pa∈G2和Y,Yb∈G1作为输入,如果a=b那么输出yes,否则输出no。当输出为yes时,我们称(P,Pa,Y,Yb)是一个Diffie-Hellman元组(co-DHT)。Definition: Decision Diffie-Hellman problem (co-DDH) on (G 1 ,G 2 ): Given P, P a ∈ G 2 and Y, Y b ∈ G 1 as input, if a=b then output yes , otherwise output no. When the output is yes, we say (P,P a ,Y,Y b ) is a Diffie-Hellman tuple (co-DHT).
假设:我们假设是可以被快速计算的,因此co-DDH在(G1,G2)上是容易解决的。本方法就是建立在这个假设上的。Hypothesis: We assume can be calculated quickly, so co-DDH is easy to solve on (G 1 ,G 2 ). This method is based on this assumption.
初始密钥S0生成:The initial key S 0 is generated:
从中随即取出S0,计算U0 from S 0 is taken out immediately, and U 0 is calculated
For(j=1;j≤T;j++) doFor(j=1; j≤T; j++) do
EndForEndFor
循环完毕,抹除sj,j=1,…,T,存储CERTj,j=1,…,TAfter the cycle is completed, erase s j ,j=1,…,T, store CERT j ,j=1,…,T
注释:在此,本算法假设U0是个数据集合体,因此,将全局设定Ω存储在U0,也就是公钥元素携带着全局信息。Note: Here, this algorithm assumes that U 0 is a data aggregate, therefore, the global setting Ω is stored in U 0 , that is, the public key element carries global information.
KGen(1k)算法完成,输出公钥U0和初始密钥S0,进行下一步。The KGen(1 k ) algorithm is completed, output the public key U 0 and the initial key S 0 , and proceed to the next step.
步骤2然后客户端向算法2输入公钥U0、初始密钥s0、CERTj和当前时间片j,然后运行算法2,其定义如下:Step 2: Then the client inputs public key U 0 , initial key s 0 , CERT j and current time slice j to Algorithm 2, and then runs Algorithm 2, which is defined as follows:
算法2.Algorithm 2.
KUpd(sj-1,CERTj,j,U0)KUpd(s j-1 ,CERT j ,j,U 0 )
BEGINBEGIN
<U0′,j′,Uj′,Λj>←CERTj <U 0 ′,j′,U j ′,Λ j >←CERT j
return ⊥ //abortreturn ⊥ //abort
erase sj-1 erase s j-1
return sj return s j
ENDEND
抹除S0后,算法返回S1,进行下一步After erasing S 0 , the algorithm returns to S 1 and proceeds to the next step
步骤3.客户端完成交易,准备发送移动代理进行交易。Step 3. The client completes the transaction and is ready to send the mobile agent for the transaction.
如果当前密钥过期执行步骤4,否则执行步骤5。If the current key has expired, go to step 4, otherwise go to step 5.
步骤4.客户端以上一时期密钥Sj-1,当前时期j,公钥U0以及算法1生成的CERTj为输入,重新运行KUpd,得到下一时间段密钥Sj,进行下一步。Step 4. The client takes the key S j-1 of the previous period, the current period j, the public key U 0 and the CERT j generated by Algorithm 1 as input, re-runs KUpd to obtain the key S j of the next period, and proceeds to the next step .
步骤5.客户端以REQ_C||IDC,sj,CERTj为输入,其中REQ_C||IDC是客户需求和用户ID属于敏感数据运行算法3,其定义如下:Step 5. The client takes REQ_C||ID C , s j , and CERT j as input, where REQ_C||ID C is customer demand and user ID belongs to sensitive data and runs Algorithm 3, which is defined as follows:
算法3.Algorithm 3.
UndSigFunGen(REQ_C||IDC,sj,CERTj)UndSigFunGen(REQ_C||ID C ,s j ,CERT j )
BeginBegin
H←H2(REQ_C||IDC);H←H 2 (REQ_C||ID C );
Endend
输出使代理携带;output make the agent carry;
随后客户端运行算法6为代理敏感数据签名,输入为敏感数据、当前时间片段j以及当前密钥sj,算法定义如下Then the client runs Algorithm 6 to sign the proxy sensitive data. The input is sensitive data, the current time segment j and the current key s j . The algorithm is defined as follows
算法6.Algorithm 6.
Sign(sj,j,Msg)Sign(s j ,j,Msg)
BeginBegin
return σj return σ j
Endend
输出为j时期的签名,同样使代理携带。进行下一步The output is the signature of period j, which is also carried by the agent. proceed to the next step
步骤6.商店接收到代理,先用算法7检验代理的合法性,即检验σj,输入为公钥、签名消息、签名和当前时期,算法定义如下:Step 6. When the store receives the proxy, it first uses Algorithm 7 to check the legitimacy of the proxy, that is, to check σ j . The input is the public key, signature message, signature and the current period. The algorithm is defined as follows:
算法7.Algorithm 7.
Vrfy(U0,σ,j,Msg)Vrfy(U 0 ,σ,j,Msg)
BeginBegin
<CERTj,σ′>←σ;<U0′,j′,Uj′,Λj>←CERTj <CERT j ,σ′>←σ;<U 0 ′,j′,U j ′,Λ j >←CERT j
If(U0≠U0′) return 0If(U 0 ≠ U 0 ′) return 0
If(j≠j′) return 0If(j≠j′) return 0
Else return 1Else return 1
Endend
如果输出为0,退出交易If the output is 0, exit the transaction
如果输出为1,判断是否代理继续在商店间迁移,如果需要,重复该步骤,即进行步骤6;否则进行步骤7。If the output is 1, judge whether the agent continues to migrate between stores. If necessary, repeat this step, that is, go to step 6; otherwise, go to step 7.
步骤7.在此,商店已经做出最终决策,如果完成交易,那么生成CONTRACT和其他交易信息作为输入,运行算法4,定义如下:Step 7. At this point, the store has made a final decision, if the transaction is completed, then generate CONTRACT and other transaction information as input, run Algorithm 4, defined as follows:
算法4.Algorithm 4.
UndSig(Msg)UndSig(Msg)
BeginBegin
h=H1(Msg)h=H 1 (Msg)
Endend
输出为最终的不可拆分签名,在此记为Z。保存到代理中,然后使代理迁移回到客户端,进行下一步。The output is the final inseparable signature, denoted as Z here. Save into the agent, then make the agent migrate back to the client for the next step.
步骤8.客户端收到交易完成的代理,以U0,Z,j,Msg,REQ_C||IDC为输入,其中Msg为CONTRACT和其他交易信息,运行算法5检验Msg的合法性,算法定义如下:Step 8. The client receives the transaction completion agent, takes U 0 , Z, j, Msg, REQ_C||ID C as input, where Msg is CONTRACT and other transaction information, and runs Algorithm 5 to check the validity of Msg, algorithm definition as follows:
算法5.Algorithm 5.
UndVrfy(U0,Z,j,Msg,REQ_C||IDC)UndVrfy(U 0 ,Z,j,Msg,REQ_C||ID C )
BeginBegin
<<CERTj,Z′>,j>←Z;<U0′,j′,Uj′,Λj>←CERTj <<CERT j ,Z′>,j>←Z;<U 0 ′,j′,U j ′,Λ j >←CERT j
If(U0≠U0′) return 0If(U 0 ≠ U 0 ′) return 0
If(j≠j′) return 0If(j≠j′) return 0
If(Msg does not satisfy REQ_C) return 0If(Msg does not satisfy REQ_C) return 0
else return 1else return 1
Endend
如果算法输出为0,则终止交易;If the algorithm output is 0, terminate the transaction;
否则输出为1,完成交易。Otherwise the output is 1 and the transaction is completed.
如果用户仍需要交易,直接跳到步骤3If the user still needs to trade, skip directly to step 3
到此,整个前向安全的不可拆分方法已经完成。At this point, the entire forward-secure indivisible method has been completed.
通过以上技术方案,本发明在白盒攻击环境下(例如不安全的计算机上),可实现前向安全的不可拆分数字签名。本方案解决了目前移动代理上缺乏良好的安全方案的问题。整个方案中,移动代理不需要携带私有密钥当它们产生的数字签名代表原始签名,因此私钥将不会受到影响。加密的功能与原始签署者的要求相结合,所以签名算法的误操作可被防止。此外,由于该方案是前向安全的,该方案并不需要专门的密钥分发机构,同时即便签名者被攻破,该方案仍具有前向安全性(被攻破当前时间片之前的签名密钥不会泄露)。因此,该方案可以很好的抵抗目前移动代理所面临的的威胁。Through the above technical solutions, the present invention can realize forward-safe inseparable digital signatures in a white-box attack environment (for example, on an unsafe computer). This solution solves the problem of lack of a good security solution on the current mobile agent. Throughout the scheme, mobile agents do not need to carry the private key as the digital signature they generate represents the original signature, so the private key will not be affected. The function of encryption is combined with the request of the original signer, so the misoperation of the signature algorithm can be prevented. In addition, since the scheme is forward secure, the scheme does not require a special key distribution organization, and even if the signer is compromised, the scheme still has forward security (the signature key before the compromised current time slice is not will leak). Therefore, the scheme can well resist the threats faced by mobile agents at present.
附图说明Description of drawings
图1为本发明前向安全的不可拆卸的数字签名方法的工作原理。Fig. 1 is the working principle of the forward secure non-detachable digital signature method of the present invention.
图2为对照整个方法的流程示意图。Figure 2 is a schematic flow chart of the entire method.
图3为7个基本算法的基本关系。Figure 3 shows the basic relationship of the seven basic algorithms.
具体实施方式detailed description
本发明公开了一种前向安全的不可拆分数字签名方法,如图3,该方法中包括如下七个算法:The present invention discloses a forward secure inseparable digital signature method, as shown in Figure 3, the method includes the following seven algorithms:
1)KGen:密钥生成算法KGen以安全参数1k(k∈□)和方案将操作的总的时期数T,或者还有其他的相关参数作为输入,返回一个基本的公钥PK和相应的初始密钥(签名密钥)SK0。算法复杂度是不确定的。1) KGen: The key generation algorithm KGen takes the security parameter 1 k (k∈□) and the total period T of the scheme to operate, or other relevant parameters as input, and returns a basic public key PK and the corresponding Initial key (signature key) SK 0 . Algorithmic complexity is indeterminate.
2)KUpd:密钥升级算法KUpd以密钥上个时期的密钥SKj-1为输入,返回当前签名密钥SKj。算法时间复杂度通常是确定的。2) KUpd: The key upgrade algorithm KUpd takes the key SK j-1 of the previous key period as input and returns the current signature key SK j . Algorithm time complexity is usually deterministic.
3)UndSigFunGen:不可拆分签名方法生成算法UndSigFunGen是一个确定的,多项式时间复杂度算法,它以用户的需求REQ_C,用户的身份IDC和用户的公钥以及当前时期的密钥作为输入,算法返回方法对f(·)和 3) UndSigFunGen: The inseparable signature method generation algorithm UndSigFunGen is a deterministic, polynomial time complexity algorithm, which takes the user's requirement REQ_C, the user's identity ID C and the user's public key and the current period's key as input, the algorithm return method pair f( ) and
4)UndSig:不可拆分签名算法FSUndSig是一个多项式时间复杂度算法,以有关的合同限制(或者相应的哈希值)作为输入,返回不可拆分数字签名z=ζj=<ζ,j>。4) UndSig: Inseparable signature algorithm FSUndSig is a polynomial time complexity algorithm that takes relevant contract restrictions (or corresponding hash values) as input and returns an inseparable digital signature z=ζ j =<ζ,j> .
5)UndVrfy:不可拆分签名验证算法FSUndVrfy是一个多项式时间复杂度算法,以有关合同限制和不可拆分签名z作为输入。算法返回“接受”或者“拒绝”,简单来说1或者0。5) UndVrfy: Inseparable signature verification algorithm FSUndVrfy is a polynomial time complexity algorithm, which takes the relevant contract constraints and the indivisible signature z as input. The algorithm returns "accepted" or "rejected", simply 1 or 0.
6)Sign:签名算法Sign以当前时期密钥SKj和消息M作为输入,返回时期j和消息M的签名。本文记作算法复杂度可能是不确定的。签名通常是一对值,时期j和相应的标签σ。6) Sign: The signature algorithm Sign takes current epoch key SK j and message M as input, and returns the signature of epoch j and message M. This article is recorded as Algorithmic complexity may be indeterminate. A signature is usually a pair of values, an epoch j and a corresponding label σ.
7)Vrfy:验证算法Vrfy以公钥PK,消息M以及签名<j,σ>,返回“接受”或者“拒绝”,简单来说1或者0。这里记作b←VrfyPK(M,<j,σ>)。7) Vrfy: The verification algorithm Vrfy uses the public key PK, the message M and the signature <j, σ> to return "accept" or "reject", in simple terms 1 or 0. Here it is denoted as b←Vrfy PK (M,<j,σ>).
图1、图2描述该算法在前向安全的不可拆分的数字签名方案中的使用。Figures 1 and 2 describe the use of this algorithm in a forward-secure indivisible digital signature scheme.
如图1所示,基于身份的不可拆卸的数字签名方案通常的工作原理如下。首先,客户端先运行KGen(1k)生成相应的全局参数、公钥和初始密钥。随后运行KUpd更新初始密钥,随后根据时间流逝,不断更新密钥。然后客户端完成购物,产生代理,先使用UndSigFunGen生成不可拆分签名函数然后使用Sign为代理的敏感数据签名。之后代理迁移到商店服务器,商店接收到代理之后先用Vrfy检验代理的合法性,如果不合法直接终止交易,如果合理则继续处理交易,然后在商店间迁移完成交易,最后在最终商店里生成合同以及其他交易信息,然后用UndSig为这些信息产生不可拆分签名,然后发送代理回到客户端。客户端接收到代理,使用UndVrfy来检验交易的合法性,只有算法输出为1才使交易成功。之后如果继续其他交易,那么就可能会使用新的密钥进行签名,即便当前密钥被盗,也能保证之前的交易是安全的。As shown in Figure 1, identity-based non-detachable digital signature schemes generally work as follows. First, the client runs KGen(1 k ) to generate the corresponding global parameters, public key and initial key. Then run KUpd to update the initial key, and then update the key continuously according to the passage of time. Then the client completes the shopping, generates a proxy, and first uses UndSigFunGen to generate an inseparable signature function Then use Sign to sign the proxy's sensitive data. Afterwards, the agent is migrated to the store server. After receiving the agent, the store first uses Vrfy to verify the legality of the agent. If it is not legal, the transaction will be terminated directly. If it is reasonable, the transaction will continue to be processed, and then the transaction will be migrated between stores to complete the transaction, and finally the contract will be generated in the final store. And other transaction information, and then use UndSig to generate an inseparable signature for these information, and then send the agent back to the client. The client receives the proxy and uses UndVrfy to verify the legitimacy of the transaction. Only when the algorithm output is 1 can the transaction be successful. If other transactions are continued later, the new key may be used for signature, even if the current key is stolen, the previous transaction can be guaranteed to be safe.
如图2所示,前向安全的不可拆分的签名方案包括如下八个步骤:As shown in Figure 2, the forward-secure indivisible signature scheme includes the following eight steps:
1)客户端运行KGen,产生全局设置、公钥U0和初始密钥s0 1) The client runs KGen to generate global settings, public key U 0 and initial key s 0
2)客户端运行KUpd输出第一时间段密钥s1 2) The client runs KUpd to output the first time period key s 1
3)完成购买清单,进行交易,如果密钥没有过期,直接执行5)3) Complete the purchase list and make a transaction. If the key has not expired, directly execute 5)
4)客户端运行KUpd输出下一时间段密钥sj 4) The client runs KUpd to output the next time period key s j
5)客户端运行UndSigFunGen输出使代理携带 5) The client runs UndSigFunGen output make the agent carry
客户端运行Sign为代理敏感数据签名;The client runs Sign to sign the agent's sensitive data;
6)商店服务器用Vrfy验证代理,不合法直接终止交易6) The store server uses Vrfy to verify the proxy, and the transaction is terminated directly if it is illegal
7)进行交易,并用UndSig为合同进行签名7) Make a transaction and sign the contract with UndSig
8)客户端用UndVrfy来验证合同,如果不合法终止交易。8) The client uses UndVrfy to verify the contract, if it is not legal to terminate the transaction.
图3中是对于7个算法的联系作用:首先由KGen生成全局变量,公钥以及初始密钥,然后KUpd负责随时间流逝过程中不断更新密钥,UndSigFunGen负责产生一种“半成品”,使传递过程中不必暴露签名密钥,UndSig是将前面的“半成品”生成“成品”,即不可拆分签名,UndVrfy是相应的验证方法,而剩下的Sign和Vrfy是相应的普通签名方法。Figure 3 shows the relationship between the seven algorithms: first, KGen generates global variables, public keys, and initial keys, then KUpd is responsible for updating the keys as time goes by, and UndSigFunGen is responsible for generating a "semi-finished product" to make the transfer There is no need to expose the signature key during the process. UndSig is to generate a "finished product" from the previous "semi-finished product", that is, an inseparable signature. UndVrfy is the corresponding verification method, and the remaining Sign and Vrfy are the corresponding common signature methods.
下面以具体实施例对本发明作进一步说明:The present invention will be further described below with specific embodiment:
本方案是建立在双线性对基础上的的。其安全性依赖于对在Diffie-Hellman组求解计算Diffie-Hellman问题的困难度上。This scheme is based on bilinear pairing. Its security depends on the difficulty of solving computational Diffie-Hellman problems in Diffie-Hellman groups.
本实例是采用JAVA语言编写,使用The Java Pairing Based CryptographyLibrary(JPBC)库来实现的。JPBC库是一组关于非对称密码系统的一套标准API,官方网址http://gas.dia.unisa.it/projects/jpbc/。This example is written in JAVA language and implemented using The Java Pairing Based Cryptography Library (JPBC) library. The JPBC library is a set of standard APIs for asymmetric cryptosystems. The official website is http://gas.dia.unisa.it/projects/jpbc/.
算法KGen(1k)的实现是基于JPBC的Type A型椭圆曲线,在此有官方配置文件a.properties作为输入,因此此实力不需要明显的1k参数。而建立的椭圆曲线性质如下:The implementation of the algorithm KGen(1 k ) is based on the Type A elliptic curve of JPBC, where the official configuration file a.properties is used as input, so this strength does not require obvious 1 k parameters. The properties of the established elliptic curve are as follows:
椭圆曲线采用域Fq上构建的y2=x3+x,其中质数q=3mod4,JPBC库提供了映射e:G11×G2→GT的API,在当前设定的椭圆曲线系统上,映射中的G1=G2,因此满足KGen(1k)定义中的存在同态映射ψ:G2→G1有ψ(P)=G条件。在此,使用上,在椭圆曲线系统初始化完成后,会得到一个Pairing对象,通过Pairing的成员函数,getG1(),getGT()和getZr()可以得到G1、G2和进而通过getG1().newRandomElement()取到G1的生成元P,同理从取S,便可以调用P的成员函数powZn(s)计算Ppub,而通过调用G1或下的成员函数newElementFromHash()可以实现Ω中的两个哈希函数。按算法描述,便可轻易构造出Ω。The elliptic curve adopts y 2 =x 3 +x constructed on the field F q , where the prime number q=3mod4, and the JPBC library provides an API for mapping e:G 1 1×G 2 →G T , in the currently set elliptic curve system Above, G 1 =G 2 in the mapping, so the existence of a homomorphic mapping ψ:G 2 →G 1 in the definition of KGen(1 k ) has the condition of ψ(P)=G. Here, in use, after the initialization of the elliptic curve system is completed, a Pairing object will be obtained. Through the member functions of Pairing, getG1(), getGT() and getZr() can get G 1 , G 2 and Then get the generator P of G 1 through getG1().newRandomElement(), similarly from Taking S, the member function powZn(s) of P can be called to calculate P pub , and by calling G 1 or The member function newElementFromHash() under can realize the two hash functions in Ω. According to the description of the algorithm, Ω can be easily constructed.
同样,纵观7个算法,其中的调用也就基本为以上函数,并无更多区别,在此就不尽数介绍,在7个算法都使用JAVA实现之后,就可以按照下面的步骤进行:Similarly, looking at the 7 algorithms, the calls are basically the above functions, and there is no more difference, so I will not introduce them here. After the 7 algorithms are implemented in JAVA, you can follow the steps below:
步骤1.某客户在一台客户端计算机上完成购物,随即,计算机生成移动代理,之后客户端计算机根据规定好的安全级别下(输入需要的安全指数k)运行算法1,算法输出公共密钥设置U0以及初始密钥S0。将全局设定Ω存储在U0,也就是公钥元素携带着全局信息。Step 1. A customer completes shopping on a client computer. Immediately, the computer generates a mobile agent, and then the client computer runs Algorithm 1 according to the specified security level (input required security index k), and the algorithm outputs a public key set up U 0 and the initial key S 0 . Store the global setting Ω in U 0 , that is, the public key element carries global information.
KGen(1k)算法完成,输出公钥U0和初始密钥S0,进行下一步。The KGen(1 k ) algorithm is completed, output the public key U 0 and the initial key S 0 , and proceed to the next step.
步骤2然后客户端向算法2输入公钥U0、初始密钥S0、CERTj和当前时间片j,然后运行算法2,算法返回S1,进行下一步Step 2 Then the client inputs public key U 0 , initial key S 0 , CERT j and current time slice j to Algorithm 2, then runs Algorithm 2, the algorithm returns S 1 , and proceeds to the next step
步骤3.客户端完成交易,准备发送移动代理进行交易。Step 3. The client completes the transaction and is ready to send the mobile agent for the transaction.
如果当前密钥过期执行步骤4,否则执行步骤5。If the current key has expired, go to step 4, otherwise go to step 5.
步骤4.客户端以上一时期密钥Sj-1,当前时期j,公钥U0以及算法1生成的CERTj为输入,重新运行KUpd,得到下一时间段密钥Sj,进行下一步。Step 4. The client takes the key S j-1 of the previous period, the current period j, the public key U 0 and the CERT j generated by Algorithm 1 as input, re-runs KUpd to obtain the key S j of the next period, and proceeds to the next step .
步骤5.客户端以REQ_C||IDC,sj,CERTj为输入,其中REQ_C||IDC是客户需求和用户ID属于敏感数据运行算法3,输出存到代理携中;随后客户端运行算法6为代理敏感数据签名,输入为敏感数据、当前时间片段j以及当前密钥Sj,输出为j时期的签名,同样存到代理中。进行下一步Step 5. The client takes REQ_C||ID C , s j , and CERT j as input, where REQ_C||ID C is customer demand and user ID belongs to sensitive data and runs Algorithm 3, output Stored in the proxy port; then the client runs Algorithm 6 to sign the sensitive data of the proxy, the input is the sensitive data, the current time segment j and the current key S j , and the output is the signature of period j, which is also stored in the proxy. proceed to the next step
步骤6.商店接收到代理,先用算法7检验代理的合法性,输入为公钥、签名消息、签名和当前时期,如果输出为0,退出交易;如果输出为1,判断是否代理继续在商店间迁移,如果需要,重复该步骤,即进行步骤6;否则进行步骤7。Step 6. When the store receives the proxy, it first checks the legitimacy of the proxy with Algorithm 7. The input is the public key, signature message, signature and the current period. If the output is 0, exit the transaction; if the output is 1, determine whether the proxy continues to be in the store If necessary, repeat this step, that is, go to step 6; otherwise, go to step 7.
步骤7.在此,商店已经做出最终决策,如果完成交易,那么生成CONTRACT和其他交易信息作为输入,运行算法4,输出为最终的不可拆分签名,在此记为Z。保存到代理中,然后使代理迁移回到客户端,进行下一步。Step 7. Here, the store has made a final decision. If the transaction is completed, then generate CONTRACT and other transaction information as input, run Algorithm 4, and the output is the final inseparable signature, which is denoted as Z here. Save into the agent, then make the agent migrate back to the client for the next step.
步骤8.客户端收到交易完成的代理,以U0,Z,j,Msg,REQ_C||IDC为输入,其中Msg为CONTRACT和其他交易信息,运行算法5检验Msg的合法性,如果算法输出为0,则终止交易;否则输出为1,完成交易。Step 8. The client receives the transaction completion agent, takes U 0 , Z, j, Msg, REQ_C||ID C as input, where Msg is CONTRACT and other transaction information, and runs Algorithm 5 to check the legitimacy of Msg, if the algorithm If the output is 0, the transaction is terminated; otherwise, the output is 1, and the transaction is completed.
如果用户仍需要交易,直接跳到步骤3If the user still needs to trade, skip directly to step 3
到此,整个前向安全的不可拆分方法已经完成。At this point, the entire forward-secure indivisible method has been completed.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410407512.XA CN104168115B (en) | 2014-08-19 | 2014-08-19 | The undetachable digital signatures method of forward secrecy |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410407512.XA CN104168115B (en) | 2014-08-19 | 2014-08-19 | The undetachable digital signatures method of forward secrecy |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104168115A CN104168115A (en) | 2014-11-26 |
CN104168115B true CN104168115B (en) | 2017-07-11 |
Family
ID=51911767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410407512.XA Active CN104168115B (en) | 2014-08-19 | 2014-08-19 | The undetachable digital signatures method of forward secrecy |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104168115B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105049453A (en) * | 2015-08-26 | 2015-11-11 | 同济大学 | Signature verification method |
CN108011723B (en) * | 2017-12-13 | 2020-11-03 | 同济大学 | Inseparable digital signature method for intrusion resilience |
CN108259506B (en) * | 2018-02-08 | 2019-04-26 | 上海交通大学 | SM2 white box password implementation method |
CN110233733B (en) * | 2019-06-05 | 2022-02-01 | 同济大学 | Block chain intelligent contract-oriented universal construction method for non-separable digital signature |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707523A (en) * | 2009-12-03 | 2010-05-12 | 电子科技大学 | Forward-secure digital signature method and system capable of balancing cost |
CN101714919A (en) * | 2009-10-29 | 2010-05-26 | 电子科技大学 | Forward-secure digital signature algorithm based on RSA algorithm |
CN101873307A (en) * | 2010-03-19 | 2010-10-27 | 上海交通大学 | Identity-based forward security digital signature method, device and system |
-
2014
- 2014-08-19 CN CN201410407512.XA patent/CN104168115B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714919A (en) * | 2009-10-29 | 2010-05-26 | 电子科技大学 | Forward-secure digital signature algorithm based on RSA algorithm |
CN101707523A (en) * | 2009-12-03 | 2010-05-12 | 电子科技大学 | Forward-secure digital signature method and system capable of balancing cost |
CN101873307A (en) * | 2010-03-19 | 2010-10-27 | 上海交通大学 | Identity-based forward security digital signature method, device and system |
Non-Patent Citations (2)
Title |
---|
前向安全数字签名技术的分析与研究;刘亚丽;《中国优秀硕士学位论文全文数据库》;20090228;全文 * |
基于不可信更新环境的前向安全密码算法研究;李万鹏;《中国优秀硕士学位论文全文数据库》;20140131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104168115A (en) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240250808A1 (en) | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys | |
CN103699851B (en) | A kind of teledata integrity verification method of facing cloud storage | |
CN104184588B (en) | The undetachable digital signatures method of identity-based | |
IL261212A (en) | Personal device security using elliptic curve cryptography for secret sharing | |
TWI807125B (en) | Computer implemented system and method for distributing shares of digitally signed data | |
CN110278082B (en) | Group member issuing method and device for group digital signature | |
Paquin et al. | U-prove cryptographic specification v1. 1 | |
CN104023044A (en) | Cloud-storage data lightweight-level public auditing method with privacy protection | |
CN105376064B (en) | A kind of anonymity message authentication system and its message signing method | |
Wang et al. | Dynamic scalable elliptic curve cryptographic scheme and its application to in-vehicle security | |
CN104168115B (en) | The undetachable digital signatures method of forward secrecy | |
CN106788980A (en) | Safe encryption method in a kind of matrix multiplication sub-contract management towards cloud computing | |
CN111447065A (en) | Active and safe SM2 digital signature two-party generation method | |
CN110233733A (en) | Undetachable digital signatures general construction method towards block chain intelligence contract | |
Gao et al. | An efficient certificateless public auditing scheme in cloud storage | |
US20240430102A1 (en) | Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements | |
CN112511314B (en) | Recoverable message blind signature generation method based on identity | |
Xia et al. | An improved privacy preserving construction for data integrity verification in cloud storage | |
CN108011723B (en) | Inseparable digital signature method for intrusion resilience | |
Zhou et al. | A privacy protection scheme for permissioned blockchain based on trusted execution environment | |
Ma et al. | Efficient pairing-free attribute-based blind signature scheme based on ordered binary decision diagram | |
Lin et al. | Research on authentication and key negotiation based on smart water environment | |
CN107947944A (en) | Incremental signature method based on lattice | |
Li et al. | [Retracted] Hardware Optimization and System Design of Elliptic Curve Encryption Algorithm Based on FPGA | |
CN114764510A (en) | Anti-quantum-computation electronic contract signing system and method |
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 |