掌桥专利:专业的专利平台
掌桥专利
首页

基于同态加密的明文与密文的矩阵乘法计算方法

文献发布时间:2024-04-18 19:58:30


基于同态加密的明文与密文的矩阵乘法计算方法

技术领域

本发明涉及基于同态加密的明文与密文的矩阵乘法计算方法,属于信息安全领域,尤其适用于基于同态加密的明文与密文的矩阵乘法计算。

背景技术

机器学习技术在计算机、信息安全、图像等诸多领域得到了广泛的应用。虽然机器学习在提高社会生产力方面有着巨大的进步,但大量共享数据集也带来了严重的隐私安全问题,因为模型拥有者不希望数据泄露与模型有关的信息,而数据拥有者也不希望泄露数据相关信息。其中一个典型应用场景,如图1所示,模型拥有方(如某公司的云端服务器)希望使用大量用户数据训练模型,并将训练好的模型提供给客户端用于数据预测服务。可见,研究隐私保护机器学习能在保证数据不被泄露的条件下更好地服务各个领域。

同态加密是一种加密方案,它允许对加密的输入进行操作,并且解密的结果与明文相应操作的结果匹配,它不仅可以提供可证安全和抗量子安全,而且理论上可以达到最优的交互次数,因此被认为是最有前途的隐私保护解决方案之一。自2009年C.Gentry提出第一个全同态加密方案以来,诸多改进不断涌现,效率不断提高,已广泛应用于处理隐私数据处理。为了提高方案的效率,文献[1]提出了在同态加密中引入了单指令多数据(SingleInstruction Multiple Data,SIMD)的批处理技术来并行处理数据,但是这也使得计算向量的内积十分困难,导致密文矩阵之间的乘法效率低下。为此,文献[2]和文献[3]分别提出了密文矩阵乘法的新方法,优化了在处理大规模数据时的分块策略。但是这些密文计算方法需要限制矩阵的规模,造成编码浪费,并且在涉及两方参与计算的隐私保护机器学习时,没有给出具体的解决方案。而在考虑两方参与的计算任务时,可以使用明文与密文的矩阵乘法去替代密文与密文的矩阵乘法来实现更高效率的乘法运算。因此,研究高效同态明文与密文的矩阵乘法对同态加密应用到隐私保护机器学习具有深远的意义。

[1]HALEVI S,SHOUP V.Algorithms in helib;proceedings of the Advancesin Cryptology-CRYPTO 2014:34th Annual Cryptology Conference,Santa Barbara,CA,USA,August 17-21,2014,Proceedings,Part I 34,F,2014.

[2]JIANG X,KIM M,LAUTER K,et al.Secure outsourced matrix computationand application to neural networks;proceedings of the Proceedings of the 2018ACM SIGSAC conference on computer and communications security.

[3]HUANG Z,HONG C,WENG C,et al.More Efficient Secure MatrixMultiplication for Unbalanced Recommender Systems[J].2023,20(01):551-62.

发明内容

有鉴于此,如图2所示,本发明提供一种基于同态加密的明文与密文的矩阵乘法计算方法,旨在降低密文矩阵乘法运算的时间,实现高效的明文-密文矩阵乘法。

为达到上述目的,本发明首先对方法中涉及的符号进行如下定义:

(1)对于明文空间

(2)c

(3)明文m与密文c的矩阵乘法操作为

(4)k个密文的加法操作为

(5)密文c的旋转操作为

(6)重复填充操作为reapte(a,p):将输入i维行向量a重复p次连接,输出为一个i·p维的行向量。

