CN111582496B - 一种基于sgx的安全高效的深度学习模型预测系统和方法 - Google Patents

一种基于sgx的安全高效的深度学习模型预测系统和方法 Download PDF

Info

Publication number
CN111582496B
CN111582496B CN202010338636.2A CN202010338636A CN111582496B CN 111582496 B CN111582496 B CN 111582496B CN 202010338636 A CN202010338636 A CN 202010338636A CN 111582496 B CN111582496 B CN 111582496B
Authority
CN
China
Prior art keywords
model
deep learning
data
sgx
server module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010338636.2A
Other languages
English (en)
Other versions
CN111582496A (zh
Inventor
翁健
黄宏伟
杨雅希
罗伟其
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan University
Original Assignee
Jinan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan University filed Critical Jinan University
Priority to CN202010338636.2A priority Critical patent/CN111582496B/zh
Publication of CN111582496A publication Critical patent/CN111582496A/zh
Application granted granted Critical
Publication of CN111582496B publication Critical patent/CN111582496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于SGX的安全高效的深度学习模型预测方法,S1、模型提供者终端通过模型导入模块上传深度学习模型,模型导入模块根据SGX中的深度学习计算框架将不同格式的深度学习模型转换为能够在深度学习计算框架中执行的模型;S2、模型使用者终端和SGX中的RPC服务器模块进行密钥协商,得到通信密钥,通信密钥用于加密模型使用者终端提供的待预测数据和SGX中的深度学习模型的预测结果;S3、模型使用者终端利用通信密钥对待预测数据进行签名、加密和对预测结果进行解密和验证,本发明借助SGX,基于SGX运行深度学习模型,保证模型运行过程中数据的机密性和完整性,同时也能够保证模型本身的机密性和完整性。

Description

一种基于SGX的安全高效的深度学习模型预测系统和方法
技术领域
本发明涉及机器学习安全技技术领域,具体涉及一种基于SGX的安全高效的深度学习模型预测系统和方法。
背景技术
机器学习,特别是深度学习,作为人工智能领域的代表,在包括图像识别、语音翻译的等领域表现出优异的表现,因而被人们大量地应用在相关的应用场景中,解决一系列实际的问题,包括身份认证、步态识别等。
然而,深度学习模型在部署使用的过程中面临着各种安全问题,这些安全问题存在与深度学习模型与用户之间、用户和深度学习模型所在的服务器之间。例如,用户和模型之间进行数据传输时,可能存在第三者对数据进行窃听,从而造成敏感信息泄漏;或者对数据进行篡改,从而对计算资源造成浪费;此外,由于深度学习模型所在的服务器可能存在恶意行为,此时用户传输到服务器上的敏感数据可能会被恶意的服务器直接窃取和篡改;另一方面,模型提供者也希望保护自身已训练好的模型,避免模型在预测过程中将诸如参数、结构、对应的训练数据集等与模型相关的信息暴露给外界。例如,目前已有一种针对模型训练的成员推断攻击,能够推测出攻击者模型的输入样本是否输入模型的训练数据。而包括模型中间层的激活函数输出和损失函数值等等,都可能会被恶意服务器加以利用从而发起攻击。这些安全问题的发生都会给模型使用者终端和模型提供者带来不可预估的风险。
在深度学习中引入SGX(Software Guard Extensions,英特尔软件保护扩展)对上述问题提供一种解决方法。Tople等人提出在SGX中完成深度学习的预测过程,但是该方案没有考虑用户和机器学习模型之间的数据安全;Lucjan等人提出了在SGX中完成模型预测的方法,但是该解决方法是将模型放置在用户端的SGX环境中运行,而不使用服务器的计算资源。这样除了会闲置服务器的计算资源外,还会增加客户端与服务器之间的通信代价。同时,所有这些方案仅支持模型使CPU完成预测过程,并没有考虑GPU的使用,因此效率相对于常规的深度学习模型运行方法偏低。
因此,行业内急需研发一种能够保证模型运行过程中数据、模型本身的机密性和完整性的安全高效的深度学习模型预测方法。
发明内容
本发明的目的是为了克服以上现有技术存在的不足,提供了一种能够保证模型运行过程中数据、模型本身的机密性和完整性的基于SGX的安全高效的深度学习模型预测系统和方法。
本发明的目的通过以下的技术方案实现:
一种基于SGX的安全高效的深度学习模型预测系统,包括:模型提供者终端、模型使用者终端和服务器;服务器包括模型导入模块、数据加密模块、RPC(Remote ProcedureCall)服务器模块以及GPU(Graphics Processing Unit,图形处理器)加速模块;模型提供者终端,用于将不同格式的深度学习模型发送至模型导入模块;模型使用者终端,用于和RPC服务器模块约定密钥,根据约定后的密钥对待预测数据进行签名和加密,并将加密后的待预测数据发送至RPC服务器模块;模型导入模块,用于根据SGX中的深度学习执行框架,将模型提供者终端上传的不同格式的深度学习模型转换为能够在RPC服务器模块的深度学习计算框架上运行的模型;数据加密模块,用于解密外部传入SGX的加密数据,并且加密SGX对外输出的数据;RPC服务器模块,位于SGX内部的深度学习模型RPC服务器模块,用于加载经由模型导入模块转换得到的模型文件,将用户输入的数据发送至深度学习模型以获得预测结果,并且将预测结果返回给用户;GPU加速模块,用于完成深度学习模型预测过程的线性运算。
一种基于SGX的安全高效的深度学习模型预测方法,包括:
S1、模型提供者终端通过模型导入模块上传深度学习模型,模型导入模块根据SGX中的深度学习计算框架将不同格式的深度学习模型转换为能够在深度学习计算框架中执行的模型;
S2、模型使用者终端和SGX中的RPC服务器模块进行密钥协商,得到通信密钥,通信密钥用于加密模型使用者终端提供的待预测数据和SGX中的深度学习模型的预测结果;
S3、模型使用者终端利用通信密钥对待预测数据进行签名、加密,再将加密数据发送至RPC服务器模块;
S4、RPC服务器模块使用通信密钥对加密数据解密,得到明文数据,再对签名进行验证;若验证通过,明文数据被输入至深度学习模型;
S6、GPU加速模块接收RPC服务器模块发送的添加了掩码的数据,对该数据进行线性运算后,GPU加速模块将数据返回给RPC服务器模块;RPC服务器模块将数据去除掩码,并将数据发送至深度学习模型,进行下一步运算,重复步骤S6直至模型预测结束;
S7、RPC服务器模块对预测结果进行签名,并利用通信密钥进行加密,将加密结果返回给模型使用者终端,模型使用者终端使用通信密钥,对加密结果进行解密并验证签名,即可得到预测结果。
优选地,步骤S1包括:
S101、模型提供者终端将深度学习模型m上传至服务器;
S102、服务器使用模型导入模块将深度学习模型m转换为SGX中深度学习计算框架所支持的深度学习模型m′;
S103、服务器将深度学习模型m′放置到深度学习模型库Poolmodel中,并更新深度学习模型库的模型索引。
优选地,步骤S2包括:
S201、RPC服务器模块确定素数p以及该素数的原根g,并使用模型使用者终端的公钥PKa加密素数p和原根g,将加密后的素数和原根发送给模型使用者终端;
S202、模型使用者终端使用私钥解密得到素数p和原根g后,生成随机数r1,该随机数满足1≤r1≤p-1,并计算
Figure BDA0002467671900000041
随后将
Figure BDA0002467671900000042
发送给RPC服务器模块;
S203、RPC服务器模块自行生成随机数r2,该随机数满足1<=r2<=p-1,并计算
Figure BDA0002467671900000043
随后将
Figure BDA0002467671900000044
发送给模型使用者终端;
S204、模型使用者终端计算
Figure BDA0002467671900000045
RPC服务器模块计算
Figure BDA0002467671900000046
若Ka=Kb,则将Ka和Kb分别作为模型使用者终端和RPC服务器模块之间的通信密钥。
优选地,步骤S3包括:
S301、模型使用者终端利用私钥SKa对待预测数据x和模型标签tm进行签名,得到签名signx,即
Figure BDA0002467671900000047
S302、模型使用者终端利用通信密钥Ka,对待预测数据进行签名、加密,得到密文c,即
Figure BDA0002467671900000048
并将密文发送至RPC服务器模块。
优选地,步骤S4包括:
S401、RPC服务器模块使用通信密钥Kb对密文c进行解密,即
Figure BDA0002467671900000051
若成功解密,则执行步骤S402;否则返回错误信息;
S402、RPC服务器模块得到解密结果(x||tm||signx),并使用公钥PKa验证签名signx;若验证通过,则执行步骤S403;否则返回错误信息;
S403、RPC服务器模块根据模型标签tm,从深度学习模型库中索引到深度学习模型m′,将深度学习模型m′加载于GPU显存和SGX的内存中,将解密结果x作为深度学习模型m′的输入。
优选地,步骤S5和S6包括:
S601、SGX中的RPC服务器模块首先从域
Figure BDA0002467671900000052
中选择随机数ri,并且根据权重矩阵Wi和偏置bi,计算出随机数ri对应的线性计算结果ui,即ui=Wiri,ui作为掩码;其中对于需要外包给GPU运算的第i层线性运算,其权重为维度是mi×ni的矩阵Wi,偏置为bi
S602、RPC服务器模块为需要进行线性计算的数据xi加上掩码ui,得到
Figure BDA0002467671900000053
Figure BDA0002467671900000054
并将
Figure BDA0002467671900000055
发送给GPU加速模块;
S603、GPU加速模块对
Figure BDA0002467671900000056
完成线性运算,即
Figure BDA0002467671900000057
并将
Figure BDA0002467671900000058
发送给RPC服务器模块;
S604、RPC服务器模块将
Figure BDA0002467671900000059
减去掩码ui,得到计算结果yi,即yi=Wixi+bi,深度学习模型将使用yi继续进行下一步运算;重复步骤S601-S604直到深度学习模型预测过程结束。
优选地,步骤S7包括:
S701、RPC服务器模块利用私钥SKb对预测结果p进行签名,得到签名signp,即
Figure BDA00024676719000000510
S702、RPC服务器模块利用通信密钥Kb对预测结果p和签名signp进行加密,得到密文cp,即
Figure BDA0002467671900000061
并将cp发送至模型使用者终端;
S703、模型使用者终端利用通信密钥Ka对密文cp进行解密,得到(p||signp),利用RPC服务器模块的公钥PKb验证签名signp,确保结果的完整性,若验证成功,则说明预测结果正确。
本发明相对于现有技术具有如下优点:
(1)本发明借助Intel SGX,基于SGX运行深度学习模型,保证模型运行过程中数据的机密性和完整性,同时也能够保证模型本身的机密性和完整性。
(2)本发明对用户和深度学习之间的数据进行签名和加密,保证传输过程中数据的机密性和完整性。
(3)本发明设定了模型转换模块,使得不同框架的深度学习模型能够在统一的计算框架下完成预测。
(4)本发明利用了GPU的计算能力,通过将SGX深度学习模型的线性运算外包至GPU的方式,加速模型的预测过程。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的基于SGX的安全高效的深度学习模型预测系统的结构示意图。
图2是本发明的SGX示意图。
如图,SGX Enclave容器位于处理器保留内存PRM(processor reserved memory)中,存有受保护的数据和代码,SGX Enclave容器外部的应用程序无法直接访问SGXEnclave容器内部的数据,两者只能通过SGX Enclave容器预先给定的接口进行交互。此外,系统级代码也无法访问SGX Enclave容器中的数据和代码。因此SGX Enclave能够保证中的数据和代码机密性和完整性。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
参见图1-2、一种基于SGX的安全高效的深度学习模型预测系统,包括:模型提供者终端、模型使用者终端和服务器;服务器包括模型导入模块、数据加密模块、RPC(RemoteProcedure Call)服务器模块以及GPU加速模块;模型提供者终端,用于将不同格式的深度学习模型发送至模型导入模块;模型使用者终端,用于和RPC服务器模块约定密钥,根据约定后的密钥对待预测数据进行签名和加密,并将加密后的待预测数据发送至RPC服务器模块;模型导入模块,用于根据SGX中的深度学习执行框架,将模型提供者终端上传的不同格式的深度学习模型转换为能够在RPC服务器模块的深度学习计算框架上运行的模型;数据加密模块,用于解密外部传入SGX的加密数据,并且加密SGX对外输出的数据;RPC服务器模块,为位于SGX内部的深度学习模型RPC服务器模块,用于加载经由模型导入模块转换得到的模型文件,将用户输入的数据发送至深度学习模型以获得预测结果,并且将预测结果返回给用户;GPU加速模块,用于完成深度学习模型预测过程的线性运算。
其中,服务器为模型提供者私有服务器,其在物理上是一台计算机;该计算机能够构建SGX Enclave,由SGX指代,而SGX内部运行着RPC服务器模块,此RPC服务器模块为软件程序。
其中数据加密模块负责对服务器和模型使用者终端之间通讯数据进行加密,加密密钥由SGX进行维护,从而保证了用户输入数据和模型输出数据都经过签名和加密,避免了敏感信息泄漏。位于SGX内部的RPC(Remote Procedure Call)服务器模块负责加载经过转换的深度学习模型,保证深度学习模型在运行过程中的机密性和完整性,并且负责对用户的数据进行解密和验证签名,对深度学习模型的预测结果进行签名和加密,同时对外提供与深度学习模型进行交互的接口,从而方便SGX中的深度学习模型与外界进行数据交互;GPU加速模块用于完成深度学习模型预测过程的线性运算,从而加快模型的整个预测过程。通过密码学方法保证GPU加速模块和SGX中RPC服务器之间数据的机密性和完整性可。本发明既保护了模型运行过程中数据和模型本身两方面的机密性和完整性,又保护用户和深度学习模型之间通信数据的机密性和完整性。
适用于上述基于SGX的安全高效的深度学习模型预测系统的一种基于SGX的安全高效的深度学习模型预测方法,包括:
S1、模型提供者终端通过模型导入模块上传深度学习模型,模型导入模块根据SGX中的深度学习计算框架将不同格式的深度学习模型转换为能够在深度学习计算框架中执行的模型;具体地,步骤S1包括:
S101、模型提供者终端将深度学习模型m上传至服务器;
S102、服务器使用模型导入模块将深度学习模型m转换为SGX中深度学习计算框架所支持的深度学习模型m′;
S103、服务器将深度学习模型m′放置到深度学习模型库Poolmodel中,并更新深度学习模型库的模型索引。
S2、模型使用者终端和SGX中的RPC服务器模块进行密钥协商,得到通信密钥,通信密钥用于加密模型使用者终端提供的待预测数据和SGX中的深度学习模型的预测结果;具体地,步骤S2包括:
S201、RPC服务器模块确定素数p以及该素数的原根g,并使用模型使用者终端的公钥PKa加密素数p和原根g,将加密后的素数p和原根g发送给模型使用者终端;RPC服务器模块本地运行素数生成算法生成素数p。有又根据数论中存在定理:设p是奇素数,则模p的原根存在。此时可以直接使用原根求解算法求出p的原根g。模型使用者终端的公钥对外公开,RPC服务器模块直接向其索要。
S202、模型使用者终端使用私钥解密得到素数p和原根g后,生成随机数r1,该随机数满足1≤r1≤p-1,并计算
Figure BDA0002467671900000091
随后将
Figure BDA0002467671900000092
发送给RPC服务器模块;模型使用者终端自身持有自己的私钥,对于被自身的公钥加密的数据,它可以使用自己的私钥对其进行解密。
S203、RPC服务器模块自行生成随机数r2,该随机数满足1<=r2<=p-1,并计算
Figure BDA0002467671900000093
随后将
Figure BDA0002467671900000094
发送给模型使用者终端;
S204、模型使用者终端计算
Figure BDA0002467671900000095
RPC服务器模块计算
Figure BDA0002467671900000096
若Ka=Kb,则将Ka和Kb分别作为模型使用者终端和RPC服务器模块之间的通信密钥。
其中,Mod为模运算,
Figure BDA0002467671900000097
变量表示生成通信密钥Kb过程中的中间结果,
Figure BDA0002467671900000098
变量表示生成通信密钥Ka过程中的中间结果。
Figure BDA0002467671900000099
中,g是群内生成元,mod是取模运算,r1是随机数。
S3、模型使用者终端利用通信密钥对待预测数据进行签名、加密,再将加密数据发送至RPC服务器模块具体地,步骤S3包括:
S301、模型使用者终端利用私钥SKa对待预测数据x和模型标签tm进行签名,得到签名signx,即
Figure BDA00024676719000000910
S302、模型使用者终端利用通信密钥Ka,对待预测数据进行签名、加密,得到密文c,即
Figure BDA0002467671900000101
并将密文发送至RPC服务器模块。
S4、RPC服务器模块使用通信密钥对加密数据解密,得到明文数据,再对签名进行验证;若验证通过,明文数据被输入至深度学习模型;具体地,步骤S4包括:
S401、RPC服务器模块使用通信密钥Kb对密文c进行解密,即
Figure BDA0002467671900000102
若成功解密,则执行步骤S402;否则返回错误信息;
S402、RPC服务器模块得到解密结果(x||tm||signx)(明文数据),并使用公钥PKa验证签名signx;若验证通过,则执行步骤S403;否则返回错误信息;
S403、RPC服务器模块根据模型标签tm,从深度学习模型库中索引到深度学习模型m′,将深度学习模型m′加载于GPU显存和SGX的内存中,将解密结果x作为深度学习模型m′的输入。其中,tm是用于索引模型。signx则是签名,用于验证。
S6、GPU加速模块接收RPC服务器模块发送的添加了掩码的数据,对该数据进行线性运算后,GPU加速模块将数据返回给RPC服务器模块;RPC服务器模块将数据去除掩码,并将数据发送至深度学习模型,进行下一步运算,重复步骤S6直至模型预测结束;具体地,步骤S5和S6包括:
S601、SGX中的RPC服务器模块首先从域
Figure BDA0002467671900000103
中选择随机数ri,并且根据权重矩阵Wi和偏置bi,计算出随机数ri对应的线性计算结果ui,即ui=Wiri,ui作为掩码;其中对于需要外包给GPU运算的第i层线性运算,其权重为维度是mi×ni的矩阵Wi,偏置为bi
S602、RPC服务器模块为需要进行线性计算的数据(中间结果)xi加上掩码ui,得到
Figure BDA0002467671900000111
Figure BDA0002467671900000112
并将
Figure BDA0002467671900000113
发送给GPU加速模块;
S603、GPU加速模块对
Figure BDA0002467671900000114
完成线性运算,即
Figure BDA0002467671900000115
并将
Figure BDA0002467671900000116
发送给RPC服务器模块;
S604、RPC服务器模块将
Figure BDA0002467671900000117
减去掩码ui,得到计算结果yi,即yi=Wixi+bi,深度学习模型将使用yi继续进行下一步运算;重复步骤S601-S604直到深度学习模型预测过程结束。
S7、RPC服务器模块对预测结果进行签名,并利用通信密钥进行加密,将加密结果返回给模型使用者终端,模型使用者终端使用通信密钥,对加密结果进行解密并验证签名,即可得到预测结果。具体地,步骤S7包括:
S701、RPC服务器模块利用私钥SKb对预测结果p进行签名,得到签名signp,即
Figure BDA0002467671900000118
S702、RPC服务器模块利用通信密钥Kb对预测结果p和签名signp进行加密,得到密文cp,即cp=EncKb(p||signp),并将cp发送至模型使用者终端;
S703、模型使用者终端利用通信密钥Ka对密文cp进行解密,得到(p||signp),利用RPC服务器模块的公钥PKb验证签名signp,确保结果的完整性,若验证成功,则说明预测结果正确。
上述具体实施方式为本发明的优选实施例,并不能对本发明进行限定,其他的任何未背离本发明的技术方案而所做的改变或其它等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

1.一种基于SGX的安全高效的深度学习模型预测方法,其特征在于,包括:
S1、模型提供者终端通过模型导入模块上传深度学习模型,模型导入模块根据SGX中的深度学习计算框架将不同格式的深度学习模型转换为能够在深度学习计算框架中执行的模型;
S2、模型使用者终端和SGX中的RPC服务器模块进行密钥协商,得到通信密钥,通信密钥用于加密模型使用者终端提供的待预测数据和SGX中的深度学习模型的预测结果;具体包括:
S201、RPC服务器模块素数p该素数的原根g,使用模型使用者终端的公钥PKa加密素数p和原根g,将加密后的素数p和原根g发送给模型使用者终端;
S202、模型使用者终端使用私钥解密得到素数p和原根g后,生成随机数r1,该随机数满足1≤r1≤p-1,并计算
Figure FDA0004061777660000011
随后将
Figure FDA0004061777660000012
发送给RPC服务器模块;其中,mod为取模运算,
Figure FDA0004061777660000013
为gr1对p取模运算后余数的值;
S203、RPC服务器模块自行生成随机数r2,该随机数满足1≤r2≤p-1,并计算
Figure FDA0004061777660000014
随后将
Figure FDA0004061777660000015
发送给模型使用者终端;其中,
Figure FDA0004061777660000016
Figure FDA0004061777660000017
对p取模运算后余数的值;
S204、模型使用者终端计算
Figure FDA0004061777660000018
RPC服务器模块计算
Figure FDA0004061777660000019
若Ka=Kb,则将Ka和Kb分别作为模型使用者终端和RPC服务器模块之间的通信密钥;
S3、模型使用者终端利用通信密钥对待预测数据进行签名、加密,再将加密数据发送至RPC服务器模块;
S4、RPC服务器模块使用通信密钥对加密数据解密,得到明文数据,再对签名进行验证;若验证通过,明文数据被输入至深度学习模型;
S5、明文数据在深度学习模型进行逐层计算;当深度学习模型需要对数据进行线性运算时,这部分数据被RPC服务器模块取出,并且添加掩码;
S6、GPU加速模块接收RPC服务器模块发送的添加了掩码的数据,对该数据进行线性运算后,GPU加速模块将数据返回给RPC服务器模块;RPC服务器模块将数据去除掩码,并将数据发送至深度学习模型,进行下一步运算,重复步骤S6直至模型预测结束;
S7、RPC服务器模块对预测结果进行签名,并利用通信密钥进行加密,将加密结果返回给模型使用者终端,模型使用者终端使用通信密钥,对加密结果进行解密并验证签名,即可得到预测结果。
2.根据权利要求1所述的基于SGX的安全高效的深度学习模型预测方法,其特征在于,步骤S1包括:
S101、模型提供者终端将深度学习模型m上传至服务器;
S102、服务器使用模型导入模块将深度学习模型m转换为SGX中深度学习计算框架所支持的深度学习模型m′;
S103、服务器将深度学习模型m′放置到深度学习模型库Poolmodel中,并更新深度学习模型库的模型索引。
3.根据权利要求1所述的基于SGX的安全高效的深度学习模型预测方法,其特征在于,步骤S3包括:
S301、模型使用者终端利用私钥SKa对待预测数据x和模型标签tm进行签名,得到签名signx,即
Figure FDA0004061777660000021
其中,||为级联符号;
S302、模型使用者终端利用通信密钥Ka,对待预测数据进行签名、加密,得到密文c,即
Figure FDA0004061777660000022
并将密文发送至RPC服务器模块。
4.根据权利要求3所述的基于SGX的安全高效的深度学习模型预测方法,其特征在于,步骤S4包括:
S401、RPC服务器模块使用通信密钥Kb对密文c进行解密,即
Figure FDA0004061777660000031
若成功解密,则执行步骤S402;否则返回错误信息;
S402、RPC服务器模块得到解密结果(x||tm||signx),并使用公钥PKa验证签名signx;若验证通过,则执行步骤S403;否则返回错误信息;
S403、RPC服务器模块根据模型标签tm,从深度学习模型库中索引到深度学习模型m′,将深度学习模型m′加载于GPU显存和SGX的内存中,将解密结果x作为深度学习模型m′的输入。
5.根据权利要求4所述的基于SGX的安全高效的深度学习模型预测方法,其特征在于,步骤S5和S6包括:
S601、SGX中的RPC服务器模块首先从域
Figure FDA0004061777660000032
中选择随机数ri,并且根据权重矩阵Wi和偏置bi,计算出随机数ri对应的线性计算结果ui,即ui=Wiri,ui作为掩码;其中对于需要外包给GPU运算的第i层线性运算,其权重为维度是mi×ni的矩阵Wi,偏置为bi
S602、RPC服务器模块为需要进行线性计算的数据xi加上掩码ui,得到
Figure FDA0004061777660000033
Figure FDA0004061777660000034
并将
Figure FDA0004061777660000035
发送给GPU加速模块;
S603、GPU加速模块对
Figure FDA0004061777660000036
完成线性运算,即
Figure FDA0004061777660000037
并将
Figure FDA0004061777660000038
发送给RPC服务器模块;
S604、RPC服务器模块将
Figure FDA0004061777660000039
减去掩码ui,得到计算结果yi,即yi=Wixi+bi,深度学习模型将使用yi继续进行下一步运算;重复步骤S601-S604直到深度学习模型预测过程结束。
6.根据权利要求5所述的基于SGX的安全高效的深度学习模型预测方法,其特征在于,步骤S7包括:
S701、RPC服务器模块利用私钥SKb对预测结果p进行签名,得到签名signp,即
Figure FDA0004061777660000041
S702、RPC服务器模块利用通信密钥Kb对预测结果p和签名signp进行加密,得到密文cp,即
Figure FDA0004061777660000042
并将cp发送至模型使用者终端;
S703、模型使用者终端利用通信密钥Ka对密文cp进行解密,得到(p||signp),利用RPC服务器模块的公钥PKb验证签名signp,确保结果的完整性,若验证成功,则说明预测结果正确。
7.一种根据权利要求1所述基于SGX的安全高效的深度学习模型预测方法的基于SGX的安全高效的深度学习模型预测系统,其特征在于,包括:模型提供者终端、模型使用者终端和服务器;服务器包括模型导入模块、数据加密模块、RPC服务器模块以及GPU加速模块;
模型提供者终端,用于将不同格式的深度学习模型发送至模型导入模块;
模型使用者终端,用于和RPC服务器模块约定密钥,根据约定后的密钥对待预测数据进行签名和加密,并将加密后的待预测数据发送至RPC服务器模块;
模型导入模块,用于根据SGX中的深度学习执行框架,将模型提供者终端上传的不同格式的深度学习模型转换为能够在RPC服务器模块的深度学习计算框架上运行的模型;
数据加密模块,用于解密外部传入SGX的加密数据,并且加密SGX对外输出的数据;
RPC服务器模块,为位于SGX内部的深度学习模型RPC服务器模块,用于加载经由模型导入模块转换得到的模型文件,将用户输入的数据发送至深度学习模型以获得预测结果,并且将预测结果返回给用户;GPU加速模块,用于完成深度学习模型预测过程的线性运算。
CN202010338636.2A 2020-04-26 2020-04-26 一种基于sgx的安全高效的深度学习模型预测系统和方法 Active CN111582496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010338636.2A CN111582496B (zh) 2020-04-26 2020-04-26 一种基于sgx的安全高效的深度学习模型预测系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010338636.2A CN111582496B (zh) 2020-04-26 2020-04-26 一种基于sgx的安全高效的深度学习模型预测系统和方法

Publications (2)

Publication Number Publication Date
CN111582496A CN111582496A (zh) 2020-08-25
CN111582496B true CN111582496B (zh) 2023-05-30

Family

ID=72120648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010338636.2A Active CN111582496B (zh) 2020-04-26 2020-04-26 一种基于sgx的安全高效的深度学习模型预测系统和方法

Country Status (1)

Country Link
CN (1) CN111582496B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112528299B (zh) * 2020-12-04 2022-03-04 电子科技大学 一种工业应用场景下的深度神经网络模型安全保护方法
CN113591098B (zh) * 2021-06-11 2024-03-26 浙江大学 一种基于sgx的远程安全异构计算方法和系统
CN115543587B (zh) * 2022-11-29 2023-03-07 暨南大学 一种使用寿命驱动的OpenCL应用调度方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066791A (zh) * 2016-12-19 2017-08-18 银江股份有限公司 一种基于病人检验结果的辅助疾病诊断方法
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
CN109308418A (zh) * 2017-07-28 2019-02-05 阿里巴巴集团控股有限公司 一种基于共享数据的模型训练方法及装置
CN109684855A (zh) * 2018-12-17 2019-04-26 电子科技大学 一种基于隐私保护技术的联合深度学习训练方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066791A (zh) * 2016-12-19 2017-08-18 银江股份有限公司 一种基于病人检验结果的辅助疾病诊断方法
CN109308418A (zh) * 2017-07-28 2019-02-05 阿里巴巴集团控股有限公司 一种基于共享数据的模型训练方法及装置
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
CN109684855A (zh) * 2018-12-17 2019-04-26 电子科技大学 一种基于隐私保护技术的联合深度学习训练方法

Also Published As

Publication number Publication date
CN111582496A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN111582496B (zh) 一种基于sgx的安全高效的深度学习模型预测系统和方法
CN111901111B (zh) Sm9密钥生成方法、装置、系统及可读存储介质
CN111131278A (zh) 数据处理方法及装置、计算机存储介质、电子设备
CN111917721B (zh) 基于区块链的属性加密方法
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
CN113141247B (zh) 一种同态加密方法、装置、系统及可读存储介质
Hahn et al. Trustworthy delegation toward securing mobile healthcare cyber-physical systems
CN113055153A (zh) 一种基于全同态加密算法的数据加密方法、系统和介质
Niu et al. Attribute-based searchable encrypted scheme with edge computing for Industrial Internet of Things
Dawson et al. Ensuring Cloud Data Security Using the Soldier Ant Algorithm
CN116170131B (zh) 密文处理方法、装置、存储介质及可信执行设备
CN116527358A (zh) 一种基于cp-abe的边缘计算下时间敏感访问控制方法及装置
Guan et al. Secure and verifiable data access control scheme with policy update and computation outsourcing for edge computing
CN116094688A (zh) 基于同态加密的安全控制方法、装置及系统
JP5651609B2 (ja) 検索可能暗号システム、検索装置、計算装置、及びプログラム
Marquet et al. Secure key management for multi-party computation in mozaik
WO2022137447A1 (ja) 秘匿情報処理システムおよび秘匿情報処理方法
JP6267657B2 (ja) 安全性強化方法、安全性強化システム、安全性強化装置、検証装置、およびプログラム
CN115460020B (zh) 数据共享方法、装置、设备及存储介质
Moon et al. Double random phase encoding schemes with perfect forward secrecy for robust image cryptography
KOTEL et al. A Data Security Algorithm for the Cloud Computing based on Elliptic Curve Functions and Sha3 Signature
Li Research on Key Security Detection Method of Cross Domain Information Sharing Based on PKG Trust Gateway
CN114726543B (zh) 基于报文链的密钥链生成、报文发送及接收方法及装置
Deokar File Transfer on Cloud using Diffie-Hellman Key Exchange in Conjunction with AES Encryption

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