CN106899413B - 数字签名验证方法及*** - Google Patents

数字签名验证方法及*** Download PDF

Info

Publication number
CN106899413B
CN106899413B CN201710228010.4A CN201710228010A CN106899413B CN 106899413 B CN106899413 B CN 106899413B CN 201710228010 A CN201710228010 A CN 201710228010A CN 106899413 B CN106899413 B CN 106899413B
Authority
CN
China
Prior art keywords
parameter group
verification
pin
digital signature
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710228010.4A
Other languages
English (en)
Other versions
CN106899413A (zh
Inventor
程朝辉
杜峰
吴福印
周枭淳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Aolian Information Security Technology Co ltd
Original Assignee
Shenzhen Aolian Information Security Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Aolian Information Security Technology Co ltd filed Critical Shenzhen Aolian Information Security Technology Co ltd
Priority to CN201710228010.4A priority Critical patent/CN106899413B/zh
Publication of CN106899413A publication Critical patent/CN106899413A/zh
Application granted granted Critical
Publication of CN106899413B publication Critical patent/CN106899413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种数字签名验证方法及***,使用用户标识作为用户的公钥,私钥由受信任的第三方使用标识私钥生成方法计算生成,用户不需要申请和交换证书,从而很大地简化了密码***管理的复杂性。生成的标识私钥在签名终端使用PIN码及***特征码保护。签名终端使用受保护的标识私钥、部分标识密码***参数对信息进行签名,实现了数字签名的功能,同时可以有效提高抵抗PIN码猜测攻击的能力。

Description

数字签名验证方法及***
技术领域
本发明涉及到数据加密领域,特别是涉及到一种数字签名验证方法及***。
背景技术
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
签名过程是指签名用户使用私钥对签名消息进行变换,产生数字签名。验证过程是指验证用户使用公钥和待签名消息对用户的数字签名进行校验。用户需要对签名私钥进行保护以防止密钥泄露。文件方式存储的密钥容易被攻击者盗取。一般采用的保护方法是使用PIN码加密私钥后进行存储。但是这种保护方式在攻击人获得密钥文件后,可能进行离线暴力猜测PIN码。一般使用的PIN码的强度都不高,成功实现离线暴力破解的概率很高,导致这样的私钥保护和使用方式不安全,而复杂的PIN码又难以记忆和使用。
发明内容
本发明的主要目的为提供一种数字签名验证方法及***,解决数字签名文件私钥的保密及使用过程中,文件保护PIN码强度不高,导致数字签名容易被破解的问题。
本发明提出一种数字签名验证方法,包括以下步骤:
步骤A:生成主密钥、第一参数组及第二参数组;
步骤B:获取签名终端的标识ID_A,根据所述主密钥、第一参数组、第二参数组及标识ID_A生成标识私钥S_A;
步骤C:将所述标识私钥S_A及第一参数组发送至签名终端;
步骤D:通过所述签名终端对消息M进行签名,所述签名终端获得数字签名Q;
步骤E:接收验证终端的请求,将所述第一参数组和第二参数组发送至验证终端,其中,所述验证终端根据所述第一参数组、第二参数组及标识ID_A对接收到的消息M'及数字签名Q'进行验证。
优选地,所述第一参数组包括E,e,g=e(P1,[s]P2),H,其中,E为椭圆曲线,e代表二元映射e:G1·G2→Gt,G1和G2为椭圆曲线E上的两个点群,G1是一个阶为q的循环群,G2是一个幂为q群,其子群阶为q,q为素数,P1∈G1,P2∈G2,e(P1,[s]P2)=e(P1,P2)s,主密钥包括s,[s]P2表示s个P2相加,H为消息映射函数,用于将比特串映射到[1,q-1]上;
所述第二参数组必须包括[s]P2
P1可存放于所述第一参数组,也可存放于第二参数组。如果两组参数均不包括P1,则P1存放于主密钥。
优选地,在步骤B中,所述标识私钥S_A通过以下公式计算获得:
S_A=[s/(H(1||ID_A)+s)]P1
优选地,步骤C之后还包括:
步骤C1:所述签名终端根据所述标识私钥S_A及第一参数组,结合签名终端获取的保护PIN_A码及***特征码X,生成并保存私钥分片W。保护PIN_A码及***特征码X用于保护签名私钥。其中,所述W通过以下方式获得:
如果P1在第一参数组,则W=f(S_A,PIN_A,X,P1),如果P1不在第一参数组,则W=f'(S_A,PIN_A,X)。其中,f函数存在可逆函数z,函数z为S_A=z(W,PIN_A,X,P1),或f'函数存在可逆函数z',函数z'为S_A=z'(W,PIN_A,X)。
例如,函数f可以为W=S_A-[(PIN_A+X)mod q]P1,对应的函数z为:S_A=W+[(PIN_A+X)mod q]P1
又如,函数f可以为W=S_A+[(PIN_A+X)mod q]P1;对应的函数z为:S_A=W-[(PIN_A+X)mod q]P1
同样地,函数f'可以为W=[(PIN_A+X)mod q]S_A,对应的函数z'为S_A=[1/(PIN_A+X)mod q]W
函数f'可以为W=[1/((PIN_A+X)mod q)]S_A,对应的函数z'为S_A=[(PIN_A+X)mod q]W。
优选地,在计算私钥分片W时,X的取值存在为零的情况。
优选地,所述步骤D中的签名过程包括:
D1:产生随机数r,r∈[1,q-1];
D2:计算w=gr,将w的数据类型转换为比特串U;
D3:计算整数h=H(2||M||U);
D4:计算整数L=(r-h)mod q,若L=0则返回D1;
D5:计算dA=z(W,PIN_A,X,P1)或者dA=z'(W,PIN_A,X);例如,
W=S_A-[(PIN_A+X)mod q]P1时,dA=W+[(PIN_A+X)modq]P1
或W=S_A+[(PIN_A+X)mod q]P1时,dA=W-[(PIN_A+X)modq]P1
或W=[(PIN_A+X)mod q]S_A时,dA=[1/((PIN_A+X)mod q)]W;
或W=[1/((PIN_A+X)mod q)]S_A时,dA=[(PIN_A+X)modq]W;
D6:计算S=[L]dA;
D7:将h和S的数据类型转换为字节串,获得数字签名Q为(h,S)。
优选地,在步骤E中,所述数字签名Q'为(h',S'),步骤E中的验证过程包括:
E0:如果没有获取签名方***的第一参数组、第二参数组,则从密钥生成中心获取。验证终端获得参数组后,可选地,如果参数组中包含P1,计算g'=e(P1,[s]P2),检验g=g'是否成立,如果不成立,则报错。步骤E0用于验证***参数的正确性,若验证不通过,则后续的验证步骤都无须执行。
优选地,所述步骤E0之后,还包括:
E1:将h'的数据类型转换为整数,检验h'∈[1,q-1]是否成立,若不成立则验证不通过;
E2:将S'的数据类型转换为椭圆曲线上的点,检验S'∈G1是否成立,若不成立则验证不通过;
E3:计算t=gh’;
E4:计算整数h1=H(1||ID_A);
E5:计算P=[h1]P2+[s]P2
E6:计算群u=e(S',P);
E7:计算群w'=u·t,将w'的数据类型转换为比特串U';
E8:计算整数h2=H(02||M'||U'),检验h2=h'是否成立,若成立则验证通过;否则验证不通过。
优选地,在验证不通过的情况下,计数ID_A验证不通过的次数,若所述次数超过预设次数,则停止ID_A的活动。
优选地,在验证通过的情况下,校验ID_A是否为有效标识,所述有效标识包括有效用户的合法标识,所述合法标识为未被撤销标识。
本发明还提出了一种数字签名验证***,包括:
密钥生成中心,用于生成主密钥,第一参数组及第二参数组;获取签名终端的标识ID_A,根据所述主密钥,第一参数组及第二参数组及标识ID_A生成标识私钥S_A;
签名终端,用于从密钥生成中心获取所述标识私钥S_A及第一参数组;根据所述标识私钥S_A及第一参数组,结合签名终端获取的保护PIN_A码及***特征码X,生成并保存私钥分片W;使用第一参数组、保护PIN_A码、***特征码X和私钥分片W对消息M进行签名,获得数字签名Q;
验证终端,从密钥生成中心获取所述第一参数组和第二参数组。接收消息M'及数字签名Q'后,根据所述第一参数组、第二参数组及标识ID_A对所述消息M'及数字签名Q'验证。
本发明提出一种数字签名验证方法及***,使用用户标识作为用户的公钥,私钥由受信任的第三方使用标识私钥生成方法计算生成,用户不需要申请和交换证书,从而很大地简化了密码***管理的复杂性。生成的标识私钥在签名终端使用PIN码及***特征码保护。签名终端使用受保护的标识使用和部分标识密码***参数对信息进行签名,实现了数字签名的功能,同时可以有效提高抵抗PIN码猜测攻击的能力。
附图说明
图1为本发明数字签名验证方法一实施例的流程示意图;
图2为本发明数字签名验证***一实施例的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明实施例提出一种数字签名验证方法,包括以下步骤:
步骤A:生成主密钥、第一参数组及第二参数组;
步骤B:获取签名终端的标识ID_A,根据所述主密钥、第一参数组、第二参数组及标识ID_A生成标识私钥S_A;
步骤C:将所述标识私钥S_A及第一参数组发送至签名终端;
步骤D:通过所述签名终端对消息M进行签名,所述签名终端获得数字签名Q;
步骤E:接收验证终端的请求,将所述第一参数组和第二参数组发送至验证终端,其中,所述验证终端根据所述第一参数组、第二参数组及标识ID_A对接收到的消息M'及数字签名Q'进行验证。
本发明实施例设计了一种数字签名验证方法,方案中涉及双线性对这一数学操作。
双线性对是指一种二元映射e:G1xG2→Gt,具有以下三个特性:
1.二元线性:e([s]P,[t]Q)=e(P,Q)st,s,t∈Z/Zq,P∈G1,Q∈G2,G1是一个阶为q的循环群,G2是一个幂为q群,其子群阶为q。[s]P表示s个P相加。
2.非退化性:存在非0元P和Q,e(P,Q)≠1。
3.可计算性:有多项式时间方法计算e(P,Q)。
双线性对有椭圆曲线上的Weil、Tate、Ate、R-ate、优化Ate对等。
步骤A中,密钥生成中心选择一条椭圆曲线E,具可高效计算的双线性对e。确定曲线E上的两个阶为素数q的点群G1和G2。分别选择G1和G2中的两个点P1和P2。选择随机数s作为主密钥,0<s<q,计算[s]P2以及g=e(P1,[s]P2)。其中[s]P2表示标准的s个P2相加。密钥生成中心生成第一参数组<E,e,e(P1,[s]P2),H>和第二参数组<[s]P2>。其中消息映射函数H将一个比特串映射到[1,q-1]上。
P1可存放于所述第一参数组,也可存放于第二参数组。如果两组参数均不包括P1,则主密钥包括P1存放于主密钥。步骤B中,密钥生成中心获取签名终端的标识ID_A,生成标识ID_A对应的标识私钥S_A:
S_A=[s/(H(1||ID_A)+s)]P1
步骤C、签名终端从密钥生成中心获取上述标识私钥S_A及第一参数组后,签名人在签名终端上选择保护PIN_A码,还可以计算签名终端的***特征码X,保护PIN_A码及***特征码X用于保护签名私钥。如果无需***特征码设置X=0。
其中,所述W通过以下方式获得:
P1可能存在于第一参数组或第二参数组中。如果P1在第一参数组,则W=f(S_A,PIN_A,X,P1)。如果P1不在第一参数组,则W=f'(S_A,PIN_A,X)。其中,f函数存在可逆函数z,函数z为S_A=z(W,PIN_A,X,P1),或f'函数存在可逆函数z',函数z'为S_A=z'(W,PIN_A,X)。
例如,函数f可以为W=S_A-[(PIN_A+X)mod q]P1,对应的函数z为:S_A=W+[(PIN_A+X)mod q]P1
又如,函数f可以为W=S_A+[(PIN_A+X)mod q]P1;对应的函数z为:S_A=W-[(PIN_A+X)mod q]P1
同样地,函数f'可以为W=[(PIN_A+X)mod q]S_A,对应的函数z'为S_A=[1/(PIN_A+X)mod q]W
函数f'可以为W=[1/((PIN_A+X)mod q)]S_A,对应的函数z'为S_A=[(PIN_A+X)mod q]W。
生成私钥分片W后,上述私钥分片W存储于签名终端的私钥文件中。
步骤D、签名人在签名终端使用***公开参数<E,e,g=e(P1,[s]P2),H>、私钥分片W、PIN码、机器特征码X对消息M进行签名。签名方法为:
D1:产生随机数r∈[1,q-1];
D2:计算w=gr,将w的数据类型转换为比特串U;
D3:计算整数h=H(2||M||U);
D4:计算整数L=(r-h)modq,若L=0则返回D1;
D5:计算dA,dA=z(W,PIN_A,X,P1)或者dA=z'(W,PIN_A,X);例如,
W=S_A-[(PIN_A+X)mod q]P1时,dA=W+[(PIN_A+X)modq]P1
或W=S_A+[(PIN_A+X)mod q]P1时,dA=W-[(PIN_A+X)modq]P1
或W=[(PIN_A+X)mod q]S_A时,dA=[1/((PIN_A+X)mod q)]W;
或W=[1/((PIN_A+X)mod q)]S_A时,dA=[(PIN_A+X)modq]W;
D6:计算S=[L]dA
D7:将h和S的数据类型转换为字节串,消息M的签名为(h,S)。
步骤E、接收验证终端的请求,密钥生成中心将上述第一参数组和第二参数组发送至验证终端。验签人在验证终端使用第一参数组<E,e,g=e(P1,[s]P2),H>、第二参数组的<[s]P2>,收到的消息M'以及签名人ID_A对数字签名Q'验证。Q'即(h',S')。其中,P1可能存在于第一参数组或第二参数组中。验证的步骤如下:
E0:验证终端获得第一参数组、第二参数组后,如果P1存在于第一参数组或第二参数组中,计算g'=e(P1,[s]P2),检验g=g'是否成立,若不成立,则报错。步骤E0用于验证***参数的正确性,若验证不通过,则后续的验证步骤都无须执行。
E1:将h'的数据类型转换为整数,检验h'∈[1,q-1]是否成立,若不成立则验证不通过;
E2:将S'的数据类型转换为椭圆曲线上的点,检验S'∈G1是否成立,若不成立则验证不通过;
E3:计算t=gh’
E4:计算整数h1=H(1||ID_A);
E5:计算P=[h1]P2+[s]P2
E6:计算群u=e(S',P);
E7:计算群w'=u·t,将w'的数据类型转换为比特串U';
E8:计算整数h2=H(02||M'||U'),检验h2=h'是否成立,若成立则验证通过;否则验证不通过。
E9:如果验证不通过,则
E9a:计数ID_A验证签名失败的次数并根据一定的防止在线暴力破解密码的规则决定是否停止该账户ID_A的活动。
E9b:如果一个ID_A的失败次数超过一定阈值,则可以撤销该ID_A的验证。拥有ID_A标识的用户或者更换完全不同的标识,或者将ID_A进行一定变化为ID_A',变化的方法有如:ID_A'=ID_A|计数或者ID_A'=ID_A|有效期开始时间等。拥有ID_A标识的用户可以申请ID_A'对应的新标识私钥,并重新对消息进行签名。
E10:如果验证成功,则要校验ID_A是否为有效的标识,有效标识是指有效用户的合法标识。合法标识不包括被撤销标识。
参照图2,本发明实施例还提出了一种数字签名验证***,包括:
密钥生成中心10,用于生成主密钥、第一参数组及第二参数组;获取签名终端20的标识ID_A,根据所述主密钥、第一参数组、第二参数组及标识ID_A生成标识私钥S_A;
签名终端20,用于从密钥生成中心10获取所述标识私钥S_A及第一参数组;根据所述标识私钥S_A及第一参数组,结合签名终端20获取的保护PIN_A码及***特征码X,生成并保存私钥分片W;使用第一参数组、保护PIN_A码、***特征码X和私钥分片W对消息M进行签名,获得数字签名Q;
验证终端30,用于接收消息M'及数字签名Q',从密钥生成中心10获取所述第一参数组和第二参数组,根据所述第一参数组、第二参数组及标识ID_A对所述消息M'及数字签名Q'验证。
本发明实施例设计一种数字签名验证***,方案中涉及双线性对这一数学操作。
双线性对是指一种二元映射e:G1xG2→Gt,具有以下三个特性:
1.二元线性:e([s]P,[t]Q)=e(P,Q)st,s,t∈Z/Zq,P∈G1,Q∈G2,G1是一个阶为q的循环群,G2是一个幂为q群,其子群阶为q。[s]P表示s个P相加。
2.非退化性:存在非0元P和Q,e(P,Q)≠1。
3.可计算性:有多项式时间方法计算e(P,Q)。
双线性对有椭圆曲线上的Weil、Tate、Ate、R-ate、优化Ate对等。
密钥生成中心10
密钥生成中心10选择一条椭圆曲线E,具可高效计算的双线性对e。确定曲线E上的两个阶为素数q的点群G1和G2。分别选择G1和G2中的两个点P1和P2。选择随机数s作为主密钥,0<s<q,计算[s]P2以及g=e(P1,[s]P2)。其中[s]P2表示标准的s个P2相加。密钥生成中心10生成第一参数组<E,e,e(P1,[s]P2),H>和第二参数组<[s]P2>。其中消息映射函数H将一个比特串映射到[1,q-1]上。
P1可存放于所述第一参数组,也可存放于第二参数组。如果两组参数均不包括P1,则主密钥包括P1存放于主密钥。密钥生成中心10获取签名终端20的标识ID_A,生成标识ID_A对应的标识私钥S_A:
S_A=[s/(H(1||ID_A)+s)]P1
签名终端20
签名终端20从密钥生成中心10获取上述标识私钥S_A及第一参数组后,签名人在签名终端20上选择保护PIN_A码,签名终端20计算其***特征码X,保护PIN_A码及***特征码X用于保护签名私钥。如果无需***特征码,设置X=0。
其中,所述W通过以下方式获得:
如果P1在第一参数组,则W=f(S_A,PIN_A,X,P1),如果P1不在第一参数组,则W=f'(S_A,PIN_A,X)。其中,f函数存在可逆函数z,函数z为S_A=z(W,PIN_A,X,P1),或f'函数存在可逆函数z',函数z'为S_A=z'(W,PIN_A,X)。
例如,函数f可以为W=S_A-[(PIN_A+X)mod q]P1,对应的函数z为:S_A=W+[(PIN_A+X)mod q]P1
又如,函数f可以为W=S_A+[(PIN_A+X)mod q]P1;对应的函数z为:S_A=W-[(PIN_A+X)mod q]P1
同样地,函数f'可以为W=[(PIN_A+X)mod q]S_A,对应的函数z'为S_A=[1/(PIN_A+X)mod q]W
函数f'可以为W=[1/((PIN_A+X)mod q)]S_A,对应的函数z'为S_A=[(PIN_A+X)mod q]W。
生成私钥分片W后,上述私钥分片W存储于签名终端20的私钥文件中。
签名人在签名终端20使用***参数<E,e,g=e(P1,[s]P2),H>、私钥分片W、PIN码、机器特征码X对消息M进行签名。签名方法为:
D1:产生随机数r∈[1,q-1];
D2:计算w=gr,将w的数据类型转换为比特串U;
D3:计算整数h=H(2||M||U);
D4:计算整数L=(r-h)modq,若L=0则返回D1;
D5:计算dA=z(W,PIN_A,X,P1)或者dA=z'(W,PIN_A,X);例如,W=S_A-[(PIN_A+X)mod q]P1时,dA=W+[(PIN_A+X)modq]P1
或W=S_A+[(PIN_A+X)mod q]P1时,dA=W-[(PIN_A+X)modq]P1
或W=[(PIN_A+X)mod q]S_A时,dA=[1/((PIN_A+X)mod q)]W;
或W=[1/((PIN_A+X)mod q)]S_A时,dA=[(PIN_A+X)modq]W;
D6:计算S=[L]dA
D7:将h和S的数据类型转换为字节串,消息M的签名为(h,S)。
验证终端30
验签人在验证终端30使用***公开参数<E,e,g=e(P1,[s]P2),H>、密钥生成中心10的<[s]P2>,收到的消息M'以及签名人ID_A对数字签名Q'验证。Q'即(h',S')。验证的步骤如下:
E0:验证终端获得第一参数组、第二参数组后,如果P1存在于第一参数组或第二参数组中,计算g'=e(P1,[s]P2),检验g=g'是否成立,则报错。步骤E0用于验证***参数的正确性,若验证不通过,则后续的验证步骤都无须执行。
E1:将h'的数据类型转换为整数,检验h'∈[1,q-1]是否成立,若不成立则验证不通过;
E2:将S'的数据类型转换为椭圆曲线上的点,检验S'∈G1是否成立,若不成立则验证不通过;
E3:计算t=gh’
E4:计算整数h1=H(1||ID_A);
E5:计算P=[h1]P2+[s]P2
E6:计算群u=e(S',P);
E7:计算群w'=u·t,将w'的数据类型转换为比特串U';
E8:计算整数h2=H(02||M'||U'),检验h2=h'是否成立,若成立则验证通过;否则验证不通过。
E9:如果验证不通过,则
E9a:计数ID_A验证签名失败的次数并根据一定的防止在线暴力破解密码的规则决定是否停止该账户ID_A的活动。
E9b:如果一个ID_A的失败次数超过一定阈值,则可以撤销该ID_A的验证。拥有ID_A标识的用户或者更换完全不同的标识,或者将ID_A进行一定变化为ID_A',变化的方法有如:ID_A'=ID_A|计数或者ID_A'=ID_A|有效期开始时间等。拥有ID_A标识的用户可以申请ID_A'对应的新标识私钥,并重新对消息进行签名。
E10:如果验证成功,则要校验ID_A是否为有效的标识,有效标识是指有效用户的合法标识。合法标识不包括被撤销标识。
本发明提出一种数字签名验证方法及***,使用用户标识作为用户的公钥,私钥由受信任的第三方使用标识私钥生成方法计算生成,用户不需要申请和交换证书,从而很大地简化了密码***管理的复杂性。生成的标识私钥在签名终端使用PIN码及***特征码保护。签名终端使用受保护的标识私钥和部分标识密码***参数对信息进行签名,实现了数字签名的功能,同时可以有效提高抵抗PIN码猜测攻击的能力。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数字签名验证方法,其特征在于,包括以下步骤:
步骤A:生成主密钥、第一参数组及第二参数组;
步骤B:获取签名终端的标识ID_A,根据所述主密钥、第一参数组、第二参数组及标识ID_A生成标识私钥S_A;
步骤C:将所述标识私钥S_A及第一参数组发送至签名终端;
步骤D:通过所述签名终端对消息M进行签名,所述签名终端获得数字签名Q;
步骤E:接收验证终端的请求,将所述第一参数组和第二参数组发送至验证终端,其中,所述验证终端根据所述第一参数组、第二参数组及标识ID_A对接收到的消息M'及数字签名Q'进行验证;
其中,所述第一参数组包括<E,e,g=e(P1,[s]P2),H>,其中,E为椭圆曲线,e代表二元映射e:G1·G2→Gt,G1和G2为椭圆曲线E上的两个点群,G1是一个阶为q的循环群,G2是一个幂为q群,其子群阶为q,q为素数,P1∈G1,P2∈G2,e(P1,[s]P2)=e(P1,P2)s,主密钥包括s,[s]P2表示s个P2相加,H为消息映射函数,用于将比特串映射到[1,q-1]上;
所述第二参数组包括[s]P2
所述P1包含于所述第一参数组或第二参数组或主密钥中。
2.根据权利要求1所述的数字签名验证方法,其特征在于,在步骤B中,所述标识私钥S_A通过以下公式计算获得:
S_A=[s/(H(1||ID_A)+s)]P1
3.根据权利要求2所述的数字签名验证方法,其特征在于,步骤C之后还包括:
步骤C1:所述签名终端根据所述标识私钥S_A及第一参数组,结合签名终端获取的保护PIN_A码及***特征码X,生成并保存私钥分片W,所述W通过以下方式获得:
如果P1在第一参数组,则W=f(S_A,PIN_A,X,P1);如果P1不在第一参数组,则W=f'(S_A,PIN_A,X);其中,f函数存在可逆函数z,函数z为S_A=z(W,PIN_A,X,P1),或f'函数存在可逆函数z',函数z'为S_A=z'(W,PIN_A,X)。
4.根据权利要求3所述的数字签名验证方法,其特征在于,在计算私钥分片W时,X的取值存在为零的情况。
5.根据权利要求3所述的数字签名验证方法,其特征在于,所述步骤D中的签名过程包括:
D1:产生随机数r,r∈[1,q-1];
D2:计算w=gr,将w的数据类型转换为比特串U;
D3:计算整数h=H(2||M||U);
D4:计算整数L=(r-h)modq,若L=0则返回D1;
D5:计算dA
当W=f(S_A,PIN_A,X,P1)时,dA=z(W,PIN_A,X,P1);
或当W=f'(S_A,PIN_A,X)时,dA=z'(W,PIN_A,X);
D6:计算S=[L]dA
D7:将h和S的数据类型转换为字节串,获得数字签名Q为(h,S)。
6.根据权利要求5所述的数字签名验证方法,其特征在于,在步骤E中,所述数字签名Q'为(h',S'),所述步骤E的签名验证过程包括:
E1:将h'的数据类型转换为整数,检验h'∈[1,q-1]是否成立,若不成立则验证不通过;
E2:将S'的数据类型转换为椭圆曲线上的点,检验S'∈G1是否成立,若不成立则验证不通过;
E3:计算t=gh’
E4:计算整数h1=H(1||ID_A);
E5:计算P=[h1]P2+[s]P2
E6:计算群u=e(S',P);
E7:计算群w'=u·t,将w'的数据类型转换为比特串U';
E8:计算整数h2=H(02||M'||U'),检验h2=h'是否成立,若成立则验证通过;否则验证不通过。
7.根据权利要求6所述的数字签名验证方法,其特征在于,在验证不通过的情况下,计数ID_A验证不通过的次数,若所述次数超过预设次数,则停止ID_A的活动。
8.根据权利要求7所述的数字签名验证方法,其特征在于,在验证通过的情况下,校验ID_A是否为有效标识,所述有效标识包括有效用户的合法标识,所述合法标识为未被撤销标识。
9.根据权利要求6所述的数字签名验证方法,其特征在于,步骤E1之前,还包括:
E0:验证终端获得所述第一参数组和第二参数组后,如果P1存在于第一参数组或第二参数组中,则计算g'=e(P1,[s]P2),检验g=g'是否成立,若不成立则验证不通过。
10.一种数字签名验证***,其特征在于,包括:
密钥生成中心,用于生成主密钥、第一参数组及第二参数组;获取签名终端的标识ID_A,根据所述主密钥、第一参数组、第二参数组及标识ID_A生成标识私钥S_A;
签名终端,用于从密钥生成中心获取所述标识私钥S_A及第一参数组;根据所述标识私钥S_A及第一参数组,结合签名终端获取的保护PIN_A码及***特征码X,生成并保存私钥分片W;使用第一参数组、保护PIN_A码、***特征码X和私钥分片W对消息M进行签名,获得数字签名Q;
验证终端,用于接收消息M'及数字签名Q',从密钥生成中心获取所述第一参数组和第二参数组;根据所述第一参数组、第二参数组及标识ID_A对所述消息M'及数字签名Q'验证;
其中,所述第一参数组包括<E,e,g=e(P1,[s]P2),H>,其中,E为椭圆曲线,e代表二元映射e:G1·G2→Gt,G1和G2为椭圆曲线E上的两个点群,G1是一个阶为q的循环群,G2是一个幂为q群,其子群阶为q,q为素数,P1∈G1,P2∈G2,e(P1,[s]P2)=e(P1,P2)s,主密钥包括s,[s]P2表示s个P2相加,H为消息映射函数,用于将比特串映射到[1,q-1]上;
所述第二参数组包括[s]P2
所述P1包含于所述第一参数组或第二参数组或主密钥中。
CN201710228010.4A 2017-04-07 2017-04-07 数字签名验证方法及*** Active CN106899413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710228010.4A CN106899413B (zh) 2017-04-07 2017-04-07 数字签名验证方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710228010.4A CN106899413B (zh) 2017-04-07 2017-04-07 数字签名验证方法及***

Publications (2)

Publication Number Publication Date
CN106899413A CN106899413A (zh) 2017-06-27
CN106899413B true CN106899413B (zh) 2020-05-08

Family

ID=59196337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710228010.4A Active CN106899413B (zh) 2017-04-07 2017-04-07 数字签名验证方法及***

Country Status (1)

Country Link
CN (1) CN106899413B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109728901B (zh) * 2017-10-31 2022-04-08 中国电信股份有限公司 数字签名认证方法、装置和***
CN110011808B (zh) * 2019-03-29 2021-10-15 天逸财金科技服务股份有限公司 具有保护数位签章机制的方法及***与伺服器
CN110190950B (zh) * 2019-06-11 2021-04-27 飞天诚信科技股份有限公司 一种安全签名的实现方法及装置
CN113055161B (zh) * 2021-03-09 2021-11-26 武汉大学 一种基于sm2和sm9数字签名算法的移动终端认证方法与***
CN113726528B (zh) * 2021-11-02 2022-02-18 深圳奥联信息安全技术有限公司 一种基于骨声纹的密钥保护方法及***
CN114697046B (zh) * 2022-06-01 2022-09-30 湖南三湘银行股份有限公司 基于国密sm9的安全认证方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420300A (zh) * 2008-05-28 2009-04-29 北京易恒信认证科技有限公司 双因子组合公钥生成和认证方法
CN101626294A (zh) * 2008-07-07 2010-01-13 华为技术有限公司 基于身份的认证方法、保密通信方法、设备和***
CN103427997A (zh) * 2013-08-16 2013-12-04 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置
CN103684786A (zh) * 2013-12-10 2014-03-26 北京天威诚信电子商务服务有限公司 数字证书的存储与硬件载体绑定的方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2348447B1 (en) * 2009-12-18 2014-07-16 CompuGroup Medical AG A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device
CN101873307A (zh) * 2010-03-19 2010-10-27 上海交通大学 基于身份的前向安全的数字签名方法、装置及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420300A (zh) * 2008-05-28 2009-04-29 北京易恒信认证科技有限公司 双因子组合公钥生成和认证方法
CN101626294A (zh) * 2008-07-07 2010-01-13 华为技术有限公司 基于身份的认证方法、保密通信方法、设备和***
CN103427997A (zh) * 2013-08-16 2013-12-04 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置
CN103684786A (zh) * 2013-12-10 2014-03-26 北京天威诚信电子商务服务有限公司 数字证书的存储与硬件载体绑定的方法及***

Also Published As

Publication number Publication date
CN106899413A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN106899413B (zh) 数字签名验证方法及***
US10027654B2 (en) Method for authenticating a client device to a server using a secret element
US8116451B2 (en) Key validation scheme
US20210367753A1 (en) Trusted measurement and control network authentication method based on double cryptographic values and chaotic encryption
JP5205398B2 (ja) 鍵認証方式
US8589693B2 (en) Method for two step digital signature
CN110167021B (zh) 一种车载虚拟钥匙实现及通信方法
CN111010272B (zh) 一种标识私钥生成和数字签名方法及***和装置
CN109818730B (zh) 盲签名的获取方法、装置和服务器
US9800418B2 (en) Signature protocol
CN101931536B (zh) 一种无需认证中心的高效数据加密及认证方法
EP2247025B1 (en) Apparatus, method, and program for updating a pair of public and secret key for digital signature
CN110247759B (zh) 一种sm9私钥生成和使用方法及***
CN106936584B (zh) 一种无证书公钥密码***的构造方法
CN111147245A (zh) 一种区块链中使用国家密码进行加密的算法
CN110505061B (zh) 一种数字签名算法及***
CN112636922B (zh) 基于无交互零知识证明的iot身份认证方法
US20150006900A1 (en) Signature protocol
CN116502266A (zh) 基于同态加密的区块链可监管零知识证明的验证方法
US20030076954A1 (en) Strengthened public key protocol
CN113452529A (zh) 一种基于sm2算法的适配器签名生成方法
CN115174056B (zh) 一种基于sm9签名的变色龙签名生成方法及装置
Kalamsyah et al. Digital contract using block chaining and elliptic curve based digital signature
CN115174053B (zh) 一种基于sm9算法的可否认环认证的签名生成方法及装置
CN116094729B (zh) 一种基于sm9签名的离线授权和在线签名生成方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant