CN107302438A - 一种基于密钥更新的私钥保护方法、系统及装置 - Google Patents

一种基于密钥更新的私钥保护方法、系统及装置 Download PDF

Info

Publication number
CN107302438A
CN107302438A CN201710667480.0A CN201710667480A CN107302438A CN 107302438 A CN107302438 A CN 107302438A CN 201710667480 A CN201710667480 A CN 201710667480A CN 107302438 A CN107302438 A CN 107302438A
Authority
CN
China
Prior art keywords
communication ends
private key
signature
undated parameter
inverse element
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.)
Granted
Application number
CN201710667480.0A
Other languages
English (en)
Other versions
CN107302438B (zh
Inventor
宛海加
吕文华
董宁
周大勇
刘学波
Original Assignee
Precious Science And Technology Ltd Of Receipt And Payment
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 Precious Science And Technology Ltd Of Receipt And Payment filed Critical Precious Science And Technology Ltd Of Receipt And Payment
Priority to CN201710667480.0A priority Critical patent/CN107302438B/zh
Publication of CN107302438A publication Critical patent/CN107302438A/zh
Application granted granted Critical
Publication of CN107302438B publication Critical patent/CN107302438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • H04L9/3249Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种基于密钥更新的私钥保护方法、系统及装置,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:第一通信端将其产生的具有逆元的更新参数发送至第二通信端;第一通信端接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。本发明通过两个通信端分别存储部分私钥的密钥体系设计,并结合动态密钥更新的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,规避了服务器伪造数字签名的业务风险,提升了使用便利性。

Description

一种基于密钥更新的私钥保护方法、系统及装置
技术领域
本发明涉及移动安全技术领域,尤其涉及一种基于密钥更新的私钥保护方法、系统及装置。
背景技术
数字证书是指网上金融、电子政务或电子商务等网上电子活动中,符合《中华人民共和国电子签名法》、能够证实签名人与电子签名数据具有可靠关联性的一种电子签名认证证书。数字证书基于非对称密码技术,包括公钥和私钥,公开的密钥称为公钥,私有的密钥称为私钥。
现有技术中,数字证书私钥存储方式主要有以下三种方式:
一种是软证书,又称为文件证书,用户数字证书私钥存储在计算机硬盘或软盘中;
一种是硬证书,通常使用智能密码钥匙和集成电路卡来存储用户数字证书私钥;
一种是云证书,用户数字证书私钥托管保存在云服务系统中。
发明人在研究的过程中发现,以上三种方式均存在各自的缺点:软证书使用方便但数字证书私钥被盗用风险等级较高,特别是针对手机等非可信运行及存储环境,攻击者可通过内存跟踪、越权访问本地文件等手段窃取用户数字证书私钥;硬证书由于受到硬件封装技术保护,安全性较高,但存在使用不便,兼容性较差等问题;云证书方式由于用户数字证书私钥在云端托管,私钥受云端隔离保护,但难以确保数字签名为用户本人操作,且存在云端可伪造数字签名的业务风险。因此,当前技术条件下,主要还是以基于硬件封装技术的硬证书作为强认证业务场景的首选。
然而,虽然硬证书件可确保签名私钥的安全产生和使用,但其硬件成本问题以及使用不便的缺点一直饱受诟病,特别是在移动互联网迅猛发展的今天,终端用户需要使用方便且普遍适用的安全软件,既能满足安全性又不丧失便利性。
发明内容
为了解决上述技术问题,本发明的主要目的在于提供一种基于密钥更新的私钥保护方法、系统及装置,采用移动端无硬件的纯软密码模块,协同云端服务器的硬件密码设备执行动态密钥更新,以联机签名系统的方式实现可靠电子签名,从而既达到安全认证要求,同时又满足便利且普遍适用的用户需求。
本发明一方面提供了一种基于密钥更新的私钥保护方法,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,该方法包括:
第一通信端将其产生的具有逆元的更新参数发送至第二通信端;
第一通信端接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第一通信端接收到第二通信端反馈的通过所述更新参数u或其逆元u-1更新第二部分私钥ds的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥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和更新参数发送至第二通信端;
第二通信端基于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。
进一步的,所述随机椭圆曲线点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)发送给认证端验证。
进一步的,所述第一通信端为客户端时,第二通信端为服务器端;或
所述第一通信端为服务器端时,第二通信端为客户端。
本发明另一方面还提供了一种基于密钥更新的私钥保护方法,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,该方法包括:
第二通信端接收第一通信端发送的具有逆元的更新参数,通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第二通信端接收第一通信端发送具有逆元的更新参数u,通过所述更新参数u或其逆元u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥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和更新参数发送至第二通信端;
第二通信端基于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。
进一步的,所述随机椭圆曲线点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)发送给认证端验证。
进一步的,所述第一通信端为客户端时,第二通信端为服务器端;或
所述第一通信端为服务器端时,第二通信端为客户端。
本发明另一方面还提供了一种基于密钥更新的私钥保护系统,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
第一通信端,用于将其产生的具有逆元的更新参数发送至第二通信端;在接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
本发明另一方面还提供了一种基于密钥更新的私钥保护系统,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
第二通信端,用于接收第一通信端发送的具有逆元的更新参数,通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
本发明另一方面还提供了一种基于密钥更新的私钥保护装置,包括前述任意一项所述的系统。
本发明提供了一种基于密钥更新的私钥保护方法、系统及装置,基于分布式算法的数字证书技术原理,采用移动端无硬件的纯软密码模块,协同云端服务器的硬件密码设备执行动态密钥更新,以联机签名系统的方式实现可靠电子签名,从而既达到安全认证要求,同时又满足便利且普遍适用的用户需求。本发明与现有技术相比,可以达到以下有益效果:
1)本发明通过两个通信端分别存储部分私钥的密钥体系设计,并结合动态密钥更新与销毁的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名;
2)由于服务器不掌握完整的签名私钥,也无法通过客户端与服务器的交互参数逆向恢复签名私钥,在没有用户客户端参与的条件下,无法独立产生有效的数字签名,从而规避了服务器伪造数字签名的业务风险;在没有服务器参与的管控条件下,客户端也无法独立产生有效的数字签名,从而有效避免了在失控条件下黑客针对客户端的离线攻击;
3)本发明通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性。
附图说明
图1为根据本发明的一种基于密钥更新的私钥保护方法的实施例一的流程图;
图2为根据本发明的一种基于密钥更新的私钥保护方法的实施例二的流程图;
图3为根据本发明的一种基于密钥更新的私钥保护方法的实施例流程图;
图4为根据本发明的一种基于密钥更新的私钥保护系统的实施例三的结构框图。
图5为根据本发明的一种基于密钥更新的私钥保护系统的实施例四的结构框图。
图6为根据本发明的一种基于密钥更新的私钥保护装置的实施例五的结构框图。
图7为根据本发明的一种基于密钥更新的私钥保护装置的实施例六的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
参照图1,图1示出了本发明提供的一种基于密钥更新的私钥保护方法的一实施例的流程图。其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,该实施例为第一通讯端侧,该方法包括:步骤S110至步骤S120。
在步骤S110中,第一通信端将其产生的具有逆元的更新参数发送至第二通信端。
在步骤S120中,第一通信端接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
针对素域上的椭圆曲线,由于阶为素数,对于该有限域内的任意元素,一定存在关于阶的乘法逆元。根据这一理论基础,本发明实施例一采用第一通信端与第二通信端分别模乘更新参数及其逆元的方法实现协同密钥更新,第一通信端与第二通信端互为客户端与服务器端,一端发送更新参数,迫使另一端本地存储的密钥动态可变,从而解决了在智能手机等脆弱安全环境下,密钥保存及使用的安全问题。本发明所设计的密钥更新算法,不影响公钥可用性,无需重新产生密钥对。
以下以优选实施例说明客户端与服务器的协同密钥更新算法:
令:更新参数u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数;
签名私钥(1+d)-1=(dc.ds)mod n,其中dc、ds分别为客户端和服务器保存的密钥;
则:dc’=(dc.u)mod n,dc’为客户端通过更新参数u计算后的新密钥;
ds’=(ds.u-1)mod n,ds’为服务器通过更新参数u计算后的新密钥,u-1钥为u关于n的乘法逆元;
dc’.ds’mod n=dc.u.ds.u-1mod n=(1+d)-1mod n,可见密钥更新后的签名私钥不变,不影响公钥可用性。
客户端与服务器的协同密钥更新操作可由客户端向服务器发起更新请求,也可由服务器向客户端推送发起,客户端与服务器通过交互的更新参数分别执行各自的密钥更新;另外,协同密钥更新操作也可包含在客户端与服务器协同计算数字签名的过程中,使得密钥的每次签名使用均执行更新操作,从密钥使用层面确保密钥动态可变,以最小交互次数同时实现密钥更新与数字签名。
本发明实施例一通过客户端及可信中心服务器分别存储部分私钥的密钥体系设计,并结合动态密钥更新的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名。
实施例二
参照图2,图2示出了本发明提供的一种基于密钥更新的私钥保护方法的一实施例的流程图。其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,该实施例为第二通讯端侧,该方法包括步骤S210。
在步骤S210中,第二通信端接收第一通信端发送的第一通信端产生的具有逆元的更新参数,通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
本发明实施例二中的第二通信端与实施例一中的第一通信端交互,流程及功能效果参考实施例一中的表述,说明书篇幅的限制,在此不再复述。具体的动作和算法以及实施例参考实施例一和实施例二的描述。但是本领域技术人员应该知悉,本申请并不受所描述的算法以及动作顺序限制,依据本发明,根据公开的技术特征、凡是具有所公开的功能,达到所描述的技术效果的方案都在本发明的保护范围之内。说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
为了使得本领域技术人员更易理解本发明实施例一和实施例二提供的技术方案,参考图3,以一具体的实施例进行解释说明,包括步骤S310至步骤S330:
在步骤S310中,第一通信端将其产生的具有逆元的更新参数发送至第二通信端。
在步骤S320中,第二通信端通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端。
在步骤S330中,第一通信端接收到所述更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第一通信端接收到第二通信端反馈的通过所述更新参数u更新第二部分私钥ds的更新成功的提示信息后,通过u-1更新第一部分私钥dc.u-1;或第一通信端接收到第二通信端反馈的通过所述更新参数的逆元u-1更新第二部分私钥ds的更新成功的提示信息后,通过u更新第一部分私钥dc.u;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u.ds.u-1=dc.ds,或(1+d)-1=dc.u-1.ds.u=dc.ds,与原更新私钥相等。
一优选实施例,客户端主动发起的密钥更新包括用户的主动操作或由客户端应用程序静默执行,静默执行的更新条件包括定时任务或根据安全检测的危险程度触发更新等。
客户端:
[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;进一步提升了私钥的使用安全。
签名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作为验证要素认证客户端的合法性,如认证失败则即时销毁服务器密钥,从而使得签名私钥失效。实时验证及销毁该机制可有效抵御试错攻击,避免攻击者通过无限制的试错方法分析密钥。
由于在已知签名(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.u.ds.u-1),迫使客户端或服务器端本地存储的密钥动态可变,从而解决了在智能手机等脆弱安全环境下,软密码设备由于内存及存储暴露所导致的安全问题;同时,采用了客户端及服务器协同签名的机制,使得签名私钥((1+d)-1=(dc.ds)mod n及过程随机数(k=kc.ks)不完整出现,避免了密钥泄露的风险;客户端及服务器在签名过程中同时完成协同密钥更新,动态密钥不但提升了密钥强度,而且可抵御会话劫持、数据重放等攻击,整体提升了签名算法的健壮性;服务器在不掌握待签明消息的前提下,通过第一次交互所接收的摘要e及服务器所管控的部分签名结r实现对客户端的合法性认证,对于非法客户端请求服务器通过密钥销毁手段,完善了密钥生命周期的有效管理;还采用了软硬结合的联机签名系统实现数字签名,不但可抵御暴利破解等离线攻击,而且由服务器硬件密码设备参与产生的随机数可以满足不可预测的安全要求。
本发明具有以下优点:
1)本发明通过客户端及可信中心服务器分别存储部分私钥的密钥体系设计,并结合动态密钥更新与销毁的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名;
2)由于服务器不掌握完整的签名私钥,也无法通过客户端与服务器的交互参数逆向恢复签名私钥,在没有用户客户端参与的条件下,无法独立产生有效的数字签名,从而规避了服务器伪造数字签名的业务风险;在没有服务器参与的管控条件下,客户端也无法独立产生有效的数字签名,从而有效避免了在失控条件下黑客针对客户端的离线攻击;
3)本发明通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性。
实施例三
参照图4,图4示出了本发明提供的一种基于密钥更新的私钥保护系统300,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
第一通信端31,用于将其产生的具有逆元的更新参数发送至第二通信端;在接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端,用于将其产生的u发送至第二通信端;
第一通信端,用于接收到第二通信端反馈的通过所述更新参数u或其逆元u-1更新第二部分私钥ds的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥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和更新参数发送至第二通信端;
第二通信端基于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。
进一步的,所述随机椭圆曲线点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)发送给认证端验证。
进一步的,所述第一通信端为客户端时,第二通信端为服务器端;或
所述第一通信端为服务器端时,第二通信端为客户端。
具体实现的功能和处理方式参见方法实施例一描述的具体步骤。
由于本实施例三的系统所实现的处理及功能基本相应于前述图1-3所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
实施例四
参照图5,图5示出了本发明提供的一种基于密钥更新的私钥保护系统400,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,包括:
第二通信端41,用于接收第一通信端发送的第一通信端产生的具有逆元的更新参数,通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
进一步的,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
进一步的,所述更新参数为u∈[1,n-1]时,该方法包括:
第二通信端,用于接收第一通信端发送具有逆元的更新参数u,通过所述更新参数u或其逆元u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥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和更新参数发送至第二通信端;
第二通信端基于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。
进一步的,所述随机椭圆曲线点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)发送给认证端验证。
进一步的,所述第一通信端为客户端时,第二通信端为服务器端;或
所述第一通信端为服务器端时,第二通信端为客户端。
具体实现的功能和处理方式参见方法实施例二描述的具体步骤。
由于本实施例四的系统所实现的处理及功能基本相应于前述图1-3所示的方法的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
实施例五
参照图6,图6示出了本发明提供的一种基于密钥更新的私钥保护装置500,包括实施例三所述的系统300。
实施例六
参照图7,图7示出了本发明提供的一种基于密钥更新的私钥保护装置600,包括实施例四所述的系统400。
本发明实施例五和实施例六提供了一种基于密钥更新的私钥保护装置,包括前述系统,基于分布式算法的数字证书技术原理,采用移动端无硬件的纯软密码模块,协同云端服务器的硬件密码设备执行动态密钥更新,以联机签名系统的方式实现可靠电子签名,从而既达到安全认证要求,同时又满足便利且普遍适用的用户需求。本发明与现有技术相比,可以达到以下有益效果:
1)本发明通过两个通信端分别存储部分私钥的密钥体系设计,并结合动态密钥更新与销毁的技术手段,避免了黑客针对客户端单点攻击的“木桶效应”以及穷举试错等攻击,只有合法客户端与可信中心联合才能产生可靠的数字签名;
2)由于服务器不掌握完整的签名私钥,也无法通过客户端与服务器的交互参数逆向恢复签名私钥,在没有用户客户端参与的条件下,无法独立产生有效的数字签名,从而规避了服务器伪造数字签名的业务风险;在没有服务器参与的管控条件下,客户端也无法独立产生有效的数字签名,从而有效避免了在失控条件下黑客针对客户端的离线攻击;
3)本发明通过软硬结合的技术手段,实现了终端去介质化的用户体验,在不牺牲安全性的前提下,提升了使用便利性。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
需要指出,根据实施的需要,可将本申请中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (31)

