CN117321961A - 使用飞地保护秘密处理、秘密输入数据和秘密输出数据 - Google Patents
使用飞地保护秘密处理、秘密输入数据和秘密输出数据 Download PDFInfo
- Publication number
- CN117321961A CN117321961A CN202180097936.9A CN202180097936A CN117321961A CN 117321961 A CN117321961 A CN 117321961A CN 202180097936 A CN202180097936 A CN 202180097936A CN 117321961 A CN117321961 A CN 117321961A
- Authority
- CN
- China
- Prior art keywords
- enclave
- signed
- encrypted
- manager
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 87
- 230000008569 process Effects 0.000 claims abstract description 64
- 230000002085 persistent effect Effects 0.000 claims description 46
- 238000012549 training Methods 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 14
- 238000010801 machine learning Methods 0.000 claims description 10
- 238000013515 script Methods 0.000 claims description 6
- 238000013473 artificial intelligence Methods 0.000 claims description 5
- 238000013136 deep learning model Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000004146 energy storage Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 201000007023 Thrombotic Thrombocytopenic Purpura Diseases 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000012795 verification Methods 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/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/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/083—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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/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/0822—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 key encryption key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种通过以下操作保护秘密输入数据、秘密处理、以及秘密输出数据的装置和方法:从秘密处理所有者接收已签名的私有飞地;从受信任第三方(TTP)接收已签名的管理器飞地;部署已签名的管理器飞地;从秘密处理所有者接收用已签名管理器飞地的加密公钥加密的受保护代码加载器(PCL)密钥;部署已签名的私有飞地;用秘密输入数据在已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及使用临时密钥对已签名的私有飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的私有飞地中的临时密钥进行加密,以及将加密的秘密输出数据和加密的临时密钥发送到已签名的管理器飞地。
Description
技术领域
实施例总体上涉及计算机安全,并且更具体地,涉及在计算系统中使用飞地来保护秘密处理、秘密输入数据和秘密输出数据。
背景技术
一些具有嵌入其中的算法的模型在训练阶段期间使用训练数据进行训练以导出模型参数。这些模型及其算法通常包括机器学习模型、深度学习模型、人工智能模型和其他算法,其中由训练参数表征的模型在训练数据集上进行训练以确定模型参数,并且稍后(例如,针对推断任务)由终端用户使用另一数据集将模型参数应用于模型。有时,一个实体(有时称为算法所有者)开发模型中具体化的秘密算法,而另一实体(称为数据所有者)提供用于训练模型的秘密训练数据集。一旦模型被训练,用户就可以在部署阶段期间使用该模型来使用用户的数据执行数据处理。算法所有者可能希望保护算法过程的细节不被暴露给数据所有者和/或用户。数据所有者可能希望保护模型训练期间使用的秘密训练数据免受算法所有者和/或用户的影响。现有的安全机制无法同时支持算法所有者和数据所有者的保护目标。现有方法可以保护模型,但假设模型是预先训练的,并且当训练数据秘密时,不能阻止在训练阶段期间发生信息泄漏。
附图说明
因此,为了可详细地理解上文陈述的当前实施例的特征的方式,可参照实施例进行对上文简要概述的实施例的更特定的描述,在所附附图中图示实施例中的一些。然而,应注意的是,所附附图仅图示典型实施例,并且因此不应视为限制实施例的范围。附图并未按比例绘制。一般来说,贯穿附图和所附书面描述,相同的附图标记将用于指代相同或类似的部分。
图1是根据一些实施例的初始化阶段期间的计算布置的图。
图2是根据一些实施例的部署阶段期间的计算布置的图。
图3A和图3B是根据一些实施例的安全处理的流程图。
图4是根据一些实施例的管理器飞地初始化处理的流程图。
图5是根据一些实施例的私有飞地初始化处理的流程图。
图6是根据一些实施例的部署阶段期间的安全处理的流程图。
图7是根据一些实施例的用于安全处理的说明性电子计算设备的示意图。
具体实施方式
本文描述的技术的实现提供了一种方法和系统,当秘密处理由秘密处理所有者控制时,该方法和系统保护秘密处理和由秘密处理用来生成秘密输出数据的秘密输入数据,秘密输入数据由数据所有者控制,并且秘密输出数据由数据所有者和受信任第三方信任的代理(本文中实现为管理器飞地)加密。然后,用户以隔离的方式使用加密的秘密输出数据。
在实施例中,秘密处理包括机器学习(machine learning,ML)模型、深度学习(deep learning,DL)模型或人工智能(artificial intelligence,AI)过程,秘密输入数据包括用于训练ML模型、DL模型或AI过程的一个或多个数据集,并且秘密输出数据包括与秘密处理相关联的参数。在其他实施例中,秘密处理可包括处理所有者期望对数据所有者或用户保密的任何数据处理,秘密输出数据可包括通过执行秘密处理生成的任何数据,并且秘密输入数据可包括由数据所有者期望对秘密处理所有者和用户保密的秘密处理所使用的任何数据。
在实施例中,秘密输入数据处于数据所有者的控制之下,而不是秘密处理所有者的控制之下。附加地,秘密输入数据由数据所有者加密,而秘密处理所有者只能在数据所有者或TTP授权的安全环境中通过秘密处理来处理秘密输入数据。秘密处理所有者被阻止访问明文形式的秘密输入数据。同时,数据所有者和TTP都无法访问秘密处理中具体化的处理细节(例如,算法)。只有秘密处理所有者才能访问秘密处理的处理细节。任何其他用户无法访问秘密输入数据,或者秘密处理和秘密输出数据的细节(例如,模型参数)。
实施例提供了对秘密输入数据的信息泄露的威慑以及对秘密处理和秘密输出数据的保护。在实施例中,计算布置包括三个安全飞地和TTP。这三个安全飞地包括管理器飞地(manager enclave,ME)、私有飞地(private enclave,PE)和公共飞地(public enclave,PUE)。TTP管理飞地、秘密处理所有者、数据所有者和用户的密码学密钥和权限信息。
在实施例中,安全飞地(本文中也称为飞地)可以在使用可从英特尔公司获得的软件防护扩展(software guard extension,SGX)的计算系统中实现。SGX技术可由寻求保护所选代码(诸如代码中具体化的算法)和/或数据(诸如秘密输入数据和/或秘密输出数据)免遭公开或修改的应用开发人员使用。SGX允许用户级代码分配称为飞地的私有存储器区域,私有存储器区域被设计为被保护免受以更高特权级别运行的过程的影响。通过使用一个或多个基于SGX的硬件受信任执行环境(trusted execution environment,TEE),可以保护秘密处理过程细节,同时也保护秘密输入数据。这扩展了SGX的可能用例,并为多方计算(multi-party computation,MPC)和同态加密(homomorphic encryption,HE)场景提供替代解决方案。
图1是根据一些实施例的初始化阶段101期间的计算布置100的图。图2是根据一些实施例的部署阶段201期间的计算布置的图。
在秘密处理(诸如ML模型训练、DL模型训练和/或AI过程)中实现的过程通常可以分为两个阶段:初始化阶段101和部署阶段201。初始化阶段101应该保密,而部署阶段201可由公众使用。这种情况的一个示例是AI过程或模型中的神经网络算法,其中网络的拓扑结构(例如,模型)可由公众免费获得,而网络内的边缘的权重(例如,秘密输出数据)可被保密,因为神经网络算法通常需要大量的计算资源才能收敛。另一示例是一些决策树方法,其中由算法所有者开发了修剪方法,并且一旦决策树被构建,推断过程的实现就很简单。
在飞地初始化阶段期间,每个飞地还具有自动生成非对称密钥对的能力。私钥称为飞地签名密钥。公钥可用作表示特定飞地的飞地ID。飞地可以通过使用SGX密封数据功能维护其用于签名的签名密钥(私钥)(在一个实施例中),并将公钥发布给外部各方,包括用于标识特定飞地实例的TTP。
每个飞地可进一步生成用于加密目的的第二密钥对(称为加密公钥和加密私钥),以便其他飞地可使用该加密公钥执行加密。然后可以使用加密私钥在该特定飞地内对加密的数据进行解密。
因此,在本文描述的技术中,秘密处理110代码和所得秘密输出数据111被放置在私有飞地108中,其中可能需要访问敏感数据(例如,秘密输入数据112)来执行秘密处理。用户处理210部署被放置在公共飞地202中,其中允许对用户处理的源代码进行审计或审查。用户处理210可以仅在公共飞地202内读取秘密输出数据111。在实施例中,私有飞地108被放置在属于数据所有者114的数据所有者私有网络120内,以限制秘密处理110与外界之间的通信,而公共飞地202被公开部署以供用户208访问以进行用户处理210(例如,通过运行使用用户的数据和秘密输出数据111(例如诸如模型参数)的ML模型、DL模型或AI过程来推断处理)。
管理器飞地(manager enclave,ME)106用于表示受信任代理并在整个处理生命周期期间保护秘密输入数据112、秘密处理110和秘密输出数据111的隐私。秘密处理110和秘密输出数据111在从私有飞地108发出并由TTP 102存储(例如,在存储服务上)之前被加密,并且(用于加密秘密处理110和/或秘密输出数据111的)加密密钥由管理器飞地106处置。每次用户208想要通过将秘密输出数据111应用到公共飞地202内的用户处理210来使用该数据时,用户208和秘密输出数据都必须首先通过由管理器飞地106进行的验证。
私有飞地108被放置在外部世界(例如,公共飞地202的用户208或其他)不可访问的数据所有者私有网络120内,以防止私有飞地直接向秘密处理所有者118或其他泄漏敏感数据(例如,秘密输入数据112)。私有飞地108的通信通过管理器飞地服务107受到管理器飞地106的限制。因此,ME提供到数据所有者私有网络120的接口以接收来自私有飞地108的请求。附加地,向公共网络(诸如互联网)提供用户界面116,使得终端用户(例如,用户208)可以通过管理器飞地106将加密的秘密输出数据111加载到公共飞地202中。由于管理器飞地106和私有飞地108不能直接彼此通信,因此管理器飞地服务107提供这些飞地之间的接口。
受信任第三方(trusted third party,TTP)102通过TTP接口104与管理器飞地106进行通信。在密码学中,TTP是促进都信任第三方来执行某些服务的两方之间的交互的实体(诸如证书颁发机构(certificate authority,CA))。
在实施例中,TTP 102实现用于存储秘密处理110、秘密输出数据111和秘密输入数据112的注册部分(通常称为散列)的区块链。区块链是一种将信息按保存信息集的组(也称为块)收集在一起的数据库。块具有一定的存储容量,并且当被填充时,会链接到之前填充的区块上,从而形成称为“区块链”的数据链。新添加的块之后的所有新信息都被编译成新形成的块,一旦填充,该块随后也将被添加到链中。因此,区块链将数据构造成链接在一起的区块(块)。当以去中心化的性质实施时,区块链还固有地形成了不可逆转的数据时间线。当块被添加到区块链时,该区块就被固定并成为时间线的一部分。链中的每个块都会在该块被添加到链中时被给予确切的时间戳。
管理器飞地106在由数据所有者114操作的私有网络或私有计算环境内执行。该数据所有者私有网络120与其他计算机网络(诸如互联网或其他局域网(local areanetwork,LAN))隔离。数据所有者114将秘密输入数据112提供给在私有飞地108内操作的秘密处理110。私有飞地108还在数据所有者私有网络120内执行。秘密处理所有者118经由管理器飞地106和用户界面116与私有飞地108中的秘密处理110交互。
因此,在该安全计算布置中存在至少三个不同方:秘密处理所有者118(secretprocessing owner,SPO)、数据所有者114(data owner,DO)和TTP 102。通常,秘密处理所有者118对私有飞地108(具有秘密处理110)进行加密和签名,并且TTP 102对管理器飞地106进行签名以用于执行权限管理任务。已签名的加密私有飞地108和已签名的管理器飞地106都被发送到数据所有者114。数据所有者114随后将私有飞地108和管理器飞地106部署至数据所有者私有网络120(诸如本地计算集群),并开始使用秘密输入数据112来产生秘密输出数据111的秘密处理110。一旦秘密处理完成,私有飞地108就将加密的秘密输出数据111发送到管理器飞地106。管理器飞地106随后使用持久对称会话密钥将秘密输出数据111加密到TTP 102。
数据所有者114对公共飞地202进行签名以用于用户处理210部署的操作,并且还将公共飞地202发送到TTP 102。用户208通过管理器飞地106与用户界面116通信,以在公共飞地202中安全地运行用户处理210(使用秘密输出数据111)。
不同方和飞地之间的关系总结在表1中。
表1
在实施例中,秘密处理110在私有飞地(PRE)内执行并且被视为秘密,其包括代码和/或训练脚本的集合。由于代码和训练脚本的集合是由秘密处理所有者定义的,因此无论代码是否具有一些通用的训练框架(诸如TensorFlow(开源机器学习软件库)或Pytorch(基于Torch库的开源机器学习软件库,用于计算机视觉和自然语言处理应用等)),它们都仍然被视为秘密,包括训练脚本。训练脚本可包括指令,诸如输入/输出(input/output,I/O)操作以及代码流、权重和参数值(也可以被认为是秘密的)的组合。
在实施例中,秘密处理110被包括到飞地封装中。在实施例中,来自称为受保护代码加载器(下文称为PCL)的SGX特征的“启用飞地代码机密性”可以用于保护它。一旦秘密处理(例如,模型训练)完成,由秘密处理产生的秘密输出数据111就可包括经训练的模型参数(诸如csv文件、向量等)。
为了帮助理解以下描述,表2列出了本文中使用的密码学密钥。
表2
图3A和图3B是根据一些实施例的安全处理300的流程图。在实施例中,PCL密钥是由秘密处理所有者118为技术的受保护代码加载器(PCL)生成的密钥。在框302处,秘密处理所有者118使用PCL密钥对私有飞地108进行加密,并使用秘密处理所有者的飞地签名密钥对加密的私有飞地108进行签名,并将已签名的加密的私有飞地发送到数据所有者114。私有飞地108包括秘密处理110(例如,模型或算法)(秘密处理所有者118期望保护其免受未经授权的公开)。在框304处,TTP 102使用TTP的飞地签名密钥对管理器飞地106进行签名,并将已签名的管理器飞地发送到数据所有者114。在框306处,数据所有者114部署已签名的管理器飞地。在框308处,秘密处理所有者118使用管理器飞地的加密公钥将加密的PCL密钥发送到管理器飞地106。
在框309处,管理器飞地将加密的PCL密钥发送到执行 PCL技术的支持/>的目标计算设备。在框310处,数据所有者114使用PCL技术来部署已签名的加密的私有飞地108,同时将秘密处理110保持为对数据所有者114保密。在框312处,数据所有者用秘密输入数据112在私有飞地108中运行秘密处理110,以生成秘密输出数据111。在框314处,私有飞地108使用临时密钥来加密秘密输出数据111,使用管理器飞地106的加密公钥来加密临时密钥,并将加密的秘密输出数据和加密的临时密钥发送到管理器飞地106。
处理继续到图3B的框318。在框318处,一旦管理器飞地106从私有飞地108接收到加密的秘密输出数据111和加密的临时密钥,管理器飞地106就使用管理器飞地的加密私钥来对加密的临时密钥进行解密并使用解密的临时密钥来对加密的秘密输出数据111进行解密。管理器飞地随后验证秘密输出数据,以避免私有飞地插入恶意数据。在框320处,如果秘密输出数据无效,则处理在框322处完成。如果秘密输出数据有效,则在框324处,管理器飞地106用新的持久密钥对秘密输出数据进行加密。在实施例中,持久密钥是在管理器飞地中生成的对称密钥。注意,重新加密过程对于数据所有者114的数据保护是有利的,否则秘密处理所有者118可在私有飞地中设置可以由秘密处理所有者直接解密的固定临时密钥。在这种情况下,秘密处理所有者可以访问来自秘密输入数据112的敏感信息。在框326处,管理器飞地106用管理器飞地的加密公钥来对持久密钥进行加密。在框328处,管理器飞地106将加密的持久密钥和加密的秘密输出数据上传到TTP 102,并且处理在框322处结束。如果秘密处理所有者118希望在公共飞地202内使用秘密输出数据111,则秘密处理所有者需要像用户208一样向TTP 102提交请求。
TTP 102现在存储加密的秘密输出数据111、可用于对加密的秘密输出数据进行解密的持久密钥、以及已签名的公共飞地。现在可以经由通过用户界面116和管理器飞地106的请求向TTP 102认证用户208,从而使用公共飞地202内的秘密输出数据111来运行用户处理210部署。
管理器飞地106保持唯一的签名密钥以标识在特定数据所有者的特定私有网络中启用的管理器飞地的每个实例,并且用于特定处理(诸如模型训练任务)。类似地,私有飞地108保持唯一的签名密钥以标识在特定数据所有者的特定私有网络中启用的私有飞地的每个实例,并且用于特定处理(诸如模型训练任务)。在一种方法中,当飞地启动时,每个飞地为该飞地的实例随机生成其自身的签名密钥。然而,这是一种无状态方法,这意味着签名密钥将在飞地重新启动后发生改变。这对于一些模型训练任务来说并不有利。附加地,管理器飞地106和私有飞地108需要一种方法来恢复它们的签名密钥,并因此取回和解密所存储的加密的持久密钥和加密的秘密输出数据111。因此,可以使用有状态飞地启动方法,如下文在图4和图5中所描述的。
图4是根据一些实施例的管理器飞地初始化处理400的流程图。在框402处,管理器飞地106从TTP 102获得管理器飞地的签名密钥。在实施例中,签名密钥对的公钥(私有签名密钥)可用作表示特定飞地的飞地ID。在框404处,如果签名密钥存在(根据TTP 102),则在框414处,管理器飞地106解封签名密钥。在框416处,如果签名密钥解封成功,则在框412处完成管理器飞地初始化处理。如果在框404处签名密钥不存在或者在框414处解封签名密钥失败,则在框406处管理器飞地106随机生成新签名密钥。在框408处,管理器飞地106密封新签名密钥。在实施例中,可以如2021年6月的英特尔SGX开发人员指南修订版2.14和更高版本中所述来执行密封。在框410处,管理器飞地106将新签名密钥上传到TTP 102,并且处理在框412处完成。
图5是根据一些实施例的私有飞地初始化处理500的流程图。在框502处,私有飞地108经由管理器飞地服务107和管理器飞地106从TTP 102获得私有飞地的签名密钥。在框504处,如果签名密钥存在(根据TTP 102),则在框514处,私有飞地108解封签名密钥。在框516处,如果签名密钥解封成功,则在框512处完成私有飞地初始化处理。如果在框504处签名密钥不存在或者在框514处解封签名密钥失败,则在框506处私有飞地108随机生成新签名密钥。在框508处,私有飞地108密封新签名密钥。在框510处,私有飞地108经由管理器飞地服务107和管理器飞地106将新签名密钥上传到TTP 102,并且处理在框512处完成。
图6是根据一些实施例的部署阶段期间的安全处理600的流程图。一旦加密的秘密输出数据111已被保存在TTP 102中,其他用户(例如,用户208)就能够将秘密输出数据应用到公共飞地202内的用户处理210以进行部署处理,但仅当公共飞地通过管理器飞地106的认证时才是如此。这有助于阻止对秘密输出数据111的未授权访问。
在框610处,管理器飞地106从TTP 102下载加密的持久密钥和加密的秘密输出数据111。在框612处,管理器飞地106使用管理器飞地的私钥对加密的持久密钥进行解密,并使用持久密钥对加密的秘密输出数据进行解密。在框614处,管理器飞地106使用随机生成的部署会话密钥来加密秘密输出数据111。在框616处,管理器飞地106用公共飞地的加密公钥对部署会话密钥进行加密,并将加密的部署会话密钥和加密的秘密输出数据发送到公共飞地202。在框618处,公共飞地用公共飞地的加密私钥对加密的部署会话密钥进行解密。在框620处,公共飞地使用部署会话密钥对加密的秘密输出数据进行解密。随后,秘密输出数据可由用户处理210读取以在公共飞地202中时执行处理。
因此,实施例提供了保护数据所有者的秘密输入数据、保护秘密处理所有者的秘密处理以及保护秘密输出数据不被数据所有者、秘密处理所有者和用户公开的能力。
机器学习是本文所描述的技术的示例应用,但也可设想其他应用。使用秘密算法来计算秘密输入数据并生成秘密输出数据的任何处理都可以采用本技术。这可包括训练阶段,或者更一般地,像数据查询或计算一样简单的处理。秘密输出数据可以逐用户的请求以受保护的方式在用户处理中使用。例如,假设计算数字三和四的和。该计算被称为秘密处理110(例如,算法)。数字三和四是秘密输入数据112。和是秘密输出数据111,在这种情况下是七。如本文所述,秘密输出数据值七被加密到TTP,因此没有人知道该值。随后,在部署阶段,在一个示例中,用户请求评估和是否超过阈值,例如数字10。加密的秘密输出数据被发送到公共飞地202。在公共飞地内,秘密输出数据被解密并与阈值比较(例如,通过用户处理210)。在该情况下,结果是否定的。因此,用户得到的结果是和没有超过阈值,但用户不知道确切的值,数据所有者不知道算法(例如,等式和=a+b)或秘密输出数据(和值=7),秘密处理所有者不知道秘密输入数据(a=3,b=4)或秘密输出数据(例如,7),并且用户除了查询结果(例如,否定的)之外一无所知。
图7是根据一些实施例的用于安全处理的说明性电子计算设备的示意图。在一些实施例中,计算设备700包括一个或多个处理器710,一个或多个处理器710包括:一个或多个处理器核心718、以及管理器飞地106(manager enclave,ME)、私有飞地108(privateenclave,PRE)、公共飞地202(public enclave,PUE)和受信任第三方102(trusted thirdparty,TTP)中的一者或多者。在一些实施例中,计算设备700包括一个或多个硬件加速器768。
在一些实施例中,计算设备用于实施如上文的图1-图6中所提供的安全处理。
计算设备700可以附加地包括以下各项中的一项或多项:缓存762、图形处理单元(graphical processing unit,GPU)712(在一些实现方式中,其可以是硬件加速器)、无线输入/输出(input/output,I/O)接口720、有线I/O接口730、系统存储器740、功率管理电路系统750、非暂态存储设备760、以及用于连接至网络772的网络接口770。以下讨论提供对形成说明性的计算设备700的组件的简洁的、一般性的描述。例如,非限制性计算设备700可包括桌面型计算设备、刀片式服务器设备、工作站、膝上型电脑、移动电话、平板电脑、个人数字助理、或类似的设备或系统。
在实施例中,处理器核心718能够执行机器可读指令集714,从一个或多个存储设备760读取数据和/或机器可读指令集714,并且将数据写入到一个或多个存储设备760。相关领域的技术人员将领会,所图示的实施例以及其他实施例可利用其他基于处理器的设备配置来实施,这些基于处理器的设备配置包括便携式电子设备或手持式电子设备(例如,智能电话)、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“personal computer,PC”)、网络PC、小型计算机、服务器刀片、大型计算机、等等。例如,机器可读指令集714可包括用于实现如图1-图6中提供的安全处理的指令。
处理器核心718可包括任何数量的硬连线或可配置电路,其中的一些或全部可包括部分或完全地设置在能够执行处理器可读指令的PC、服务器、移动电话、平板电脑、或其他计算系统中的电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合。
计算设备700包括总线716或类似的通信链路,该总线716或类似的通信链路716能通信地耦合各种系统组件,并且促进各种系统组件之间的信息和/或数据的交换,这些系统组件包括处理器核心718、缓存762、图形处理器电路系统712、一个或多个无线I/O接口720、一个或多个有线I/O接口730、一个或多个存储设备760和/或一个或多个网络接口770。计算设备700在本文中能以单数形式引用,但是这不旨在将实施例限于单个计算设备700,因为在某些实施例中,可存在合并、包括、或包含任何数量的能通信地耦合的、并置的、或远程联网的电路或设备的多于一个的计算设备700。
处理器核心718可包括能够执行机器可读指令集的任何数量、类型的当前可用的或未来开发的设备或这些设备的任何组合。
处理器核心718可包括(或耦合到)但不限于任何当前的或未来开发的单核心或多核心处理器或微处理器,诸如:一个或多个片上系统(system on a chip,SOC);中央处理单元(central processing unit,CPU);数字信号处理器(digital signal processor,DSP);图形处理单元(graphics processing unit,GPU);专用集成电路(application-specificintegrated circuit,ASIC);可编程逻辑单元;现场可编程门阵列(field programmablegate array,FPGA);等等。除非另有描述,否则图7中所示的各种框的构造和操作是常规设计。因此,此类框不需要在本文中进一步详细地描述,因为这些框将由相关领域的技术人员理解。将计算设备700的组件中的至少一些组件互连起来的总线716可采用任何当前可用的或未来开发的串行或并行总线结构或体系结构。
系统存储器740可包括只读存储器(“read-only memory,ROM”)742和随机存取存储器(“random access memory,RAM”)746。ROM 742的部分可用于存储或以其他方式保留基本输入/输出系统(“basic input/output system,BIOS”)744。BIOS 744例如通过使处理器核心718加载和/或执行一个或多个机器可读指令集714来向计算设备700提供基本功能。在实施例中,一个或多个机器可读指令集714中的至少一些使得处理器核心718的至少部分提供、创建、产生、转变和/或充当专用、指定且特定的机器,例如文字处理机、数字图像采集机、媒体播放机、游戏系统、通信设备、智能电话、神经网络、机器学习模型、或类似设备。
计算设备700可包括至少一个无线输入/输出(I/O)接口720。至少一个无线I/O接口720可以能通信地耦合至一个或多个物理输出设备722(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线I/O接口720可以能通信地耦合至一个或多个物理输入设备724(指点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口720可包括任何当前可用的或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:近场通信(near field communication,NFC)等等。
计算设备700可包括一个或多个有线输入/输出(I/O)接口730。至少一个有线I/O接口730可以能通信地耦合至一个或多个物理输出设备722(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线I/O接口730可以能通信地耦合至一个或多个物理输入设备724(指点设备、触摸屏、键盘、触觉设备等)。有线I/O接口730可包括任何当前可用的或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(universalserial bus,USB)、IEEE 1394(“火线”)等等。
计算设备700可包括一个或多个能通信地耦合的非暂态存储设备760。存储设备760可包括一个或多个硬盘驱动器(hard disk drive,HDD)和/或一个或多个固态存储设备(solid-state storage device,SSD)。一个或多个存储设备760可包括任何当前或未来开发的存储装置、网络存储设备和/或系统。此类存储设备760的非限制性示例可包括但不限于任何当前或未来开发的非暂态存储装置或设备,诸如,一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。在一些实现方式中,一个或多个存储设备760可包括一个或多个可移除存储设备,诸如,能够能通信地耦合至计算设备700和从计算设备700解耦的一个或多个闪存驱动器、闪存存储器、闪存存储单元或类似装置或设备。
一个或多个存储设备760可包括将相应的存储设备或系统通信地耦合至总线716的接口或控制器(未示出)。一个或多个存储设备760可存储、保留或以其他方式包含对于处理器核心718和/或图形处理器电路系统712和/或在处理器核心718和/或图形处理器电路系统712上执行或由处理器核心718和/或图形处理器电路系统712执行的一个或多个应用有用的机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构和/或其他数据。在一些实例中,一个或多个数据存储设备760可以例如经由总线716、或经由一个或多个有线通信接口730(例如,通用串行总线,即USB)、一个或多个无线通信接口720(例如,近场通信,即NFC)、和/或一个或多个网络接口770(IEEE 802.3或以太网、IEEE 802.11或等等)而能通信地耦合至处理器核心718。
机器可读指令集714和其他程序、应用、逻辑集合和/或模块可整体或部分地存储在系统存储器740中。此类机器可读指令集714可整体或部分地从一个或多个存储设备760被传输。机器可读指令集714在由处理器核心718和/或图形处理器电路系统712执行期间可整体或部分地被加载、被存储、或以其他方式被保留在系统存储器740中。
计算设备700可包括功率管理电路系统750,该功率管理电路系统750控制能量存储设备752的一个或多个操作方面。在实施例中,能量存储设备752可包括一个或多个主要的(即,非可重新充电的)电池或次要的(即,可重新充电的)电池或类似的能量存储设备。在实施例中,能量存储设备752可包括一个或多个超级电容器或超超级电容器。在实施例中,功率管理电路系统750可改变、调整或控制从外部功率源754到能量存储设备752和/或到计算设备700的能量流。外部功率源754可包括但不限于太阳能电力系统、商用电网、便携式发电机、外部能量存储设备、或其任何组合。
为方便起见,处理器核心718、图形处理器电路系统712、无线I/O接口720、有线I/O接口730、存储设备760和网络接口770被图示为经由总线716通信地彼此耦合,由此提供上文所描述的组件之间的连接性。在替代实施例中,上文所描述的组件能以与图7中所图示的不同的方式通信地耦合。例如,上文所描述的组件中的一个或多个组件可直接耦合至其他组件,或者可经由一个或多个中间组件(未示出)彼此耦合。在另一示例中,上文所描述的组件中的一个或多个组件可被集成到处理器核心718和/或图形处理器电路系统712中。在一些实施例中,总线716的全部或部分可被省略,并且使用合适的有线或无线连接直接地将组件彼此耦合。
在图3-图6中示出了表示例如用于实现计算设备700的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是用于由计算机处理器执行的一个或多个可执行程序或可执行程序的(一个或多个)部分,计算机处理器诸如上文结合图7所讨论的示例计算设备700中示出的处理器710。程序可被具体化在存储于与处理器710相关联的诸如CD-ROM、软盘、硬驱动器、DVD、蓝光盘或存储器之类的非暂态计算机可读存储介质上的软件中,但是整个程序和/或其部分可以替代地由除处理器710之外的设备执行和/或被具体化在固件或专用硬件中。进一步地,虽然参考图3-图6所图示的流程图描述示例程序,但是可替代地使用实现示例计算设备700的许多其他方法。例如,框的执行次序可以被改变,和/或所描述的框中的一些框可以被改变、被消除或被组合。附加地或替代地,框中的任何框或所有框可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的一个或多个硬件电路(例如,分立的和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(operational-amplifier,op-amp)、逻辑电路等)来实现。
本文中描述的机器可读指令可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种格式来存储。本文中描述的机器可读指令可以作为可用于创建、制造和/或产生机器可执行指令的数据(例如,指令的部分、代码、代码表示等)来存储。例如,机器可读指令可以被分段并被存储在一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能要求安装、修改、适配、更新、组合、补充、配置、解密、解压缩、拆包、分发、重新分配、编译等中的一项或多项,以使得它们由计算设备和/或其他机器直接可读取、可解释、和/或可执行。例如,机器可读指令可以被存储在多个部分中,这些部分被单独地压缩、加密并存储在分开的计算设备上,其中,这些部分在被解密、解压缩和组合时形成实现诸如本文中所描述的程序之类的程序的可执行指令的集合。
在另一示例中,机器可读指令可以以它们可被计算机读取的状态存储,但是需要添加库(例如,动态链接库(dynamic link library,DLL))、软件开发工具包(softwaredevelopment kit,SDK)、应用编程接口(application programming interface,API)等,以便在特定的计算设备或其他设备上执行指令。在另一示例中,在可整体或部分地执行机器可读指令和/或相对应的(一个或多个)程序之前,机器可读指令可被配置(例如,所存储的设置、所输入的数据、所记录的网络地址等)。由此,所公开的机器可读指令和/或对应的(一个或多个)程序旨在包含此类机器可读指令和/或(一个或多个)程序,而不管机器可读指令和/或(一个或多个)程序在存储时或以其他方式处于静态或在传输中时的特定格式或状态如何。
本文中所描述的机器可读指令可以由任何过去、现在或未来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可以用以下语言中的任何语言来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HyperText Markup Language,HTML)、结构化查询语言(Structured Query Language,SQL)、Swift等。
如上文所提及,可使用存储在非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图3-图7的示例过程,该非暂态计算机和/或机器可读介质诸如硬盘驱动器、固态存储设备(solid-state storage device,SSD)、闪存存储器、只读存储器(read-only memory,ROM)、致密盘、数字多功能盘、缓存、随机存取存储器和/或在任何时长内(例如,在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信息缓存期间)将信息存储于其内的任何其他存储设备或存储盘。如本文中所使用,术语非暂态计算机可读介质被明确地定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。
“包含”和“包括”(及其所有形式和时态)在本文中被用作开放式术语。由此,每当权利要求将任何形式的“包含”和“包括”(例如,包括、包含、包括有、包含有、具有等)用作前序部分或用于任何种类的权利要求记载内容之内时,要理解的是,在不落在对应的权利要求或记载的范围之外的情况下,可以存在附加的要素、项等。如本文中所使用,当短语“至少”被用作例如权利要求的前序部分中的过渡术语时,它按与术语“包含”和“包括”一样的方式是开放式的。
当例如以诸如A、B和/或C之类的形式被使用时,术语“和/或”指的是A、B、C的任何组合或子集,诸如(1)单独的A、(2)单独的B、(3)单独的C、(4)A与B、(5)A与C、(6)B与C、以及(7)A与B及与C。如本文中在描述结构、组件、项、对象和/或事物的上下文中所使用,短语“A和B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。类似地,如本文中在描述结构、组件、项、对象和/或事物的上下文中所使用,短语“A或B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。如本文中在描述过程、指令、动作、动作和/或步骤的实行或执行的上下文中所使用,短语“A和B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。类似地,如本文中在描述过程、指令、动作、动作和/或步骤的实行或执行的上下文中所使用,短语“A或B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。
如本文中所使用,单数引用(例如,“一(a、an)”、“第一”、“第二”等)不排除复数。如本文中所使用,术语“一(a或an)”实体是指一个或多个的该实体中。术语“一(a)”(或“一(an)”)、“一个或多个”和“至少一个”在本文中可以可互换地使用。此外,尽管单独列出,但多个装置、元件或方法动作可由例如单个单元或处理器来实现。另外,虽然各个特征可以被包括在不同的示例或权利要求中,但是这些特征可能被组合,并且在不同的示例或权利要求中的包含并不意味着特征的组合是不可行和/或有利的。
当标识可被分开地引用的多个要素或组件时,本文使用描述符“第一”、“第二”、“第三”等。除非基于它们的使用上下文另有规定或理解,否则此类描述符并非旨在赋予优先级、物理次序或列表中的布置、或者时间顺序的任何含义,而仅仅是为了易于理解所公开的示例而用作分别指代多个要素或组件的标签。在一些示例中,描述符“第一”可以用于指代具体实施方式中的要素,而在权利要求中可以使用诸如“第二”或“第三”之类的不同描述符来指代相同的该要素。在此类情况下,应当理解的是,此类描述符仅用于易于引用多个要素或组件。
以下示例涉及进一步的实施例。示例1是一种方法,包括:从秘密处理所有者接收已签名的私有飞地;从受信任第三方(TTP)接收已签名的管理器飞地;部署已签名的管理器飞地;从秘密处理所有者接收用已签名管理器飞地的加密公钥加密的受保护代码加载器(PCL)密钥;部署已签名的私有飞地;用秘密输入数据在已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及使用临时密钥对已签名的私有飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的私有飞地中的临时密钥进行加密,以及将加密的秘密输出数据和加密的临时密钥发送到已签名的管理器飞地。
在示例2中,示例1的主题可以任选地包括:使用已签名的管理器飞地的加密私钥对已签名的管理器飞地中的加密的临时密钥进行解密,以及使用临时密钥对已签名的管理器飞地中的加密的秘密输出数据进行解密;以及当秘密输出数据有效时,使用持久密钥对已签名的管理器飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的管理器飞地中的持久密钥进行加密,以及将加密的持久密钥和加密的秘密输出数据上传到TTP。
在示例3中,示例2的主题可以任选地包括:将加密的持久密钥和加密的秘密输出数据从TTP下载到已签名的管理器飞地;使用已签名的管理器飞地的加密私钥对已签名的管理器飞地内的加密的持久密钥进行解密,以及使用持久密钥对已签名的管理器飞地内的加密的秘密输出数据进行解密;使用随机生成的部署会话密钥对已签名的管理器飞地内的秘密输出数据进行加密;以及使用公共飞地的加密公钥对已签名的管理器飞地内的随机生成的部署会话密钥进行加密,以及将加密的随机生成的部署会话密钥和加密的秘密输出数据发送到公共飞地。
在示例4中,示例3的主题可以任选地包括:使用公共飞地的加密私钥对公共飞地内的加密的随机生成的部署会话密钥进行解密;以及使用随机生成的部署会话密钥对公共飞地内的加密的秘密输出数据进行解密。
在示例5中,示例4的主题可以任选地包括:在公共飞地内执行秘密输出数据的处理。
在示例6中,示例5的主题可以任选地包括:其中,部署私有飞地包括在公共飞地的用户无法访问的私有网络内部署私有飞地。
在示例7中,示例1的主题可以任选地包括:其中,秘密处理包括机器学习模型训练、深度学习模型训练和人工智能过程训练中的至少一者。
在示例8中,示例7的主题可以任选地包括:其中,秘密处理包括训练脚本。
示例9是至少一种非暂态机器可读存储介质,包括指令,该指令在被执行时使至少一个处理设备用于:从秘密处理所有者接收已签名的私有飞地;从受信任第三方(TTP)接收已签名的管理器飞地;部署已签名的管理器飞地;从秘密处理所有者接收用已签名管理器飞地的加密公钥加密的受保护代码加载器(PCL)密钥;部署已签名的私有飞地;用秘密输入数据在已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及使用临时密钥对已签名的私有飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的私有飞地中的临时密钥进行加密,以及将加密的秘密输出数据和加密的临时密钥发送到已签名的管理器飞地。
在示例10中,示例9的主题可以任选地包括指令,该指令在被执行时使至少一个处理设备用于:使用已签名的管理器飞地的加密私钥对已签名的管理器飞地中的加密的临时密钥进行解密,以及使用临时密钥对已签名的管理器飞地中的加密的秘密输出数据进行解密;以及当秘密输出数据有效时,使用持久密钥对已签名的管理器飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的管理器飞地中的持久密钥进行加密,以及将加密的持久密钥和加密的秘密输出数据上传到TTP。
在示例11中,示例10的主题可以任选地包括指令,该指令在被执行时使至少一个处理设备用于:将加密的持久密钥和加密的秘密输出数据从TTP下载到已签名的管理器飞地;使用已签名的管理器飞地的加密私钥对已签名的管理器飞地内的加密的持久密钥进行解密,以及使用持久密钥对已签名的管理器飞地内的加密的秘密输出数据进行解密;使用随机生成的部署会话密钥对已签名的管理器飞地内的秘密输出数据进行加密;以及使用公共飞地的加密公钥对已签名的管理器飞地内的随机生成的部署会话密钥进行加密,以及将加密的随机生成的部署会话密钥和加密的秘密输出数据发送到公共飞地。
在示例12中,示例11的主题可以任选地包括指令,该指令在被执行时使至少一个处理设备用于:使用公共飞地的加密私钥对公共飞地内的加密的随机生成的部署会话密钥进行解密;以及使用随机生成的部署会话密钥对公共飞地内的加密的秘密输出数据进行解密。
在示例13中,示例12的主题可以任选地包括指令,该指令在被执行时使至少一个处理设备用于:在公共飞地内执行秘密输出数据的处理。
在示例14中,示例13的主题可以任选地包括:其中,部署私有飞地包括在公共飞地的用户无法访问的私有网络内部署私有飞地。
示例15是一种装置,包括:处理器;以及存储器,耦合至处理器,该存储器具有存储于其上的指令,该指令响应于由处理器执行而使处理器用于:从秘密处理所有者接收已签名的私有飞地;从受信任第三方(TTP)接收已签名的管理器飞地;部署已签名的管理器飞地;从秘密处理所有者接收用已签名管理器飞地的加密公钥加密的受保护代码加载器(PCL)密钥;部署已签名的私有飞地;用秘密输入数据在已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及使用临时密钥对已签名的私有飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的私有飞地中的临时密钥进行加密,以及将加密的秘密输出数据和加密的临时密钥发送到已签名的管理器飞地。
在示例16中,示例15的主题可以任选地包括指令,该指令在被执行时使处理器用于:使用已签名的管理器飞地的加密私钥对已签名的管理器飞地中的加密的临时密钥进行解密,以及使用临时密钥对已签名的管理器飞地中的加密的秘密输出数据进行解密;以及当秘密输出数据有效时,使用持久密钥对已签名的管理器飞地中的秘密输出数据进行加密,使用已签名的管理器飞地的加密公钥对已签名的管理器飞地中的持久密钥进行加密,以及将加密的持久密钥和加密的秘密输出数据上传到TTP。
在示例17中,示例16的主题可以任选地包括指令,该指令在被执行时使处理器用于:将加密的持久密钥和加密的秘密输出数据从TTP下载到已签名的管理器飞地;使用已签名的管理器飞地的加密私钥对已签名的管理器飞地内的加密的持久密钥进行解密,以及使用持久密钥对已签名的管理器飞地内的加密的秘密输出数据进行解密;使用随机生成的部署会话密钥对已签名的管理器飞地内的秘密输出数据进行加密;以及使用公共飞地的加密公钥对已签名的管理器飞地内的随机生成的部署会话密钥进行加密,以及将加密的随机生成的部署会话密钥和加密的秘密输出数据发送到公共飞地。
在示例18中,示例17的主题可以任选地包括指令,该指令在被执行时使处理器用于:使用公共飞地的加密私钥对公共飞地内的加密的随机生成的部署会话密钥进行解密;以及使用随机生成的部署会话密钥对公共飞地内的加密的秘密输出数据进行解密。
在示例19中,示例18的主题可以任选地包括指令,该指令在被执行时使处理器用于:在公共飞地内执行秘密输出数据的处理。
在示例20中,示例19的主题可以任选地包括:其中,部署私有飞地包括在公共飞地的用户无法访问的私有网络内部署私有飞地。
示例21是一种设备,包括:用于从秘密处理所有者接收已签名的私有飞地的装置;用于从受信任第三方(TTP)接收已签名的管理器飞地的装置;用于部署已签名的管理器飞地的装置;用于从秘密处理所有者接收用已签名管理器飞地的加密公钥加密的受保护代码加载器(PCL)密钥的装置;用于部署已签名的私有飞地的装置;用于用秘密输入数据在已签名的私有飞地中运行秘密处理以生成秘密输出数据的装置;以及用于使用临时密钥对已签名的私有飞地中的秘密输出数据进行加密的装置,用于使用已签名的管理器飞地的加密公钥对已签名的私有飞地中的临时密钥进行加密的装置,以及用于将加密的秘密输出数据和加密的临时密钥发送到已签名的管理器飞地的装置。
前述说明书和附图应以说明性意义而非限制性意义来看待。本领域技术人员将理解,可对本文中描述的实施例作出各种修改和改变,而不背离如所附权利要求所述的特征的更宽泛的精神和范围。
Claims (20)
1.一种方法,包括:
从秘密处理所有者接收已签名的私有飞地;
从受信任第三方TTP接收已签名的管理器飞地;
部署所述已签名的管理器飞地;
从所述秘密处理所有者接收用所述已签名管理器飞地的加密公钥加密的受保护代码加载器PCL密钥;
部署所述已签名的私有飞地;
用秘密输入数据在所述已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及
使用临时密钥对所述已签名的私有飞地中的所述秘密输出数据进行加密,使用所述已签名的管理器飞地的加密公钥对所述已签名的私有飞地中的所述临时密钥进行加密,以及将经加密的秘密输出数据和经加密的临时密钥发送到所述已签名的管理器飞地。
2.如权利要求1所述的方法,包括:
使用所述已签名的管理器飞地的所述加密私钥对所述已签名的管理器飞地中的经加密的临时密钥进行解密,以及使用所述临时密钥对所述已签名的管理器飞地中的经加密的秘密输出数据进行解密;以及
当所述秘密输出数据有效时,使用持久密钥对所述已签名的管理器飞地中的所述秘密输出数据进行加密,使用所述已签名的管理器飞地的所述加密公钥对所述已签名的管理器飞地中的所述持久密钥进行加密,以及将经加密的持久密钥和经加密的秘密输出数据上传到所述TTP。
3.如权利要求2所述的方法,包括:
将经加密的持久密钥和经加密的秘密输出数据从所述TTP下载到所述已签名的管理器飞地;
使用所述已签名的管理器飞地的加密私钥对所述已签名的管理器飞地内的经加密的持久密钥进行解密,以及使用所述持久密钥对所述已签名的管理器飞地内的经加密的秘密输出数据进行解密;
使用随机生成的部署会话密钥对所述已签名的管理器飞地内的所述秘密输出数据进行加密;以及
使用公共飞地的加密公钥对所述已签名的管理器飞地内的所述随机生成的部署会话密钥进行加密,以及将经加密的随机生成的部署会话密钥和经加密的秘密输出数据发送到所述公共飞地。
4.如权利要求3所述的方法,包括:
使用所述公共飞地的加密私钥对所述公共飞地内的经加密的随机生成的部署会话密钥进行解密;以及
使用所述随机生成的部署会话密钥对所述公共飞地内的经加密的秘密输出数据进行解密。
5.如权利要求4所述的方法,包括:
在所述公共飞地内执行所述秘密输出数据的处理。
6.如权利要求5所述的方法,其特征在于,部署所述私有飞地包括在所述公共飞地的用户无法访问的私有网络内部署所述私有飞地。
7.如权利要求1所述的方法,其特征在于,所述秘密处理包括机器学习模型训练、深度学习模型训练和人工智能过程训练中的至少一者。
8.根据权利要求7所述的方法,其特征在于,所述秘密处理包括训练脚本。
9.至少一种非暂态机器可读存储介质,包括指令,所述指令在被执行时使至少一个处理设备:
从秘密处理所有者接收已签名的私有飞地;
从受信任第三方TTP接收已签名的管理器飞地;
部署所述已签名的管理器飞地;
从所述秘密处理所有者接收用所述已签名管理器飞地的加密公钥加密的受保护代码加载器PCL密钥;
部署所述已签名的私有飞地;
用秘密输入数据在所述已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及
使用临时密钥对所述已签名的私有飞地中的所述秘密输出数据进行加密,使用所述已签名的管理器飞地的加密公钥对所述已签名的私有飞地中的所述临时密钥进行加密,以及将经加密的秘密输出数据和经加密的临时密钥发送到所述已签名的管理器飞地。
10.如权利要求9所述的至少一种非暂态机器可读存储介质,包括指令,所述指令在被执行时使至少一个处理设备用于:
使用所述已签名的管理器飞地的所述加密私钥对所述已签名的管理器飞地中的经加密的临时密钥进行解密,以及使用所述临时密钥对所述已签名的管理器飞地中的经加密的秘密输出数据进行解密;以及
当所述秘密输出数据有效时,使用持久密钥对所述已签名的管理器飞地中的所述秘密输出数据进行加密,使用所述已签名的管理器飞地的所述加密公钥对所述已签名的管理器飞地中的所述持久密钥进行加密,以及将经加密的持久密钥和经加密的秘密输出数据上传到所述TTP。
11.如权利要求10所述的至少一种非暂态机器可读存储介质,包括指令,所述指令在被执行时使至少一个处理设备用于:
将经加密的持久密钥和经加密的秘密输出数据从所述TTP下载到所述已签名的管理器飞地;
使用所述已签名的管理器飞地的加密私钥对所述已签名的管理器飞地内的经加密的持久密钥进行解密,以及使用所述持久密钥对所述已签名的管理器飞地内的经加密的秘密输出数据进行解密;
使用随机生成的部署会话密钥对所述已签名的管理器飞地内的所述秘密输出数据进行加密;以及
使用公共飞地的加密公钥对所述已签名的管理器飞地内的所述随机生成的部署会话密钥进行加密,以及将经加密的随机生成的部署会话密钥和经加密的秘密输出数据发送到所述公共飞地。
12.如权利要求11所述的至少一种非暂态机器可读存储介质,包括指令,所述指令在被执行时使至少一个处理设备用于:
使用所述公共飞地的加密私钥对所述公共飞地内的经加密的随机生成的部署会话密钥进行解密;以及
使用所述随机生成的部署会话密钥对所述公共飞地内的经加密的秘密输出数据进行解密。
13.如权利要求12所述的至少一种非暂态机器可读存储介质,包括指令,所述指令在被执行时使至少一个处理设备用于:
在所述公共飞地内执行所述秘密输出数据的处理。
14.如权利要求13所述的至少一种非暂态机器可读存储介质,其特征在于,部署所述私有飞地包括在所述公共飞地的用户无法访问的私有网络内部署所述私有飞地。
15.一种装置,包括:
处理器;以及
存储器,耦合至所述处理器,所述存储器具有存储于其上的指令,所述指令响应于由所述处理器执行而使所述处理器用于:
从秘密处理所有者接收已签名的私有飞地;
从受信任第三方TTP接收已签名的管理器飞地;
部署所述已签名的管理器飞地;
从所述秘密处理所有者接收用所述已签名管理器飞地的加密公钥加密的受保护代码加载器PCL密钥;
部署所述已签名的私有飞地;
用秘密输入数据在所述已签名的私有飞地中运行秘密处理,以生成秘密输出数据;以及
使用临时密钥对所述已签名的私有飞地中的所述秘密输出数据进行加密,使用所述已签名的管理器飞地的加密公钥对所述已签名的私有飞地中的所述临时密钥进行加密,以及将经加密的秘密输出数据和经加密的临时密钥发送到所述已签名的管理器飞地。
16.如权利要求15所述的装置,包括指令,所述指令在被执行时,使所述处理器用于:
使用所述已签名的管理器飞地的所述加密私钥对所述已签名的管理器飞地中的经加密的临时密钥进行解密,以及使用所述临时密钥对所述已签名的管理器飞地中的经加密的秘密输出数据进行解密;以及
当所述秘密输出数据有效时,使用持久密钥对所述已签名的管理器飞地中的所述秘密输出数据进行加密,使用所述已签名的管理器飞地的所述加密公钥对所述已签名的管理器飞地中的所述持久密钥进行加密,以及将经加密的持久密钥和经加密的秘密输出数据上传到所述TTP。
17.如权利要求16所述的装置,包括指令,所述指令在被执行时,使所述处理器用于:
将经加密的持久密钥和经加密的秘密输出数据从所述TTP下载到所述已签名的管理器飞地;
使用所述已签名的管理器飞地的加密私钥对所述已签名的管理器飞地内的经加密的持久密钥进行解密,以及使用所述持久密钥对所述已签名的管理器飞地内的经加密的秘密输出数据进行解密;
使用随机生成的部署会话密钥对所述已签名的管理器飞地内的所述秘密输出数据进行加密;以及
使用公共飞地的加密公钥对所述已签名的管理器飞地内的所述随机生成的部署会话密钥进行加密,以及将经加密的随机生成的部署会话密钥和经加密的秘密输出数据发送到所述公共飞地。
18.如权利要求17所述的装置,包括指令,所述指令在被执行时,使所述处理器用于:
使用所述公共飞地的加密私钥对所述公共飞地内的经加密的随机生成的部署会话密钥进行解密;以及
使用所述随机生成的部署会话密钥对所述公共飞地内的经加密的秘密输出数据进行解密。
19.如权利要求18所述的装置,包括指令,所述指令在被执行时,使所述处理器用于在所述公共飞地内执行所述秘密输出数据的处理。
20.如权利要求19所述的装置,其特征在于,部署所述私有飞地包括在所述公共飞地的用户无法访问的私有网络内部署所述私有飞地。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/119882 WO2023044664A1 (en) | 2021-09-23 | 2021-09-23 | Protecting secret processing, secret input data, and secret output data using enclaves |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117321961A true CN117321961A (zh) | 2023-12-29 |
Family
ID=85719153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180097936.9A Pending CN117321961A (zh) | 2021-09-23 | 2021-09-23 | 使用飞地保护秘密处理、秘密输入数据和秘密输出数据 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240214185A1 (zh) |
CN (1) | CN117321961A (zh) |
WO (1) | WO2023044664A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180183578A1 (en) * | 2016-12-27 | 2018-06-28 | Intel Corporation | Provisioning keys for virtual machine scaling |
US10528722B2 (en) * | 2017-05-11 | 2020-01-07 | Microsoft Technology Licensing, Llc | Enclave pool shared key |
US11126699B2 (en) * | 2018-02-07 | 2021-09-21 | Nec Corporation | Replica trusted execution environment: enabling seamless replication of trusted execution environment (TEE)-based enclaves in the cloud |
CN109510708B (zh) * | 2018-10-24 | 2021-07-13 | 中国科学院信息工程研究所 | 一种基于Intel SGX机制的公钥密码计算方法和系统 |
WO2020112166A1 (en) * | 2018-11-28 | 2020-06-04 | Visa International Service Association | Techniques for preventing collusion using simultaneous key release |
-
2021
- 2021-09-23 CN CN202180097936.9A patent/CN117321961A/zh active Pending
- 2021-09-23 WO PCT/CN2021/119882 patent/WO2023044664A1/en active Application Filing
- 2021-09-23 US US18/556,022 patent/US20240214185A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023044664A1 (en) | 2023-03-30 |
US20240214185A1 (en) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110266467B (zh) | 基于区块高度实现动态加密的方法及装置 | |
US11949775B2 (en) | Network bound encryption for recovery of trusted execution environments | |
AU2020369228B2 (en) | Private transfer learning | |
US11489660B2 (en) | Re-encrypting data on a hash chain | |
CN110033266B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110276610B (zh) | 基于交易偏移量实现动态加密的方法及装置 | |
US11671412B2 (en) | Network bound encryption for orchestrating workloads with sensitive data | |
CN110033265B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
JP2022177828A (ja) | 情報漏洩を低減した連合学習の方法、装置およびコンピュータプログラム(分割された動的シャッフルモデル更新を伴う連合学習) | |
CN110008737B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN108134673A (zh) | 一种生成白盒库文件的方法及装置 | |
CN110263547B (zh) | 基于合约状态的修改次序实现动态加密的方法及装置 | |
US11290277B2 (en) | Data processing system | |
WO2023044664A1 (en) | Protecting secret processing, secret input data, and secret output data using enclaves | |
CN115758332A (zh) | 一种交易分组方法和区块链节点 | |
US20220014381A1 (en) | Message authentication code (mac) generation for live migration of encrypted virtual machiness | |
Dang et al. | Attribute-based symmetric searchable encryption | |
CN112650987B (zh) | 使用内核签名人工智能水印的方法和系统 | |
Filaly et al. | Hybrid Encryption Algorithm for Information Security in Hadoop | |
Vishal Reddy et al. | SecHDFS-AWS: A Novel Approach to Design Efficient and Secure Data Storage Model Over HDFS Enabled Amazon Cloud | |
Cui et al. | A Fine-Grained Access Control Framework for Data Sharing in IoT Based on IPFS and Cross-Blockchain Technology | |
US20210112042A1 (en) | Method and system for encrypting data using a command | |
Karlsson et al. | Enabling key migration between non-compatible TPM versions | |
KR20240049022A (ko) | 완전동형암호를 이용하여 다수의 민감정보 저장소의 데이터에 대한 추론 결과를 제공하는 방법 및 시스템 | |
Patel et al. | Achieving Secure Cloud Data Storage without using of Trusted Third Party Auditor: A Review |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |