1.一种基于区块链平台的多重签名方法,其特征在于,以椭圆曲线为基础生成密钥对,设 为素数阶q的难以求解离散对数问题的椭圆曲线群,其生成元为G,其中|q|=κ为安全参*
数,设Hcom和Hsig是两个将{0,1} 转换为 的密码学哈希函数,则公开参数集合为设n为签名者的数量,其中n≥2,L={y1,y2,…,yn}为签名者的公钥*
集合,为了共同签署消息m∈{0,1},包括如下步骤:
1)密钥对的生成:每个用户i,i∈{1,2,…,n}随机地选取随机数 来生成自己的公私钥对(yi,xi),其中yi=xi·G;
2)签名阶段:对于每个签名者i,i∈{1,2,…,n}的工作方式如下:(1)签名者首先计算值哈希值ai=Hcom(yi||L),该值可用于验证签名者i是否在该签名集合L中以及在L中的身份,可信第三方为集合中的每个签名者i生成随机值 并计算出多重签名的第一部分 以及哈希值e=Hsig(L||m||R),随后将随机值ri和哈希值e发送给各签名者;
(2)各签名者i收到从可信第三方收到ri的和哈希值e,然后计算zi=ri+eaiximod q,最后将zi发送给签名统计者,统计者根据收到的{z1,…,zn}计算多重签名的第二部分并将多重签名的第二部分z发送给可信第三方,即可输出签名σ=(R,z);
3)验证阶段:对于给定的消息m以及它的签名σ=(R,z)和签名者的集合L,验证者首先为每个签名者i计算ai=Hcom(yi||L),然后计算e=Hsig(L||m||R),最后验证等式是否成立,若成立则接收这个多重签名,否则拒绝;
假定每个签名者都诚实地生成了自己的公私钥对,那么正确性可证明如下: