密码学签名方案与钱包技术解析
立即解锁
发布时间: 2025-08-31 01:49:39 阅读量: 7 订阅数: 21 AIGC 

### 密码学签名方案与钱包技术解析
#### 1. CSI - SharK签名方案
CSI - SharK是一种新的签名方案,它是CSI - FiSh的变体,具有更适合共享的密钥。以下是该方案的详细步骤:
- **设置阶段(Setup)**:
- 一个可信方输入安全参数 \(1^{\lambda}\) 生成公共参数 \(ppsgn\)。
- 除了涉及的哈希函数外,其工作方式与CSI - FiSh.Setup算法相同。这里,算法选择一个哈希函数 \(H': \{0, 1\}^* \to \{0, \ldots, S - 1\}^T\),其中 \(S\) 和 \(T\) 是正整数,且 \(T < S\)。
- 返回 \(ppsgn = (p, g, N, E_0, H', S, T)\)。
- **密钥生成阶段(KeyGen)**:
- 输入 \(ppsgn\),采样 \(a \in \mathbb{Z}_N\)。
- 生成一个(超级)例外集 \(R_{S - 1} = \{r_0 = 0, r_1 = 1, r_2, \ldots, r_{S - 1}\}\)。
- 计算曲线 \(E_{A_i} = [r_ia]E_0\),对于所有 \(i \in [S - 1]\)。
- 设置私钥 \(sk = a\),公钥 \(pk = (R_{S - 1}, \{E_{A_i}\}_{i = 1}^{S - 1})\)。
- **签名阶段(Sign)**:
- 签名者使用公共参数 \(ppsgn\) 和私钥 \(sk = a\) 对消息 \(m \in \{0, 1\}^*\) 进行签名。
- 采样 \(b_i \in \mathbb{Z}_N\),对于所有 \(i \in [T]\)。
- 计算曲线 \(E_{B_i} = [b_i]E_0\),挑战向量 \((h_1, \ldots, h_T) = H'(E_{B_1}|| \ldots ||E_{B_T}||m)\) 和响应 \(z_i = (b_i - r_{h_i} \cdot a) \bmod N\),对于所有 \(i \in [T]\)。
- 返回签名 \(\sigma = (h, z)\),其中 \(h = \{h_i\}_{i = 1}^{T}\) 和 \(z = \{z_i\}_{i = 1}^{T}\)。
- **验证阶段(Verify)**:
- 解析签名 \(\sigma = (h, z)\),其中 \(h = \{h_i\}_{i = 1}^{T}\) 和 \(z = \{z_i\}_{i = 1}^{T}\)。
- 计算 \(E_{B_i} = [z_i]E_{A_{h_i}}\),对于所有 \(i \in [T]\),并计算 \((h'_1, \ldots, h'_T) = H'(E_{B_1}|| \ldots ||E_{B_T}||m)\)。
- 如果 \((h_1, \ldots, h_T) = (h'_1, \ldots, h'_T)\),返回1,否则返回0。
该方案的正确性基于 \(E_{B_i} = [b_i]E_0\) 可以通过计算 \([z_i]E_{A_{h_i}}\) 恢复。在MT - GAIP和 \(R_{S - 1}\) - VPwAI问题的困难性假设下,且假设 \(H'\) 被建模为随机预言机,CSI - SharK签名方案是UF - CMA安全的。
以下是CSI - SharK签名方案的流程表格:
| 阶段 | 输入 | 操作 | 输出 |
| ---- | ---- | ---- | ---- |
| Setup | \(1^{\lambda}\) | 选择哈希函数 \(H'\),生成公共参数 | \(ppsgn = (p, g, N, E_0, H', S, T)\) |
| KeyGen | \(ppsgn\) | 采样 \(a\),生成例外集,计算曲线 | \(sk = a\),\(pk = (R_{S - 1}, \{E_{A_i}\}_{i = 1}^{S - 1})\) |
| Sign | \(ppsgn\),\(sk\),\(m\) | 采样 \(b_i\),计算曲线、挑战向量和响应 | \(\sigma = (h, z)\) |
| Verify | \(ppsgn\),\(pk\),\(m\),\(\sigma\) | 解析签名,计算曲线和挑战向量 | 1或0 |
#### 2. 具有完美可重随机化密钥的签名方案
具有完美可重随机化密钥的签名方案是一个由PPT算法组成的元组 \(RSig = (RSig.Setup, RSig.KeyGen, RSig.Sign, RSig.Verify, RSig.Randsk, RSig.Randpk)\),与消息空间 \(M\) 和随机空间 \(R\) 相关联,并满足以下要求:
- **私钥重随机化(Randsk)**:输入公共参数 \(pp\)、私钥 \(sk\) 和随机数 \(\rho \in R\),输出重随机化后的私钥 \(sk'\)。
- **公钥重随机化(Randpk)**:输入公共参数 \(pp\)、公钥 \(pk\) 和随机数 \(\rho \in R
0
0
复制全文
相关推荐









