【技术实现步骤摘要】
一种基于SM2签名的防双重认证签名生成方法及系统
[0001]本专利技术属于信息安全
,尤其涉及一种基于SM2签名的防双重认证签名生成方法及系统。
技术介绍
[0002]数字签名是一种重要的密码原语,用于提供数字信息完整性和真实性保证。在许多其他应用程序中,它们用于在公钥基础设施中为公钥颁发数字证书,可用于保证可执行代码的来源可靠,签署PDF文档等数字文档(以具有法律约束力的方式),以及TLS等主要加密协议。
[0003]综上本专利设计了一种基于SM2签名的防双重认证签名方案,防双重认证签名是一种最近受到广泛关注的数字签名变体。它们具有不可伪造性,对由地址和标签组成的消息进行签名。它们的显著特点是,对于同一地址的两个不同标签上的签名允许公开提取密钥。因此,它们是防止双重签名的一种手段,可以应用在电子投票、区块链等领域。
技术实现思路
[0004]本专利技术实施例提供一种基于SM2签名的防双重认证签名生成方法及系统,具有不可伪造性,对由地址和标签组成的消息进行签名;本方案的显著特点是,对于同一地址的两个不同标签上的签名允许公开提取密钥;因此,本方案是防止双重签名的一种手段,可以应用在电子投票、区块链等领域。
[0005]本专利技术实施例是这样实现的,一种基于SM2签名的防双重认证签名生成方法:
[0006]步骤1,初始化一个Diffie
–
Hellman元组零知识证明;
[0007]步骤2,系统初始化:给定安全参数1
n
,并计算执 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.一种基于SM2签名的防双重认证签名生成方法,其特征在于,包括:步骤1,初始化一个Diffie
‑
Hellman元组零知识证明;步骤2,系统初始化:给定安全参数1
n
,并计算执行系统参数初始化计算;步骤3,密钥生成:给定系统参数PP,一个用户A,并进行密钥计算;步骤4,签名计算:给定系统参数PP、用户A的私钥sk、消息m,其中消息的形式为m=(i,p),其中i≤n,进行签名值计算;步骤5,验证计算:给定系统参数PP、消息m,其中消息的形式为m=(i,p),签名值σ=(r,s,z,π),执行验证计算;步骤6,提取私钥:给定系统参数PP、消息(m1,m2),签名(σ1,σ2),提取用户的私钥d
A
。2.如权利要求1所述的一种基于SM2签名的防双重认证签名生成方法,其特征在于,本方法中的参数选取与SM2签名算法标准参数保持一致,具体符号描述如下:n:安全参数长度;a,b:椭圆曲线参数;PP:系统参数;阶为素数q的椭圆曲线群,元素为椭圆曲线上的点;G:一个生成元为椭圆曲线上的点;G:一个生成元包含p个元素的素域;循环群的一个生成元;p:有限域的元素个数;q:循环群的阶;由整数1,2,...,q
‑
1组成的整数集合;P
A
:用户A的部分公钥;d:用户A的部分私钥;pk:公钥;sk:私钥;P
e
:加密公钥;mod q:模q运算;H:密码杂凑函数,m:消息值,形式为(i,p);i:消息中的地址;p:消息中的标签;σ=(r,s,z,π):签名值;crs:零知识证明的公开字符串;POK:零知识证明;π:对于关系POK
DDH
{t|C1=t
·
G∧C2=t
·
P
e
}的零知识证明;DDH:Diffie
‑
Hellman元组。3.如权利要求2所述的一种基于SM2签名的防双重认证签名生成方法,其特征在于,所述步骤1初始化一个Diffie
‑
Hellman元组零知识证明公式如下:π=POK
DDH
{t|C1=t
·
G∧C2=t
·
P
e
}其中该零知识证明协议中t为秘密输入,即witness,其他参数为公开输入。4.如权利要求3所述的一种基于SM2签名的防双重认证签名生成方法,其特征在于,所述步骤2,系统初始化:给定安全参数1
n
,并计算执行系统参数初始化计算中的计算步骤如下:a)选择一个有限域生成椭圆曲线方程y2=x3+ax+b mod p,满足方程的点构成一个阿贝尔群b)随机选取一个生成元其阶为q;c)初始化POK
DDH
的公开字符串crs;d)输出系统参数5.如权利要求4所述的一种基于SM2签名的防双重认证签名生成方法,其特征在于,所述步骤3,密钥生成:给定系统参数PP,一个用户A,并进行密钥计算,其中密钥计算步骤如下:
a)随机选取计算用户部分公钥P
A
=d
A
·
G;b)随机选取计算P
e
=x
e
·
G;c)设定共有n个地址,对于i∈[n],随机选取和d)计算C
i
←
(C
技术研发人员:包子健,何德彪,刘钰琳,罗敏,龚自洪,
申请(专利权)人:武汉大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。