CN116150795B - 基于同态加密的数据处理方法、***及相关设备 - Google Patents

基于同态加密的数据处理方法、***及相关设备 Download PDF

Info

Publication number
CN116150795B
CN116150795B CN202310406264.6A CN202310406264A CN116150795B CN 116150795 B CN116150795 B CN 116150795B CN 202310406264 A CN202310406264 A CN 202310406264A CN 116150795 B CN116150795 B CN 116150795B
Authority
CN
China
Prior art keywords
data
encryption
matrix
sorting
holding end
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
Application number
CN202310406264.6A
Other languages
English (en)
Other versions
CN116150795A (zh
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.)
International Digital Economy Academy IDEA
Original Assignee
International Digital Economy Academy IDEA
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 International Digital Economy Academy IDEA filed Critical International Digital Economy Academy IDEA
Priority to CN202310406264.6A priority Critical patent/CN116150795B/zh
Publication of CN116150795A publication Critical patent/CN116150795A/zh
Application granted granted Critical
Publication of CN116150795B publication Critical patent/CN116150795B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于同态加密的数据处理方法、***及相关设备,方法包括:通过数据持有端对待排序数据进行同态加密获得加密数据;通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果;通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。本发明有利于提高数据处理过程中数据的安全性。

Description

基于同态加密的数据处理方法、***及相关设备
技术领域
本发明涉及数据加密处理技术领域,尤其涉及的是一种基于同态加密的数据处理方法、***及相关设备。
背景技术
随着科学技术的发展,对于数据的处理越来越受到重视,同时,对于数据处理过程中的安全性要求也越来越高。为了提高数据处理效率或者降低对数据持有端的算力要求,可以将数据持有端的数据上传到云端服务器进行对应的数据处理。
现有技术中,为了提高数据处理过程中的安全性,对涉及用户隐私的数据进行保护,通常在数据持有端对数据进行加密,然后将加密后的数据传输给云端服务器,云端服务器对加密后的数据进行解密获得明文数据,然后对明文数据进行对应的处理(例如排序)后将处理结果加密后返回给数据持有端。现有技术的问题在于,仅对数据传输的过程进行了加密保护,在云端服务器中进行数据排序等处理时仍然使用的是明文数据,即云端服务器可以获取真实的用户数据,不利于提高数据的安全性,不利于对数据进行隐私保护。
因此,现有技术还有待改进和发展。
发明内容
本发明的主要目的在于提供一种基于同态加密的数据处理方法、***及相关设备,旨在解决现有技术中进行数据处理时在数据持有端对数据进行加密,然后将加密后的数据传输给云端服务器,云端服务器对加密后的数据进行解密获得明文数据,然后对明文数据进行对应的处理的方案不利于提高数据的安全性,不利于对数据进行隐私保护的问题。
为了实现上述目的,本发明第一方面提供一种基于同态加密的数据处理方法,其中,上述基于同态加密的数据处理方法包括:
通过数据持有端对待排序数据进行同态加密获得加密数据;
通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果;
通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。
可选的,上述通过数据持有端对待排序数据进行同态加密获得加密数据,包括:
通过上述数据持有端采集获取待排序数据,其中,上述待排序数据包括多个待排序数值;
根据上述待排序数值的数据位宽获取上述待排序数据对应的分解基和分层处理层数,其中,上述分解基是对各上述待排序数值进行分解时的数据进制;
根据上述分解基和上述分层处理层数分别对各上述待排序数值进行分解,获取各上述待排序数值对应的分解向量;
根据上述分解向量,通过同态加密获得上述加密数据。
可选的,上述加密数据包括行重复加密矩阵和列重复加密矩阵,上述根据上述分解向量,通过同态加密获得上述加密数据,包括:
根据上述分解向量构建上述待排序数据对应的行重复编码矩阵和列重复编码矩阵,其中,上述行重复编码矩阵由目标数目个相同的行构成,上述行重复编码矩阵的一行中的元素分别为各上述分解向量,上述目标数目为上述分解向量的个数,上述列重复编码矩阵由目标数目个相同的列构成,上述列重复编码矩阵的一列中的元素分别为各上述分解向量;
通过上述数据持有端对上述行重复编码矩阵进行同态加密获得上述行重复加密矩阵,对上述列重复加密矩阵进行同态加密获得上述列重复加密矩阵。
可选的,上述通过上述数据持有端对上述行重复编码矩阵进行同态加密获得上述行重复加密矩阵,对上述列重复加密矩阵进行同态加密获得上述列重复加密矩阵,包括:
通过上述数据持有端生成公钥、私钥和评估密钥,其中,上述私钥用于供上述数据持有端进行数据解密,上述评估密钥用于供上述服务器对上述加密数据进行数据计算;
通过上述数据持有端根据上述公钥对上述行重复编码矩阵进行同态加密获得上述行重复加密矩阵;
通过上述数据持有端根据上述公钥对上述列重复加密矩阵进行同态加密获得上述列重复加密矩阵。
可选的,上述通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果,包括:
通过上述数据持有端向上述服务器发送上述评估密钥、上述行重复加密矩阵和上述列重复加密矩阵,以触发上述服务器根据上述评估密钥、上述行重复加密矩阵和上述列重复加密矩阵进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果。
可选的,上述服务器根据如下步骤进行排序处理:
根据上述评估密钥计算上述行重复加密矩阵和上述列重复加密矩阵对应的差值矩阵;
根据上述差值矩阵进行内插多项式获得比较矩阵;
根据上述比较矩阵进行多个分解层上的旋转倍增运算获得上述待排序数据对应的排序矩阵,并将上述排序矩阵作为上述排序加密结果。
可选的,上述通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果,包括:
通过上述数据持有端根据上述私钥对上述排序加密结果进行解密并获取各上述待排序数值对应的汉明重量;
通过上述数据持有端根据各上述汉明重量确定每个排序位置对应的待排序数值,获得上述目标排序结果。
本发明第二方面提供一种基于同态加密的数据处理***,其中,上述基于同态加密的数据处理***包括:
数据加密模块,用于通过数据持有端对待排序数据进行同态加密获得加密数据;
加密数据处理模块,用于通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果;
数据排序模块,用于通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。
本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的基于同态加密的数据处理程序,上述基于同态加密的数据处理程序被上述处理器执行时实现上述任意一种基于同态加密的数据处理方法的步骤。
本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有基于同态加密的数据处理程序,上述基于同态加密的数据处理程序被处理器执行时实现上述任意一种基于同态加密的数据处理方法的步骤。
由上可见,本发明方案中,通过数据持有端对待排序数据进行同态加密获得加密数据;通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果;通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。
与现有技术中相比,本发明方案中,通过数据持有端对待排序数据进行同态加密获得加密数据并发送到服务器之后,在服务器中并不会进行解密,而是直接对加密数据进行排序处理获得排序加密结果。因为数据持有端对待排序数据进行的是同态加密,所以服务器对加密数据进行的排序同样可以映射到明文数据(即待排序数据)上,实现对应的排序。同时,在服务器中进行数据处理时,使用的都是加密后的数据,即服务器并不会获取对应的明文数据,即使服务器被入侵也不会造成明文数据的泄露,有利于提高数据处理过程中数据的安全性,且有利于对数据进行隐私保护。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种基于同态加密的数据处理方法的流程示意图;
图2是本发明实施例提供的一种排序矩阵非优化与优化的数据结构对比示意图;
图3是本发明实施例提供的一种对两个数进行比较排序的计算过程示意图;
图4是本发明实施例提供的一种不进行动态分层时数值比较的流程示意图;
图5是本发明实施例提供的一种进行动态分层时数值比较的流程示意图;
图6是本发明实施例提供的一种基于同态加密的数据处理***的结构示意图;
图7是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
随着科学技术的发展,对于数据的处理越来越受到重视,同时,对于数据处理过程中的安全性要求也越来越高。为了提高数据处理效率或者降低对数据持有端的算力要求,可以将数据持有端的数据上传到云端服务器进行对应的数据处理。
现有技术中,为了提高数据处理过程中的安全性,对涉及用户隐私的数据进行保护,通常在数据持有端对数据进行加密,然后将加密后的数据传输给云端服务器,云端服务器对加密后的数据进行解密获得明文数据,然后对明文数据进行对应的处理(例如排序)后将处理结果加密后返回给数据持有端。现有技术的问题在于,仅对数据传输的过程进行了加密保护,在云端服务器中进行数据排序等处理时仍然使用的是明文数据,即云端服务器可以获取真实的用户数据,不利于提高数据的安全性,不利于对数据进行隐私保护。
为了解决上述多个问题中的至少一个问题,本发明方案中提供一种基于同态加密的数据处理方法,涉及信息安全对应的全同态密码学领域和数据处理领域,具体的,通过数据持有端对待排序数据进行同态加密获得加密数据;通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果;通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。
与现有技术中相比,本发明方案中,通过数据持有端对待排序数据进行同态加密获得加密数据并发送到服务器之后,在服务器中并不会进行解密,而是直接对加密数据进行排序处理获得排序加密结果。因为数据持有端对待排序数据进行的是同态加密,所以服务器对加密数据进行的排序同样可以映射到明文数据(即待排序数据)上,实现对应的排序。同时,在服务器中进行数据处理时,使用的都是加密后的数据,即服务器并不会获取对应的明文数据,即使服务器被入侵也不会造成明文数据的泄露,有利于提高数据处理过程中数据的安全性,且有利于对数据进行隐私保护。
本实施例中,使用全同态密码算法进行同态加密。全同态密码算法是一种特殊的密码算法,除了普通密码算法能够完成的数据加解密功能外,还可以根据同态性质,将同态密码算法针对明文的运算映射到同态密码算法的密文运算上。因此,该算法能够支持“密文计算”功能,即可对加密后的数据进行操作而无需首先对密文进行解密。将计算后的密文进行解密,所得结果等价于对明文进行运算后的计算结果。全同态密码在算法层面上满足了隐私计算“数据可用不可见”需求的技术路径,有利于保证隐私数据的安全流通。
相对于隐私计算其他技术分支,例如可信执行环境(TEE)、多方安全计算(MPC)等,全同态技术存在处理性能较低的缺陷。全同态算法在密文执行过程的效率约为明文计算的万分之一。因此,本实施例中还考虑到如何提高算法执行效率,例如去除数据冗余、减少针对密文数据的同态运算次数等。具体的,在一种应用场景中,通过分层、排序矩阵优化等技术,以更少的同态运算次数处理兼容排序过程中的更大规模数据容量。
传统的密码算法具有对数据的加解密功能,即只保证对加密数据进行解密时,得到结果为原始明文数据。而全同态密码算法,除了具有上述加密解密功能外,还具有同态运算功能,即在对明文消息M进行加密得到密文C后,可以对密文消息进行有意义的运算,对原始明文M的某些操作
Figure SMS_10
可以同态的映射到对密文的操作/>
Figure SMS_2
上。具体的,传统的密码算法满足如下性质:/>
Figure SMS_7
,/>
Figure SMS_5
,/>
Figure SMS_8
。全同态加密算法则满足如下性质:/>,/>
Figure SMS_14
Figure SMS_13
,以及,/>
Figure SMS_15
,/>
Figure SMS_1
Figure SMS_16
。其中,M为明文消息,C为密文消息;(pk,sk)为加密算法密钥对,一般pk用于加密,sk用于解密;Enc表示加密算法,Dec表示解密算法;f表示针对明文消息M的任意函数,/>
Figure SMS_3
表示由f映射到密文的同态操作。/>
Figure SMS_6
代表根据函数f对明文信息进行处理后获得的信息,/>
Figure SMS_9
代表对/>
Figure SMS_11
进行加密后获得的信息。需要说明的是,本实施例中,函数f代表排序函数,/>
Figure SMS_4
则是由函数f映射到密文的同态排序操作。
具体的,本实施例中面向双方安全排序的场景,提供一种基于同态加密的数据处理方法。场景中包括数据持有端和服务器,其中,数据持有端持有待排序数据,服务器执行安全排序过程。在一种应用场景中,考虑如下危险模型:首先,服务器是半诚实的,遵循本实施例中方案的所有规范,但是允许敌手访问被敌手控制后服务器维护的所有数据;此外,攻击者可以合法地登录到服务器,进行非法数据复制,并将其移交给任何恶意的用户。因此,需要避免服务器在排序过程中学习到任何待排序数据内容。
如图1所示,本发明实施例提供一种基于同态加密的数据处理方法,具体的,上述方法包括如下步骤:
步骤S100,通过数据持有端对待排序数据进行同态加密获得加密数据。
其中,上述数据持有端是用于存储待排序数据的终端,上述待排序数据是需要进行排序且需要进行隐私保护的数据。例如,上述数据持有端可以是用户的手机、智能手表、电脑等智能终端,上述待排序数据可以是用户的收入数据、成绩分数、体重数据、身高、年龄等数据,还可以是其它的具体数据,在此不作具体限定。需要说明的是,在本实施例中,为了降低数据持有端的计算量,需要在***露用户数据的前提下将数据排序的任务外包给服务器,利用服务器的算力执行排序任务,从而降低对于数据持有端的算力要求,且提高***处理效率。在一种应用场景中,上述同态加密的过程由预设的全同态加密算法实现,可以采用现有的具体算法,在此不作具体限定。
具体的,上述通过数据持有端对待排序数据进行同态加密获得加密数据,包括:通过上述数据持有端采集获取待排序数据,其中,上述待排序数据包括多个待排序数值;根据上述待排序数值的数据位宽获取上述待排序数据对应的分解基和分层处理层数,其中,上述分解基是对各上述待排序数值进行分解时的数据进制;根据上述分解基和上述分层处理层数分别对各上述待排序数值进行分解,获取各上述待排序数值对应的分解向量;根据上述分解向量,通过同态加密获得上述加密数据。
本实施例中,上述数据持有端采集获取待排序数据
Figure SMS_17
,其中,/>
Figure SMS_18
到/>
Figure SMS_19
代表/>
Figure SMS_20
个需要进行排序的待排序数值。本实施例中各个待排序数值的数据进制相同(例如都为十进制),在实际应用过程中,若待排序数据值的进制不同,则先转换为相同的数据进制,例如,都先转换为预设的十进制。
上述数据位宽是上述待排序数值的所占比特位的位数,具体的,是待排序数据在预设进制(例如十进制)下的数据位宽。本实施例中,根据所有待排序值中最大的数据位宽计算获取分解基和分层处理层数。
在一种应用场景中,可以根据预设的位宽对应表格动态选取待排序数值的数据位宽对应的分解基和分层处理层数。在另一种应用场景中,还可以根据数据位宽动态计算获取对应的分解基和分层处理层数。
本实施例中,记数据位宽为
Figure SMS_23
,分解基为/>
Figure SMS_26
,分层处理层数为/>
Figure SMS_30
,分层后每层数据为的位宽/>
Figure SMS_22
,/>
Figure SMS_25
,排序数组大小为/>
Figure SMS_28
,密文多项式维度为/>
Figure SMS_31
,则打包排序矩阵需要的密文个数为/>
Figure SMS_21
,乘法深度为/>
Figure SMS_33
,约束条件为
Figure SMS_34
,两边同时对/>
Figure SMS_35
取对数有/>
Figure SMS_24
,则满足要求且令/>
Figure SMS_27
最小的情况为,/>
Figure SMS_29
,动态分解算法选择/>
Figure SMS_32
的全素数分解进行数据分解,达到最小乘法深度。在一种应用场景中,上述分解基和分层处理层数取能够使得乘法深度最小的值。例如,当数据位宽为32位时可以根据实际需求选择二进制分解基、三进制分解基等,具体根据实际需求确定。确定分解基之后根据分解基和对应的分层处理层数进行分解,形成分解向量。需要说明的是,在一种应用场景中,根据分解基可以确定待排序数值进行进制转换后的新数据宽度,将新数据宽度除以分层处理层数,就可以获得每一个分解向量的数据位宽,即每一层的数据位宽。
本实施例中,在数据持有端进行预处理,将大位宽数据按照确定的分解基进行分解,例如,当分解基取2时,分解后获得原数的二进制表达形式。分层处理层数是指在排序过程中进行分层比较处理过程中的分层数。在进行排序比较时,首先比较分解向量中的每个系数,再将比较结果组合为最终比较结果。组合过程中,可以将大位宽数据视为多个小位宽子数据的拼接,子数据又可视为更小的子数据的拼接,将每次迭代视为一个比较层,总的比较层数即为分层处理层数。
需要说明的是,上述分层处理层数和分解基的确定和对应的分解过程,是一个动态过程,能够保证比较过程同态乘法深度最小,从而获得更好的处理性能。即上述分层处理层数和分解基是根据数据位宽、以比较过程同态乘法深度最小为目标计算确定的。
本实施例中,使用动态分解方法根据数据位宽对待排序数据中的各个待排序数值进行最优层数分解:
Figure SMS_36
,其中,/>
Figure SMS_37
到/>
Figure SMS_38
代表/>
Figure SMS_39
个需要进行排序的待排序数值,decompose代表分解过程,/>
Figure SMS_40
到/>
Figure SMS_41
代表分解后获得的/>个分解向量。在一种应用场景中,分解过程按照数据位宽的质因子进行分解。
本实施例中,上述加密数据包括行重复加密矩阵和列重复加密矩阵,上述根据上述分解向量,通过同态加密获得上述加密数据,包括:根据上述分解向量构建上述待排序数据对应的行重复编码矩阵和列重复编码矩阵,其中,上述行重复编码矩阵由目标数目个相同的行构成,上述行重复编码矩阵的一行中的元素分别为各上述分解向量,上述目标数目为上述分解向量的个数,上述列重复编码矩阵由目标数目个相同的列构成,上述列重复编码矩阵的一列中的元素分别为各上述分解向量;通过上述数据持有端对上述行重复编码矩阵进行同态加密获得上述行重复加密矩阵,对上述列重复加密矩阵进行同态加密获得上述列重复加密矩阵。
具体的,根据上述分解向量构建行重复编码矩阵
Figure SMS_43
和列重复编码矩阵/>
Figure SMS_44
,其中,
Figure SMS_45
,/>
Figure SMS_46
进一步的,上述通过上述数据持有端对上述行重复编码矩阵进行同态加密获得上述行重复加密矩阵,对上述列重复加密矩阵进行同态加密获得上述列重复加密矩阵,包括:通过上述数据持有端生成公钥、私钥和评估密钥,其中,上述私钥用于供上述数据持有端进行数据解密,上述评估密钥用于供上述服务器对上述加密数据进行数据计算;通过上述数据持有端根据上述公钥对上述行重复编码矩阵进行同态加密获得上述行重复加密矩阵;通过上述数据持有端根据上述公钥对上述列重复加密矩阵进行同态加密获得上述列重复加密矩阵。
其中,上述公钥、私钥和评估密钥之间互相对应,在数据处理过程中,数据持有端只会把评估密钥上传到服务器,用于辅助服务器执行
Figure SMS_47
函数,而不会上传公钥和私钥。本实施例中,数据持有端使用全同态加密方法将行重复编码矩阵/>
Figure SMS_48
和列重复编码矩阵/>
Figure SMS_49
进行分组打包加密,获得行重复加密矩阵/>
Figure SMS_50
和列重复加密矩阵/>
Figure SMS_51
。具体的,
Figure SMS_52
,/>
Figure SMS_53
,Encryption代表进行全同态加密,可以使用现有的同态加密算法,在此不作具体限定。
步骤S200,通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果。
其中,上述服务器是进行数据处理的云端服务器,本实施例中,上述服务器具体用于执行排序任务。具体的,上述通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果,包括:通过上述数据持有端向上述服务器发送上述评估密钥、上述行重复加密矩阵和上述列重复加密矩阵,以触发上述服务器根据上述评估密钥、上述行重复加密矩阵和上述列重复加密矩阵进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果。
其中,上述排序加密结果是对加密后的数据进行排序处理后获得的结果。需要说明的是,由于加密过程是基于同态加密算法进行的,对加密后的数据进行排序也可以同样映射到对明文数据的操作上。因此,根据排序加密结果也可以确定明文的排序结果。
在一种应用场景中,可以针对各个分解向量对应的加密数据(也即上述行重复加密矩阵或上述列重复加密矩阵之间的对应元素)进行一一对比,即可确定大小关系,从而获得对应的排序加密结果。
本实施例中,上述服务器根据如下步骤进行排序处理:根据上述评估密钥计算上述行重复加密矩阵和上述列重复加密矩阵对应的差值矩阵;根据上述差值矩阵进行内插多项式获得比较矩阵;根据上述比较矩阵进行多个分解层上的旋转倍增运算获得上述待排序数据对应的排序矩阵,并将上述排序矩阵作为上述排序加密结果。
具体的,服务器使用评估密钥求两个加密矩阵的差值并运行内插多项式得到每个分解基上系数的比较结果。具体的,根据上述评估密钥计算上述行重复加密矩阵和上述列重复加密矩阵对应的差值矩阵;根据上述差值矩阵进行内插多项式获得比较矩阵
Figure SMS_54
,如下公式(1)所示:
Figure SMS_55
其中,
Figure SMS_56
后获得差值矩阵,/>
Figure SMS_57
代表逼近比较运算函数的内插多项式。
进一步的,服务器执行分解层上的旋转倍增运算(即Rotation-Multiply)运算,组合得到可以体现待排序数值两两之间比较结果的排序加密结果,如下公式(2)所示:
Figure SMS_58
其中,
Figure SMS_59
代表旋转倍增运算,/>
Figure SMS_60
代表排序加密结果。其中,旋转倍增运算对应的明文操作如下公式(3)所示:
Figure SMS_61
其中,
Figure SMS_63
是待排序数据中的任意两个待排序数值,/>
Figure SMS_66
为分解基,/>
Figure SMS_69
为该层数下的系数个数。/>
Figure SMS_64
代表/>
Figure SMS_67
域内/>
Figure SMS_68
的比较结果,即最终比较结果,/>
Figure SMS_70
代表代表每个分解系数在模/>
Figure SMS_62
下的比较结果,/>
Figure SMS_65
代表是否相等的比较结果(即判断两数是否相等)。
在一种应用场景中,
Figure SMS_80
和/>
Figure SMS_71
进行比较之后,获得排序矩阵/>
Figure SMS_77
,/>
Figure SMS_72
对应的明文内容为/>
Figure SMS_76
,其中,每一个/>
Figure SMS_79
为一个向量,向量的首个位置/>
Figure SMS_84
保存了待排序序列中第/>
Figure SMS_83
个数和第/>
Figure SMS_87
个数的比较结果,即0或者1,比较关系如下:/>
Figure SMS_74
,/>
Figure SMS_78
向量的其余位置保存的数为冗余结果可以不必关注。例如/>
Figure SMS_81
,/>
Figure SMS_85
,表示/>
Figure SMS_82
;/>
Figure SMS_86
,/>
Figure SMS_73
,表示/>
Figure SMS_75
在另一种应用场景中,对数集中的数进行两两比较,其中对数集中两个数值
Figure SMS_97
Figure SMS_89
的比较为:遍历k∈[1,u],比较/>
Figure SMS_95
与/>
Figure SMS_91
的大小,利用多项式插值方法,同态评估
Figure SMS_92
的值,其结果用两个数值表示(通过每个分解系数的比较,最终组合得到原数的比较结果):/>
Figure SMS_96
。其中,/>
Figure SMS_100
代表/>
Figure SMS_98
和/>
Figure SMS_102
这两个分解系数的比较结果,/>
Figure SMS_88
与/>分别代表/>
Figure SMS_99
分解后的第/>
Figure SMS_103
个系数以及/>
Figure SMS_101
分解后的第/>
Figure SMS_104
个系数。基于分解基/>
Figure SMS_90
分解的多项式插值比较公式同态评估乘法次数使用/>
Figure SMS_93
表示;同态评估乘法次数即对密文进行的乘法操作次数,是同态加密中计算成本最高的步骤之一,因此是协议性能的关键指标。使用多项式插值比较公式的原因在于,同态加密支持对密文的乘法和加法,比较运算是一种非线性运算,无法直接使用加法和乘法的算术运算完成,因此使用拉格朗日多项式内插方法,得到了比较运算的等价多项式表达,从而可以用加法和乘法完成,即使用同态加密算法完成。
进一步的,对结果
Figure SMS_118
进行分层评估。分层的目的在于减小乘法深度,乘法深度决定了加密参数大小,进一步决定了协议性能。乘法深度越大,加密参数越大,方案性能越差。分层评估过程包含如下步骤:第一步,记分层宽度为
Figure SMS_107
,分层深度为/>
Figure SMS_120
,二者满足关系/>
Figure SMS_111
;每一层的比较过程为:
Figure SMS_114
,每一层需要进行的乘法次数为/>
Figure SMS_117
,则Result进行分层评估时所需乘法次数为
Figure SMS_119
,LT指LessThan,即小于函数,当A<B时,/>
Figure SMS_113
,否则
Figure SMS_116
;EQ指Equal,两数相等时返回1。第二步,基分解的基选取和分层宽度的选取应保证乘法次数depth的值最小,其过程为,从/>
Figure SMS_105
=3递增选取(/>
Figure SMS_109
增加过程中取素数),针对每一个/>
Figure SMS_108
,对所有小于/>
Figure SMS_110
的/>
Figure SMS_112
进行遍历,计算对应的depth取值。选取对应depth值最小的/>
Figure SMS_115
和/>
Figure SMS_106
取值进行基分解和分层操作。
需要说明的是,服务器重复执行
Figure SMS_122
次上述旋转倍增运算之后得到待排序数据对应的排序矩阵/>
Figure SMS_128
,/>
Figure SMS_132
为待排序数据对应的数据位宽。针对所有可能的/>
Figure SMS_121
,/>
Figure SMS_127
,得到其比较结果,构建矩阵/>
Figure SMS_130
,/>
Figure SMS_133
,/>
Figure SMS_124
。其中,/>
Figure SMS_126
,/>
Figure SMS_131
与/>
Figure SMS_134
结果相反。因此,只需考虑矩阵/>
Figure SMS_123
中的/>
Figure SMS_125
个点,/>
Figure SMS_129
为待排序数值的个数。例如一组数[a,b,c],普通排序矩阵会生成a<a,a<b,a<c,b<a,b<b,b<c,c<a,c<b,c<c九个比较结果,而其实只需要a<b,b<c,a<c三个结果,因此其余都是冗余点。本实施例方法可以去除普通排序矩阵中的冗余点以及对应的冗余操作,有利于提高排序效率。
步骤S300,通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。
具体的,数据持有端接收上述排序加密结果之后,通过上述数据持有端根据上述私钥对上述排序加密结果进行解密并获取各上述待排序数值对应的汉明重量;通过上述数据持有端根据各上述汉明重量确定每个排序位置对应的待排序数值,获得上述目标排序结果。
服务器将排序加密结果返回给数据持有端,数据持有端使用私钥进行解密得到每个数据对应的汉明重量。同态执行过程在得到M(M为排序矩阵,即待排序数组两两比较结果组成的矩阵)的密文后便停止进行密文计算,具有同态解密能力的一方对密文进行解密得到明文,计算每一行对应的汉明重量对数集进行排序得到
Figure SMS_135
,其中,满足
Figure SMS_136
,/>
Figure SMS_137
,/>
Figure SMS_138
,/>
Figure SMS_139
。数据持有端根据汉明重量,选择每个排序位置对应的数据,完成排序。
本实施例中,通过重复编码和批处理技术,使得排序过程只需要进行一次比较操作,同时根据位宽进行最优分解,将排序过程的乘法深度降低到最小,显著提高了***效率。图2是本发明实施例提供的一种排序矩阵非优化与优化的数据结构对比示意图,在优化前,排序矩阵如图2左边所示,有
Figure SMS_140
个点,在进行优化之后如图2右边所示,降至
Figure SMS_141
个点,有利于减少计算量。且本实施例中,将排序的结果定位到排序矩阵,而不是排序后的数据集合密文,减少了同态计算步骤。由具有同态解密功能的一方进行明文计算得到排序后的数据集合明文,有利于提高数据安全性。对于不进行优化的排序矩阵,上三角型矩阵与下三角型矩阵具有重复数据,这些冗余数据影响一次排序中支持的数据容量。且本实施例中还进行了动态分层,如果不进行动态分层,乘法深度等于比较数目的比特长度;当比特长度较大时,随着乘法深度增加,性能指数量级下降;可见本实施例有利于提高计算性能。
需要说明的是,在同态运算排序过程中,执行一次比较操作,即可以得到任意两个密文之间的比较结果。排序过程的所有操作均在密文上执行,因此不能判断任何中间步骤的执行结果,同态运算不支持for循环、if-else等判断分支结构。进行同态运算排序时,确定分解基,即将进行排序的数按照特定进制进行分解比较;根据比较结果获得排序矩阵,完成排序结果。
图3是本发明实施例提供的一种对两个数进行比较排序的计算过程示意图,本实施例中,以二进制分解、单变元多项式为例的两个n比特数值A、B的比较为例进行具体说明,A和B为待比较大小的两个数值。如图3所示,将A按照二进制分解为(a1,a2,…,an),将B按照二进制分解为(b1,b2,…,bn)。逐比特比较大小,结果表示为
Figure SMS_142
,i∈[1,n]。ai小于bi时,/>
Figure SMS_143
值记为2,
Figure SMS_144
;ai等于bi时,/>
Figure SMS_145
值记为0,/>
Figure SMS_146
;ai大于bi时,
Figure SMS_147
值记为1,/>
Figure SMS_148
A与B是否相等的计算公式为:
Figure SMS_149
,EQ(A,B)为1,A与B相等;否则,A与B不相等。A是否小于B的判断公式为:
Figure SMS_150
Figure SMS_151
为1,则A小于B。/>
Figure SMS_152
代表整数分解后的长度,即/>
Figure SMS_153
给定
Figure SMS_154
个n比特长的数值组成的待排序数集/>
Figure SMS_157
,根据上述比较算法得到针对此/>
Figure SMS_160
个数的排序矩阵:/>
Figure SMS_155
,其中,/>
Figure SMS_159
时/>
Figure SMS_161
,否则/>
Figure SMS_163
。计算排序矩阵每一行的汉明重量/>
Figure SMS_156
,/>
Figure SMS_158
,/>
Figure SMS_162
。 汉明重量是一串符号中非零符号的个数,因此它等同于同样长度的全零符号串的汉明距离。
如果一行对应的汉明重量
Figure SMS_164
等于j+1,则/>
Figure SMS_165
在排序后的数据中排序下标为j,例如,如果/>
Figure SMS_166
=1,则该行的/>
Figure SMS_167
排在该行的第一位,下标为1。例如排序前数组为[a0,a1,a2,a3]=[51,3,4,5],按照降序排序后数组变为[b0,b1,b2,b3]=[51,5,4,3]。则3在排序前的下标为1,在排序后数组中下标为3。
由上可见,本实施例方案中,通过数据持有端对待排序数据进行同态加密获得加密数据并发送到服务器之后,在服务器中并不会进行解密,而是直接对加密数据进行排序处理获得排序加密结果。因为数据持有端对待排序数据进行的是同态加密,所以服务器对加密数据进行的排序同样可以映射到明文数据(即待排序数据)上,实现对应的排序。同时,在服务器中进行数据处理时,使用的都是加密后的数据,即服务器并不会获取对应的明文数据,即使服务器被入侵也不会造成明文数据的泄露,有利于提高数据处理过程中数据的安全性,且有利于对数据进行隐私保护。
进一步的,通过动态分层技术对分解基基数与分层处理层数进行适配,降低排序功能中的同态运操作复杂度;且去除普通排序矩阵中的冗余点以及对应的冗余操作,减少执行方在得到排序矩阵密文后的同态排序步骤,由解密方执行,合理划分排序过程执行步骤,有利于提高排序过程性能。
本实施例中还基于一种具体应用场景对上述基于动态分层进行数值比较的过程进行具体描述。图4是本发明实施例提供的一种不进行动态分层时数值比较的流程示意图,图5是本发明实施例提供的一种进行动态分层时数值比较的流程示意图。本实施例中,以二进制分解为例,对于8比特长度的数值15与20两个数进行比较。如图4所示,15的二进制分解为:00001111,20的二进制分解为00010100;逐比特比较两个数的二进制分解表示,得到结果:
Figure SMS_178
,/>
Figure SMS_171
,/>
Figure SMS_174
,/>
Figure SMS_172
,/>
Figure SMS_176
,/>
Figure SMS_175
,/>
Figure SMS_179
,/>
Figure SMS_182
;/>
Figure SMS_185
,/>
Figure SMS_170
,/>
Figure SMS_177
,/>
Figure SMS_180
,/>
Figure SMS_183
,/>
Figure SMS_181
,/>
Figure SMS_184
,/>
Figure SMS_169
;计算15与20是否相等:
Figure SMS_173
;因此15与20不相等(需要计算乘法7次);计算15是否小于20:
Figure SMS_168
;因此15小于20,LT乘法深度为1,总的计算的乘法深度为7+1=8。
如图5所示,15的二进制分解为:00001111,20的二进制分解为00010100,逐比特比较两个数的二进制分解表示,得到结果:
Figure SMS_194
,/>
Figure SMS_187
,/>
Figure SMS_190
,/>
Figure SMS_198
,/>
Figure SMS_202
Figure SMS_204
,/>
Figure SMS_205
,/>
Figure SMS_197
;/>
Figure SMS_201
,/>
Figure SMS_186
,/>
Figure SMS_192
,/>
Figure SMS_189
,/>
Figure SMS_193
,/>
Figure SMS_196
,/>
Figure SMS_200
Figure SMS_191
。将8比特按照分层宽度2比特进行比较,每次比较2比特大小:第一次分层后,得到4个分块,分别计算每一个分块中:/>
Figure SMS_195
,/>
Figure SMS_199
;得到第二层,共包含4比特LT结果与4比特EQ结果,继续进行第二次分层,计算每一个分块的LT、EQ(计算公式与第一次分层相同);第二层计算完毕后得到2比特LT结果和2比特EQ结果,继续按照2比特分块计算,得到LT=1,EQ=0最终结果。与未分层时结果相同,分层后:共计算3次分层,每一次分层乘法深度为1,因此乘法深度一共为:3×1+1=4。有利于降低乘法深度,从而减少计算量,提高计算效率。需要说明的是,图5中,L_first代表上述/>
Figure SMS_203
,L_second代表上述
Figure SMS_188
如图6中所示,对应于上述基于同态加密的数据处理方法,本发明实施例还提供一种基于同态加密的数据处理***,上述基于同态加密的数据处理***包括:
数据加密模块410,用于通过数据持有端对待排序数据进行同态加密获得加密数据;
加密数据处理模块420,用于通过上述数据持有端向服务器发送上述加密数据,以触发上述服务器根据上述加密数据进行排序处理获得排序加密结果并向上述数据持有端返回上述排序加密结果;
数据排序模块430,用于通过上述数据持有端接收的上述排序加密结果获取上述待排序数据对应的目标排序结果。
具体的,本实施例中,上述基于同态加密的数据处理***及其各模块的具体功能可以参照上述基于同态加密的数据处理方法中的对应描述,在此不再赘述。
需要说明的是,上述基于同态加密的数据处理***的各个模块的划分方式并不唯一,在此也不作为具体限定。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图7所示。上述智能终端包括处理器及存储器。该智能终端的存储器包括基于同态加密的数据处理程序,存储器为基于同态加密的数据处理程序的运行提供环境。该基于同态加密的数据处理程序被处理器执行时实现上述任意一种基于同态加密的数据处理方法的步骤。需要说明的是,上述智能终端还可以包括其它功能模块或单元,在此不作具体限定。
本领域技术人员可以理解,图7中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体地智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有基于同态加密的数据处理程序,上述基于同态加密的数据处理程序被处理器执行时实现本发明实施例提供的任意一种基于同态加密的数据处理方法的步骤。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述***的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的***/智能终端和方法,可以通过其它的方式实现。例如,以上所描述的***/智能终端实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于同态加密的数据处理方法,其特征在于,所述方法包括:
通过数据持有端对待排序数据进行同态加密获得加密数据;
所述通过数据持有端对待排序数据进行同态加密获得加密数据,包括:
通过所述数据持有端采集获取待排序数据,其中,所述待排序数据包括多个待排序数值;
根据所述待排序数值的数据位宽获取所述待排序数据对应的分解基和分层处理层数,其中,所述分解基是对各所述待排序数值进行分解时的数据进制;
根据所述分解基和所述分层处理层数分别对各所述待排序数值进行分解,获取各所述待排序数值对应的分解向量;
根据所述分解向量,通过同态加密获得所述加密数据;
其中,所述分层处理层数为在排序过程中进行分层比较处理过程中的分层数,在进行排序比较时,比较分解向量中的每个系数,将比较结果组合为最终比较结果;在组合过程中,将大位宽数据视为多个小位宽子数据的拼接,每个所述小位宽子数据视为更小的子数据的拼接,将每次迭代视为一个比较层,总比较层数为所述分层处理层数;
通过所述数据持有端向服务器发送所述加密数据,以触发所述服务器根据所述加密数据进行排序处理获得排序加密结果并向所述数据持有端返回所述排序加密结果;
通过所述数据持有端接收的所述排序加密结果获取所述待排序数据对应的目标排序结果。
2.根据权利要求1所述的基于同态加密的数据处理方法,其特征在于,所述加密数据包括行重复加密矩阵和列重复加密矩阵,所述根据所述分解向量,通过同态加密获得所述加密数据,包括:
根据所述分解向量构建所述待排序数据对应的行重复编码矩阵和列重复编码矩阵,其中,所述行重复编码矩阵由目标数目个相同的行构成,所述行重复编码矩阵的一行中的元素分别为各所述分解向量,所述目标数目为所述分解向量的个数,所述列重复编码矩阵由目标数目个相同的列构成,所述列重复编码矩阵的一列中的元素分别为各所述分解向量;
通过所述数据持有端对所述行重复编码矩阵进行同态加密获得所述行重复加密矩阵,对所述列重复加密矩阵进行同态加密获得所述列重复加密矩阵。
3.根据权利要求2所述的基于同态加密的数据处理方法,其特征在于,所述通过所述数据持有端对所述行重复编码矩阵进行同态加密获得所述行重复加密矩阵,对所述列重复加密矩阵进行同态加密获得所述列重复加密矩阵,包括:
通过所述数据持有端生成公钥、私钥和评估密钥,其中,所述私钥用于供所述数据持有端进行数据解密,所述评估密钥用于供所述服务器对所述加密数据进行数据计算;
通过所述数据持有端根据所述公钥对所述行重复编码矩阵进行同态加密获得所述行重复加密矩阵;
通过所述数据持有端根据所述公钥对所述列重复加密矩阵进行同态加密获得所述列重复加密矩阵。
4.根据权利要求3所述的基于同态加密的数据处理方法,其特征在于,所述通过所述数据持有端向服务器发送所述加密数据,以触发所述服务器根据所述加密数据进行排序处理获得排序加密结果并向所述数据持有端返回所述排序加密结果,包括:
通过所述数据持有端向所述服务器发送所述评估密钥、所述行重复加密矩阵和所述列重复加密矩阵,以触发所述服务器根据所述评估密钥、所述行重复加密矩阵和所述列重复加密矩阵进行排序处理获得排序加密结果并向所述数据持有端返回所述排序加密结果。
5.根据权利要求4所述的基于同态加密的数据处理方法,其特征在于,所述服务器根据如下步骤进行排序处理:
根据所述评估密钥计算所述行重复加密矩阵和所述列重复加密矩阵对应的差值矩阵;
根据所述差值矩阵进行内插多项式获得比较矩阵;
根据所述比较矩阵进行多个分解层上的旋转倍增运算获得所述待排序数据对应的排序矩阵,并将所述排序矩阵作为所述排序加密结果。
6.根据权利要求5所述的基于同态加密的数据处理方法,其特征在于,所述通过所述数据持有端接收的所述排序加密结果获取所述待排序数据对应的目标排序结果,包括:
通过所述数据持有端根据所述私钥对所述排序加密结果进行解密并获取各所述待排序数值对应的汉明重量;
通过所述数据持有端根据各所述汉明重量确定每个排序位置对应的待排序数值,获得所述目标排序结果。
7.一种基于同态加密的数据处理***,其特征在于,所述***包括:
数据加密模块,用于通过数据持有端对待排序数据进行同态加密获得加密数据;
所述通过数据持有端对待排序数据进行同态加密获得加密数据,包括:
通过所述数据持有端采集获取待排序数据,其中,所述待排序数据包括多个待排序数值;
根据所述待排序数值的数据位宽获取所述待排序数据对应的分解基和分层处理层数,其中,所述分解基是对各所述待排序数值进行分解时的数据进制;
根据所述分解基和所述分层处理层数分别对各所述待排序数值进行分解,获取各所述待排序数值对应的分解向量;
根据所述分解向量,通过同态加密获得所述加密数据;
其中,所述分层处理层数为在排序过程中进行分层比较处理过程中的分层数,在进行排序比较时,比较分解向量中的每个系数,将比较结果组合为最终比较结果;在组合过程中,将大位宽数据视为多个小位宽子数据的拼接,每个所述小位宽子数据视为更小的子数据的拼接,将每次迭代视为一个比较层,总比较层数为所述分层处理层数;
加密数据处理模块,用于通过所述数据持有端向服务器发送所述加密数据,以触发所述服务器根据所述加密数据进行排序处理获得排序加密结果并向所述数据持有端返回所述排序加密结果;
数据排序模块,用于通过所述数据持有端接收的所述排序加密结果获取所述待排序数据对应的目标排序结果。
8.一种智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于同态加密的数据处理程序,所述基于同态加密的数据处理程序被所述处理器执行时实现如权利要求1-6任意一项所述基于同态加密的数据处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于同态加密的数据处理程序,所述基于同态加密的数据处理程序被处理器执行时实现如权利要求1-6任意一项所述基于同态加密的数据处理方法的步骤。
CN202310406264.6A 2023-04-17 2023-04-17 基于同态加密的数据处理方法、***及相关设备 Active CN116150795B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310406264.6A CN116150795B (zh) 2023-04-17 2023-04-17 基于同态加密的数据处理方法、***及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310406264.6A CN116150795B (zh) 2023-04-17 2023-04-17 基于同态加密的数据处理方法、***及相关设备

