CN111342973B - 一种安全的pki与ibc之间的双向异构数字签名方法 - Google Patents

一种安全的pki与ibc之间的双向异构数字签名方法 Download PDF

Info

Publication number
CN111342973B
CN111342973B CN202010122735.7A CN202010122735A CN111342973B CN 111342973 B CN111342973 B CN 111342973B CN 202010122735 A CN202010122735 A CN 202010122735A CN 111342973 B CN111342973 B CN 111342973B
Authority
CN
China
Prior art keywords
signer
signature
verifier
representing
user
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
Application number
CN202010122735.7A
Other languages
English (en)
Other versions
CN111342973A (zh
Inventor
孟博
王潇潇
王德军
王俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South Central Minzu University
Original Assignee
South Central University for Nationalities
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South Central University for Nationalities filed Critical South Central University for Nationalities
Priority to CN202010122735.7A priority Critical patent/CN111342973B/zh
Publication of CN111342973A publication Critical patent/CN111342973A/zh
Application granted granted Critical
Publication of CN111342973B publication Critical patent/CN111342973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种安全的PKI与IBC之间的双向异构数字签名方法。本发明通过私钥生成中心生成***参数,并公开***参数;公钥基础设施环境的用户与基于身份加密环境的用户生成各自的公钥、私钥;公钥基础设施环境的用户为签名者,基于身份加密环境的用户为验证者,签名者生成签名,发送给验证者,验证者验证签名,验证通过,接受消息,否则,拒绝接受消息;基于身份加密的用户为签名者,公钥基础设施环境的用户为验证者,签名者生成签名,发送给验证者,验证者验证签名,验证通过,接受消息,否则,拒绝接受消息。本发明保护了公钥基础设施和基于身份加密环境的用户之间通信的安全性、正确性、不可否认性、不可伪造性,达到了安全和隐私要求。

Description

一种安全的PKI与IBC之间的双向异构数字签名方法
技术领域
本发明属于用户通信安全的技术领域,尤其涉及一种安全的PKI与IBC之间的双向异构数字签名方法。
背景技术
公钥密码设施(Public Key Infrasture,PKI),是当前部署传统的公钥密码***(Public Key Cryptography,PKC)的主要手段,用户的身份与证书绑定,一个用户的身份与其公钥之间的绑定关系是通过数字证书形式获得的,证书由可信的证书权威机构(Certificate Authority,CA) 为用户颁发。所有的数据经证书权威机构用自己的私钥签名后就形成证书。证书权威机构在给用户发放证书之前,先验证该用户身份的真实性。任何一个通信方对证书权威机构信任,都可以通过验证对方数字证书上证书权威机构的数字签名来建立起与对方的信任关系,并且获得对方的公钥以备使用。因此,PKI中存在证书存储管理以及验证证书合法性问题。
基于身份加密(identity based cryptography,IBC),为了简化证书管理问题,Shamir于1984 年首次提出了基于身份的公钥密码***(ID-PKC)的概念,指出关于公钥密码***中密钥真实性问题,可以不使用证书而得到解决。在ID-PKC中,每个用户都有一个身份信息ID,一个用户的公钥直接由他的身份信息ID导出,相应的私钥则由一个被称为私钥生成中心 (Private Key Generation,PKG)的可信第三方利用其主密钥为该用户生成。私钥生成中心在证实了用户身份后,才会为他计算出相应的私钥并发送给他。这意味着用户获得了一种确保其身份和公钥之间捆绑关系的内在证明。与PKI相比,用户的密钥基于用户的身份,不存在证书存储管理以及验证证书合法性问题。
数字签名,可以实现完整性、认证性和不可否认性。发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用对方的公钥对此报文摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用接收方的私钥来对报文附加的数字签名进行解密,如果这两个摘要相同,接收方可以确认该数字签名来自发送方。
2010年前,用户基于同一种密码体制进行通信,基于公钥基础设施环境,或者基于身份环境,或者基于无证书环境,但是全世界的通信方采用不同的密码体制,因此,只在一种环境中通信,无法再满足用户的通信要求。2010年,Sun和Li提出异构签密思想,异构签密思想应用于不同密码***的通信,提出一种基于传统公钥密码体制和基于身份公钥密码体制之间的签密方案,实现了异构密码***之间的通信。2013年,Fu等构造了一个多接受者异构签密方案,同年,Li等提出新的IDPKC→TPKI型和TPKI→IDPKC型异构签密方案。 2016年,张玉磊等提出CLPKC→TPKI异构签密方案,该方案满足密文匿名性,可以有效地保护收发双方的身份隐私,使用不同的密码***参数,更接近于实际应用环境,与已有异构签密方案相比,该方案的效率较高,适合于收发双方身份保密和带宽受限的应用需求。异构签密方案中的签密在一个签密步骤中,对应地,有一个解签密步骤,签密步骤与解签密步骤中运用点乘运算、异或运算、哈希函数、双线性对等知识。
异构签密方案,对消息进行异或运算,对消息加密,此外,还对消息进行签名,在很多通信的场合,消息的发送者与接收者之间进行消息通信,只需要确定消息的来源是否为发送者,确定消息没有被篡改,不需要对消息做加密运算,也是异构通信技术中存在的问题。数字签名,对发送的消息实现认证。与异构签密方案和传统的数字签名技术相比,一种安全的 PKI与IBC之间的双向异构数字签名方法融合了异构签密和数字签名两种思想,在异构环境下,对消息的数字签名,实现了对消息源的认证。
因此,首次提出异构数字签名的概念,在异构的环境下实现对消息的数字签名。提出一种安全的PKI与IBC之间的双向异构数字签名方法,是本领域技术人员需要解决的技术问题。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种安全的PKI与IBC之间的双向异构数字签名方法,实现公钥基础设施环境PKI与基于身份环境IBC之间的双向异构数字签名,实现两种密码体制环境下用户的通信。
技术方案:一种安全的PKI与IBC之间的双向异构数字签名方法,包括以下步骤:
步骤1:私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对,定义两个无碰撞哈希函数,从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥,公开***参数;
步骤2:公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书,从阶数为素数的整数群中随机选择一个数字作为公钥基础设施环境中用户的私钥,计算公钥基础设施环境中用户的公钥,基于身份加密环境中用户向私钥生成中心提交用户身份,计算基于身份加密环境中用户的私钥,再回传至基于身份加密环境中用户从而得到公钥;
步骤3:若公钥基础设施环境中的用户作为签名者用于生成签名,且基于身份加密环境中的用户作为验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名,签名者计算双线性对的值,签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者,验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值,验证者通过组合消息计算验证者的签名验证,验证者将验证者的签名验证与签名者生成签名的第一部分签名进行比较,判断是否接收给定的消息;
步骤4:若基于身份加密环境中的用户作为签名者拥有生成签名,公钥基础设施环境中的用户作为验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名签名者计算签名者双线性对的值,签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者,验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值,验证者通过组合消息计算验证者的签名验证,验证者将验证者的双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息;
作为优选,步骤1中所述私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对为:
选择阶为素数q的循环加法群即G1和循环乘法群即G2,双线性对e,e:G1×G1→G2
所述定义两个无碰撞哈希函数:
H1:{0,1}*→G1
Figure BDA0002393484480000021
其中,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数,{0,1}*表示长度为任意比特的二进制序列组合的集合,
Figure BDA0002393484480000022
表示阶为q的整数群除去0元素,
Figure BDA0002393484480000023
H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000024
的无碰撞哈希函数, {0,1}n表示长度为n比特的二进制序列组合的集合;
所述从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥为:
随机选取一个
Figure BDA0002393484480000025
s为主密钥,s保密,设置主公钥Ppub=sP,P是G1的生成元, G1是阶为素数q的循环加法群;
所述公开***参数为:
param={k,q,G1,G2,P,e,H1,H2,Ppub}
其中,param为***参数,k为输入安全参数,保留s,s为私钥生成中心的主密钥,P是G1的生成元,G1是阶为素数q的循环加法群;
作为优选,步骤2中所述公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书为:
公钥基础设施环境中的用户A向证书权威机构提交IDA,IDA为用户A的身份,证书权威机构给用户A颁发证书;
所述从阶数为q的整数群
Figure BDA0002393484480000026
中随机选择一个数字作为公钥基础设施环境中用户的私钥为:
用户A随机选取一个随机数为
Figure BDA0002393484480000027
Figure BDA0002393484480000028
表示阶数为q的整数群除去0元素,
Figure BDA0002393484480000029
设置x作为用户A的私钥,即SKA=x,SKA为公钥基础设施环境中用户A的私钥;
所述计算公钥基础设施环境中用户的公钥为:
PKA=xP,P是G1的生成元,x作为用户A的私钥,G1为阶为素数q的循环加法群;
所述基于身份加密环境中用户向私钥生成中心提交用户身份为:
基于身份加密环境中用户B向私钥生成中心提交IDB,IDB为基于身份加密环境中用户 B的身份;
所述计算基于身份加密环境中用户的私钥为:
私钥生成中心计算基于身份加密环境中用户B的私钥:
SKB=sH1(IDB),发送给用户B;
其中,基于身份加密环境中用户B的私钥为SKB,s为私钥生成中心的主密钥,IDB为基于身份加密环境中用户B的身份,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数;
所述再回传至基于身份加密环境中用户从而得到公钥为:
PKB=H1(IDB)为基于身份加密环境中用户B的公钥;
作为优选,步骤3中所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名:
签名者随机选择
Figure BDA0002393484480000031
计算R1=r1P,签名者利用自己的公钥计算R2=r2PKA
其中,
Figure BDA0002393484480000032
表示是从
Figure BDA0002393484480000033
中任意选取的一个元素,P是G1的一个生成元,G1是阶为素数q的循环加法群,PKA表示签名者的公钥,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名;
步骤3所述签名者计算签名者双线性对的值:
W1=e(T,U)
T=SKAPpubP
U=r2PKB
其中,W1表示签名者双线性对的值,T表示签名者双线性对的值的第一个输入值,U表示签名者双线性对的值的第二个输入值,P是G1的一个生成元,G1是阶为素数q的循环加法群,SKA表示签名者的私钥,Ppub为私钥生成中心的主密钥,PKB表示验证者的公钥;
步骤3所述签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名:
S=r1+SKAH2(W1,m)
其中,r1为随机数,SKA表示签名者的私钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000034
的无碰撞哈希函数,m为给定的消息,W1表示签名者双线性对的值;
步骤3所述签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者:
所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,σ表示签名者生成签名,m表示给定的消息;
步骤3所述验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值:
W2=e(N,SKB)
N=R2P
其中,P是G1的一个生成元,G1是阶为素数q的循环加法群,N表示验证者双线性对的值的第一个输入值,R2表示签名者生成签名的第二部分签名,SKB表示验证者的私钥,是W2的第二个输入值,W2表示验证者双线性对的值;
步骤3所述验证者通过组合消息计算验证者的签名验证为:
V=SP-H2(W2,m)PKA
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群,PKA表示签名者的公钥,H2表示阶为素数q的循环乘法群映射到整数群Zq* 的无碰撞哈希函数,m表示给定的消息,W2表示验证者双线性对的值;
步骤3所述验证者将验证者的签名验证与签名者生成签名的第一部分签名进行比较,判断是否接收给定的消息:
所述验证者验证V=R1等式是否;
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符。
作为优选,步骤4所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名:
签名者随机选择
Figure BDA0002393484480000041
计算R1=r1P,签名者利用自己的公钥计算R2=r2PKB
其中,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2表示随机数,PKB表示签名者B的公钥,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名;
步骤4所述签名者计算签名者双线性对的值:
W1=e(T,U)
T=SKBP
U=r2PKA
其中,W1表示签名者双线性对的值,T表示签名者双线性对的值的第一个输入值,U表示签名者双线性对的值的第二个输入值,SKB表示签名者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2表示随机数,PKA表示验证者的公钥;
步骤4所述签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名:
S=r1PKB+SKBH2(W1,m)
其中,S表示签名者生成签名的第二部分签名,r1表示随机数,PKB表示签名者的公钥, SKB表示签名者的私钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000042
的无碰撞哈希函数,W1表示签名者双线性对的值,m表示给定消息;
步骤4所述签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者:
所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,σ表示签名者生成签名,m表示给定的消息,δ表示组合消息;
步骤4所述验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值:
Figure BDA0002393484480000043
N=R2Ppub
其中,W2表示验证者双线性对的值,N表示验证者双线性对的值的第一个输入值,P是 G1的一个生成元,G1是阶为素数q的循环加法群,SKA表示验证者A的私钥,R2表示签名者生成签名的第二部分签名,Ppub为私钥生成中心的主密钥;
步骤4所述验证者通过组合消息计算验证者的签名验证为:
步骤4所述验证者将验证者的双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息:
双线性对的第一个验证值:
e(S,P)
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群;
双线性对的第二个验证值:
e(R1+hPpub,PKB)
h=H2(W2,m)
其中,R1表示签名者生成签名的第一部分签名,h表示哈希函数H2()的输入为验证者双线性对的值W2与给定的消息m,Ppub表示私钥生成中心的主公钥,PKB表示签名者B的公钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000051
的无碰撞哈希函数,W2表示签名计算验证者双线性对的值,m表示给定的消息;
所述验证者验证e(S,P)=e(R1+hPpub,PKB)等式是否成立:
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符。
本发明在一个逻辑步骤内实现认证性和不可伪造性。考虑到公钥基础设施与基于身份加密环境中计算资源,异构环境适合这样的特性,在异构数字签名方案中,通信的一方基于公钥基础设施环境,可以负担证书管理问题。通信的另一方基于身份加密环境,不存在证书管理问题。
本发明的主要益处在于:在异构环境下,实现对消息的数字签名,不需要对消息加密,减少了加密的运算量,只需要验证签名者的签名,确定消息的来源,并且实现通信的安全性、正确性、不可否认性、不可伪造性,达到一定的安全和隐私要求。
附图说明
图1:第一实施例的通信。
图2:第二实施例的通信。
图3:第一实施例的签名者生成签名。
图4:第一实施例的验证者验证签名。
图5:第二实施例的签名者生成签名。
图6:第二实施例的验证者验证签名。
图7:第一实施例的不可伪造性分析一。
图8:第一实施例的不可伪造性分析二。
图9:第一实施例的不可伪造性分析三。
图10:第二实施例的不可伪造性分析一。
图11:第二实施例的不可伪造性二。
图12:第二实施例的不可伪造性分析三。
图13:本发明方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面根据签名者和验证者的环境不同,结合两个具体实施例。
第一实施例为:若公钥基础设施环境中的用户为签名者,基于身份加密环境中的用户为验证者;
第二实施例为:若基于身份加密环境中的用户为签名者,公钥基础设施环境中的用户为验证者。
本发明涉及的第一实施例具体步骤为:
步骤1:私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对,定义两个无碰撞哈希函数,从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥,公开***参数;
所述私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对为:
选择阶为素数q的循环加法群即G1和循环乘法群即G2,双线性对e,e:G1×G1→G2
所述定义两个无碰撞哈希函数:
H1:{0,1}*→G1
Figure BDA0002393484480000061
其中,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数,{0,1}*表示长度为任意比特的二进制序列组合的集合,
Figure BDA0002393484480000062
表示阶为q的整数群除去0元素,
Figure BDA0002393484480000063
H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000064
的无碰撞哈希函数, {0,1}n表示长度为n比特的二进制序列组合的集合;
所述从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥为:
随机选取一个
Figure BDA0002393484480000065
s为主密钥,s保密,设置主公钥Ppub=sP,P是G1的生成元,G1是阶为素数q的循环加法群;
所述公开***参数为:
param={k,q,G1,G2,P,e,H1,H2,Ppub}
其中,param为***参数,k为输入安全参数,保留s,s为私钥生成中心的主密钥,P是G1的生成元,G1是阶为素数q的循环加法群;
步骤2:公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书,从阶数为素数的整数群中随机选择一个数字作为公钥基础设施环境中用户的私钥,计算公钥基础设施环境中用户的公钥,基于身份加密环境中用户向私钥生成中心提交用户身份,计算基于身份加密环境中用户的私钥,再回传至基于身份加密环境中用户从而得到公钥;
所述公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书为:
公钥基础设施环境中的用户A向证书权威机构提交IDA,IDA为用户A的身份,证书权威机构给用户A颁发证书,参见图1;
所述从阶数为q的整数群
Figure BDA0002393484480000066
中随机选择一个数字作为公钥基础设施环境中用户的私钥为:
用户A随机选取一个随机数为
Figure BDA0002393484480000067
Figure BDA0002393484480000068
表示阶数为q的整数群除去0元素,
Figure BDA0002393484480000069
设置x作为用户A的私钥,即SKA=x,SKA为公钥基础设施环境中用户A的私钥;
所述计算公钥基础设施环境中用户的公钥为:
PKA=xP,P是G1的生成元,x作为用户A的私钥,G1为阶为素数q的循环加法群;
所述基于身份加密环境中用户向私钥生成中心提交用户身份为:
基于身份加密环境中用户B向私钥生成中心提交IDB,IDB为基于身份加密环境中用户 B的身份,参见图1;
所述计算基于身份加密环境中用户的私钥为:
私钥生成中心计算基于身份加密环境中用户B的私钥:
SKB=sH1(IDB),发送给用户B;
其中,基于身份加密环境中用户B的私钥为SKB,s为私钥生成中心的主密钥,IDB为基于身份加密环境中用户B的身份,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数;
所述再回传至基于身份加密环境中用户从而得到公钥为:
PKB=H1(IDB)为基于身份加密环境中用户B的公钥;
步骤3:若公钥基础设施环境中的用户作为签名者用于生成签名,且基于身份加密环境中的用户作为验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名,签名者计算双线性对的值,签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者,验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值,验证者通过组合消息计算验证者的签名验证,验证者将验证者的签名验证与签名者生成签名的第一部分签名进行比较,判断是否接收给定的消息;
步骤3所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名:
签名者随机选择
Figure BDA0002393484480000071
计算R1=r1P,签名者利用自己的公钥计算R2=r2PKA
其中,
Figure BDA0002393484480000072
表示是从
Figure BDA0002393484480000073
中任意选取的一个元素,P是G1的一个生成元,G1是阶为素数q的循环加法群,PKA表示签名者的公钥,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,参见图3;
步骤3所述签名者计算签名者双线性对的值:
W1=e(T,U)
T=SKAPpubP
U=r2PKB
其中,W1表示签名者双线性对的值,T表示签名者双线性对的值的第一个输入值,U表示签名者双线性对的值的第二个输入值,P是G1的一个生成元,G1是阶为素数q的循环加法群,SKA表示签名者的私钥,Ppub为私钥生成中心的主密钥,PKB表示验证者的公钥,参见图3;
步骤3所述签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名:
S=r1+SKAH2(W1,m)
其中,r1为随机数,SKA表示签名者的私钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000074
的无碰撞哈希函数,m为给定的消息,W1表示签名者双线性对的值,参见图3;
步骤3所述签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者:
所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,σ表示签名者生成签名,m表示给定的消息,参见图3;
步骤3所述验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值:
W2=e(N,SKB)
N=R2P
参见图4,其中,P是G1的一个生成元,G1是阶为素数q的循环加法群,N表示验证者双线性对的值的第一个输入值,R2表示签名者生成签名的第二部分签名,SKB表示验证者的私钥,是W2的第二个输入值,W2表示验证者双线性对的值;
步骤3所述验证者通过组合消息计算验证者的签名验证为:
V=SP-H2(W2,m)PKA
其中,V表示验证者的签名验证,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群,PKA表示签名者的公钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000081
的无碰撞哈希函数,m表示给定的消息,W2表示验证者双线性对的值,参见图4;
步骤3所述验证者将验证者的签名验证与签名者生成签名的第一部分签名进行比较,判断是否接收给定的消息:
所述验证者验证V=R1等式是否;
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符,参见图4。
分析不可伪造性,签名者的签名改变,给定的消息不变,参见图7。
分析不可伪造性,签名者的签名不变,给定的消息改变,参见图8。
分析不可伪造性,签名者的签名与给定的消息改变,参见图9。
其中,R'1表示伪造的签名者签名的第一部分,R'2表示伪造签名者的签名的第二部分, S'表示伪造的签名者的签名的第三部分,V'表示签名验证的伪造,N'表示验证者双线性对的值的第一个输入值的伪造,W'2表示验证者双线性对的值的伪造,SK'B表示用户B的虚假私钥,m'表示非给定的消息。
本发明涉及的第二实施例具体步骤为:
步骤1:私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对,定义两个无碰撞哈希函数,从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥,公开***参数;
所述私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对为:
选择阶为素数q的循环加法群即G1和循环乘法群即G2,双线性对e,e:G1×G1→G2
所述定义两个无碰撞哈希函数:
H1:{0,1}*→G1
Figure BDA0002393484480000082
其中,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数,{0,1}*表示长度为任意比特的二进制序列组合的集合,
Figure BDA0002393484480000083
表示阶为q的整数群除去0元素,
Figure BDA0002393484480000084
H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000085
的无碰撞哈希函数, {0,1}n表示长度为n比特的二进制序列组合的集合;
所述从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥为:
随机选取一个
Figure BDA0002393484480000086
s为主密钥,s保密,设置主公钥Ppub=sP,P是G1的生成元, G1是阶为素数q的循环加法群;
所述公开***参数为:
param={k,q,G1,G2,P,e,H1,H2,Ppub}
其中,param为***参数,k为输入安全参数,保留s,s为私钥生成中心的主密钥,P是G1的生成元,G1是阶为素数q的循环加法群;
步骤2:公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书,从阶数为素数的整数群中随机选择一个数字作为公钥基础设施环境中用户的私钥,计算公钥基础设施环境中用户的公钥,基于身份加密环境中用户向私钥生成中心提交用户身份,计算基于身份加密环境中用户的私钥,再回传至基于身份加密环境中用户从而得到公钥;
所述公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书为:
公钥基础设施环境中的用户A向证书权威机构提交IDA,IDA为用户A的身份,证书权威机构给用户A颁发证书,参见图2;
所述从阶数为q的整数群
Figure BDA0002393484480000087
中随机选择一个数字作为公钥基础设施环境中用户的私钥为:
用户A随机选取一个随机数为
Figure BDA0002393484480000088
Figure BDA0002393484480000089
表示阶数为q的整数群除去0元素,
Figure BDA00023934844800000810
设置x作为用户A的私钥,即SKA=x,SKA为公钥基础设施环境中用户A的私钥;
所述计算公钥基础设施环境中用户的公钥为:
PKA=xP,P是G1的生成元,x作为用户A的私钥,G1为阶为素数q的循环加法群;
所述基于身份加密环境中用户向私钥生成中心提交用户身份为:
基于身份加密环境中用户B向私钥生成中心提交IDB,IDB为基于身份加密环境中用户 B的身份,参见图2;
所述计算基于身份加密环境中用户的私钥为:
私钥生成中心计算基于身份加密环境中用户B的私钥:
SKB=sH1(IDB),发送给用户B;
其中,基于身份加密环境中用户B的私钥为SKB,s为私钥生成中心的主密钥,IDB为基于身份加密环境中用户B的身份,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数;
所述再回传至基于身份加密环境中用户从而得到公钥为:
PKB=H1(IDB)为基于身份加密环境中用户B的公钥;
步骤3:若基于身份加密环境中的用户作为签名者拥有生成签名,公钥基础设施环境中的用户作为验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名签名者计算签名者双线性对的值,签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者,验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值,验证者通过组合消息计算验证者的签名验证,验证者将验证者的双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息;
所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名:
签名者随机选择
Figure BDA0002393484480000091
计算R1=r1P,签名者利用自己的公钥计算R2=r2PKB
其中,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2表示随机数,PKB表示签名者B的公钥,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,参见图5;
所述签名者计算签名者双线性对的值:
W1=e(T,U)
T=SKBP
U=r2PKA
其中,W1表示签名者双线性对的值,T表示签名者双线性对的值的第一个输入值,U表示签名者双线性对的值的第二个输入值,SKB表示签名者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2表示随机数,PKA表示验证者的公钥,参见图5;
所述签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名:
S=r1PKB+SKBH2(W1,m)
其中,S表示签名者生成签名的第二部分签名,r1表示随机数,PKB表示签名者的公钥,SKB表示签名者的私钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000092
的无碰撞哈希函数,W1表示签名者双线性对的值,m表示给定消息,参见图5;
所述签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者:
所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,σ表示签名者生成签名,m表示给定的消息,δ表示组合消息,参见图5;
所述验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值:
Figure BDA0002393484480000101
N=R2Ppub
其中,W2表示验证者双线性对的值,N表示验证者双线性对的值的第一个输入值,P是 G1的一个生成元,G1是阶为素数q的循环加法群,SKA表示验证者A的私钥,R2表示签名者生成签名的第二部分签名,Ppub为私钥生成中心的主密钥,参见图6;
所述验证者通过组合消息计算验证者的签名验证为:
所述验证者将验证者的双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息:
双线性对的第一个验证值:
e(S,P)
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群,参见图6;
双线性对的第二个验证值:
e(R1+hPpub,PKB)
h=H2(W2,m)
其中,R1表示签名者生成签名的第一部分签名,h表示哈希函数H2()的输入为验证者双线性对的值W2与给定的消息m,Ppub表示私钥生成中心的主公钥,PKB表示签名者B的公钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure BDA0002393484480000102
的无碰撞哈希函数,W2表示签名计算验证者双线性对的值,m表示给定的消息,参见图6;
所述验证者验证e(S,P)=e(R1+hPpub,PKB)等式是否成立:
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符,参见图6。
分析不可伪造性,签名者的签名改变,给定的消息不变,参见图10。
分析不可伪造性,签名者的签名不变,给定的消息改变,参见图11。
分析不可伪造性,签名者的签名与给定的消息改变,参见图12。
其中,R'1表示伪造的签名者签名的第一部分,R'2表示伪造签名者的签名的第二部分, S'表示伪造的签名者的签名的第三部分,N'表示验证者双线性对的值的第一个输入值的伪造,SK'A表示用户A的虚假私钥,W'2表示验证者双线性对的值的伪造,图10中,h表示哈希函数H2()的输入为验证者双线性对的值的伪造W'2与给定的消息m,图11中,h表示哈希函数H2()的输入为验证者双线性对的值W2与非给定的消息m',图12中,h表示哈希函数H2()的输入为验证者双线性对的值的伪造W'2与非给定的消息m',m'表示非给定的消息。
本发明保护了签名者的签名不被泄露、篡改,确保了签名者不能否认已经发送的签名,验证者不能否认收到签名,攻击者无法伪造签名,达到了一定的安全和隐私要求,其说明如下:
安全性:方案是安全的,攻击者没有签名者的私钥,无法生成消息m的签名σ。攻击者没有验证者的私钥,无法验证消息m的签名σ。所以,本方案可以实现安全性。
正确性:理论是正确的,在正常通信的情况下,验证者可以验证签名的真实性,因为 W1=W2,W1与m做连接后的哈希函数值H2()相等,即H2(W1,m)=H2(W2,m),V=R1=r1P。所以,本方案可以实现正确性。
不可否认性:生成签名步骤中,生成的签名中包含签名者的密钥信息,签名者不能否认自己的签名。验证签名步骤中,验证过程用到验证者的私钥,验证者不能否认自己收到签名。所以,本方案可以实现不可否认性。
不可伪造性:在双向异构数字签名方法中,若签名者属于基于公钥基础设施环境的用户,验证者属于基于身份加密环境的用户,攻击者无法伪造签名者的签名σ或者给定的消息 m,使得验证签名δ=(σ,m)的等式V=R1成立,即验证失败。A的私钥SKA只有A自己知道,攻击者不知道A的真实私钥SKA,攻击者只知道A的私钥为A的虚假私钥SKA',并且 SKA≠SKA',伪造的签名者签名σ',给定的消息m改变为非给定的消息m',W1≠W2,哈希函数的值发生改变,不相等,即H2(W1,m)≠H2(W2,m),无法验证签名。
分析方案的不可伪造性,分为三种情况:
签名者的签名σ改变,给定的消息m不变的情况参见图7;
签名者的签名σ不变,给定的消息m改变的情况参见图8;
签名者的签名σ与给定的消息m都改变的情况参见图9。
上述三种情况下,攻击者伪造的签名者签名,验证等式不成立,因此,验证伪造的签名者签名σ'不成功。若签名者属于基于身份加密环境的用户,验证者属于基于公钥基础设施环境的用户,攻击者无法伪造签名σ或者消息m,使得验证等式 e(S,P)=e(R1+hPpub,PKB)成立,即验证失败。B的私钥SKB只有B自己知道,攻击者C不知道B的真实私钥SKB,攻击者只知道B的私钥为B的虚假私钥SKB',并且SKB≠SKB',伪造的签名者的签名σ',给定的消息m改变为非给定的信息m',W1≠W2,哈希函数的值发生改变,不相等,H2(W1,m)≠H2(W2,m),无法验证签名。
分析方案的不可伪造性,分为三种情况:
签名者的签名σ改变,给定的消息m不变的情况参见图10;
签名者的签名σ不变,给定的消息m改变的情况参见图11;
签名者的签名σ与给定的消息m都改变的情况参见图12。上述三种情况下,攻击者C伪造的签名者的签名,验证等式不成立,验证伪造的签名σ'不成功。所以,本方案可以实现不可伪造性。
本发明方法流程图参见图13。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (3)

1.一种安全的PKI与IBC之间的双向异构数字签名方法,其特征在于,包括以下步骤:
步骤1:私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对,定义两个无碰撞哈希函数,从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥,公开***参数;
步骤2:公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书,从阶数为素数的整数群中随机选择一个数字作为公钥基础设施环境中用户的私钥,计算公钥基础设施环境中用户的公钥,基于身份加密环境中用户向私钥生成中心提交用户身份,计算基于身份加密环境中用户的私钥,再回传至基于身份加密环境中用户从而得到公钥;
步骤3:若公钥基础设施环境中的用户作为签名者用于生成签名,且基于身份加密环境中的用户作为验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名,签名者计算双线性对的值,签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者,验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值,验证者通过组合消息计算验证者的签名验证,验证者将验证者的签名验证与签名者生成签名的第一部分签名进行比较,判断是否接收给定的消息;
步骤4:若基于身份加密环境中的用户作为签名者用于生成签名,公钥基础设施环境中的用户作为验证者用于验证签名,签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名,签名者计算签名者双线性对的值,签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名,签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者,验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值,验证者通过组合消息计算验证者的签名验证,验证者将验证者的双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息;
步骤3中所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名为:
签名者随机选择
Figure FDA0002937936630000011
计算R1=r1P,签名者利用自己的公钥计算R2=r2PKA
其中,
Figure FDA0002937936630000012
表示是从
Figure FDA0002937936630000013
中任意选取的一个元素,P是G1的一个生成元,G1是阶为素数q的循环加法群,PKA表示签名者的公钥,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名;
步骤3所述签名者计算签名者双线性对的值为:
W1=e(T,U)
T=SKAPpubP
U=r2PKB
其中,W1表示签名者双线性对的值,T表示签名者双线性对的值的第一个输入值,U表示签名者双线性对的值的第二个输入值,P是G1的一个生成元,G1是阶为素数q的循环加法群,SKA表示签名者的私钥,Ppub为私钥生成中心的主公钥,PKB表示验证者的公钥;
步骤3所述签名者利用其私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名为:
S=r1+SKAH2(W1,m)
其中,r1为随机数,SKA表示签名者的私钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure FDA0002937936630000014
的无碰撞哈希函数,m为给定的消息,W1表示签名者双线性对的值;
步骤3所述签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者为:
所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,σ表示签名者生成签名,m表示给定的消息;
步骤3所述验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值为:
W2=e(N,SKB)
N=R2P
其中,P是G1的一个生成元,G1是阶为素数q的循环加法群,N表示验证者双线性对的值的第一个输入值,R2表示签名者生成签名的第二部分签名,SKB表示验证者的私钥,是W2的第二个输入值,W2表示验证者双线性对的值;
步骤3所述验证者通过组合消息计算验证者的签名验证为:
V=SP-H2(W2,m)PKA
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群,PKA表示签名者的公钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure FDA0002937936630000021
的无碰撞哈希函数,m表示给定的消息,W2表示验证者双线性对的值;
步骤3所述验证者将验证者的签名验证与签名者生成签名的第一部分签名进行比较,判断是否接收给定的消息为:
所述验证者验证V=R1等式是否成立;
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符;
步骤4所述签名者从阶数为素数的整数群中随机选择两个数字分别用于计算签名者生成签名的第一部分签名以及第二部分签名为:
签名者随机选择
Figure FDA0002937936630000022
计算R1=r1P,签名者利用自己的公钥计算R2=r2PKB
其中,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2表示随机数,PKB表示签名者B的公钥,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名;
步骤4所述签名者计算签名者双线性对的值为:
W1=e(T,U)
T=SKBP
U=r2PKA
其中,W1表示签名者双线性对的值,T表示签名者双线性对的值的第一个输入值,U表示签名者双线性对的值的第二个输入值,SKB表示签名者的私钥,P是G1的一个生成元,G1是阶为素数q的循环加法群,r2表示随机数,PKA表示验证者的公钥;
步骤4所述签名者利用其公钥、私钥以及给定的消息,通过哈希函数、点乘运算,计算签名者生成签名的第三部分签名为:
S=r1PKB+SKBH2(W1,m)
其中,S表示签名者生成签名的第二部分签名,r1表示随机数,PKB表示签名者的公钥,SKB表示签名者的私钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure FDA0002937936630000023
的无碰撞哈希函数,W1表示签名者双线性对的值,m表示给定消息;
步骤4所述签名者通过签名者生成签名、给定的消息构建组合消息发送给验证者为:
所述签名者生成签名为:
σ=(R1,R2,S)
所述组合消息为:
δ=(σ,m)
其中,R1表示签名者生成签名的第一部分签名,R2表示签名者生成签名的第二部分签名,S表示签名者生成签名的第三部分签名,σ表示签名者生成签名,m表示给定的消息,δ表示组合消息;
步骤4所述验证者通过组合消息中签名者生成签名的第二部分签名计算验证者双线性对的值为:
Figure FDA0002937936630000031
N=R2Ppub
其中,W2表示验证者双线性对的值,N表示验证者双线性对的值的第一个输入值,P是G1的一个生成元,G1是阶为素数q的循环加法群,SKA表示验证者A的私钥,R2表示签名者生成签名的第二部分签名,Ppub为私钥生成中心的主公钥;
步骤4所述验证者通过组合消息计算验证者的签名验证为:
步骤4所述验证者将验证者的双线性对的第一个验证值与双线性对的第二个验证值进行比较,判断是否接收给定的消息为:
双线性对的第一个验证值:
e(S,P)
其中,S表示签名者生成签名的第三部分签名,P是G1的一个生成元,G1是阶为素数q的循环加法群;
双线性对的第二个验证值:
e(R1+hPpub,PKB)
h=H2(W2,m)
其中,R1表示签名者生成签名的第一部分签名,h表示哈希函数H2()的输入为验证者双线性对的值W2与给定的消息m,Ppub表示私钥生成中心的主公钥,PKB表示签名者B的公钥,H2表示阶为素数q的循环乘法群映射到整数群
Figure FDA0002937936630000032
的无碰撞哈希函数,W2表示签名计算验证者双线性对的值,m表示给定的消息;e为双线性对;
Figure FDA0002937936630000033
表示阶为素数q的整数群除去0元素,
Figure FDA0002937936630000034
所述验证者验证e(S,P)=e(R1+hPpub,PKB)等式是否成立:
若等式成立,接受m,输出正确提示符;否则拒绝接受m,输出错误提示符。
2.根据权利要求1所述的安全的PKI与IBC之间的双向异构数字签名方法,其特征在于:步骤1中所述私钥生成中心选择阶为素数的循环加法群以及循环乘法群以生成双线性对为:
选择阶为素数q的循环加法群即G1和循环乘法群即G2,双线性对e,e:G1×G1→G2
所述定义两个无碰撞哈希函数:
H1:{0,1}*→G1
Figure FDA0002937936630000035
其中,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数,{0,1}*表示长度为任意比特的二进制序列组合的集合,
Figure FDA0002937936630000036
表示阶为q的整数群除去0元素,
Figure FDA0002937936630000037
H2表示阶为素数q的循环乘法群映射到整数群
Figure FDA0002937936630000038
的无碰撞哈希函数,{0,1}n表示长度为n比特的二进制序列组合的集合;
所述从阶为素数的整数群中随机选取一个数字作为主密钥并设置主公钥为:
随机选取一个
Figure FDA0002937936630000039
s为私钥生成中心的主密钥,s保密,设置私钥生成中心的主公钥Ppub=sP,P是G1的生成元,G1是阶为素数q的循环加法群;
所述公开***参数为:
param={k,q,G1,G2,P,e,H1,H2,Ppub}
其中,param为***参数,k为输入安全参数,保留s,s为私钥生成中心的主密钥,P是G1的生成元,G1是阶为素数q的循环加法群。
3.根据权利要求1所述的安全的PKI与IBC之间的双向异构数字签名方法,其特征在于:步骤2中所述公钥基础设施环境中的用户向证书权威机构提交身份以颁发证书为:
公钥基础设施环境中的用户A向证书权威机构提交IDA,IDA为用户A的身份,证书权威机构给用户A颁发证书;
所述从阶数为q的整数群
Figure FDA0002937936630000041
中随机选择一个数字作为公钥基础设施环境中用户的私钥为:
用户A随机选取一个随机数为
Figure FDA0002937936630000042
Figure FDA0002937936630000043
表示阶数为q的整数群除去0元素,
Figure FDA0002937936630000044
设置x作为用户A的私钥,即SKA=x,SKA为公钥基础设施环境中用户A的私钥;
所述计算公钥基础设施环境中用户的公钥为:
PKA=xP,P是G1的生成元,x作为用户A的私钥,G1为阶为素数q的循环加法群;
所述基于身份加密环境中用户向私钥生成中心提交用户身份为:
基于身份加密环境中用户B向私钥生成中心提交IDB,IDB为基于身份加密环境中用户B的身份;
所述计算基于身份加密环境中用户的私钥为:
私钥生成中心计算基于身份加密环境中用户B的私钥:
SKB=sH1(IDB),发送给用户B;
其中,基于身份加密环境中用户B的私钥为SKB,s为私钥生成中心的主密钥,IDB为基于身份加密环境中用户B的身份,H1是把用户的身份信息映射到加法循环群G1上的无碰撞哈希函数;
所述再回传至基于身份加密环境中用户从而得到公钥为:
PKB=H1(IDB)为基于身份加密环境中用户B的公钥。
CN202010122735.7A 2020-02-27 2020-02-27 一种安全的pki与ibc之间的双向异构数字签名方法 Active CN111342973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010122735.7A CN111342973B (zh) 2020-02-27 2020-02-27 一种安全的pki与ibc之间的双向异构数字签名方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010122735.7A CN111342973B (zh) 2020-02-27 2020-02-27 一种安全的pki与ibc之间的双向异构数字签名方法

Publications (2)

Publication Number Publication Date
CN111342973A CN111342973A (zh) 2020-06-26
CN111342973B true CN111342973B (zh) 2021-04-16

Family

ID=71185632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010122735.7A Active CN111342973B (zh) 2020-02-27 2020-02-27 一种安全的pki与ibc之间的双向异构数字签名方法

Country Status (1)

Country Link
CN (1) CN111342973B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199736B (zh) * 2020-10-12 2022-12-02 南京邮电大学 一种基于区块链的有序多重签名方法
CN112100674B (zh) * 2020-10-28 2024-04-16 上海第二工业大学 一种应用于医疗信息***的隐私信息传输方法
CN113300856B (zh) * 2021-05-25 2022-07-08 辽宁工程技术大学 一种可证安全的异构混合签密方法
CN114024683B (zh) * 2021-09-28 2024-03-26 淮阴工学院 一种从clc环境到pki环境的在线离线签密方法
CN113992397B (zh) * 2021-10-26 2022-10-21 电子科技大学 一种高效的支持差异化等式测试的公钥加密方法
CN114285576B (zh) * 2021-11-12 2024-03-26 淮阴工学院 一种非对的在线离线签密方法
CN114285580B (zh) * 2021-11-12 2024-03-26 淮阴工学院 一种从无证书到公钥基础设施的在线离线签密方法
CN114499878A (zh) * 2022-01-14 2022-05-13 复旦大学 一种对含指数关系检验的数字签名增量聚合方法
CN114785508B (zh) * 2022-04-24 2023-08-29 中国民用航空总局第二研究所 一种异构认证密钥协商方法和***
CN115499135B (zh) * 2022-09-14 2024-04-12 山东大学 一种基于对称密码的环签名方法及***
CN116132070B (zh) * 2023-04-10 2023-10-03 中国民用航空总局第二研究所 异构聚合签名方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767612A (zh) * 2015-05-05 2015-07-08 九江学院 一种从无证书环境到公钥基础设施环境的签密方法
CN109327309A (zh) * 2018-11-08 2019-02-12 北京中电华大电子设计有限责任公司 一种基于ibc与pki混合体系的跨域密钥管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767612A (zh) * 2015-05-05 2015-07-08 九江学院 一种从无证书环境到公钥基础设施环境的签密方法
CN109327309A (zh) * 2018-11-08 2019-02-12 北京中电华大电子设计有限责任公司 一种基于ibc与pki混合体系的跨域密钥管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
强指定验证者的签名方案的研究;葛丽霞;《中国优秀硕士学位论文全文数据库》;20180315;参见第2章至第3章 *

Also Published As

Publication number Publication date
CN111342973A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN111342973B (zh) 一种安全的pki与ibc之间的双向异构数字签名方法
CN108809658B (zh) 一种基于sm2的身份基的数字签名方法与***
CN108989050B (zh) 一种无证书数字签名方法
CN110912708B (zh) 一种基于sm9数字签名算法的环签名生成方法
US9160530B2 (en) Method and apparatus for verifiable generation of public keys
CN108551392B (zh) 一种基于sm9数字签名的盲签名生成方法及***
US6298153B1 (en) Digital signature method and information communication system and apparatus using such method
CN107733648B (zh) 一种基于身份的rsa数字签名生成方法及***
CN111654366B (zh) 一种安全的pki与ibc之间的双向异构强指定验证者签名方法
CN110120939B (zh) 一种基于异构***的可否认认证的加密方法和***
CN111010272B (zh) 一种标识私钥生成和数字签名方法及***和装置
CN108989054B (zh) 一种密码***及数字签名方法
CN110113150B (zh) 基于无证书环境的可否认认证的加密方法和***
CN1108041C (zh) 运用椭圆曲线加密算法的数字签名方法
CN113300856B (zh) 一种可证安全的异构混合签密方法
CN104079412B (zh) 基于智能电网身份安全的无可信pkg的门限代理签名方法
CN104767612A (zh) 一种从无证书环境到公钥基础设施环境的签密方法
CN101667913A (zh) 基于对称加密的认证加密方法及加密***
CN104767611A (zh) 一种从公钥基础设施环境到无证书环境的签密方法
CN108449326B (zh) 一种异构可否认的认证方法和***
US20150006900A1 (en) Signature protocol
CN111917550A (zh) 基于无证书聚类签名无双线性对的认证方法及***
CN110278073B (zh) 一种群组数字签名、验证方法及其设备和装置
Elkamchouchi et al. An efficient proxy signcryption scheme based on the discrete logarithm problem
KR100732233B1 (ko) 겹선형 함수를 이용한 대리서명능력 제한성을 가지는개인식별정보 기반 대리서명 장치 및 그 방법

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