CN107370599B - 一种远程销毁私钥的管理方法、装置和系统 - Google Patents
一种远程销毁私钥的管理方法、装置和系统 Download PDFInfo
- Publication number
- CN107370599B CN107370599B CN201710667496.1A CN201710667496A CN107370599B CN 107370599 B CN107370599 B CN 107370599B CN 201710667496 A CN201710667496 A CN 201710667496A CN 107370599 B CN107370599 B CN 107370599B
- Authority
- CN
- China
- Prior art keywords
- signature
- private key
- server
- client
- updating
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种远程销毁私钥的管理方法、装置和系统,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:客户端将摘要e和随机椭圆曲线点Q发送至服务器端;接收服务器端的第一中间签名ts;通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端计算第二部分签名s,并验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,本发明通过客户端及可信中心服务器分别存储部分私钥的密钥体系设计,并结合动态密钥销毁的技术手段,避免了黑客针对客户端单点攻击以及穷举试错等攻击。
Description
技术领域
本发明涉及移动安全技术领域,尤其涉及一种远程销毁私钥的管理方法、装置和系统。
背景技术
数字证书是指网上金融、电子政务或电子商务等网上电子活动中,符合《中华人民共和国电子签名法》、能够证实签名人与电子签名数据具有可靠关联性的一种电子签名认证证书。数字证书基于非对称密码技术,包括公钥和私钥,公开的密钥称为公钥,私有的密钥称为私钥。
现有技术中,数字证书私钥存储方式主要有以下三种方式:
一种是软证书,又称为文件证书,用户数字证书私钥存储在计算机硬盘或软盘中;
一种是硬证书,通常使用智能密码钥匙和集成电路卡来存储用户数字证书私钥;
一种是云证书,用户数字证书私钥托管保存在云服务系统中。
发明人在研究的过程中发现,以上三种方式均存在各自的缺点:软证书使用方便但数字证书私钥被盗用风险等级较高,特别是针对手机等非可信运行及存储环境,攻击者可通过内存跟踪、越权访问本地文件等手段窃取用户数字证书私钥;硬证书由于受到硬件封装技术保护,安全性较高,但存在使用不便,兼容性较差等问题;云证书方式由于用户数字证书私钥在云端托管,私钥受云端隔离保护,但难以确保数字签名为用户本人操作,且存在云端可伪造数字签名的业务风险。因此,当前技术条件下,主要还是以基于硬件封装技术的硬证书作为强认证业务场景的首选。
然而,虽然硬证书件可确保签名私钥的安全产生和使用,但其硬件成本问题以及使用不便的缺点一直饱受诟病,特别是在移动互联网迅猛发展的今天,终端用户需要使用方便且普遍适用的安全软件,既能满足安全性又不丧失便利性。
现有技术中解决上述技术问题的方案如下:将私钥拆分,每一方都没有完整的私钥。这种方法中,计算签名的两个参数r和s在两方完成计算,从而每一方都不掌握完整验签数据,由于通信接收的数据由于不是自己计算的,因而数据不是可信可掌握的验签数据,没有管理(验签和销毁)的方法,因此存在木桶风险,即,通信上存在篡改的可能,存在仿冒、穷举攻击的安全风险。
发明内容
为了解决上述技术问题,本发明的主要目的在于提供一种远程销毁私钥的管理方法、装置和系统,签名结果(r,s)都在可信平台服务器完成计算,签名过程中服务器掌握完整验签数据,从而可通过验签确认客户端的合法性,对于非法客户端请求,可及时通过销毁服务端密钥使得私钥失效,从而1.可抵御仿冒攻击2.可抵御穷举试错攻击。
本发明一方面提供了一种远程销毁私钥的管理方法,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,该方法包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端;
接收服务器端基于第一部分签名r生成第一中间签名ts,所述第一部分签名r基于e和Q生成;
通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
进一步的,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点。
进一步的,所述服务器端基于第一部分签名r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O(无穷远点),重新执行本步骤;
计算第一中间签名ts=r.(ks)-1mod n。
进一步的,所述通过ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
进一步的,所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
进一步的,所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
进一步的,还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u或u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的u或u-1对应的逆元更新第一部分私钥dc;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u.ds.u-1=dc.ds,或(1+d)-1=dc.u-1.ds.u=dc.ds与原更新私钥相等。
进一步的,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n。
进一步的,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
进一步的,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
进一步的,所述更新参数根据触发指令在签名前产生,包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端的同时,将具有逆元的更新参数发送至服务器端,以便服务器端使用更新参数或其逆元更新服务器端的第二部分私钥ds,客户端收到服务器端发送的更新成功的提示信息后,使用与服务器端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc。
进一步的,所述更新参数根据触发指令在签名后产生,包括:
客户端接收服务器端基于第一部分签名r生成第一中间签名ts及具有逆元的更新参数;
客户端收到服务器端基于r,tc和第二部分私钥ds计算第二部分签名s后,基于更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与服务器端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc。
本发明另一方面提供了一种远程销毁私钥的管理方法,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,该方法包括:
服务器端接收客户端发送的待签名消息的摘要e和随机椭圆曲线点Q,基于所述e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端;
接收客户端基于ts和dc计算第二中间签名tc,基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
进一步的,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点;
进一步的,所述基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O(无穷远点),重新执行本步骤;
计算第一中间签名ts=r.(ks)-1mod n。
进一步的,所述客户端基于ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
进一步的,所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
进一步的,所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
进一步的,还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u或u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的u或u-1对应的逆元更新第一部分私钥dc;
数字签名使用的更新后的签名私钥(1+d)-1=dc.ds=dc.u.ds.u-1,或(1+d)-1=dc.u-1.ds.u=dc.ds,与原更新私钥相等。
进一步的,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n。
进一步的,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
进一步的,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
进一步的,所述更新参数根据触发指令在签名前产生,包括:
服务器端接收客户端发送的待签名消息的摘要e,随机椭圆曲线点Q和具有逆元的更新参数,使用基于更新参数或其逆元更新服务器端的第二部分私钥ds,并向客户端发送更新成功的提示信息,以便客户端通过与服务器端使用的更新参数或其逆元的逆元更新客户端存储第一部分私钥dc。
进一步的,所述更新参数根据触发指令在签名后产生,包括:
服务器端向客户端发送基于第一部分签名r生成的第一中间签名ts及具有逆元的更新参数,接收到客户端基于ts和第一部分私钥dc计算的第二中间签名tc,并基于r,tc和第二部分私钥ds计算第二部分签名s后,基于更新参数或其逆元更新第二部分私钥,将所述更新成功的提示信息发送至客户端后,以便客户端通过与服务器端使用的更新参数或其逆元的逆元更新第一部分私钥dc。
本发明另一方面提供了一种远程销毁私钥的管理系统,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
客户端,用于将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端;接收服务器端基于第一部分签名r生成第一中间签名ts,所述第一部分签名r基于e和Q生成;通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
本发明另一方面提供了一种远程销毁私钥的管理系统,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
服务器端,用于接收客户端发送的待签名消息的摘要e和随机椭圆曲线点Q,基于所述e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端;接收客户端基于ts和dc计算第二中间签名tc,基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
本发明另一方面提供了一种远程销毁私钥的管理装置,包括前述的系统。
本发明提供了一种远程销毁私钥的管理方法、装置和系统,采用了客户端及服务器协同签名的机制,使得签名私钥((1+d)-1=(dc ds)mod n及过程随机数(k=kc.ks)不完整出现,避免了密钥泄露的风险,服务器在不掌握待签明消息的前提下,通过第一次交互所接收的摘要e及服务器所管控的部分签名结r实现对客户端的合法性认证,对于非法客户端请求服务器通过密钥销毁手段,完善了密钥生命周期的有效管理,本发明采用了软硬结合的联机签名系统实现数字签名,不但可抵御暴利破解等离线攻击,而且由服务器硬件密码设备参与产生的随机数可以满足不可预测的安全要求。本发明与现有技术相比,可以达到以下有益效果:
1)本发明通过两个通信端分别存储部分私钥的密钥体系设计,并结合动态密钥更新与销毁的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名;
2)由于服务器不掌握完整的签名私钥,也无法通过客户端与服务器的交互参数逆向恢复签名私钥,在没有用户客户端参与的条件下,无法独立产生有效的数字签名,从而规避了服务器伪造数字签名的业务风险;在没有服务器参与的管控条件下,客户端也无法独立产生有效的数字签名,从而有效避免了在失控条件下黑客针对客户端的离线攻击;
3)本发明通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性。
附图说明
图1为根据本发明的一种远程销毁私钥的管理方法的实施例一的流程图;
图2为根据本发明的一种远程销毁私钥的管理方法的实施例二的流程图;
图3为根据本发明的一种远程销毁私钥的管理方法的流程图;
图4为根据本发明的一种远程销毁私钥的管理系统的实施例三的结构框图。
图5为根据本发明的一种远程销毁私钥的管理系统的实施例四的结构框图。
图6为根据本发明的一种远程销毁私钥的管理装置的实施例五的结构框图。
图7为根据本发明的一种远程销毁私钥的管理装置的实施例六的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
参照图1,图1示出了本发明提供的一种远程销毁私钥的管理方法的一实施例的流程图。其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名。包括:步骤S110至步骤S130。
在步骤S110中,客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端。
在步骤S120中,接收服务器端基于第一部分签名r生成第一中间签名ts,所述第一部分签名r基于e和Q生成。
在步骤S130中,通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
本发明的设计思想是以软实现的移动应用客户端及智能手机作为安全认证载体,客户端与可信中心服务器分别存储部分签名私钥,完整签名私钥不出现,客户端与服务器通过协同运算机制,实现密钥的动态变换及可靠电子签名。
客户端和服务器协同签名过程包括2次交互过程,另外服务器端产生的部分签名结果r不参与签名交互(不发送给客户端),服务器在接收到第2次客户端所发送的中间签名后,使用该部分签名结果r作为验证要素认证客户端的合法性,如认证失败则即时销毁服务器密钥,从而使得签名私钥失效。实时验证及销毁该机制可有效抵御试错攻击,避免攻击者通过无限制的试错方法分析密钥。
服务器对第二部分私钥可管可控,通过对第二部分私钥的销毁达到与远程销毁等效的效果。
实施例二
参照图2,图2示出了本发明提供的一种远程销毁私钥的管理方法的另一实施例的流程图。其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,该方法包括:步骤S210至步骤S220。
在步骤S210中,服务器端接收客户端发送的待签名消息的摘要e和随机椭圆曲线点Q,基于所述e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端。
在步骤S220中,接收客户端基于ts和dc计算第二中间签名tc,基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
本实施例二与实施例一的不同之处在于执行主体为服务器端,且执行步骤应用的优选算法与实施例一相同,受说明书篇幅的限制,在此不再复述,具体的动作和算法以及实施例参考实施例一的描述。但是本领域技术人员应该知悉,本申请并不受所描述的算法以及动作顺序限制,依据本发明,根据公开的技术特征、凡是具有所公开的功能,达到所描述的技术效果的方案都在本发明的保护范围之内。说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
为了使得本领域技术人员更易理解本发明实施例一和实施例二提供的技术方案,参考图3,以一具体的实施例进行解释说明,包括步骤S310至步骤S340:
在骤S310中,客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端。
在骤S320中,服务器端基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端。
在骤S330中,客户端基于ts和dc计算第二中间签名tc,并将tc发送至服务器端。
在骤S340中,服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
由于在已知签名(r,s)和随机数k的情况下,可以推导出数字证书私钥d,例如:
d=((k+r)(s+r)-1-1)mod n;
针对此随机数问题,本发明实施例通过构造方法,由客户端和服务器各自产生一个随机数,从而避免随机数暴露的安全隐患。
令:k=kc.ks,kc为客户端产生的随机数,ks为服务器产生的随机数,完整随机数在签名过程中可出现不可逆向恢复。
所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点;
所述服务器端基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O(无穷远点),重新执行本步骤;
计算第一中间签名ts=r.(ks)-1mod n。
所述客户端基于ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
所述更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u-1更新第二部分私钥ds.u-1,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过u更新第一部分私钥dc.u;
数字签名使用的更新后的签名私钥(1+d)-1=dc.ds=dc.u.ds.u-1与原更新私钥相等。
或
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u更新第二部分私钥ds.u,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过u-1更新第一部分私钥dc.u-1;
数字签名使用的更新后的签名私钥(1+d)-1=dc.ds=dc.u-1.ds.u,与原更新私钥相等。
一优选实施例,客户端主动发起的密钥更新包括用户的主动操作或由客户端应用程序静默执行,静默执行的更新条件包括定时任务或根据安全检测的危险程度触发更新等。
客户端:
[1]产生随机数u∈[1,n-1];
[2]更新客户端密钥dc=(dc.u)mod n;
[3]将更新参数u发送给服务器;
服务器端:
[4]更新服务器端密钥ds=(ds.u-1)mod n。
另一优选实施例:
服务器主动发起的密钥更新包括管理员的主动操作或由服务器应用程序静默执行,静默执行的更新条件包括定时任务或根据用户历史行为数据的风险评估所触发的更新等。服务器主动更新可一次针对一个特定用户,也可以针对一组或全部用户。
服务器端:
[1]产生随机数u∈[1,n-1];
[2]针对目标用户,分别更新其服务端密钥ds=(ds.u-1)mod n;
[3]将更新参数u广播、组播或定向发送给客户端;
客户端:
[4]更新客户端密钥dc=(dc.u)mod n。
进一步的,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;进一步提升了私钥的使用安全。
数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n。
所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
所述更新参数根据触发指令在签名前产生,包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端的同时,将具有逆元的更新参数发送至服务器端。
服务器端基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,并基于更新参数或其逆元更新服务器端的第二部分私钥ds,将ts发送至客户端;
客户端基于与服务器端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc,并基于ts和更新后的第一部分私钥dc计算第二中间签名tc,并将tc发送至服务器端;
服务器端基于r,tc和更新后的第二部分私钥ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
所述更新参数根据触发指令在签名后产生,包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端。
服务器端基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts及具有逆元的更新参数发送至客户端;
客户端基于ts和第一部分私钥dc计算第二中间签名tc,基于更新参数或其逆元更新第一部分私钥,并将tc发送至服务器端;
服务器端基于r,tc和第二部分私钥ds计算第二部分签名s,基于与客户端使用的更新参数或其逆元对应的逆元更新第二部分私钥,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
由上可见,第一通信端和第二通信端(即客户端和服务器端)协同签名过程包括2次交互过程,计算签名的同时附带密钥动态更新操作;另外服务器端产生的部分签名结果r不参与签名交互(不发送给客户端),服务器在接收到第2次客户端所发送的中间签名后,使用该部分签名结果r作为验证要素认证客户端的合法性,如认证失败则即时销毁服务器密钥,从而使得签名私钥失效。实时验证及销毁该机制可有效抵御试错攻击,避免攻击者通过无限制的试错方法分析密钥。
本发明实施例采用了动态密钥更新方法(dc.u.ds.u-1),迫使客户端或服务器端本地存储的密钥动态可变,从而解决了在智能手机等脆弱安全环境下,软密码设备由于内存及存储暴露所导致的安全问题;同时,采用了客户端及服务器协同签名的机制,使得签名私钥((1+d)-1=(dc.ds)mod n及过程随机数(k=kc.ks)不完整出现,避免了密钥泄露的风险;客户端及服务器在签名过程中同时完成协同密钥更新,动态密钥不但提升了密钥强度,而且可抵御会话劫持、数据重放等攻击,整体提升了签名算法的健壮性;服务器在不掌握待签明消息的前提下,通过第一次交互所接收的摘要e及服务器所管控的部分签名结r实现对客户端的合法性认证,对于非法客户端请求服务器通过密钥销毁手段,完善了密钥生命周期的有效管理;还采用了软硬结合的联机签名系统实现数字签名,不但可抵御暴利破解等离线攻击,而且由服务器硬件密码设备参与产生的随机数可以满足不可预测的安全要求。
服务器对第二部分私钥可管可控,通过对第二部分私钥的销毁达到与远程销毁等效的效果。
本发明具有以下优点:
1)本发明通过客户端及可信中心服务器分别存储部分私钥的密钥体系设计,并结合动态密钥更新与销毁的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名;
2)由于服务器不掌握完整的签名私钥,也无法通过客户端与服务器的交互参数逆向恢复签名私钥,在没有用户客户端参与的条件下,无法独立产生有效的数字签名,从而规避了服务器伪造数字签名的业务风险;在没有服务器参与的管控条件下,客户端也无法独立产生有效的数字签名,从而有效避免了在失控条件下黑客针对客户端的离线攻击;
3)本发明通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性。
实施例三
参照图4,图4示出了本发明提供的一种远程销毁私钥的管理系统300,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
客户端31,用于将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端;接收服务器端基于第一部分签名r生成第一中间签名ts,所述第一部分签名r基于e和Q生成;通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
进一步的,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点。
进一步的,所述服务器端基于第一部分签名r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O(无穷远点),重新执行本步骤;
计算第一中间签名ts=r.(ks)-1mod n。
进一步的,所述通过ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
进一步的,所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
进一步的,所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
进一步的,还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
进一步的,所述更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u-1更新第二部分私钥ds.u-1,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过u更新第一部分私钥dc.u;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u.ds.u-1=dc.ds,与原更新私钥相等。
或
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u更新第二部分私钥ds.u,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过u-1更新第一部分私钥dc.u-1;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u-1.ds.u=dc.ds,与原更新私钥相等。
进一步的,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n。
进一步的,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
进一步的,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
进一步的,所述更新参数根据触发指令在签名前产生,包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端的同时,将具有逆元的更新参数发送至服务器端,以便服务器端使用基于更新参数或其逆元更新服务器端的第二部分私钥ds,客户端收到服务器端发送的更新成功的提示信息后,通过与服务器端使用的更新参数或其逆元的逆元更新第一部分私钥dc。
进一步的,所述更新参数根据触发指令在签名后产生,包括:
客户端接收服务器端基于第一部分签名r生成第一中间签名ts及具有逆元的更新参数;
客户端收到服务器端基于r,tc和第二部分私钥ds计算第二部分签名s后,基于更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与服务器端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc。
具体实现的功能和处理方式参见方法实施例一描述的具体步骤。
由于本实施例三的系统所实现的处理及功能基本相应于前述图1-3所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
实施例四
参照图5,图5示出了本发明提供的一种远程销毁私钥的管理系统400,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,包括:
服务器端41,用于接收客户端发送的待签名消息的摘要e和随机椭圆曲线点Q,基于所述e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端;接收客户端基于ts和dc计算第二中间签名tc,基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
进一步的,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点;
进一步的,所述基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O(无穷远点),重新执行本步骤;
计算第一中间签名ts=r.(ks)-1mod n。
进一步的,所述客户端基于ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
进一步的,所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
进一步的,所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
进一步的,还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
进一步的,所述更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u-1更新第二部分私钥ds.u-1,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过u更新第一部分私钥dc.u;
数字签名使用的更新后的签名私钥(1+d)-1=dc.ds=dc.u.ds.u-1,与原更新私钥相等,第二通信端通过u更新的例子可参考实施例一到三。
进一步的,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n。
进一步的,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
进一步的,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
进一步的,所述更新参数根据触发指令在签名前产生,包括:
服务器端接收客户端发送的待签名消息的摘要e,随机椭圆曲线点Q和具有逆元的更新参数,使用基于更新参数或其逆元更新服务器端的第二部分私钥ds,并向客户端发送更新成功的提示信息,以便客户端通过与服务器端使用的更新参数或其逆元的逆元更新客户端存储第一部分私钥dc。
进一步的,所述更新参数根据触发指令在签名后产生,包括:
服务器端向客户端发送基于第一部分签名r生成的第一中间签名ts及具有逆元的更新参数,接收到客户端基于ts和第一部分私钥dc计算的第二中间签名tc,并基于r,tc和第二部分私钥ds计算第二部分签名s后,基于更新参数或其逆元更新第二部分私钥,将所述更新成功的提示信息发送至客户端后,以便客户端通过与服务器端使用的更新参数或其逆元的逆元更新第一部分私钥dc。
具体实现的功能和处理方式参见方法实施例二描述的具体步骤。
由于本实施例四的系统所实现的处理及功能基本相应于前述图1-3所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
实施例五
参照图6,图6示出了本发明提供的一种远程销毁私钥的管理装置500,包括实施例三所述的系统300。
实施例六
参照图7,图7示出了本发明提供的一种远程销毁私钥的管理装置600,包括实施例四所述的系统400。
本发明实施例五和实施例六提供了一种远程销毁私钥的管理装置,包括前述系统,基于分布式算法的数字证书技术原理,采用移动端无硬件的纯软密码模块,协同云端服务器的硬件密码设备执行动态密钥更新与销毁,以联机签名系统的方式实现可靠电子签名,从而既达到安全认证要求,同时又满足便利且普遍适用的用户需求。本发明与现有技术相比,可以达到以下有益效果:
1)本发明通过两个通信端分别存储部分私钥的密钥体系设计,并结合动态密钥更新与销毁的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名;
2)由于服务器不掌握完整的签名私钥,也无法通过客户端与服务器的交互参数逆向恢复签名私钥,在没有用户客户端参与的条件下,无法独立产生有效的数字签名,从而规避了服务器伪造数字签名的业务风险;在没有服务器参与的管控条件下,客户端也无法独立产生有效的数字签名,从而有效避免了在失控条件下黑客针对客户端的离线攻击;
3)本发明通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
需要指出,根据实施的需要,可将本申请中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (31)
1.一种远程销毁私钥的管理方法,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,该方法包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端;
客户端接收服务器端基于第一部分签名r生成的第一中间签名ts,所述第一部分签名r由服务器端基于e和Q生成;
客户端通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
2.如权利要求1所述的方法,其特征在于,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点。
3.如权利要求2所述的方法,其特征在于,所述服务器端基于第一部分签名r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O,重新执行本步骤;
其中,x1为椭圆曲线点横坐标,y1为椭圆曲线点纵坐标;O为无穷远点;
计算第一中间签名ts=r.(ks)-1 mod n。
4.如权利要求2或3所述的方法,其特征在于,所述通过ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
5.如权利要求3所述的方法,其特征在于,所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
6.如权利要求3所述的方法,其特征在于,所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
7.如权利要求1所述的方法,其特征在于,还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
8.如权利要求7所述的方法,其特征在于,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
9.如权利要求8所述的方法,其特征在于,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u或u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的u或u-1对应的逆元更新第一部分私钥dc;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u.ds.u-1=dc.ds,或(1+d)-1=dc.u- 1.ds.u=dc.ds与原更新私钥相等;
其中,d为数字证书私钥。
10.如权利要求9所述的方法,其特征在于,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n;
其中,k为随机数。
11.如权利要求7-10之一所述的方法,其特征在于,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
12.如权利要求11所述的方法,其特征在于,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
13.如权利要求12所述的方法,其特征在于,所述更新参数根据触发指令在签名前产生,包括:
客户端将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端的同时,将具有逆元的更新参数发送至服务器端,以便服务器端使用更新参数或其逆元更新服务器端的第二部分私钥ds,客户端收到服务器端发送的更新成功的提示信息后,使用与服务器端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc。
14.如权利要求12所述的方法,其特征在于,所述更新参数根据触发指令在签名后产生,包括:
客户端接收服务器端基于第一部分签名r生成的第一中间签名ts及具有逆元的更新参数;
客户端收到服务器端基于r,tc和第二部分私钥ds计算的第二部分签名s以及服务器端基于更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与服务器端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc。
15.一种远程销毁私钥的管理方法,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,该方法包括:
服务器端接收客户端发送的待签名消息的摘要e和随机椭圆曲线点Q,基于所述e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端;
服务器端接收客户端基于ts和dc计算的第二中间签名tc,基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
16.如权利要求15所述的方法,其特征在于,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点。
17.如权利要求16所述的方法,其特征在于,所述基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,包括:
验证Q是否是椭圆曲线上的点,若是则产生第二随机数ks∈[1,n-1],其中n为椭圆曲线的阶,完整的随机数为客户端产生的第一随机数与所述第二随机数的运算;
计算椭圆曲线点K=(x1,y1)=[ks]Q;计算r=(e+x1)mod n,若r=0或[r]G+K=O,重新执行本步骤;
其中,x1为椭圆曲线点横坐标,y1为椭圆曲线点纵坐标;O为无穷远点;
计算第一中间签名ts=r.(ks)-1mod n。
18.如权利要求16或17所述的方法,其特征在于,所述客户端基于ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
19.如权利要求17所述的方法,其特征在于,所述服务器端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
20.如权利要求17所述的方法,其特征在于,所述基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds,包括:
计算(x1,y1)=[s]G+[r+s]P,其中P为数字证书公钥;
计算r’=(e+x1)mod n,其中e为客户端发送的交互参数;判断r’与r是否相等,若两者不相等则销毁服务器端密钥,否则将数字签名(r,s)发送给认证端验证。
21.如权利要求15所述的方法,其特征在于,还包括将第一部分私钥dc和第二部分私钥ds更新的步骤,更新的步骤包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥;
其中,所述第一通信端为客户端,所述第二通信端为服务器端;或所述第一通信端为服务器端,所述第二通信端为客户端。
22.如权利要求21所述的方法,其特征在于,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
23.如权利要求22所述的方法,其特征在于,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第二通信端通过u或u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端;
第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的u或u-1对应的逆元更新第一部分私钥dc;
数字签名使用的更新后的签名私钥(1+d)-1=dc.ds=dc.u.ds.u-1,或(1+d)-1=dc.u- 1.ds.u=dc.ds,与原更新私钥相等;
其中,d为数字证书私钥。
24.如权利要求23所述的方法,其特征在于,数字签名(r,s)中,计算签名s只需用到签名私钥(1+d)-1,无需数字证书私钥d;
签名s仅涉及签名私钥的计算过程如下:
签名s=(1+d)-1(k-rd)mod n
=(1+d)-1(k-(1+d)r+r)mod n
=((1+d)-1(k+r)-r)mod n;
其中,k为随机数。
25.如权利要求21-24之一所述的方法,其特征在于,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
26.如权利要求25所述的方法,其特征在于,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
27.如权利要求26所述的方法,其特征在于,所述更新参数根据触发指令在签名前产生,包括:
服务器端接收客户端发送的待签名消息的摘要e,随机椭圆曲线点Q和具有逆元的更新参数,使用基于更新参数或其逆元更新服务器端的第二部分私钥ds,并向客户端发送更新成功的提示信息,以便客户端通过与服务器端使用的更新参数或其逆元的逆元更新客户端存储第一部分私钥dc。
28.如权利要求26所述的方法,其特征在于,所述更新参数根据触发指令在签名后产生,包括:
服务器端向客户端发送基于第一部分签名r生成的第一中间签名ts及具有逆元的更新参数,接收到客户端基于ts和第一部分私钥dc计算的第二中间签名tc,并基于r,tc和第二部分私钥ds计算第二部分签名s后,基于更新参数或其逆元更新第二部分私钥,将所述更新成功的提示信息发送至客户端后,以便客户端通过与服务器端使用的更新参数或其逆元的逆元更新第一部分私钥dc。
29.一种远程销毁私钥的管理系统,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,包括:
客户端,用于将待签名消息的摘要e和随机椭圆曲线点Q发送至服务器端;客户端接收服务器端基于第一部分签名r生成的第一中间签名ts,所述第一部分签名r由服务器端基于e和Q生成;客户端通过ts和dc计算第二中间签名tc,并将tc发送至服务器端;以便服务器端基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
30.一种远程销毁私钥的管理系统,其中,客户端存储第一部分私钥dc,服务器端存储第二部分私钥ds,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,包括:
服务器端,用于接收客户端发送的待签名消息的摘要e和随机椭圆曲线点Q,基于所述e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts发送至客户端;接收客户端基于ts和dc计算的第二中间签名tc,基于r,tc和ds计算第二部分签名s,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁服务器端存储的第二部分私钥ds。
31.一种远程销毁私钥的管理装置,其特征在于,包括权利要求29或30所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667496.1A CN107370599B (zh) | 2017-08-07 | 2017-08-07 | 一种远程销毁私钥的管理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710667496.1A CN107370599B (zh) | 2017-08-07 | 2017-08-07 | 一种远程销毁私钥的管理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107370599A CN107370599A (zh) | 2017-11-21 |
CN107370599B true CN107370599B (zh) | 2020-07-10 |
Family
ID=60310058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710667496.1A Active CN107370599B (zh) | 2017-08-07 | 2017-08-07 | 一种远程销毁私钥的管理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107370599B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108471352B (zh) * | 2018-03-16 | 2022-03-04 | 数安时代科技股份有限公司 | 基于分布式私钥的处理方法、系统、计算机设备及存储介质 |
CN108737103B (zh) * | 2018-03-27 | 2021-06-29 | 中国科学院数据与通信保护研究教育中心 | 一种应用于cs架构的sm2算法签名方法 |
CN108470121A (zh) * | 2018-04-20 | 2018-08-31 | 浙江招天下招投标交易平台有限公司 | 一种将移动终端数字证书应用于电子招投标系统的装置 |
CN109274503B (zh) * | 2018-11-05 | 2022-01-04 | 北京仁信证科技有限公司 | 分布式协同签名方法及分布式协同签名装置、软盾系统 |
CN111628863B (zh) * | 2020-05-29 | 2021-02-09 | 北京海泰方圆科技股份有限公司 | 一种数据签名的方法、装置、电子设备及存储介质 |
CN111817848B (zh) * | 2020-06-19 | 2023-01-17 | 天津赢达信科技有限公司 | 一种ecc私钥分段存储的ecdsa签名方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739401A (zh) * | 2012-06-05 | 2012-10-17 | 北京工业大学 | 基于身份公钥密码体制的私钥安全管理方法 |
CN103873238A (zh) * | 2014-03-26 | 2014-06-18 | 成都卫士通信息产业股份有限公司 | 一种密码机软件完整性的安全保护方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000049768A1 (en) * | 1999-02-17 | 2000-08-24 | Thomas Mittelholzer | Method for signature splitting to protect private keys |
WO2005043326A2 (en) * | 2003-10-31 | 2005-05-12 | Docomo Communications Laboratories Usa, Inc. | Encryption and signature schemes using message mappings to reduce the message size |
ES2400894B1 (es) * | 2011-05-13 | 2014-03-11 | Telefónica, S.A. | Procedimiento para una firma digital múltiple |
US20150006900A1 (en) * | 2013-06-27 | 2015-01-01 | Infosec Global Inc. | Signature protocol |
CN106603236A (zh) * | 2015-10-15 | 2017-04-26 | 收付宝科技有限公司 | 一种用于生成签名的方法和装置 |
CN106506170B (zh) * | 2016-12-15 | 2019-08-02 | 北京三未信安科技发展有限公司 | 一种基于rsa的分布式签名方法与系统 |
-
2017
- 2017-08-07 CN CN201710667496.1A patent/CN107370599B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739401A (zh) * | 2012-06-05 | 2012-10-17 | 北京工业大学 | 基于身份公钥密码体制的私钥安全管理方法 |
CN103873238A (zh) * | 2014-03-26 | 2014-06-18 | 成都卫士通信息产业股份有限公司 | 一种密码机软件完整性的安全保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107370599A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107302438B (zh) | 一种基于密钥更新的私钥保护方法、系统及装置 | |
CN107370599B (zh) | 一种远程销毁私钥的管理方法、装置和系统 | |
CN111639361B (zh) | 一种区块链密钥管理方法、多人共同签名方法及电子装置 | |
CN109756338B (zh) | 认证装置、验证装置的计算机实现方法和计算机可读介质 | |
CN109714167B (zh) | 适用于移动应用签名的身份认证与密钥协商方法及设备 | |
EP3985916A1 (en) | Secure dynamic threshold signature scheme employing trusted hardware | |
CN109981562B (zh) | 一种软件开发工具包授权方法及装置 | |
CN102026195B (zh) | 基于一次性口令的移动终端身份认证方法和系统 | |
CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
CN110971411B (zh) | 一种基于sotp技术对私钥乘加密的sm2同态签名方法 | |
WO2019229234A1 (en) | Shared secret establishment | |
CN104901809B (zh) | 基于口令和智能卡的远程认证协议方法 | |
CN112989426B (zh) | 授权认证方法及装置、资源访问令牌的获取方法 | |
CN111030814A (zh) | 秘钥协商方法及装置 | |
CN110138548B (zh) | 基于非对称密钥池对和dh协议的量子通信服务站密钥协商方法和系统 | |
CN110380859B (zh) | 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统 | |
CN113132087A (zh) | 物联网、身份认证及保密通信方法、芯片、设备及介质 | |
CN110176989B (zh) | 基于非对称密钥池的量子通信服务站身份认证方法和系统 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN111245594B (zh) | 一种基于同态运算的协同签名方法及系统 | |
CN115955320A (zh) | 一种视频会议身份认证方法 | |
CN115801287A (zh) | 签名认证方法和装置 | |
CN113872979B (zh) | 登录认证的方法、装置、电子设备和计算机可读存储介质 | |
CN115314205A (zh) | 一种基于密钥分割的协同签名系统及方法 | |
CN110113152B (zh) | 基于非对称密钥池对和数字签名的量子通信服务站密钥协商方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20230516 Granted publication date: 20200710 |