CN117235711A - 一种用于隐私保护的数据处理方法和模型训练设备 - Google Patents
一种用于隐私保护的数据处理方法和模型训练设备 Download PDFInfo
- Publication number
- CN117235711A CN117235711A CN202311285059.5A CN202311285059A CN117235711A CN 117235711 A CN117235711 A CN 117235711A CN 202311285059 A CN202311285059 A CN 202311285059A CN 117235711 A CN117235711 A CN 117235711A
- Authority
- CN
- China
- Prior art keywords
- tee
- ciphertext
- sample data
- algorithm
- model
- 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
- 238000012549 training Methods 0.000 title claims abstract description 141
- 238000003672 processing method Methods 0.000 title description 5
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 130
- 238000000034 method Methods 0.000 claims abstract description 86
- 238000012795 verification Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000003062 neural network model Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000004138 cluster model Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
一种用于隐私保护的模型训练方法和设备,所述模型训练设备包括TEE,TEE中加载有第一算法,所述方法包括:接收多个密文样本数据;将所述多个密文样本数据存储到TEE外;TEE循环进行如下操作:从所述TEE外部获取所述多个密文样本数据中的若干密文样本数据存储到所述TEE内的内存中,对所述若干密文样本数据解密,得到若干明文样本数据,基于所述若干明文样本数据运行所述第一算法,对所述第一模型的当前参数进行更新,得到所述第一模型的第一参数,存储所述第一参数作为所述第一模型的当前参数,删除所述若干密文样本数据。
Description
技术领域
本说明书实施例属于计算机技术领域,尤其涉及一种用于隐私保护的数据处理方法和模型训练设备。
背景技术
可信执行环境(TEE-Trusted Execution Environment)是计算设备中的通过硬件保障的安全可信的执行环境。TEE提供一个隔离的执行环境,使得当在该TEE中运行代码和数据时可以保证不被常规操作系统干扰,从而可以保证放入TEE中的代码和数据的安全性、机密性和完整性。
发明内容
本发明的目的在于提供一种用于隐私保护的数据处理方法,以用于提高TEE内的算法开发效率。
本说明书第一方面提供一种用于隐私保护的模型训练方法,由模型训练设备执行,所述模型训练设备包括可信执行环境TEE,其中,所述TEE中加载有第一算法,所述第一算法用于对第一模型进行模型训练,所述方法包括:
接收多个密文样本数据;
将所述多个密文样本数据存储到TEE外;
所述TEE循环进行如下操作:从所述TEE外部获取所述多个密文样本数据中的若干密文样本数据存储到所述TEE内的内存中,对所述若干密文样本数据解密,得到若干明文样本数据,基于所述若干明文样本数据运行所述第一算法,对所述第一模型的当前参数进行更新,得到所述第一模型的第一参数,存储所述第一参数作为所述第一模型的当前参数,删除所述若干密文样本数据。
本说明书第二方面提供一种模型训练设备,所述模型训练设备包括可信执行环境TEE,其中,所述TEE中加载有第一算法,所述第一算法用于对第一模型进行模型训练,所述模型训练设备包括:
接收单元,用于接收多个密文样本数据;
存储单元,用于将所述多个密文样本数据存储到TEE外;
训练单元,用于使得所述TEE循环进行如下操作:从所述TEE外部获取所述多个密文样本数据中的若干密文样本数据存储到所述TEE内的内存中,对所述若干密文样本数据解密,得到若干明文样本数据,基于所述若干明文样本数据运行所述第一算法,对所述第一模型的当前参数进行更新,得到所述第一模型的第一参数,存储所述第一参数作为所述第一模型的当前参数,删除所述若干密文样本数据。
本说明书第三方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
本说明书第四方面提供一种模型训练设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
本说明书实施例中提供的数据处理方法中,通过由TEE多次循环地从TEE外部获取若干密文样本数据进行对模型的训练,在TEE的内存较小的情况下仍可以进行基于大数据的模型训练过程,从而实现了在保护样本数据中的用户隐私的同时完成模型训练过程。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例中模型训练设备的架构图;
图2为本说明书另一实施例中模型训练设备的架构图;
图3为本说明书一实施例中TEE获取用户数据的加解密密钥的方法流程图;
图4为本说明书一实施例中的基于TEE进行模型训练的方法流程图;
图5为本说明书一实施例中通过读接口读取数据的过程示意图;
图6为本说明书一实施例中通过写接口将数据提供到TEE外部的过程示意图;
图7为本说明书一实施例中的一种模型训练设备的架构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
TEE是基于CPU硬件的安全扩展的、与外部完全隔离的可信执行环境。目前存在多种TEE解决方案,比如软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的SGX(Software Guard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)等。TEE可以起到黑箱作用,在TEE中执行的代码和数据即便是操作系统层都无法偷窥,只有通过代码中预先定义的接口才能对其进行操作。因此,采用TEE技术可以在保护隐私数据的同时进行可信计算。
TEE技术中,以SGX(Software Guard Extension,以下简称SGX)技术为例加以说明。计算设备可以基于SGX技术创建enclave(围圈或飞地),以作为用于执行数据处理的TEE。其中,计算设备利用CPU中新增的处理器指令,在内存中可以分配一部分区域EPC(Enclave Page Cache,围圈页面缓存或飞地页面缓存),以用于驻留上述的Enclave。上述EPC对应的内存区域被CPU内部的内存加密引擎MEE(Memory Encryption Engine)加密,该内存区域中的内容(enclave中的代码和数据)只有在CPU内核中才能够被解密,且用于加解密的密钥只有在EPC启动时生成并存储在CPU中。可见,Enclave的安全边界只包含其自身和CPU,无论是特权软件或非特权软件都无法访问Enclave,即便是操作系统管理员和VMM(Virtual Machine Monitor,虚拟机监测器;或称为Hypervisor)也无法影响Enclave中的代码和数据,因而具有极高的安全性。在上述安全性保障的前提下,CPU能够在Enclave中对数据进行处理,具有极高的运算效率,从而兼顾了数据安全性和计算效率。此外,对于进、出TEE的数据,通常是加密的,从而保障数据的隐私。
在机器学习领域,可以通过模型训练平台向用户提供模型训练的服务。用户可将样本数据提供到模型训练平台,从而模型训练平台基于样本数据进行模型训练。样本数据通常包括训练样本集和测试样本集,模型训练平台可基于训练样本集调整模型(如聚类模型、神经网络模型等)的参数,使用测试样本集验证模型性能,从而完成对模型的训练过程。通常,训练样本集和测试样本集具有较大的数据量。另外,样本例如包括用户的特征数据、商户的交易数据、生产数据等等,因此,样本中有可能包括用户的隐私数据,用户通常对样本数据进行加密之后提供给模型训练平台进行模型训练。
在相关技术中,为了进一步保护用户的隐私数据,模型训练平台可通过TEE进行模型训练过程。然而,由于样本数据较大,而TEE内的内存空间有限,TEE较难将样本数据对应的密文数据(即密文样本集)整体复制到TEE中并对密文数据解密得到明文数据(即明文样本集),以进行模型训练。
为此,本说明书实施例提供一种在TEE内进行模型训练的方法,可以解决上述相关技术中的问题。图1为本说明书一实施例中的模型训练设备的架构图。具体是,参考图1,用户通过用户设备将训练数据分割成多个小块,每个小块中例如可包括若干个样本,对各个小块进行加密,得到多个密文样本数据,将该多个密文样本数据发送给模型训练平台。具体是,用户设备中可对训练数据中的每个样本进行加密,得到多个密文样本,并将该多个密文样本发送给模型训练平台,下文中以此作为示例进行描述。
模型训练平台中包括TEE,该TEE中加载了模型训练算法,并且该TEE中预先存储有用于对密文样本解密的密钥。模型训练平台在接收到多个密文样本之后,可将该多个密文样本存储到TEE外部的内存中。从而TEE可从TEE外部依次获取各个密文样本,在TEE中依次基于各个密文样本进行模型训练。通过如此,TEE内在进行模型训练时,相当于通过流式处理基于各个密文样本进行训练。流式处理的主要特点是实时性和连续性。它不需要等待所有数据都收集完毕后再进行处理,而是可以在获取到部分数据的同时进行处理。
其中,在基于一个密文样本进行训练时,TEE仅需要将一个密文样本(例如图1中的密文样本2)存储到TEE内,以用于进行解密,得到明文样本,并基于该明文样本进行训练,TEE在得到明文样本之后,如上文所述,可通过MEE进行加密,得到新的密文数据(例如图1中的密文样本2'),并将该新的密文样本也存储到TEE内的内存中,以用于进行模型训练,TEE的内存中还存储有待训练的模型的模型参数。可见,在该方式下,不需要较大的TEE内的内存,就可以在TEE内实现模型训练过程。
另外,算法开发者一般通过高级编程语言编写模型训练算法,在算法代码中调用文件系统操作接口,比如调用python的文件读写接口,其背后会进行Python系统库、Python虚拟机、C接口、OS接口等多层调用。而如SGX的TEE环境中仅提供TEE中的软件开发工具包(Software Development Kit,SDK),算法开发者如果开发运行于TEE中的算法,需要根据TEE中提供的SDK,确定与TEE对应的算法代码,这使得算法开发者需要关注TEE的技术细节进行算法开发,增加了算法开发者的负担。
例如,在TEE中通过调用ocall函数将TEE内的数据写到TEE外部,另外,为了保障数据安全性,进出TEE的数据都是加密数据。算法在TEE内读取从TEE外部提供的加密的数据时,首先需要对该加密的数据解密,然后才能对解密获取的明文数据进行数据处理,当算法在处理明文数据得到处理结果之后,还需要对处理结果加密,得到密文结果,并通过调用ocall函数将密文结果存储到TEE外部。在相关技术中,在算法中需要包括用于进行上述加解密处理、以及对ocall函数的调用等处理的代码,使得相比于在TEE外的算法开发,算法开发者的负担加重。
为此,本说明书实施例中通过在TEE中提供TEE操作系统(TEE OS)来减轻算法开发者的负担,由TEE OS提供与TEE操作相对应的读、写接口等接口,使得算法开发者不需要关注TEE内的技术细节,可如TEE外一样地通过直接调用由TEE OS提供的接口,完成与TEE对应的读、写操作,其中通过执行TEE OS中的代码完成数据加解密、对ocall函数的调用等操作,大大减轻了算法开发者的负担。
图2为本说明书另一实施例中的模型训练设备的架构图。如图2中所示,模型训练设备中包括TEE,TEE中可首先加载TEE OS。具体是,模型训练设备中的主机应用程序调用TEE OS的库函数,将TEE OS的二进制文件加载到Enclave中。这个过程包括将TEE OS的代码和数据复制到Enclave的内存空间,以及设置TEE OS的运行环境。在Occlum被加载后,主机应用程序会调用TEE OS的启动函数,开始在Enclave中执行TEE OS。
之后,可通过TEE中的TEE OS加载和启动应用程序(例如模型训练算法)。具体是,TEE中通过TEE OS的文件系统接口,将算法的二进制文件和可能需要的数据文件复制到TEEOS的文件系统中。然后,可以通过TEE OS的进程管理接口运行加载的算法。
该TEE OS中还包括例如读接口、写接口、配置接口等接口,其中,读接口和写接口为可供算法调用的接口,配置接口为用于对算法配置的接口。基于该TEE OS,算法开发者在开发将加载到TEE中的算法时,可在算法中直接调用由TEE OS提供的读接口或者写接口,以完成对TEE外的数据的读或者写,从而大大节少了算法开发者的工作量。当在TEE中执行例如模型训练算法时,在执行到模型训练算法中调用的读接口时,可根据该读接口执行以下操作:从TEE外部读取密文数据,使用预先获取的解密密钥对密文数据解密,得到明文数据,将明文数据返回给模型训练算法。在执行到模型训练算法中调用的写接口时,可根据写接口执行以下操作:使用预先获取的加密密钥对待写的数据加密,得到密文数据,将该密文数据写到TEE外部。
其中,用户可通过对称加解密算法对数据加解密,或者可通过非对称加解密算法对数据加解密。下文中以对称加解密为例进行描述。
图3为本说明书实施例中TEE获取用户数据的加解密密钥的方法流程图。
如图3所示,在步骤S301,模型训练设备生成公钥pk和私钥sk。
在一种实施方式中,模型训练设备的TEE可响应于用户设备的报告生成请求,生成公钥pk和私钥sk。
用户设备在使用TEE中的算法进行数据处理之前,可对模型训练设备中的TEE发起远程认证过程,TEE可在远程认证过程中生成用于加密的公私钥对,并将公钥提供给用户设备。该过程具体如下文所述。
支持SGX的CPU在出厂前,会由厂商将部署秘钥(Provisioning Key)和信封秘钥(Sealing Key)烧录在CPU中的熔丝(fuse)寄存器内。熔丝寄存器是一种一次性编程的寄存器,一经烧入数据后即熔断熔丝,使得后续该寄存器中的内容仅可读而不再可写。Provisioning Key可以代表CPU中的部分信息,例如CPU的代号(例如第六代酷睿、第七代酷睿等)、型号(如桌面型、移动型等)之类。出于安全考虑,关于加密、签名等操作,并不直接使用Provisioning Key,而是采用由Provisioning Key衍生出的一个证明秘钥(attestationkey)来进行,因此Provisioning Key起部署作用。
在用户设备对模型训练设备中的TEE发起远程认证之前,模型训练设备中CPU可以检测是否存在attestation key。如果没有,则发起初始化。在初始化的过程中,可以基于秘钥生成协议,通过与服务器的交互,并根据Provisioning Key的生成规则生成EPID(Enhanced Privacy IDentification),该EPID可用作为attestation key,一般用作非对称加密秘钥中的私钥sk1。生成的该EPID可以存放于TEE中用于后续的签名操作。从而,服务器可以通过交互过程得到该EPID对应的公钥pk1。特别的是,该EPID对应的公钥pk1并不会公开,仅由服务器保管。这样的特性适于后续在远程证明过程中由服务器(也称为IAS)进行认证。
TEE在准备好用于签名的私钥sk1和公钥pk1之后,可通过如下步骤获取用于进行非对称加密的私钥sk2和公钥pk2:
步骤1:用户设备对模型训练设备中的TEE发起挑战,以要求其出示报告,以证明其中包括的程序代码是正确的代码,具体是,该报告用于证明该TEE中的代码包括TEE OS的代码加上算法代码;用户设备可将该挑战发送给模型训练设备,模型训练设备基于该挑战发起报告生成请求,并将该报告生成请求提供到TEE内。
步骤2:模型训练设备中的TEE收到报告生成请求之后,计算本地代码的hash1,生成用于加密的公钥pk2和私钥sk2,生成报告quote,该quote中包括hash1和pk2,并使用上述密钥sk1对quote签名,得到签名sig1。具体是,TEE中可通过执行TEE OS进行该过程。
在步骤S303,模型训练设备TEE将公钥pk2发送给用户设备。
模型训练设备中的TEE可将quote及其签名sig1发送给用户设备。具体是,TEE中通过执行TEE OS调用ocall函数,将quote及签名sig1写到TEE外部,使得模型训练设备将quote及签名sig1发送给用户设备。
由于用户设备没有与sk1对应的公钥pk1,因此,用户设备在接收到quote及其签名sig1之后,将quote及其签名sig1发送给IAS。IAS使用公钥pk1验证quote的签名sig1,将验证结果返回给用户设备,其中,为了防止验证结果被中间截获或修改,IAS可使用自己的私钥对验证结果签名,得到签名sig2,并将验证结果及其签名sig2一起发送给用户设备。
用户设备收到验证结果之后,如果验证结果指示sig1正确,则根据预先获取的TEE中的代码的正确哈希值对quote中的hash1验证,如果一致,则通过远程证明的验证,确认模型训练设备的TEE中运行了正确的代码。同时,用户设备可从报告中获取公钥pk2。
在步骤S305,用户设备生成加密密钥KeyA,使用公钥pk2对KeyA进行非对称加密,得到密文KeyA。用户设备通过使用公钥pk2对密钥KeyA进行非对称加密,使得只有拥有私钥sk2的模型训练设备TEE才可以解密密文KeyA得到明文KeyA,保障了密钥KeyA不会泄露,从而用户设备可使用该密钥KeyA对待处理的数据进行对称加密,保障了数据的安全性。
在步骤S307,用户设备将密文密钥发送给模型训练设备的TEE。
在步骤S309:模型训练设备的TEE在接收到密文密钥之后,使用私钥sk2对密文密钥进行解密,从而得到密钥KeyA,并将密钥KeyA与用户A的标识关联存储到TEE内。
具体是,TEE在接收到密文KeyA之后,可通过执行TEE OS,获取到预先存储的私钥sk2,使用私钥sk2对密文KeyA解密,得到明文KeyA,将KeyA与用户A的标识关联存储到TEE内。通过如此存储了与用户A对应的密钥KeyA,TEE中可通过执行TEE OS获取到与用户A对应的密钥KeyA,以进行对用户A的数据的加解密。
图4为本说明书实施例中的基于TEE进行模型训练的方法流程图。
如图4所示,在步骤S401,用户设备生成多个密文样本数据。
所述用户设备例如为用户A的设备,所述密文样本数据可通过使用如上文所述获取的密钥KeyA对多个样本分别进行对称加密而获取。其中,在待训练的模型为聚类模型的情况下,所述各个样本中包括特征数据。例如,该聚类模型用于对多个用户进行聚类,则该特征数据中包括用户的各个特征,如用户的性别、年龄、身高、体重等用户属性。在待训练的模型为例如神经网络模型的情况下,所述各个样本中包括特征数据和标签数据,例如该神经网络模型用于对用户的分类进行预测,则样本的特征数据中包括用户的各个特征,如用户的性别、年龄、身高、体重等用户属性,样本的标签数据中包括对用户分类的类别标识。
用户设备还可以生成模型训练请求,在该模型训练请求中包括该多个密文样本数据,以请求基于该多个密文样本数据进行模型训练。该模型训练请求中可包括用户A的标识,以指示该模型训练请求由用户A发出。在TEE内加载了多个算法的情况下,该模型训练请求中还包括所使用的算法标识等信息。
另外,该模型训练请求中还可以包括模型训练算法的静态参数等数据。例如,所述算法为XGB算法,在该模型训练请求中还可以包括XGB算法的标识、以及XGB算法的静态参数(如树模型的棵树、树高等参数)。其中,XGB算法的静态参数可以为明文的形式或者密文的形式。
在一种实施方式中,用户A和用户B分别将自己的样本数据提供到TEE中,以进行例如联邦学习。在该情况下,在该模型训练请求中还可以包括参与联邦学习的参与方的标识、各个参与方的角色类型等信息。其中,参与联邦学习的参与方的标识、各个参与方的角色类型等信息可包括在密文数据中。
在一种实施方式中,在模型训练请求中还可以包括预置的校验参数,该校验参数中例如包括正确的算法参数项,以供TEE对接收的算法参数进行校验。
在一种实施方式中,该模型训练请求中还包括各个密文样本对应的明文样本的哈希值hash1,以用于对各个密文样本对应的明文样本进行验证。
在一种实施方式中,该模型训练请求中还包括多个密文样本对应的哈希值hash2,该哈希值hash2基于多个密文样本对应的多个明文样本各自的哈希值生成,以用于进一步对该多个密文样本对应的明文样本进行验证。
在步骤S403,用户设备将多个密文样本数据发送给模型训练设备。
具体是,用户设备可将上述包括多个密文样本数据的模型训练请求发送给模型训练设备的TEE外部。
在步骤S405,模型训练设备存储多个密文样本。
具体是,模型训练设备可将接收的多个密文样本存储到TEE外的内存中。模型训练设备也可以将该多个密文样本存储到永久性存储介质中。
在模型训练设备还接收到上述各个明文样本的哈希值hash1(或多个明文样本对应的哈希值hash2)的情况下,可将该各个明文样本的哈希值(或多个明文样本对应的哈希值)与多个密文样本一起存储到TEE外的内存中。
具体是,模型训练设备可将多个密文样本顺序存储到TEE外的内存中的地址addr1中,并将地址addr1提供到TEE中。其中,模型训练设备在TEE外可通过调用TEE提供的ecall函数将地址addr1提供到TEE内。
更具体是,模型训练设备可基于上述模型训练请求生成算法调用请求,并将算法调用请求提供到TEE内。该算法调用请求用于调用TEE中的模型训练算法。该算法调用请求中可包括存储密文数据的内存地址addr1、所调用的算法标识、算法参数等。
在一种实施方式中,TEE外的线程可通过调用ecall函数,将算法调用请求复制到TEE内,从而提供给TEE。
在另一种实施方式中,TEE外的线程可将算法调用请求存储到TEE外的共享内存中,其中所述共享内存被设置用于由TEE外线程和TEE内线程共享使用,TEE内线程可通过调用ocall函数对共享内存进行读写。TEE内的线程可通过调用ocall函数读取共享内存中存储的算法调用请求,并将读取的算法调用请求存储到TEE内,从而将算法调用请求提供到TEE内部。
TEE内在获取到算法调用请求之后,可如图4中所示,基于该算法调用请求循环执行步骤S407和步骤S409,以进行模型训练。
在步骤S407,TEE从TEE外存储的多个密文样本中获取若干密文样本。
具体是,TEE可从多个密文样本中获取n个密文样本,其中,n可以为1,或者n可以为较小的大于1的整数,如3、5等等。
TEE可通过不同的方式从TEE外获取密文样本。
在一种实施方式中,如图1所示,TEE可通过执行模型训练算法,从TEE外获取若干密文样本。在一种实施方式中,TEE可从TEE外获取若干密文样本及其对应明文样本的哈希值hash1或多个明文样本对应的哈希值hash2。
具体是,TEE在执行模型训练算法时,可通过调用TEE提供的ocall函数切换到TEE外,从TEE外读取若干密文样本,并将该若干密文样本存储到TEE内存中。在另一种方式中,TEE可如前所述从TEE外部获取到用于存储多个密文样本的地址addr1,从该地址addr1直接读取若干密文样本,并将该若干密文样本存储到TEE内存中。TEE在从地址addr1读取了若干密文样本之后,可在TEE内存中存储与该若干密文样本对应的从地址addr1的起始地址开始的偏移地址,以用于在下个循环中从addr1的该偏移地址开始读取另外的若干密文样本。
在另一种实施方式中,TEE中的线程(例如线程1)在接收到算法调用请求之后,根据该算法调用请求执行模型训练算法。该算法中调用TEE OS提供的读接口,以读取待处理的数据。在一种实施方式中,线程1可根据该调用,获取读接口,并执行读接口。在另一种实施方式中,线程1可根据该调用将对读接口的调用请求和传入参数发送给用于执行TEE OS的线程2,由线程2执行读接口。
其中,在算法调用请求中例如包括用于存储密文样本数据的内存地址addr1,对读接口的传入参数可包括该内存地址addr1。图5为该实施方式中通过读接口读取数据的过程示意图。如图5中所示,TEE外的线程可将包括内存地址addr1的算法调用请求存储到共享内存中,TEE内的线程可通过调用ocall函数从共享内存中读取算法调用请求。TEE内的线程在执行读接口时可从该算法调用请求中获取到内存地址。之后,TEE内的线程可根据读接口的代码,从内存地址addr1顺序读取若干密文样本数据。TEE内的线程在读取到若干密文样本数据之后,可如图2所示,将该若干密文样本数据存储到TEE内存中,以用于基于该若干密文样本数据进行模型训练。
在该情况中,利用TEE固有的特性,当获取到存储密文数据的内存地址之后,可直接从该内存地址读取密文数据,从而不需要进行上下文替换,加速了模型训练的速度。
在步骤S409,TEE对若干密文样本解密,得到若干明文样本,基于若干明文样本更新模型参数,删除若干密文样本。
TEE内在获取到若干密文样本之后,可从TEE内获取预先存储的与用户A对应的密钥KeyA,使用KeyA对各个密文样本解密,得到若干明文样本,并如上文所述,通过MEE对若干明文样本一起进行加密,得到新的密文数据(例如图1中的密文样本2'),并将该新的密文数据也存储到TEE内的内存中。
在TEE中通过TEE OS获取若干密文样本的情况下,可通过TEE OS对该多个密文样本解密,得到多个明文样本,并如上文所述,通过MEE进行加密,得到新的密文数据(例如图1中的密文样本2'),并将该新的密文数据存储到TEE内的内存中,以及将存储该新的密文数据的TEE内存的地址返回给模型训练算法。
之后,TEE内可基于该新的密文数据进行模型训练。具体是,TEE内可读取该新的密文数据,通过MEE对该密文数据解密,得到所述若干明文样本,基于该若干明文样本运行模型训练算法,得到更新的模型参数,并将更新的模型参数作为模型的当前参数存储到TEE内存中。
其中,在TEE还从TEE外部获取各个明文样本的哈希值的情况中,在得到若干明文样本之后,基于各个明文样本的哈希值对所述若干明文样本分别进行验证,在对所述各个明文样本验证通过的情况下,基于所述若干明文样本对所述模型的当前参数进行更新。
具体是,在待训练的模型为聚类模型的情况下,TEE在进行模型训练时,根据模型训练算法,将样本输入聚类模型,得到对样本的聚类结果,并根据该样本的聚类结果更新聚类模型的参数。在待训练的模型为神经网络模型的情况下,TEE在进行模型训练时,根据模型训练算法将样本中的特征数据输入神经网络模型,得到模型的输出,基于模型的输出和样本的标签值对模型的参数进行更新,以使得更新后的模型的输出更加逼近样本的标签值。
TEE可在TEE内存中存储上述若干明文样本的哈希值hash1,在确定TEE内已存储了与哈希值hash2对应的多个明文样本的哈希值hash1之后,基于上述存储到TEE中的哈希值hash2对该多个hash1进行验证。在验证不通过的情况下,TEE可回滚对所述第一模型的参数的更新。
在一种实施方式中,TEE可如前文所述从TEE外部获取校验参数和模型训练算法的参数,TEE内还可以基于该校验参数对模型训练算法的参数进行校验。例如,该校验参数为正确的算法的传入参数,TEE内可以将校验参数与算法的实际传入参数进行比对,在比对结果一致的情况中,确定校验通过,并在确定校验通过的情况中,基于若干明文样本进行模型训练。
TEE内在基于若干密文样本完成一次模型训练之后,如图1或2所示,可删除TEE内存中的若干密文样本,如密文样本2,以及删除TEE内存中的通过MEE加密生成的密文数据(如密文样本2′),以节省TEE内存,以便提供较大的内存容量进行下一轮的模型训练。TEE可基于预设规则确定循环是否结束,在确定循环未结束的情况下,如图4所示,再次执行步骤S407和步骤S409,以进行下一轮的模型训练。
在一种实施方式中,TEE内可基于测试样本集确定模型性能,根据模型性能确定是否结束循环。TEE内可与上文进行模型训练的过程类似地,通过流式处理的方式,从TEE外依次读取若干测试样本,进行多轮的测试处理,在每轮测试处理之后,更新模型的性能参数,从而最终得到模型的性能。通过该流式处理的方式,即使测试样本集的数据量较大,仍然可以通过内存较小的TEE进行模型性能测试的处理。
TEE在确定模型训练的循环结束的情况下,可使用KeyA对最终的模型参数加密,得到密文模型参数,并将密文模型参数提供到TEE外,以提供给用户设备。
在一种实施方式中,TEE内可根据模型训练算法中对TEE OS中的写接口的调用,使用KeyA对最终的模型参数加密,得到密文模型参数,将密文模型参数存储到TEE外。
具体是,TEE内的线程1在执行模型训练算法的过程中,在得到最终的模型参数之后,根据模型训练算法中对TEE OS的写接口的调用,执行该写接口,或者通知线程2执行该写接口。
图6为本说明书实施例中通过写接口将密文模型参数提供到TEE外部的过程示意图。
在一种实施方式中,对该写接口的传入参数包括上述模型参数,TEE内在执行写接口的过程中,获取密钥KeyA,使用密钥Key对模型参数加密,得到密文模型参数,如图6中的虚线箭头所示,调用ocall函数,以将该密文模型参数存储到共享内存中,从而提供到TEE外部。
在另一种实施方式中,对该写接口的传入参数包括上述模型参数和上述用于存储密文样本的内存地址addr1,TEE内在执行写接口的过程中,获取密钥KeyA,使用密钥Key对模型参数加密,得到密文模型参数,然后如图6中的实线箭头所示,直接将该密文模型参数存储到该内存地址addr1中,从而提供到TEE外部。
在上述过程中,TEE内的算法可通过直接调用TEE OS提供的读接口或写接口,而完成复杂的数据加解密、以及与TEE外的数据交互等过程,算法开发者不再需要了解TEE的技术细节,而只需要专注于算法本身的处理过程即可,从而大大减轻了算法开发者的负担。
在一种实施方式中,TEE OS可提供算法配置接口,算法开发者在TEE内加载算法时,可向TEE内提供算法配置请求,该算法配置请求中调用该配置接口,并通过对该配置接口的传入参数指定对算法的配置信息。
该配置接口可提供对算法的如下配置:是否为服务化算子,服务化算子将会在系统启动时自动启动并且常驻内存,适合实时计算请求,非服务化算子会在调度引擎需要时弹性拉起,适合离线计算请求;执行环境,例如支持python3.7和java11执行环境;输入输出文件是否进行缓存;算子并行度;算子可支持的文件、堆、mmap和栈的限制。算法开发者例如可通过文本(如json)格式指定这几个具体配置,TEE内在执行TEE OS的该配置接口时,会自动设置完整的执行环境,配置对应的文件系统配置,高效支持算子开发。
图7为本说明书一实施例中的一种模型训练设备的架构图,所述模型训练设备包括可信执行环境TEE,其中,所述TEE中加载有第一算法,所述第一算法用于对第一模型进行模型训练,所述模型训练设备用于执行图3或图4所示方法,包括:
接收单元71,用于接收多个密文样本数据,所述多个密文样本数据分别基于相同的密钥加密生成;
存储单元72,用于将所述多个密文样本数据存储到TEE外;
训练单元73,用于使得所述TEE循环进行如下操作:从所述TEE外部获取所述多个密文样本数据中的若干密文样本数据存储到所述TEE内的内存中,对所述若干密文样本数据解密,得到若干明文样本数据,基于所述若干明文样本数据运行所述第一算法,对所述第一模型的当前参数进行更新,得到所述第一模型的第一参数,存储所述第一参数作为所述第一模型的当前参数,删除所述若干密文样本数据。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图3或图4所示的方法。
本说明书实施例还提供一种模型训练设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图3或图4所示的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (16)
1.一种用于隐私保护的模型训练方法,由模型训练设备执行,所述模型训练设备包括可信执行环境TEE,其中,所述TEE中加载有第一算法,所述第一算法用于对第一模型进行模型训练,所述方法包括:
接收多个密文样本数据;
将所述多个密文样本数据存储到所述模型训练设备中的TEE外部;
所述TEE循环进行如下操作:从所述TEE外部获取所述多个密文样本数据中的若干密文样本数据存储到所述TEE内的内存中,对所述若干密文样本数据解密,得到若干明文样本数据,基于所述若干明文样本数据运行所述第一算法,对所述第一模型的当前参数进行更新,得到所述第一模型的第一参数,存储所述第一参数作为所述第一模型的当前参数,删除所述若干密文样本数据。
2.根据权利要求1所述的方法,还包括:所述TEE在得到若干明文样本数据之后,对所述若干明文样本数据加密,得到密文数据,将所述密文数据存储到所述TEE内的内存中,在得到所述第一参数之后,删除所述密文数据。
3.根据权利要求1所述的方法,还包括:接收各个密文样本数据对应的各个明文样本的第一哈希值,将各个密文样本数据对应的第一哈希值存储到TEE外部,所述TEE从TEE外部读取所述第一密文样本数据对应的第一哈希值,在得到第一明文样本数据之后,基于所述第一密文样本数据对应的第一哈希值对所述第一明文样本数据进行验证,
所述TEE基于所述第一明文样本对所述第一模型的当前参数进行更新包括:所述TEE在对所述第一明文样本数据验证通过的情况下,基于所述第一明文样本对所述第一模型的当前参数进行更新。
4.根据权利要求3所述的方法,还包括:
接收若干第二密文样本数据对应的第二哈希值,所述第二哈希值基于所述若干第二密文样本数据对应的若干第二明文样本数据各自的哈希值生成,将所述第二哈希值存储到所述TEE外部;
所述TEE从TEE外部读取所述第二哈希值,存储各个第二密文样本的所述第一哈希值,基于所述第二哈希值对所述若干第二密文样本的第一哈希值进行验证;在验证不通过的情况下,回滚对所述第一模型的参数的更新。
5.根据权利要求1所述的方法,所述TEE中还加载有TEE操作系统,所述TEE操作系统提供读接口,所述第一算法包括对所述读接口的调用,所述方法还包括:
响应于接收多个密文样本数据,生成算法调用请求,将算法调用请求提供给所述TEE,以用于调用所述第一算法;
所述TEE读取所述第一密文样本数据,对所述第一密文样本数据解密包括:所述TEE响应于所述算法调用请求,根据所述第一算法中对所述读接口的调用,读取所述第一密文样本数据,对所述第一密文样本数据解密,
所述方法还包括:所述TEE在得到所述第一明文样本数据之后,根据所述读接口,将所述第一明文样本数据返回给所述第一算法。
6.根据权利要求5所述的方法,所述TEE操作系统还提供写接口,所述方法还包括:
所述TEE在确定循环结束的情况下,根据所述第一算法中对所述写接口的调用,对所述第一模型的当前参数加密,得到密文模型参数,将所述密文模型参数存储到所述模型训练设备中的TEE外部。
7.根据权利要求5所述的方法,所述密文样本数据通过使用第一密钥对称加密而生成,所述方法还包括:
接收用户设备发送的密文第一密钥,所述密文第一密钥通过使用由所述TEE提供的公钥对所述第一密钥进行非对称加密而生成;将所述密文第一密钥提供给所述TEE,所述公钥及与该公钥对应的私钥由所述TEE操作系统预先生成;
所述TEE通过执行所述TEE操作系统,使用所述私钥对所述密文第一密钥解密,得到第一密钥,将所述第一密钥与所述用户设备对应的用户标识关联地存储。
8.根据权利要求7所述的方法,所述接收多个密文样本数据包括:接收多个密文样本数据及其对应的用户标识,所述方法还包括:将所述用户标识与所述多个密文样本数据关联地提供到TEE内,所述TEE对所述第一密文样本数据解密包括:基于所述用户标识读取所述第一密钥,使用所述第一密钥对所述第一密文样本数据解密。
9.根据权利要求5所述的方法,所述接收多个密文样本数据包括:接收多个密文样本数据及其对应的校验参数和算法参数,将所述校验参数和算法参数提供到TEE内,所述TEE将第一明文样本数据返回给所述第一算法包括:所述TEE在得到所述第一明文样本数据之后,基于所述校验参数对所述算法参数进行校验,在校验通过的情况下,将所述第一明文样本数据返回给所述第一算法。
10.根据权利要求1所述的方法,所述TEE操作系统还包括配置接口,所述方法还包括:
获取算法配置请求,所述算法配置请求调用所述配置接口,包括与所述第一算法对应的配置信息,用于对所述第一算法进行配置;将所述算法配置请求提供给所述TEE;
所述TEE根据所述算法配置请求,基于所述配置信息对所述第一算法进行配置。
11.根据权利要求10所述的方法,所述配置信息包括以下至少一项配置信息:用于设置服务化算子的配置信息;执行环境信息;对输入输出文件的缓存配置信息;并行度;可支持的文件、与堆、mmap和栈对应的配置信息。
12.根据权利要求6所述的方法,所述将所述多个密文样本数据存储到TEE外包括:将所述多个密文样本数据存储到TEE外的内存中的第一地址;
所述方法还包括:将所述第一地址提供到TEE中。
13.根据权利要求12所述的方法,所述将所述密文模型参数存储到所述模型训练设备中的TEE外部包括,将所述密文模型参数存储到所述第一地址。
14.根据权利要求12所述的方法,所述TEE中存储有第一地址中的偏移地址,所述TEE从TEE外部读取若干密文样本数据包括:所述TEE基于所述偏移地址,从TEE外部读取若干密文样本数据,更新所述偏移地址。
15.一种模型训练设备,所述模型训练设备包括可信执行环境TEE,其中,所述TEE中加载有第一算法,所述第一算法用于对第一模型进行模型训练,所述模型训练设备包括:
接收单元,用于接收多个密文样本数据;
存储单元,用于将所述多个密文样本数据存储到TEE外;
训练单元,用于使得所述TEE循环进行如下操作:从所述TEE外部获取所述多个密文样本数据中的若干密文样本数据存储到所述TEE内的内存中,对所述若干密文样本数据解密,得到若干明文样本数据,基于所述若干明文样本数据运行所述第一算法,对所述第一模型的当前参数进行更新,得到所述第一模型的第一参数,存储所述第一参数作为所述第一模型的当前参数,删除所述若干密文样本数据。
16.一种模型训练设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311285059.5A CN117235711A (zh) | 2023-09-28 | 2023-09-28 | 一种用于隐私保护的数据处理方法和模型训练设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311285059.5A CN117235711A (zh) | 2023-09-28 | 2023-09-28 | 一种用于隐私保护的数据处理方法和模型训练设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117235711A true CN117235711A (zh) | 2023-12-15 |
Family
ID=89094686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311285059.5A Pending CN117235711A (zh) | 2023-09-28 | 2023-09-28 | 一种用于隐私保护的数据处理方法和模型训练设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235711A (zh) |
-
2023
- 2023-09-28 CN CN202311285059.5A patent/CN117235711A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11362840B2 (en) | Methods, apparatuses, devices and systems for backtracking service behavior | |
US10917394B2 (en) | Data operations using a proxy encryption key | |
CN109886682B (zh) | 区块链中实现合约调用的方法及节点、存储介质 | |
US10387686B2 (en) | Hardware based isolation for secure execution of virtual machines | |
US20150078550A1 (en) | Security processing unit with configurable access control | |
US11216389B2 (en) | Device with multiple roots of trust | |
US20210312089A1 (en) | Data authorization information acquisition methods, apparatuses, and devices | |
CN112434326B (zh) | 一种基于数据流的可信计算方法及装置 | |
CN115378735A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
WO2023073463A1 (en) | Trusted workload execution | |
EP3785149B1 (en) | Memory assignment for guest operating systems | |
CN116167044A (zh) | 一种应用容器的创建方法、装置及设备 | |
US10984108B2 (en) | Trusted computing attestation of system validation state | |
US10719456B2 (en) | Method and apparatus for accessing private data in physical memory of electronic device | |
CN111737304A (zh) | 一种区块链数据的处理方法、装置及设备 | |
CN117235711A (zh) | 一种用于隐私保护的数据处理方法和模型训练设备 | |
US20220100822A1 (en) | Software access through heterogeneous encryption | |
CN108319872B (zh) | 一种封闭容器生成方法、装置及设备 | |
CN117131541A (zh) | 一种用于隐私保护的数据处理方法和计算设备 | |
US11645092B1 (en) | Building and deploying an application | |
CN115859339B (zh) | 一种云存储数据的加密和解密的方法、装置、介质及设备 | |
US20230325489A1 (en) | Agentless extraction of cloud credentials | |
EP4310710A1 (en) | Local key escrow method and apparatus based on trusted computing, device, and medium | |
US20210224098A1 (en) | Method and system for remote terminal access through application of communication module during boot | |
CN117094010A (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 |