当
是密钥生成算法。 是签名算法。 是验证算法。
- 从大小为
的四个(安全的)素数 中选择,使得 和 ,同时满足 ,其中 表示欧拉函数。 - 生成群元素
和 ,其阶为 。 - 选择哈希函数
。 - 最后,运行
以获取安全的私钥和签名密钥 。返回密钥对 ,其中 ,而 。
具体步骤如下:
- 计算消息
的 Paillier 加密 。 - 取 $R = H(\tau || i) $,其中
是哈希函数。 - 计算出元组
,使得 $g^{a}b^{N_{E}} \equiv CR \pmod {N_{E}^{2}} $,其中 是生成群元素。 - 如果
是第一次使用,选择一个长度为 的尚未使用的素数 ,满足 ,计算其逆 和签名 ,并将 存储在列表 中。否则,从列表 中取出 。 - 从
中随机均匀选择一个元素 ,并使用 和 计算 ,使得 $x^{eN_E} \equiv g^{s}0h_i g^{a} \pmod{N_S} $。 - 返回
,其中 是验证标记。
这个算法的主要目的是将消息
该算法首先执行一系列检查:
- 检查是否存在索引
使得 ,或者签名的验证 成立。 - 检查是否有两个索引
使得 。
如果其中一项检查为真,则该算法将中止。否则:
- 设置
并在密文上评估线性函数 。 - 计算新的密文
。 - 通过对标签进行评估以获得新的标签
,计算如下: - 返回密文
。
如果所有检查都通过,算法输出1(即
CMP14还存在一个关于函数


评论区
欢迎分享你的思考、补充或问题。