C-L签名介绍

C-L签名即为Camenisch-Lysyanskaya签名,由作者的名字命名,于2001年提出。原论文《A Signature Scheme with Efficient Protocols》,链接:https://link.springer.com/chapter/10.1007%2F3-540-36413-7_20

C-L签名可用于群签名或聚合签名的场景中,可以提高签名的匿名性,并降低签名的计算复杂度。C-L签名也是一种适用于零知识证明的签名方案,能够对一组数据进行签名,并且能够体现这些被证明组件的关系。这样的性质恰好与零知识证明所需的性质契合。

介绍C-L签名之前,首先需要介绍双线性群的概念。

是阶为素数的乘法循环群,的一个生成元。双线性群是满足下列性质的一个映射:

  1. 双线性性。对任意的,有
  2. 非退化性。
  3. 可计算性。对所有的,存在有效的算法计算

 

与大多签名机制类似,C-L签名包括三个步骤:KeyGen,Sign和Verify。

密钥生成算法:设为阶素数(长度为 bit)的双线性群,。随机选择,,输出私钥,公钥

签名算法:输入消息和私钥,选择一个随机数,计算,,输出签名

验证算法:输入消息M的签名,利用公钥进行验证。如果,并且,则输出1,否则输出0。

 

Why it works

因为

因此,

 

类似地,

因此,

 

为了签名一组消息,其中为该组消息中最长消息的长度,即消息空间的二进制串长度,任何消息均在上。强RSA的模为,其中为安全素数,模的长度为。在二次剩余群中随机选择元素作为公钥,作为私钥,随机选择,其中,这里为一个安全参数。计算满足,所得三元组为消息的CL签名。

验证签名是,须要验证:

满足以上条件,则签名验证通过。

 

 

 

 

 

你可能感兴趣的:(密码学,区块链,信息安全)