1.一种基于密钥更新的私钥保护方法,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,该方法包括:
第一通信端将其产生的具有逆元的所述更新参数发送至第二通信端;
第一通信端接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
2.如权利要求1所述的方法,其特征在于,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
3.如权利要求2所述的方法,其特征在于,优选的,所述更新参数为u∈[1,n-1]时,该方法包括:
第一通信端将其产生的u发送至第二通信端;
第一通信端接收到第二通信端反馈的通过所述更新参数u或其逆元u-1更新第二部分私钥ds的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u.ds.u-1=dc.ds,或(1+d)-1=dc.u- 1.ds.u=dc.ds,与原更新私钥相等。
4.如权利要求3所述的方法,其特征在于,数字签名(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。
5.如权利要求1-4之一所述的方法,其特征在于,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
6.如权利要求5所述的方法,其特征在于,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
7.如权利要求6所述的方法,其特征在于,优选的,所述更新参数根据触发指令在签名前产生时,包括:
第一通信端将待签名消息的摘要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。
8.如权利要求6所述的方法,其特征在于,优选的,所述更新参数根据触发指令在签名后产生时,包括:
第一通信端将待签名消息的摘要e和随机椭圆曲线点Q发送至第二通信端。
第二通信端基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts及更新参数发送至第一通信端;
第一通信端基于ts和第一部分私钥dc计算第二中间签名tc,基于更新参数或其逆元更新第一部分私钥,并将tc发送至第二通信端;
第二通信端基于r,tc和第二部分私钥ds计算第二部分签名s,基于与第一通信端使用的更新参数或其逆元对应的逆元更新第二部分私钥,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁第二通信端存储的第二部分私钥ds。
9.如权利要求7或8所述的方法,其特征在于,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点。
10.如权利要求7或8所述的方法,其特征在于,所述第二通信端基于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。
11.如权利要求7或8所述的方法,其特征在于,所述第一通信端基于ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
12.如权利要求7或8所述的方法,其特征在于,所述第二通信端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
13.如权利要求7或8所述的方法,其特征在于,所述基于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) 发送给认证端验证。
14.如权利要求1-13之一所述的方法,其特征在于,所述第一通信端为客户端时,第二通信端为服务器端;或
所述第一通信端为服务器端时,第二通信端为客户端。
15.一种基于密钥更新的私钥保护方法,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,该方法包括:
第二通信端接收第一通信端发送的具有逆元的更新参数,通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
16.如权利要求15所述的方法,其特征在于,所述具有逆元的更新参数包括但不限于:
u∈[1,n-1],其中n为椭圆曲线的阶,u为素域内的随机数。
17.如权利要求16所述的方法,其特征在于,所述更新参数为u∈[1,n-1]时,该方法包括:
第二通信端接收第一通信端发送具有逆元的更新参数u,通过所述更新参数u或其逆元u-1更新第二部分私钥ds,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥dc;
数字签名使用的更新后的签名私钥(1+d)-1=dc.u.ds.u-1=dc.ds,或(1+d)-1=dc.u- 1.ds.u=dc.ds,与原更新私钥相等。
18.如权利要求17所述的方法,其特征在于,数字签名(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。
19.如权利要求15-18之一所述的方法,其特征在于,所述更新参数的产生方法包括定时产生或根据触发指令触发产生。
20.如权利要求19所述的方法,其特征在于,所述更新参数根据触发指令触发产生,包括:
根据触发指令在签名前产生,在签名过程中产生和/或在签名后产生。
21.如权利要求20所述的方法,其特征在于,优选的,所述更新参数根据触发指令在签名前产生时,包括:
第一通信端将待签名消息的摘要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。
22.如权利要求20所述的方法,其特征在于,优选的,所述更新参数根据触发指令在签名后产生时,包括:
第一通信端将待签名消息的摘要e和随机椭圆曲线点Q发送至第二通信端。
第二通信端基于e和Q生成第一部分签名r,并基于r生成第一中间签名ts,将ts及更新参数发送至第一通信端;
第一通信端基于ts和第一部分私钥dc计算第二中间签名tc,基于更新参数或其逆元更新第一部分私钥,并将tc发送至第二通信端;
第二通信端基于r,tc和第二部分私钥ds计算第二部分签名s基于与第一通信端使用的更新参数或其逆元对应的逆元更新第二部分私钥,并基于r,s和公钥P通过验签算法验证e,验证通过,则将签名结果(r,s)发送至认证端验签,验证失败,则销毁第二通信端存储的第二部分私钥ds。
23.如权利要求21或22所述的方法,其特征在于,所述随机椭圆曲线点Q的计算方法包括:
产生第一随机数kc∈[1,n-1],其中n为椭圆曲线的阶;完整的随机数为所述第一随机数与服务器端产生的第二随机数的运算;
基于所述第一随机数计算随机椭圆曲线点Q=[kc]G;G为椭圆曲线的基点。
24.如权利要求21或22所述的方法,其特征在于,所述第二通信端基于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。
25.如权利要求21或22所述的方法,其特征在于,所述第一通信端基于ts和dc计算第二中间签名tc,包括:
第二中间签名tc=dc.(kc+ts)。
26.如权利要求21或22所述的方法,其特征在于,所述第二通信端基于r,tc和ds计算第二部分签名s,包括:
第二部分签名s=(ds.ks.tc-r)mod n,若s=0或r+s=n重新发起签名过程,否则将(r,s)作为数字签名。
27.如权利要求21或22所述的方法,其特征在于,所述基于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)发送给认证端验证。
28.如权利要求25-27之一所述的方法,其特征在于,所述第一通信端为客户端时,第二通信端为服务器端;或
所述第一通信端为服务器端时,第二通信端为客户端。
29.一种基于密钥更新的私钥保护系统,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,包括:
第一通信端,用于将其产生的具有逆元的更新参数发送至第二通信端;在接收到第二通信端反馈的通过所述更新参数或其逆元更新第二部分私钥的更新成功的提示信息后,通过与第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
30.一种基于密钥更新的私钥保护系统,其中,第一通信端存储第一部分私钥,第二通信端存储第二部分私钥,第一部分私钥与第二部分私钥协同运算后产生电子签名,其特征在于,包括:
第二通信端,用于接收第一通信端发送的具有逆元的更新参数,通过所述更新参数或其逆元更新第二部分私钥,并将更新成功的提示信息发送至第一通信端,使得第一通信端接收到所述提示信息后,通过第二通信端使用的更新参数或其逆元对应的逆元更新第一部分私钥。
31.一种基于密钥更新的私钥保护装置,其特征在于,包括权利要求29或30所述的系统。
CN201710667480.0A 2017-08-07 2017-08-07 一种基于密钥更新的私钥保护方法、系统及装置 Active CN107302438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710667480.0A CN107302438B (zh) 2017-08-07 2017-08-07 一种基于密钥更新的私钥保护方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710667480.0A CN107302438B (zh) 2017-08-07 2017-08-07 一种基于密钥更新的私钥保护方法、系统及装置