(7)生成向量操作为GenV(m,n):输入正整数m,n,输出为m+n维的行向量s=(0

基于此,针对服务器有一个n×m的矩阵A,客户端有一个m×p的矩阵B,实现在服务器计算A×B并且在客户端进行解密得到结果,其中,n、m、p为正整数;本发明提供如下技术方案:

基于同态加密的明文与密文的矩阵乘法计算方法,包括如下步骤:

S1:设定同态加密方案ε=(Enc,Dec)的安全参数λ,根据安全参数λ生成同态加密方案的相关加解密参数;

S2:客户端根据加解密参数生成私钥sk,公钥pk和运算密钥ek;

S3:客户端将矩阵B编码成向量b,并利用公钥pk对向量b加密得到加密数据c

S4:服务器将矩阵A进行编码得到编码矩阵

S5:服务器利用编码矩阵

S6:客户端利用私钥sk解密c

进一步,步骤S1具体为:

S101:确定安全参数λ,即至少可抵御拥有2

S102:客户端根据样本数据选取整数p,在密文计算过程中数值大小不会超过p/2;

S103:用户根据安全参数λ,并按照同态加密安全标准(Homomorphic EncryptionSecurity Standard)(

进一步,步骤S2具体为:

S201:客户端生成一个系数从集合{-1,0,1}中等概率随机选取未定元X的次数不超过

S202:客户端从R

S203:客户端根据所选择的同态加密方案,生成密文运算过程中噪声控制所需的运算密钥ek。

进一步,步骤S3具体为:

S301:客户端对矩阵B

S302:客户端调用加密算法操作对向量b进行加密,得到c

S303:客户端将加密数据c

进一步,步骤S4具体为:

S401:服务器对A矩阵填零将其补充成方阵A′;具体的,如果n<m,在A中添加全零行,将矩阵补充成m×m大小的矩阵;如果n>m,则在A中添加全零列,将矩阵补充成n×n大小的矩阵;

S402:服务器对方阵A′=[a

S403:当n>m时,对加密数据c

更进一步,步骤S402所述的编码为逐行的对方阵A′=[a

S4021:对0≤i<k,计算编码矩阵第i行的行向量

S4022:对k≤i<2k-1,计算编码矩阵第i行的行向量

更进一步,步骤S403具体为:

S4031:对加密数据c

S4032:根据公式

进一步,步骤S5具体为:

S501:服务器根据输入的

可优选的是,如果

S502:服务器计算

进一步,客户端利用私钥sk解密c

可优选的,步骤S1中所述的同态加密方案可以是所有使用SIMD技术的方案之一,如BGV方案、B/FV方案以及CKKS方案,其中,BGV方案参考文献如下:Brakerski,Z.,Gentry,C.,Vaikuntanathan,V.:(Le veled)fully homomorphic encryption withoutbootstrapping.ACM Transactions on Computation Theory 6(3),13:1-13:36(2014).

可优选的,所述的安全参数λ,取λ=128或256;所述的误差分布χ取作离散高斯分布。

本发明的有益效果在于:本发明提供了基于同态加密的明文与密文的矩阵乘法计算方法,在两方参与的隐私计算框架下能实现服务器对客户端需求的快速高效矩阵乘法计算,服务器只对加密的数据进行处理,接触不到任何客户端的矩阵信息,从而同时保证了模型和数据二者的安全性;其矩阵乘法的计算结果与客户端编码一致,能直接开始下一次矩阵乘法,具有很强的泛化能力。特别地,当n≤m时,能在不增加时间开销的情况下实现对更大p值的矩阵乘法计算。

附图说明

为了使本发明的目的、技术方案,本发明提供如下附图进行说明:

图1为现有技术方案的框架图;

图2为本发明技术方案的框架图;

图3为本发明实施例1的流程图;

图4为本发明实施例2的技术方案框架图;

图5为本发明实施例2的流程图。

具体实施方式

实施例1:在典型的密文矩阵乘法中,为了达到隐私保护的目的。客户端将所拥有的数据进行编码并加密,将密文发送给服务器;服务器将密文数据进行计算,得到矩阵乘法的计算结果;客户端解密密文得到矩阵乘法计算的结果。

在本实施例中,假设服务器“李四”有一个矩阵A

假定双发选定CKKS作为同态加密方案。本发明提供一种“基于同态加密的明文与密文的矩阵乘法计算方法”。

下面将结合附图,对本发明的优选实施例进行详细的描述。

如图3所示,本发明步骤如下:

步骤一:张三设定CKKS同态加密方案的参数。

(1)选定安全参数λ=128;

(2)选定素数p=40;

(3)按照同态加密标准选取参数q是一个随机选取的4个位长在40-60之间的奇素数的乘积,q的位长约为200;

需要说明的是,CKKS方案与其它方案有细微差别,其次在此安全参数下,根据目前文献中最好的攻击方式,可抵御拥有2

步骤二:张三根据安全参数生成密钥。

(1)从系数为{-1,0,1}、次数不超过

(2)从系数为{0,1,2,...,q-1}、次数不超过8192单变元多项式集合中均匀随机选取一个多项式a,从次数不超过8192的整系数多项式集合上标准差为3.2的离散高斯分布中选取一个噪声多项式e,令公钥pk=(-[(a·f+e)]

(3)根据私钥sk和公钥pk生成用于密文运算噪声控制的运算密钥ek。

步骤三:张三将矩阵B编码成向量b,并利用公钥pk对向量加密得到加密数据c

(1)将矩阵B编码成一个8维的向量b=(0.1,0.5,0.2,0.6,0.3,0.7,0.4,0.8)。

(2)对向量b进行加密c

(3)张三将c

步骤四:李四将矩阵A编码得到编码矩阵

(1)李四确定计算大小3>2,因此k=3,补充方阵A

(2)李四对矩阵A

(3)对密文c

通过计算,改变密文c

步骤五:李四利用编码矩阵

(1)当0≤i<3时,计算以下式子:

可优选的,

(2)计算

步骤六:张三用私钥sk解密c

实施例2:在典型的隐私保护机器学习模型中,为了达到隐私保护的目的,客户端将所拥有的数据进行加密,将密文发送给服务器;服务器将密文数据代入模型进行预测,获得预测结果的密文并发送给客户端;客户端解密密文得到预测结果。如图4所示,将上述矩阵乘法计算方法应用到贝叶斯分类器上,实现分类预测任务。为此,需要对贝叶斯方法进行优化,加入额外操作进行分类任务,本发明提供一种“基于同态加密的明文与密文的矩阵乘法计算方法的分类预测方法”。

在本实施例中,假设用户“张三”持有四个样本数据x

对贝叶斯模型进行改进,将先验概率和似然矩阵都取对数,并且将似然矩阵整体合成拼接成一个大矩阵A:对所有待预测的样本特征的取值,取特征值对应的序号为1,其余全取为0,拼接成矩阵B:

a

因此,只需计算A×B的矩阵乘法结果,再对每列结果都加上先验概率a

下面将结合附图,对本发明的优选应用例进行详细的描述。

如图5所示,本发明在贝叶斯分类预测中应用步骤如下:

步骤一:张三设定CKKS同态加密方案的参数。

(1)选定安全参数λ=128;

(2)选定素数p=40;

(3)按照同态加密标准选取参数q是一个随机选取的4个位长在40-60之间的奇素数的乘积,q的位长约为200;

需要说明的是,CKKS方案与其它方案有细微差别,其次在此安全参数下,根据目前文献中最好的攻击方式,可抵御拥有2

步骤二:张三根据安全参数生成密钥。

(1)从系数为{-1,0,1}、次数不超过

(2)从系数为{0,1,2,...,q-1}、次数不超过8192单变元多项式集合中均匀随机选取一个多项式a,从次数不超过8192的整系数多项式集合上标准差为3.2的离散高斯分布中选取一个噪声多项式e,令公钥pk=(-[(a·f+e)]

(3)根据私钥sk和公钥pk生成用于密文运算噪声控制的运算密钥ek。

步骤三:张三将矩阵B编码成向量b,并利用公钥pk对向量加密得到加密数据c

(1)将矩阵B编码成一个16维的向量b=(1,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1)。

(2)对向量b进行加密c

(3)张三将c

步骤四:李四将矩阵A编码得到编码矩阵

(1)李四确定计算大小3<4,因此k=4,补充方阵A

(2)李四对矩阵A

(3)李四根据大小3<4,计算

步骤五:李四利用编码矩阵

(1)当0≤i<4时,计算以下式子:

可优选的

(2)计算

步骤六:李四扩展先验概率a

(1)李四对先验概率a

a

a

(2)更新c

此步骤是为了完成贝叶斯分类进行的额外操作,其中添加随机数保证贝叶斯模型的信息不被泄露。

步骤七:张三用私钥sk解密c

m=(-3.341,-2.713,-2.713,0,-1.755,-2.513,-2.918,0,-2.836,-1.766,-2.613,0,-1.250,-1.566,-2.818,0),

然后比较16个数据每4个数据的前3个大小,最大值的序标则为分类结果,所以4个样本的分类结果为:{1,0,1,0}。可见,本发明方法能够准确地实现隐私保护下的客户端数据分类预测,与明文的分类预测方法计算结果一致。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

相关技术
  • 基于完全同态加密技术的中间代码加密方法及密文虚拟机系统
  • 基于完全同态加密技术的中间代码加密方法及密文虚拟机系统
技术分类

06120116496834