改进的基于身份的在线/离线签名方案解析
1. 引言
在线/离线签名是一种重要的密码学工具,广泛应用于资源受限的环境中。其核心思想是将签名生成过程分为两个阶段:离线阶段(在待签名消息给出之前进行)和在线阶段(在待签名消息给出之后进行)。这种方式能提高签名方案的安全性和实时效率。
在许多应用场景中,签名者在收到消息时响应时间有限或计算能力受限,但在连续签名请求之间有能力进行复杂计算。例如,股票经纪服务器会有突发的签名请求,在金融更新或新闻发布后会出现交易请求高峰。同时,在线/离线签名方案在智能卡应用中也非常有用,离线阶段可在卡片制造过程中或卡片通电时作为后台计算完成,在线阶段利用离线阶段的结果对实际消息进行签名,即使在弱处理器上也能高效执行。
此前,已有多种在线/离线签名方案被提出。其中,Xu - Mu - Susilo方案被用于AODV协议的认证,但Li等人指出该方案不安全,在给定消息 - 签名对的情况下,攻击者可以伪造新消息的签名。而本文提出了更强的攻击方法,能在无需签名者私钥和有效消息签名的情况下,对任意消息伪造签名,还证明了该方案具有可延展性。为克服这些攻击,本文提出了一种改进的基于身份的在线/离线签名方案,并证明其在随机预言模型下对自适应选择消息攻击是安全的。
2. 预备知识和在线/离线签名方案的安全模型
2.1 双线性对和相关数学问题
设$G_1$是由生成元$P$生成的循环乘法群,阶为素数$q$,$G_2$是具有相同素数阶$q$的循环乘法群。假设$G_1$和$G_2$中的离散对数问题(DLP)是困难的。一个可允许的双线性对$e: G_1 × G_1 → G_2$满足以下三个性质:
- 双线性性:若$U, V ∈ G_1$且$a, b ∈ Z_q^*$,则$e(aU, bV) = e(U, V)^{ab}$。
- 非退化性:存在$P, Q ∈ G_1$使得$e(P, Q) ≠ 1$。
- 可计算性:若$U, V ∈ G_1$,可以在多项式时间内计算$e(U, V) ∈ G_2$。
修改后的Weil和Tate对与超奇异椭圆曲线相关,是这种可允许双线性对的例子。本文方案的安全性基于以下安全假设。
2.2 计算Diffie - Hellman(CDH)假设
设$G$是CDH参数生成器。若对于足够大的$k$,算法$A$在解决$G$的CDH问题时有优势$\epsilon(k)$,则定义为:
$Adv_{G,A}(t) = Pr[A(q, G_1, xP, yP) = xyP | (q, G_1) ← G_k, P ← G_1, x, y ← Z_q]$
若对于任何随机多项式时间算法$A$,$Adv_{G,A}(t)$是可忽略函数,则称$G$满足CDH假设。
2.3 ID - 基于的在线/离线签名方案的算法
一个基于身份的在线/离线签名方案由以下五个算法组成:
1.
Setup
:由PKG运行的概率算法,以安全参数$k$为输入,输出系统参数$params$和保密的主密钥$s$。
2.
Extract
:PKG运行的密钥生成算法,以系统参数$params$、主密钥$s$和身份$ID$为输入,返回相应的私钥$D_{ID}$。
3.
OffSign
:概率算法,以系统参数$params$和签名密钥$D_{ID}$为输入,输出离线签名$S$。
4.
OnSign
:概率算法,以消息$m$和离线签名$S$为输入,返回在线签名$\delta$。
5.
Verify
:确定性算法,以$(ID, m, S, \delta)$为输入,返回接受或拒绝。
2.4 安全性定义
一个基于身份的在线/离线签名在选择消息攻击下被称为存在不可伪造的,如果没有概率多项式时间的对手在以下游戏中有不可忽略的优势:
1. 挑战者$A$运行设置算法生成系统参数并发送给对手$F$。
2. 对手$F$进行以下查询:
-
密钥提取查询
:$F$提供身份$ID$,接收相应的秘密密钥$D_{ID}$。
-
离线签名查询
:$F$提供身份$ID$,接收使用对应于$ID$的秘密密钥由离线签名预言机生成的离线签名。
-
在线签名查询
:$F$提供消息$m$,接收由在线签名预言机生成的在线签名,该在线签名对应于离线签名。
3. 经过多项式数量的查询后,$F$产生一个身份$ID^
$的元组$(ID^
, m^
, S^
, \delta^
)$,其秘密密钥从未在密钥提取查询中被询问,并且对$(ID^
, m^*)$从未在在线/离线签名查询中被询问。
该游戏的成功概率定义为$Succ_{EF - IOS - CMA}^A(l)$。如果上述攻击的成功概率是可忽略的,则在线/离线签名方案是安全的,即$Succ_{EF - IOS - CMA}^A(l) ≤ \epsilon$,其中$\epsilon$是可忽略的。
3. Xu - Mu - Susilo方案回顾
Xu等人声称他们的方案是安全的,该方案由以下五个算法组成:
1.
Setup
:给定安全参数$k$,PKG选择素数阶$q$的群$G_1$和$G_2$,$P$是$G_1$的生成元,$e: G_1 × G_1 → G_2$是双线性映射,$H_0: {0, 1}^
→ G_1$和$H_1: {0, 1}^
→ Z_q^
$是两个哈希函数。PKG随机选择主密钥$s ∈ Z_q^
$并计算$P_{pub} = sP$,发布系统参数${G_1, G_2, q, e, P, P_{pub}, H_0, H_1}$,并保密主密钥$s$。
2.
Extract
:给定身份$ID$,PKG计算$Q_{ID} = H_0(ID)$和私钥$D_{ID} = sQ_{ID}$,并安全地将私钥发送给所有者。
3.
OffSign
:签名者随机选择$r, x ∈ Z_q$,计算离线签名对$(S, R)$,其中$S = D_{ID} - xP_{pub}$,$R = rP$。
4.
OnSign
:为了对消息$m$签名,签名者计算在线签名$\delta = H_1(m)r + x \mod q$,最终签名为$(S, \delta, R)$。
5.
Verify
:对于身份$ID$的消息$m$的在线/离线签名$(S, \delta, R)$,当且仅当以下方程成立时被接受:
$e(S + \delta P_{pub}, P) = e(Q_{ID} + H_1(m)R, P_{pub})$
4. 对Xu - Mu - Susilo方案的攻击
4.1 攻击1:无签名者私钥和有效签名的伪造
攻击者在没有签名者秘密密钥和有效签名的情况下产生可伪造签名的步骤如下:
1. 对于伪造消息$m’$,攻击者随机选择$k_1 ∈ Z_q$,计算$R’ = (H_1(m’))^{-1}(-Q_{ID} + k_1P)$。
2. 随机选择$k_2 ∈ Z_q$,设置$S’ = k_2P_{pub}$。
3. 设置$\delta’ = k_1 - k_2$。
4. 消息$m’$的伪造签名为$(S’, \delta’, R’)$。
可以证明伪造签名$(S’, \delta’, R’)$是有效的,因为:
$e(S’ + \delta’ P_{pub}, P) = e(k_2P_{pub} + (k_1 - k_2)P_{pub}, P) = e(k_1P_{pub}, P)$
$e(Q_{ID} + H_1(m)R, P_{pub}) = e(Q_{ID} + H_1(m’)(H_1(m’))^{-1}(-Q_{ID} + k_1P), P_{pub}) = e(Q_{ID} + (-Q_{ID} + k_1P), P_{pub}) = e(k_1P_{pub}, P)$
因此,$e(Q_{ID} + H_1(m)R, P_{pub}) = e(S’ + \delta’ P_{pub}, P)$,这表明该方案是普遍可伪造的。
4.2 攻击2:方案的可延展性
给定消息$m$的有效签名,任何人都可以生成消息$m$的另一个签名,步骤如下:
1. 给定消息$m$的签名$(R, S, \delta)$,攻击者随机选择$a ∈ Z_q$,计算$S’ = S - aP_{pub}$。
2. 计算$\delta’ = \delta + a \mod q$。
3. 消息$m$的另一个签名为$(S’, \delta’, R)$。
显然,伪造签名$(S’, \delta’, R)$也是有效的,这意味着该方案是可延展的。
5. 改进的在线/离线签名方案
为了克服上述伪造攻击,提出了改进方案,具体如下:
1.
Setup
:给定安全参数$k$,PKG选择素数阶$q$的群$G_1$和$G_2$,$P$是$G_1$的生成元,$e: G_1 × G_1 → G_2$是双线性映射,$H_0: {0, 1}^
→ G_1$和$H_1: G_1^2 → Z_q^
$是两个哈希函数,$f: {0, 1}^
→ Z_q^
$是单向函数。PKG随机选择主密钥$s ∈ Z_q^
$并计算$P_{pub} = sP$,发布系统参数${G_1, G_2, q, f, e, P, P_{pub}, H_0, H_1}$,并保密主密钥$s$。
2.
Extract
:给定身份$ID$,PKG计算$Q_{ID} = H_0(ID)$和私钥$D_{ID} = sQ_{ID}$,并安全地将私钥发送给所有者。
3.
OffSign
:签名者随机选择$r, x ∈ Z_q$,计算$(S, R, V)$,其中$S = D_{ID} - xP_{pub}$,$R = rP$,$V = H_1(S, R)r$,并将离线签名对设置为$(S, R)$。
4.
OnSign
:为了对消息$m$签名,签名者计算在线签名$\delta = f(m)V + x \mod q$,最终签名为$(S, \delta, R)$。
5.
Verify
*:对于身份$ID$的消息$m$的在线/离线签名$(S, \delta, R)$,当且仅当以下方程成立时被接受:
$e(S + \delta P_{pub}, P) = e(Q_{ID} + f(m)H_1(S, R)R, P_{pub})$
在改进方案中,签名算法满足在线/离线签名的要求,实际消息签名只需要一次乘法和一次加法运算。签名大小为$2\log_2\rho + \log_2q$,其中$\rho$表示群$G_1$中GDH的安全长度。根据上述验证方程,改进方案很容易实现签名的批量验证,验证的计算成本仅需要两个配对运算符。例如,给定两个签名$(S_1, \delta_1, R_1, m_1)$和$(S_2, \delta_2, R_2, m_2)$,验证如下:
$e(S_1 + S_2 + (\delta_1 + \delta_2)P_{pub}, P) = e(Q_{ID} + (f(m_1)H_1(S_1, R_1)R_1 + f(m_2)H_1(S_2, R_2)R_2), P_{pub})$
6. 安全性分析
在随机预言模型下,如果一个概率多项式时间的伪造者$F$在运行时间$t$内,分别对$H_0$、$H_1$、密钥提取预言机和在线/离线签名预言机进行$q_{H_0}$、$q_{H_1}$、$q_e$和$q_s$次询问,且在伪造在线/离线签名时有优势$\epsilon$,那么可以在时间$t’ < t + (q_{H_1} + q_{H_0} + q_e) + 2q_s + 2)t_m + (q_s + 1)t_{mm}$内,以优势$\epsilon’ > \epsilon - (q_s(q_{h_1} + q_s) + 1)/2^k e(q_e + 1)q_{h_1}$解决CDH问题,其中$e$是自然对数的底数,$t_m$是在$G_1$中计算标量乘法的时间,$t_{mm}$是在$G_1$中执行多指数运算的时间。
证明过程假设对手$F$可以破解改进方案,然后构造一个算法$B$利用$F$来解决CDH问题。设$(X = xP, Y = yP) ∈ G_1 × G_1$是CDH问题的随机实例,作为算法$B$的输入。算法$B$通过与伪造者$F$交互进行以下模拟:
1.
Setup
:算法$B$设置系统公钥$P_{pub} = X = xP$并发送给对手$F$。
2.
回答查询
:
-
H0 - Oracles
:当身份$ID$提交给$H_0$预言机时,$B$抛硬币$T ∈ {0, 1}$,以概率$\theta$得到$0$,以概率$1 - \theta$得到$1$。$B$选择$u ∈ Z_q$,若$T = 0$,则$H_0(ID) = uP$;若$T = 1$,则$H_0(ID) = uY$。最后,$B$将元组$(ID, u, T)$添加到初始为空的列表$L_0$中。
-
Key Extraction Oracles
:当$F$请求与身份$ID$关联的私钥时,$B$从$L_0$列表中恢复相应的$(ID, u, T)$。若$T = 1$,则$B$输出“failure”并停止;否则,将$uP_{pub}$作为与身份$ID$关联的私钥返回给$F$。
-
H1 - Oracles
:当元组$(S, R)$提交给$H_1$预言机时,$B$首先查找列表$L_1$,检查$H_1$是否已为该输入定义。若是,则返回定义的值;否则,$B$选择随机$v ∈ Z_q$并返回给$F$,最后将元组$(v, S, R)$添加到初始为空的列表$L_1$中。
-
OffSign Oracles
:当$F$查询身份$ID$的离线签名时,$F$首先从$L_0$列表中恢复先前定义的值$Q_{ID} = H_0(ID)$,然后随机选择$\alpha, \beta, \gamma ∈ Z_q$,设置$S = \alpha P_{pub}$,$\delta = \beta$,$R = \gamma^{-1}(-Q_{ID} + (\alpha + \beta)P)$。最后,$B$将元组$(S, R, \delta, ID)$添加到$S$ - 列表中,并将$(S, R)$作为离线签名返回给$F$。
-
OnSign Oracles
:当$F$查询身份$ID$和消息$m$的在线签名时,$F$首先从$L_0$列表和$S$ - 列表中分别恢复先前定义的值$Q_{ID} = H_0(ID)$和$(R, S, \delta)$。若$ID$不在$S$ - 列表中,则$B$对$ID$进行离线签名查询。然后,$B$定义哈希值$H_1(R, S) = \frac{\gamma}{f(m)}$,检查$H_1(R, S)$是否在$L_1$ - 列表中定义,若已定义,则$B$停止并输出“failure”;否则,将$\delta$作为消息$m$的在线签名返回。
3.
Output
:最终,$F$输出在线/离线签名$(ID^
, m^
, S^
, R^
, \delta^
)$。根据分叉引理,$B$将$F$回退到它刚刚查询$H_1(R^
, S^
)$的点,并对相同输入返回不同的值进行哈希查询,得到另一个在线/离线签名$(ID^
, m^
, R’^
, S’^
, \delta’^
)$,其中$R^
= R’^
$,$S^
= S’^
$。
综上所述,改进的基于身份的在线/离线签名方案在随机预言模型下对自适应选择消息攻击具有较好的安全性。通过对Xu - Mu - Susilo方案的分析和攻击,我们看到了原方案的不足,而改进方案在保留在线/离线签名优势的同时,增强了安全性,为实际应用提供了更可靠的保障。在实际应用中,我们可以根据具体场景和需求,合理选择和使用签名方案,确保信息的安全和完整性。
改进的基于身份的在线/离线签名方案解析
7. 方案对比与总结
为了更直观地了解改进方案的优势,我们将Xu - Mu - Susilo方案和改进方案进行对比,具体内容如下表所示:
| 方案 | 安全性 | 签名计算复杂度 | 验证计算复杂度 | 签名大小 | 批量验证 |
| — | — | — | — | — | — |
| Xu - Mu - Susilo方案 | 不安全,可被普遍伪造和具有可延展性 | 相对复杂 | 包含一个配对运算 | 未提及明确优势 | 未提及相关特性 |
| 改进方案 | 存在不可伪造,抵御自适应选择消息攻击 | 仅需一次乘法和一次加法运算 | 仅需两个配对运算符 | (2\log_2\rho + \log_2q) | 容易实现 |
从表格中可以清晰地看出,改进方案在安全性上有了显著提升,解决了原方案存在的安全漏洞。在计算复杂度方面,签名和验证的计算都更加高效,特别是签名计算仅需一次乘法和一次加法运算,大大减少了计算量。签名大小也有明确的界定,且改进方案具备容易实现批量验证的特性,这在实际应用中能够提高处理效率。
8. 应用场景与建议
在线/离线签名方案在多个领域都有重要的应用价值,以下是一些具体的应用场景以及使用改进方案的建议:
-
金融交易系统
:在股票交易、电子支付等金融场景中,交易请求往往具有突发性,服务器需要快速对交易信息进行签名认证。改进方案的在线阶段计算高效,能够满足快速响应的需求,同时其安全性可以确保交易信息的完整性和不可伪造性。建议在金融交易系统中部署改进方案时,根据系统的交易量和并发请求情况,合理调整安全参数$k$,以平衡安全性和性能。
-
智能卡应用
:智能卡如银行卡、门禁卡等,其计算能力和存储资源有限。改进方案的离线阶段可以在卡片制造或通电时完成复杂计算,在线阶段利用离线结果快速签名,非常适合智能卡的应用场景。在智能卡应用中,要注意保护卡片的私钥,避免私钥泄露导致安全风险。
-
无线自组网(AODV协议)
:在无线自组网中,节点的资源和能量受限,需要高效的认证机制。改进方案的低计算复杂度和高安全性可以为AODV协议提供可靠的认证保障。在无线自组网中应用时,要考虑网络的动态性和节点的移动性,确保签名方案的稳定性和可靠性。
9. 流程图展示
为了更清晰地展示改进方案的流程,以下是使用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(OffSign):::process
D --> E(OnSign):::process
E --> F(Verify):::process
F --> G{验证通过?}:::decision
G -->|是| H([接受签名]):::startend
G -->|否| I([拒绝签名]):::startend
该流程图展示了改进方案从设置阶段开始,经过密钥提取、离线签名、在线签名,最后到验证阶段的完整流程。根据验证结果,决定是否接受签名,清晰地呈现了方案的执行过程。
10. 未来展望
虽然改进的基于身份的在线/离线签名方案在安全性和效率上有了很大的提升,但在未来的研究和应用中,仍有一些方面值得进一步探索:
-
量子计算的挑战
:随着量子计算技术的发展,现有的密码学方案可能面临新的威胁。未来需要研究改进方案在量子计算环境下的安全性,探索如何抵御量子攻击,确保签名方案的长期安全性。
-
与其他技术的融合
:可以考虑将改进方案与区块链、人工智能等技术进行融合,拓展其应用场景和功能。例如,结合区块链的分布式账本特性,实现更安全、可追溯的签名记录;利用人工智能技术优化签名方案的参数选择和性能调整。
-
多用户和多签名场景
:在实际应用中,可能会涉及多用户之间的协作签名和多签名的需求。未来可以研究如何扩展改进方案,以支持多用户和多签名场景,提高方案的适用性和灵活性。
总之,改进的基于身份的在线/离线签名方案为密码学领域提供了一种更安全、高效的签名解决方案。通过对方案的深入研究和不断优化,有望在更多的应用场景中发挥重要作用,为信息安全提供更可靠的保障。同时,面对未来技术的发展和挑战,我们需要持续关注和探索,不断完善签名方案,以适应不断变化的安全需求。
超级会员免费看
18

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