Publications (2)

Publication Number Publication Date
CN107302438A true CN107302438A (zh) 2017-10-27
CN107302438B CN107302438B (zh) 2020-10-30

Family

ID=60133405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710667480.0A Active CN107302438B (zh) 2017-08-07 2017-08-07 一种基于密钥更新的私钥保护方法、系统及装置

Country Status (1)

Country Link
CN (1) CN107302438B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908932A (zh) * 2017-12-10 2018-04-13 宛海加 一种基于l算法的数字货币防伪及验证方法、系统和设备
CN108111524A (zh) * 2017-12-28 2018-06-01 广州江南科友科技股份有限公司 基于私钥动态生成机制的终端数据保护方法及系统
CN108471352A (zh) * 2018-03-16 2018-08-31 数安时代科技股份有限公司 基于分布式私钥的处理方法、系统、计算机设备及存储介质
CN108494551A (zh) * 2018-03-16 2018-09-04 数安时代科技股份有限公司 基于协同密钥的处理方法、系统、计算机设备及存储介质
CN108667625A (zh) * 2018-07-19 2018-10-16 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108696362A (zh) * 2018-05-04 2018-10-23 西安电子科技大学 可更新密钥的无证书多消息多接收者签密方法
CN109068322A (zh) * 2018-08-22 2018-12-21 航天信息股份有限公司 解密方法、系统、移动终端、服务器及存储介质
CN109861816A (zh) * 2019-02-22 2019-06-07 矩阵元技术(深圳)有限公司 数据处理方法和装置
CN109872155A (zh) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 数据处理方法和装置
CN110138567A (zh) * 2019-05-22 2019-08-16 广州安研信息科技有限公司 一种基于ecdsa的协同签名方法
WO2020168544A1 (zh) * 2019-02-22 2020-08-27 云图有限公司 数据处理方法和装置
WO2020223918A1 (zh) * 2019-05-08 2020-11-12 云图有限公司 一种临时身份认证方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820621A (zh) * 2010-01-14 2010-09-01 北京科技大学 基于局部信息协同的密钥更新方法
CN104821884A (zh) * 2015-05-14 2015-08-05 收付宝科技有限公司 基于非对称密钥体系的私钥保护方法
CN106789080A (zh) * 2016-04-08 2017-05-31 数安时代科技股份有限公司 数字签名生成方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820621A (zh) * 2010-01-14 2010-09-01 北京科技大学 基于局部信息协同的密钥更新方法
CN104821884A (zh) * 2015-05-14 2015-08-05 收付宝科技有限公司 基于非对称密钥体系的私钥保护方法
CN106789080A (zh) * 2016-04-08 2017-05-31 数安时代科技股份有限公司 数字签名生成方法和系统

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908932B (zh) * 2017-12-10 2020-10-13 吕文华 一种基于l算法的数字货币防伪及验证方法、系统和设备
CN107908932A (zh) * 2017-12-10 2018-04-13 宛海加 一种基于l算法的数字货币防伪及验证方法、系统和设备
CN108111524A (zh) * 2017-12-28 2018-06-01 广州江南科友科技股份有限公司 基于私钥动态生成机制的终端数据保护方法及系统
CN108471352A (zh) * 2018-03-16 2018-08-31 数安时代科技股份有限公司 基于分布式私钥的处理方法、系统、计算机设备及存储介质
CN108494551A (zh) * 2018-03-16 2018-09-04 数安时代科技股份有限公司 基于协同密钥的处理方法、系统、计算机设备及存储介质
CN108471352B (zh) * 2018-03-16 2022-03-04 数安时代科技股份有限公司 基于分布式私钥的处理方法、系统、计算机设备及存储介质
CN108696362A (zh) * 2018-05-04 2018-10-23 西安电子科技大学 可更新密钥的无证书多消息多接收者签密方法
CN108667625A (zh) * 2018-07-19 2018-10-16 数安时代科技股份有限公司 协同sm2的数字签名方法
CN108667625B (zh) * 2018-07-19 2021-09-24 数安时代科技股份有限公司 协同sm2的数字签名方法
CN109068322A (zh) * 2018-08-22 2018-12-21 航天信息股份有限公司 解密方法、系统、移动终端、服务器及存储介质
CN109872155A (zh) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 数据处理方法和装置
WO2020168544A1 (zh) * 2019-02-22 2020-08-27 云图有限公司 数据处理方法和装置
CN109861816A (zh) * 2019-02-22 2019-06-07 矩阵元技术(深圳)有限公司 数据处理方法和装置
WO2020223918A1 (zh) * 2019-05-08 2020-11-12 云图有限公司 一种临时身份认证方法、装置及系统
CN110138567A (zh) * 2019-05-22 2019-08-16 广州安研信息科技有限公司 一种基于ecdsa的协同签名方法
CN110138567B (zh) * 2019-05-22 2021-11-26 广州安研信息科技有限公司 一种基于ecdsa的协同签名方法

