1 门限签名

门限签名是普通数字签名的一个重要分支,是门限秘密共享技术和数字签名的一种结合。1991年,Desmedt-Frankel首次提出了 基于RSA的实用门限签名算法_数字签名门限签名方案。 基于RSA的实用门限签名算法_数字签名门限签名方案是指由 基于RSA的实用门限签名算法_签名验证_03 个成员组成一个签名群体,该群体有一对公钥和私钥,群体内大于等于 基于RSA的实用门限签名算法_区块链技术_04 个合法、诚实的成员组合可以代表群体用群私钥进行签名,任何人可利用该群体的公钥进行签名验证。这里 基于RSA的实用门限签名算法_区块链技术_04 是门限值,只有大于等于 基于RSA的实用门限签名算法_区块链技术_04 个合法成员才能代表群体进行签名,群体中任何基于RSA的实用门限签名算法_签名验证_07个或更少的成员不能代表该群体进行签名,同时任何成员不能假冒其他成员进行签名。采用门限签名方式可以实现权力分配,避免滥用职权。

2 基于RSA的门限签名

本算法[1]由IBM实验室提出,算法有以下特点:

1. it is unforgeable and robust in the random oracle model, assuming the RSA problem is hard;
2. signature share generation and verification is completely non-inter-active;
3. the size of an individual signature share is bounded by a constant times the size of the RSA modulus.

算法流程:

基于RSA的实用门限签名算法_密码_08

 

2.1 RSA算法

2.1.1 RSA加解密

首先,RSA算法的安全性是建立在大整数因子分解的困难性之上的。

  • 秘钥生成:选择两个互异的大素数基于RSA的实用门限签名算法_密码_09基于RSA的实用门限签名算法_签名验证_10,二者保密。计算基于RSA的实用门限签名算法_签名验证_11,公开基于RSA的实用门限签名算法_签名验证_03基于RSA的实用门限签名算法_签名验证_13基于RSA的实用门限签名算法_区块链技术_14保密,选择一个公开的随机数基于RSA的实用门限签名算法_区块链技术_15,满足基于RSA的实用门限签名算法_区块链技术_16,计算基于RSA的实用门限签名算法_数字签名_17基于RSA的实用门限签名算法_签名验证_18保密。此时,公钥为基于RSA的实用门限签名算法_签名验证_19,私钥为基于RSA的实用门限签名算法_区块链技术_20
  • 加密:加密结果基于RSA的实用门限签名算法_区块链技术_21,已知条件基于RSA的实用门限签名算法_正确性证明_22,公钥基于RSA的实用门限签名算法_签名验证_19
  • 解密:解密结果基于RSA的实用门限签名算法_数字签名_24,已知条件基于RSA的实用门限签名算法_数字签名_25,私钥基于RSA的实用门限签名算法_区块链技术_26

2.1.2 RSA签名验签

选取整数基于RSA的实用门限签名算法_签名验证_11,消息空间与签名空间均为整数空间,即基于RSA的实用门限签名算法_正确性证明_28,定义秘钥集合基于RSA的实用门限签名算法_签名验证_29

基于RSA的实用门限签名算法_签名验证_30,Bob要对基于RSA的实用门限签名算法_密码_31签名,取基于RSA的实用门限签名算法_签名验证_32基于RSA的实用门限签名算法_密码_33,于是验证等式基于RSA的实用门限签名算法_签名验证_34是否成立。

2.2 系统初始化

系统中有基于RSA的实用门限签名算法_数字签名_35个参与者,编号分别为基于RSA的实用门限签名算法_密码_36,有一个可信的dealer和一个敌手adversary。dealer选择两个长度(512bit)相等的素数基于RSA的实用门限签名算法_密码_09基于RSA的实用门限签名算法_签名验证_10,设基于RSA的实用门限签名算法_区块链技术_39,其中基于RSA的实用门限签名算法_正确性证明_40也都是素数。RSA模基于RSA的实用门限签名算法_签名验证_11,令基于RSA的实用门限签名算法_密码_42,并选择公共一个素数指数基于RSA的实用门限签名算法_正确性证明_43

此时,RSA公钥为基于RSA的实用门限签名算法_数字签名_44

2.3 密钥分享

接下来,dealer选择基于RSA的实用门限签名算法_签名验证_45,满足基于RSA的实用门限签名算法_区块链技术_46,即基于RSA的实用门限签名算法_签名验证_18就是要分享的秘密值。设置基于RSA的实用门限签名算法_数字签名_48,dealer随机的选择基于RSA的实用门限签名算法_区块链技术_49为门限值。即构成的关于基于RSA的实用门限签名算法_正确性证明_50次多项式为基于RSA的实用门限签名算法_密码_51

对于基于RSA的实用门限签名算法_正确性证明_52,计算分享的密钥值基于RSA的实用门限签名算法_数字签名_53基于RSA的实用门限签名算法_正确性证明_54就是对于参与者基于RSA的实用门限签名算法_数字签名_55的私钥基于RSA的实用门限签名算法_密码_56

