当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于SM2签名的防双重认证签名生成方法及系统技术方案

技术编号:38319194 阅读:13 留言:0更新日期:2023-07-29 09:01
本发明专利技术适用于信息安全技术领域,提供了一种基于SM2签名的防双重认证签名生成方法及系统;其包括步骤1,初始化一个Diffie

【技术实现步骤摘要】
一种基于SM2签名的防双重认证签名生成方法及系统


[0001]本专利技术属于信息安全
,尤其涉及一种基于SM2签名的防双重认证签名生成方法及系统。

技术介绍

[0002]数字签名是一种重要的密码原语,用于提供数字信息完整性和真实性保证。在许多其他应用程序中,它们用于在公钥基础设施中为公钥颁发数字证书,可用于保证可执行代码的来源可靠,签署PDF文档等数字文档(以具有法律约束力的方式),以及TLS等主要加密协议。
[0003]综上本专利设计了一种基于SM2签名的防双重认证签名方案,防双重认证签名是一种最近受到广泛关注的数字签名变体。它们具有不可伪造性,对由地址和标签组成的消息进行签名。它们的显著特点是,对于同一地址的两个不同标签上的签名允许公开提取密钥。因此,它们是防止双重签名的一种手段,可以应用在电子投票、区块链等领域。

技术实现思路

[0004]本专利技术实施例提供一种基于SM2签名的防双重认证签名生成方法及系统,具有不可伪造性,对由地址和标签组成的消息进行签名;本方案的显著特点是,对于同一地址的两个不同标签上的签名允许公开提取密钥;因此,本方案是防止双重签名的一种手段,可以应用在电子投票、区块链等领域。
[0005]本专利技术实施例是这样实现的,一种基于SM2签名的防双重认证签名生成方法:
[0006]步骤1,初始化一个Diffie

Hellman元组零知识证明;
[0007]步骤2,系统初始化:给定安全参数1
n
,并计算执行系统参数初始化计算;
[0008]步骤3,密钥生成:给定系统参数PP,一个用户A,并进行密钥计算;
[0009]步骤4,签名计算:给定系统参数PP、用户A的私钥sk、消息m,其中消息的形式为m=(i,p),其中i≤n,进行签名值计算;
[0010]步骤5,验证计算:给定系统参数PP、消息m,其中消息的形式为m=(i,p),签名值σ=(r,s,z,π),执行验证计算;
[0011]步骤6,提取私钥:给定系统参数PP、消息(m1,m2),签名(σ1,σ2),提取用户的私钥d
A

[0012]作为本专利技术的一种优选实施方案,其中,本方法中的参数选取与SM2签名算法标准参数保持一致,具体符号描述如下:
[0013]n:安全参数长度;
[0014]a,b:椭圆曲线参数;
[0015]PP:系统参数;
[0016]阶为素数q的椭圆曲线群,元素为椭圆曲线上的点;
[0017]G:一个生成元
[0018]包含p个元素的素域;循环群的一个生成元;
[0019]p:有限域的元素个数;
[0020]q:循环群的阶;
[0021]由整数1,2,

,q

1组成的整数集合;
[0022]P
A
:用户A的部分公钥;
[0023]d:用户A的部分私钥;
[0024]pk:公钥;
[0025]sk:私钥;
[0026]P
e
:加密公钥;
[0027]modq:模q运算;
[0028]H:密码杂凑函数,
[0029]m:消息值,形式为(i,p);
[0030]i:消息中的地址;
[0031]p:消息中的标签;
[0032]σ=(r,s,z,π):签名值;
[0033]crs:零知识证明的公开字符串;
[0034]POK:零知识证明;
[0035]π:对于关系POK
DDH
{t|C1=t
·
G∧C2=t
·
P
e
}的零知识证明;
[0036]DDH:Diffie

Hellman元组。
[0037]作为本专利技术的一种优选实施方案,其中,所述步骤1初始化一个Diffie

Hellman元组零知识证明公式如下:
[0038]π=POK
DDH
{t|C1=t
·
G∧C2=t
·
P
e
}
[0039]其中该零知识证明协议中t为秘密输入(即witness),其他参数为公开输入。
[0040]作为本专利技术的一种优选实施方案,其中,所述步骤2,系统初始化:给定安全参数1
n
,并计算执行系统参数初始化计算中的计算步骤如下:
[0041]a)选择一个有限域生成椭圆曲线方程y2=x3+ax+b mod p,满足方程的点构成一个阿贝尔群
[0042]b)随机选取一个生成元其阶为q;
[0043]c)初始化POK
DDH
的公开字符串crs;
[0044]d)输出系统参数
[0045]作为本专利技术的一种优选实施方案,其中,所述步骤3,密钥生成:给定系统参数PP,一个用户A,并进行密钥计算,其中密钥计算步骤如下:
[0046]a)随机选取计算用户部分公钥P
A
=d
A
·
G;
[0047]b)随机选取计算P
e
=x
e
·
G;
[0048]c)设定共有n个地址,对于i∈[n],随机选取和
[0049]d)计算C
i

(C
i,1
,C
i,2
)

(t
i
·
G,t
i
·
P
e

i
·
G);
[0050]e)输出公钥pk={P
A
,PP
e
,(C
i
)
i∈[n]};
[0051]f)输出私钥sk={d,(r
i

i
)
i∈[n]}。
[0052]作为本专利技术的一种优选实施方案,其中,所述步骤4,签名计算:给定系统参数PP、用户A的私钥sk、消息m,其中消息的形式为m=(i,p),其中i≤n,进行签名值计算的详细步骤如下:
[0053]a)计算e=H(m);
[0054]b)随机选取计算(x1,y1)=k
·
G;
[0055]c)计算r=(e+x1)modq;
[0056]d)计算s=((1+d)
‑1·
(k

r
·
d))modq;
[0057]e)计算z=ρ
i
·
p+d
A

[0058]f)计算
[0059]g)证明
[0060]h)输出关于消息m的签名值σ=(r,s,z,π)。
[0061]作本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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

【专利技术属性】
技术研发人员:包子健何德彪刘钰琳罗敏龚自洪
申请(专利权)人:武汉大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1