一种基于TEE和GPU的浮点数矩阵乘法安全外包验证方法

文档序号:38021463发布日期:2024-05-17 12:51阅读:11来源:国知局
一种基于TEE和GPU的浮点数矩阵乘法安全外包验证方法

本发明涉及机器学习隐私计算,更具体地,涉及一种基于tee和gpu的浮点数矩阵乘法安全外包验证方法。


背景技术:

1、为了保护机器学习中数据的隐私性,将机器学习放入tee(trusted executionenvironment可信执行环境)进行执行是一种很好的解决方案。但是其矩阵乘法的计算量占比很高,而tee的计算资源来自于cpu,为了使隐私机器学习获得较高的效率,一种解决方案是将矩阵乘法计算安全外包给gpu。基于tee和gpu的浮点数矩阵乘法安全外包算法可以使矩阵乘法计算安全外包给gpu。目前已有的安全外包算法在混淆原数据的方法上较为完备,但是其验证gpu返回的结果是否正确上尚且不够完善。

2、设需要外包计算的矩阵为xm×n和yn×s,计算结果为zm×s,外包出去的矩阵为x′m×n和y′n×s,计算结果为z′m×s。根据1977年的freivalds引理,验证时可以通过产生随机的n维的0-1向量s,然后判断等式zs=x(ys)是否成立,可以通过多次验证来保证其计算结果的正确性。该方法广泛用于有限域上的安全外包运算中。在2016年,cao等人在“a note on‘outsourcing large matrix inversion computation to a public cloud’”论文中表示该验证方法在浮点数外包算法中有问题,由于实数在计算机中是有精度的,造成了freivalds验证方式会在很多即使计算正确的情况下,即z=xy,也会造成误判zs≠x(ys),从而使验证失败。为此,该研究提出设置错误的容忍度来通过验证。但是该解决方案并没有从根本上解决结果验证的准确性问题,gpu依然可以故意返回一个在容忍度内的错误结果,从而通过tee的检验。


技术实现思路

1、本发明为克服上述现有技术中的缺陷,提供一种基于tee和gpu的浮点数矩阵乘法安全外包验证方法,使得浮点数矩阵乘法在tee与gpu中的外包计算中可以验证外包结果的正确性。

2、为解决上述技术问题,本发明采用的技术方案是:

3、一种基于tee和gpu的浮点数矩阵乘法安全外包验证方法,用于机器学习训练过程中每一次外包矩阵乘积的过程中,包括以下步骤:

4、s1.tee产生外包矩阵x′和矩阵y′,传输给gpu计算;

5、s2.gpu返回矩阵z′=x′y′;

6、s3.tee在x′中随机选取ρ行形成矩阵vx,在y′中随机选取列形成矩阵vy,计算校验矩阵vz=vxvy,并比较vz与z′中相对应的值是否完全相同,不同则验证失败,退出外包过程,否则继续执行。

7、根据上述技术手段,本发明将对外包计算的验证计算放在了x′,y′和z′上,这样不管是tee还是gpu,在计算顺序相同的情况下,z′中的每个元素一定是与x′y′的积的每个元素相同。与现有方案相比,避免了因计算机的精度所造成的检验错误问题,以及因容忍度而导致的gpu可在一定范围内产生错误结果且无法被tee检验到的问题,解决了浮点数矩阵乘法外包计算正确性检验的问题。

8、进一步地,在所述步骤s1中,产生外包矩阵x′和y′的具体步骤如下:

9、s11.tee需要进行外包的两个矩阵为xm×n和yn×s,根据初始的系统参数l以及外包矩阵的规模参数m、n、s生成均匀分布的随机向量kα={α1,…,αm}、kβ={β1,…,βn}和kγ={γ1,…,γs},其中αi,βj,γk∈r\{0}∩[-2l,2l],1≤i≤m,1≤j≤n,1≤k≤s;

10、s12.tee计算x′(i,j)=x(i,j)+αiβj,y′(j,k)=y(j,k)+βjγk,如果返回步骤s11,重新生成随机向量kα,kβ,kγ。

11、进一步地,在验证通过之后,还原矩阵z=xy,还原方法为计算和z=z′-s,t表示向量的转置。

12、进一步地,在步骤s11中,系统参数l选定方法包括:以x′(i,j)=x(i,j)+αiβj为例,为了使x′与随机矩阵具有不可区分性,需要αiβj的积远大于x(i,j),即αiβj>>x(i,j),故其中x为x中的任意元素。

13、本发明还提供一种基于tee和gpu的浮点数矩阵乘法安全外包验证系统,包括:

14、外包矩阵生成模块:用于tee产生外包矩阵x′和矩阵y′,传输给gpu计算;

15、矩阵返回模块:用于gpu返回矩阵z′=x′y′;

16、验证模块:用于tee在x′中随机选取ρ行形成矩阵vx,在y′中随机选取列形成矩阵vy,计算校验矩阵vz=vxvy,并比较vz与z′中相对应的值是否完全相同,不同则验证失败,退出外包过程,否则继续执行。

17、根据上述技术手段,本发明将对外包计算的验证计算放在了x′,y′和z′上,这样不管是tee还是gpu,在计算顺序相同的情况下,z′中的每个元素一定是与x′y′的积的每个元素相同。与现有方案相比,避免了因计算机的精度所造成的检验错误问题,以及因容忍度而导致的gpu可在一定范围内产生错误结果且无法被tee检验到的问题,解决了浮点数矩阵乘法外包计算正确性检验的问题。

