CN115174035A - 数据处理方法及装置 - Google Patents

数据处理方法及装置 Download PDF

Info

Publication number
CN115174035A
CN115174035A CN202210770493.1A CN202210770493A CN115174035A CN 115174035 A CN115174035 A CN 115174035A CN 202210770493 A CN202210770493 A CN 202210770493A CN 115174035 A CN115174035 A CN 115174035A
Authority
CN
China
Prior art keywords
homomorphic
vector
real
ciphertext
linear transformation
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
Application number
CN202210770493.1A
Other languages
English (en)
Inventor
何家兴
王尧
雷浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210770493.1A priority Critical patent/CN115174035A/zh
Publication of CN115174035A publication Critical patent/CN115174035A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供一种数据处理方法及装置,该方法包括:获取对明文数据进行同态加密得到的密文数据,以及线性变换矩阵;明文数据为实数数据,线性变换矩阵为实矩阵;从线性变换矩阵中提取出满足约束条件的多个实向量;约束条件包括多个实向量分别与明文数据的同态乘积的总和,与基于线性变换矩阵对明文数据进行线性变换计算的计算结果相同;将多个实向量划分为多个实向量分组;对多个实向量分组分别进行复向量编码,并对密文数据进行复向量编码;分别计算与多个实向量分组对应的复向量集合中的复向量与密文复向量的同态乘积,并计算同态乘积的实部的总和,得到基于线性变换矩阵对密文数据进行线性变换计算的计算结果。

Description

