CN115001669B - 处理私钥分片的方法及系统 - Google Patents

处理私钥分片的方法及系统 Download PDF

Info

Publication number
CN115001669B
CN115001669B CN202210572134.5A CN202210572134A CN115001669B CN 115001669 B CN115001669 B CN 115001669B CN 202210572134 A CN202210572134 A CN 202210572134A CN 115001669 B CN115001669 B CN 115001669B
Authority
CN
China
Prior art keywords
private key
list
report
tee
key
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
CN202210572134.5A
Other languages
English (en)
Other versions
CN115001669A (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.)
Hangzhou Xianbing Technology Co ltd
Original Assignee
Hangzhou Xianbing 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 Hangzhou Xianbing Technology Co ltd filed Critical Hangzhou Xianbing Technology Co ltd
Priority to CN202210572134.5A priority Critical patent/CN115001669B/zh
Publication of CN115001669A publication Critical patent/CN115001669A/zh
Application granted granted Critical
Publication of CN115001669B publication Critical patent/CN115001669B/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种处理私钥分片的方法及系统,通过服务端根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片,基于所述私钥分片生成TEE报告,发起远程认证,从而得到分片结果,并将其分片结果传输至客户端;客户端根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,并对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信。本发明能够将生成密钥和分片的整个过程放在可信执行环境中进行,保障了密钥可用且仅对硬件加密芯片可见,解决了相关技术中中心化生成密钥存在的潜在安全问题,配合远程认证技术,保证了密钥分片生成的整个流程是可信的。

Description