18、进一步地,在所述外包矩阵生成模块中,tee需要进行外包的两个矩阵为xm×n和yn×s,根据初始的系统参数l以及外包矩阵的规模参数m、n、s生成均匀分布的随机向量kα={α1,…,αm}、kβ={β1,…,βn}和kγ={γ1,…,γs},其中αi,βj,γk∈r\{0}∩[-2l,2l],1≤i≤m,1≤j≤n,1≤k≤s;tee计算x′(i,j)=x(i,j)+αiβj,y′(j,k)=y(j,k)+βjγk,如果则重新生成随机向量kα,kβ,kγ。

19、进一步地,还包括矩阵还原模块:用于在验证通过之后,还原矩阵z=xy;还原方法为计算和z=z′-s,t表示向量的转置。

20、进一步地,在所述外包矩阵生成模块中,对于x′(i,j)=x(i,j)+αiβj,为了使x′与随机矩阵具有不可区分性,需要αiβj的积远大于x(i,j),即αiβj>>x(i,j),故其中x为x中的任意元素。

21、本发明还提供一种计算机设备,包括存储器和处理器,所述的存储器存储有计算机程序,所述的处理器执行所述的计算机程序时实现以上所述方法的步骤。

22、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时实现以上所述方法的步骤。

23、与现有技术相比,有益效果是:本发明提供的一种基于tee和gpu的浮点数矩阵乘法安全外包验证方法及系统,避免了因计算机的精度所造成的检验错误问题,以及因容忍度而导致的gpu可在一定范围内产生错误结果且无法被tee检验到的问题,解决了浮点数矩阵乘法外包计算正确性检验的问题。



技术特征:

1.一种基于tee和gpu的浮点数矩阵乘法安全外包验证方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于tee和gpu的浮点数矩阵乘法安全外包验证方法,其特征在于,在所述步骤s1中,产生外包矩阵x′和y′的具体步骤如下:

3.根据权利要求2所述的基于tee和gpu的浮点数矩阵乘法安全外包验证方法,其特征在于,在验证通过之后,还原矩阵z=xy,还原方法为计算和z=z′-5,t表示向量的转置。

4.根据权利要求2所述的基于tee和gpu的浮点数矩阵乘法安全外包验证方法,其特征在于,在步骤s11中,系统参数l选定方法包括:对于x′(i,j)=x(i,j)+αiβj,为了使x′与随机矩阵具有不可区分性,需要αiβj的积远大于x(i,j),即αiβj>>x(i,j),故其中x为x中的任意元素。

5.一种基于tee和gpu的浮点数矩阵乘法安全外包验证系统,其特征在于,包括:

6.根据权利要求5所述的基于tee和gpu的浮点数矩阵乘法安全外包验证系统,其特征在于,在所述外包矩阵生成模块中,tee需要进行外包的两个矩阵为xm×n和yn×s,根据初始的系统参数l以及外包矩阵的规模参数m、n、s生成均匀分布的随机向量kα={α1,...,αm}、kβ={β1,...,βn}和kγ={γ1,...,γs},其中αi,βj,γk∈r\{0}∩[-2l,2l],1≤i≤m,1≤j≤n,1≤k≤s;tee计算x′(i,j)=x(i,j)+αiβj,y′(j,k)=y(j,k)+βjγk,如果则重新生成随机向量kα,kβ,kγ。

7.根据权利要求6所述的基于tee和gpu的浮点数矩阵乘法安全外包验证系统,其特征在于,还包括矩阵还原模块:用于在验证通过之后,还原矩阵z=xy;还原方法为计算和z=z′-s,t表示向量的转置。

8.根据权利要求6所述的基于tee和gpu的浮点数矩阵乘法安全外包验证系统,其特征在于,在所述外包矩阵生成模块中,对于x′(i,j)=x(i,j)+αiβj,为了使x′与随机矩阵具有不可区分性,需要αiβj的积远大于x(i,j),即αiβj>>x(i,j),故其中x为x中的任意元素。

9.一种计算机设备,包括存储器和处理器,所述的存储器存储有计算机程序,其特征在于,所述的处理器执行所述的计算机程序时实现权利要求1至4任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述的计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。


技术总结
本发明涉及机器学习隐私计算技术领域,更具体地,涉及一种基于TEE和GPU的浮点数矩阵乘法安全外包验证方法。将对外包计算的验证计算放在了X<supgt;′</supgt;,Y<supgt;′</supgt;和Z<supgt;′</supgt;上,这样不管是TEE还是GPU,在计算顺序相同的情况下,Z<supgt;′</supgt;中的每个元素一定是与X<supgt;′</supgt;Y<supgt;′</supgt;的积的每个元素相同。与现有方案相比,避免了因计算机的精度所造成的检验错误问题,以及因容忍度而导致的GPU可在一定范围内产生错误结果且无法被TEE检验到的问题,解决了浮点数矩阵乘法外包计算正确性检验的问题。

技术研发人员:田海博,任双寅
受保护的技术使用者:中山大学
技术研发日:
技术公布日:2024/5/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1