本发明属于隐私保护的,具体涉及一种基于同态加密和安全外包矩阵的隐私保护机器学习方法及装置。
背景技术:
1、同态加密是一种特殊加密算法,对明文数据进行加密后得到密文,同态加密允许对密文进行特定形式的代数运算得到结果密文,然后对结果密文进行解密后可以得到与明文进行相同运算的运算结果。
2、密文打包技术允许将多个值加密到单个密文当中,并且以simd(singleinstruction multiple data)的方式进行运算。在基于多项式的中国剩余定理的打包技术被smart和vervauteren首次提出后,它成为了同态加密系统最为重要的特点之一。该方法使用近似编码/解码的方法将原始的明文空间表示成了一个在环上的n维向量的集合(每个因子被称为一个明文槽)。因此,可以将中的一个元素编码并加密成一个密文。它降低密文膨胀率,也实现的并行化的计算,因此通过空间和时间复杂度的摊销得到了更好的效率。
3、然而,密文打包技术带来的一个限制是,当处理一个输入分布在不同明文槽中的电路时比较复杂。为了解决这个问题,有很多在密文状态下移动明文槽中的数据的方法被提出。例如基于环上容错学习假设的同态方案利用了galois群来实现明文槽上的选择操作。
4、现有技术中基于伪装技术的方法,其伪装的技术安全性较弱,很难达到基于密码学技术方案的强度,易造成信息泄露。此外,现有的基于伪装技术的方案都不具有可组合性,因此不适用于多矩阵乘法,也无法将其应用到上层应用中。基于安全多方技术的方法虽然计算的运算效率更快,但缺点是需要客户端与服务器进行多轮交互并导致较高的通信开销。相反,全同态加密除必要的上传和下载开销外不需要额外的通信开销。此外,安全多方计算的双方同时需要分担计算开销,此不利于计算资源受限的客户。
技术实现思路
1、本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于同态加密和安全外包矩阵的隐私保护机器学习方法,可以安全高效的完成隐私保护的计算。
2、为了达到上述目的,本发明采用以下技术方案:
3、第一方面,本发明提供了一种基于同态加密和安全外包矩阵的隐私保护机器学习方法,包括下述步骤:
4、由密钥生成中心kgc基于同态加密算法的keygen函数进行初始化,生成公钥pk、私钥sk和评估密钥evk,然后将初始化参数parmas、公钥pk和评估密钥evk发送给云服务方s,将初始化参数parmas、私钥sk和公钥pk发送到客户端c;
5、客户端c基于同态加密算法的enc函数完成矩阵数据的打包和加密,并将加密后的密文传输至云服务方s;
6、云服务方s基于同态加密技术的安全矩阵运算方法对接收到密文进行安全矩阵运算,得到密文结果,所述基于同态加密技术的安全矩阵运算方法具体包括:
7、基于同态加密的安全矩阵加法:securemataddevk(cta,ctb)→cta+b;
8、基于同态加密的安全矩阵向量乘法:securelintransevk(ctl,u)→ctl‘;
9、基于同态加密的安全矩阵转置:
10、基于同态加密的安全矩阵乘法:securematmultevk(cta,ctb)→ctab;
11、基于同态加密的安全矩阵行列式:securematdeterminantevk(cta)→ct|a|;
12、云服务方s将经过安全矩阵运算得到的结果密文发送回客户端,客户段对收到的密文进行解密。
13、作为优选的技术方案,所述客户端c完成矩阵数据的打包、加密以及密文传输,具体为:
14、客户端c准备自己本地的矩阵数据a,对矩阵数据a进行预处理,为数据加密做准备;
15、客户端c通过自己的公钥将矩阵数据按照行优先排列打包并加密到密文cta=encpk(a)中;
16、客户端c将加密了矩阵数据的密文传输给云服务方s。
17、作为优选的技术方案,所述基于同态加密的安全矩阵加法,具体为:
18、给定两个大小为l×h的矩阵a1、a2,设l×h<n,保证单个矩阵中所有的元素的数量不会超过一个密文所能容纳的最多槽数量n;
19、基于同态加密的安全矩阵加法的实现是非常直观的:将矩阵a1、a2按照行优先编码到密文下的明文槽中,然后对其进行加密,得到ct1,ct2,然后直接通过同态加法运算add(ct1,ct2),在密文下实现矩阵对应元素相加,计算复杂度仅为o(1)次add密文加法运算。
20、作为优选的技术方案,所述基于同态加密的安全矩阵向量乘法是利用密文上的密文旋转运算rotate和明文密文乘法运算cmult的组合来实现,具体为:
21、给定将矩阵视为n个对角线向量,并分别打包加密到n个密文中,然后在相应密文上进行密文旋转、密文乘法和密文加法,最终得到结果。
22、作为优选的技术方案,所述基于同态加密的安全矩阵转置,具体为:
23、通过同态线性变换来实现矩阵转置,给定大小为n×m的矩阵a,对应的线性变换矩阵为ut,那么对应的密文运算为at←lintrans(ct.a,ut),计算复杂度为2d次密文旋转rotate运算。
24、作为优选的技术方案,所述基于同态加密的安全矩阵乘法,具体为:
25、支持在同态加密密文上安全地进行任意维度的矩阵乘法运算。给定m×n维的矩阵a和m×n维的矩阵b,通过行优先排列的打包方法将矩阵a和b分别打包并加密到单个密文中,分别得到对应的密文ct.a和密文ct.b,按照公式对密文进行评估运算,最终得到密文下的矩阵乘法运算结果ct.a·b。
26、作为优选的技术方案,所述基于同态加密的安全矩阵行列式,具体为:
27、支持在同态加密密文上安全地进行矩阵行列式运算;给定一个d×d维的矩阵a,通过行优先排列的打包方法将矩阵a打包并加密到单个密文中,得到对应的密文ct.a,通过在密文上评估一种无除法的行列式计算算法,最终得到矩阵a行列式的密文ct.|a|。
28、第二方面,本发明提供了一种基于同态加密和安全外包矩阵的隐私保护机器学习系统,应用于所述的基于同态加密和安全外包矩阵的隐私保护机器学习方法,包括初始化模块、加密模块、安全矩阵运算模块以及解密模块;
29、所述初始化模块,用于由密钥生成中心kgc基于同态加密算法的keygen函数进行初始化,生成公钥pk、私钥sk和评估密钥evk,然后将初始化参数parmas、公钥pk和评估密钥evk发送给云服务方s,将初始化参数parmas、私钥sk和公钥pk发送到客户端c;
30、所述加密模块,用于客户端c基于同态加密算法的enc函数完成矩阵数据的打包和加密,并将加密后的密文传输至云服务方s;
31、所述安全矩阵运算模块,用于云服务方s基于同态加密技术的安全矩阵运算方法对接收到密文进行安全矩阵运算,得到密文结果,所述基于同态加密技术的安全矩阵运算方法具体包括:
32、基于同态加密的安全矩阵加法:securemataddevk(cta,ctb)→cta+b;
33、基于同态加密的安全矩阵向量乘法:securelintransevk(ctl,u)→ctl‘;
34、基于同态加密的安全矩阵转置:
35、基于同态加密的安全矩阵乘法:securematmultevk(cta,ctb)→ctab;
36、基于同态加密的安全矩阵行列式:securematdeterminantevk(cta)→ct|a|;
37、所述解密模块,用于云服务方s将经过安全矩阵运算得到的结果密文发送回客户端,客户段对收到的密文进行解密。
38、第三方面,本发明提供了一种电子设备,所述电子设备包括:
39、至少一个处理器;以及,
40、与所述至少一个处理器通信连接的存储器;其中,
41、所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的基于同态加密和安全外包矩阵的隐私保护机器学习方法。
42、第四方面,本发明提供了一种计算机可读存储介质,存储有程序,所述程序被处理器执行时,实现所述的基于同态加密和安全外包矩阵的隐私保护机器学习方法。
43、本发明与现有技术相比,具有如下优点和有益效果:
44、本发明相比于其他方法,有更强的安全性、更低的计算量和更好的扩展性。首先,本发明的安全性可以被定义和证明,而伪装技术的安全性不具有密码学定义上的安全;其次,在拓展性方面,本发明支持对任意维度、类型的矩阵进行安全外包矩阵运算,这主要是由于本发明混合使用了多种密文打包技术来支持多种类型的矩阵,以及通过矩阵分块思想来支持大维度矩阵;最后,在效率方面,本发明通过使用更为紧凑的密文打包方法,充分利用密文空间的计算并行性,使密文的数量以及密文计算量都有效降低。
1.基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,包括下述步骤:
2.根据权利要求1所述基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,所述客户端c完成矩阵数据的打包、加密以及密文传输,具体为:
3.根据权利要求1所述基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,所述基于同态加密的安全矩阵加法,具体为:
4.根据权利要求1所述基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,所述基于同态加密的安全矩阵向量乘法是利用密文上的密文旋转运算rotate和明文密文乘法运算cmult的组合来实现,具体为:
5.根据权利要求1所述基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,所述基于同态加密的安全矩阵转置,具体为:
6.根据权利要求1所述基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,所述基于同态加密的安全矩阵乘法,具体为:
7.根据权利要求1所述基于同态加密和安全外包矩阵的隐私保护机器学习方法,其特征在于,所述基于同态加密的安全矩阵行列式,具体为:
8.基于同态加密和安全外包矩阵的隐私保护机器学习系统,其特征在于,应用于权利要求1-7中任一项所述的基于同态加密和安全外包矩阵的隐私保护机器学习方法,包括初始化模块、加密模块、安全矩阵运算模块以及解密模块;
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1-7任一项所述的基于同态加密和安全外包矩阵的隐私保护机器学习方法。
