CN109510708A - 一种基于Intel SGX机制的公钥密码计算方法和系统 - Google Patents
一种基于Intel SGX机制的公钥密码计算方法和系统 Download PDFInfo
- Publication number
- CN109510708A CN109510708A CN201811432010.7A CN201811432010A CN109510708A CN 109510708 A CN109510708 A CN 109510708A CN 201811432010 A CN201811432010 A CN 201811432010A CN 109510708 A CN109510708 A CN 109510708A
- Authority
- CN
- China
- Prior art keywords
- public
- private
- enclave
- key
- public 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 28
- 230000007246 mechanism Effects 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims description 35
- 238000012795 verification Methods 0.000 claims description 34
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000007789 sealing Methods 0.000 description 5
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- 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
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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
-
- 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
-
- 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/32—Cryptographic 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/3247—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于Intel SGX机制的公钥密码计算方法和系统。本方法为:1)生成相互独立的Public enclave和Private enclave,分别为基于Intel SGX机制提供隔离执行的应用程序运行环境;将Public enclave部署在加密消息发送者终端或签名消息验证者终端、Private enclave部署在加密消息接收者终端或签名消息生成者终端;2)Private enclave首次启动时,生成私钥;Public enclave首次启动时,向Private enclave执行SGX远程认证请求与该私钥相同的公钥。本发明安全、高效地实现了公钥密码计算。
Description
技术领域
本发明属于计算机技术、信息安全技术领域,具体涉及一种基于Intel SGX机制的公钥密码计算方法和系统。
背景技术
公钥密码系统是互联网应用程序和协议的基本安全组成,支持了各种Internet标准,广泛应用于各类互联网安全服务。通常,公钥密码系统采用基于数学难解问题的公钥密码算法,例如大整数因式分解,离散对数问题和椭圆曲线上离散对数问题等。由于难解数学问题计算的复杂性,现有的公钥密码系统通常是计算密集的,存在计算耗时,性能开销大的不足。与基于置换和换位的对称密码系统相比,在达到等效安全强度下,公钥密码系统的性能低得多。以RSA计算为例,一次RSA-2048解密计算大约需要278万个时钟周期数,而解密相同的长度的数据,AES只需要几十个时钟周期数。出于性能考虑,目前大多数密码计算系统一般采用混合的方式使用公钥密码算法,即先用公钥密码算法进行密钥交换,协商出一个对称密钥,然后再使用该对称密钥对后续需要传输的数据做加密计算。
英特尔软件防护扩展(SGX)是一项基于处理器的可信计算技术,提供隔离执行的应用程序运行环境,称为enclave。Enclave完成初始化之后,处理器计算enclave内数据和代码的哈希值,称为enclave的度量,来标识和区分enclave。SGX对enclave提供如下安全机制:
(1)隔离,SGX提供的隔离可防止其他enclave,其他进程和特权代码(如OS和虚拟机管理程序)在运行时读取或修改enclave的内存。
(2)密封,SGX提供了一种称为密封的安全机制,允许每个enclave使用与处理器固件信息和enclave度量相关联的密钥对持久存储的数据进行加密和认证。
(3)认证,支持SGX的处理器配备了经过认证的加密密钥,可以发出可远程验证的断言声明。断言声明通常包括enclave度量,enclave签发者的指纹,以及用户自定义数据。经过验证的断言声明表明enclave按预期安全地在支持SGX的平台上运行。
发明内容
针对现有公钥密码系统性能上的不足,本发明提出一种基于Intel SGX机制的公钥密码计算方法和系统,安全、高效地实现了公钥密码计算。
本发明基于Intel SGX机制的公钥密码系统,包含两类enclave:Public enclave和Private enclave,分别部署在加密消息的发送者终端或签名消息验证者终端和解密消息接收者终端或和签名消息生成者终端。其中,Public enclave提供公钥密码系统中使用公钥进行计算的公钥类计算接口,如加密和验证;Private enclave提供公钥密码系统中使用私钥进行计算的私钥类计算接口,如解密和签名。如图1所示。
本发明的技术方案为:
一种基于Intel SGX机制的公钥密码计算方法,其步骤包括:
1)生成相互独立的Public enclave和Private enclave;
i.将Public enclave部署在加密消息发送者终端、Private enclave部署在加密消息接收者终端;或者,
ii.将Public enclave部署在签名消息验证者终端、Private enclave部署在签名消息生成者终端;
其中,Public enclave和Private enclave分别为基于Intel SGX机制提供隔离执行的应用
程序运行环境;
2)Private enclave首次启动时,生成私钥;Public enclave首次启动时,向Private enclave执行SGX远程认证请求与该私钥相同的公钥。
进一步的,Public enclave向Private enclave请求与该私钥相同的公钥的方法为:Public enclave生成一临时密钥对(sktmp,pktmp),将其中的临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向Private enclave发送公钥请求,所述公钥请求包括该SGX远程断言证明Q;当Private enclave收到所述公钥请求后,调用enclave认证API对所述公钥请求中的SGX远程断言证明Q进行验证,若验证通过,则使用pktmp将Private enclave请求的与该私钥相同的公钥加密发送给Public enclave,Publicenclave使用临时私钥sktmp解密得到公钥。
进一步的,该SGX远程断言证明Q还包含Public enclave的度量、签发者指纹。
进一步的,Private enclave生成私钥之后,调用SGX密封API加密保存私钥到本地外部存储介质,Private enclave下次启动时,查询本地存储是否有自身enclave标识密封的数据,如果有,调用SGX解封API解密恢复私钥,否则,重新生成私钥;Public enclave接收到公钥之后,调用SGX密封API加密保存公钥到本地外部存储介质,Public enclave下次启动时,查询本地存储是否有自身enclave标识密封的数据,如果有,调用SGX解封API解密恢复公钥,否则,重新向Private enclave执行远程认证获取公钥。
进一步的,所述加密消息发送者终端在Public enclave的加密接口用公钥对消息采用选定的对称密码算法进行加密,输出密文;所述加密消息接收者终端在Privateenclave的解密接口用私钥采用选定的对称密码算法进行解密,恢复消息明文;
进一步的,所述签名消息生成者终端在Private enclave的签名接口用私钥对待签名的消息A进行消息认证码计算,输出消息认证码;所述签名消息验证者终端在Publicenclave的验证接口用公钥对该消息A重新计算消息认证码,并与接收到的消息认证码进行比较,两个认证码相同则验证成功,否则验证失败。
进一步的,选取的用于加密、解密的对称密码算法的加密模式与用于签名、验证的不同。
进一步的,Public enclave仅实现限定的密码计算接口而不包含输出公钥或将公钥暴露到不可信外设的接口,以确保Public enclave的计算功能不被滥用,公钥限定在Public enclave中不被导出。
一种基于Intel SGX机制的公钥密码计算系统,其特征在于,包括加密消息发送者终端和加密消息接收者终端或签名消息验证者终端和签名消息生成者终端;其中,加密消息发送者或签名消息验证者终端部署Public enclave、加密消息接收者或签名消息生成者终端部署Private enclave;Public enclave和Private enclave分别为基于Intel SGX机制提供隔离执行的应用程序运行环境;Private enclave首次启动时,生成私钥;Publicenclave首次启动时,向Private enclave执行SGX远程认证请求与该私钥相同的公钥。
本发明基于Intel SGX机制的公钥密码计算方法包括:
构建相互独立的Public enclave和Private enclave,对于公钥类计算接口和私钥类计算接口,分别在Public enclave和Private enclave使用对称密码算法实现。即Public enclave进行加密计算或签名计算的公钥与Private enclave进行解密计算或验证计算的私钥相同;
Public enclave部署在使用公钥计算功能的用户终端,即加密消息发送者终端或签名消息验证者终端,Private enclave部署在使用私钥计算功能的用户终端,即加密消息接收者终端或签名消息验证者终端;
系统的秘密数据通过SGX认证机制建立的可信连接在线传输。作为私钥的对称密钥在Private enclave中生成。因此,与私钥相同的公钥由Private enclave通过SGX认证机制建立的可信连接在线发送给Public enclave;
要求Public enclave不包含输出公钥或将公钥暴露到不可信外设的接口,以确保Public enclave的计算功能不被滥用,公钥限定在Public enclave中不被导出。
优选地,用于SGX远程认证的断言声明包含的用户数据为秘密数据请求方生成的临时公钥,来实现秘密数据加密传输。即Public enclave进行SGX远程认证请求公钥时,发送的断言声明包含的用户数据为Public enclave生成的临时公钥。这样,一旦远程认证通过,Private enclave使用这个临时公钥对秘密数据(即公钥)加密传输,Public enclave使用自身生成的对应的临时私钥可以解密恢复公钥。
优选地,本发明采用SGX的密封机制实现秘密数据的安全存储。在enclave程序退出之前,对称密钥被加密保存到本地非易失性存储器,SGX确保仅有具有相同标识的enclave能解密恢复密钥。Private enclave生成私钥之后,将私钥密封到本地外部存储介质,下次Private enclave启动时,直接从本地解密恢复私钥;Public enclave接收到公钥之后,将公钥密封到本地外部存储介质,下次Public enclave启动时,直接从本地解密恢复私钥。特别地,Public enclave通过SGX密封机制,实现公钥的安全存储,进而避免Publicenclave每次启动需要重复向Private enclave进行远程认证来获取。
原则上,本发明可以采用任何安全对称密码算法实现加密和解密功能,以及任何安全MAC算法实现签名和验证功能。但是,如果对称密码算法和MAC算法在相同的工作模式下,消息发送者可能会通过加密接口伪造有效签名。比如,Private enclave采用CMAC算法的CBC模式,并且能够通过在IV设置为零的情况下,以CBC模式加密消息来为消息生成CMAC签名。如果系统恰好采用具有CBC模式的对称密码算法,那么消息发送者使用加密接口就能伪造签名。为了避免这种情况的发生,优选地,本方明选取的用于加密、解密的对称密码算法的加密模式和用于签名、验证的MAC算法的不同,或者选择HMAC算法来签名和验证,而不是基于MAC的CMAC或GMAC算法。
按照上述方法描述,下面介绍系统的具体实现方案:
本发明的系统结构示意图如图1所示。
Private enclave首次启动时,生成私钥。
Private enclave生成私钥之后,调用SGX密封API加密保存私钥到本地外部存储介质。
Public enclave首次启动时,向Private enclave执行SGX远程认证请求与私钥相同的公钥。
Private enclave与Public enclave的公钥传输过程如图2所示。Public enclave向Private enclave发送公钥请求,该公钥请求的生成方法为:首先生成一个临时密钥对(sktmp,pktmp),将临时公钥pktmp作为断言声明的用户自定义数据,签发SGX远程断言证明Q=Quote(pktmp);该断言证明Q还包含Public enclave的度量、签发者指纹。该公钥请求包含的最重要的信息就是Q,在工程实现上来说一般会包含数据包标识信息,以便被请求方知道这个数据包是什么;比如公钥请求=(Q||string=“Public key request”)。Privateenclave收到该公钥请求后,借助Intel为SGX提供的认证服务验证Q,若验证通过,消息接收方可以确信Public enclave正确实例化在SGX平台上并且pktmp来自Public enclave,于是,使用pktmp将与Private enclave生成的私钥相同的公钥加密发送给Public enclave,Public enclave使用sktmp解密得到公钥。
Public enclave接收到公钥之后,调用SGX密封API加密保存公钥到本地外部存储介质。
Public enclave和Private enclave持有密钥之后可进行相应的密码计算。
加密、解密过程为:加密消息发送者在Public enclave的加密接口用公钥对消息采用选定的对称密码算法进行加密,输出密文;加密消息接收者在Private enclave的解密接口用私钥采用选定的对称密码算法进行解密,恢复消息明文。
签名、验证过程为:签名消息生成者在Private enclave的签名接口用私钥对消息进行消息认证码计算,输出消息认证码;签名消息验证者在Public enclave的验证接口用公钥对消息重新计算消息认证码,并与接收到的消息认证码进行比较,如果两个认证码相同则验证成功,否则验证失败。
Private enclave下次启动时,查询本地存储是否有自身enclave标识密封的数据,如果有,调用SGX解封API解密恢复私钥,然后继续进行私钥类密码计算功能,否则,重新生成私钥。
Public enclave下次启动时,查询本地存储是否有自身enclave标识密封的数据,如果有,调用SGX解封API解密恢复公钥,然后继续进行公钥类密码计算功能,否则,重新向Private enclave执行远程认证获取公钥。
与现有公钥密码系统相比,本发明的积极效果为:
本发明使用对称密码算法实现公钥密码系统计算,能有效地提高密码计算速率,明显地减小系统性能开销。本发明人选用对称加密算法为AES-256-GCM,签名算法为HMAC-SHA256来实现本发明的一个实验系统,同时在相同的实验机上实现常用的传统公钥密码算法,包括RSA-2048、RSA-4096、DSA-1024、DSA-2048、ECDSA-p224、ECDSA-p256、ECDSAp384。对比它们的计算的性能,结果如图3所示,可以看到本发明系统的性能远远优于RSA,DSA和ECDSA。
本发明中,密码计算在enclave中完成,因此,任何对enclave代码和数据的修改都能被发现,从而防止攻击者篡改公、私钥计算接口导致计算功能滥用。本发明提供了公钥密码系统计算功能可信执行的安全保证。
本发明中,公钥通过SGX认证机制在Private enclave和Public enclave之间共享,并且通过限定Public enclave接口来限制密钥的使用和导出,从而实现密钥的安全分发,密钥免受其他进程,特权代码(如OS和虚拟机管理程序)和消息发送者的窃取。本发明提供了可信的密钥分发机制和密钥隔离使用的安全保证。
本发明中,enclave优选采用SGX的密封机制实现密钥的安全存储。在enclave程序退出之前,对称密钥被加密保存到本地非易失性存储器,SGX确保仅有具有相同标识的enclave能解密恢复密钥。特别地,Public enclave通过SGX密封机制,实现公钥的安全存储,进而避免Public enclave每次启动需要重复向Private enclave进行远程认证来获取。本发明提供安全的密钥存储,简洁的公钥获取流程。
本发明基于SGX的可信执行环境enclave,使用对称密码算法实现的公钥密码系统,其安全性不再依赖于不可证明的数学难解问题,而是依赖可信计算技术SGX的安全性以及可证安全的对称密码算法。本发明提供可证明安全的公钥密码计算方法和系统。
附图说明
图1为系统结构示意图。
图2为系统公钥分发过程示意图。
图3为本发明实验系统与其他传统公钥密码系统的性能比较图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下通过实例对本发明作进一步详细说明。
本实例使用AES-256-GCM算法来加密、解密,HMAC-SHA256算法来签名、验证。
Private enclave首次启动,随机生成256位私钥mk。
Private enclave调用SGX密封API加密存储mk。
Public enclave首次启动,向Private enclave执行SGX远程认证请求公钥。向Private enclave发送公钥请求,生成一个临时密钥对(sktmp,pktmp),签发SGX远程断言证明Q=Quote(pktmp)。
Private enclave收到Q后,调用Intel提供的enclave认证API进行验证,若验证通过,使用pktmp将公钥即mk加密发送给Public enclave。Public enclave使用自身的sktmp解密得到mk。
Public enclave调用SGX密封API加密存储mk。
加密过程:加密消息发送者向Public enclave的加密接口输入明文P,得到密文C。
解密过程:加密消息接收者接收C输入到Private enclave的解密接口,解密恢复出明文P。
签名过程:签名消息生成者向Private enclave的签名接口输入消息,得到消息签名S。
验证过程:签名消息验证者接收S输入到Public enclave的验证接口,若验证成功,输出True,否则验证失败,输出False。
系统使用结束,分别关闭Public enclave和Private enclave程序。
Public enclave再次启动,若查询到本地自身enclave标识密封的数据,调用SGX解封API解密恢复mk,否则重新向Private enclave请求公钥,再继续进行和上述相同的加密、验证过程。
Private enclave再次启动,查询到本地自身enclave标识密封的数据,调用SGX解封API解密恢复mk,否则重新生成私钥,再继续进行和上述相同的解密、签名过程。
以上实例仅用以说明本发明的技术方法而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者同等替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (12)
1.一种基于Intel SGX机制的公钥密码计算方法,其步骤包括:
1)生成相互独立的Public enclave和Private enclave;
i.将Public enclave部署在加密消息发送者终端、Private enclave部署在加密消息接收者终端;或者,
ii.将Public enclave部署在签名消息验证者终端、Private enclave部署在签名消息生成者终端;
其中,Public enclave和Private enclave分别为基于Intel SGX机制提供隔离执行的应用程序运行环境;
2)Private enclave首次启动时,生成私钥;Public enclave首次启动时,向Privateenclave执行SGX远程认证请求与该私钥相同的公钥。
2.如权利要求1所述的方法,其特征在于,Public enclave向Private enclave请求与该私钥相同的公钥的方法为:Public enclave生成一临时密钥对(sktmp,pktmp),将其中的临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向Privateenclave发送公钥请求,所述公钥请求包括该SGX远程断言证明Q;当Private enclave收到所述公钥请求后,调用enclave认证API对所述公钥请求中的SGX远程断言证明Q进行验证,若验证通过,则使用pktmp将Private enclave请求的与该私钥相同的公钥加密发送给Public enclave,Public enclave使用临时私钥sktmp解密得到公钥。
3.如权利要求2所述的方法,其特征在于,该SGX远程断言证明Q还包含Public enclave的度量、签发者指纹。
4.如权利要求1所述的方法,其特征在于,Private enclave生成私钥之后,调用SGX密封API加密保存私钥到本地外部存储介质,Private enclave下次启动时,查询本地存储是否有自身enclave标识密封的数据,如果有,调用SGX解封API解密恢复私钥,否则,重新生成私钥;Public enclave接收到公钥之后,调用SGX密封API加密保存公钥到本地外部存储介质,Public enclave下次启动时,查询本地存储是否有自身enclave标识密封的数据,如果有,调用SGX解封API解密恢复公钥,否则,重新向Private enclave执行远程认证获取公钥。
5.如权利要求1所述的方法,其特征在于,所述加密消息发送者终端在Public enclave的加密接口用公钥对消息采用选定的对称密码算法进行加密,输出密文;所述加密消息接收者终端在Private enclave的解密接口用私钥采用选定的对称密码算法进行解密,恢复消息明文。
6.如权利要求1所述的方法,其特征在于,所述签名消息生成者终端在Privateenclave的签名接口用私钥对待签名的消息A进行消息认证码计算,输出消息认证码;所述签名消息验证者终端在Public enclave的验证接口用公钥对该消息A重新计算消息认证码,并与接收到的消息认证码进行比较,两个认证码相同则验证成功,否则验证失败。
7.如权利要求5或6所述的方法,其特征在于,选取的用于加密、解密的对称密码算法的加密模式与用于签名、验证的不同。
8.如权利要求1所述的方法,其特征在于,Public enclave仅实现限定的密码计算接口而不包含输出公钥或将公钥暴露到不可信外设的接口,以确保Public enclave的计算功能不被滥用,公钥限定在Public enclave中不被导出。
9.一种基于Intel SGX机制的公钥密码计算系统,其特征在于,包括加密消息发送者终端和加密消息接收者终端或签名消息验证者终端和签名消息生成者终端;其中,加密消息发送者或签名消息验证者终端部署Public enclave、加密消息接收者或签名消息生成者终端部署Private enclave;Public enclave和Private enclave分别为基于Intel SGX机制提供隔离执行的应用程序运行环境;Private enclave首次启动时,生成私钥;Publicenclave首次启动时,向Private enclave执行SGX远程认证请求与该私钥相同的公钥。
10.如权利要求9所述的系统,其特征在于,Public enclave向Private enclave请求与该私钥相同的公钥的方法为:Public enclave生成一临时密钥对(sktmp,pktmp),将其中的临时公钥pktmp作为断言声明的用户自定义数据,签发一个SGX远程断言证明Q,然后向Privateenclave发送公钥请求,所述公钥请求包括该SGX远程断言证明Q;当Private enclave收到所述公钥请求后,调用enclave认证API对所述公钥请求中的SGX远程断言证明Q进行验证,若验证通过,则使用pktmp将Private enclave请求的与该私钥相同的公钥加密发送给Public enclave,Public enclave使用自身生成的临时私钥sktmp解密得到公钥。
11.如权利要求9所述的系统,其特征在于,Public enclave提供公钥密码系统中使用公钥进行计算的公钥类计算接口,包括加密接口和验证接口;Private enclave提供公钥密码系统中使用私钥进行计算的私钥类计算接口,包括解密接口和签名接口;所述加密消息发送者终端在Public enclave的加密接口用公钥对消息采用选定的对称密码算法进行加密,输出密文;所述加密消息接收者终端在Private enclave的解密接口用私钥采用选定的对称密码算法进行解密,恢复消息明文;所述签名消息生成者终端在Private enclave的签名接口用私钥对待签名的消息A进行消息认证码计算,输出消息认证码;所述签名消息验证者终端在Public enclave的验证接口用公钥对该消息A重新计算消息认证码,并与接收到的消息认证码进行比较,两个认证码相同则验证成功,否则验证失败。
12.如权利要求11所述的系统,其特征在于,用于加密、解密的对称密码算法与用于签名、验证的算法采用不同的加密模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811244605 | 2018-10-24 | ||
CN201811244605X | 2018-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109510708A true CN109510708A (zh) | 2019-03-22 |
CN109510708B CN109510708B (zh) | 2021-07-13 |
Family
ID=65750959
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811432010.7A Active CN109510708B (zh) | 2018-10-24 | 2018-11-28 | 一种基于Intel SGX机制的公钥密码计算方法和系统 |
CN201811431816.4A Active CN109800584B (zh) | 2018-10-24 | 2018-11-28 | 一种基于Intel SGX机制的身份或属性加密计算方法和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811431816.4A Active CN109800584B (zh) | 2018-10-24 | 2018-11-28 | 一种基于Intel SGX机制的身份或属性加密计算方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109510708B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213231A (zh) * | 2019-04-26 | 2019-09-06 | 西安电子科技大学 | 一种面向sgx的轻量级的外包数据访问控制方法及控制系统 |
CN111291389A (zh) * | 2020-01-20 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种计算机核心程序全生命周期的保护方法及系统 |
CN112231652A (zh) * | 2020-10-28 | 2021-01-15 | 百度在线网络技术(北京)有限公司 | 可信环境远程验证方法、装置、设备、系统及介质 |
CN113946801A (zh) * | 2021-11-01 | 2022-01-18 | 苏州浪潮智能科技有限公司 | 基于SGX的Python源码的保护方法和装置 |
CN114268507A (zh) * | 2021-12-30 | 2022-04-01 | 天翼物联科技有限公司 | 一种基于sgx的网络云安全优化方法、系统及相关介质 |
CN114422215A (zh) * | 2021-12-31 | 2022-04-29 | 国网安徽省电力有限公司合肥供电公司 | 一种基于区块链的跨平台和可信能源数据共享系统及方法 |
CN114553603A (zh) * | 2022-04-25 | 2022-05-27 | 南湖实验室 | 一种基于隐私计算的新型数据可信解密的方法 |
CN115021927A (zh) * | 2022-05-12 | 2022-09-06 | 中国科学院信息工程研究所 | 一种面向密码机集群的管理员身份管控方法及系统 |
WO2023044664A1 (en) * | 2021-09-23 | 2023-03-30 | Intel Corporation | Protecting secret processing, secret input data, and secret output data using enclaves |
CN116614275A (zh) * | 2023-05-23 | 2023-08-18 | 京信数据科技有限公司 | 一种隐私计算一体机委托加速的装置及方法 |
WO2024122032A1 (ja) * | 2022-12-08 | 2024-06-13 | 日本電信電話株式会社 | プログラム実行システム、プログラム実行方法、及びプログラム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278078B (zh) * | 2019-06-17 | 2022-03-22 | 矩阵元技术(深圳)有限公司 | 一种数据处理方法、装置及系统 |
CN110557368B (zh) * | 2019-07-22 | 2021-09-21 | 南京财经大学 | 一种属性基信息流控制方法及系统 |
CN111695145B (zh) * | 2020-04-18 | 2023-04-07 | 西安电子科技大学 | 基于sgx的面向mldp的多方访问控制方法及系统 |
CN112711774B (zh) * | 2021-03-25 | 2023-01-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
GB2610861B (en) * | 2021-09-20 | 2023-10-11 | Intelligent Voice Ltd | Confidential Automated Speech Recogntion |
US20230291549A1 (en) * | 2022-03-14 | 2023-09-14 | Vmware, Inc. | Securely sharing secret information through an unsecure channel |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170104597A1 (en) * | 2015-10-09 | 2017-04-13 | Intel Corporation | Technologies for end-to-end biometric-based authentication and platform locality assertion |
WO2017172157A1 (en) * | 2016-03-29 | 2017-10-05 | Intel Corporation | Technologies for dynamic loading of integrity protected modules into secure enclaves |
CN107463838A (zh) * | 2017-08-14 | 2017-12-12 | 广州大学 | 基于sgx的安全监控方法、装置、系统及存储介质 |
CN107506659A (zh) * | 2017-07-27 | 2017-12-22 | 西安电子科技大学 | 一种基于sgx的通用数据库的数据保护系统及方法 |
US20180212966A1 (en) * | 2017-01-24 | 2018-07-26 | Microsoft Technology Licensing, Llc | Cross-platform enclave data sealing |
CN108418691A (zh) * | 2018-03-08 | 2018-08-17 | 湖南大学 | 基于sgx的动态网络身份认证方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389513B (zh) * | 2015-11-26 | 2018-10-12 | 华为技术有限公司 | 一种虚拟可信平台模块vTPM的可信执行方法和装置 |
US11405177B2 (en) * | 2017-01-24 | 2022-08-02 | Microsoft Technology Licensing, Llc | Nested enclave identity |
CN108462689B (zh) * | 2017-02-22 | 2022-04-01 | 英特尔公司 | 用于远程sgx飞地认证的技术 |
-
2018
- 2018-11-28 CN CN201811432010.7A patent/CN109510708B/zh active Active
- 2018-11-28 CN CN201811431816.4A patent/CN109800584B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170104597A1 (en) * | 2015-10-09 | 2017-04-13 | Intel Corporation | Technologies for end-to-end biometric-based authentication and platform locality assertion |
WO2017172157A1 (en) * | 2016-03-29 | 2017-10-05 | Intel Corporation | Technologies for dynamic loading of integrity protected modules into secure enclaves |
US20180212966A1 (en) * | 2017-01-24 | 2018-07-26 | Microsoft Technology Licensing, Llc | Cross-platform enclave data sealing |
CN107506659A (zh) * | 2017-07-27 | 2017-12-22 | 西安电子科技大学 | 一种基于sgx的通用数据库的数据保护系统及方法 |
CN107463838A (zh) * | 2017-08-14 | 2017-12-12 | 广州大学 | 基于sgx的安全监控方法、装置、系统及存储介质 |
CN108418691A (zh) * | 2018-03-08 | 2018-08-17 | 湖南大学 | 基于sgx的动态网络身份认证方法 |
Non-Patent Citations (2)
Title |
---|
HAI NGUYEN: "EnGarde: Mutually-Trusted Inspection of SGX Enclaves", 《IEEE》 * |
王进文: "《SGX技术应用研究综述》", 《网络新媒体技术》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213231B (zh) * | 2019-04-26 | 2021-11-30 | 西安电子科技大学 | 一种面向sgx的轻量级的外包数据访问控制方法及控制系统 |
CN110213231A (zh) * | 2019-04-26 | 2019-09-06 | 西安电子科技大学 | 一种面向sgx的轻量级的外包数据访问控制方法及控制系统 |
CN111291389A (zh) * | 2020-01-20 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种计算机核心程序全生命周期的保护方法及系统 |
CN111291389B (zh) * | 2020-01-20 | 2022-06-24 | 苏州浪潮智能科技有限公司 | 一种计算机核心程序全生命周期的保护方法及系统 |
CN112231652A (zh) * | 2020-10-28 | 2021-01-15 | 百度在线网络技术(北京)有限公司 | 可信环境远程验证方法、装置、设备、系统及介质 |
CN112231652B (zh) * | 2020-10-28 | 2022-02-22 | 百度在线网络技术(北京)有限公司 | 可信环境远程验证方法、装置、设备、系统及介质 |
WO2023044664A1 (en) * | 2021-09-23 | 2023-03-30 | Intel Corporation | Protecting secret processing, secret input data, and secret output data using enclaves |
CN113946801A (zh) * | 2021-11-01 | 2022-01-18 | 苏州浪潮智能科技有限公司 | 基于SGX的Python源码的保护方法和装置 |
CN113946801B (zh) * | 2021-11-01 | 2024-06-04 | 苏州浪潮智能科技有限公司 | 基于SGX的Python源码的保护方法和装置 |
CN114268507B (zh) * | 2021-12-30 | 2023-12-05 | 天翼物联科技有限公司 | 一种基于sgx的网络云安全优化方法、系统及相关介质 |
CN114268507A (zh) * | 2021-12-30 | 2022-04-01 | 天翼物联科技有限公司 | 一种基于sgx的网络云安全优化方法、系统及相关介质 |
CN114422215A (zh) * | 2021-12-31 | 2022-04-29 | 国网安徽省电力有限公司合肥供电公司 | 一种基于区块链的跨平台和可信能源数据共享系统及方法 |
CN114553603A (zh) * | 2022-04-25 | 2022-05-27 | 南湖实验室 | 一种基于隐私计算的新型数据可信解密的方法 |
CN115021927B (zh) * | 2022-05-12 | 2024-04-16 | 中国科学院信息工程研究所 | 一种面向密码机集群的管理员身份管控方法及系统 |
CN115021927A (zh) * | 2022-05-12 | 2022-09-06 | 中国科学院信息工程研究所 | 一种面向密码机集群的管理员身份管控方法及系统 |
WO2024122032A1 (ja) * | 2022-12-08 | 2024-06-13 | 日本電信電話株式会社 | プログラム実行システム、プログラム実行方法、及びプログラム |
CN116614275A (zh) * | 2023-05-23 | 2023-08-18 | 京信数据科技有限公司 | 一种隐私计算一体机委托加速的装置及方法 |
CN116614275B (zh) * | 2023-05-23 | 2024-02-20 | 京信数据科技有限公司 | 一种隐私计算一体机委托加速的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109800584B (zh) | 2020-10-16 |
CN109800584A (zh) | 2019-05-24 |
CN109510708B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510708B (zh) | 一种基于Intel SGX机制的公钥密码计算方法和系统 | |
CN107070657B (zh) | 安全芯片和应用处理器及其操作方法 | |
EP3349393B1 (en) | Mutual authentication of confidential communication | |
CN111314089B (zh) | 一种基于sm2的两方协同签名方法及解密方法 | |
US8670563B2 (en) | System and method for designing secure client-server communication protocols based on certificateless public key infrastructure | |
CN107094108B (zh) | 连接到数据总线的部件和在该部件中实现加密功能的方法 | |
CN110958219B (zh) | 一种面向医疗云共享数据的sm2代理重加密方法与装置 | |
US20070067629A1 (en) | Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
US10938555B2 (en) | Method and assembly for establishing a secure communication between a first network device (initiator) and a second network device (responder) | |
EP3387576B1 (en) | Apparatus and method for certificate enrollment | |
CN109547209B (zh) | 一种两方sm2数字签名生成方法 | |
CN110889696A (zh) | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 | |
CN111614621B (zh) | 物联网通信方法和系统 | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
WO2023151427A1 (zh) | 量子密钥传输方法、装置及系统 | |
CN111079178B (zh) | 一种可信电子病历脱敏和回溯方法 | |
EP4208982B1 (en) | Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge | |
CN110572257B (zh) | 基于身份的数据来源鉴别方法和系统 | |
CN114844643A (zh) | 一种基于双线性映射获取适配器签名的方法和电子设备 | |
CN110365482B (zh) | 一种数据通信方法和装置 | |
JPH07118709B2 (ja) | 秘密情報通信方式 | |
WO2023198036A1 (zh) | 一种密钥生成方法、装置及设备 | |
Lupascu et al. | SGX-Based Cloud Security Module with User's Sole Control | |
US20220083666A1 (en) | Key authentication |
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 |