Also Published As

Publication number Publication date
CN107302438B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN107302438A (zh) 一种基于密钥更新的私钥保护方法、系统及装置
CN107370599A (zh) 一种远程销毁私钥的管理方法、装置和系统
CN107493162A (zh) 区块链节点的实现方法及装置
CN109003083A (zh) 一种基于区块链的ca认证方法、装置及电子设备
CN111030814B (zh) 秘钥协商方法及装置
Jiang et al. Cryptanalysis of smart‐card‐based password authenticated key agreement protocol for session initiation protocol of Zhang et al.
Backes et al. How to break and repair a universally composable signature functionality
US8422670B2 (en) Password authentication method
CN110099048B (zh) 一种云存储方法及设备
CN104954390B (zh) 可恢复丢失密钥的云存储完整性检测方法及系统
Cao et al. Breaking a remote user authentication scheme for multi-server architecture
CN106453431B (zh) 基于pki实现互联网系统间认证的方法
CN110971411B (zh) 一种基于sotp技术对私钥乘加密的sm2同态签名方法
CN108111497A (zh) 摄像机与服务器相互认证方法和装置
CN110838920B (zh) web系统中无需存储口令相关信息的口令认证与密钥协商协议
Chen et al. Security analysis and improvement of user authentication framework for cloud computing
CN112436938B (zh) 数字签名的生成方法、装置和服务器
CN110690969B (zh) 一种多方协同完成双向ssl/tls认证的方法和系统
CN111447065A (zh) 一种主动安全的sm2数字签名两方生成方法
CA2981202A1 (en) Hashed data retrieval method
CN111191262B (zh) 一种基于两方签名的区块链钱包客户端私钥保护方法
CN115955320B (zh) 一种视频会议身份认证方法
CN112380579A (zh) 一种基于格的前向安全无证书数字签名方案
CN115580415B (zh) 区块链中数据交互认证方法、装置与系统
CN114422106B (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
TA01 Transfer of patent application right

Effective date of registration: 20200918

Address after: 100016 No. 8, xiaoyunli, Chaoyang District, Beijing 2011

Applicant after: Lv Wenhua

Address before: 100081 room 13, building 689, building 5, 1, 1313 South Street, Beijing, Zhongguancun, Haidian District

Applicant before: BANKEYS TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20230516

Granted publication date: 20201030

PP01 Preservation of patent right