数据处理方法及装置
技术领域
本说明书一个或多个实施例涉及数据隐私保护技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着计算机技术和网络技术的发展,数据传播的途径越来越多,数据传播的速度也越来越快,由此导致数据泄露的可能性增加。然而,现如今存在大量的敏感数据,例如:企业的商业秘密、知识产权、关键业务信息、业务合作伙伴信息或客户信息等数据。为了对数据进行隐私保护,避免数据泄露,通常会采取必要措施,使数据处于有效保护和合法利用的状态;例如,采用加密算法对数据进行加密,以保证数据本身的安全。
通常,将未加密的数据称为明文数据,并将加密后的数据称为密文数据。将明文数据变换为密文数据的过程即为加密过程,而将密文数据逆变换为明文数据的过程则为解密过程。在实际应用中,存在众多需要对明文数据进行特定的计算,得到相应的计算结果,并将计算结果用于后续的业务处理的情况。为了提高数据计算速度,通常会将数据提供给计算能力较强的第三方,由第三方执行数据计算,因此就希望将针对明文数据的计算转化为针对密文数据的计算,避免第三方获取到明文数据,进一步实现对数据的隐私保护。
发明内容
本说明书一个或多个实施例提供技术方案如下:
本说明书提供一种数据处理方法,所述方法包括:
获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,并计算所述同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
本说明书还提供一种数据处理装置,所述装置包括:
获取模块,获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
提取模块,从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
分组模块,将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
编码模块,对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
计算模块,分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,并计算所述同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
本说明书还提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
本说明书还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
在上述技术方案中,对于对明文数据进行同态加密得到的密文数据,以及用于对该明文数据进行线性变换计算的线性变换矩阵而言,可以先从该线性变换矩阵中提取出多个实向量,这多个实向量分别与该明文数据的同态乘积的总和,与基于该线性变换矩阵对该明文数据进行线性变换计算的计算结果相同,再对这多个实向量划分出的多个实向量分组进行复向量编码,得到与这多个实向量分组对应的复向量集合,并对该密文数据进行复向量编码,得到与该密文数据对应的密文复向量,从而可以分别计算该复向量集合中的复向量与该密文复向量的同态乘积,并计算同态乘积的实部的总和,该总和即为基于该线性变换矩阵对该密文数据进行线性变换计算的计算结果。
采用上述方式,在对同态加密后的密文数据进行线性变换计算时,执行的是复数乘法计算,而不是实数乘法计算,由于通过一次复数乘法计算,可以得到两次实数乘法计算的计算结果,使得对同态加密后的密文数据进行线性变换计算的计算复杂度显著降低。
附图说明
图1是本说明书一示例性实施例示出的一种同态加密算法的实现效果的示意图。
图2是本说明书一示例性实施例示出的一种数据处理方法的流程图。
图3是本说明书一示例性实施例示出的另一种数据处理方法的流程图。
图4是本说明书一示例性实施例示出的一种设备的硬件结构的示意图。
图5是本说明书一示例性实施例示出的一种数据处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
同态加密(Homomorphic Encryption,HE)算法是基于数学难题的计算复杂性理论(Computational Complexity Theory)的加密算法,其满足密文同态运算性质。
请参考图1,图1是本说明书一示例性实施例示出的一种同态加密算法的实现效果的示意图。
如图1所示,在对原始的明文数据进行同态加密得到密文数据的情况下,可以对该密文数据进行特定的计算,得到密文形式的计算结果,并对该密文形式的计算结果进行相应的同态解密,得到解密后的明文形式的计算结果,此时该明文形式的计算结果与直接对原始的明文数据进行同样的计算得到的计算结果相同。由此,实现了对数据的“可算不可见”。
举例来说,假设明文数据为m,基于某一同态加密算法,对明文数据m进行同态加密得到密文数据c,则对于明文数据f(m)而言,f(c)为与其对应的密文数据。其中,f是属于函数族F的任一函数;函数族F为与该同态加密算法对应的同态函数族,即该同态加密算法支持的满足密文同态运算性质的所有函数的集合。
如果一种同态加密算法支持对密文数据进行任意形式的计算,则称其为全同态加密(Fully Homomorphic Encryption,FHE)算法;如果其支持对密文数据进行部分形式的计算,例如:仅支持加法、仅支持乘法或支持有限次的加法和乘法,则称其为半同态加密(Somewhat Homomorphic Encryption,SWHE)或部分同态加密(Partially HomomorphicEncryption,PHE)。一般而言,由于任意形式的计算均可通过加法和乘法构造,如果一种加密算法同时满足加法同态性和乘法同态性,则可以认为其满足全同态性。
在同态加密算法中,明文数据可以是单个明文(例如:单个数值),也可以是明文向量。相应的,密文数据可以是单个密文,也可以是密文向量。
同态加密算法通常包括密钥生成(KeyGen)算法、加密(Encrypt)算法、解密(Decrypt)算法、同态计算(Evaluate)算法等部分。其中,密钥生成算法用于生成公钥和私钥;加密算法用于基于公钥将明文数据加密为密文数据;解密算法用于基于私钥将密文数据解密为明文数据;同态计算算法用于规定该同态加密算法支持的满足密文同态运算性质的所有函数的集合。
除此之外,同态加密算法还可以包括编码(Encode)算法和译码(Decode)算法。在这类同态加密算法中,编码算法用于将明文向量变换为明文多项式;加密算法用于基于公钥将明文多项式加密为密文多项式;解密算法用于基于私钥将密文多项式解密为明文多项式;译码算法用于将明文多项式变换为明文向量。
以CKKS全同态加密算法为例,CKKS全同态加密算法是基于RLWE(Ring LearningWith Errors,环上错误学习)难题的同态加密算法,其满足全同态性。
CKKS全同态加密算法包括密钥生成算法、编码算法、加密算法、解密算法、译码算法、同态计算算法。其中,同态计算算法可以包括同态加法、同态乘法、同态旋转变换算法。
具体地,上述同态加法可以表示为:
Figure BDA0003723782590000041
其中,与密文向量
Figure BDA0003723782590000042
对应的明文向量,等于与密文向量
Figure BDA0003723782590000043
对应的明文向量和与密文向量
Figure BDA0003723782590000044
对应的明文向量相加。例如,假设明文向量
Figure BDA0003723782590000051
明文向量
Figure BDA0003723782590000052
Figure BDA0003723782590000053
上述同态乘法可以表示为:
Figure BDA0003723782590000054
其中,与密文向量
Figure BDA0003723782590000055
对应的明文向量,等于与密文向量
Figure BDA0003723782590000056
对应的明文向量和与密文向量
Figure BDA0003723782590000057
对应的明文向量中对应分量相乘。例如,假设明文向量
Figure BDA0003723782590000058
明文向量
Figure BDA0003723782590000059
Figure BDA00037237825900000510
Figure BDA00037237825900000511
不同于向量的点积,表示向量中对应分量相乘。
上述同态旋转变换算法可以表示为:
Figure BDA00037237825900000512
其中,与密文向量
Figure BDA00037237825900000513
对应的明文向量,等于与密文向量
Figure BDA00037237825900000514
对应的明文向量中的分量循环左移i位后的向量。例如,假设明文向量
Figure BDA00037237825900000515
Figure BDA00037237825900000516
表示将
Figure BDA00037237825900000517
中的分量循环左移1位,
Figure BDA00037237825900000518
Figure BDA00037237825900000519
表示将
Figure BDA00037237825900000520
中的分量循环左移2位,
Figure BDA00037237825900000521
以此类推。
在CKKS全同态加密算法中,明文数据通常是明文向量。编码即为将明文向量变换为明文多项式,而解码则为将明文多项式变换为明文向量。因此,明文向量和明文多项式是明文数据的两种表现形式,两者本质上是相同的。
在本说明书中,明文向量可以指代明文向量或明文多项式。相应的,密文向量可以指代密文向量或密文多项式。
在实际应用中,存在需要对明文数据进行线性变换计算的情况。对于向量形式的明文数据而言,对其进行线性变换计算,即为计算特定的矩阵与明文向量的乘积;例如,假设明文数据为明文向量
Figure BDA00037237825900000522
明文向量
Figure BDA00037237825900000523
的维数为n,则可以基于n阶矩阵M,对该明文数据进行线性变换计算,得到计算结果
Figure BDA00037237825900000524
如下式所示(下面将维数为n的向量表示为n行1列的矩阵):
Figure BDA00037237825900000525
Figure BDA00037237825900000526
需要说明的是,如果基于某一同态加密算法,对明文数据进行同态加密,得到了与该明文数据对应的密文数据,则可以基于该同态加密算法中的同态计算算法,将针对该明文数据的线性变换计算,转化为针对该密文数据的线性变换计算;例如,假设与明文向量
Figure BDA00037237825900000527
对应的密文向量为
Figure BDA00037237825900000528
则可以先基于该同态加密算法中的同态计算算法,计算
Figure BDA00037237825900000529
再基于该同态加密算法,对
Figure BDA00037237825900000530
进行同态解密,得到
Figure BDA00037237825900000531
举例来说,在多方联合建模的场景下,LR(Logistic Regression,逻辑回归)模型等模型在基于向量形式的特征数据进行迭代计算的过程中,通常存在基于作为模型参数的矩阵对特征向量进行线性变换计算的情况。
提供特征数据的数据方为了保护自身的数据隐私,可以对上述特征数据进行同态加密,得到对应的密文向量,并将该密文向量提供给提供模型的模型方。模型方可以将该密文向量输入模型,由该模型基于该密文向量进行迭代计算,在此过程中,就需要基于上述矩阵对该密文向量进行线性变换计算。
或者,在隐私信息检索(Private Information Retrieval,PIR)的场景下,用户可以向服务器上的数据库提交数据查询请求,在数据查询隐私不被泄露的条件下完成数据查询,即在数据查询的过程中,服务器无法知晓用户查询的具体数据。
上述数据库中可以存储有矩阵形式的数据。用户在需要查询矩阵的第i行时,可以构建用于查询数据的向量。其中,该向量的第i个分量为1,其他的分量均为0。用户可以对该向量进行同态加密,得到对应的密文向量,并将该密文向量提供给服务器。服务器可以基于该矩阵对该密文向量进行线性变换计算,并将计算结果返回给用户。用户在对该计算结果进行同态解密后,可以得到基于该矩阵对所构建的向量进行线性变换计算的计算结果,即该矩阵的第i行。
相关技术中在计算
Figure BDA0003723782590000061
时,首先,可以对矩阵M进行按行编码,以从矩阵M中提取出n个向量,表示为:
Figure BDA0003723782590000062
也即,将矩阵M的一行作为一个向量。
其次,可以分别计算这n个向量与密文向量
Figure BDA0003723782590000063
的同态乘积,表示为:
Figure BDA0003723782590000064
在这种情况下,该同态乘积为密文数据;与该同态乘积对应的明文数据为:
Figure BDA0003723782590000065
Figure BDA0003723782590000066
然后,可以分别对这n个向量与密文向量
Figure BDA0003723782590000067
的同态乘积进行同态旋转变换。针对每个同态乘积,执行log2 n次同态旋转变换;每次循环左移2k位,并计算同态旋转变换前和同态旋转变换后的同态乘积的总和(本说明书中的总和指代同态总和),以对该总和进行下一次同态旋转变换;其中,0≤k≤log2 n-1。在这种情况下,最终得到的总和为密文数据;与该总和对应的明文数据为:
Figure BDA0003723782590000068
最后,可以提取出Zi的第i个分量,并计算所有Zi的总和。此时,该总和即为
Figure BDA0003723782590000069
在这种情况下,该总和为密文数据;与该总和对应的明文数据即为:
Figure BDA0003723782590000071
下面以n=4为例,对相关技术中计算
Figure BDA0003723782590000072
的过程进行说明。
假设
Figure BDA0003723782590000073
首先,可以对矩阵M进行按行编码,以从矩阵M中提取出4个向量,分别为:
Figure BDA0003723782590000074
其次,以向量
Figure BDA0003723782590000075
为例,可以计算向量
Figure BDA0003723782590000076
与密文向量
Figure BDA0003723782590000077
的同态乘积,表示为:
Figure BDA0003723782590000078
在这种情况下,同态乘积
Figure BDA0003723782590000079
为密文数据;与同态乘积
Figure BDA00037237825900000710
对应的明文数据为:
Figure BDA00037237825900000711
然后,继续以向量
Figure BDA00037237825900000712
为例,可以对同态乘积
Figure BDA00037237825900000713
进行同态旋转变换。由于log2 4=2,需要执行2次同态旋转变换;在执行第1次同态旋转变换时,循环左移20=1位,并计算同态旋转变换前和同态旋转变换后的同态乘积的总和,该总和为密文数据,与该总和对应的明文数据为
Figure BDA00037237825900000714
在执行第2次同态旋转变换时,循环左移21=2位,并计算同态旋转变换前和同态旋转变换后的同态乘积的总和,该总和为密文数据,与该总和对应的明文数据为
Figure BDA00037237825900000715
Figure BDA00037237825900000716
与向量
Figure BDA00037237825900000717
类似的,可以基于向量
Figure BDA00037237825900000718
计算出Z2,基于向量
Figure BDA00037237825900000719
计算出Z3,基于向量
Figure BDA00037237825900000720
计算出Z4
最后,可以提取出Z1的第1个分量,提取出Z2的第2个分量,提取出Z3的第3个分量,提取出Z4的第4个分量,并计算Z1、Z2、Z3、Z4的总和。此时,
Figure BDA0003723782590000081
在这种情况下,与
Figure BDA0003723782590000082
对应的明文数据为:
Figure BDA0003723782590000083
需要说明的是,矩阵M为实矩阵,即矩阵M中的所有元素(例如:w1,1至wn,n)均为实数。明文向量
Figure BDA0003723782590000084
为实向量,即明文向量
Figure BDA0003723782590000085
中的所有分量(例如:x1至xn)均为实数。
由此可见,在相关技术中,为了得到
Figure BDA0003723782590000086
针对密文向量
Figure BDA0003723782590000087
一共需要执行n次同态乘法计算,以及n log2 n次同态旋转变换。也即,对同态加密后的密文数据进行线性变换计算的计算复杂度为n+n log2 n。
本说明书一个或多个实施例提供用于数据处理的技术方案,以降低对同态加密后的密文数据进行线性变换计算的计算复杂度。
在具体实现时,可以获取密文数据和线性变换矩阵,以基于该线性变换矩阵对该密文数据进行线性变换计算。
需要说明的是,上述密文数据可以是基于预设的同态加密算法,对明文数据进行同态加密得到的数据。相应的,上述线性变换矩阵可以是用于对该明文数据进行线性变换计算的矩阵。其中,该明文数据可以是实数数据;该线性变换矩阵可以是实矩阵。
在获取到上述线性变换矩阵的情况下,由于该线性变换矩阵为实矩阵,可以从该线性变换矩阵中提取出满足约束条件的多个实向量。其中,该约束条件可以包括:这多个实向量分别与上述明文数据的同态乘积的总和,与基于上述线性变换矩阵对该明文数据进行线性变换计算的计算结果相同。
在从上述线性变换矩阵中提取出上述多个实向量的情况下,可以将这多个实向量划分为用于对这多个实向量进行复向量编码的多个实向量分组。其中,对于任一实向量分组,以及对该实向量分组进行复向量编码得到的复向量而言,该实向量分组可以包括与该复向量的实部对应的实向量(可称为第一实向量),以及与该复向量的虚部对应的实向量(可称为第二实向量)。
与之相应的,后续可以对上述多个实向量分组分别进行复向量编码,得到与这多个实向量分组对应的复向量集合。其中,该复向量集合即为由与这多个实向量分组分别对应的复向量组成的集合。
而在获取到上述密文数据的情况下,可以对该密文数据进行复向量编码,得到与该密文数据对应的复向量(可称为密文复向量)。
在得到上述复向量集合和上述密文复向量的情况下,可以分别计算该复向量集合中的复向量与该密文复向量的同态乘积,并计算所有同态乘积的实部的总和。此时,该总和即为基于上述线性变换矩阵对上述密文数据进行线性变换计算的计算结果。
在上述技术方案中,对于对明文数据进行同态加密得到的密文数据,以及用于对该明文数据进行线性变换计算的线性变换矩阵而言,可以先从该线性变换矩阵中提取出多个实向量,这多个实向量分别与该明文数据的同态乘积的总和,与基于该线性变换矩阵对该明文数据进行线性变换计算的计算结果相同,再对这多个实向量划分出的多个实向量分组进行复向量编码,得到与这多个实向量分组对应的复向量集合,并对该密文数据进行复向量编码,得到与该密文数据对应的密文复向量,从而可以分别计算该复向量集合中的复向量与该密文复向量的同态乘积,并计算同态乘积的实部的总和,该总和即为基于该线性变换矩阵对该密文数据进行线性变换计算的计算结果。
采用上述方式,在对同态加密后的密文数据进行线性变换计算时,执行的是复数乘法计算,而不是实数乘法计算,由于通过一次复数乘法计算,可以得到两次实数乘法计算的计算结果,使得对同态加密后的密文数据进行线性变换计算的计算复杂度显著降低。
请参考图2,图2是本说明书一示例性实施例示出的一种数据处理方法的流程图。
上述数据处理方法可以包括以下步骤:
步骤202,获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
步骤204,从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
步骤206,将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
步骤208,对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
步骤210,分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,并计算所述同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
在本实施例中,可以获取密文数据和线性变换矩阵,以基于该线性变换矩阵对该密文数据进行线性变换计算。
需要说明的是,一方面,上述密文数据可以是基于预设的同态加密算法,对明文数据进行同态加密得到的数据。相应的,上述线性变换矩阵可以是用于对该明文数据进行线性变换计算的矩阵。其中,该明文数据可以是实数数据;该线性变换矩阵可以是实矩阵。
另一方面,上述明文数据可以是向量形式的数据,即明文向量。相应的,上述密文数据可以是向量形式的数据,即密文向量。
在示出的一种实施方式中,上述同态加密算法具体可以是CKKS全同态加密算法。或者,该同态加密算法也可以是其他同态加密算法,具体可以由用户根据实际需求预先设置,本说明书对此不作限制。
以前述多方联合建模的场景为例,数据方可以基于上述同态加密算法,对明文数据进行同态加密,得到密文数据,并将该密文数据提供给模型方。模型方可以将该密文数据输入模型,由该模型基于其中用于对该明文数据进行线性变换计算的矩阵,对该密文数据进行线性变换计算。
或者,以前述隐私信息检索的场景为例,用户可以基于上述同态加密算法,对明文数据进行同态加密,得到密文数据,并将该密文数据提供给服务器。服务器可以将数据库中存储的待查询的矩阵,作为用于对该明文数据进行线性变换计算的矩阵,对该密文数据进行线性变换计算。
再者,也可以由同一设备基于上述同态加密算法,对明文数据进行同态加密,得到密文数据,并基于用于对该明文数据进行线性变换计算的矩阵,对该密文数据进行线性变换计算。本说明书对此不作限制。
在获取到上述线性变换矩阵的情况下,由于该线性变换矩阵为实矩阵,可以从该线性变换矩阵中提取出满足约束条件的多个实向量。其中,该约束条件可以包括:这多个实向量分别与上述明文数据的同态乘积的总和,与基于上述线性变换矩阵对该明文数据进行线性变换计算的计算结果相同。
需要说明的是,在上述同态加密算法为CKKS全同态加密算法的情况下,上述同态乘积可以是向量中对应分量的乘积;例如:假设明文向量
Figure BDA0003723782590000101
明文向量
Figure BDA0003723782590000102
Figure BDA0003723782590000103
Figure BDA0003723782590000104
Figure BDA0003723782590000105
不同于向量的点积,表示向量中对应分量相乘。
在示出的一种实施方式中,在从上述线性变换矩阵中提取出上述多个实向量时,具体可以对该线性变换矩阵进行按照对角线的编码,以从该线性变换矩阵中提取出这多个实向量。在这种情况下,上述约束条件还可以包括:对于这多个实向量中的任一实向量而言,其中的任意两个分量,属于所述线性变换矩阵中的不同行和不同列。
以实矩阵
Figure BDA0003723782590000111
为例,通过对该实矩阵进行按照对角线的编码,可以从该实矩阵中提取出n个实向量,表示为:
Figure BDA0003723782590000112
此时,需要对分量wn-1,i-1的下标进行模n运算,即减去n的整数倍不计。相应的,以明文向量
Figure BDA0003723782590000113
为例,
Figure BDA0003723782590000114
假设n=4,则实矩阵
Figure BDA0003723782590000115
通过对该实矩阵进行按照对角线的编码,可以从该实矩阵中提取出4个实向量,分别为:
Figure BDA0003723782590000116
Figure BDA0003723782590000117
相应的,明文向量
Figure BDA0003723782590000118
Figure BDA0003723782590000119
由此可见,实向量
Figure BDA00037237825900001110
中的任意两个分量,属于实矩阵M中的不同行和不同列;并且,这n个实向量分别与明文向量
Figure BDA00037237825900001111
(具体可以包括明文向量
Figure BDA00037237825900001112
本身,以及对明文向量
Figure BDA00037237825900001113
进行同态旋转变换得到的向量)的同态乘积的总和,与基于实矩阵M对明文向量
Figure BDA00037237825900001114
进行线性变换计算的计算结果相同。
在从上述线性变换矩阵中提取出上述多个实向量的情况下,可以将这多个实向量划分为用于对这多个实向量进行复向量编码的多个实向量分组。其中,对于任一实向量分组,以及对该实向量分组进行复向量编码得到的复向量而言,该实向量分组可以包括与该复向量的实部对应的实向量(可称为第一实向量),以及与该复向量的虚部对应的实向量(可称为第二实向量)。
与之相应的,后续可以对上述多个实向量分组分别进行复向量编码,得到与这多个实向量分组对应的复向量集合。其中,该复向量集合即为由与这多个实向量分组分别对应的复向量组成的集合。
而在获取到上述密文数据的情况下,可以对该密文数据进行复向量编码,得到与该密文数据对应的复向量(可称为密文复向量)。
在示出的一种实施方式中,在将上述多个实向量划分为上述多个实向量分组时,具体可以按照预设的间隔值进行划分,使得对于任一实向量分组而言,其第一实向量中的第一分量与其第二实向量中的第二分量,在上述线性变换矩阵中间隔的列数为该间隔值,而该第一分量和该第二分量属于该线性变换矩阵中的同一行。
在上述情况下,在对上述密文数据进行复向量编码时,具体可以先按照上述间隔值对该密文数据进行同态旋转变换,再将该密文数据确定为与该密文数据对应的密文复向量的实部,并将同态旋转变换后的该密文数据确定为该密文复向量的虚部。
需要说明的是,在上述同态加密算法为CKKS全同态加密算法的情况下,上述同态旋转变换可以是将向量中的分量循环左移;例如:假设明文向量
Figure BDA0003723782590000121
Figure BDA0003723782590000122
表示将
Figure BDA0003723782590000123
中的分量循环左移1位,
Figure BDA0003723782590000124
Figure BDA0003723782590000125
表示将
Figure BDA0003723782590000126
中的分量循环左移2位,
Figure BDA0003723782590000127
以此类推。
在得到上述复向量集合和上述密文复向量的情况下,可以分别计算该复向量集合中的复向量与该密文复向量的同态乘积,并计算所有同态乘积的实部的总和。此时,该总和即为基于上述线性变换矩阵对上述密文数据进行线性变换计算的计算结果。
在示出的一种实施方式中,针对上述复向量集合中的任一复向量(可称为目标复向量),在计算该目标复向量与上述密文复向量的同态乘积时,具体可以先确定与该目标复向量对应的同态旋转变换参数,即将向量中的分量循环左移的位数,并基于该同态旋转变换参数,对该密文复向量进行同态旋转变换。后续,可以计算该目标复向量与同态旋转变换后的该密文复向量的同态乘积。
以实矩阵M和与明文向量
Figure BDA0003723782590000128
对应的密文向量
Figure BDA0003723782590000129
为例,可以将从实矩阵M中提取出的n个实向量
Figure BDA00037237825900001210
中相邻的两个实向量划分为一个实向量分组,即一个实向量分组可以包括:第一实向量
Figure BDA00037237825900001211
以及第二实向量
Figure BDA00037237825900001212
在这种情况下,对于任一实向量分组而言,其第一实向量
Figure BDA0003723782590000131
中属于实矩阵M中的第j行的分量为wj,i+j(对i+j进行模n运算),其第二实向量
Figure BDA0003723782590000132
中属于实矩阵M中的第j行的分量为wj,i+j+1(对i+j+1进行模n运算);分量wj,i+j和分量wj,i+j+1在实矩阵M中属于相邻的两列。因此,可以认为分量wj,i+j和分量wj,i+j+1在实矩阵M中间隔的列数为1,即上述间隔值即为1。
在上述情况下,在按照上述间隔值对密文向量
Figure BDA0003723782590000133
进行同态旋转变换时,具体可以将密文向量
Figure BDA0003723782590000134
中的分量循环左移1位。也即,对于与密文向量
Figure BDA0003723782590000135
对应的密文复向量而言,该密文复向量的实部即为密文向量
Figure BDA0003723782590000136
该密文复向量的虚部为密文向量
Figure BDA0003723782590000137
中的分量循环左移1位后的向量。
假设a、b、c、d为4个实数,则(a-ic)×(b+id)=(a×b+c×d)+i(a×d-c×b)。因此,a×b+c×d=Real[(a-ic)×(b+id)]。其中,Real表示取复数的实部。也即,通过一次复数乘法计算,可以得到两次实数乘法计算的计算结果。
由于
Figure BDA0003723782590000138
根据同态加密算法的密文同态运算性质,
Figure BDA0003723782590000139
Figure BDA00037237825900001310
如果将i替换为2i,则
Figure BDA00037237825900001311
Figure BDA00037237825900001312
需要说明的是,对于同态旋转变换而言,其满足以下公式:假设
Figure BDA00037237825900001313
Figure BDA00037237825900001314
表示两个向量,则
Figure BDA00037237825900001315
根据公式1,将
Figure BDA00037237825900001316
视为公式1中的
Figure BDA00037237825900001317
将2i视为公式1中的j,将1视为公式1中的i,则
Figure BDA00037237825900001318
其中,
Figure BDA00037237825900001319
也可以写为
Figure BDA00037237825900001320
根据公式2,将
Figure BDA00037237825900001321
视为公式1中的
Figure BDA00037237825900001322
Figure BDA00037237825900001323
视为公式1中的
Figure BDA00037237825900001324
Figure BDA00037237825900001325
Figure BDA00037237825900001326
Figure BDA00037237825900001327
Figure BDA00037237825900001328
即为与包括第一实向量
Figure BDA00037237825900001329
和第二实向量
Figure BDA00037237825900001330
的实向量分组对应的复向量,
Figure BDA00037237825900001331
即为与密文向量
Figure BDA00037237825900001332
对应的密文复向量,其中
Figure BDA00037237825900001333
表示将密文向量
Figure BDA00037237825900001334
中的分量循环左移1位的向量。相应的,
Figure BDA00037237825900001335
也即,对于复向量
Figure BDA00037237825900001336
而言,与其对应的同态旋转变换参数为2i。
假设n=4,则
Figure BDA00037237825900001337
Figure BDA00037237825900001338
Figure BDA0003723782590000141
Figure BDA0003723782590000142
表示与包括第一实向量
Figure BDA0003723782590000143
和第二实向量
Figure BDA0003723782590000144
的实向量分组对应的复向量,
Figure BDA0003723782590000145
表示与包括第一实向量
Figure BDA0003723782590000146
和第二实向量
Figure BDA0003723782590000147
的实向量分组对应的复向量,
Figure BDA0003723782590000148
表示与密文向量
Figure BDA0003723782590000149
对应的密文复向量
Figure BDA00037237825900001410
则与
Figure BDA00037237825900001411
对应的同态旋转变换参数为0,与
Figure BDA00037237825900001412
对应的同态旋转变换参数为2,
Figure BDA00037237825900001413
由此可见,通过将包括两个从上述线性变换矩阵中提取出的实向量的实向量分组编码为复向量,并将上述密文数据编码为密文复向量,使得在计算
Figure BDA00037237825900001414
时,执行的是复数乘法计算,而不是实数乘法计算。在这种情况下,只需要执行
Figure BDA00037237825900001415
次同态乘法计算和
Figure BDA00037237825900001416
次同态旋转变换计算,即可得到
Figure BDA00037237825900001417
也即,对同态加密后的密文数据进行线性变换计算的计算复杂度为
Figure BDA00037237825900001418
在示出的一种实施方式中,可以基于上述同态加密算法,对基于上述线性变换矩阵对上述密文数据进行线性变换计算的计算结果进行同态解密。由于同态加密算法的密文同态运算性质,此时即可得到基于该线性变换矩阵对上述明文数据进行线性变换计算的计算结果。
在上述实施例提供的技术方案中,对于对明文数据进行同态加密得到的密文数据,以及用于对该明文数据进行线性变换计算的线性变换矩阵而言,可以先从该线性变换矩阵中提取出多个实向量,这多个实向量分别与该明文数据的同态乘积的总和,与基于该线性变换矩阵对该明文数据进行线性变换计算的计算结果相同,再对这多个实向量划分出的多个实向量分组进行复向量编码,得到与这多个实向量分组对应的复向量集合,并对该密文数据进行复向量编码,得到与该密文数据对应的密文复向量,从而可以分别计算该复向量集合中的复向量与该密文复向量的同态乘积,并计算同态乘积的实部的总和,该总和即为基于该线性变换矩阵对该密文数据进行线性变换计算的计算结果。
采用上述方式,在对同态加密后的密文数据进行线性变换计算时,执行的是复数乘法计算,而不是实数乘法计算,由于通过一次复数乘法计算,可以得到两次实数乘法计算的计算结果,使得对同态加密后的密文数据进行线性变换计算的计算复杂度显著降低。
请参考图3,图3是本说明书一示例性实施例示出的另一种数据处理方法的流程图。
上述数据处理方法可以包括以下步骤:
步骤302,获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
步骤304,从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
步骤306,将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
步骤308,对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
步骤310,针对所述复向量集合中的任一目标复向量,确定与所述目标复向量对应的同态旋转变换参数,并基于所述同态旋转变换参数,对所述密文复向量进行同态旋转变换;
步骤312,基于大步小步算法,将针对所述密文复向量的同态旋转变换,转化为针对所述目标复向量的同态旋转变换,并计算同态旋转变换后的所述目标复向量与所述密文复向量的同态乘积。
步骤314,计算同态旋转变换后的所述复向量集合中的复向量与所述密文复向量的同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
在本实施例中,步骤302至308的具体实现,可以参考前述步骤202至208,本说明书在此不再赘述。
在根据
Figure BDA0003723782590000151
计算
Figure BDA0003723782590000152
时,需要根据
Figure BDA0003723782590000153
对密文复向量
Figure BDA0003723782590000154
进行同态旋转变换。
在实际应用中,与针对密文数据的同态旋转变换相比,针对明文数据的同态旋转变换较为容易,其计算复杂度可以忽略。
在示出的一种实施方式中,由于上述复向量集合中的复向量对应的是从上述线性变换矩阵中提取出的实向量,而该线性变换矩阵实质上是明文数据,该复向量实质上也是明文数据。在这种情况下,为了进一步降低计算复杂度,可以将针对上述密文复向量的同态旋转变换,转化为针对该复向量集合中的复向量的同态旋转变换。
具体地,可以基于大步小步(Baby Step Giant Step,BSGS)算法,将针对上述密文复向量的同态旋转变换,转化为针对上述复向量集合中的复向量的同态旋转变换。
根据大步小步算法的相关内容,如果令
Figure BDA0003723782590000155
则对于
Figure BDA0003723782590000156
而言,可以将其表示为:i=n1j+k,0≤k<n1,0≤j<n2
举例来说,假设
Figure BDA0003723782590000157
则0=2×0+0,1=2×0+1,2=2×1+0,3=2×1+1。由此可见,0≤k<2,0≤j<2。
因此,
Figure BDA0003723782590000161
需要说明的是,对于同态旋转变换而言,其还满足以下公式:假设
Figure BDA0003723782590000162
Figure BDA0003723782590000163
表示两个向量,则
Figure BDA0003723782590000164
其中,
Figure BDA0003723782590000165
表示将向量
Figure BDA0003723782590000166
中的分量循环右移i位的向量。
根据前述公式1,将
Figure BDA0003723782590000167
视为公式1中的
Figure BDA0003723782590000168
将2n1j视为公式1中的j,将2k视为公式1中的i,则
Figure BDA0003723782590000169
根据公式3,将
Figure BDA00037237825900001610
视为公式3中的
Figure BDA00037237825900001611
Figure BDA00037237825900001612
视为公式3中的
Figure BDA00037237825900001613
将2n1j视为公式3中的i,则
Figure BDA00037237825900001614
前述公式2可以扩展为
Figure BDA00037237825900001615
因此,将
Figure BDA00037237825900001616
视为
Figure BDA00037237825900001617
Figure BDA00037237825900001618
Figure BDA00037237825900001619
也即,
Figure BDA00037237825900001620
由于
Figure BDA00037237825900001621
是针对明文复向量
Figure BDA00037237825900001622
的同态旋转变换,该同态旋转变换的计算复杂度可以忽略。因此,在根据
Figure BDA00037237825900001623
Figure BDA00037237825900001624
计算
Figure BDA00037237825900001625
时,只需要执行
Figure BDA00037237825900001626
次同态乘法计算和n1+n2次同态旋转变换。
在实际应用中,可以令
Figure BDA00037237825900001627
在这种情况下,在计算
Figure BDA00037237825900001628
时,只需要执行
Figure BDA00037237825900001629
次同态乘法计算和
Figure BDA00037237825900001630
次同态旋转变换。也即,对同态加密后的密文数据进行线性变换计算的计算复杂度为
Figure BDA00037237825900001631
在上述实施例提供的技术方案中,对于对明文数据进行同态加密得到的密文数据,以及用于对该明文数据进行线性变换计算的线性变换矩阵而言,可以先从该线性变换矩阵中提取出多个实向量,这多个实向量分别与该明文数据的同态乘积的总和,与基于该线性变换矩阵对该明文数据进行线性变换计算的计算结果相同,再对这多个实向量划分出的多个实向量分组进行复向量编码,得到与这多个实向量分组对应的复向量集合,并对该密文数据进行复向量编码,得到与该密文数据对应的密文复向量,从而可以在将针对该密文复向量的同态旋转变换,转化为针对该复向量集合中的复向量的同态旋转变换后,计算同态旋转变换后的该复向量集合中的复向量与该密文复向量的同态乘积,并计算同态乘积的实部的总和,该总和即为基于该线性变换矩阵对该密文数据进行线性变换计算的计算结果。
采用上述方式,在对同态加密后的密文数据进行线性变换计算时,执行的是复数乘法计算,而不是实数乘法计算,由于通过一次复数乘法计算,可以得到两次实数乘法计算的计算结果,使得对同态加密后的密文数据进行线性变换计算的计算复杂度显著降低。
除此之外,在计算复向量集合中的复向量与密文复向量的同态乘积,并计算同态乘积的实部的总和时,可以将计算过程中针对密文复向量的同态旋转变换,转化为针对复向量集合中的复向量的同态旋转变换,由于针对明文数据的同态旋转变换的计算复杂度可以忽略,使得对同态加密后的密文数据进行线性变换计算的计算复杂度进一步降低。
请参考图4,图4是本说明书一示例性实施例示出的一种设备的硬件结构的示意图。
如图4所示,在硬件层面,上述设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或逻辑器件。
请参考图5,图5是本说明书一示例性实施例示出的一种数据处理装置的框图。
上述数据处理装置可以应用于如图4所示的设备,以实现本说明书的技术方案。该数据处理装置可以包括:
获取模块502,获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
提取模块504,从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
分组模块506,将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
编码模块508,对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
计算模块510,分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,并计算所述同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
可选的,所述装置还包括:
解密模块,基于所述同态加密算法,对基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果进行同态解密,得到基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果。
可选的,所述提取模块:
对所述线性变换矩阵进行按照对角线的编码,以从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件还包括所述实向量中的任意两个分量,属于所述线性变换矩阵中的不同行和不同列。
可选的,所述第一实向量中的第一分量,与所述第二实向量中的第二分量,在所述线性变换矩阵中间隔的列数为预设的间隔值;其中,所述第一分量和所述第二分量属于所述线性变换矩阵中的同一行;
所述编码模块:
按照所述间隔值对所述密文数据进行同态旋转变换;
将所述密文数据确定为所述密文复向量的实部,并将同态旋转变换后的所述密文数据确定为所述密文复向量的虚部。
可选的,所述计算模块:
针对所述复向量集合中的任一目标复向量,确定与所述目标复向量对应的同态旋转变换参数,并基于所述同态旋转变换参数,对所述密文复向量进行同态旋转变换;
计算所述目标复向量与同态旋转变换后的所述密文复向量的同态乘积。
可选的,所述计算模块:
基于大步小步算法,将针对所述密文复向量的同态旋转变换,转化为针对所述目标复向量的同态旋转变换,并计算同态旋转变换后的所述目标复向量与所述密文复向量的同态乘积。
可选的,所述同态加密算法为CKKS全同态加密算法;所述同态乘积为向量中对应分量的乘积;所述同态旋转变换为将向量中的分量循环左移。
对于装置实施例而言,其基本对应于方法实施例,因此相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书的技术方案的目的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (16)

