基于身份的可公开验证签密方案解析
一、引言
在不安全的通信渠道中,实现安全通信需要同时保证信息的机密性和真实性。加密方案用于实现机密性,而数字签名方案则提供不可伪造性。签密方案作为一种密码学原语,能够高效地同时实现这两个特性。
早期,Zheng提出了首个数字签密方案,该方案在单个逻辑步骤中同时提供机密性和认证性,且计算成本和通信开销低于先签名后加密(StE)或先加密后签名(EtS)的方法。此后,众多签密方案相继被提出。
Adi Shamir引入了基于身份的密码学概念,并提出了首个基于身份的签名方案。基于身份的密码学允许用户使用任何唯一标识自己的字符串作为公钥,是基于公钥基础设施(PKI)系统的有效替代方案。数字签密在基于身份的环境中也得到了广泛研究,但部分早期方案存在安全问题。
通常,在签密方案中,消息是隐藏的,只有在解签密过程之后才能验证签密的有效性。因此,第三方(不知道接收方私钥)无法验证签密是否有效。可公开验证的签密方案在以下场景中具有重要意义:
1.
安全电子邮件
:可用于过滤安全电子邮件系统中的垃圾邮件。垃圾邮件过滤器应能够在不知道消息内容的情况下验证签密电子邮件的真实性,若签密不满足公开可验证性,则可将其视为垃圾邮件并过滤掉。
2.
私人合同签名
:在双方进行的私人合同签名应用中,签密的接收方应能够向第三方证明发送方确实签署了隐藏在签密中的相应消息。此时,接收方不应透露其私钥,而是透露消息和一些使用其私钥计算得出的用于签名验证的信息。
二、相关工作
Bao等人提出了首个基于PKI的可公开验证签密方案,但该方案无法抵御CCA2攻击。Chow等人提出了一个基于身份的签密方案,该方案提供了公开可验证性和前向安全性,是目前已知的唯一提供公开可验证性和第三方验证的基于身份的方案。
三、贡献
本文对基于身份的可公开验证和第三方可验证签密方案的安全模型进行了升级,为攻击者提供了额外的能力,即访问第三方验证预言机,该预言机提供第三方验证所需的信息。同时,本文证明了Chow等人提出的方案不安全,展示了对该方案的CCA2攻击和伪造攻击,并对另一个方案的前向安全性进行了CCA2攻击。最后,提出了一个新的基于身份的签密方案,该方案提供公开可验证性和第三方验证,并在新提出的改进安全模型中正式证明了其安全性,该方案还提供了前向保密性以及机密性和真实性。
四、基于身份的签密方案通用框架及安全模型
4.1 通用方案
基于身份的签密方案由以下算法组成:
1.
Setup(1κ)
:给定安全参数κ,私钥生成器(PKG)生成主私钥msk和公共参数Params。Params公开,而msk由PKG保密。
2.
Extract(IDi)
:以身份IDi为输入,PKG执行此算法生成与IDi对应的私钥Di,并通过安全通道将Di发送给具有身份IDi的用户。
3.
Signcrypt(m, IDA, DA, IDB)
:身份为IDA且私钥为DA的发送方,为了将消息m签密给身份为IDB的接收方,运行此算法生成相应的签密σ。
4.
Unsigncrypt(σ, IDA, IDB, DB)
:身份为IDB且私钥为DB的接收方,收到来自身份为IDA的发送方的签密σ后,执行此算法以获取消息m。如果σ是从IDA到IDB对m的有效签密,则输出消息m;否则输出“Invalid”。
5.
Public-Verify(σ, IDA, IDB)
:该算法允许任何第三方在不知道用于生成签密σ的消息的情况下验证签密σ的真实性。它以签密σ、发送方身份IDA和接收方身份IDB为输入,若σ是有效签密,则输出“Valid”;否则输出“Invalid”。
6.
TP-Verify(φ, IDA, IDB)
:该算法允许接收方IDB通过提供额外信息(除私钥DB外)向第三方证明签密σ的真实性。第三方运行此算法,以φ(σ和IDB提供的额外信息)、发送方身份IDA和接收方身份IDB为输入,若σ是从IDA到IDB的有效签密,则输出“Valid”;否则输出“Invalid”。TP-Verify有两种类型:一种是在不暴露消息的情况下证明有效性;另一种是通过暴露被签密的消息来证明签密确实是对该消息的有效签密。
以下是该流程的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(Setup):::process
B --> C(Extract):::process
C --> D{是否需要签密消息}:::decision
D -- 是 --> E(Signcrypt):::process
E --> F(Unsigncrypt):::process
D -- 否 --> G{是否需要验证签密}:::decision
G -- 第三方验证 --> H(Public-Verify):::process
G -- 接收方证明 --> I(TP-Verify):::process
F --> J([结束]):::startend
H --> J
I --> J
4.2 安全概念
-
IND - IBSC - CCA2
:一个基于身份的签密方案在自适应选择密文攻击下不可区分(IND - IBSC - CCA2),如果没有多项式有界的攻击者在以下游戏中具有不可忽略的优势:
- Setup :挑战者C使用安全参数κ运行Setup算法,获得公共参数Params和主私钥msk。C将Params发送给攻击者A,并保密msk。
-
Phase I
:攻击者A向C执行多项式有界数量的查询,查询可以是自适应的。具体查询类型如下:
- Key extraction queries(Oracle OExtract(IDi)) :A提供身份IDi并接收私钥Di。
- Signcryption queries(Oracle OSigncrypt(m, IDA, IDB)) :A提供两个身份IDA、IDB和一个明文m。C计算DA = OExtract(IDA),并使用DA按照签密协议生成消息m的签密σ,然后将σ发送给A。
- Unsigncryption queries(Oracle OUnsigncrypt(σ, IDA, IDB)) :A将发送方身份IDA、接收方身份IDB和签密σ作为输入,请求对σ进行解签密。C生成私钥DB,使用DB对σ进行解签密,并将结果发送给A。如果σ不是有效签密,解签密结果为“Invalid”;如果σ是有效签密,则返回消息m。
- TP - Verify queries(Oracle OTP - Verify(σ, IDA, IDB)) :A提交信息φ、发送方身份IDA和接收方身份IDB。C生成与IDB对应的私钥DB,使用DB对σ进行解签密,并返回与σ对应的TP - verify所需的信息。如果σ是有效的签密,则返回“Valid”;否则返回“Invalid”。
- Challenge :A选择两个等长的明文m0和m1、发送方身份IDS和接收方身份IDR,并将它们提交给C。A在Phase I中不应查询与IDR对应的私钥。C选择一个随机位δ ∈ {0, 1},计算σ∗ = OSigncrypt(mδ, IDS, IDR),并将σ∗发送给A。
-
Phase II
:A可以像Phase I一样与C交互,但有以下限制:
- A不应查询提取预言机以获取与接收方身份IDR对应的私钥。
- A不应以(σ∗, IDS, IDR)作为输入查询解签密预言机。
- Guess :最后,A产生一个位δ′,如果δ′ = δ,则A赢得游戏。A在上述游戏中的优势定义为Adv(A) = 2|Pr[δ′ = δ] - 1|,其中Pr[δ′ = δ]表示δ′ = δ的概率。
-
EUF - IBSC - CMA
:一个基于身份的签密方案在自适应选择消息攻击下存在不可伪造性(EUF - IBSC - CMA),如果没有多项式有界的攻击者在以下游戏中具有不可忽略的优势:
- Setup :挑战者C使用安全参数κ运行Setup算法,获得公共参数Params和主私钥msk。C将Params发送给攻击者A,并保密msk。
- Training Phase :攻击者A像机密性游戏的Phase I一样自适应地执行多项式有界数量的查询。
- Forgery :经过足够的训练后,A向C产生一个签密(σ, IDS, IDR)。A在训练阶段不应查询IDS的私钥,并且σ不是以(m, IDS, IDR)作为输入的签密预言机的输出(m = OUnsigncrypt(σ, IDS, IDR))。如果Unsigncrypt(σ, IDS, IDR, DR)有效,则A赢得游戏。
五、Chow等人方案的回顾与攻击
5.1 方案回顾
设G1、G2是两个素数阶q的循环群,ˆe : G1 × G1 → G2是双线性对。H1 : {0, 1}¯n → G1、H2 : G2 → {0, 1}¯n和H3 : {0, 1}¯n × G2 → F∗q是三个密码学哈希函数。(E, D)是一个安全对称密码的加密和解密算法,分别处理长度为n的明文/密文和长度为¯n的密钥。
-
Setup(1κ)
:
- P ∈R G1
- s ∈R F∗q
- PPub = sP
- Params = ⟨G1, G2, q, n, P, Ppub, ˆe(., .), H1, H2, H3, (E, D)⟩
-
Extract(IDA)
:
- QA = H1(IDA)
- SA = s−1QA
- DA = sQA
-
Signcrypt(m, IDA, SA, IDB)
:
- x ∈R F∗q
- XA ← xQA
- k1 = ˆe(XA, P)
- k2 = H2(ˆe(XA, QB))
- c = Ek2(m)
- r = H3(c, k1)
- S = (x - r)SA
- 签密σ = ⟨c, r, S⟩
-
Unsigncrypt(σ, IDA, IDB, DB)
:
- X′A = rQA
- k′1 = ˆe(S, Ppub)ˆe(X′A, P)
- k′2 = H2(ˆe(S, DB)ˆe(X′A, QB))
- m′ = Dk′2(c)
- r′ = H3(c, k′1)
- 若r = r′,则输出σ′ = ⟨k′2, m, σ⟩;否则返回“Invalid”
-
TP - Verify(σ′, IDA, IDB)
:
- k′1 = ˆe(S, Ppub)ˆe(X′A, P)
- r′ = H3(c, k′1)
- 若r = r′,则接受σ;若m = Dk′2(c),则接受m的真实性;若上述两个测试都成立,则返回“Valid”;否则返回“Invalid”
5.2 攻击分析
-
机密性攻击
:该方案在机密性游戏中不提供内部安全性。攻击者A可以利用在挑战阶段知道发送方签名密钥的信息,对挑战签密进行有意义的修改,并在机密性游戏的第二阶段查询修改后的签密的解签密,从而得知消息mδ。具体步骤如下:
- 在挑战阶段,攻击者A选择两个等长的消息(m0, m1)、发送方身份IDS和接收方身份IDR,并将它们提交给挑战者C。
- C选择一个随机位δ ∈ {0, 1},生成签密σ∗ = ⟨c∗, r∗, S∗⟩ = OSigncrypt(mδ, IDS, IDR)。
- C将σ∗作为挑战签密发送给A。
-
A收到σ∗后,通过以下计算生成签密 σ ≠ σ∗:
- 设IDA ≠ IDS是A知道签名密钥SA的任何用户身份。
- 根据内部安全机密性的定义,A也知道IDS的签名密钥SS。
- 设置 ˆc = c∗,ˆr = r∗。
- ˆS = S∗ + r∗SS - r∗SA = x∗SS - r∗SA。
- σ是从IDA到IDR对mδ的签密。
- A查询解签密预言机对 σ进行解签密,即OUnsigncrypt(σ, IDA, IDR)。
通过数学推导可以证明,σ∗(从IDS到IDR对mδ的签密)和解签密 σ(从IDA到IDR从σ∗派生的签密)将输出相同的消息mδ。这使得A能够通过在机密性游戏的第二阶段查询 ˆσ的解签密来知道消息mδ。
综上所述,Chow等人提出的方案存在安全漏洞,而本文提出的新方案有望解决这些问题,为基于身份的签密提供更安全可靠的解决方案。
六、新方案的提出与安全性证明
6.1 新方案概述
为了解决现有方案存在的安全问题,我们提出了一个新的基于身份的签密方案,该方案能够同时提供公开可验证性和第三方验证。此方案在设计上充分考虑了安全性和效率,旨在为安全通信提供更可靠的保障。
6.2 新方案的安全性证明
我们在新提出的改进安全模型中对新方案的安全性进行了正式证明,确保其能够抵御各种攻击。以下是对新方案安全性证明的详细分析:
IND - IBSC - CCA2安全性证明
在自适应选择密文攻击下不可区分(IND - IBSC - CCA2)的证明过程中,我们考虑了攻击者在各个阶段的行为和能力。
- Setup阶段 :挑战者按照新方案的Setup算法,使用安全参数κ生成公共参数Params和主私钥msk,并将Params发送给攻击者,同时保密msk。
- Phase I阶段 :攻击者可以进行多项式有界数量的查询,包括密钥提取查询、签密查询、解签密查询和TP - Verify查询。我们证明了在这个阶段,攻击者无法通过这些查询获取足够的信息来区分不同的消息。
- Challenge阶段 :攻击者选择两个等长的明文m0和m1、发送方身份IDS和接收方身份IDR。挑战者选择一个随机位δ,生成签密σ∗并发送给攻击者。
- Phase II阶段 :攻击者在满足一定限制条件下继续与挑战者交互。我们证明了这些限制条件能够有效防止攻击者利用挑战签密进行攻击。
- Guess阶段 :攻击者猜测δ′,如果δ′ = δ,则攻击者赢得游戏。通过数学推导和概率分析,我们证明了没有多项式有界的攻击者在这个游戏中具有不可忽略的优势,从而证明了新方案在IND - IBSC - CCA2下的安全性。
EUF - IBSC - CMA安全性证明
在自适应选择消息攻击下存在不可伪造性(EUF - IBSC - CMA)的证明过程中,我们同样考虑了攻击者在各个阶段的行为。
- Setup阶段 :与IND - IBSC - CCA2证明中的Setup阶段相同。
- Training Phase阶段 :攻击者进行多项式有界数量的查询,以获取相关信息。
- Forgery阶段 :攻击者产生一个签密(σ, IDS, IDR)。我们证明了在攻击者没有查询IDS私钥且σ不是签密预言机输出的情况下,攻击者无法生成有效的签密,从而证明了新方案在EUF - IBSC - CMA下的安全性。
以下是新方案安全性证明的流程表格:
| 证明类型 | Setup阶段 | Phase I/Training Phase阶段 | Challenge/Forgery阶段 | Phase II阶段 | Guess阶段 |
| — | — | — | — | — | — |
| IND - IBSC - CCA2 | 挑战者生成Params和msk,发送Params给攻击者 | 攻击者进行多种查询 | 攻击者选择消息和身份,挑战者生成签密 | 攻击者在限制条件下交互 | 攻击者猜测δ′ |
| EUF - IBSC - CMA | 挑战者生成Params和msk,发送Params给攻击者 | 攻击者进行多种查询 | 攻击者产生签密 | 无 | 无 |
七、新方案的优势与应用场景
7.1 新方案的优势
与现有方案相比,新方案具有以下显著优势:
1.
更高的安全性
:通过在新的安全模型中进行严格的安全性证明,新方案能够有效抵御CCA2攻击和伪造攻击,为通信提供更可靠的安全保障。
2.
公开可验证性
:任何第三方都可以在不知道消息内容的情况下验证签密的真实性,这在垃圾邮件过滤等场景中具有重要应用价值。
3.
第三方验证
:接收方可以通过提供额外信息(除私钥外)向第三方证明签密的有效性,满足了私人合同签名等场景的需求。
4.
前向保密性
:新方案提供了前向保密性,即使私钥泄露,过去的通信仍然是安全的。
7.2 应用场景
新方案在多个领域具有广泛的应用前景,以下是一些具体的应用场景:
1.
安全电子邮件系统
:可用于过滤垃圾邮件,确保邮件的真实性和机密性。垃圾邮件过滤器可以使用新方案的公开可验证性,在不打开邮件内容的情况下判断邮件是否为有效签密,从而提高过滤效率。
2.
私人合同签名
:在双方签订私人合同时,接收方可以通过新方案的第三方验证功能,向第三方证明发送方确实签署了合同,而无需透露自己的私钥。
3.
物联网安全通信
:在物联网环境中,设备之间的通信需要保证安全性和真实性。新方案可以为物联网设备提供可靠的签密机制,确保数据的安全传输。
以下是新方案应用场景的mermaid流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([开始]):::startend --> B(安全电子邮件系统):::process
A --> C(私人合同签名):::process
A --> D(物联网安全通信):::process
B --> E([结束]):::startend
C --> E
D --> E
八、总结与展望
本文对基于身份的可公开验证签密方案进行了深入研究,分析了现有方案存在的安全问题,并提出了一个新的基于身份的签密方案。新方案在安全性、公开可验证性和第三方验证等方面具有显著优势,通过严格的安全性证明,确保了其在各种攻击下的安全性。
在未来的研究中,我们可以进一步优化新方案的性能,提高其计算效率和通信效率。同时,可以探索新方案在更多领域的应用,如区块链安全、云计算安全等,为这些领域的安全通信提供更好的解决方案。此外,还可以研究如何将新方案与其他安全技术相结合,构建更加完善的安全体系。
总之,基于身份的可公开验证签密方案在安全通信领域具有重要的应用价值,本文提出的新方案为该领域的发展提供了新的思路和方法。我们相信,随着研究的不断深入,签密技术将在更多领域发挥重要作用,为信息安全提供更强大的保障。
超级会员免费看
4897

被折叠的 条评论
为什么被折叠?



