密码学中的参数化拆分系统与无证书加密方案
1. 参数化拆分系统在离散对数问题中的应用
在处理离散对数问题(DLP)时,参数化拆分系统展现出了独特的优势。在应用某些私钥到特定算法之前,当选择合适的参数 (t_s) 以保证最有效的时间复杂度时,预计算的成本可以忽略不计。
通过对比不同方法恢复私钥的复杂度,我们能更清晰地看到参数化拆分系统的优势。以下是不同文献中私钥恢复复杂度的对比表格:
| 私钥来源 | 方法 | 指数运算次数 | 存储量 |
| — | — | — | — |
| [7] | [7] | 252 | 233 |
| [7] | 我们的(算法 3),(t_s = 7) | 247.7 | 244.5 |
| [7] | 我们的(算法 4),(t_s = 7) | 243.5 | 241 |
| [4] | [4] | 278 | 243.9 |
| [4] | 我们的(算法 3),(t_s = 9) | 265.5 | 263.1 |
| [4] | 我们的(算法 4),(t_s = 9) | 261.6 | 259.2 |
从表格中可以看出,参数化拆分系统及其随机化版本能显著降低离散对数问题的复杂度。
对于 Hoffstein 和 Silverman 提出的指数 (x = x_1x_2x_3 \in Z_{2^{1000}-1}),当 (wt(x_1) = 2),(wt(x_2) = 2) 和 (wt(x_3) = 11) 时,我们可以通过一系列操作来求解 (x)。具体步骤如下:
1. 令 (y = g^x),其中 (x = x_1x_2x_3),且 (x_i) 的权重为 (2,2,11)。
2. 按照特定技巧,将 (x) 重写为 (x = 2^k\overline{x}_1\overline{x}_2x_3),其中 (0 \leq k < n),且每个 (\overline{x}_i) 是与 (x_i) 在同一等价类中的无旋转元素。
3. 进一步将 (x_3) 拆分为 (x_3 = x_3’ + x_3’‘),其中 (x_3’) 和 (x_3’‘) 的权重分别为 3 和 8。
4. 通过检查方程 (y2^{-k}\overline{x}_1^{-1}\overline{x}_2^{-1}g^{-x_3’} = g^{x_3’‘}) 来找到 (x)。
在 [1] 中,Cheon 和 Kim 对 (k) 进行修改,使 (x_3’‘) 成为无旋转元素,此时复杂度约为 (2^{55.9})。而结合参数化拆分系统和无旋转的概念,复杂度会更小。
2. 无证书加密方案的相关研究
无证书公钥密码学(CL - PKC)是一种介于基于身份的密码学和基于证书的公钥密码学之间的有趣且实用的方法。它消除了基于身份的密码学中的密钥托管问题,同时避免了证书在公钥基础设施(PKI)中带来的操作困难。
在无证书加密(CLE)方案中,用户的私钥由两部分组成:一部分是由密钥生成中心(KGC)使用主密钥生成的部分私钥(PPK),另一部分是用户自己生成的秘密值。用户还会发布从其秘密值派生的公钥。
在安全性模型方面,有 Type I 和 Type II 两种攻击者模型。Type I 攻击者模拟外部攻击者,能替换用户的公钥、获取 PPK 和私钥,并进行解密查询;Type II 攻击者模拟“诚实但好奇”的 KGC,拥有主密钥,能获取私钥和解密查询,但最初不允许替换公钥(在稍强的模型中,在不导致方案轻易被破解的情况下可以替换)。
目前,已有的针对强 Type I 攻击者的 CLE 方案大多使用随机预言机模型。而我们提出了两种解决方案来解决 CLE 安全模型中的问题:
1.
通用构造
:使用任何 CLE 方案和任何普通公钥加密(PKE)方案作为组件,这些组件只需对被动攻击者安全。与以往方法不同,该构造不依赖随机预言机,而是使用 Naor - Yung 和 Sahai 技术的扩展,并结合非交互式零知识(NIZK)证明,但该构造由于使用 NIZK 证明,在实际应用中不太实用。
2.
具体高效构造
:基于 Waters 基于身份的加密(IBE)方案,通过结合相关思想进行修改,得到一个在标准模型下对强攻击者安全的 CLE 方案。该方案的公钥和密文相对较短,其安全性基于 DBDH 问题的一个轻微且自然的推广。
以下是无证书加密方案的主要算法流程:
1.
Setup
:输入安全参数 (1^k),返回主私钥 (msk) 和主公钥 (mpk)。
2.
Extract
:输入 (mpk)、(msk) 和标识符 (ID),输出部分私钥 (d_{ID})。
3.
SetSec
:输入 (mpk) 和实体标识符 (ID),输出该身份的秘密值 (x_{ID})。
4.
SetPriv
:输入 (mpk)、部分私钥 (d_{ID}) 和秘密值 (x_{ID}),输出用户的完整私钥 (sk_{ID})。
5.
SetPub
:输入 (mpk) 和秘密值 (x_{ID}),输出用户的公钥 (pk_{ID})。
6.
Encrypt
:输入 (mpk)、用户身份 (ID)、公钥 (pk_{ID}) 和消息 (m),输出密文 (C) 或错误符号 (\perp)。
7.
Decrypt
:输入 (mpk)、私钥 (sk_{ID}) 和密文 (C),返回消息 (m) 或错误符号 (\perp)。
在安全性定义方面,有 Strong Type I 和 Strong Type II 两种安全定义,分别对攻击者的行为进行了约束。例如,在 Strong Type I 安全定义中,攻击者不能在任何时候提取挑战身份 (ID^*) 的私钥,不能提取已替换公钥的身份的私钥等。
综上所述,参数化拆分系统在离散对数问题中能有效降低复杂度,而无证书加密方案在标准模型下的安全构造为密码学的发展提供了新的思路和方法。
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(SetSec):::process
D --> E(SetPriv):::process
E --> F(SetPub):::process
F --> G{是否加密?}:::decision
G -- 是 --> H(Encrypt):::process
G -- 否 --> I{是否解密?}:::decision
H --> J(Decrypt):::process
I -- 是 --> J
I -- 否 --> K([结束]):::startend
J --> K
这个流程图展示了无证书加密方案的主要流程,从系统设置开始,经过各个密钥生成步骤,然后根据需求进行加密或解密操作,最后结束流程。
3. 无证书加密方案安全性模型的深入探讨
3.1 为何考虑强解密预言机
对于是否应该采用 Strong Type I 和 Strong Type II 安全模型来衡量无证书加密方案的安全性,存在一定的争议。有观点认为,攻击者应能获取在现实中可能得到的信息,因此可以为其提供预言机。例如,攻击者可能通过观察系统对密文的处理或威胁用户来获取解密信息,所以需要模拟攻击者替换公钥的能力。
然而,也有人认为在实际应用中,接收者只会使用自己的原始私钥进行解密,因此不需要为攻击者提供针对任意公钥的解密预言机。但我们认为该研究仍具有理论意义,主要原因如下:
-
解决理论猜想
:此前有猜想认为无法在标准模型下构造同时对 Strong Type I 和 Strong Type II 攻击者都安全的方案,我们的研究证明了该猜想是错误的。
-
保障弱模型安全
:即使强安全模型在实际中可能不太实用,但在该模型下安全的方案能保证在更实用的弱安全模型下也安全。例如,我们提出的通用构造表明可以基于通用假设构建无证书加密方案。
-
理论研究价值
:我们的工作展示了一个多项式时间的方案可以在允许攻击者访问非多项式时间函数(如对任意公钥加密的密文进行解密)的模型下保持安全,这在理论研究上具有一定的价值。
3.2 强安全模型下的攻击游戏
Strong Type I 和 Strong Type II 安全定义都基于对标准 IND - CCA 攻击游戏的扩展。在这两种游戏中,我们关注概率差 (Adv_{CL - CCA - X}^A(k) = |Pr[Expt_{CL - CCA - X}^A(0, k) = 1] - Pr[Expt_{CL - CCA - X}^A(1, k) = 1]|),其中 (X \in {I, II}),(A) 是任意概率多项式时间(PPT)攻击者 (A = (A_1, A_2))。
攻击游戏 (Expt_{CL - CCA - X}^A(b, k)) 的具体流程如下:
1. ((mpk, msk) \stackrel{\$}{\leftarrow} Setup(1^k)):生成主公共参数和主秘密参数。
2. ((m_0, m_1, ID^
, state) \stackrel{\$}{\leftarrow} A_1(1^k, mpk, aux)):攻击者 (A_1) 输出两个等长消息、挑战身份和状态信息。
3. (C^
\stackrel{\$}{\leftarrow} Encrypt(m_b, pk_{ID^
}, ID^
, mpk)):使用挑战消息 (m_b) 生成挑战密文。
4. (b’ \stackrel{\$}{\leftarrow} A_2(C^*, state)):攻击者 (A_2) 尝试猜测挑战消息的比特 (b)。
5. 输出 (b’)。
Type I 和 Type II 安全模型的区别在于 (aux) 的值和攻击者可访问的预言机:
-
Type I 模型
:代表外部攻击者,(aux = \varnothing)。攻击者可访问的预言机包括请求公钥、替换公钥、提取部分私钥、提取私钥和强解密预言机。
-
Type II 模型
:模拟“诚实但好奇”的 KGC,(aux = msk)。攻击者可访问的预言机与 Type I 类似,但不能查询部分私钥预言机(因为可自行计算),且 (A_1) 不能输出已替换公钥的挑战身份。
以下是不同安全模型下攻击者权限的对比表格:
| 安全模型 | (aux) 值 | 可访问预言机 |
| — | — | — |
| Strong Type I | (\varnothing) | 请求公钥、替换公钥、提取部分私钥、提取私钥、强解密预言机 |
| Strong Type II | (msk) | 请求公钥、替换公钥、提取私钥、强解密预言机 |
4. 总结
通过对参数化拆分系统在离散对数问题中的应用以及无证书加密方案的研究,我们可以得出以下结论:
- 参数化拆分系统在处理离散对数问题时,通过合理选择参数和结合相关概念,能够有效降低复杂度,为解决离散对数问题提供了更高效的方法。
- 无证书加密方案在标准模型下的安全构造为密码学的发展带来了新的突破。我们提出的通用构造和具体高效构造为无证书加密方案的安全性提供了保障,尽管通用构造在实际应用中可能不太实用,但它为理论研究提供了重要的思路。
- 虽然强解密预言机在实际应用中的必要性存在争议,但对其进行研究具有重要的理论意义,有助于推动密码学理论的发展。
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(生成系统参数):::process
B --> C(攻击者 \(A_1\) 输出信息):::process
C --> D{安全模型类型}:::decision
D -- Type I --> E(攻击者访问 Type I 预言机):::process
D -- Type II --> F(攻击者访问 Type II 预言机):::process
E --> G(生成挑战密文):::process
F --> G
G --> H(攻击者 \(A_2\) 猜测比特):::process
H --> I([结束游戏]):::startend
这个流程图展示了强安全模型下攻击游戏的主要流程,从开始游戏到生成系统参数,根据不同的安全模型攻击者访问不同的预言机,然后生成挑战密文,最后攻击者进行猜测并结束游戏。
综上所述,密码学中的参数化拆分系统和无证书加密方案在理论和实践上都具有重要的研究价值,未来有望在更多领域得到应用和发展。
超级会员免费看
1315

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



