具有消息依赖开启功能的高效群签名方案解析
1. 高效实例化概述
为实现高效方案,需探讨如何实例化通用构造中使用的构建模块。对于非交互式证明,Groth - Sahai证明系统是明显选择,因为除它之外,尚无已知的实用NIZK证明系统构造。然而,采用Groth - Sahai证明系统时,其他构建模块会受限制,因其能证明的定理类型有限。具体而言,其他构建模块需具有结构保留性,且定理不应涉及底层双线性映射目标群$G_T$的元素。所以,需选择满足此要求的IBE方案作为构建模块,但目前尚无已知此类方案,这意味着直接从Groth - Sahai证明构建通用构造的高效实例并不容易。
2. 基于决策线性假设的k - 弹性IBE方案
我们提出的k - 弹性IBE方案是通过对原始Heng - Kurosawa方案进行几处修改得到的:
1. 基于决策线性(DLIN)假设而非决策Diffie - Hellman(DDH)假设。
2. 将其设计为密钥封装机制而非加密方案。
3. 修改为在固定大小密文中封装足够长的会话密钥,具体是在三个群元素的密文中封装$l$个群元素的会话密钥。
该方案具体步骤如下:
- 设置(Setup) :
设$par = (u, v, h, {D_{i,j} = u^{d_{i,j}}h^{d’‘ {i,j}}, \tilde{D} {i,j} = v^{d’ {i,j}}h^{d’‘ {i,j}}} {i\in[l],j\in[k]})$和$mk = (d_i(X), d’_i(X), d’‘_i(X)) {i\in[l]}$,其中$d_i, d’ i, d’‘_i$是多项式,定义为$d_i(X) = \sum {j = 0}^{k}d_{i,j}X^j$,$d’ i(X) = \sum {j = 0}^{k}d’ {i,j}X^j$,$d’‘_i(X) = \sum {j = 0}^{k}d’‘ {i,j}X^j$,对于所有$i\in[l]$。
- 密钥提取(Key Extract) :
用户ID的解密密钥为$dk {ID} = {d_i(ID), d’ i(ID), d’‘_i(ID)} {i\in[l]}$。
- 加密(Encrypt) :
为封装会话密钥,从$Z_p$中随机选择$\rho$和$\tilde{\rho}$,计算$C_{IBE} = (u^{\rho}, v^{\tilde{\rho}}, h^{\rho + \tilde{\rho}})$,封装的会话密钥$K_{IBE} = ((\prod_{j = 0}^{k}D_{ID,j}^{1,j})^{\rho}(\prod_{j = 0}^{k}\tilde{D} {ID,j}^{1,j})^{\tilde{\rho}}, \cdots, (\prod {j = 0}^{k}D_{ID,j}^{l,j})^{\rho}(\prod_{j = 0}^{k}\tilde{D} {ID,j}^{l,j})^{\tilde{\rho}})$。
- 解密(Decrypt) :
从密文$C {IBE} = (C_1, C_2, C_3)$中解封装会话密钥,计算$(C_1^{d_1(ID)}C_2^{d’_1(ID)}C_3^{d’‘_1(ID)}, \cdots, C_1^{d_l(ID)}C_2^{d’_l(ID)}C_3^{d’‘_l(ID)})$。
该方案的安全性基于DLIN假设,即给定元组$(u, v, h, u^r, v^{\tilde{r}}, h^{\tilde{\tilde{r}}})$,很难高效判断$r + \tilde{r} = \tilde{\tilde{r}}$是否成立。
下面通过一个mermaid流程图展示该方案的流程:
graph TD;
A[设置] --> B[密钥提取];
B --> C[加密];
C --> D[解密];
3. 其他构建模块
其他构建模块的实例化如下:
- Groth - Sahai证明 :这是一种用于具有双线性映射的群的高效非交互式证明系统,能以零知识方式证明多种代数方程成立,有助于避免一般NIZK技术带来的高开销。
- Abe - Haralambiev - Ohkubo签名 :这是一种结构保留签名,签名和验证过程不使用非代数运算,这一特性在与Groth - Sahai证明结合使用时至关重要,因为Groth - Sahai证明无法处理哈希等非代数关系。
- Cramer - Shoup的决策线性变体 :由于Groth - Sahai证明高度依赖配对,在当前设置下不能期望DDH假设成立,因此需要将Cramer - Shoup加密修改为使用DLIN假设。Shacham提出了这样的变体,我们进一步将其修改为基于标签的,以采用一次性签名技术,并将其作为密钥封装机制,以提高效率。
- 编码函数 :第一个编码函数需将$(i, vk_i)$编码到Abe - Haralambiev - Ohkubo方案的消息空间中。验证密钥$vk_i$由$G$的十六个元素表示,签名者的身份$i$是整数,可高效编码为$g^i$,解码也很高效。第二个编码函数同理,$(i, vk_i, cert_i, s)$可编码为$G$的三十一个群元素。
以下是这些构建模块的对比表格:
| 构建模块 | 特点 |
| ---- | ---- |
| Groth - Sahai证明 | 高效非交互,零知识证明多种代数方程 |
| Abe - Haralambiev - Ohkubo签名 | 结构保留,无 非代数运算 |
| Cramer - Shoup决策线性变体 | 基于DLIN假设,标签 基,密钥封装 |
| 编码函数 | 高效编码和解码 |
当使用我们的Heng - Kurosawa k - 弹性IBE的决策线性变体、Groth - Sahai证明、Cramer - Shoup加密的决策线性变体、Abe - Haralambiev - Ohkubo签名方案以及通过Bellare和Shoup变换从Okamoto身份验证方案得到的一次性签名方案实例化构造时,所得方案满足具有k - 有界令牌的开启者匿名性、接纳者匿名性和可追踪性。
4. 效率比较
在定理7的实例化中,签名包含$G$的501个元素和$Z_p$的2个元素。作为参考,Groth的群签名签名由$G$的52个元素和$Z_p$的1个元素组成。消息依赖开启功能使签名大小大约膨胀了10倍,但我们的方案仍然相当实用,至少可在实际系统中实现。
具有消息依赖开启功能的高效群签名方案解析
5. 构建模块详细介绍
5.1 Abe - Haralambiev - Ohkubo签名
该签名方案的具体步骤如下:
- 密钥生成 :
验证密钥$vk = (g’‘, h’‘, g’, h’, {g_i, h_i} {i\in[l]}, a_0, \tilde{a}_0, b_0, \tilde{b}_0, a_1, \tilde{a}_1, b_1, \tilde{b}_1)$,其中$g’, h’\in G \setminus {1}$,$g_i \leftarrow g’^{\gamma_i}$和$h_i \leftarrow h’^{\delta_i}$(随机$\gamma_i, \delta_i \leftarrow Z_p^ $,$i\in[l]$),$g’’ \leftarrow g’^{\gamma’‘}$,$h’’ \leftarrow h’^{\delta’‘}$(随机$\gamma’‘, \delta’’ \leftarrow Z_p^ $),$(a_0, \tilde{a}_0, a_1, \tilde{a}_1) \leftarrow Extend(g’, g^{\alpha})$(随机$\alpha \leftarrow Z_p^ $),$(b_0, \tilde{b}_0, b_1, \tilde{b}_1) \leftarrow Extend(h’, g^{\beta})$(随机$\beta \leftarrow Z_p^ $)。签名密钥$sk = (\alpha, \beta, \gamma’‘, \delta’‘, {\gamma_i, \delta_i} {i\in[l]})$。
- 签名 :
对于消息$(m_1, \cdots, m_l) \in G^l$,从$Z_p$中随机选择$\zeta, \rho, \tau, \phi, \omega$,计算$z = \tilde{g}^{\zeta}$,$r = \tilde{g}^{\alpha - \rho\tau - \gamma}z^{\zeta} \prod_{i = 1}^{l} m_i^{-\gamma_i}$,$s = g’^{\rho}$,$t = \tilde{g}^{\tau}$,$u = \tilde{g}^{\beta - \phi\omega - \delta}z^{\zeta} \prod_{i = 1}^{l} m_i^{-\delta_i}$,$v = \frac{h^{\phi}}{r}$,$w = \tilde{g}^{\omega}$,输出$(z, r, s, t, u, v, w)$作为签名。
- 验证 :
对于签名和消息对$(m, \sigma) = ((m_1, \cdots, m_l), (z, r, s, t, u, v, w))$,验证两个方程$e(a_0, \tilde{a} 0)e(a_1, \tilde{a}_1) = e(g’‘, z)e(g’, r)e(s, t) \prod {i = 1}^{k} e(g_i, m_i)$和$e(b_0, \tilde{b} 0)e(b_1, \tilde{b}_1) = e(h’‘, z)e(h’, u)e(v, w) \prod {i = 1}^{l} e(h_i, m_i)$。若两个方程都成立,输出$\top$;否则输出$\bot$。
下面是该签名方案流程的mermaid流程图:
graph TD;
A[密钥生成] --> B[签名];
B --> C[验证];
5.2 Shacham的Cramer - Shoup加密变体
该方案进一步修改了Shacham的变体,具体如下:
- 密钥生成 :
公钥$pk = (u, v, h, X = u^xh^{x’‘}, \tilde{X} = v^{x’}h^{x’‘}, Y = u^yh^{y’‘}, \tilde{Y} = v^{y’}h^{y’‘}, {Z_i = u^{z_i}h^{z’ i}, \tilde{Z}_i = v^{z’_i}h^{z’‘_i}} {i\in[l]})$,对应私钥$dk = (x, x’, x’‘, y, y’, y’‘, {z_i, z’ i, z’‘_i} {i\in[l]})$。
- 加密 :
为使用标签$t$封装会话密钥,从$Z_p$中随机选择$r$和$\tilde{r}$,计算密文$C_{PKE} = (u^r, v^{\tilde{r}}, h^{r + \tilde{r}}, (XY^t)^r(\tilde{X}\tilde{Y}^t)^{\tilde{r}})$。会话密钥为$(Z_1^r\tilde{Z}_1^{\tilde{r}}, \cdots, Z_l^r\tilde{Z}_l^{\tilde{r}})$。
- 解密 :
为使用标签$t$解封装密文$(c_1, c_2, c_3, c_4)$,验证$c_1^{x + ty}c_2^{x’ + ty’}c_3^{x’’ + ty’‘} = c_4$是否成立。若不成立,输出$\bot$;否则输出$(c_1^{z_1}c_2^{z’_1}c_3^{z’‘_1}, \cdots, c_1^{z_l}c_2^{z’_l}c_3^{z’‘_l})$。
6. 安全性证明
6.1 开启者匿名性证明
设$A$是针对该方案的开启者匿名性攻击者。通过构造一个攻击底层(k - 弹性)IBE方案的攻击者$B$,将其成功概率与$A$的成功概率相关联。具体步骤如下:
1. 设置 :$B$接收身份基KEM的主公钥$par$,生成其余群公钥,设置$gpk$和$gsk_i$,并运行$A$。
2. 令牌查询(阶段I) :$A$进行令牌查询时,$B$进行密钥提取查询并响应$A$。
3. 挑战 :$A$请求挑战时,$B$计算两个签名,生成一次性签名密钥对,请求挑战,计算密文和会话密钥,生成模拟证明,签名并发送挑战给$A$。
4. 令牌查询(阶段II) :$A$继续进行令牌查询,$B$按之前方式响应。
5. 猜测 :$A$输出比特$b’$,$B$根据$b’$是否等于$b$输出结果。
由于k - 弹性身份基KEM的安全性,可证明开启者匿名性。
6.2 接纳者匿名性证明
设$A$是针对该方案的接纳者匿名性攻击者。构造攻击底层基于标签的KEM的攻击者$B$,具体步骤如下:
1. 设置 :$B$生成一次性签名密钥对,接收基于标签的KEM公钥,生成其余群公钥,设置$gpk$和$gsk_i$,运行$A$。
2. 开启查询(阶段I) :$A$提交开启查询时,$B$根据情况响应。
3. 挑战 :$A$请求挑战时,$B$计算挑战并发送给$A$。
4. 开启查询(阶段II) :$A$继续提交开启查询,$B$按之前方式响应。
5. 猜测 :$A$输出比特$b$,$B$根据情况输出结果。
通过证明事件$F$(特定开启查询情况)的概率可忽略,完成接纳者匿名性证明。
6.3 可追踪性证明
设$A$是针对该方案的可追踪性攻击者。对$A$可能产生的成功伪造进行分类:
- 伪造开启为$\bot$:此时$C_{PKE}$或$C_{IBE}$无效,或$\chi \odot K_{IBE}^{-1} \odot K_{PKE}^{-1}$无法解析,$\pi$是错误陈述的无效证明。
- 伪造开启为$i \in N$:此时$C_{PKE}$、$C_{IBE}$和$\chi$已正确解密,解析$\chi \odot K_{IBE}^{-1} \odot K_{PKE}^{-1}$后有三种情况:
1. 验证失败。
2. 证书是伪造的。
3. 签名是伪造的。
通过构造针对底层EUF - CMA签名方案的伪造者$B$和$B’$,分别对情况3和情况2的伪造概率进行界定。由于底层非交互式证明系统,其他情况的伪造概率也可界定。
以下是安全性证明相关步骤的表格总结:
| 安全性属性 | 攻击者构造 | 主要步骤 |
| ---- | ---- | ---- |
| 开启者匿名性 | 攻击者$B$攻击(k - 弹性)IBE方案 | 设置、令牌查询、挑战、令牌查询、猜测 |
| 接纳者匿名性 | 攻击者$B$攻击基于标签的KEM | 设置、开启查询、挑战、开启查询、猜测 |
| 可追踪性 | 伪造者$B$和$B’$攻击EUF - CMA签名方案 | 分类伪造情况,构造伪造者界定概率 |
综上所述,该具有消息依赖开启功能的群签名方案在理论上具有良好的安全性和一定的实用性,尽管签名大小有所膨胀,但仍可在实际系统中考虑实现。
超级会员免费看

902

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