Publications (2)

Publication Number Publication Date
CN116150795A CN116150795A (zh) 2023-05-23
CN116150795B true CN116150795B (zh) 2023-07-14

Family

ID=86352701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310406264.6A Active CN116150795B (zh) 2023-04-17 2023-04-17 基于同态加密的数据处理方法、***及相关设备

Country Status (1)

Country Link
CN (1) CN116150795B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116975935B (zh) * 2023-09-22 2023-12-26 北京天润基业科技发展股份有限公司 数据比较方法、存储介质及电子设备
CN117349868B (zh) * 2023-12-04 2024-04-12 粤港澳大湾区数字经济研究院(福田) 基于gpu的全同态加解密方法、电子设备和存储介质
CN117435200B (zh) * 2023-12-21 2024-04-16 粤港澳大湾区数字经济研究院(福田) 同态加密业务代码转译方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510281A (zh) * 2020-06-29 2020-08-07 腾讯科技(深圳)有限公司 一种同态加密方法及装置
CN113240045A (zh) * 2021-06-01 2021-08-10 平安科技(深圳)有限公司 一种数据降维方法、装置及相关设备
CN113746620A (zh) * 2021-09-13 2021-12-03 深圳前海微众银行股份有限公司 同态加密方法、设备、介质及计算机程序产品
CN113812114A (zh) * 2019-03-18 2021-12-17 英艾特股份公司 同态加密
CN114817999A (zh) * 2022-06-28 2022-07-29 北京金睛云华科技有限公司 一种基于多密钥同态加密的外包隐私保护方法和设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190109701A1 (en) * 2016-08-02 2019-04-11 X-Logos, LLC Methods and systems for enhanced data-centric homomorphic encryption sorting using geometric algebra
CN107491497B (zh) * 2017-07-25 2020-08-11 福州大学 支持任意语言查询的多用户多关键词排序可搜索加密***
EP3503456A1 (en) * 2017-12-19 2019-06-26 Koninklijke Philips N.V. Homomorphic encryption for password authentication
CN108718231B (zh) * 2018-07-04 2023-05-23 深圳大学 一种全同态加密方法、装置和计算机可读存储介质
CN111464282B (zh) * 2019-01-18 2024-04-26 百度在线网络技术(北京)有限公司 基于同态加密的数据处理方法和装置
CN110309674B (zh) * 2019-07-04 2021-10-01 浙江理工大学 一种基于全同态加密的排序方法
CN112182660A (zh) * 2020-10-28 2021-01-05 深圳前海微众银行股份有限公司 一种数据排序方法及装置
CN113111090B (zh) * 2021-04-15 2023-01-06 西安电子科技大学 基于保序加密的多维数据查询方法
CN113794548A (zh) * 2021-09-13 2021-12-14 深圳前海微众银行股份有限公司 同态加密方法、设备、介质及计算机程序产品
CN114168977A (zh) * 2021-11-07 2022-03-11 西安电子科技大学 一种基于密文的数值安全排序方法及***
CN115118520B (zh) * 2022-07-21 2023-06-02 建信金融科技有限责任公司 数据处理方法、装置和服务器
CN115834020A (zh) * 2022-11-07 2023-03-21 阿里巴巴(中国)有限公司 同态加密自举方法和装置、处理器、片上***以及计算设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113812114A (zh) * 2019-03-18 2021-12-17 英艾特股份公司 同态加密
CN111510281A (zh) * 2020-06-29 2020-08-07 腾讯科技(深圳)有限公司 一种同态加密方法及装置
CN113240045A (zh) * 2021-06-01 2021-08-10 平安科技(深圳)有限公司 一种数据降维方法、装置及相关设备
CN113746620A (zh) * 2021-09-13 2021-12-03 深圳前海微众银行股份有限公司 同态加密方法、设备、介质及计算机程序产品
CN114817999A (zh) * 2022-06-28 2022-07-29 北京金睛云华科技有限公司 一种基于多密钥同态加密的外包隐私保护方法和设备

