CN112438034B - 基于可信执行环境的可校验加密 - Google Patents
基于可信执行环境的可校验加密 Download PDFInfo
- Publication number
- CN112438034B CN112438034B CN201980047829.8A CN201980047829A CN112438034B CN 112438034 B CN112438034 B CN 112438034B CN 201980047829 A CN201980047829 A CN 201980047829A CN 112438034 B CN112438034 B CN 112438034B
- Authority
- CN
- China
- Prior art keywords
- tee
- computing device
- plaintext
- key
- key pair
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C5/00—Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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)
- H04L9/0825—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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/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/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
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- 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/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
公开了一种用于使用密文校验明文的属性的方法。在实施例中,计算设备可以在所述计算设备的可信执行环境(TEE)处接收所述密文。所述TEE可以使用加密密钥对的私有加密密钥对所述密文进行解密以生成所述明文。所述加密密钥对包括公共加密密钥和所述私有加密密钥。所述TEE可以通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果。所述签名密钥对包括公共签名密钥和所述私有签名密钥。所述私钥是从所述计算设备的安全存储器检索的,并且所述安全存储器可能仅能够由所述TEE访问。然后,所述计算设备可以发送所述数字签名的验证结果。
Description
技术领域
本专利申请要求于2018年7月17日提交的标题为“基于可信执行环境的可校验加密(VERIFIABLE ENCRYPTION BASED ON TRUSTED EXECUTION ENVIRONMENT)”的第16/037,789号美国专利申请的优先权,其全部内容以引用的方式并入本文中,就如同全文复制一般。
领域
本发明大体上涉及一种用于加密的系统和方法,并且在特定实施例中,涉及一种用于使用密文校验明文的属性的系统和方法。
背景技术
对于大多数加密方法,仅使用密文难以校验明文的属性。此问题被称作可校验加密问题(Verifiable Encryption Problem,VEP)。
零知识证明(zero knowledge proof,ZKP)是VEP的一种已知的解决方案。然而,一般的ZKP适用于校验明文的一个属性,并且通常不适用于校验明文的其它属性。这意味着,为了证明一个特定知识(在VEP情况下,为了证明明文的一些属性),必须构造专门用于解决一个特定问题的一个特定ZKP。此外,校验由ZKP构造的算法的安全性通常会花费数年时间。ZKP也非常复杂且不易使用。另外,对于不同的问题,用户必须再次运行计算密集型过程以生成新协议。
VEP的另一种解决方案是一种被称为ZK-SNARK的新ZKP技术,所述技术声称其为可以由图灵机(Turing machine)解决的所有问题的通用框架。然而,将问题转换成多项式会需要大量的计算和复杂的数学技能。因此,需要一种更简单、更通用、更快速的VEP解决方案。
发明内容
根据广义方面,提供一种用于使用密文校验明文的属性的方法。计算设备可以在计算设备的可信执行环境(trusted execution environment,TEE)处接收密文。TEE可以使用加密密钥对的私有加密密钥对密文进行解密以生成明文。加密密钥对包括公共加密密钥和私有加密密钥。TEE可以通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果。签名密钥对包括公共签名密钥和私有签名密钥。私钥是从计算设备的安全存储器检索的,并且所述安全存储器可能仅能够由TEE访问。然后,计算设备可以发送数字签名的验证结果。
根据前述方面,所发送的数字签名的验证结果使接收者能够通过使用公共签名密钥校验数字签名的验证结果来确认明文的属性。
根据前述方面中的任一方面,发送包括由计算设备将密文和数字签名的验证结果发送给接收者。
根据前述方面中的任一方面,方法进一步包括:TEE获得加密密钥对;TEE生成签名密钥对;TEE从注册服务器接收认证证书,认证证书校验由TEE执行以校验明文的属性的代码正确。
根据前述方面中的任一方面,方法进一步包括:计算设备的富执行环境(richexecution environment,REE)将加密密钥对提供给TEE;TEE生成签名密钥对并将私有签名密钥存储在计算设备的安全存储器中;TEE将远程认证请求发送到注册服务器;TEE经由在TEE与注册服务器之间建立的安全信道在证书请求中发送公共加密密钥和公共签名密钥;TEE从注册服务器接收地址证明请求;TEE基于私有加密密钥和地址证明请求将地址证明响应发送给注册服务器;TEE接收由注册服务器内的安全元件生成的认证证书,安全元件包括无法从安全元件外部读取的密钥,其中,认证证书校验由TEE执行以校验明文的属性的代码正确,认证证书包括公共签名密钥。
根据前述方面中的任一方面,加密密钥对包括Paillier密钥对,并且其中签名密钥对包括通用关键字密码(Rivest-Shamir-Adleman,RSA)密钥对或椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)密钥对中的一者。
根据前述方面中的任一方面,密文包括使用区块链的对等网络上的加密货币交易的加密交易值,并且其中明文的属性是交易值的范围。
根据前述方面中的任一方面,所接收的密文是使用加性同态加密算法进行加密。
根据前述方面中的任一方面,密文是加密字符串,并且其中明文的属性是明文的字符串长度。
根据前述方面中的任一方面,密文是明文的哈希值,其中,明文的属性是等于特定值的哈希值。
根据另一广义方面,提供一种用于使用密文校验明文的属性的计算设备。计算设备包括:用于存储指令的存储器存储装置,存储器存储装置包括安全存储器和非安全存储器;与存储器存储装置通信的一个或多个处理器,其中,一个或多个处理器执行指令以进行以下操作:计算设备的可信执行环境(TEE)接收密文;TEE使用加密密钥对的私有加密密钥对密文进行解密以生成明文,加密密钥对包括公共加密密钥和私有加密密钥;TEE生成校验明文的属性的验证结果;TEE通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果,签名密钥对包括公共签名密钥和私有签名密钥,私有签名密钥是从计算设备的安全存储器检索到的,安全存储器仅能够由TEE访问;计算设备发送数字签名的验证结果。
根据前述方面,所发送的数字签名的验证结果使接收者能够通过使用公共签名密钥校验数字签名的验证结果来确认明文的属性。
根据前述方面中的任一方面,发送包括由计算设备将密文和数字签名的验证结果发送到接收者。
根据前述方面中的任一方面,一个或多个处理器进一步执行指令以进行以下操作:TEE获得加密密钥对;TEE生成签名密钥对;TEE从注册服务器接收认证证书,认证证书校验由TEE执行以校验明文的属性的代码正确。
根据前述方面中的任一方面,一个或多个处理器进一步执行指令以进行以下操作:计算设备的富执行环境(REE)将加密密钥对提供给TEE;TEE生成签名密钥对并将私有签名密钥存储在计算设备的安全存储器中;TEE将远程认证请求发送到注册服务器;TEE经由TEE与注册服务器之间建立的安全信道在证书请求中发送公共加密密钥和公共签名密钥;TEE从注册服务器接收地址证明请求;TEE基于私有加密密钥和地址证明请求将地址证明响应发送给注册服务器;TEE接收由注册服务器内的安全元件生成的认证证书,安全元件包括无法从安全元件外部读取的密钥,其中,认证证书校验由TEE执行以校验明文的属性的代码正确,认证证书包括公共签名密钥。
根据前述方面中的任一方面,加密密钥对包括Paillier密钥对,其中,签名密钥对包括通用关键字密码(RSA)密钥对或椭圆曲线数字签名算法(ECDSA)密钥对中的一者。
根据前述方面中的任一方面,密文包括使用区块链的对等网络上的加密货币交易的加密交易值,并且其中明文的属性是交易值的范围。
根据前述方面中的任一方面,所接收的密文是使用加性同态加密算法进行加密。
根据前述方面中的任一方面,密文是加密字符串,并且其中明文的属性是明文的字符串长度。
根据前述方面中的任一方面,密文是明文的哈希值,其中,明文的属性是等于特定值的哈希值。
根据另一广义方面,提供一种计算机可读存储介质,包括安全存储器和非安全存储器,计算机可读存储介质具有存储在其上的指令,指令在由计算设备的一个或多个处理器执行时促使计算设备执行用于使用密文校验明文的属性的操作,操作包括:计算设备的可信执行环境(TEE)接收密文;TEE使用加密密钥对的私有加密密钥对密文进行解密以生成明文,加密密钥对包括公共加密密钥和私有加密密钥;TEE生成校验明文的属性的验证结果;TEE通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果,签名密钥对包括公共签名密钥和私有签名密钥,私有签名密钥是从计算设备的安全存储器检索到的,安全存储器仅能够由TEE访问;计算设备发送数字签名的验证结果。
附图说明
为了更全面地理解本发明及其优点,现在参考结合附图进行的以下描述,其中:
图1是示出需要校验密文的明文的情境的分散式系统的逻辑框图;
图2A以示意图示出根据本公开的实施例的计算设备的示例;
图2B展示可信执行环境(TEE)的实施例;
图3展示根据一些实施例的用于使用密文校验明文的属性的方法的流程图。
图4是根据实施例的示出校验密文的明文而不对密文进行解密的系统的实施例的框图;
图5是用于注册服务器初始化的方法的实施例的图解;
图6A和图6B展示用于注册新对等体的方法的实施例的图解;并且
图7A和图7B展示用于验证含有加密数据的交易的方法的实施例的图解。
具体实施方式
下文将详细论述实施例的制作和使用。然而,应了解,本发明提供可以在各种特定上下文中体现的多个适用的发明性概念。所论述的特定实施例仅仅说明用于制作和使用本发明的特定方式,而并不限制本发明的范围。
对于大多数加密方法,仅使用通过使用加密算法对明文进行加密而生成的密文难以校验明文的属性。本文公开了用于使用通过使用加密算法对明文进行加密而生成的密文来校验明文的属性的系统和方法。在一些实施例中,明文是数值,并且要校验的明文的属性是数值在范围内。在其它实施例中,明文是字符串,并且要校验的属性是字符串的长度。在另外其它实施例中,明文是哈希值,并且要校验的明文的属性是等于特定值的哈希值。在整个本专利中,使用密文校验明文的属性的问题被称为“可校验加密问题(VEP)”。
VEP的一个示例是校验加密货币交易的加密交易值。考虑以下示例。艾丽斯(Alice)通过分散式网络将10美元的加密货币转账给鲍勃(Bob),在所述分散式网络中使用区块链记录交易。在此情境下存在三个角色:1)发送方艾丽斯;2)接收方鲍勃;以及3)校验器。校验器是分散式网络上的对等计算设备,其校验每一加密货币交易以保证加密货币交易有效。加密货币交易中的交易值被加密,并且艾丽斯和鲍勃两者的账户余额出于隐私目的而被加密。存在两个问题。由于交易值被加密,鲍勃可如何在交易中校验交易值实际上是10美元?并且,在此网络上的校验器可如何校验艾丽斯在她的账户上有超过10美元的加密货币?这两个问题是相同的,两者都考虑如何使用在艾丽斯与鲍勃之间的交易中包括的加密交易值(例如,密文)来证明交易值(例如,10美元的加密货币)在特定范围内(例如,明文的属性)。此问题被称作“密文范围证明(Range Proof over Ciphertext,RPoC)”。RPoC是一种VEP。在本公开中,RPoC将用作解释所公开的VEP解决方案的示例。然而,所公开的系统和方法可以应用于任何一般的VEP,而不仅仅应用于RPoC。
本文公开了用于通过涉及计算设备的可信执行环境(TEE)来解决VEP的方法和系统。在实施例中,计算设备可以在计算设备的TEE处接收密文。TEE可以使用加密密钥对的私有加密密钥对密文进行解密以生成明文。加密密钥对包括公共加密密钥和私有加密密钥。TEE可以通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果。签名密钥对包括公共签名密钥和私有签名密钥。私钥是从计算设备的安全存储器检索的,并且安全存储器可能仅能够由TEE访问。然后,计算设备可以发送数字签名的验证结果。
将上文所描述的RPoC作为示例。在艾丽斯一方,艾丽斯的计算设备的TEE包括用于校验交易值在特定范围内的证明器。在此示例中,证明器是包括用于校验交易的交易值(例如,10美元的加密货币)在特定范围内的编程指令并在证明器确定交易值在特定范围内时生成验证结果的软件代码。证明器然后通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果。验证结果证明交易有效。证明器的软件代码由软件代码提供者提供。校验器的计算设备通过分散式网络接收交易(其包括加密交易值)和数字签名的验证结果,并使用公共签名密钥校验数字签名的验证结果的数字签名,以验证(例如证明)交易值在特定范围内。具体地说,过程具有以下步骤。TEE中的证明器接收艾丽斯的私有加密密钥。证明器证明明文具有特定属性(交易值是10美元且艾丽斯的账户余额超过10美元)并使用签名密钥对的私钥对证明进行数字签名。校验器校验数字签名的证明(即,验证结果)以确认交易值是10美元且艾丽斯的余额超过10美元。
本公开的一个或多个实施例的一个优点在于,可以在不泄漏私有加密密钥和私有签名密钥的任何信息的情况下证明使用密文的明文的属性(例如,用于将密文解密为明文的艾丽斯的私钥和由证明器用来对验证结果进行数字签名的私钥)和明文。私有加密密钥、私有签名密钥和明文存储在仅可由艾丽斯的计算设备的TEE访问的安全存储器中。除了数据(即,私有加密密钥、私有签名密钥和明文)的所有者之外,没有人知道安全存储器中的此类数据。在一个方面,私有加密密钥由TEE接收。密文被传递到TEE中并在TEE中被解密。属性被校验,并且那些属性的证明是由证明器在TEE中生成的。为了证明所述证明是在TEE内部生成的,证明器使用签名密钥对的私有签名密钥对所述证明进行数字签名。私有签名密钥存储在仅可由TEE访问的安全存储器中。应注意,在整个过程中,私有加密密钥和明文都不会泄漏到TEE之外。因此,私有加密密钥和明文的安全性简化为TEE的安全性。由于私有签名密钥存储在仅可由TEE访问的安全存储器中,故证明的完整性也简化为TEE的安全性。
本公开的一个或多个实施例的另一优点在于,可以通过使用公共信息来校验证明。为了校验证明,校验器仅需要公共可用的信息。证明是由私有签名密钥进行数字签名,所述私有签名密钥是例如PKI密钥对的签名密钥对的私钥。为了校验数字签名,校验器仅需要知道签名密钥对的公共签名密钥,所述公共签名密钥是公共已知的信息。
本公开的一个或多个实施例的另一优点在于,软件代码提供者可以证明其具有关于例如私有加密密钥、私有签名密钥和明文的敏感信息的零知识。TEE内部的明文的属性的校验是可能泄漏敏感信息的唯一过程。由于软件代码中不存在凭证,故软件代码提供者可以打开TEE中的证明器的软件代码以进行评审。通过评审软件代码,每个人都知道软件代码未泄漏私钥或明文。远程认证可以保证在TEE中运行的软件代码实际上是经过评审的软件代码。
所公开的系统和方法的替代方案是零知识证明(ZKP)。然而,在ZKP中,为了证明明文的特定属性,必须专门为此目的而构造ZKP协议。ZKP协议的构造需要数学背景和一些巧妙的技能。然而,所公开的方法和系统是通用的,这意味着,为了证明明文的特定属性,仅需要在TEE中写入对应代码。此外,与ZKP相比,所公开的系统和方法可以证明明文更多种类的属性。与此对比,并非所有属性都可以由ZKP证明。然而,只要可以由图灵机生成证明,就可以应用所公开的系统和方法来安全地对其进行证明。
另外,与ZKP相比,所公开的方法和系统效率更高。通常,ZKP方法是基于大量的公钥加密计算。然而,执行大量的公钥加密计算的效率极低。与此对比,对于所公开的系统和方法,唯一的额外成本是进出TEE的成本。此上下文切换成本远低于一系列公钥加密计算。如果考虑涉及若干轮网络通信的交互式ZKP,则所公开的系统和方法性能优点甚至大于ZKP。
另外,所公开的系统和方法的安全性简化为完善的TEE技术。所公开的系统和方法的安全性简化为TEE的安全性,而所述TEE的安全性已被充分研究多年。
图1是示出需要校验密文的明文的属性的情境的系统100的逻辑框图。系统100是需要使用区块链上的RPoC作为示例来校验交易的交易值(例如,明文)的示例。下文将示出展示如何使用TEE来解决本文所描述的VEP的实施例。然而,所公开的系统和方法不限于使用其中使用区块链110进行交易的分散式网络执行的加密货币交易,而是可以用于校验任何密文的明文的属性。
系统100包括两个用户——艾丽斯102和鲍勃104、校验器106和审计器108。考虑以下情境。艾丽斯102和鲍勃104在同一区块链上,所述区块链是由分散式网络管理的记录列表。此分散式网络管理隐私保护区块链。这意味着所有交易和账户余额均被加密。艾丽斯102想要通过此分散式网络将10美元发送给鲍勃104。此交易T 112与由分散式网络管理的区块链上的其它交易相同地被加密。校验器106,分散式网络上的一个对等计算设备,必须能够校验此交易T 112。也就是说,在操作114处,校验器106必须校验T 112,从艾丽斯102转账给鲍勃104的金额大于零,艾丽斯102具有足够的余额来将交易值(例如,10美元的加密货币)转账给鲍勃104。然而,在常规方法中,因为校验器106不具有解密密钥,所以校验明文(例如,从艾丽斯102转账给鲍勃104的金额大于零,并且艾丽斯102的账户上有足够的资金来转账10美元的交易值)的校验过程114必须在不对密文进行解密的情况下在所述密文上执行。校验器106在操作116处将校验交易(Txn)追加到区块链110。在操作118处由审计器108审计校验。
图2A以示意图示出根据本公开的实施例的计算设备200的示例。计算设备200可以是例如智能手机、平板电脑、例如笔记本电脑的个人计算机、可穿戴计算设备、物联网(Internet of Things,IoT)设备等。
计算设备200包括若干组件,包括处理器202、存储器204、存储装置206和用于连接计算设备202的组件的总线207。计算设备200还可以包括额外组件,例如一个或多个输入/输出(input/output,I/O)设备208和一个或多个网络接口210(以虚线示出)。计算设备200的组件可以形成于一个或多个半导体芯片中,所述一个或多个半导体芯片安装到印刷电路板以用于组件之间的通信。在一些实施例中,例如处理器202和网络接口210的多个组件并入在被称作片上系统(system-on-chip)的单个半导体芯片中。在其它实施例中,每一组件是离散芯片。
处理器202是任何合适类型的处理器,例如实施ARM或x86指令集的处理器。
存储器204是可由处理器202访问的任何合适类型的随机存取存储器。存储器204包括安全存储器212。在一些实施例中,安全存储器212是离散物理模块。在其它实施例中,存储器204经分段以在与其它存储器相同的物理模块内限定安全存储器。在一些实施例中,安全存储器212占据存储器204的地址空间内的存储器地址范围。在一些实施例中,安全存储器212可由不同存储器空间内的处理器202访问。
存储装置206可以是例如具有合适容量的一个或多个与非(NAND)闪存模块,或可以是一个或多个持久性计算机存储设备,例如硬盘驱动器、固态驱动器等。存储装置206包括安全存储装置214。在一些实施例中,安全存储装置214存在于与其它存储装置206共享的设备上。在其它实施例中,安全存储装置214存在于离散硬盘驱动器、快闪存储装置等上。
总线207可以是包括存储器总线或存储器控制器和外围总线的任何类型的若干总线架构中的一种或多种。
I/O设备208包括例如用户接口装置,例如能够接收呈触摸形式的输入的电容性或电阻性触敏屏,或具有集成触摸传感器的触摸屏显示器,其用于在检测到触摸屏显示器上的触摸时接收输入并在其上显现图像作为输出。在一些实施例中,I/O设备208另外或替代地包括以下各者中的一个或多个:扬声器、麦克风、例如加速计和全球定位系统(globalpositioning system,GPS)接收器的传感器、小键盘、触控板等。在一些实施例中,I/O设备208包括用于将计算设备200连接到其它计算设备的端口。在一示例中,I/O设备208包括用于将计算设备200连接到外围装置或连接到主机计算设备的通用串行总线(universalserial bus,USB)控制器。
网络接口210能够将计算设备200连接到一个或多个通信网络。在一些实施例中,网络接口210包括用于将计算设备200无线地连接到无线通信网络的一个或多个无线电,例如WiFi或蜂窝(例如,GPRS、GSM、EDGE、CDMA、LTE等)。
计算设备200在包括操作系统(OS)216的软件程序的控制下进行操作。软件程序的计算机可读指令存储在存储装置206或安全存储装置214中,并由存储器204或安全存储器212中的处理器202执行。
计算设备200包括或用于提供如图2B中所展示的多个不同执行环境。不同执行环境可以被提供对不同存储和处理资源的访问。可以使用软件或硬件来强制隔离这些环境。在一些实施例中,环境中的一个可以被称作可信执行环境(TEE)且可能能够访问隔离的且安全的存储和处理资源。在一些实施例中,环境中的一个可以被称作富执行环境(REE),其包括面向用户的OS。与REE相比,TEE更安全。REE和TEE可以彼此通信。
分配到TEE的资源可以包括单独的处理器(例如,多核处理器中的单个核可以分配到TEE)和隔离的存储装置(除了与隔离的核相关联的寄存器之外,不同的存储器地址范围也可以专用于分配到TEE的此类处理器或协处理器的使用)。此TEE环境可以支持不同的操作系统,或其可以是可访问由整个系统的基础操作系统(例如,OS 216)分配以使用它的应用程序的一组安全资源。在一些实施例中,可以存在例如一般存储资源(例如,存储装置206)内的安全存储装置214的专用安全存储资源,以及例如所述一般存储资源(例如,存储器204)内的安全存储器212的专用安全存储器。对于本领域的技术人员,在一些实施例中,这些安全资源可以是物理上和逻辑上不同于相同类型的一般资源中的至少一者。如上所述,在多核处理器中,核中的一个或多个可以专用于一个或多个TEE。在其它实施例中,处理器202外部的协处理器可以提供用于TEE的安全处理资源。
图2B展示计算设备200的可信执行环境TEE 252和REE 254的实施例。在实施例中,REE 252包括面向用户的操作系统。尽管TEE 254能够完全访问处理器202和存储器204,但TEE 254是与计算设备200的其它组件隔离的硬件,其保护所述TEE 254免于由在计算设备200的主操作系统中运行的用户安装的应用程序访问。TEE 254可以被视为具有来自REE252的输入和到REE 252的输出的黑箱。TEE 254具有以下属性:1)没人能从外部(例如,REE252)看到TEE 254内部的数据和代码;以及2)没人能从外部(例如,REE 252)改变TEE 254内部的数据和代码。这两个属性是硬件保证的,这意味着,只有当攻击者可以破坏硬件时,攻击者才可以破坏TEE 254并访问TEE 254内部的数据和代码。TEE 254的示例包括Trust和SGX。
图3展示根据一些实施例的用于使用密文校验明文的属性的方法300的流程图。方法300可以由例如图2A中的计算设备200的计算设备的硬件实行或执行。方法300还可以由计算设备的一个或多个处理器执行的例程、子例程或软件模块实行或执行。方法300可以进一步由硬件和软件的组合实行或执行。用于实行或执行方法300的软件的编码完全在对本公开而言的本领域普通技术人员的范围内。方法300可以包括与所展示和描述的那些操作相比更多或更少的操作,并且所述方法可以不同次序实行或执行。可由计算设备的一个或多个处理器执行的软件的计算机可读代码或指令可以存储在例如计算设备的存储器的非暂时性计算机可读介质上。
方法300中的操作的一部分可以由例如图2A中的TEE 254的计算设备的TEE执行。对应于由TEE执行的操作的部分的指令可能仅存储在计算机可读介质的安全存储装置中,例如图2中的计算设备的安全存储装置214。在如此操作时,除了TEE之外,计算设备内部的其它组件或任何其它外部设备都不能执行对应于由方法300中的TEE执行的操作的部分的指令。此外,如下文中详细所解释,由TEE生成的一些数据可能仅存储在计算机可读介质的安全存储装置中,所述安全存储装置仅可由TEE访问。
在操作302处开始方法300,其中计算设备的TEE(例如,TEE 254)可以接收密文。加密密钥对的公共加密密钥可以用于对明文进行加密以生成密文。加密密钥对可以包括公共加密密钥和私有加密密钥。
在操作304处,TEE可以使用加密密钥对的私有加密密钥对密文进行解密以生成明文。在一个实施例中,计算设备的REE可以将加密密钥对提供给TEE。
在操作306处,TEE可以基于从密文解密的明文生成验证结果。验证结果可以校验明文的属性。在一些实施例中,明文可以是数值,并且验证结果可以校验数值在范围内的明文的属性。在其它实施例中,明文可以是字符串,并且验证结果可以校验明文字符串的属性,所述属性可以是字符串的长度。在另外其它实施例中,明文可以是哈希值,并且验证结果可以校验等于特定值的哈希值的明文的属性。
在操作308处,TEE可以通过使用签名密钥对的私有签名密钥对验证结果进行加密来生成数字签名的验证结果。签名密钥对可以包括公共签名密钥和私有签名密钥。在一个实施例中,TEE可以生成并存储签名密钥对。可以从计算设备的安全存储器(例如,安全存储器214)存储并检索签名密钥对的私有签名密钥。安全存储器可能仅可由TEE访问。
在操作310处,计算设备发送数字签名的验证结果。所发送的数字签名的验证结果可以使接收者能够通过使用签名密钥对的公共签名密钥校验数字签名的验证结果来确认明文的属性。在一个实施例中,计算设备可以将密文和数字签名的验证结果发送到接收者。
在一个实施例中,TEE可以获得加密密钥对并生成签名密钥对。TEE可以从注册服务器接收认证证书。认证证书可以校验由TEE执行以校验明文的属性的代码正确。
在一个实施例中,计算设备的REE将加密密钥对提供给TEE。TEE生成签名密钥对并将私有签名密钥存储在计算设备的安全存储器中。TEE可以将远程认证请求发送到注册服务器。TEE还可以在证书请求中将公共加密密钥和公共签名密钥发送到注册服务器。TEE可以接收地址证明请求并基于私有加密密钥和地址证明请求将地址证明响应发送给注册服务器。TEE可以接收由注册服务器内的安全元件生成的认证证书。安全元件可以包括无法从所述安全元件外部读取的密钥。认证证书可以校验由TEE执行以校验明文的属性的代码正确。认证证书可以包括公共签名密钥。
在一个实施例中,加密密钥对可以包括Paillier密钥对。签名密钥对可以包括通用关键字密码(RSA)密钥对或椭圆曲线数字签名算法(ECDSA)密钥对中的一者。
在一个实施例中,密文可以包括使用区块链的对等网络上的加密货币交易的加密交易值。明文的属性可以是交易值的范围。所接收的密文可以使用加性同态加密算法进行加密。
在一个实施例中,密文可以是加密字符串,并且明文的属性可以是明文的字符串长度。在另一实施例中,密文可以是明文的哈希值,并且明文的属性可以是等于特定值的哈希值。
图4是根据本公开的示出使用密文校验明文的属性的系统400的实施例的框图。系统400包括与用户艾丽斯404和鲍勃408、校验器412、审计器414以及注册服务器402相关联的计算设备。系统400类似于图1中所描绘的系统100,只是系统400还包括注册服务器402除外。与用户艾丽斯404和鲍勃408相关联的计算设备各自包括相应TEE 406、410。所公开的使用密文校验明文的属性可以分成三个步骤。第一步骤是初始化注册服务器402并向所述注册服务器提供用于对证书进行签名的密钥。此过程仅在建立用于管理区块链的分散式网络时发生一次。第二步骤是注册对等体。注册服务器402向新添加的对等体(例如,艾丽斯404或鲍勃406)颁发证书。此过程仅在对等体首次加入网络时对每一对等体发生一次。第三步骤是广播交易。对等计算设备(例如,艾丽斯404或鲍勃406)生成一个交易,并将所述交易以及在对等体的TEE(例如,TEE 406或TEE 410)内部生成的证明广播到分散式网络的其它对等计算设备(例如,艾丽斯404或鲍勃406)。下文更详细地描述这三个步骤中的每一个。
图5是用于注册服务器初始化的方法500的实施例的图解。在实施例中,注册服务器501包括非安全元件(non-secure element,NSE)注册服务器部分502(例如,REE)和安全元件504。在实施例中,安全元件504是安全硬件。可以仅在安全元件504内部使用安全元件504中的密钥。无法从安全元件504中读出密钥。NSE注册服务器502向安全元件504发起紧急呼叫(ECall)S406以生成例如通用关键字密码(RSA)密钥对的公共-私有密钥对。安全元件504在安全元件504内部生成RSA密钥对(即,私钥skRS和公钥pkRS),并向其自身颁发自签名证书certRS。私钥skRS将用于向新对等体颁发证书,并且自签名证书certRS将是根证书。自签名证书certRS由安全元件504内部的密钥ssRS=(certRS、标签)进行完整性保护。标签是保护certRS的完整性的数据段。对certRS的任何改变都可以通过校验标签来检测。保护自签名证书的完整性的密钥certRS可以是非对称密钥,也可以是对称密钥。自签名证书certRS由密钥进行完整性保护的一个原因是,自签名的签名certRS不能保护证书的完整性。安全元件504将完整性保护的自签名数字证书ssRS返回S508到存储ssRS的NSE注册服务器502。
图6A和图6B展示用于在分散式网络中注册新对等计算设备的方法600的实施例的图解。方法600包括远程认证。远程认证是可以用来校验在新对等体的计算设备的远端上的TEE中运行的代码是否为正确代码的方法。这是运行TEE的代码的认证过程。方法600包括在新对等体的计算设备602与注册服务器608之间交换消息。对等计算设备602(在下文中被称作对等体602)包括如上文所描述的REE 604和TEE 606。注册服务器608包括NSE注册服务器610和安全元件612。
在步骤S616处开始方法600,其中REE 604向TEE 606注册对等体602的公钥pkA和私钥skA。TEE 606生成密钥对(pkEnclaveA、skEnclaveA)和证书签名请求。私钥skEnclaveA将永不离开TEE。此密钥对(pkEnclaveA、skEnclaveA)的目的是在TEE内部校验交易之后对证明进行签名。在步骤S618处,TEE 606将远程认证请求发送到NSE注册服务器610。在步骤S620处,NSE注册服务器610将远程认证请求(对应于从对等体602接收的请求)发送到对等体602的处理器的制造商614,所述制造者可以是但不限于例如IntelTM。制造商614执行远程认证。TEE 606收集证据(技术上被称为报价)并将其发送到处理器614的制造商(在下文中被称为制造商614)。通过校验报价,制造商614证明TEE 606实际上是一个正确的TEE 606。英特尔614将认证报告返回到注册服务器610。报价含有公钥的信息,并且所述信息将最终进入由制造商614返回的报告中。通过校验制造商的报告,注册服务器610知道其与正确的TEE 606通信,并且由TEE 606生成并保护对应于公钥的私钥。在步骤S622处,制造商614将远程认证成功消息发送到注册服务器610。在步骤S624处,在NSE注册服务器610与TEE 606之间建立安全信道。在步骤S626处,出于完整性保护的目的,TEE 606通过安全信道将包括两个公钥pkA和pkEnclaveA的证书请求发送到NSE注册服务器610。响应于证书请求,NSE注册服务器610生成会话ID id和随机数r。在步骤S628处,NSE注册服务器610向TEE 606发送包括会话ID id和随机数r的地址证明请求。响应于地址证明请求,NSE注册服务器610使用A的私钥skA以及id和r生成地址证明响应s,其中是用于生成数字签名的算法。在步骤S630处,TEE 606将地址证明响应s发送到NSE注册服务器610。响应于接收到地址证明响应s,NSE注册服务器610通过校验Hash(pkA)处于证书签名请求(csr)中而使用pkA校验s。如果实体希望从CA申请证书,则所述实体会生成csr并将其发送给所述CA。CA校验csr中的信息并基于所述csr生成证书。在步骤S632处,NSE注册服务器610将得到响应消息发送到安全元件612。得到响应消息包括certRS、标签和csr。安全元件612校验certRS和标签。安全元件612还使用注册服务器的私钥skRS对证书certEnclaveA进行签名。在步骤S634处,安全元件612将签名的证书certEnclaveA和certRS返回到TEE 606。在步骤S636处,关闭安全信道。TEE606校验certEnclaveA并密封certRS、skRS和skEnclaveA。TEE 606根据ssA=Seal(certRS,skA,skEnclaveA)确定ssA。在步骤S638处,TEE 606将certEnclaveA和ssA返回到REE 604。REE 604存储certEnclaveA和ssA。
图7A和图7B展示根据本公开的用于使用密文验证明文的属性的方法700的实施例的图解,其中明文是加密货币交易值并且要校验的属性是加密货币交易值在给定范围内。方法700描述在计算设备702(在下文中被称作设备702)的REE 704与TEE 706之间的消息流程以及在设备702与印记签署器708之间的消息流程。印记签署器708可与与设备702相同或不同的计算设备相关联。在所描绘的示例中,交易包括将从计算设备702传输到另一计算设备的交易值。然而,所公开的方法700可以应用于其它类型的交易且不限于加密货币交易。在此示例中,密文是使用加密密钥对的私有加密密钥skA进行解密的加密交易值。私有加密密钥skA存储在仅可由TEE 706访问的计算设备702的安全存储器中。由于解密发生在TEE706中,故私有加密密钥或明文不可由REE 706或任何其它第三方访问。验证结果由签名密钥对的私有签名密钥进行数字签名,所述私有签名密钥存储在计算设备702的安全存储器中且仅可由TEE 706访问。因此,校验器可以简单地使用签名密钥对的签名公钥来校验数字签名,以确认验证结果,且因此确认交易值的属性(例如,交易值在特定范围内)。
方法700始于设备702(例如,转账方)的REE 704获得加密的账户余额βA。由表达式给出加密的余额βA,其中b0是实际余额并且E是加性同态加密。在步骤S712处,REE 704向TEE 706发送呼叫以确认实际余额b0大于要转账的金额t。TEE 706加载ssA并对ssA进行解封以得到skA和skEnclaveA。TEE 706对βA进行解密,b0=DskA,其中D是校验t≥0和b0≥t的解密。在一方面,TEE 706计算b1=b0–t。在步骤S714处,TEE 706将β′A、β″A、τ、τ′和SEnclaveA返回到REE 704。β′A是由A的公共加密密钥加密的A 702的新账户余额。β″A是由审计器的公共加密密钥加密的A 702的新余额。τ是由B的公共加密密钥加密的交易金额。τ′是由审计器的公共加密密钥加密的交易金额。SEnclaveA是使用签名密钥对的签名私钥的消息的签名。REE704生成交易链式码T,其中T=(从、TOo、β′A、β″A、τ、τ′、SEnclaveA)。REE 704然后在T上签名。在步骤S716,REE 704将T、sA、pkA和certEnclaveA广播到印记签署器REE 708。印记签署器REE 704校验EnclaveA,校验sA,校验sEnclaveA,并校验βA确实是区块链上的值。印记签署器REE 708校验sA以确保此交易由A发送。印记签署器REE 708校验certEnclaveA以确保证书中的公共签名密钥属于包体A。印记签署器REE 708校验以确保在TEE706中生成可信的交易。一旦印记签署器708进行这些校验,所述印记签署器就可以信任证书中的数据。然后,印记签署器REE 708将β′A和τ追加到区块链。由TEE 706接收的加密密钥对的私钥skA对加密的账户余额进行解密。由于解密发生在TEE 706中,故私钥或明文不可由外部恶意第三方访问。由TEE706中的签名密钥对的签名私钥对验证结果进行签名。签名私钥从未暴露于外部。因此,校验器可以简单地校验签名以确认交易的验证。
应了解,本文所提供的实施例方法的一个或多个步骤可以由对应单元或模块执行。例如,信号可以由发送单元或发送模块发送。信号可以由接收单元或接收模块接收。信号可以由处理单元或处理模块处理。其它步骤可以由其它单元或模块执行。相应单元/模块可以是硬件、软件或其组合。例如,单元/模块中的一个或多个单元/模块可以是集成电路,例如现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(application-specific integrated circuit,ASIC)。应了解,在模块是软件的情况下,它们可以根据需要在单个或多个实例中由处理器按需整体或部分地单独或一起检索以供处理,并且所述模块自身可以包括用于进一步部署和实例化的指令。
所公开的方法和系统提供使用密文来校验明文的属性的通用技术,所述属性是例如数值在范围内、字符串长度,以及等于特定值的哈希值。这些所描述的明文属性示例用于说明的目的。本公开中所描述的通用技术适用于使用密文校验明文的任何其它类型的属性。
虽然已参考说明性实施例描述了本发明,但此描述并不意图以限制性意义来理解。本领域的技术人员在参考所述描述后,将会明白说明性实施例的各种修改和组合以及本发明其它实施例。因此,所附权利要求书意图涵盖任何此类修改或实施例。
Claims (19)
1.一种用于使用密文校验明文的属性的方法,其特征在于,所述方法包括:
计算设备的可信执行环境TEE接收所述密文;
所述TEE使用加密密钥对的私有加密密钥对所述密文进行解密以生成所述明文,所述加密密钥对包括公共加密密钥和所述私有加密密钥;
所述TEE生成校验所述明文的属性的验证结果;
所述TEE通过使用签名密钥对的私有签名密钥对所述验证结果进行加密来生成数字签名的验证结果,所述签名密钥对包括公共签名密钥和所述私有签名密钥,所述私有签名密钥是从所述计算设备的安全存储器检索到的,所述安全存储器仅能够由所述TEE访问;
由所述计算设备发送所述数字签名的验证结果。
2.根据权利要求1所述的方法,其特征在于,所发送的数字签名的验证结果使接收者能够通过使用所述公共签名密钥校验所述数字签名的验证结果来确认所述明文的所述属性。
3.根据权利要求2所述的方法,其特征在于,所述发送包括:
所述计算设备将所述密文和所述数字签名的验证结果发送给所述接收者。
4.根据权利要求1至3任一项所述的方法,其特征在于,进一步包括:
所述TEE获得所述加密密钥对;
所述TEE生成所述签名密钥对;
所述TEE从注册服务器接收认证证书,所述认证证书校验由所述TEE执行以校验所述明文的所述属性的代码正确。
5.根据权利要求1至3任一项所述的方法,其特征在于,进一步包括:
所述计算设备的富执行环境REE将所述加密密钥对提供给所述TEE;
所述TEE生成所述签名密钥对并将所述私有签名密钥存储在所述计算设备的所述安全存储器中;
所述TEE将远程认证请求发送给注册服务器;
所述TEE经由所述TEE与所述注册服务器之间建立的安全信道在证书请求中发送所述公共加密密钥和所述公共签名密钥;
所述TEE从所述注册服务器接收地址证明请求;
所述TEE基于所述私有加密密钥和所述地址证明请求将地址证明响应发送给所述注册服务器;
所述TEE接收所述注册服务器内的安全元件生成的认证证书,所述安全元件包括无法从所述安全元件外部读取的密钥,其中,所述认证证书校验由所述TEE执行以校验所述明文的所述属性的代码正确,所述认证证书包括所述公共签名密钥。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述加密密钥对包括Paillier密钥对,其中,所述签名密钥对包括通用关键字密码密钥对或椭圆曲线数字签名算法(ECDSA)密钥对中的一者。
7.根据权利要求1至3任一项所述的方法,其特征在于,所述密文包括使用区块链的对等网络上的加密货币交易的加密交易值,其中,所述明文的所述属性是所述交易值的范围。
8.根据权利要求1至3任一项所述的方法,其特征在于,所接收的密文是使用加性同态加密算法进行加密的。
9.根据权利要求1至3任一项所述的方法,其特征在于,所述密文是加密字符串,其中,所述明文的所述属性是所述明文的字符串长度。
10.一种用于使用密文校验明文的属性的计算设备,其特征在于,所述计算设备包括:
用于存储指令的存储器存储装置,所述存储器存储装置包括安全存储器和非安全存储器;
与所述存储器存储装置通信的一个或多个处理器,其中,所述一个或多个处理器执行所述指令以进行以下操作:
所述计算设备的可信执行环境TEE接收所述密文;
所述TEE使用加密密钥对的私有加密密钥对所述密文进行解密以生成所述明文,所述加密密钥对包括公共加密密钥和所述私有加密密钥;
所述TEE生成校验所述明文的属性的验证结果;
所述TEE通过使用签名密钥对的私有签名密钥对所述验证结果进行加密来生成数字签名的验证结果,所述签名密钥对包括公共签名密钥和所述私有签名密钥,所述私有签名密钥是从所述计算设备的所述安全存储器检索到的,所述安全存储器仅能够由所述TEE访问;
由所述计算设备发送所述数字签名的验证结果。
11.根据权利要求10所述的计算设备,其特征在于,所发送的数字签名的验证结果使接收者能够通过使用所述公共签名密钥校验所述数字签名的验证结果来确认所述明文的所述属性。
12.根据权利要求11所述的计算设备,其特征在于,所述发送包括:
所述计算设备将所述密文和所述数字签名的验证结果发送给所述接收者。
13.根据权利要求10至12任一项所述的计算设备,其特征在于,所述一个或多个处理器进一步执行所述指令以进行以下操作:
所述TEE获得所述加密密钥对;
所述TEE生成所述签名密钥对;
所述TEE从注册服务器接收认证证书,所述认证证书校验由所述TEE执行以校验所述明文的所述属性的代码正确。
14.根据权利要求10至12任一项所述的计算设备,其特征在于,所述一个或多个处理器进一步执行所述指令以进行以下操作:
所述计算设备的富执行环境REE将所述加密密钥对提供给所述TEE;
所述TEE生成所述签名密钥对并将所述私有签名密钥存储在所述计算设备的所述安全存储器中;
所述TEE将远程认证请求发送给注册服务器;
所述TEE经由在所述TEE与所述注册服务器之间建立的安全信道在证书请求中发送所述公共加密密钥和所述公共签名密钥;
所述TEE从所述注册服务器接收地址证明请求;
所述TEE基于所述私有加密密钥和所述地址证明请求将地址证明响应发送给所述注册服务器;
所述TEE接收所述注册服务器内的安全元件生成的认证证书,所述安全元件包括无法从所述安全元件外部读取的密钥,其中,所述认证证书校验由所述TEE执行以校验所述明文的所述属性的代码正确,所述认证证书包括所述公共签名密钥。
15.根据权利要求10至12任一项所述的计算设备,其特征在于,所述加密密钥对包括Paillier密钥对,其中,所述签名密钥对包括通用关键字密码密钥对或椭圆曲线数字签名算法(ECDSA)密钥对中的一者。
16.根据权利要求10至12任一项所述的计算设备,其特征在于,所述密文包括使用区块链的对等网络上的加密货币交易的加密交易值,其中,所述明文的所述属性是所述交易值的范围。
17.根据权利要求10至12任一项所述的计算设备,其特征在于,所接收的密文是使用加性同态加密算法进行加密的。
18.根据权利要求10至12任一项所述的计算设备,其特征在于,所述密文是加密字符串,并且其中所述明文的所述属性是所述明文的字符串长度。
19.一种计算机可读存储介质,其特征在于,包括存储在其上的指令,所述指令在由计算设备的一个或多个处理器执行时促使所述计算设备执行根据权利要求1至9任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/037,789 US11223485B2 (en) | 2018-07-17 | 2018-07-17 | Verifiable encryption based on trusted execution environment |
US16/037,789 | 2018-07-17 | ||
PCT/CN2019/094495 WO2020015525A1 (en) | 2018-07-17 | 2019-07-03 | Verifiable encryption based on trusted execution environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112438034A CN112438034A (zh) | 2021-03-02 |
CN112438034B true CN112438034B (zh) | 2022-08-19 |
Family
ID=69162122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980047829.8A Active CN112438034B (zh) | 2018-07-17 | 2019-07-03 | 基于可信执行环境的可校验加密 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11223485B2 (zh) |
EP (1) | EP3741080B1 (zh) |
CN (1) | CN112438034B (zh) |
WO (1) | WO2020015525A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783114B (zh) * | 2018-08-06 | 2024-04-02 | 创新先进技术有限公司 | 区块链交易方法及装置、电子设备 |
CN112651740A (zh) | 2018-08-30 | 2021-04-13 | 创新先进技术有限公司 | 区块链交易方法及装置、电子设备 |
CN111899001A (zh) * | 2018-08-30 | 2020-11-06 | 创新先进技术有限公司 | 基于区块链的汇款方法及装置 |
CN111833186A (zh) | 2018-09-20 | 2020-10-27 | 创新先进技术有限公司 | 基于区块链的交易方法、装置和节点设备 |
US20200106623A1 (en) * | 2018-09-28 | 2020-04-02 | NEC Laboratories Europe GmbH | Method and system for a trusted execution environment-based proof of stake protocol |
CN111833057A (zh) | 2018-09-30 | 2020-10-27 | 创新先进技术有限公司 | 基于区块链的交易方法、装置和节点设备 |
CN109903027A (zh) * | 2018-12-14 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 基于区块链的事件处理方法及装置、电子设备 |
CN109903026A (zh) | 2018-12-14 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 基于区块链的事件处理方法及装置、电子设备 |
CN110612547A (zh) * | 2018-12-29 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种用于信息保护的系统和方法 |
US10783277B2 (en) * | 2019-05-31 | 2020-09-22 | Alibaba Group Holding Limited | Blockchain-type data storage |
EP4058910A1 (en) * | 2020-01-29 | 2022-09-21 | Huawei Technologies Co., Ltd. | Apparatus and method for protecting shared objects |
WO2020098833A2 (en) | 2020-02-03 | 2020-05-22 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain-based trustable gurantees |
US11121864B1 (en) * | 2020-03-13 | 2021-09-14 | International Business Machines Corporation | Secure private key distribution between endpoint instances |
US11816212B2 (en) * | 2020-04-15 | 2023-11-14 | Inferati Inc. | Large scale zero trust malware detection |
US11971980B2 (en) * | 2020-05-28 | 2024-04-30 | Red Hat, Inc. | Using trusted execution environments to perform a communal operation for mutually-untrusted devices |
US11947659B2 (en) | 2020-05-28 | 2024-04-02 | Red Hat, Inc. | Data distribution across multiple devices using a trusted execution environment in a mobile device |
KR20220005705A (ko) | 2020-07-07 | 2022-01-14 | 삼성전자주식회사 | 동형 암호를 이용하는 전자 장치 및 그것의 암호화 데이터 처리 방법 |
CN111541785B (zh) * | 2020-07-08 | 2021-05-04 | 支付宝(杭州)信息技术有限公司 | 基于云计算的区块链数据处理方法及装置 |
CN111885056A (zh) * | 2020-07-22 | 2020-11-03 | 北京金山云网络技术有限公司 | 基于区块链的零知识证明方法、装置及电子设备 |
US11848924B2 (en) | 2020-10-12 | 2023-12-19 | Red Hat, Inc. | Multi-factor system-to-system authentication using secure execution environments |
CN113014539B (zh) * | 2020-11-23 | 2022-05-17 | 杭州安芯物联网安全技术有限公司 | 一种物联网设备安全保护系统及方法 |
US11475140B1 (en) * | 2020-11-24 | 2022-10-18 | Amazon Technologies, Inc. | Enclave-based cryptography services in edge computing environments |
US20220198064A1 (en) * | 2020-12-22 | 2022-06-23 | International Business Machines Corporation | Provisioning secure/encrypted virtual machines in a cloud infrastructure |
WO2022223520A1 (en) * | 2021-04-20 | 2022-10-27 | Freie Universität Berlin | Data management system implemented in a mobile device |
CN113315758B (zh) * | 2021-05-11 | 2022-09-13 | 支付宝(杭州)信息技术有限公司 | 信息代理方法和装置 |
CN113672955B (zh) * | 2021-08-19 | 2024-04-19 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、系统及装置 |
KR20230086409A (ko) * | 2021-12-08 | 2023-06-15 | 삼성전자주식회사 | 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법 |
CN114500054B (zh) * | 2022-01-27 | 2024-03-01 | 百度在线网络技术(北京)有限公司 | 服务访问方法、服务访问装置、电子设备以及存储介质 |
CN114936365B (zh) * | 2022-01-27 | 2023-03-24 | 华为技术有限公司 | 一种机密数据的保护系统、方法以及装置 |
CN114553603B (zh) * | 2022-04-25 | 2022-07-29 | 南湖实验室 | 一种基于隐私计算的新型数据可信解密的方法 |
CN116049839B (zh) * | 2022-05-20 | 2024-05-03 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
CN115277078A (zh) * | 2022-06-22 | 2022-11-01 | 抖音视界(北京)有限公司 | 用于处理基因数据的方法、装置、设备和介质 |
CN115065487B (zh) * | 2022-08-17 | 2022-12-09 | 北京锘崴信息科技有限公司 | 隐私保护云计算方法、保护金融隐私数据的云计算方法 |
CN115580413B (zh) * | 2022-12-07 | 2023-03-17 | 南湖实验室 | 一种零信任的多方数据融合计算方法和装置 |
CN115730338B (zh) * | 2023-01-09 | 2023-05-05 | 南湖实验室 | 基于隐私计算的零信任敏感大数据跨域分享方法和装置 |
CN117251878B (zh) * | 2023-09-20 | 2024-04-05 | 上海财安金融服务集团股份有限公司 | 基于区块链的催收数据隐私保护及可信存证方法 |
CN117332442B (zh) * | 2023-09-28 | 2024-05-17 | 浙江大学 | 一种安全可信的三方设备指纹认证方法 |
CN117640108A (zh) * | 2023-12-18 | 2024-03-01 | 北京数盾信息科技有限公司 | 一种基于零知识证明的区块认证方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2759955A1 (en) * | 2013-01-28 | 2014-07-30 | ST-Ericsson SA | Secure backup and restore of protected storage |
CN107005577A (zh) * | 2017-01-25 | 2017-08-01 | 深圳市汇顶科技股份有限公司 | 指纹数据的处理方法及处理装置 |
WO2018039099A1 (en) * | 2016-08-22 | 2018-03-01 | Mastercard International Incorporated | Method and system for secure fido development kit with embedded hardware and for secure device based biometric authentication scheme |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108678B1 (en) * | 2003-02-10 | 2012-01-31 | Voltage Security, Inc. | Identity-based signcryption system |
US7844614B2 (en) | 2007-04-30 | 2010-11-30 | Intel Corporation | Apparatus and method for enhanced revocation of direct proof and direct anonymous attestation |
WO2011091313A1 (en) * | 2010-01-22 | 2011-07-28 | Interdigital Patent Holdings, Inc. | Method and apparatus for trusted federated identity management and data access authorization |
KR101687275B1 (ko) * | 2013-03-14 | 2016-12-16 | 인텔 코포레이션 | 공개 클라우드에서의 신뢰 데이터 프로세싱 |
US20150304736A1 (en) | 2013-06-04 | 2015-10-22 | Reshma Lal | Technologies for hardening the security of digital information on client platforms |
US9819661B2 (en) * | 2013-09-12 | 2017-11-14 | The Boeing Company | Method of authorizing an operation to be performed on a targeted computing device |
CN105227537A (zh) * | 2014-06-16 | 2016-01-06 | 华为技术有限公司 | 用户身份认证方法、终端和服务端 |
US11533297B2 (en) * | 2014-10-24 | 2022-12-20 | Netflix, Inc. | Secure communication channel with token renewal mechanism |
US10484182B2 (en) * | 2014-11-05 | 2019-11-19 | Nec Corporation | Encrypted text verification system, method, and recording medium |
US10193700B2 (en) * | 2015-02-27 | 2019-01-29 | Samsung Electronics Co., Ltd. | Trust-zone-based end-to-end security |
US9722775B2 (en) * | 2015-02-27 | 2017-08-01 | Verizon Patent And Licensing Inc. | Network services via trusted execution environment |
CN104778794B (zh) * | 2015-04-24 | 2017-06-20 | 华为技术有限公司 | 移动支付装置和方法 |
WO2016200885A1 (en) * | 2015-06-08 | 2016-12-15 | Blockstream Corporation | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction |
US10248791B2 (en) | 2015-07-20 | 2019-04-02 | Intel Corporation | Technologies for secure hardware and software attestation for trusted I/O |
EP3324572B1 (en) * | 2015-08-28 | 2021-05-12 | Huawei Technologies Co., Ltd. | Information transmission method and mobile device |
CN107733636B (zh) * | 2016-08-11 | 2021-03-02 | 中国电信股份有限公司 | 认证方法以及认证系统 |
EP3281115B1 (en) | 2016-10-04 | 2019-06-19 | Nec Corporation | Method and system for byzantine fault-tolerance replicating of data on a plurality of servers |
US10742413B2 (en) * | 2017-04-25 | 2020-08-11 | International Business Machines Corporation | Flexible verifiable encryption from lattices |
US10686588B2 (en) * | 2017-08-31 | 2020-06-16 | Micro Focus Llc | Tweak-based string encryption |
CN108055132B (zh) * | 2017-11-16 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种业务授权的方法、装置及设备 |
US10797856B2 (en) * | 2018-04-18 | 2020-10-06 | Fujitsu Limited | Outsourcing processing operations with homomorphic encryption |
US10873447B2 (en) * | 2018-05-24 | 2020-12-22 | Visa International Service Association | Efficient concurrent scalar product calculation |
-
2018
- 2018-07-17 US US16/037,789 patent/US11223485B2/en active Active
-
2019
- 2019-07-03 EP EP19838862.1A patent/EP3741080B1/en active Active
- 2019-07-03 CN CN201980047829.8A patent/CN112438034B/zh active Active
- 2019-07-03 WO PCT/CN2019/094495 patent/WO2020015525A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2759955A1 (en) * | 2013-01-28 | 2014-07-30 | ST-Ericsson SA | Secure backup and restore of protected storage |
WO2018039099A1 (en) * | 2016-08-22 | 2018-03-01 | Mastercard International Incorporated | Method and system for secure fido development kit with embedded hardware and for secure device based biometric authentication scheme |
CN107005577A (zh) * | 2017-01-25 | 2017-08-01 | 深圳市汇顶科技股份有限公司 | 指纹数据的处理方法及处理装置 |
Also Published As
Publication number | Publication date |
---|---|
US11223485B2 (en) | 2022-01-11 |
CN112438034A (zh) | 2021-03-02 |
WO2020015525A1 (en) | 2020-01-23 |
EP3741080A1 (en) | 2020-11-25 |
EP3741080A4 (en) | 2020-12-30 |
US20200028693A1 (en) | 2020-01-23 |
EP3741080B1 (en) | 2022-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112438034B (zh) | 基于可信执行环境的可校验加密 | |
JP7416775B2 (ja) | 周辺デバイス | |
CN111082934B (zh) | 基于可信执行环境的跨域安全多方计算的方法及装置 | |
CN109074466B (zh) | 用于服务器的平台证明和注册 | |
CN109074449B (zh) | 在安全飞地中灵活地供应证明密钥 | |
US10116645B1 (en) | Controlling use of encryption keys | |
US11244054B2 (en) | Method and apparatus for trusted computing | |
US9589159B2 (en) | Creating secure communication channels between processing elements | |
US11251942B2 (en) | Secure communication channel between encryption/decryption component and trusted execution environment | |
TW201814578A (zh) | 資料安全保障系統及方法、裝置 | |
JP2017517979A (ja) | 署名生成および暗号化/暗号解読のための共通法rsa鍵対 | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
US10003467B1 (en) | Controlling digital certificate use | |
CN114586313A (zh) | 用于签署一信息的系统及方法 | |
US20230379152A1 (en) | Binding with cryptographic key attestation | |
US20100161956A1 (en) | Method and Apparatus for Protected Code Execution on Clients | |
US20230075275A1 (en) | Secure pairing and pairing lock for accessory devices | |
JP6939313B2 (ja) | 分散認証システム | |
KR20100138684A (ko) | 인터넷 기반 컴퓨팅 환경에서 통신 플랫폼 무결성 검증 및 암호 키 설정 방법 | |
CN118199884A (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 |