【技术实现步骤摘要】
基于SM2数字签名的门限签名方法
[0001]本专利技术涉及门限签名领域,具体是涉及基于SM2数字签名的门限签名方法。
技术介绍
[0002]国家密码管理局发布的SM2椭圆曲线公钥密码算法是我国商用公钥密码标准算法,共包含总则、数字签名算法、密钥交换协议、密钥封装机制、公钥加密算法和参数定义五个部分。SM2算法的参数需要利用算法产生,同时加入了用户特异性的椭圆曲线参数、基点、用户公钥点信息,使SM2算法相较于ECC算法安全性有明显提升。
[0003]普通签名算法中,只有一个用户拥有私钥。当攻击者窃取该用户的私钥后可以伪造签名信息。门限签名的思想能够有效针对这个问题。门限签名是门限秘密共享技术和数字签名的一种结合,由潜在的参与方共同运行,只有预定部分的参与方同意时,才可以生成特定消息下的签名。在(t,n)门限签名方案中,由n个成员组成一个签名群体,群体中有一对公私钥,当多于t个成员诚实时,可以代表群体用群私钥进行签名,任何人可利用该群体的公钥进行签名验证。其中,t是门限值,任意不少于t+1个人的签名都可以恢复出签名,群 ...
【技术保护点】
【技术特征摘要】
1.基于SM2数字签名的门限签名方法,其特征在于,所述方法步骤为:S1、公共参数生成阶段:所有参与者协作生成CL加密方案的公共参数g
q
,作为公开值在用户之间共享;S2、秘钥生成阶段:所有参与方生成各自的SM2公钥和私钥,将各自的公钥发送给其他参与方,生成SM2系统公钥,私密保存各自的私钥;S3、签名阶段:所有参与方利用CL加密方案传输密文,与其他参与方交互生成各自的签名,所有参与方广播各自的签名并累加生成SM2最后的总签名。2.根据权利要求1所述的基于SM2数字签名的门限签名方法,其特征在于,S1所述的公共参数生成阶段的具体步骤为:S1
‑
1、计算基本判别式和生成类群需要用到的随机公共参数S1
‑1‑
1、n方参与者输入公共参数(q,1
λ
),协作运行ISetup算法,其中,λ是安全参数,q是有限域F
q
的阶;参与方选择随机数r
i
,计算r
i
的承诺(gc
i
,gd
i
)
←
Com(r
i
),并广播gc
i
;其中,Com指承诺算法,gc
i
为承诺信息,gd
i
为打开承诺的信息;S1
‑1‑
2、各参与方收到其余方的承诺{gc
j
}
j≠i
后,广播gd
i
;S1
‑1‑
3、各参与方收到广播的gd
i
后,执行r
i
←
Open(gc
i
,gd
i
),揭开r
i
,Open为打开承诺的算法;S1
‑1‑
4各参与方计算公共参数计算公共参数S1
‑
2、协作生成公共参数g
q
;S1
‑2‑
1、各参与方运行其中,是λ比特整数,子群由生成,子群F由f生成,是阶的上限,生成CL方案的公共参数;S1
‑2‑
2、各参与方选择一个随机数t
i
,计算生成各自随机的g
i
份额;S1
‑2‑
3、各参与方计算g
i
的承诺广播为承诺信息,为打开承诺的信息;;S1
‑2‑
4、各参与方收到其余方的承诺后,广播S1
‑2‑
5、各参与方收到广播的后,执行揭开g
i
;S1
‑2‑
6、各参与方广播t
i
的零知识证明ZKPoK,证明自己知道t
i
;S1
‑2‑
7、收到广播的零知识证明后进行验证,若验证失败,则终止协议;S1
‑2‑
8、各参与方计算出CL加密方案的公共参数g
q
,输出CL方案的公共参数
3.根据权利要求1所述的基于SM2数字签名的门限签名方法,其特征在于,S2中SM2密钥生成阶段的具体步骤为:S2
‑
1、生成SM2门限签名公钥;S2
‑1‑
1、各参与方选择一个随机数u
i
,计算u
i
G的承诺,[kgc
i
,kgd
i
]
←
Com(u
i
G),G为椭圆曲线上的基点;S2
‑1‑
2、各参与方生成CL加密方案的一对公私钥(sk
i
,pk
i
),(sk
i
,pk
i
)
←
CL.KeyGen(1
λ
);CL.KeyGen(1
λ
)秘钥生成算法:选择设计算返回(sk,pk);S2
‑1‑
3、各参与方广播自己的公钥和对u
i
G的承诺(pk
i
,kg c
i
);S2
‑1‑
4、各参与方广播打开承诺的信息kg d
i
;S2
‑1‑
5、各参与方收到其余方的广播后,揭开每方的承诺P
i
←
Open(kgc
i
,k
g
d
i
),其中,P
i
=u
i
G为各参与方的公钥;S2
‑1‑
6、各参与方计算SM2算法公钥S2
‑
2、生成SM2门限签名私钥;S2
‑2‑
1、各参与方执行u
i
的门限(t,n)Feldman
‑
Vss算法,其中,a
i,k
为选择的k项个系数,X为自变量;S2
‑2‑
2、当各参与者与其他参与方交互时,向发送σ
i,j
,其中,{σ
i,j
:=p
i
(j)}
j∈[n]
为多项式的计算结果;S2
‑2‑
3、收到各方发来的σ
i,j
后,各参与方计算d
i
:=∑
k∈[n]
p
k
(i),其中,d
i
是签名私钥d的(t,n)Shamir门限份额;S2
‑2‑
4、各参与方向所有参与方广播Feldman
‑
Vss算法系数和基点的乘积{V
i,k
}
k∈[t]
,其中,{V
i,k
:=a
i,k
G}
k∈[t]
;S2
‑2‑
5、各参与方计算零知识证明并广播π
kg,i
,证明自己知道d
i
;S2
‑2‑
6、收到广播的零知识证明后进行验证,若验证失败,则终止协议。4.根据权利要求1所述的基于SM2数字签名的门限签名方法,其特征在于,S3签名阶段的具体步骤为:S3
‑
1、参与方生成各自的(t,n)门限秘密份额;S3
‑
2、对秘密份额加密;S3
‑
3、生成各自的可加份额;S3
‑
4、计算SM2签名的第一部分r;S3
‑
5、计算SM2签名的第二部分s。5.根据权利要求4所述的基于SM2数字签名的门限签名方法,其特征在于,S3
‑
1参与方生成各自的(t,n)门限秘密份额的具体步骤为:
S3
‑1‑
1、各参与方使用适当的拉格朗日系数将私钥d的(t,n)份额{d
i
}
i∈[n]
转换为d的(t,t)份额{w
i
}
i∈S
,得到d=∑w
i
;S3
‑1‑
2、各参与方计算1+d的(t,t)份额{v
i
}
i∈S
,其中(1+d)
‑1=∑v
i
;由于D
i
=d
i
·
G和拉格朗日系数是公共值,所有方都可以计算出6.根...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。