接下来,计算 verification keys,用于验证签名的是否有效。dealer选择一个随机值基于RSA的实用门限签名算法_数字签名_57,并计算基于RSA的实用门限签名算法_密码_58,令基于RSA的实用门限签名算法_数字签名_59

接下来,计算拉格朗日系数。令基于RSA的实用门限签名算法_区块链技术_60,对于集合大小为基于RSA的实用门限签名算法_数字签名_61的子集基于RSA的实用门限签名算法_正确性证明_62,其中元素均属于基于RSA的实用门限签名算法_密码_63,对于任何基于RSA的实用门限签名算法_签名验证_64,定义:

基于RSA的实用门限签名算法_正确性证明_65

这些值是标准拉格朗日插值公式系数。从拉格朗日插值公式可得:

基于RSA的实用门限签名算法_区块链技术_66

2.4 生成门限签名份额

下面,计算一个关于消息基于RSA的实用门限签名算法_正确性证明_67的一个签名份额:令基于RSA的实用门限签名算法_区块链技术_68,对于参与者基于RSA的实用门限签名算法_数字签名_55计算基于RSA的实用门限签名算法_正确性证明_70基于RSA的实用门限签名算法_正确性证明_71是一个参与者基于RSA的实用门限签名算法_数字签名_55的签名份额。

每个签名份额对于有一个正确性的证明,这个正确性证明仅对于基基于RSA的实用门限签名算法_区块链技术_73基于RSA的实用门限签名算法_签名验证_74离散对数与对于基基于RSA的实用门限签名算法_密码_75基于RSA的实用门限签名算法_数字签名_76离散对数相似。

下面,计算内阁签名份额的正确性证明以及如何验证这个签名份额:基于RSA的实用门限签名算法_数字签名_77基于RSA的实用门限签名算法_签名验证_03的比特长度,基于RSA的实用门限签名算法_数字签名_79是一个hash函数,函数输出一个基于RSA的实用门限签名算法_正确性证明_80bit的整数,此处基于RSA的实用门限签名算法_密码_81是第二个安全参数。为了生成正确性证明,参与者选择随机数基于RSA的实用门限签名算法_签名验证_82,计算:

基于RSA的实用门限签名算法_正确性证明_83

此时,正确性证明就变成基于RSA的实用门限签名算法_正确性证明_84。为了验证这个证明,只需要检查下面等式是否成立:

基于RSA的实用门限签名算法_正确性证明_85

此处,计算的是基于RSA的实用门限签名算法_签名验证_86,而不是基于RSA的实用门限签名算法_正确性证明_71,原作者是这样解释的:Although 基于RSA的实用门限签名算法_正确性证明_71 is supposed to be a square, this is not easily verified. This way, we are sure to be working in 基于RSA的实用门限签名算法_签名验证_89, where we need to be working to ensure soundness.

2.5 组合签名份额

在组合所有签名份额之前,先要验证每一个签名份额,并且要满足有效的签名份额个数不能小于门限基于RSA的实用门限签名算法_数字签名_61

假设此处有一组有效的签名份额集合基于RSA的实用门限签名算法_正确性证明_62基于RSA的实用门限签名算法_密码_92。令基于RSA的实用门限签名算法_数字签名_93,且假设基于RSA的实用门限签名算法_区块链技术_94。然后组合签名份额,计算:

基于RSA的实用门限签名算法_区块链技术_95

此处的基于RSA的实用门限签名算法_正确性证明_96就是2.3节中的基于RSA的实用门限签名算法_正确性证明_97。根据基于RSA的实用门限签名算法_数字签名_98,可得基于RSA的实用门限签名算法_正确性证明_99,此处基于RSA的实用门限签名算法_签名验证_100

因为基于RSA的实用门限签名算法_签名验证_101,通过算法:基于RSA的实用门限签名算法_正确性证明_102,即为组合后的签名结果。此处基于RSA的实用门限签名算法_密码_103基于RSA的实用门限签名算法_签名验证_104均为整数,且满足基于RSA的实用门限签名算法_签名验证_105,可以从基于RSA的实用门限签名算法_区块链技术_106基于RSA的实用门限签名算法_数字签名_107上的扩展欧几里德算法得到,这样就很容易计算出满足基于RSA的实用门限签名算法_密码_103基于RSA的实用门限签名算法_签名验证_104

2.6 签名验证

验证签名与RSA签名验证逻辑一样:计算基于RSA的实用门限签名算法_区块链技术_110,此处基于RSA的实用门限签名算法_区块链技术_111即为2.5节中组合后的签名结果。验证者,只需要验证基于RSA的实用门限签名算法_区块链技术_112是否成立。

3 参考资料

[1]http://www.iacr.org/archive/eurocrypt2000/1807/18070209-new.pdf