处理私钥分片的方法及系统
技术领域
本申请涉及互联网技术领域,具体而言,涉及一种处理私钥分片的方法、系统、计算机设备和存储介质。
背景技术
现有的RSA密钥方案,受到安全素数生成算法的局限,尚不存在有效的RSA私钥的分布式生成协议。目前everPay已使用了RSA密钥分片技术,但目前常见的分片方案往往采用中心化的方式生成RSA私钥,然后执行密钥分享协议,得到RSA私钥分片后再分发给多方。
在RSA私钥分片生成过程中,服务器硬件、操作系统,以及应用程序本身,都不能保证是一定安全的,因为所有中间环节都有可能出现相应的漏洞,存在着被攻击的可能。如果私钥分片生成过程在非可信环境中实现,就不可避免的会出现密钥在操作系统内存中被嗅探的风险,从而导致RSA私钥和分片泄露。另外,RSA私钥分片分发的常见方式为使用各方非对称公钥加密分片,然后将加密后的分片分发给各方。如果使用每次各方动态上传各自非对称加密公钥到密钥分片服务中,则该过程存在中间人攻击的可能;如果将各方非对称公钥硬编码到密钥分片服务中,则面临代码被篡改的可能性以及大大降低了密钥分片服务的通用性和灵活性。
针对上述相关技术中中心化生成RSA密钥存在的潜在安全问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种由系统处理私钥分片的方法、装置、计算机设备和存储介质,用以解决相关技术中中心化生成RSA密钥存在的潜在安全问题。
为了实现上述目的,本发明实施例的第一方面,提供一种由系统处理私钥分片的方法,所述系统包括运行在可信环境的服务端和运行在非可信环境的客户端,所述方法包括:
由客户端执行以下步骤:
生成用于加解密的非对称密钥对;
向所述服务端发起私钥分片生成请求,所述私钥分片生成请求包括加密公钥、分片总数、分片门限;
在接收服务端发送的分片结果后,根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,其中解密结果包括私钥分片列表、公钥列表、验证密钥列表、TEE报告和IAS签名;
对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信;
由服务端执行以下步骤:
在接收私钥分片生成请求后,根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片;
基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,所述分片结果包括加密私钥分片列表,验证密钥列表、TEE报告和IAS签名;
将所述分片结果传输给客户端。
可选地,在第一方面的一种可能实现方式中,所述TEE报告包括加密私钥分片列表、验证密钥列表、所有成员的加密公钥;
其中,所述TEE报告的生成过程包括:
将私钥分片列表中的所有私钥分片,分别根据对应用户的加密公钥进行加密得到加密私钥分片,从而形成加密私钥分片列表;
根据私钥分片列表中的私钥分片,生成对应用户的验证密钥,从而形成验证密钥列表;
根据私钥分片保存成员列表中所有成员的加密公钥、所述加密私钥分片列表和所述验证密钥列表,生成TEE报告。
可选地,在第一方面的一种可能实现方式中,对所述解密结果进行验证包括:
通过Intel IAS服务证书验证IAS签名的有效性;
使用IAS签名对TEE报告进行验证,以验证TEE报告的真实性;
将所述TEE报告内容的EnclaveId,与开源平台源码的Enclave ID进行对比,以确保代码无篡改。
可选地,在第一方面的一种可能实现方式中,对所述解密结果进行验证还包括:
使用TEE报告验证所有成员的加密公钥列表,以确保成员的正确性;
使用TEE报告验证所有成员的验证密钥列表,以确保成员私钥分片的正确性;
使用成员解密私钥解密得到的对应成员的私钥分片。
可选地,在第一方面的一种可能实现方式中,在向Intel IAS发起远程认证之前还包括:
调用本地的Quote Enclave生成Quote Report。
本发明实施例的第二方面,提供一种处理私钥分片的系统,包括:
所述系统包括运行在可信环境的服务端和运行在非可信环境的客户端;
所述客户端包括:
密钥对生成模块,用于生成用于加解密的非对称密钥对;
私钥分片生成请求模块,用于向所述服务端发起私钥分片生成请求,所述私钥分片生成请求包括加密公钥、分片总数、分片门限;
分片结果解密模块,用于在接收服务端发送的分片结果后,根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,其中解密结果包括私钥分片列表、公钥列表、验证密钥列表、TEE报告和IAS签名;
验证模块,用于对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信;
所述服务端包括:
私钥分片生成模块,用于在接收私钥分片生成请求后,根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片;
分片结果生成模块,用于基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,所述分片结果包括加密私钥分片列表,验证密钥列表、TEE报告和IAS签名;
传输模块,用于将所述分片结果传输给客户端。
可选地,在第二方面的一种可能实现方式中,所述分片结果生成模块包括TEE报告生成单元;
所述TEE报告生成单元包括:
加密私钥分片列表生成子单元,用于将私钥分片列表中的所有私钥分片,分别根据对应用户的加密公钥进行加密得到加密私钥分片,从而形成加密私钥分片列表;
验证密钥列表生成子单元,用于根据私钥分片列表中的私钥分片,生成对应用户的验证密钥,从而形成验证密钥列表;
TEE报告生成子单元,用于根据私钥分片保存成员列表中所有成员的加密公钥、所述加密私钥分片列表和所述验证密钥列表,生成TEE报告。
可选地,在第二方面的一种可能实现方式中,所述验证模块,包括:
IAS验证单元,用于通过Intel IAS服务证书验证IAS签名的有效性;
TEE报告验证单元,用于使用IAS签名对所述TEE报告进行验证,以验证TEE报告的真实性;
代码验证单元,用于将所述TEE报告内容的EnclaveId,与开源平台源码的EnclaveID进行对比,以确保代码无篡改;
成员验证单元,用于使用TEE报告验证所有成员的加密公钥列表,以确保成员的正确性;
成员私钥分片验证单元,用于使用TEE报告验证所有成员的验证密钥列表,以确保成员私钥分片的正确性。
本发明实施例的第三方面,提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。
本发明实施例的第四方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明第一方面及第一方面各种可能设计的所述方法的步骤。
本发明提供的处理私钥分片的方法、系统、计算机设备和存储介质,通过服务端根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片,基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,并将其分片结果传输至客户端;客户端根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,并对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信。本发明能够将生成密钥和分片的整个过程放在可信执行环境中进行,保障了密钥可用且仅对硬件加密芯片可见,解决了相关技术中中心化生成密钥存在的潜在安全问题,配合Intel的远程认证技术,保证了密钥分片生成的整个流程是可信的。
附图说明
图1为由系统处理私钥分片的方法中客户端执行步骤的示意图;
图2为由系统处理私钥分片的方法中服务端执行步骤的示意图;
图3为处理私钥分片的系统的示意图;
图4为处理私钥分片的系统的第一种实施方式的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本发明提供一种由系统处理私钥分片的方法,所述系统包括运行在可信环境的服务端和运行在非可信环境的客户端,如图1、2、3所示,其中图1、2为客户端和服务端的执行步骤示意图,图3为系统示意图。包括:
如图1所示,客户端用于执行如下步骤:
步骤S110、生成用于加解密的非对称密钥对。
在该步骤中,私钥分片使用者在各自客户端生成自己的非对称加密公私钥对<Pub,Priv>,表示每个成员的加密公私钥对,Pub表示用于加密的公钥,Priv表示用于解密的私钥。
步骤S120、向所述服务端发起私钥分片生成请求,所述私钥分片生成请求包括加密公钥、分片总数、分片门限。
在步骤S120中,私钥分片是指私钥分成若干份(n>1),其中每一份都被称为私钥分片,任意一份私钥分片都不能恢复完整的私钥;分片总数是指私钥分片的拆分总个数;分片门限是指设置一个预设份数,只有使用的私钥分片达到该预设数量才能恢复完整的钥匙的签名、加密等功能,例如私钥分片5份,其中3份为门限,则记作3/5门限,也就是说:5个私钥分片只要其中任意3把分片即可完成签名。
步骤S130、在接收服务端发送的分片结果后,根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,其中解密结果包括私钥分片列表、公钥列表、验证密钥列表、TEE报告和IAS签名。
在步骤S130中,服务端发送的分片结果是经过加密处理的,需要使用自身客户端非对称密钥对中的私钥Priv解密服务端返回的数据,从而得到私钥分片列表KeyShare、公钥列表Pub List、验证密钥列表Vkey List、TEE报告和IAS签名。其中KeyShare,表示RSA私钥分片,即SK1,SK2……SKn;Pub List,表示RSA私钥分片保管成员的加密公钥列表;VkeyList,表示验证密钥,用于验证签名分片的正确性,表示为VK,VK1,VK2……VKn。
步骤S140、对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信。
在步骤S140中,用户在对服务端返回的数据进行解密后,还需要验证其解密结果的可信性,具体验证方式如下:
1、通过Intel IAS服务证书验证IAS签名的有效性;
2、使用IAS签名对TEE报告进行验证,验证TEE报告的真实性,即确保整个RSA私钥分片计算过程在机密计算环境中执行;
3、使用TEE报告内容的EnclaveId,与开源平台源码的Enclave ID进行对比,以确保代码没有篡改;
4、使用TEE报告验证所有成员的加密公钥列表,即Pub List,确保成员的正确性;
5、使用TEE报告验证所有成员的验证密钥列表,即VK List,确保成员私钥分片KeyShare的正确性;
在基于上述验证方法对服务器返回的数据进行逐一验证后,用户可使用成员解密私钥Priv继续解密得到的成员自己的私钥分片KeyShare,即SKi;从而使私钥分片保管成员能够安全的拿到明文的RSA私钥分片,以及验证公钥。
如图2所示,服务端用于执行如下步骤:
步骤S210、在接收私钥分片生成请求后,根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片。
在该步骤中,在接收到客户端发来的私钥分片生成请求后,服务端会根据私钥分片保存成员列表在可信环境下生成对应数量的RSA秘钥分片KeyShare List(表示RSA私钥分片列表),即SK1,SK2……SKn
步骤S220、基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,所述分片结果包括加密私钥分片列表,验证密钥列表、TEE报告和IAS签名。
在该步骤中,所述TEE报告的生成过程如下:
1、将私钥分片列表KeyShare List中的所有私钥分片SK1,SK2……SKn,分别根据对应用户的加密公钥进行加密得到加密私钥分片,从而形成加密私钥分片列表,即Enc1(SK1),Enc2(SK2)……Encn(SKn)。
2、根据私钥分片列表KeyShare List中的私钥分片,生成对应用户的验证密钥VK,VK1,VK2……VKn,从而形成验证密钥列表Vkey List。
在该步骤中,
根据私钥分片生成验证密钥的步骤如下:
v=f2(mod n)v∈Qn
其中,VK为验证密钥,VKi为每个密钥分片的验证密钥。
验证密钥的使用方法如下:
c=c`
3、根据私钥分片保存成员列表中所有成员的加密公钥、所述加密私钥分片列表和所述验证密钥列表,生成TEE报告。TEE报告内容包括:验证密钥列表Vkey List,即VK,VK1,VK2……VKn;加密私钥分片列表Enci(SKi),即Enc1(SK1),Enc2(SK2)……Encn(SKn);所有私钥分片保存成员的加密公钥Pub List。
向Intel IAS发起远程认证的具体步骤如图3所示:
1、在服务端向Intel IAS发起远程认证之前,服务端会调用本地的Quote Enclave生成Quote Report:其中Quote Enclave环境首先基于本地验证技术验证可信密钥分片系统的可信性;使用Attestation Key(认证密钥)对TEE报告签名,并返回给调用对象。在该步骤中,Quote Enclave(QE),是一个特殊的enclave,它的任务完全是处理远程认证,从其他enclaves接收REPORTs,验证它们并使用认证密钥对它们进行签名,然后将结果(也称为QUOTE)返回给应用程序。由Quoting Enclave创建平台认证的签名密钥EPID(enhancedprivacy identification),这个密钥不仅代表平台,还代表着底层硬件的可信度,并且绑定处理器固件的版本,当enclave系统运行时,只有Quoting Enclave才能访问到EPID密钥。
2、服务端获取Quote Report后,发起远程认证流程:
2.1、向SP服务发起请求,这里的SP表示Service Provider;
2.2、SP向IAS发起远程认证请求,这里的IAS表示Intel Attestation ServiceforSoftware Guard Extensions;
2.3、IAS验证报告,对报告进行签名,并返回给SP;
2.4、SP将IAS验证签名返回给调用方(TEE报告)。
到此为止服务端内部有加密后KeyShare List,Vkey List,TEE报告,IAS签名共四份数据。
步骤S230、将所述分片结果传输给客户端。
本发明提供的由系统处理私钥分片的方法,通过服务端根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片,基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,并将其分片结果传输至客户端;客户端根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,并对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信。本发明能够将生成密钥和分片的整个过程放在可信执行环境中进行,保障了密钥可用且仅对硬件加密芯片可见,解决了相关技术中中心化生成密钥存在的潜在安全问题,配合Intel的远程认证技术,保证了密钥分片生成的整个流程是可信的。
技术效果:
1、在计算中的过程数据(如RSA私钥和RSA私钥分片等敏感数据)受到可信计算环境的加密保护,从而避免由于内存嗅探等强力攻击方式导致的数据泄漏。
2、通过远程认证技术,使得应用程序计算平台不被未授权访问或更高特权级别软件修改。
3、让服务使用者能够得到自己需要的可信结果(比如RSA私钥分片),并且让这种结果的安全可信是可度量、可验证的。
本发明的实施例还提供一种处理私钥分片的系统,如图4所示,包括:
所述系统包括运行在可信环境的服务端和运行在非可信环境的客户端;
所述客户端包括:
密钥对生成模块,用于生成用于加解密的非对称密钥对;
私钥分片生成请求模块,用于向所述服务端发起私钥分片生成请求,所述私钥分片生成请求包括加密公钥、分片总数、分片门限;
分片结果解密模块,用于在接收服务端发送的分片结果后,根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,其中解密结果包括私钥分片列表、公钥列表、验证密钥列表、TEE报告和IAS签名;
验证模块,用于对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信;
所述服务端包括:
私钥分片生成模块,用于在接收私钥分片生成请求后,根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片;
分片结果生成模块,用于基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,所述分片结果包括加密私钥分片列表,验证密钥列表、TEE报告和IAS签名;
传输模块,用于将所述分片结果传输给客户端。
在一个实施例中,所述分片结果生成模块包括TEE报告生成单元;
所述TEE报告生成单元包括:
加密私钥分片列表生成子单元,用于将私钥分片列表中的所有私钥分片,分别根据对应用户的加密公钥进行加密得到加密私钥分片,从而形成加密私钥分片列表;
验证密钥列表生成子单元,用于根据私钥分片列表中的私钥分片,生成对应用户的验证密钥,从而形成验证密钥列表;
TEE报告生成子单元,用于根据私钥分片保存成员列表中所有成员的加密公钥、所述加密私钥分片列表和所述验证密钥列表,生成TEE报告。
在一个实施例中,所述验证模块,包括:
IAS验证单元,用于通过Intel IAS服务证书验证IAS签名的有效性;
TEE报告验证单元,用于使用IAS签名对所述TEE报告进行验证,以验证TEE报告的真实性;
代码验证单元,用于将所述TEE报告内容的EnclaveId,与开源平台源码的EnclaveID进行对比,以确保代码无篡改;
成员验证单元,用于使用TEE报告验证所有成员的加密公钥列表,以确保成员的正确性;
成员私钥分片验证单元,用于使用TEE报告验证所有成员的验证密钥列表,以确保成员私钥分片的正确性。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,DSP)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种由系统处理私钥分片的方法,所述系统包括运行在可信环境的服务端和运行在非可信环境的客户端,所述方法包括:
由客户端执行以下步骤:
生成用于加解密的非对称密钥对;
向所述服务端发起私钥分片生成请求,所述私钥分片生成请求包括加密公钥、分片总数、分片门限;
在接收服务端发送的分片结果后,根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,其中解密结果包括私钥分片列表、公钥列表、验证密钥列表、TEE报告和IAS签名;
对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信;
由服务端执行以下步骤:
在接收私钥分片生成请求后,根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片;
基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,所述分片结果包括加密私钥分片列表,验证密钥列表、TEE报告和IAS签名;
将所述分片结果传输给客户端。
2.根据权利要求1所述的由系统处理私钥分片的方法,其特征在于,所述TEE报告包括加密私钥分片列表、验证密钥列表、所有成员的加密公钥;
其中,所述TEE报告的生成过程包括:
将私钥分片列表中的所有私钥分片,分别根据对应用户的加密公钥进行加密得到加密私钥分片,从而形成加密私钥分片列表;
根据私钥分片列表中的私钥分片,生成对应用户的验证密钥,从而形成验证密钥列表;
根据私钥分片保存成员列表中所有成员的加密公钥、所述加密私钥分片列表和所述验证密钥列表,生成TEE报告。
3.根据权利要求1所述的由系统处理私钥分片的方法,其特征在于,对所述解密结果进行验证包括:
通过Intel IAS服务证书验证IAS签名的有效性;
使用IAS签名对TEE报告进行验证,以验证TEE报告的真实性;
将所述TEE报告内容的EnclaveId,与开源平台源码的Enclave ID进行对比,以确保代码无篡改。
4.根据权利要求3所述的由系统处理私钥分片的方法,其特征在于,对所述解密结果进行验证还包括:
使用TEE报告验证所有成员的加密公钥列表,以确保成员的正确性;
使用TEE报告验证所有成员的验证密钥列表,以确保成员私钥分片的正确性;
使用成员解密私钥解密得到的对应成员的私钥分片。
5.根据权利要求1所述的由系统处理私钥分片的方法,其特征在于,在向Intel IAS发起远程认证之前还包括:
调用本地的Quote Enclave生成Quote Report。
6.一种处理私钥分片的系统,其特征在于,包括:
所述系统包括运行在可信环境的服务端和运行在非可信环境的客户端;
所述客户端包括:
密钥对生成模块,用于生成用于加解密的非对称密钥对;
私钥分片生成请求模块,用于向所述服务端发起私钥分片生成请求,所述私钥分片生成请求包括加密公钥、分片总数、分片门限;
分片结果解密模块,用于在接收服务端发送的分片结果后,根据所述非对称密钥对中的私钥对所述分片结果进行解密,得到解密结果,其中解密结果包括私钥分片列表、公钥列表、验证密钥列表、TEE报告和IAS签名;
验证模块,用于对所述解密结果进行验证,以确保中间过程与服务端环境的真实可信;
所述服务端包括:
私钥分片生成模块,用于在接收私钥分片生成请求后,根据私钥分片保存成员列表在可信环境下生成指定数量的私钥分片;
分片结果生成模块,用于基于所述私钥分片生成TEE报告,向Intel IAS发起远程认证,从而得到分片结果,所述分片结果包括加密私钥分片列表,验证密钥列表、TEE报告和IAS签名;
传输模块,用于将所述分片结果传输给客户端。
7.根据权利要求6所述的处理私钥分片的系统,其特征在于,所述分片结果生成模块包括TEE报告生成单元;
所述TEE报告生成单元包括:
加密私钥分片列表生成子单元,用于将私钥分片列表中的所有私钥分片,分别根据对应用户的加密公钥进行加密得到加密私钥分片,从而形成加密私钥分片列表;
验证密钥列表生成子单元,用于根据私钥分片列表中的私钥分片,生成对应用户的验证密钥,从而形成验证密钥列表;
TEE报告生成子单元,用于根据私钥分片保存成员列表中所有成员的加密公钥、所述加密私钥分片列表和所述验证密钥列表,生成TEE报告。
8.根据权利要求6所述的处理私钥分片的系统,其特征在于,所述验证模块,包括:
IAS验证单元,用于通过Intel IAS服务证书验证IAS签名的有效性;
TEE报告验证单元,用于使用IAS签名对所述TEE报告进行验证,以验证TEE报告的真实性;
代码验证单元,用于将所述TEE报告内容的EnclaveId,与开源平台源码的Enclave ID进行对比,以确保代码无篡改;
成员验证单元,用于使用TEE报告验证所有成员的加密公钥列表,以确保成员的正确性;
成员私钥分片验证单元,用于使用TEE报告验证所有成员的验证密钥列表,以确保成员私钥分片的正确性。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任意一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任意一项所述的方法的步骤。
CN202210572134.5A 2022-05-24 2022-05-24 处理私钥分片的方法及系统 Active CN115001669B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210572134.5A CN115001669B (zh) 2022-05-24 2022-05-24 处理私钥分片的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210572134.5A CN115001669B (zh) 2022-05-24 2022-05-24 处理私钥分片的方法及系统

Publications (2)

Publication Number Publication Date
CN115001669A CN115001669A (zh) 2022-09-02
CN115001669B true CN115001669B (zh) 2024-05-24

Family

ID=83028706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210572134.5A Active CN115001669B (zh) 2022-05-24 2022-05-24 处理私钥分片的方法及系统

Country Status (1)

Country Link
CN (1) CN115001669B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858519A (zh) * 2020-07-10 2020-10-30 北京远景视点科技有限公司 一种区块链上机密数据分享的系统及方法
CN114006741A (zh) * 2021-10-27 2022-02-01 杭州弦冰科技有限公司 Intel SGX可信服务集群化安全部署的实现方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021076868A1 (en) * 2019-10-16 2021-04-22 Coinbase, Inc. Systems and methods for re-using cold storage keys

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858519A (zh) * 2020-07-10 2020-10-30 北京远景视点科技有限公司 一种区块链上机密数据分享的系统及方法
CN114006741A (zh) * 2021-10-27 2022-02-01 杭州弦冰科技有限公司 Intel SGX可信服务集群化安全部署的实现方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于SGX的Hadoop KMS安全增强方案;王冠;梁世豪;;信息安全研究;20190605(06);全文 *

Also Published As

Publication number Publication date
CN115001669A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
CN109687963B (zh) 基于公钥池的抗量子计算联盟链交易方法和系统
JP6151402B2 (ja) データセンタへのプラットフォームの内包検証
WO2020237868A1 (zh) 数据传输方法、电子设备、服务器及存储介质
US9294281B2 (en) Utilization of a protected module to prevent offline dictionary attacks
WO2017097041A1 (zh) 数据传输方法和装置
CN102624740B (zh) 一种数据交互方法及客户端、服务器
WO2020073513A1 (zh) 基于区块链的用户认证方法及终端设备
CN114024710B (zh) 一种数据传输方法、装置、系统及设备
US11063941B2 (en) Authentication system, authentication method, and program
US20050289343A1 (en) Systems and methods for binding a hardware component and a platform
CN111130798B (zh) 一种请求鉴权方法及相关设备
CN109361508A (zh) 数据传输方法、电子设备及计算机可读存储介质
CN113067823B (zh) 邮件用户身份认证和密钥分发方法、系统、设备及介质
US20220078023A1 (en) Private set calculation using private intersection and calculation, and applications thereof
CN115580396A (zh) 匿踪查询系统及匿踪查询方法
CN108900595B (zh) 访问云存储服务器数据的方法、装置、设备及计算介质
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
Sarkar et al. A novel session key generation and secure communication establishment protocol using fingerprint biometrics
CN110380859B (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
CN115001669B (zh) 处理私钥分片的方法及系统
CN113938878A (zh) 一种设备标识符防伪造方法、装置和电子设备
Yi Security of Bertino-Shang-Wagstaff time-bound hierarchical key management scheme for secure broadcasting
Lee et al. An interactive mobile SMS confirmation method using secret sharing technique
CN117499159B (zh) 一种基于区块链的数据交易方法、装置及电子设备
CN113556365B (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