1.一种数据处理方法,所述方法包括:
获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,并计算所述同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
2.根据权利要求1所述的方法,所述方法还包括:
基于所述同态加密算法,对基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果进行同态解密,得到基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果。
3.根据权利要求1所述的方法,所述从所述线性变换矩阵中提取出满足约束条件的多个实向量,包括:
对所述线性变换矩阵进行按照对角线的编码,以从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件还包括所述实向量中的任意两个分量,属于所述线性变换矩阵中的不同行和不同列。
4.根据权利要求1所述的方法,所述第一实向量中的第一分量,与所述第二实向量中的第二分量,在所述线性变换矩阵中间隔的列数为预设的间隔值;其中,所述第一分量和所述第二分量属于所述线性变换矩阵中的同一行;
所述对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量,包括:
按照所述间隔值对所述密文数据进行同态旋转变换;
将所述密文数据确定为所述密文复向量的实部,并将同态旋转变换后的所述密文数据确定为所述密文复向量的虚部。
5.根据权利要求1所述的方法,所述分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,包括:
针对所述复向量集合中的任一目标复向量,确定与所述目标复向量对应的同态旋转变换参数,并基于所述同态旋转变换参数,对所述密文复向量进行同态旋转变换;
计算所述目标复向量与同态旋转变换后的所述密文复向量的同态乘积。
6.根据权利要求5所述的方法,所述计算所述目标复向量与同态旋转变换后的所述密文复向量的同态乘积,包括:
基于大步小步算法,将针对所述密文复向量的同态旋转变换,转化为针对所述目标复向量的同态旋转变换,并计算同态旋转变换后的所述目标复向量与所述密文复向量的同态乘积。
7.根据权利要求4-6任一项所述的方法,所述同态加密算法为CKKS全同态加密算法;所述同态乘积为向量中对应分量的乘积;所述同态旋转变换为将向量中的分量循环左移。
8.一种数据处理装置,所述装置包括:
获取模块,获取基于预设的同态加密算法对明文数据进行同态加密得到的密文数据,以及用于对所述明文数据进行线性变换计算的线性变换矩阵;其中,所述明文数据为实数数据,所述线性变换矩阵为实矩阵;
提取模块,从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件包括所述多个实向量分别与所述明文数据的同态乘积的总和,与基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果相同;
分组模块,将所述多个实向量划分为用于对所述多个实向量进行复向量编码的多个实向量分组;其中,所述实向量分组包括与所述复向量的实部对应的第一实向量,以及与所述复向量的虚部对应的第二实向量;
编码模块,对所述多个实向量分组分别进行复向量编码,得到与所述多个实向量分组对应的复向量集合,并对所述密文数据进行复向量编码,得到与所述密文数据对应的密文复向量;
计算模块,分别计算所述复向量集合中的复向量与所述密文复向量的同态乘积,并计算所述同态乘积的实部的总和,得到基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果。
9.根据权利要求8所述的装置,所述装置还包括:
解密模块,基于所述同态加密算法,对基于所述线性变换矩阵对所述密文数据进行线性变换计算的计算结果进行同态解密,得到基于所述线性变换矩阵对所述明文数据进行线性变换计算的计算结果。
10.根据权利要求8所述的装置,所述提取模块:
对所述线性变换矩阵进行按照对角线的编码,以从所述线性变换矩阵中提取出满足约束条件的多个实向量;其中,所述约束条件还包括所述实向量中的任意两个分量,属于所述线性变换矩阵中的不同行和不同列。
11.根据权利要求8所述的装置,所述第一实向量中的第一分量,与所述第二实向量中的第二分量,在所述线性变换矩阵中间隔的列数为预设的间隔值;其中,所述第一分量和所述第二分量属于所述线性变换矩阵中的同一行;
所述编码模块:
按照所述间隔值对所述密文数据进行同态旋转变换;
将所述密文数据确定为所述密文复向量的实部,并将同态旋转变换后的所述密文数据确定为所述密文复向量的虚部。
12.根据权利要求8所述的装置,所述计算模块:
针对所述复向量集合中的任一目标复向量,确定与所述目标复向量对应的同态旋转变换参数,并基于所述同态旋转变换参数,对所述密文复向量进行同态旋转变换;
计算所述目标复向量与同态旋转变换后的所述密文复向量的同态乘积。
13.根据权利要求12所述的装置,所述计算模块:
基于大步小步算法,将针对所述密文复向量的同态旋转变换,转化为针对所述目标复向量的同态旋转变换,并计算同态旋转变换后的所述目标复向量与所述密文复向量的同态乘积。
14.根据权利要求11-13任一项所述的装置,所述同态加密算法为CKKS全同态加密算法;所述同态乘积为向量中对应分量的乘积;所述同态旋转变换为将向量中的分量循环左移。
15.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-7中任一项所述的方法。
CN202210770493.1A 2022-06-30 2022-06-30 数据处理方法及装置 Pending CN115174035A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210770493.1A CN115174035A (zh) 2022-06-30 2022-06-30 数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210770493.1A CN115174035A (zh) 2022-06-30 2022-06-30 数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN115174035A true CN115174035A (zh) 2022-10-11