Also Published As

Publication number Publication date
CN116150795A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN116150795B (zh) 基于同态加密的数据处理方法、***及相关设备
CN113297606B (zh) 基于多混沌与dna运算的彩色量子图像加密及解密方法
CN1993922B (zh) 流密码组合***和方法
CN1211363A (zh) 运用公共密钥完成通信的方法
CN115276947B (zh) 隐私数据处理方法、装置、***及存储介质
WO2018211676A1 (en) Multiparty computation method, apparatus and program
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
CN109327304A (zh) 一种云计算中实现隐私保护的轻量级同态加密方法
CN114465708B (zh) 隐私数据处理方法及装置、***、电子设备、存储介质
CN116484395A (zh) 一种基于隐私数据的安全计算方法及相关设备
CN113098675B (zh) 基于多项式完全同态的二进制数据加密***及方法
CN112116672A (zh) 基于遗传算法的彩色图像保存缩略图加密算法
CN117527223B (zh) 一种基于格的抗量子密码的分布式解密方法及***
CN114915401A (zh) 一种可验证的同态代理重加密方法及***
WO1997016896A1 (en) Cryptosystem for optical storage
CN116707804B (zh) 增强ff1格式保留加密安全性的方法及设备
CN116684062B (zh) 基于代理重加密的云计算外包和数据动态分享方法及***
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
CN115103080B (zh) 一种基于dna三倍体变异的图像加密方法和***
CN113612899A (zh) 基于rna和像素深度的图像加密方法
KR102257779B1 (ko) 다자간 계산을 위한 유사 보간
NL9202284A (nl) Bloksgewijze vercijfering op basis van algebraische coderingsmethoden.
Zhu et al. A novel four-dimensional hyperchaotic system and DNA encoding method for image encryption
CN116232562B (zh) 一种模型推理方法和装置
CN117114959B (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
GR01 Patent grant
GR01 Patent grant