基于身份的可公开验证签密方案解析
在当今数字化时代,信息的安全传输至关重要。签密技术作为一种将签名和加密功能相结合的技术,能够在保证信息机密性的同时,确保信息的不可否认性和完整性。本文将详细介绍签密方案的相关内容,包括对现有方案的攻击分析以及一种新的基于身份的可公开验证签密方案(IDPVS)的提出和分析。
1. 对不可伪造性的攻击
在不可伪造性游戏的训练阶段,攻击者A向签密预言机查询从发送者IDS到接收者IDB的消息ˆm的签密。需要注意的是,A并不知道IDS的私钥(包括签密密钥和去签密密钥)。设该签密为σ = ⟨c, r, S⟩。
A提交σ∗ = σ(即c∗ = c,r∗ = r和S∗ = S)作为伪造的签密,发送者为IDS,接收者为IDR。σ∗是某个消息m∗的有效签密,即使A并不知道消息m∗的内容。
通过以下计算可以证明σ∗ = ⟨c∗, r∗, S∗⟩(从发送者IDS到接收者IDR的消息m∗的签密)的正确性和有效性:
-
计算k∗1
:
k∗1 = ˆe(S∗, Ppub)ˆe(r∗QS, P)
= ˆe(S, Ppub)ˆe(rQS, P) (因为S∗ = S)
= ˆe((x − r)SS, sP)ˆe(rQS, P)
= ˆe((x − r)s−1QS, sP)ˆe(rQS, P)
= ˆe((x − r)QS, P)ˆe(rQS, P)
= ˆe(xQS, P)ˆe(rQS, P)−1ˆe(rQS, P)
= ˆe(xQS, P)
= k1
由此可知,σ∗的k∗1等于σ的k1。
-
计算k∗2
:
k∗2 = H2(ˆe(S∗, DR)ˆe(r∗QS, QR))
= H2(ˆe(S, DR)ˆe(rQS, QR)) (因为S∗ = S)
= H2(ˆe((x − r)SS, sQR)ˆe(rQS, QR))
= H2(ˆe((x − r)s−1QS, sQR)ˆe(rQS, QR))
= H2(ˆe((x − r)QS, QR)ˆe(rQS, QR))
= H2(ˆe(xQS, QR)ˆe(rQS, QR)−1ˆe(rQS, QR))
= H2(ˆe(xQS, QR)
≠ k2 (因为k2 = H2(ˆe(xQS, QB)))
所以,σ∗的k∗2不等于σ的k2。
从上述计算可以明显看出,k∗1 = k1且c∗ = c(根据σ∗的定义),因此检查r∗ = r成立。由于k2 ≠ k∗2,c∗将被解密为某个消息m∗,而不是用于生成σ的消息m。这清楚地表明,挑战者C将接受σ∗作为从发送者IDS到接收者IDR的消息m∗的有效签密。而且,这并不违反不可伪造性游戏的定义,即A生成的伪造签密σ∗不是签密预言机对以IDS为发送者、IDR为接收者的消息m∗的输出。因此,A可以在不进行任何计算或打破任何困难问题假设的情况下,成功伪造对某个消息m∗(A不知道该消息)的签密。
2. 对[14]中签密方案的评估与攻击
Tso等人在[14]中提出了一种基于PKI的签密方案,该方案提供了前向安全性和可公开验证性。该方案的可公开验证性体现在,接收者可以通过提供除其私钥和被签密消息之外的一些附加信息来证明来自发送者的签密的真实性。他们正式证明了该方案的机密性和不可伪造性,并非正式地论证了即使第三方验证所需的附加信息和发送者的私钥被攻击者知晓,该方案仍能提供前向保密性。
然而,经过评估发现,当发送者的私钥和第三方验证所需的信息被攻击者知晓时,该方案无法提供机密性。具体攻击过程如下:
- 攻击者A选择两个消息(m0, m1),并在挑战阶段选择发送者S和接收者R。
- 挑战者C生成对消息mδ(其中δ ∈ {0, 1})从发送者S到接收者R的挑战签密σ∗。
- A根据σ∗伪造一个签密˜σ,具体步骤如下:
1. 通过请求第三方签名验证从C处获取h∗。
2. 计算(k∗u∗) = (v∗−1(r∗ + h∗xS))。
3. 计算˜U = k∗u∗P。
4. 计算˜h = H(c∥bindC,S∥ˆx∗1∥˜U)。
5. 计算˜v = (k∗u∗)−1(r∗ + ˜hxC)。
6. 设置˜c = c∗和ˆx′1 = ˆx∗1。
- A将˜σ = ⟨˜c, ˆx′1, ˜v⟩提交给去签密预言机,就好像˜σ是从发送者C到接收者R的签密。需要注意的是,˜σ的去签密将输出用于生成σ∗的消息mδ,并且它将通过签名验证。
3. 基于身份的可公开验证签密方案(IDPVS)
3.1 IDPVS方案概述
为了解决现有方案存在的问题,提出了一种新的基于身份的可公开验证签密方案(IDPVS),该方案提供了可公开验证性、第三方验证(借助接收者提供的附加信息证明消息与签密的绑定)和前向安全性。
设G1、G2是两个素数阶q的循环群,ˆe : G1 × G1 → G2是一个双线性映射。设M是消息空间,ℑ是密文空间,Hi(i = 1到4)是四个密码学哈希函数。
3.2 IDPVS方案的具体步骤
-
系统设置(Setup(1κ))
:
- 随机选择P ∈ G1。
- 随机选择s ∈ Z∗q。
- 计算Ppub = sP。
- 选择一个CPA安全的对称密钥密码系统(E, D)。
- 定义哈希函数H1 : {0, 1}∗ → G1,H2 : G2 → {0, 1}|ℑ|,H3 : {0, 1}|ℑ| × G31 → G1,H4 : {0, 1}|M| × G1 × G2 × G21 → {0, 1}ˆn。
- 系统参数Params = ⟨G1, G2, q, n, P, Ppub, ˆe(., .), (E, D) , H1, H2, H3, H4⟩。
-
密钥提取(Extract(IDA))
:
- 计算QA = H1(IDA)。
- 计算DA = sQA。
-
签密(Signcrypt(m, IDA, DA, IDB))
:
- 随机选择x ∈ Z∗q。
- 计算U = xP。
- 计算ˆα = ˆe(Ppub, QB)x。
- 计算α2 = H2(ˆα)。
- 计算r = H4(m, ˆα, U, QA, QB)。
- 计算c = Eα2(m∥r)。
- 计算R = H3(c, U, QA, QB)。
- 计算V = xR + DA。
- 签密结果σ = ⟨U, V, c⟩。
-
公开验证(Public-Verify(σ, IDA, IDB))
:
- 计算¯R = H3(c, U, QA, QB)。
- 如果ˆe(V, P) = ˆe(U, ¯R) ˆe(QA, Ppub),则返回“Valid”;否则,返回“Invalid”。
-
去签密(Unsigncrypt(σ, IDA, IDB, DB))
:
- 如果公开验证不通过,则输出“Invalid”。
- 计算ˆα′ = ˆe(U, DB)。
- 计算α′2 = H2(ˆα′)。
- 解密得到m′∥r′ = Dα′2(c)。
- 如果r′ = H4(m′, ˆα′, U, QA, QB),则输出φ = ⟨m′, r′, ˆα′, σ⟩;否则,返回“Invalid”。
-
第三方验证(TP-Verify(φ, IDA, IDB))
:
- 如果公开验证不通过,则输出“Invalid”。
- 计算¯α2 = H2(ˆα′)。
- 解密得到¯m∥¯r = D¯α2(c)。
- 如果¯r = H4(¯m, ˆα′, U, QA, QB)且¯r = r′,则接受σ并输出“Valid”;否则,输出“Invalid”。
3.3 IDPVS方案的正确性证明
- 签名验证的正确性 :
LHS = ˆe(V, P) = ˆe(xR + DA, P)
= ˆe(xR, P)ˆe(DA, P)
= ˆe(R, P)xˆe(sQA, P)
= ˆe(¯R, U) ˆe(QA, Ppub)
= RHS
- ˆα′的正确性 :
ˆα′ = ˆe(U, DB) = ˆe(xP, sQB)
= ˆe(Ppub, QB)x = ˆα
因此,去签密中的ˆα′与签密中的ˆα相同。
4. IDPVS方案的安全分析
4.1 不可伪造性证明
定理1 :如果存在一个攻击者A能够以优势ϵ打破IDPVS方案的EUF - CMAIDPVS安全性,那么存在另一个算法能够以优势ϵ′ ≥ ϵ打破CDHP(计算Diffie - Hellman问题)。
证明
:A与挑战者C之间的交互可以看作一个游戏。假设挑战者C得到了来自G1的CDHP实例P, ˜aP, ˜bP,并需要生成解˜a˜bP。设A是一个能够在多项式时间内以优势ϵ打破IDPVS方案的EUF - CMA安全性的攻击者。C利用A以非可忽略的优势ϵ′打破CDHP实例。
-
系统设置(Setup)
:
- 设置G1、G2为底层群,P为G1的生成元。
- 设置Ppub = ˜aP。
- 发布⟨G1, G2, q, P, Ppub⟩。
- C维护列表L1、L2、L3、L4、LSign以确保对A向各种预言机的查询做出一致的响应。
-
训练阶段(Training Phase)
:
-
哈希预言机查询
:
-
H1预言机查询(OH1(IDi))
:如果i = γ,设置Qi = ˜bP并存储⟨i,′ −′, Qi⟩到列表L1;否则,随机选择一个新的qi ∈ Z∗q并存储⟨i, qi, Qi⟩到列表L1,然后返回Qi给A。
-
H2预言机查询(OH2(ˆα))
:如果⟨ˆα, α2⟩在列表L2中,则从L2中检索α2;否则,随机选择一个新的α2 ∈ Z∗q并存储⟨ˆα, α2⟩到列表L2,然后返回α2给A。
-
H3预言机查询(OH3(c, U, QA, QB))
:如果⟨c, U, QA, QB, R⟩在列表L3中,则从L3中检索R;否则,如果B ≠ γ,随机选择一个新的ˆr ∈ Z∗q并设置R = ˆrP;如果B = γ,随机选择一个新的ˆr ∈ R Z∗q并设置R = ˆrQB,然后存储⟨c, U, QA, QB, ˆr, R⟩到列表L3并返回R给A。
-
H4预言机查询(OH4(m, U, ˆα, QA, QB))
:如果对应的元组⟨m, U, ˆα, QA, QB, r⟩在列表L4中,则从L4中检索r;否则,随机选择一个新的r ∈ R Z∗q并存储⟨m, U, ˆα, QA, QB, r⟩到L4,然后输出r给A。
-
签密预言机查询(OSigncrypt(m, IDA, IDB))
:如果A ≠ γ,C知道发送者A的私钥DA,使用签密协议生成签密σ;如果A = γ,C进行以下计算:
- 随机选择ˆr, x ∈ Z∗q。
- 设置U = (xP − ˆr−1QA)。
- 设置α2 = OH2(ˆα = ˆe(U, DB))和r = OH4(m, U, ˆα, QA, QB)。
- 计算c = Eα2(m∥r)。
- 设置R = ˆrPpub和V = ˆrxPpub,并存储⟨c, U, QA, QB, ˆr, R⟩到列表L3。
- 可以证明V的正确性:
RHS = ˆe(R, U)ˆe(QA, Ppub)
= ˆe(ˆrPpub, (xP − ˆr−1QA))ˆe(QA, Ppub)
= ˆe(ˆrPpub, xP)ˆe(ˆrPpub, ˆr−1QA))−1ˆe(QA, Ppub)
= ˆe(ˆrxPpub, P)ˆe(Ppub, QA))−1ˆe(QA, Ppub)
= ˆe(ˆrxPpub, P)
= ˆe(V, P) = LHS
- **去签密预言机查询(OUnsigncrypt(σ, IDA, IDB))**:如果B ≠ γ,C知道IDB的私钥DB,使用去签密算法对σ进行去签密并返回相应的输出;否则,C进行以下计算:
- 如果公开验证不通过,则返回“Invalid”。
- 执行R = OH3(c, U, QA, QB)并从列表L3中检索对应的ˆr。
- 检查ˆe(U, QB)是否等于ˆe(ˆr−1R, P),如果不相等,则返回“Invalid”;否则,继续下一步。
- 计算ˆα′ = ˆe(ˆr−1R, Ppub)和α′2 = OH2(ˆα′)。
- 解密得到(m′∥r′) = Dα′2(c)。
- 如果r′ = OH4(m′, U, ˆα′, QA, QB),则返回m′;否则,返回“Invalid”。
- **第三方验证预言机查询(OTP - Verify(σ, IDA, IDB))**:如果B ≠ γ,C知道IDB的私钥DB,使用去签密算法对σ进行去签密,如果σ有效则返回φ,否则返回“Invalid”;如果B = γ,C进行与去签密预言机相同的计算,如果σ有效则返回φ = ⟨σ, m′, ˆα′, QA, QB⟩,否则返回“Invalid”。
-
伪造阶段(Forgery Phase)
:经过充分训练后,A提交签密⟨σ∗, IDS, IDR⟩。如果S = γ且σ∗有效,C进行以下操作:
- 从列表L3中检索对应于(c, U, QS, QR)的ˆr。
- 计算DS = V − ˆrU。
- 可以证明V − ˆrU得到对应于IDS的私钥DS:
V − ˆrU = xR + DS − ˆrU
= xˆrP + DS − ˆrU
= ˆrU + DS − ˆrU
= DS
- 由于S = γ,DS = Dγ = ˜aQγ = ˜a˜bP,因此C获得了CDHP实例的解。
概率分析
:假设qH1、qH2、qH3、qH4、qe分别是允许向预言机OH1、OH2、OH3、OH4、OExtract进行查询的最大多项式数量。C中止EUF - IBSC - CMA游戏的事件如下:
-
事件E1
:A查询目标身份IDγ的私钥,其概率Pr[E1] = qe / qH1。
-
事件E2
:A在挑战阶段没有选择目标身份IDγ作为接收者,其概率Pr[E2] = 1 - 1 / (qH1 - qe)。
C在EUF - IBSC - CMA游戏中不中止的概率为:
Pr[¬E1 ∧ ¬E2] = (1 - qe / qH1) * (1 / (qH1 - qe))
= 1 / qH1
C解决CDHP的概率为:
Pr[A(P, ˜aP, ˜bP|˜a, ˜b ∈ G2) = ˆe(P, P)˜a˜b˜c] = ϵ * (1 / qH1)
由于ϵ是非可忽略的,因此C解决CDHP的概率也是非可忽略的。
4.2 机密性证明
定理2 :如果存在一个攻击者A能够以优势ϵ打破IDPVS方案的IND - IBSC - CCA2安全性,那么存在另一个算法能够以优势ϵ′ ≥ ϵ打破CBDHP(计算双线性Diffie - Hellman问题)。
证明
:为了证明IDPVS的机密性,A与挑战者C进行交互。假设挑战者C得到了来自G1的CBDHP实例P, ˜aP, ˜bP, ˜cP,并需要生成解ˆe(P, P)˜a˜b˜c。设A是一个能够在多项式时间内以优势ϵ打破IDPVS方案的IND - IBSC - CCA2安全性的攻击者。C利用A来找到CBDHP实例的解。
-
系统设置(Setup)
:
- 设置G1、G2为底层群,P为G1的生成元。
- 设置Ppub = ˜aP。
- 发布⟨G1, G2, q, P, Ppub⟩。
- C维护列表L1、L2、L3、L4、LSign以确保对A向各种预言机的查询做出一致的响应。
-
第一阶段(Phase - I)
:在训练的第一阶段,攻击者A可以访问C提供的各种预言机,这些预言机与不可伪造性证明训练阶段的预言机类似。
-
挑战阶段(Challenge Phase)
:在第一阶段交互结束时,A选择两个等长的消息(m0, m1)、发送者身份IDS和接收者身份IDR,并提交给C。C检查R是否等于γ,如果R ≠ γ,则中止;否则,C选择一个随机比特δ ∈ {0, 1}并生成mδ的签密:
- 随机选择一个ˆr ∈ R Z∗q。
- 设置U∗ = ˜cP和R∗ = ˆrP。
- 随机选择一个c∗ ∈ R {0, 1}|ℑ|。
- 存储元组⟨c∗, U∗, QS, QR, R∗⟩。
- 计算V∗ = ˆr˜cP + DS(DS是C已知的)。
- 设置σ∗ = ⟨c∗, U∗, V∗⟩。
- C将σ∗作为挑战签密提供给A。
-
第二阶段(Phase - II)
:A与C进行与第一阶段类似的交互,但有以下限制:
- A不应向提取预言机查询对应于IDR的私钥,即OExtract(IDR)。
- A不应向去签密预言机查询以IDS为发送者、IDR为接收者的σ∗的去签密,即OUnsigncrypt (σ∗, IDS, IDR)。
- A不应向第三方验证预言机查询以IDS为发送者、IDR为接收者的σ∗的第三方验证,即OTP - Verify(σ∗, IDS, IDR)。
综上所述,IDPVS方案在理论上具有较好的安全性,通过将不可伪造性和机密性与困难问题(CDHP和CBDHP)相关联,为信息的安全传输提供了保障。然而,在实际应用中,还需要进一步考虑各种因素,如计算效率、系统的可扩展性等。未来的研究可以围绕这些方面展开,以推动签密技术的发展和应用。
基于身份的可公开验证签密方案解析
5. 总结与展望
5.1 方案总结
本文围绕签密方案展开了深入研究,涵盖了对现有方案的攻击分析以及新方案的提出和安全证明。
在对现有方案的分析中,发现了一些安全漏洞。例如,针对不可伪造性游戏中的攻击,攻击者能够在不进行复杂计算和打破困难问题假设的情况下,成功伪造签密。同时,Tso等人提出的基于PKI的签密方案,在发送者私钥和第三方验证信息被攻击者知晓时,无法保证机密性。
为了解决这些问题,提出了基于身份的可公开验证签密方案(IDPVS)。该方案具有可公开验证性、第三方验证能力和前向安全性。通过一系列的算法步骤,包括系统设置、密钥提取、签密、公开验证、去签密和第三方验证,实现了信息的安全传输。并且,通过严格的正确性证明和安全分析,将方案的不可伪造性和机密性与计算Diffie - Hellman问题(CDHP)和计算双线性Diffie - Hellman问题(CBDHP)相关联,从理论上证明了方案的安全性。
5.2 方案优势与不足
-
优势
- 安全性高 :IDPVS方案将安全性建立在困难问题之上,如CDHP和CBDHP,使得攻击者难以在多项式时间内破解,为信息的机密性和不可伪造性提供了坚实的保障。
- 可公开验证性 :接收者可以通过提供附加信息证明签密的真实性,方便第三方进行验证,增强了方案的实用性和可信度。
- 前向安全性 :即使发送者的私钥被泄露,之前的签密信息仍然保持机密,保护了历史通信的安全性。
-
不足
- 计算复杂度 :方案中涉及到大量的双线性映射、哈希函数计算和椭圆曲线运算,计算复杂度较高,可能会影响系统的性能和效率。
- 存储开销 :维护各种列表(如L1、L2、L3、L4等)需要一定的存储空间,增加了系统的存储负担。
5.3 未来研究方向
- 优化计算效率 :可以研究如何通过优化算法、采用更高效的密码学原语或并行计算等方法,降低方案的计算复杂度,提高系统的处理速度。
- 增强可扩展性 :考虑如何使方案能够适应大规模的网络环境,支持更多的用户和消息传输,提高系统的可扩展性。
- 结合新兴技术 :探索将IDPVS方案与区块链、量子计算等新兴技术相结合,以应对未来可能出现的安全挑战。
6. 相关技术对比
为了更清晰地了解IDPVS方案的特点,下面将其与其他常见的签密方案进行对比。
| 方案特点 | IDPVS方案 | Tso等人方案 | 传统PKI签密方案 |
|---|---|---|---|
| 可公开验证性 | 支持,接收者可提供附加信息证明真实性 | 支持 | 部分支持 |
| 前向安全性 | 支持 | 声称支持,但存在漏洞 | 部分支持 |
| 机密性 | 理论上安全,与CBDHP关联 | 私钥泄露时机密性受损 | 依赖密钥管理 |
| 不可伪造性 | 与CDHP关联,理论上安全 | 可被伪造攻击 | 依赖签名算法 |
| 计算复杂度 | 较高 | 中等 | 中等 |
| 存储开销 | 较大 | 较小 | 较小 |
从对比中可以看出,IDPVS方案在安全性方面具有明显优势,但在计算复杂度和存储开销上存在一定的劣势。不同的方案适用于不同的应用场景,需要根据具体需求进行选择。
7. 实际应用场景分析
IDPVS方案在多个领域具有潜在的应用价值,以下是一些具体的应用场景分析。
7.1 金融领域
在金融交易中,信息的安全性和不可否认性至关重要。IDPVS方案可以用于加密和签名金融交易信息,确保交易的真实性和完整性。例如,在网上银行转账、证券交易等场景中,使用IDPVS方案可以防止交易信息被篡改和伪造,保护用户的资金安全。同时,其可公开验证性使得监管机构可以方便地对交易进行审计和监督。
7.2 物联网领域
物联网中设备之间的通信需要保证信息的机密性和完整性。IDPVS方案可以用于加密和验证物联网设备之间的消息传输,防止设备被攻击和数据泄露。例如,在智能家居系统中,传感器和控制器之间的通信可以使用IDPVS方案进行保护,确保用户的隐私和家庭安全。
7.3 云计算领域
云计算环境中,用户的数据存储在云端,需要保证数据的安全性和隐私性。IDPVS方案可以用于加密用户上传到云端的数据,并对数据的访问进行签名验证。这样,即使云服务提供商的服务器被攻击,用户的数据仍然是安全的。同时,第三方可以对数据的访问记录进行验证,确保数据的使用符合用户的授权。
8. 流程图展示
为了更直观地展示IDPVS方案的流程,下面给出签密和去签密过程的mermaid流程图。
graph TD;
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(随机选择x ∈ Z∗q):::process;
B --> C(计算U = xP):::process;
C --> D(计算ˆα = ˆe(Ppub, QB)x):::process;
D --> E(计算α2 = H2(ˆα)):::process;
E --> F(计算r = H4(m, ˆα, U, QA, QB)):::process;
F --> G(计算c = Eα2(m∥r)):::process;
G --> H(计算R = H3(c, U, QA, QB)):::process;
H --> I(计算V = xR + DA):::process;
I --> J([输出签密σ = ⟨U, V, c⟩]):::startend;
图1:IDPVS签密流程
graph TD;
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(公开验证σ):::process;
B --> C{验证是否通过?}:::decision;
C -- 否 --> D([输出Invalid]):::startend;
C -- 是 --> E(计算ˆα′ = ˆe(U, DB)):::process;
E --> F(计算α′2 = H2(ˆα′)):::process;
F --> G(解密得到m′∥r′ = Dα′2(c)):::process;
G --> H{是否r′ = H4(m′, ˆα′, U, QA, QB)?}:::decision;
H -- 否 --> D;
H -- 是 --> I([输出φ = ⟨m′, r′, ˆα′, σ⟩]):::startend;
图2:IDPVS去签密流程
通过以上流程图,可以清晰地看到IDPVS方案签密和去签密的具体步骤和逻辑关系,有助于更好地理解方案的实现过程。
9. 结语
签密技术作为保障信息安全传输的重要手段,不断发展和完善。基于身份的可公开验证签密方案(IDPVS)在安全性方面具有显著优势,但也面临着计算复杂度和存储开销等方面的挑战。未来,需要进一步研究和优化方案,以提高其性能和实用性。同时,随着信息技术的不断发展,签密技术也将在更多领域得到广泛应用,为信息安全提供更强大的支持。
超级会员免费看
4901

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