Family

ID=83489859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210770493.1A Pending CN115174035A (zh) 2022-06-30 2022-06-30 数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN115174035A (zh)

Similar Documents

Publication Publication Date Title
US11159305B2 (en) Homomorphic data decryption method and apparatus for implementing privacy protection
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
Ferreira et al. Practical privacy-preserving content-based retrieval in cloud image repositories
US20180198601A1 (en) String Matching in Encrypted Data
Wu et al. Secure and efficient outsourced k-means clustering using fully homomorphic encryption with ciphertext packing technique
Hanis et al. Double image compression and encryption scheme using logistic mapped convolution and cellular automata
CN102314580A (zh) 一种基于向量和矩阵运算的支持计算的加密方法
CN108923907B (zh) 一种基于模容错学习问题的同态内积方法
CN114696990B (zh) 基于全同态加密的多方计算方法、系统及相关设备
CN115276947B (zh) 隐私数据处理方法、装置、系统及存储介质
CN115102688B (zh) 数据处理方法、多项式计算方法及电子设备
Abdul Hussien et al. [Retracted] A Secure Environment Using a New Lightweight AES Encryption Algorithm for E‐Commerce Websites
CN111241568B (zh) 加密方法、解密方法、装置、计算机设备和存储介质
Murugan et al. A hybrid image encryption algorithm using chaos and Conway's game‐of‐life cellular automata
CN116346310A (zh) 基于同态加密的匿踪查询方法、装置和计算机设备
CN116484395A (zh) 一种基于隐私数据的安全计算方法及相关设备
Syam Kumar et al. RSA-based dynamic public audit service for integrity verification of data storage in cloud computing using Sobol sequence
Cheng et al. A High‐Security Privacy Image Encryption Algorithm Based on Chaos and Double Encryption Strategy
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
CN115834018A (zh) 一种保护隐私的多方数据处理方法、系统和设备
CN115174035A (zh) 数据处理方法及装置
Neelakandan et al. A multi-layer encryption with AES and Twofish encryption algorithm for smart assistant security
CN115134070A (zh) 一种分组密码算法实现的方法、装置和设备
CN111460488B (zh) 基于预存储和n维Arnold变换的多图像快速加密方法
CN115085897A (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