生成数字签名的方法和验证数字签名的方法

文档序号:9330575阅读:1477来源:国知局
生成数字签名的方法和验证数字签名的方法
【技术领域】
[0001] 本发明涉及密码技术领域,具体地说,涉及生成数字签名的方法和验证数字签名 的方法。
【背景技术】
[0002] 数字签名方法是密码技术的主要应用之一。目前,主流的数字签名标准有美国的 DSA签名、Schor签名,以及韩国的KC-DSA签名等。其中,KC-DSA签名是目前效率最高的数 字签名方法。
[0003] 然而,KC-DSA签名方法存在计算效率低、与其它标准算法不兼容等问题。

【发明内容】

[0004] 为解决上述问题,本发明提供了一种生成数字签名的方法,所述方法包括:
[0005] 对于待签名信息m,基于第一预设转换函数h,得到签名变量e ;
[0006] 根据随机数r和生成元g,结合第二预设转换函数f,得到签名变量d ;
[0007] 根据签名私钥w、随机数r、签名变量e和签名变量d,确定签名变量z,根据签名变 量z生成待签名信息m的数字签名s。
[0008] 根据本发明的一个实施例,在所述方法中,
[0009] 随机数r是在{0, I}1或Z q中随机确定的;或,
[0010] 随机数r是利用从{0, IK到{0, 1} 1或从{0, IK到Zq的伪随机函数或哈希函数产 生的;
[0011] 其中,1表示小于或等于|q|的正整数,|q|表示有限群G'的循环子群G的阶q以 2进制表示时的长度,Z q表示预设数字集合,{0, 1} $表示所有0-1串的集合,{0, 1} 1表示长 度为1的0-1串。
[0012] 根据本发明的一个实施例,根据如下表达式确定所述签名变量z :
[0013]
[0014] 其中,q表示有限群G'的循环子群G的阶。
[0015] 根据本发明的一个实施例,根据如下表达式确定所述签名变量z :
[0016]
[0017] 其中,q表示有限群G'的循环子群G的阶,变量w'等于-w。
[0018] 根据本发明的一个实施例,
[0019] 根据如下表达式确定所述数字签名s :
[0020] s = {d, z, auxj
[0021] 或,根据如下表达式确定所述数字签名s :
[0022] s = {a, z, aux2}
[0023] 或,根据如下表达式确定所述数字签名s :
[0024] s = {a, d, z, aux3}
[0025] 其中,签名变量a = g%辅助信息auXi、辅助信息aux2和辅助信息aux 3均是集合D 的子集合,集合D包含{e}。
[0026] 根据本发明的一个实施例,所述方法还包括:
[0027] 根据所述签名私钥w,生成签名公钥PK。
[0028] 根据本发明的一个实施例,所述签名公钥PK表示为:
[0029] PK = {G,,g,q,U}
[0030] 根据如下表达式计算公钥参数U :
[0031] U = gw
[0032] 其中,G表示有限群G'的循环子群,g表示循环子群G的生成元,q表示循环子群 G的阶,w表不签名私钥。
[0033] 根据本发明的一个实施例,根据如下表达式计算所述签名变量e :
[0034] e = h (m, auxm)
[0035] 辅助信息auXni表示
1的可为空的子集合或该子集合的哈希 值,其中,u表示签名公钥中的公钥参数,:i表示签名设备的身份标示,表示签名设备 的公钥证书,g表示有限群G'的循环子群G的生成元,q表示循环子群G的阶,N表示有限 群G'的的阶。
[0036] 根据本发明的一个实施例,BUXni为空集
}或 *其中,公钥参数U = gw。
[0037] 根据本发明的一个实施例,根据如下表达式计算所述签名变量d :
[0038] d = f (a, auxd)
[0039] 辅助信息auxd为空集
,其 中
W表示签名设备的身份标示,U表示签名公钥中的公钥参 数,表示签名设备的公钥证书,g表示有限群G'的循环子群G的生成元,q表示循环 子群G的阶,N表示有限群G'的的阶。
[0040] 根据本发明的一个实施例,所述第一预设转换函数h和/或第二预设转换函数f 为哈希函数。
[0041] 本发明还提供了一种验证数字签名的方法,所述方法用于验证利用如上任一项所 述的方法所生成的数字签名,其包括:
[0042] 对于接收到的信息中所包含的公钥证书,通过验证可信第三方的签名来验证所述 公钥证书的有效性,并验证接收到的信息中所包含的数字签名中的签名变量z是否属于预 设数字集合;
[0043] 如果公钥证书有效,且签名变量z属于预设数字集合,则进一步验证签名变量d是 否满足预设条件;
[0044] 如果签名变量d满足条件,则确定所述数字签名通过验证,否则确定所述数字签 名没有通过验证。
[0045] 根据本发明的一个实施例,在所述方法中,还验证所述数字签名中的签名变量d 是否属于预设数字集合,只有当公钥证书有效且签名变量z和签名变量d均属于预设数字 集合时,才进一步验证数字签名中的签名变量d是否满足预设条件。
[0046] 根据本发明的一个实施例,在所述方法中,如果接收到的数字签名中包含签名变 量d,则:
[0047] 对于待签名信息m,基于第一预设转换函数h,得到签名变量e ;
[0048] 判断所述签名变量d是否满足如下表达式:
[0049]
[0050] 其中,f表示第二预设转换函数,g表示有限群G'的循环子群G的生成元,U表示 签名公钥公钥中的公钥参数;
[0051] 如果满足,则判定所述签名变量d满足预设条件,否则所述签名变量d不满足预设 条件。
[0052] 根据本发明的一个实施例,如果接收到的数字签名中不包含签名变量d而包含签 名变量a,则:
[0053] 根据所述数字签名中的签名变量a和辅助信息auxd,计算得到签名变量d ;
[0054] 判断^ = ?或/(,Γ= J是否成立,如果成立,则判定所述签名变量d满足 预设条件,否则判断所述签名变量d不满足预设条件。
[0055] 与现有的KC-DSA签名方法相比,本发明所提供的数字签名生成方法以及数字签 名验证方法具有严格的安全可证性,其生成数字签名是具有更优的计算效率,且应用更灵 活。同时,该方法还克服了 KC-DSA的签名公钥与现存大多数基于离散对数的数字签名不兼 容的缺陷。
[0056] 本实施例所提供的签名生成方法以及验签方法可以在各种需要数字签名的场景 中应用,其中,该方法特别适用于基于智能卡的数字签名以及相关电子商务、政务中。
[0057] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0058] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要的附图做简单的介绍:
[0059] 图1是根据本发明一个实施例的数字签名生成方法的流程图;
[0060] 图2是根据本发明一个实施例的数字签名验证方法的流程图。
【具体实施方式】
[0061] 以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用 技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明 的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合, 所形成的技术方案均在本发明的保护范围之内。
[0062] 同时,在以下说明中,出于解释的目的而阐述了许多具体细节,以提供对本发明实 施例的彻底理解。然而,对本领域的技术人员来说显而易见的是,本发明可以不用这里的具 体细节或者所描述的特定方式来实施。
[0063]另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系 统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处 的顺序执行所示出或描述的步骤。
[0064] 在密码技术中,G表示一个有限群G'的一个循环子群,其中有限群G'和循环子群 G的阶分别为N和q,g是循环子群G
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1