CN113591098B - 一种基于sgx的远程安全异构计算方法和系统 - Google Patents
一种基于sgx的远程安全异构计算方法和系统 Download PDFInfo
- Publication number
- CN113591098B CN113591098B CN202110653732.0A CN202110653732A CN113591098B CN 113591098 B CN113591098 B CN 113591098B CN 202110653732 A CN202110653732 A CN 202110653732A CN 113591098 B CN113591098 B CN 113591098B
- Authority
- CN
- China
- Prior art keywords
- sgx
- data
- host
- user
- gpu
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000004140 cleaning Methods 0.000 claims abstract description 15
- 230000001133 acceleration Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims 1
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 abstract description 3
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000010801 machine learning Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于SGX的远程安全异构计算方法和系统,包括:(1)远程安全异构计算服务初始化,用户端、主机端SGX可信空间、GPU设备端生成公私钥,广播并获取彼此公钥;(2)加密传输数据;(3)参与方解密数据并进行加速计算;(4)在完成计算后,用户请求数据清理,清理可信空间内外的密钥、数据。系统基于Intel SGX安全硬件、Nvidia CUDA的驱动和运行时的支持,利用SGX的可信飞地(enclave)机制,实现安全可靠的全信道异构计算,保障敏感数据可以在加速设备(GPU)上进行计算的同时,不会在网络传输过程中、主机内存上、与设备I/O过程中被攻击者或具有特权的恶意程序窥探。
Description
技术领域
本发明涉及机器学习数据安全保护领域,具体涉及一种基于SGX的远程安全异构计算方法和系统。
背景技术
机器学习在图像识别、语音翻译等领域都有着优异的表现,因而被广泛地应用在相关的应用场景中。大数据时代无论是金融授信风控或在线营销等都离不开数据,数据质量和数量已成为影响机器学习效果最重要的因素之一,通过数据共享扩充数据量以提升模型效果的需求已经变得越来越强烈。
然而,由于在数据隐私方面存在安全问题,行业应用领域大数据积累形成的多部门数据间没有共享的安全条件。这些安全问题存在于本地用户与云服务器之间、云服务器端的CPU和GPU之间。例如,本地用户向云服务器发送计算模型所使用的数据时,可能有第三方进行监听,窃取敏感数据甚至恶意篡改数据,造成隐私数据的泄露或者计算资源的浪费。同样,在服务器端,CPU与GPU之间的信息交互也可能会有上述的风险,这给无论是本地用户还是云服务器都带来了非常大的潜在危险。
基于现况,可信执行环境TEE技术,如Intel SGX软件扩展指令技术得到了发展,在机器学习数据交互的过程中引入该技术是解决问题的一种方法。Intel SGX是Intel架构新的扩展,在原有架构上增加了一组新的指令集和内存访问机制。这些扩展允许应用程序实现一个被称为enclave的容器,在应用程序的地址空间中划分出一块被保护的区域,为容器内的代码和数据提供机密性和完整性的保护,免受拥有特殊权限的恶意软件的破坏。此技术可以用于增强纯CPU主机的数据安全保护功能,是能够为现有CPU硬件环境操作系统提供安全的方案。
但目前的保护仍然存在不足,在当前机器学习算法运行的框架环境下,传统CPU计算环境无法满足快速需求,GPU作为专门的运算模块得到了广泛的应用。然而,GPU的存在也扩大了硬件系统的受攻击面。OpenMined提出的PySyft通过将模型带入本地的训练数据,利用SGX保护了共同训练同一个模型的多个用户各自的隐私数据,但该方案并没有考虑GPU的使用,因此计算效率相对于常规的机器学习模型运行方法显著偏低。
因此,行业内急需研发一种针对共享智能场景下深度学习等主流机器学习算法环境的数据安全保护技术,基于主流加速硬件GPU和CPU混合异构架构下构建可信执行环境。事实上,已有学者对于GPU硬件支持的可信执行环境进行研究、设计(如Gravition)。在本发明中,我们假设已经存在这样的可信GPU,并同时基于SGX技术设计全信道的可信计算协议。
发明内容
本发明提供一种基于SGX的远程安全异构计算方法和系统,通过Intel SGX安全硬件、Nvidia CUDA的驱动和运行时的支持,利用SGX的可信飞地(enclave)机制,实现安全可靠的全信道异构计算,保障敏感数据可以在加速设备(GPU)上进行计算的同时,不会在网络传输过程中、主机内存上、与设备I/O过程中被攻击者或具有特权的恶意程序窥探。
本发明提供了如下技术方案:
本发明的其中一个目的在于提供一种基于SGX的远程安全异构计算方法,包括以下步骤:
1)初始化:启动远程安全异构计算服务,建立并检测主机端SGX可信空间状态;用户端、主机端SGX可信空间和GPU设备端分别生成公钥和私钥,广播并获取彼此公钥;
2)用户端、主机端SGX可信空间、GPU设备端之间加密传输数据;主机端SGX可信空间或GPU设备端利用私钥解密并计算,并加密回传数据至用户端;
3)用户端请求数据清理,清理主机端SGX可信空间内外的密钥、数据,以及GPU设备端内外的密钥、数据。
进一步的,所述的步骤1)具体为:
远程安全异构计算服务启动,建立并检测SGX可信空间状态;
本地用户远程验证SGX可信空间,随后将用户公钥(e,N)usr广播至主机端和设备端;
SGX可信空间调用密钥生成模块,将生成的SGX私钥(d,N)host封装至内存,并将SGX公钥(e,N)host广播至用户端和设备端;
GPU设备端调用密钥生成模块,将生成的GPU私钥(d,N)dev存储在自身的存储介质中,并将GPU公钥(e,N)dev广播至主机端和用户端。
进一步的,所述的步骤2)具体为:
2.1)用户将待计算的数据传输到服务器的主机端,如果需要主机端先进行数据处理,则用户端利用SGX公钥(e,N)host对数据进行加密,随后直接网络传输至主机端;主机端SGX可信空间利用SGX私钥(d,N)host解密数据,在可信空间内计算完成后再用GPU公钥(e,N)dev对数据进行加密;
如果数据直接供GPU设备端使用,则直接用GPU公钥(e,N)dev对数据进行加密,随后直接网络传输至主机端;
2.2)从主机端内存中传输数据到GPU设备端内存,基于快速幂运算的RSA解密函数,GPU设备端通过GPU私钥(d,N)dev对数据进行解密,在设备端内存上生成一份还原后的数据的明文副本;
2.3)GPU设备端进行加速计算并得到计算结果;
2.4)回传计算结果:
如果计算结果无需主机端继续处理,则GPU设备端将经用户公钥(e,N)usr加密后的所得计算结果通过驱动发送至主机端,主机端再直接将加密的计算结果通过网络协议发送至用户端,用户将计算结果的密文利用用户私钥(d,N)usr解密,得到计算结果;
如果计算结果需要主机端继续处理,则将经SGX公钥(e,N)host加密后的所得结果通过驱动发送至主机端,主机端SGX可信空间利用SGX私钥(d,N)host对加密数据进行解密,随后对数据进行计算、处理;再使用GPU公钥(e,N)dev加密后发送至设备端,执行步骤2.3),或者使用用户公钥(e,N)usr加密后发送至用户端,用户将计算结果的密文利用用户私钥(d,N)usr解密,得到计算结果;
2.5)用户端收到计算结果后,进行数据清理操作:
用户向远程安全异构计算服务发出数据清理请求,远程安全异构计算服务通过数据地址清理主机端SGX可信空间内外的相关数据、密钥,以及清理GPU设备端的相关数据、密钥;清理结束后释放SGX可信空间。
本发明的另一个目的在于提供一种用于实现上述远程安全异构计算方法的系统,包括:
远程认证模块:用于供用户远程验证SGX可信空间,以保证利用正确的公钥加密数据,并向正确的接收方发送加密数据;
密钥生成模块:包括第一密钥生成模块和第二密钥生成模块,分别运行于主机端SGX可信空间内和GPU设备端内存内,通过随机生成质数的方式产生非对称密钥;
SGX加解密模块:运行于主机端SGX可信空间内,用于对接收到的数据进行解密,以及对经SGX可信空间计算后的结果利用接收方的公钥进行加密并传输;
设备端内核加解密模块:运行于GPU设备端内存内,用于对接收到的数据进行解密,以及对经GPU计算后的结果利用接收方的公钥进行加密并传输。
本发明的远程安全异构计算服务系统作为第三方库提供,与需要进行安全云计算的用户的异构计算程序一同编译后运行在远程服务器,提供可靠的异构计算服务;同理,该服务也能编译运行于本地,供有敏感数据异构计算需求的大型组织进行使用,以更好地管理隐私数据。系统中的诸多模块均可进一步改造、替换,如数据加解密算法、密钥种类的选择等。
与现有技术相比,本发明的有益效果为:
1.本发明的远程安全异构计算服务系统具有高可靠性,通过SGX硬件基础、扩展指令、可信GPU存储,对密钥及关键数据进行保护,且所有在非可信区域上的敏感数据均始终处于加密状态,攻击者便无法对任何用户敏感数据或密钥进行窥探。
2.本发明通过在可信空间内随机生成的非对称密钥对数据进行保护,使得数据不会在用户与主机网络传输中、主机内存或硬盘上、主机与设备I/O传输中被恶意攻击者窥探。
3.本发明与现有大多数基于SGX的安全保护技术不同,适用于日益关键的异构计算场景,不仅能保护主机上的数据安全,还将SGX的保护范围最大化延伸到了网络传输、I/O传输等过程。基于合理的GPU可信执行环境的假设,该协议可以实现全信道的数据安全加密防护。即便没有可信GPU,也可以通过地址混淆等简单手段大大增强数据传输的安全性。
4.在实现上,本发明不需对GPU运行时、驱动等底层代码直接修改,可以直接在已有代码基础上一同编译,有极高的实用性。
附图说明
图1为本发明的协议流程图;
图2为本发明的协议流程图(附保护、可信区域标注)。
具体实施方式
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
(一)概述
结合示意图,本发明中实现的一种可信安全异构计算系统有共有三个参与方,分别为:
用户端(user)
云平台服务器主机端(host)
云平台服务器加速计算设备端(device)
其中,服务器的主机端和用户端通过TCP等网络协议连接;服务器的主机端和设备端之间通过PCIE总线连接。
本发明所作出的贡献主要包括用户端的数据在这两条信道上以及在主机端内存上的机密性和完整性,保证用户的机密数据不会在用户与主机网络传输中、主机内存上、主机与设备I/O传输中被泄露。
如图1和图2所示,PU表示公钥,PR表示私钥,下角标cpu表示主机端,gpu表示设备端,user表示用户端。
(二)系统的功能:
包括远程安全异构计算服务初始化、数据传输、数据计算、数据清理操作;
远程安全异构计算服务初始化包括:远程安全异构计算服务启动;SGX可信空间生成非对称密钥、设备端生成非对称密钥、广播公钥;
数据传输操作包括:用户利用SGX公钥将敏感数据加密,发送至主机;用户利用GPU公钥将敏感数据加密,通过数据拷贝接口从主机内存传输至设备显存;主机将敏感数据在SGX可信空间解密并处理,再利用GPU公钥加密后通过数据拷贝接口从主机内存传输至设备显存;主机将敏感数据在SGX可信空间解密并处理,再利用用户公钥加密后通过网络从主机内存传回至本地用户;设备端的计算结果利用SGX公钥加密后,通过数据拷贝接口从设备显存传输至主机内存;设备端的计算结果利用用户公钥加密后,通过数据拷贝接口从设备显存传输至主机内存,再直接传回至本地用户;
数据计算操作包括:在设备端通过设备私钥解密数据,随后根据部署的核函数进行计算;在可信空间通过SGX私钥解密数据,随后进行主机端的数据计算。
数据清理操作包括:清理磁盘、内存、显存上的敏感数据;销毁SGX可信空间及设备端密钥。
远程安全异构计算服务初始化包括:
1.远程安全异构计算服务启动,建立并检测SGX可信空间状态;
2.本地用户远程验证SGX可信空间,随后将公钥广播至主机和设备端;
3.SGX可信空间调用密钥生成模块,将生成的私钥封装至内存,并将公钥广播至用户和设备端;
4.设备端调用密钥生成模块,将生成的私钥封存在可信空间中,并将公钥广播至用户和主机端。
数据传输操作包括:
1.用户可以利用SGX公钥将敏感数据加密,发送至主机;
2.用户可以利用GPU公钥将敏感数据加密,发送至主机后直接通过数据拷贝接口从主机内存传输至设备显存;
3.主机可以将敏感数据在SGX可信空间解密并进行计算,再利用GPU公钥加密后通过数据拷贝接口从主机内存传输至设备显存;
4.主机可以将敏感数据在SGX可信空间解密并处理,再利用用户公钥加密后通过网络从主机内存传回至本地用户;
5.设备端的计算结果利用SGX公钥加密后,通过数据拷贝接口从设备显存传输至主机内存;
6.设备端的计算结果利用用户公钥加密后,通过数据拷贝接口从设备显存传输至主机内存,再直接传回至本地用户。
数据计算操作包括:
1.在设备端通过GPU私钥对加密的敏感数据进行解密;在可信空间通过SGX私钥解密数据;
2.在GPU上根据部署的核函数对数据进行加速计算;在SGX可信空间内根据部署的SGX指令进行主机端安全数据计算。
3.计算完成后,按照前述数据传输操作进行加密传输。
数据清理操作包括:
1.用户向远程安全异构计算服务发出数据清理请求;
2.远程安全异构计算服务通过数据地址清理主机可信空间内外的相关数据、密钥;
3.远程安全异构计算服务清理设备端的相关数据、密钥;
4.远程安全异构计算服务释放SGX可信空间。
本发明还公开了该远程安全异构计算协议所依赖的系统,包括:
1.远程认证模块:用户可以验证SGX可信空间,以保证利用正确的公钥加密数据,并向正确的接收方发送加密数据;
2.密钥生成模块:有两个版本,可以分别运行于SGX可信空间内、GPU设备上,通过随机生成质数产生非对称密钥;
3.SGX加解密模块:运行于SGX可信空间内,在可信空间内对数据进行解密后进行主机部分的可信计算,再将计算结果用合适的公钥加密后发送至需要数据的一方(用户或设备);
4.设备端内核加解密模块:运行于GPU上,对加密数据后进行解密,供后续加速计算使用,再将计算结果用合适的公钥加密后发送至需要数据的一方(主机或用户)。
(三)基于SGX的远程安全异构计算协议及实现
协议实现流程如下:
1.远程安全异构计算服务启动,建立并检测SGX可信空间状态。
2.本地用户远程验证SGX可信空间,随后将用户公钥(e,N)usr广播至主机端和设备端(过程无需保密,需用md5哈希值保证公钥的完整性)。
3.SGX可信空间调用密钥生成模块,将生成的SGX私钥(d,N)host封装至内存,并将SGX公钥(e,N)host广播至用户端和设备端(过程无需保密,需用md5哈希值保证公钥的完整性)。
a)本方案中选择并实现了RSA密钥系统作为非对称密钥系统,在SGX可信空间中实现了完整RSA的随机数的生成、素性的检验、公私钥生成的过程,并在独立于外部条件下正确运行。本步骤中不排斥使用其他的非对称密钥系统如ECC密钥系统来实现;
b)生成随机数的关键步骤中采用了读取时钟方法生成伪随机数,但并不排斥其他SGX可信空间内支持的(单线程)提供随机性的方法。素性验证需要保证在远低于暴力分解的时间复杂度下验证随机生成的素数的素性。本方案中选取椭圆曲线素性测试法在密钥长度的多项式时间内生成指定长度的密钥;
c)在上述过程中,SGX私钥(d,N)host在可信空间生成后封装(seal)至不可信内存,此时对于攻击者及一切外界应用不可见,只有在SGX可信空间中才能进行解封装(unseal),安全性由硬件保证。
4.设备端调用密钥生成模块,生成公私钥对(d,N)dev,(e,N)dev并存储在自身的存储介质中,并将GPU公钥(e,N)dev广播至主机端和用户端(过程无需保密,需用md5哈希值保证公钥的完整性)。
a)本方案中选择并实现了RSA密钥系统作为非对称密钥系统,在设备端实现了完整RSA的随机数的生成、素性的检验、公私钥生成的过程,并在独立于主机端的条件下正确运行。本步骤中不排斥使用其他的非对称密钥系统如ECC密钥系统来实现;
b)生成随机数的关键步骤中采用了读取时钟方法生成伪随机数,但并不排斥其他提供随机性的方法,如多线程竞态条件、Nvidia cuRAND库等。素性验证需要保证在远低于暴力分解的时间复杂度下验证随机生成的素数的素性。本方案中选取椭圆曲线素性测试法在密钥长度的多项式时间内生成指定长度的密钥;
c)将生成的私钥(d,N)dev封存在GPU可信空间中,对于可信GPU,从主机端将无法直接访问可信GPU显存,安全性由硬件保证。
5.用户将数据传输到服务器的主机端:
a)如果需要主机先进行处理数据,则用SGX公钥(e,N)host对数据进行加密,随后直接网络传输至主机;主机可信空间可以利用SGX私钥(d,N)host解密数据,在可信空间计算完成后再用GPU公钥(e,N)dev对数据进行加密,再进行下一步;
b)如果数据直接供GPU使用,则直接用GPU公钥(e,N)dev对数据进行加密,随后直接网络传输至主机,再进行下一步。
6.从主机内存中传输数据到设备端内存。在该过程中,使用不需要另加修改的设备提供商提供的原生驱动和接口,如Nvidia CUDA runtime定义的cudaMemcpy()函数。超长而不能全部保存在设备端的数据按指定的长度分段处理,多次发送,保证设备内存足够容纳。
本发明中在设备端独立实现了基于快速幂运算的RSA解密函数,设备通过GPU私钥(d,N)dev对数据进行解密,在设备内存上生成一份还原后的数据的明文副本。加密、传输、解密操作可以封装为secureCudaMemcpy()函数,以供用户方便地调用。
7.设备端进行加速计算并得到计算结果。本方案中调用了CUBLAS库对向量计算进行了性能调优。
8.如果希望设备端直接将结果回传给用户,则:
a)将经用户公钥(e,N)usr加密后的所得结果encryptusr(r)通过驱动发送至主机端。本方案对基于快速幂运算的RSA加密函数在设备端进行了独立实现。发送过程仍然使用设备提供商提供的原生驱动和接口,全过程同样可以封装为secureCudaMemcpy()函数。
b)主机端直接通过网络协议(如TCP协议)发送至用户。
c)用户将计算结果的密文利用用户私钥(d,N)usr解密,得到计算结果。
9.如果希望主机进一步处理结果,则:
a)将经SGX公钥加密后的所得结果encryptusr(r)通过驱动发送至主机端。本方案对基于快速幂运算的RSA加密函数在设备端进行了独立实现。发送过程仍然使用设备提供商提供的原生驱动和接口,全过程同样可以封装为secureCudaMemcpy()函数。
b)SGX可信空间利用SGX私钥(d,N)host对加密数据进行解密,随后对数据进行计算、处理,再根据需求使用用户或设备的公钥加密,通过前步骤类似的方法发送至用户或设备端。
c)如果出现SGX可信空间内存不足的情况,则可信空间同样可以将部分数据封装至不可信内存并释放可信空间,不会以明文形式向主机端内存中泄露密钥的任何部分。
10.用户在计算结束后,进行数据清理操作:
a)用户向远程安全异构计算服务发出数据清理请求;
b)远程安全异构计算服务通过数据地址清理主机可信空间内外的相关数据、密钥;
c)远程安全异构计算服务清理设备端的相关数据、密钥;
d)远程安全异构计算服务释放SGX可信空间。
由图2所示,所有在非可信区域上的敏感数据均始终处于加密状态,用户数据不会在用户与主机网络传输中、主机内存或硬盘上、主机与设备I/O传输中被恶意攻击者窥探,将SGX的保护范围最大化延伸到了网络传输、I/O传输等过程,大大增强数据传输的安全性。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (9)
1.一种基于SGX的远程安全异构计算方法,其特征在于,包括以下步骤:
1)初始化:启动远程安全异构计算服务,建立并检测主机端SGX可信空间状态;用户端、主机端SGX可信空间和GPU设备端分别生成公钥和私钥,广播并获取彼此公钥;
2)用户端、主机端SGX可信空间、GPU设备端之间加密传输数据;主机端SGX可信空间或GPU设备端利用私钥解密并计算,并加密回传数据至用户端;
所述的步骤2)具体为:
2.1)用户将待计算的数据传输到服务器的主机端,如果需要主机端先进行数据处理,则用户端利用SGX公钥(e, N)host对数据进行加密,随后直接网络传输至主机端;主机端SGX可信空间利用SGX私钥(d, N)host解密数据,在可信空间内计算完成后再用GPU公钥(e,N)dev对数据进行加密;
如果数据直接供GPU设备端使用,则直接用GPU公钥(e, N)dev对数据进行加密,随后直接网络传输至主机端;
2.2)从主机端内存中传输数据到GPU设备端内存,基于快速幂运算的RSA解密函数,GPU设备端通过GPU私钥(d, N)dev对数据进行解密,在设备端内存上生成一份还原后的数据的明文副本;
2.3)GPU设备端进行加速计算并得到计算结果;
2.4)回传计算结果:
如果计算结果无需主机端继续处理,则GPU设备端将经用户公钥(e, N)usr加密后的所得计算结果通过驱动发送至主机端,主机端再直接将加密的计算结果通过网络协议发送至用户端,用户将计算结果的密文利用用户私钥(d, N)usr解密,得到计算结果;
如果计算结果需要主机端继续处理,则将经SGX公钥(e, N)host加密后的所得结果通过驱动发送至主机端,主机端SGX可信空间利用SGX私钥(d, N)host对加密数据进行解密,随后对数据进行计算、处理;再使用GPU公钥(e, N)dev加密后发送至设备端,执行步骤2.3),或者使用用户公钥(e, N)usr加密后发送至用户端,用户将计算结果的密文利用用户私钥(d,N)usr解密,得到计算结果;
2.5)用户端收到计算结果后,进行数据清理操作:
用户向远程安全异构计算服务发出数据清理请求,远程安全异构计算服务通过数据地址清理主机端SGX可信空间内外的相关数据、密钥,以及清理GPU设备端的相关数据、密钥;清理结束后释放SGX可信空间;
3)用户端请求数据清理,清理主机端SGX可信空间内外的密钥、数据,以及GPU设备端内外的密钥、数据。
2.根据权利要求1所述的基于SGX的远程安全异构计算方法,其特征在于,所述的步骤1)具体为:
远程安全异构计算服务启动,建立并检测SGX可信空间状态;
本地用户远程验证SGX可信空间,随后将用户公钥(e, N)usr广播至主机端和设备端;
SGX可信空间调用密钥生成模块,将生成的SGX私钥(d, N)host封装至内存,并将SGX公钥(e, N)host广播至用户端和设备端;
GPU设备端调用密钥生成模块,将生成的GPU私钥(d, N)dev存储在自身的存储介质中,并将GPU公钥(e, N)dev广播至主机端和用户端。
3.根据权利要求2所述的基于SGX的远程安全异构计算方法,其特征在于,所述的密钥生成模块采用RSA非对称密钥系统。
4. 根据权利要求2所述的基于SGX的远程安全异构计算方法,其特征在于,所述的GPU私钥(d, N)dev存储在可信GPU显存中,从主机端无法直接访问可信GPU显存。
5.根据权利要求2所述的基于SGX的远程安全异构计算方法,其特征在于,所述的SGX私钥在SGX可信空间生成后并封装至不可信内存,此时对于攻击者及一切外界应用不可见,只有在SGX可信空间中才能进行解封装。
6.根据权利要求2所述的基于SGX的远程安全异构计算方法,其特征在于,在广播公钥时,利用md5哈希值保证公钥的完整性。
7.根据权利要求1所述的基于SGX的远程安全异构计算方法,其特征在于,在执行步骤2.4)时,如果出现SGX可信空间内存不足的情况,则SGX可信空间同样将部分数据封装至不可信内存并释放可信空间,不会以明文形式向主机端内存中泄露密钥。
8.一种用于实现权利要求1所述远程安全异构计算方法的系统,其特征在于,包括:
远程认证模块:用于供用户远程验证SGX可信空间,以保证利用正确的公钥加密数据,并向正确的接收方发送加密数据;
密钥生成模块:包括第一密钥生成模块和第二密钥生成模块,分别运行于主机端SGX可信空间内和GPU设备端内存内,通过随机生成质数的方式产生非对称密钥;
SGX加解密模块:运行于主机端SGX可信空间内,用于对接收到的数据进行解密,以及对经SGX可信空间计算后的结果利用接收方的公钥进行加密并传输;
设备端内核加解密模块:运行于GPU设备端内存内,用于对接收到的数据进行解密,以及对经GPU计算后的结果利用接收方的公钥进行加密并传输。
9.根据权利要求8所述的系统,其特征在于,所述的第一密钥生成模块和第二密钥生成模块采用RSA非对称密钥系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653732.0A CN113591098B (zh) | 2021-06-11 | 2021-06-11 | 一种基于sgx的远程安全异构计算方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653732.0A CN113591098B (zh) | 2021-06-11 | 2021-06-11 | 一种基于sgx的远程安全异构计算方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113591098A CN113591098A (zh) | 2021-11-02 |
CN113591098B true CN113591098B (zh) | 2024-03-26 |
Family
ID=78243669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110653732.0A Active CN113591098B (zh) | 2021-06-11 | 2021-06-11 | 一种基于sgx的远程安全异构计算方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113591098B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817936B (zh) * | 2022-05-31 | 2024-06-25 | 苏州浪潮智能科技有限公司 | 基于异构内存的内存全加密管理方法、装置、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609971A (zh) * | 2012-01-11 | 2012-07-25 | 南京大学 | 嵌入式gpu实现3d-gis的快速渲染系统 |
CN108462689A (zh) * | 2017-02-22 | 2018-08-28 | 英特尔公司 | 用于远程sgx飞地认证的技术 |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
CN109101822A (zh) * | 2018-07-10 | 2018-12-28 | 西安交通大学 | 一种解决多方计算中数据隐私泄露问题的方法 |
CN110458280A (zh) * | 2019-07-15 | 2019-11-15 | 武汉魅瞳科技有限公司 | 一种适用于移动端的卷积神经网络加速方法及系统 |
KR20190142910A (ko) * | 2018-06-19 | 2019-12-30 | 한국과학기술원 | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 |
CN110999255A (zh) * | 2019-03-29 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 使用高可用性的可信执行环境检索区块链网络的访问数据 |
CN111082934A (zh) * | 2019-12-31 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的跨域安全多方计算的方法及装置 |
CN111582496A (zh) * | 2020-04-26 | 2020-08-25 | 暨南大学 | 一种基于sgx的安全高效的深度学习模型预测系统和方法 |
-
2021
- 2021-06-11 CN CN202110653732.0A patent/CN113591098B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609971A (zh) * | 2012-01-11 | 2012-07-25 | 南京大学 | 嵌入式gpu实现3d-gis的快速渲染系统 |
CN108462689A (zh) * | 2017-02-22 | 2018-08-28 | 英特尔公司 | 用于远程sgx飞地认证的技术 |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
KR20190142910A (ko) * | 2018-06-19 | 2019-12-30 | 한국과학기술원 | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 |
CN109101822A (zh) * | 2018-07-10 | 2018-12-28 | 西安交通大学 | 一种解决多方计算中数据隐私泄露问题的方法 |
CN110999255A (zh) * | 2019-03-29 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 使用高可用性的可信执行环境检索区块链网络的访问数据 |
CN110458280A (zh) * | 2019-07-15 | 2019-11-15 | 武汉魅瞳科技有限公司 | 一种适用于移动端的卷积神经网络加速方法及系统 |
CN111082934A (zh) * | 2019-12-31 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 基于可信执行环境的跨域安全多方计算的方法及装置 |
CN111582496A (zh) * | 2020-04-26 | 2020-08-25 | 暨南大学 | 一种基于sgx的安全高效的深度学习模型预测系统和方法 |
Non-Patent Citations (3)
Title |
---|
"EduCoin a Secure and Efficient Payment Solution for MOOC Environment";Lingling Lu et al.;《2019 IEEE International Conference on Blockchain (Blockchain)》;20200102;第490-495页 * |
"基于SGX的区块链交易隐私安全保护方法";范俊松等;《应用科学学报》;20210131;第17-28页 * |
抗电路板级物理攻击的操作系统防御技术研究;张倩颖;赵世军;;软件学报;20201014(第10期);第3120-3146页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113591098A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181720B (zh) | 基于可信执行环境的业务处理方法及装置 | |
US10579793B2 (en) | Managed securitized containers and container communications | |
US20240126930A1 (en) | Secure Collaboration Between Processors And Processing Accelerators In Enclaves | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
CN110214440B (zh) | 计算系统,传送受保护数据的方法和可读存储介质 | |
CN103069428B (zh) | 不可信云基础设施中的安全虚拟机引导 | |
CN110249336B (zh) | 使用签名密钥对可信执行环境的寻址 | |
KR20050085678A (ko) | 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션 | |
CN110235134B (zh) | 使用洁净室供应来寻址可信执行环境 | |
JP7256862B2 (ja) | 保護されたコンテナ間のセキュア通信方法およびそのシステム | |
US20100161956A1 (en) | Method and Apparatus for Protected Code Execution on Clients | |
Chang et al. | User-friendly deniable storage for mobile devices | |
KR20150050231A (ko) | 폐쇄 도메인에서의 키 생성 장치 및 방법 | |
CN113591098B (zh) | 一种基于sgx的远程安全异构计算方法和系统 | |
CN116886356B (zh) | 一种芯片级透明文件加密存储系统、方法及设备 | |
WO2023246509A1 (zh) | 用于处理基因数据的方法、装置、设备和介质 | |
CN114615087B (zh) | 数据共享方法、装置、设备及介质 | |
CN115001744B (zh) | 一种云平台数据完整性验证方法及系统 | |
CN108154037B (zh) | 进程间的数据传输方法和装置 | |
CN112688781A (zh) | 密钥处理方法及装置 | |
CN110519054A (zh) | 一种基于可信计算技术进行物联网数据安全保护的方法 | |
WO2019133298A1 (en) | Managed securitized containers and container communications | |
JP7385025B2 (ja) | 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行 | |
CN112039852B (zh) | 一种核心接口保护的方法、存储介质、电子设备及系统 | |
CN110955883B (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 |