CN116248252B - 一种用于联邦学习的数据点乘处理方法 - Google Patents
一种用于联邦学习的数据点乘处理方法 Download PDFInfo
- Publication number
- CN116248252B CN116248252B CN202310519328.3A CN202310519328A CN116248252B CN 116248252 B CN116248252 B CN 116248252B CN 202310519328 A CN202310519328 A CN 202310519328A CN 116248252 B CN116248252 B CN 116248252B
- Authority
- CN
- China
- Prior art keywords
- data
- matrix
- data matrix
- column vector
- row
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种用于联邦学习的数据点乘处理方法。它包括以下步骤:第一方对数据矩阵A进行预处理并进行对角线化处理,得到数据矩阵C;第一方生成公钥pk和私钥sk,采用公钥pk对数据矩阵C的每一行进行同态加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方;第二方采用公钥pk对数据列向量W进行同态加密,得到加密数据列向量F,计算加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G;第二方将结果列向量G发送到第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,数据列向量Q就是数据矩阵A与数据列向量F的点乘结果。本发明能够减少计算时的旋转操作次数,提高了计算效率。
Description
技术领域
本发明涉及联邦学习技术领域,尤其涉及一种用于联邦学习的数据点乘处理方法。
背景技术
随着国内的互联网行业和隐私保护的高速发展,现实生活中越来越多的机构采用联邦学习进行模型训练。基于对数据的隐私保护,需要各方参与训练的数据为加密后的密态数据,基于加密数据和联邦学习自身训练的特性,训练过程中会涉及到大量的矩阵乘以向量的密态运算,然而,这种矩阵乘以向量的密态运算会花费较大的计算时间,进而导致大数据和大模型场景下的联邦学习训练变得十分困难。
目前,联邦学习常采用同态加密算法对待训练的明文数据进行加密计算,同态加密是指这样一种加密函数,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。
对于CKKS、BFV等会使用SIMD加速计算的同态加密算法,SIMD加速计算会将多个明文数据打包加密到同一个密文中,基于这种情况如果需要计算矩阵乘以列向量的密态运算,现有方法是将矩阵的每一行进行同态加密,将列向量进行同态加密,计算密文矩阵每一行与密文列向量之间的点乘结果,过程中需要进行旋转操作(Rotation),而同态加密后的密文旋转操作(Rotation)需要花费大量的计算时间,当矩阵维度较大时,密文旋转操作所带来的计算开销是难以接受的。
发明内容
本发明为了解决上述技术问题,提供了一种用于联邦学习的数据点乘处理方法,其通过预先对数据矩阵进行对角线化处理,使得计算密文矩阵与密文列向量的点乘结果时大大减少了旋转操作的次数,从而在密文通信量不变的情况下大大提高了计算效率。
为了解决上述问题,本发明采用以下技术方案予以实现:
本发明的一种用于联邦学习的数据点乘处理方法,第一方持有m行n列的数据矩阵A,第二方持有n维的数据列向量W,m>1,n>1,包括以下步骤:
S1:第一方对数据矩阵A进行预处理,得到数据矩阵B,对数据矩阵B进行对角线化处理,得到数据矩阵C;
S2:第一方生成公钥pk和私钥sk,采用公钥pk对数据矩阵C的每一行进行同态加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方;
S3:第二方采用公钥pk对数据列向量W进行同态加密,得到加密数据列向量F,计算加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G;
S4:第二方将结果列向量G发送到第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,数据列向量Q就是数据矩阵A与数据列向量F的点乘结果。
在本方案中,第一方先对数据矩阵A进行处理,得到数据矩阵C,采用公钥pk对数据矩阵C进行加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方;接着,第二方采用公钥pk对数据列向量W进行加密,得到加密数据列向量F,计算加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G,由于第二方没有私钥sk,所以第二方无法获取第一方持有的数据矩阵A的明文数据;然后,第二方将结果列向量G发送给第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,由于点乘计算在第二方进行,所以第一方无法获取第二方持有的数据列向量W的明文数据。所以,本方法不会泄漏双方的明文数据,保护了双方的数据隐私。
通过预先对数据矩阵进行对角线化处理,使得第二方在计算加密数据矩阵D与加密数据列向量F的点乘结果时大大减少了旋转操作的次数,从而大大提高了计算效率,而第一方、第二方之间的密文通信量并没有改变。
作为优选,所述步骤S1中第一方对数据矩阵A进行预处理,得到数据矩阵B的方法如下:
如果m=n,则不对数据矩阵A进行处理,数据矩阵B等于数据矩阵A,得到m*m的数据矩阵B;
如果m>n,则将数据矩阵A进行按列补零操作直到列数达到m,得到m*m的数据矩阵B;
如果m<n,则计算出参数g,,/>表示向上取整,如果g≠n,则将数据矩阵A进行按列补零操作直到列数达到g,最终得到m*g的数据矩阵B,如果g=n,则不对数据矩阵A进行处理,数据矩阵B等于数据矩阵A,得到m*g的数据矩阵B。
如果m=n,则数据矩阵B等于数据矩阵A;如果m>n,数据矩阵A进行按列补零操作使得列数达到m,则数据矩阵B等于补零操作后的数据矩阵A;如果m<n且n是m的整数倍,则数据矩阵B等于数据矩阵A;如果m<n且n不是m的整数倍,则将数据矩阵A进行按列补零操作使得n是m的最小整数倍,则数据矩阵B等于补零操作后的数据矩阵A。
作为优选,所述步骤S1中对m*m的数据矩阵B进行对角线化处理,得到数据矩阵C的方法如下:
对数据矩阵B进行对角线化处理,得到数据矩阵C,
其中,1≤i≤m,1≤j≤m,bi,j表示数据矩阵B中第i行第j列的数据,ci,j表示数据矩阵C中第i行第j列的数据。
作为优选,所述步骤S1中对m*g的数据矩阵B进行对角线化处理,得到数据矩阵C的方法如下:
M1:将m*g的数据矩阵B按列等分为k个m*m的子数据矩阵F,k=g/m,
其中,1≤r≤k,1≤i≤m,1≤j≤m,F(r)表示数据矩阵B中第r个子数据矩阵F,f(r)i,j表示子数据矩阵F(r)中第i行第j列的数据;
M2:对数据矩阵B中的每个子数据矩阵F进行对角线化处理,得到数据矩阵C。
作为优选,所述步骤M2包括以下步骤:对子数据矩阵F(1)、F(2)……F(k)分别进行对角线化处理,得到对应的子数据矩阵E(1)、E(2)……E(k),子数据矩阵E(1)、E(2)……E(k)组成数据矩阵C,
对子数据矩阵F(r)进行对角线化处理,得到对应的子数据矩阵E(r)的公式如下:
其中,e(r)i,j表示子数据矩阵E(r)中第i行第j列的数据。
对m行n列的数据矩阵A先进行预处理,之后进行对角线化处理,得到的数据矩阵C的行数为m,与数据矩阵A的行数一致,对数据矩阵C的每一行进行同态加密,得到的也是m个密文,这样就保证了本方法的密文通信量与现有技术的密文通信量一样。
作为优选,所述步骤S3中计算m*m的加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G的方法如下:
N1:将加密数据列向量F转置得到加密数据行向量Z;
N2:计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*m的矩阵H;
N3:对矩阵H的第2至m行分别进行旋转处理,得到矩阵R;
N4:将矩阵R按列求和得到对应的行向量L,将行向量L转置得到结果列向量G。
作为优选,所述步骤N3中对矩阵H的第p行进行旋转处理的方法如下,2≤p≤m:
将第p行内的元素循环左移p-1个位置。
作为优选,所述步骤S3中计算m*g的加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G的方法如下:
F1:将加密数据列向量F转置得到加密数据行向量Z;
F2:计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*g的矩阵H;
F3:对矩阵H的第2至m行分别进行旋转处理,得到矩阵R;
F4:将矩阵R按列求和得到对应的行向量L;
F5:将行向量L复制k-1个,将k个行向量L组成一个k*g的矩阵P;
F6:对矩阵P的第2至k行分别进行旋转处理,得到矩阵T;
F7:将矩阵T按列求和得到对应的行向量S,将行向量S转置得到列向量V;
F8:取列向量V内的前m个元素组成结果列向量G。
作为优选,所述步骤F3中对矩阵H的第p行进行旋转处理的方法如下,2≤p≤m:
将第p行内的元素循环左移p-1个位置。
作为优选,所述步骤F6中对矩阵P的第q行进行旋转处理的方法如下,2≤q≤k:
将第q行内的元素循环左移m* (q-1)个位置。
现有技术计算m行n列的数据矩阵A与n维的数据列向量W的同态加密密文点乘结果时,需要对数据矩阵A对应的密文矩阵的每一行进行n-1次旋转处理,即总共需要进行m*(n-1)次旋转处理。
本方法计算m行n列的数据矩阵A与n维的数据列向量W的同态加密密文点乘结果时,在m、n不同关系下的旋转处理次数如下:
对于m=n的情况,只需进行n-1次旋转处理;
对于m>n的情况,只需进行m-1次旋转处理;
对于m<n的情况,只需进行m+k-2次旋转处理。
在本方法相比于现有技术减少了旋转操作的次数,当m、n数值较大时,本方法可以极大的减少旋转操作次数,大大提高了计算效率。
本发明的有益效果是:通过预先对数据矩阵进行对角线化处理,使得计算密文矩阵与密文列向量的点乘结果时大大减少了旋转操作的次数,从而在密文通信量不变的情况下大大提高了计算效率,不会泄漏双方的明文数据,保护了双方的数据隐私。
附图说明
图1是实施例的流程图;
图2是举例说明1中数据矩阵A转换为数据矩阵C的示意图;
图3是举例说明1中矩阵H转换为矩阵R后经过按列求和、转置得到结果列向量G的示意图;
图4是举例说明2中数据矩阵A转换为数据矩阵C的示意图;
图5是举例说明2中矩阵H转换为矩阵R的示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:本实施例的一种用于联邦学习的数据点乘处理方法,第一方持有m行n列的数据矩阵A,第二方持有n维的数据列向量W,m>1,n>1,如图1所示,包括以下步骤:
S1:第一方对数据矩阵A进行预处理,得到数据矩阵B,对数据矩阵B进行对角线化处理,得到数据矩阵C;
S2:第一方生成公钥pk和私钥sk,采用公钥pk对数据矩阵C的每一行进行同态加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方;
S3:第二方采用公钥pk对数据列向量W进行同态加密,得到加密数据列向量F,采用同态加密算法计算加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G;
S4:第二方将结果列向量G发送到第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,数据列向量Q就是数据矩阵A与数据列向量F的点乘结果。
步骤S1中第一方对数据矩阵A进行预处理,得到数据矩阵B的方法如下:
如果m=n,则不对数据矩阵A进行处理,数据矩阵B等于数据矩阵A,得到m*m的数据矩阵B;
如果m>n,则将数据矩阵A进行按列补零操作直到列数达到m,得到m*m的数据矩阵B;
如果m<n,则计算出参数g,,/>表示向上取整,如果g≠n,则将数据矩阵A进行按列补零操作直到列数达到g,最终得到m*g的数据矩阵B,如果g=n,则不对数据矩阵A进行处理,数据矩阵B等于数据矩阵A,得到m*g的数据矩阵B。
步骤S1中对m*m的数据矩阵B进行对角线化处理,得到数据矩阵C的方法如下:
对数据矩阵B进行对角线化处理,得到数据矩阵C,
其中,1≤i≤m,1≤j≤m,bi,j表示数据矩阵B中第i行第j列的数据,ci,j表示数据矩阵C中第i行第j列的数据。
步骤S1中对m*g的数据矩阵B进行对角线化处理,得到数据矩阵C的方法如下:
M1:将m*g的数据矩阵B按列等分为k个m*m的子数据矩阵F,k=g/m,
其中,1≤r≤k,1≤i≤m,1≤j≤m,F(r)表示数据矩阵B中第r个子数据矩阵F,f(r)i,j表示子数据矩阵F(r)中第i行第j列的数据;
M2:对数据矩阵B中的每个子数据矩阵F进行对角线化处理,得到数据矩阵C;
步骤M2包括以下步骤:对子数据矩阵F(1)、F(2)……F(k)分别进行对角线化处理,得到对应的子数据矩阵E(1)、E(2)……E(k),子数据矩阵E(1)、E(2)……E(k)组成数据矩阵C,
对子数据矩阵F(r)进行对角线化处理,得到对应的子数据矩阵E(r)的公式如下:
其中,e(r)i,j表示子数据矩阵E(r)中第i行第j列的数据。
步骤S3中计算m*m的加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G的方法如下:
N1:将加密数据列向量F转置得到加密数据行向量Z;
N2:计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*m的矩阵H;
N3:对矩阵H的第2至m行分别进行旋转处理,得到矩阵R;
对矩阵H的第p行进行旋转处理的方法如下,2≤p≤m:
将第p行内的元素循环左移p-1个位置;
N4:将矩阵R按列求和得到对应的行向量L,将行向量L转置得到结果列向量G。
步骤S3中计算m*g的加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G的方法如下:
F1:将加密数据列向量F转置得到加密数据行向量Z;
F2:计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*g的矩阵H;
F3:对矩阵H的第2至m行分别进行旋转处理,得到矩阵R;
对矩阵H的第p行进行旋转处理的方法如下,2≤p≤m:
将第p行内的元素循环左移p-1个位置;
F4:将矩阵R按列求和得到对应的行向量L;
F5:将行向量L复制k-1个,将k个行向量L组成一个k*g的矩阵P;
F6:对矩阵P的第2至k行分别进行旋转处理,得到矩阵T;
对矩阵P的第q行进行旋转处理的方法如下,2≤q≤k:
将第q行内的元素循环左移m* (q-1)个位置;
F7:将矩阵T按列求和得到对应的行向量S,将行向量S转置得到列向量V;
F8:取列向量V内的前m个元素组成结果列向量G。
在本方案中,第一方先对数据矩阵A进行处理,得到数据矩阵C,采用公钥pk对数据矩阵C进行加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方;接着,第二方采用公钥pk对数据列向量W进行加密,得到加密数据列向量F,计算加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G,由于第二方没有私钥sk,所以第二方无法获取第一方持有的数据矩阵A的明文数据;然后,第二方将结果列向量G发送给第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,由于点乘计算在第二方进行,所以第一方无法获取第二方持有的数据列向量W的明文数据。所以,本方法不会泄漏双方的明文数据,保护了双方的数据隐私。
如果m=n,则数据矩阵B等于数据矩阵A;如果m>n,数据矩阵A进行按列补零操作使得列数达到m,则数据矩阵B等于补零操作后的数据矩阵A;如果m<n且n是m的整数倍,则数据矩阵B等于数据矩阵A;如果m<n且n不是m的整数倍,则将数据矩阵A进行按列补零操作使得n是m的最小整数倍,则数据矩阵B等于补零操作后的数据矩阵A。即对数据矩阵A进行预处理得到的数据矩阵B的行数依然为m。
对于CKKS、BFV等会使用SIMD加速计算的同态加密算法,在对矩阵进行加密时,就是对矩阵的每一行进行加密得到对应的密文,即对m行n列的数据矩阵A进行加密会得到m个密文。本方法对m行n列的数据矩阵A先进行预处理,之后进行对角线化处理,得到的数据矩阵C的行数为m,与数据矩阵A的行数一致,对数据矩阵C的每一行进行同态加密,得到的也是m个密文,这样就保证了本方法的密文通信量与现有技术的密文通信量一样。
现有技术计算m行n列的数据矩阵A与n维的数据列向量W的同态加密密文点乘结果时,需要对数据矩阵A对应的密文矩阵的每一行进行n-1次旋转处理,即总共需要进行m*(n-1)次旋转处理。
本方法计算m行n列的数据矩阵A与n维的数据列向量W的同态加密密文点乘结果时,在m、n不同关系下的旋转处理次数如下:
对于m=n的情况,只需进行n-1次旋转处理;
对于m>n的情况,只需进行m-1次旋转处理;
对于m<n的情况,只需进行m+k-2次旋转处理。
在本方法相比于现有技术减少了旋转操作的次数,当m、n数值较大时,本方法可以极大的减少旋转操作次数,大大提高了计算效率。
综上所述,本方法相比于现有技术在密文通信量不变的情况下大大提高了计算效率。
举例说明1:
第一方、第二方进行联邦学习模型训练,m=4,n=4,第一方持有4行4列的数据矩阵A,数据矩阵A的第一列数据为年龄特征数据,第二列数据为性别特征数据,第三列数据为个人收入特征数据,第四列数据为家庭整体收入特征数据;第二方持有4维的数据列向量W,第一个数据为年龄特征参数,第二个数据为性别特征参数,第三个数据为个人收入特征参数,第四个数据为家庭整体收入特征参数。
如图2所示,第一方对数据矩阵A进行预处理,由于m=n,数据矩阵B等于数据矩阵A,对数据矩阵B进行对角线化处理,得到数据矩阵C。
第一方生成公钥pk和私钥sk,采用公钥pk对数据矩阵C的每一行进行同态加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方,D=enc(C),enc(C)表示对数据矩阵C进行同态加密。
第二方采用公钥pk对数据列向量W进行同态加密,得到加密数据列向量F,F=enc(W),enc(W)表示对数据列向量W进行同态加密,
将加密数据列向量F转置得到加密数据行向量Z;
计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*m的矩阵H;
如图3所示,对矩阵H的第2至4行分别进行旋转处理,即将第2行内的元素循环左移1个位置,将第3行内的元素循环左移2个位置,将第4行内的元素循环左移3个位置,得到矩阵R;
将矩阵R按列求和得到对应的行向量L,将行向量L转置得到结果列向量G。
第二方将结果列向量G发送到第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,数据列向量Q就是数据矩阵A与数据列向量F的点乘结果。
采用现有算法计算数据矩阵A与数据列向量W的点乘结果,需要进行12次旋转操作,采用本方法值需要进行3次旋转操作,提高了计算效率。
举例说明2:
第一方、第二方进行联邦学习模型训练,m=2,n=4,第一方持有2行4列的数据矩阵A,数据矩阵A的第一列数据为年龄特征数据,第二列数据为性别特征数据,第三列数据为个人收入特征数据,第四列数据为家庭整体收入特征数据;第二方持有4维的数据列向量W,第一个数据为年龄特征参数,第二个数据为性别特征参数,第三个数据为个人收入特征参数,第四个数据为家庭整体收入特征参数。
如图4所示,第一方对数据矩阵A进行预处理,由于m<n,n=2m,所以数据矩阵B等于数据矩阵A,对数据矩阵B进行对角线化处理,得到数据矩阵C。
第一方生成公钥pk和私钥sk,采用公钥pk对数据矩阵C的每一行进行同态加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方,D=enc(C),enc(C)表示对数据矩阵C进行同态加密。
第二方采用公钥pk对数据列向量W进行同态加密,得到加密数据列向量F,F=enc(W),enc(W)表示对数据列向量W进行同态加密,
将加密数据列向量F转置得到加密数据行向量Z;
计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*g的矩阵H;
如图5所示,对矩阵H的第2行进行旋转处理,即将第2行内的元素循环左移1个位置,得到矩阵R;
将矩阵R按列求和得到对应的行向量L,
L=[enc(a1,1*w1+a1,2*w2),enc(a2,2*w2+a2,3*w3) ,enc(a1,3*w3+a1,4*w4) ,enc(a2,4*w4+a2,1*w1)];
将行向量L复制1个,将2个行向量L组成一个2*4的矩阵P;
对矩阵P的第2行进行旋转处理,即将第2行内的元素循环左移2个位置,得到矩阵T;
将矩阵T按列求和得到对应的行向量S,
S=[enc(a1,1*w1+a1,2*w2+a1,3*w3+a1,4*w4),enc(a2,1*w1+a2,2*w2+a2,3*w3+a2,4*w4),enc(a1,1*w1+a1,2*w2+a1,3*w3+a1,4*w4),enc(a2,1*w1+a2,2*w2+a2,3*w3+a2,4*w4)];
将行向量S转置得到列向量V;
取列向量V内的前2个元素组成结果列向量G。
第二方将结果列向量G发送到第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,数据列向量Q就是数据矩阵A与数据列向量F的点乘结果。
采用现有算法计算数据矩阵A与数据列向量W的点乘结果,需要进行6次旋转操作,采用本方法值需要进行2次旋转操作,提高了计算效率。
Claims (7)
1.一种用于联邦学习的数据点乘处理方法,第一方持有m行n列的数据矩阵A,第二方持有n维的数据列向量W,m>1,n>1,其特征在于,包括以下步骤:
S1:第一方对数据矩阵A进行预处理,得到数据矩阵B,对数据矩阵B进行对角线化处理,得到数据矩阵C;
S2:第一方生成公钥pk和私钥sk,采用公钥pk对数据矩阵C的每一行进行同态加密,得到加密数据矩阵D,将公钥pk和加密数据矩阵D发送到第二方;
S3:第二方采用公钥pk对数据列向量W进行同态加密,得到加密数据列向量F,计算加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G;
S4:第二方将结果列向量G发送到第一方,第一方采用私钥sk对结果列向量G进行解密,得到数据列向量Q,数据列向量Q就是数据矩阵A与数据列向量F的点乘结果;
所述步骤S1中第一方对数据矩阵A进行预处理,得到数据矩阵B的方法如下:
如果m=n,则不对数据矩阵A进行处理,数据矩阵B等于数据矩阵A,得到m*m的数据矩阵B;
如果m>n,则将数据矩阵A进行按列补零操作直到列数达到m,得到m*m的数据矩阵B;
如果m<n,则计算出参数g,,/>表示向上取整,如果g≠n,则将数据矩阵A进行按列补零操作直到列数达到g,最终得到m*g的数据矩阵B,如果g=n,则不对数据矩阵A进行处理,数据矩阵B等于数据矩阵A,得到m*g的数据矩阵B;
所述步骤S3中计算m*m的加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G的方法如下:
N1:将加密数据列向量F转置得到加密数据行向量Z;
N2:计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*m的矩阵H;
N3:对矩阵H的第2至m行分别进行旋转处理,得到矩阵R;
N4:将矩阵R按列求和得到对应的行向量L,将行向量L转置得到结果列向量G;
所述步骤S3中计算m*g的加密数据矩阵D与加密数据列向量F的点乘结果,得到结果列向量G的方法如下:
F1:将加密数据列向量F转置得到加密数据行向量Z;
F2:计算加密数据矩阵D与加密数据行向量Z的哈达玛积得到对应的m*g的矩阵H;
F3:对矩阵H的第2至m行分别进行旋转处理,得到矩阵R;
F4:将矩阵R按列求和得到对应的行向量L;
F5:将行向量L复制k-1个,将k个行向量L组成一个k*g的矩阵P;
F6:对矩阵P的第2至k行分别进行旋转处理,得到矩阵T;
F7:将矩阵T按列求和得到对应的行向量S,将行向量S转置得到列向量V;
F8:取列向量V内的前m个元素组成结果列向量G。
5.根据权利要求1所述的一种用于联邦学习的数据点乘处理方法,其特征在于,所述步骤N3中对矩阵H的第p行进行旋转处理的方法如下,2≤p≤m:
将第p行内的元素循环左移p-1个位置。
6.根据权利要求1所述的一种用于联邦学习的数据点乘处理方法,其特征在于,所述步骤F3中对矩阵H的第p行进行旋转处理的方法如下,2≤p≤m:
将第p行内的元素循环左移p-1个位置。
7.根据权利要求1所述的一种用于联邦学习的数据点乘处理方法,其特征在于,所述步骤F6中对矩阵P的第q行进行旋转处理的方法如下,2≤q≤k:
将第q行内的元素循环左移m*(q-1)个位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310519328.3A CN116248252B (zh) | 2023-05-10 | 2023-05-10 | 一种用于联邦学习的数据点乘处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310519328.3A CN116248252B (zh) | 2023-05-10 | 2023-05-10 | 一种用于联邦学习的数据点乘处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116248252A CN116248252A (zh) | 2023-06-09 |
CN116248252B true CN116248252B (zh) | 2023-07-14 |
Family
ID=86629833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310519328.3A Active CN116248252B (zh) | 2023-05-10 | 2023-05-10 | 一种用于联邦学习的数据点乘处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116248252B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及系统 |
CN110324135A (zh) * | 2019-07-04 | 2019-10-11 | 浙江理工大学 | 一种基于云计算的同态加密矩阵行列式安全外包方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810281B2 (en) * | 2017-02-24 | 2020-10-20 | Texas Instruments Incorporated | Outer product multipler system and method |
US11086967B2 (en) * | 2017-03-01 | 2021-08-10 | Texas Instruments Incorporated | Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA) |
US20200151356A1 (en) * | 2017-08-11 | 2020-05-14 | Duality Technologies, Inc. | System and method for fast and efficient searching of encrypted ciphertexts |
CN111064558B (zh) * | 2020-01-09 | 2023-04-07 | 浙江理工大学 | 一种基于云计算的同态加密矩阵连乘安全外包方法 |
CN114168991B (zh) * | 2022-02-10 | 2022-05-20 | 北京鹰瞳科技发展股份有限公司 | 对加密数据进行处理的方法、电路及相关产品 |
CN115865307B (zh) * | 2023-02-27 | 2023-05-09 | 蓝象智联(杭州)科技有限公司 | 一种用于联邦学习的数据点乘运算方法 |
-
2023
- 2023-05-10 CN CN202310519328.3A patent/CN116248252B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及系统 |
CN110324135A (zh) * | 2019-07-04 | 2019-10-11 | 浙江理工大学 | 一种基于云计算的同态加密矩阵行列式安全外包方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116248252A (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Secure outsourced matrix computation and application to neural networks | |
CN111885079B (zh) | 保护数据隐私的多方联合处理数据的方法及装置 | |
Zhou et al. | Quantum image encryption based on generalized Arnold transform and double random-phase encoding | |
CN111324870B (zh) | 一种基于安全双方计算的外包卷积神经网络隐私保护系统 | |
CN112182649A (zh) | 一种基于安全两方计算线性回归算法的数据隐私保护系统 | |
CN110139000B (zh) | 基于压缩感知和生命游戏置乱的图像压缩加密方法 | |
CN113940028B (zh) | 实现白盒密码的方法和装置 | |
CN112818360B (zh) | 一种基于同态加密技术的深度神经网络加密推理方法 | |
Kumar et al. | Novel pseudo random key & cosine transformed chaotic maps based satellite image encryption | |
CN115276947B (zh) | 隐私数据处理方法、装置、系统及存储介质 | |
CN112949741B (zh) | 基于同态加密的卷积神经网络图像分类方法 | |
WO2023116144A1 (zh) | 保护数据隐私的双方联合进行数据处理的方法及装置 | |
CN112311524A (zh) | 一种基于新的混沌映射与压缩感知的图像加密方法 | |
CN115510502A (zh) | 一种隐私保护的pca方法及系统 | |
CN111064558B (zh) | 一种基于云计算的同态加密矩阵连乘安全外包方法 | |
Gabr et al. | A combination of decimal-and bit-level secure multimedia transmission | |
CN117456989A (zh) | 基于全同态加密的隐私保护语音分类方法及系统 | |
CN115865307B (zh) | 一种用于联邦学习的数据点乘运算方法 | |
CN114912132A (zh) | 一种基于模型转换实现隐私保护卷积神经网络推理的方法 | |
Zong et al. | Secure outsourced computation of matrix determinant based on fully homomorphic encryption | |
CN113076551B (zh) | 基于提升方案和跨分量置乱的彩色图像加密方法 | |
Li et al. | GPU accelerated full homomorphic encryption cryptosystem, library and applications for iot systems | |
CN116248252B (zh) | 一种用于联邦学习的数据点乘处理方法 | |
CN111817853B (zh) | 一种后量子安全的签密算法 | |
Wang et al. | High-throughput privacy-preserving GRU network with homomorphic 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 |