CN111046409A - 一种私有数据多方安全计算方法和系统 - Google Patents
一种私有数据多方安全计算方法和系统 Download PDFInfo
- Publication number
- CN111046409A CN111046409A CN201911290265.9A CN201911290265A CN111046409A CN 111046409 A CN111046409 A CN 111046409A CN 201911290265 A CN201911290265 A CN 201911290265A CN 111046409 A CN111046409 A CN 111046409A
- Authority
- CN
- China
- Prior art keywords
- data set
- security
- private data
- data
- private
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本说明书实施例提供一种私有数据多方安全计算方法。该方法包括:由第一终端将第一私有数据转换为第一安全数据集,并将所述第一安全数据集发送至第二终端,所述第一安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;由所述第二终端将第二私有数据转换为第二安全数据集,并将所述第二安全数据集发送至所述第一终端,所述第二安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
Description
技术领域
本说明书涉及信息安全领域,特别涉及一种私有数据的多方安全计算方法和系统。
背景技术
在各种数据相关的应用中常常都会使用到数据大小比较操作,随着现代信息技术的发展,很多数据的存储已经不再是中心式的存储方式,而是分布在多个客户端上。数据是一种隐私,具有敏感性需要得到保护,这些数据客户端并不愿意将自己的数据暴露给任何查询者或者其他客户端,例如在很多安全传感器网络和移动社交网络中,每个传感器或者手机上的数据都需要得到保护,不能向外界暴露。在隐私问题日益严重的现在,人们提出了需要完全不暴露客户端隐私数据的情况下,对分布式的隐私数据进行比较操作。
传统的多方安全计算方法主要通过利用与和异或这两个基本操作,构建一个比较电路,对需要进行比较的两个数据,双方按位输入到比较电路,比较电路中的每一个门电路都使用混淆电路进行比较,以确保不会暴露参与比较的隐私数据。这种方式操作复杂,每个门电路都需要进行计算导致计算性能较低。因此,希望提供一种操作简单、计算性能较高的私有数据多方安全计算方法和系统。
发明内容
本说明书的一个方面提供一种私有数据多方安全计算方法。该私有数据多方安全计算方法包括:由第一终端将第一私有数据转换为第一安全数据集,并将所述第一安全数据集发送至第二终端,所述第一安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;由所述第二终端将第二私有数据转换为第二安全数据集,并将所述第二安全数据集发送至所述第一终端,所述第二安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
在一些实施例中,由所述第一终端确定所述第一安全数据集包括:获取第一私有数据,将所述第一私有数据映射到整数域,确定与所述第一私有数据相关联的第一整数数字;通过进位计数制方法将所述第一整数数字转换为进制数;基于所述进制数,通过前缀划分方式确定第一数据集;基于所述第一数据集,通过第一安全算法确定第一安全数据集。
在一些实施例中,由所述第二终端确定所述第二安全数据集包括:获取第二私有数据,将所述第二私有数据映射到整数域,确定与所述第二私有数据相关联的第二整数数字;基于所述第二整数数字,确定至少两组整数范围集,其中一组的最大整数值小于所述第二整数数字,另一组的最小整数值大于所述第二整数数字;基于所述至少两组整数范围集,通过前缀划分方式确定第二数据集,所述第二数据集包括至少两组字符串的并集;基于所述第二数据集,通过第二安全算法确定第二安全数据集。
在一些实施例中,所述进位计数制方法至少包括二进制计数法,所述前缀划分方式至少包括二进制前缀划分法。在一些实施例中,所述第一安全算法和所述第二安全算法具有映射可交换性。
在一些实施例中,比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小包括:由所述第一终端,基于所述第二安全数据集通过所述第一安全算法确定第三安全数据集,并将所述第三安全数据集发送至所述第二终端,所述第三安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;由所述第二终端,基于所述第一安全数据集通过所述第二安全算法确定第四安全数据集,并将所述第四安全数据集发送至所述第一终端,所述第四安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;比较所述第三安全数据集与所述第四安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
在一些实施例中,比较所述第三安全数据集与所述第四安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小包括:响应于所述第四安全数据集中的至少一个字符串与所述第三安全数据集中至少两组字符串的并集的其中一组存在交集,确定所述第一私有数据小于所述第二私有数据;响应于所述第四安全数据集中的至少一个字符串与所述第三安全数据集中至少两组字符串的并集的另一组存在交集,确定所述第一私有数据大于所述第二私有数据;响应于所述第三安全数据集与所述第四安全数据集不存在交集,确定所述第一私有数据和所述第二私有数据相等。
本说明书的另一方面提供一种私有数据多方安全计算系统。该私有数据多方安全计算系统至少包括第一终端和第二终端。在一些实施例中,所述第一终端用于将第一私有数据转换为第一安全数据集,并将所述第一安全数据集发送至所述第二终端,所述第一安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;所述第二终端用于将第二私有数据转换为第二安全数据集,并将所述第二安全数据集发送至所述第一终端,所述第二安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据。在一些实施例中,所述第一终端和所述第二终端中的至少一个可以用于比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
本说明书的另一方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如前所述的私有数据多方安全计算方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的私有数据多方安全计算系统的应用场景示意图;
图2是根据本说明书的一些实施例所示的私有数据多方安全计算方法的示例性流程图;
图3是根据本说明书的一些实施例所示的私有数据多方安全计算方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
虽然本说明书对根据本说明书的实施例的系统中的某些模块或单元做出了各种引用,然而,任何数量的不同模块或单元可以被使用并运行在客户端和/或服务器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书的一些实施例所示的私有数据多方安全计算系统的应用场景示意图。
私有数据多方安全计算系统100可以在不泄露隐私的前提下实现多方私有数据的比较。私有数据多方安全计算系统100可以是一个线上平台,包括服务器110、网络120、第一终端130、第二终端140和数据库150。服务器110可以包括一个处理引擎112。
在一些实施例中,服务器110可以是一个单个的服务器或者一个服务器群。服务器群可以是集中式的或分布式的(例如,服务器110可以是一分布式的系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以通过网络120访问储存于第一终端130、第二终端140和/或数据库150中的信息和/或数据。再例如,服务器110可以直接连接到第一终端130、第二终端140和/或数据库150以访问储存的信息和/或数据。在一些实施例中,服务器110可以在一个云端平台上实现。仅仅作为示例,云端平台可以包括私有云、公共云、混合云、社区云、分布云、跨云、多云等或上述举例的任意组合。在一些实施例中,服务器110可以在一个计算设备上实现,该计算设备可以包括一个或多个部件。
在一些实施例中,服务器110可以包括一个处理引擎112。处理引擎112可以处理与数据计算相关的信息和/或数据以执行本说明书中描述的一个或多个功能。例如,处理引擎112可以基于从第一终端130和第二终端140获取的私有数据计算请求进行私有数据多方安全计算。在一些实施例中,处理引擎112可以包括一个或多个处理引擎(例如,单晶片处理器或多晶片处理器)。仅仅作为示例,处理引擎112可以包括一个或多个硬件处理器,例如中央处理器(CPU)、专用积体电路(ASIC)、专用指令集处理器(ASIP)、图像处理单元(GPU)、物理运算处理单元(PPU)、数位讯号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、微控制器单元、精简指令集电脑(RISC)、微处理器等或上述举例的任意组合。
网络120可以促进信息和/或数据的交换。在一些实施例中,私有数据多方安全计算系统100中的一个或多个部件(例如,服务器110、第一终端130、第二终端140和数据库150)可以通过网络120向私有数据多方安全计算系统100中的其他部件发送信息和/或数据。例如,第一终端130可以通过网络120从第二终端140获取第一安全数据集和/或第三安全数据集。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种,或其组合。仅仅作为示例,网络120可以包括电缆网络、有线网络、光纤网络、远端通信网络、内联网、互联网、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)、城域网(MAN)、广域网(WAN)、公共开关电话网络(PSTN)、蓝牙网络、ZigBee网络、近场通信(NFC)网络等或上述举例的任意组合。在一些实施例中,网络120可以包括一个或多个网络交换点。例如,网络120可以包括有线或无线网络交换点,如基站和/或互联网交换点120-1、120-2、……,通过交换点,私有数据多方安全计算系统100的一个或多个部件可以连接到网络120以交换数据和/或信息。
在一些实施例中,第一用户可以是第一终端130的使用者。在一些实施例中,第一用户可以通过第一终端130进行私有数据安全计算。例如,第一用户可以使用第一终端130对第一私有数据进行加密计算获得第一安全数据集。在一些实施例中,第一用户可以通过第一终端130进行私有数据比较。例如,第一用户可以通过第一终端130接收第二用户或其他用户加密获得的第二安全数据集,并与第一安全数据集进行比较。在一些实施例中,第一终端130的使用者可以是除第一用户以外的其他人。例如,第一终端130的使用者A可使用第一终端130为使用者B进行私有数据安全计算。在一些实施例中,第一终端130可以从服务器110接收信息和/或指令。
在一些实施例中,第一终端130可以包括第一计算模块、第一加密模块和第一比较模块。第一计算模块可以用于获取第一用户的第一私有数据,并通过进位计数制方法将第一私有数据转换为第一数据集。该第一数据集可以包括至少一个与第一私有数据相关的字符串。第一加密模块可以用于基于第一数据集,通过第一安全算法确定第一安全数据集。在一些实施例中,第一加密模块可以用于基于第二安全数据集通过第一安全算法确定第三安全数据集。第一比较模块可以用于比较第一安全数据集与第二安全数据集(或第三安全数据集与第四安全数据集),根据比较结果确定第一私有数据和第二私有数据的大小。
在一些实施例中,第一终端130可以包括移动装置130-1、平板电脑130-2、膝上型电脑130-3、车辆内建装置130-4等或上述举例的任意组合。在一些实施例中,移动装置130-1可以包括智能家居装置、可穿戴装置、智能移动装置、虚拟现实装置、增强现实装置等或上述举例的任意组合。在一些实施例中,智能家居装置可以包括智能照明装置、智能电器的控制装置、智能监测装置、智能电视、智能摄影机、对讲机等或上述举例的任意组合。在一些实施例中,可穿戴装置可以包括手环、鞋袜、眼镜、头盔、手表、衣物、背包、智能配饰等或上述举例的任意组合。在一些实施例中,智能移动装置可以包括移动电话、个人数字助理、游戏装置、导航装置、POS机、膝上型电脑、台式电脑等或上述举例的任意组合。在一些实施例中,虚拟现实装置和/或增强现实装置可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等或上述举例的任意组合。例如,虚拟现实装置和/或增强现实装置可以包括Google GlassTM、Oculus RiftTM、HololensTM、Gear VRTM等。在一些实施例中,车辆内建装置130-4可以包括车载电脑、车载电视等。
在一些实施例中,第二用户可以是第二终端140的使用者。在一些实施例中,第二用户可以通过第二终端140进行私有数据安全计算。例如,第二用户可以使用第二终端140将第二私有数据进行加密计算,获得第二安全数据集。在一些实施例中,第二用户可以通过第二终端140进行私有数据比较。例如,第二用户可以通过第二终端140接收第一用户或其他用户加密获得的第一安全数据集,并与第二安全数据集进行比较。在一些实施例中,第二终端140的使用者可以是除第二用户之外的其他人。例如,第二终端140的使用者C可以使用第二终端140为使用者D进行私有数据安全计算。在一些实施例中,第二终端140可以从服务器110接收信息和/或指令。
在一些实施例中,第二终端140可以是一个与第一终端130类似或者相同的装置。在一些实施例中,第二终端140可以包括第二计算模块、第二加密模块和第二比较模块。第二计算模块可以用于获取第二用户的第二私有数据,并通过进位计数制方法将第二私有数据转换为第二数据集。该第二数据集可以包括至少两组与第二私有数据相关联的字符串的并集。第二加密模块可以用于基于第二数据集,通过第二安全算法确定第二安全数据集。在一些实施例中,第二加密模块可以用于基于第一安全数据集通过第二安全算法确定第四安全数据集。第二比较模块可以用于比较第一安全数据集与第二安全数据集(或第三安全数据集与第四安全数据集),根据比较结果确定第一私有数据和第二私有数据的大小。
在一些实施例中,第一终端130和第二终端140可以彼此交互进行数据安全计算。例如,第一用户可以通过第一终端130将第一安全数据集发送至第二终端140,第二用户可以通过第二终端140将接收到的第一安全数据集通过第二安全算法确定第四安全数据集,并将第四安全数据集发送到第一终端130。在一些实施例中,第一终端130和/或第二终端140可以将计算获得的安全数据集发送至服务器110。在一些实施例中,“第一用户”和“第二用户”可以互换使用,“第一终端”和“第二终端”可以互换使用,“第一私有数据”和“第二私有数据”可以互换使用。
数据库150可以储存数据和/或指令。在一些实施例中,数据库150可以储存从第一终端130和/或第二终端140计算获得的数据。在一些实施例中,数据库150可以储存供服务器110执行或使用的数据和/或指令,服务器110可以通过执行或使用所述数据和/或指令以实现本说明书描述的示例性方法。在一些实施例中,数据库150可以包括大容量存储器、可以移动存储器、挥发性读写存储器、只读存储器(ROM)等或上述举例的任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性的可以移动存储器可以包括快闪驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性的挥发性只读存储器可以包括随机存储器(RAM)。示例性的随机存储器可以包括动态随机存储器(DRAM)、双倍速率同步动态随机存储器(DDR SDRAM)、静态随机存储器(SRAM)、闸流体随机存储器(T-RAM)和零电容随机存储器(Z-RAM)等。示例性的只读存储器可以包括掩蔽型只读存储器(MROM)、可编程只读存储器(PROM)、可清除可编程只读存储器(PEROM)、电子可抹除可编程只读存储器(EEPROM)、压缩磁盘只读存储器(CD-ROM)和数位通用磁盘只读存储器等。在一些实施例中,数据库150可以在一个云端平台上实现。仅仅作为示例,云端平台可以包括私有云、公共云、混合云、社区云、分布云、跨云、多云等或上述举例的任意组合。
在一些实施例中,数据库150可以与网络120连接以与私有数据多方安全计算系统100中的一个或多个部件(例如,服务器110、第一终端130、第二终端140等)通信。私有数据多方安全计算系统100中的一个或多个部件可以通过网络120访问储存于数据库150中的数据或指令。在一些实施例中,数据库150可以直接与私有数据多方安全计算系统100中的一个或多个部件(例如,服务器110、第一终端130、第二终端140等)连接或通信。在一些实施例中,数据库150可以是服务器110的一部分。
在一些实施例中,私有数据多方安全计算系统100的一个或多个部件(例如,服务器110、第一终端130、第二终端140等)可以拥有存取数据库150的许可。在一些实施例中,当满足一个或多个条件时,私有数据多方安全计算系统100的一个或多个部件可以读取和/或修改与第一用户、第二用户和/或公众相关的信息。例如,在完成一次计算后,第一终端130可以读取和/或修改一个或多个用户的数据。又例如,当第一终端130发送第一安全数据集到数据库150时,第二终端140可以读取所述第一安全数据集,但第二终端140无法修改所述第一安全数据集。
在一些实施例中,私有数据多方安全计算系统100中的一个或多个部件的信息交互可以通过请求一个服务的方式实现。所述服务请求的客体可以是任何产品。在一些实施例中,所述产品可以是一个有形产品或一个无形产品。有形产品可以包括食品、医药、商品、化学产品、电器、衣物、小汽车、房屋、奢侈品等或上述举例的任意组合。无形产品可以包括服务产品、金融产品、知识产品、互联网产品等或上述举例的任意组合。互联网产品可以包括个人主机产品、网站产品、行动互联网产品、商业主机产品、嵌入式产品等或上述举例的任意组合。行动互联网产品可以用于行动终端的软件、编程、系统等或上述举例的任意组合。行动终端可以包括平板电脑、膝上型电脑、行动手机、掌上电脑(PDA)、智能手表、POS机、车载电脑、车载电视、可穿戴装置等或上述举例的任意组合。例如,所述产品可以是用于电脑或行动电话中的任意的软件和/或应用编程。软件和/或应用编程可以与社交、购物、交通、娱乐、学习、投资等或上述举例的任意组合相关。
图2是根据本说明书的一些实施例所示的私有数据多方安全计算方法的示例性流程图。
步骤210,由第一终端将第一私有数据转换为第一安全数据集,并发送至第二终端。
第一私有数据为第一用户用以与其他用户(如第二用户)比较计算的个人隐私数据。在一些实施例中,第一私有数据可以包括整数、浮点数、字符数、布尔数等中的一种或其任意组合。在一些实施例中,第一私有数据可以由第一用户通过第一终端130输入。在一些实施例中,用户输入方式可以包括手写输入、打字输入、选择输入、扫描输入、语音输入等中的一种或其任意组合。在一些实施例中,第一私有数据可以由第一终端130从数据库150和/或服务器110中获取。例如,第一终端130可以通过网络120从第一用户的数据库中获取第一用户预先存储的第一私有数据。
第一安全数据集可以反映第一私有数据加密后的值。在一些实施例中,第一安全数据集可以包括至少一个与第一私有数据相关联的字符串。在一些实施例中,第一安全数据集的其中一个字符串对应的数值等于第一私有数据。在一些实施例中,第一终端130可以通过第一安全算法将第一私有数据转换为第一安全数据集。在一些实施例中,第一安全算法可以包括单向函数。单向函数是一种具有下述特点的单射函数:对于每一个输入,函数值都容易计算,但是给出一个随机输入的函数值,算出原始输入却比较困难。在一些实施例中,第一终端130可以基于第一私有数据通过进位计数制方法确定第一数据集,并基于第一数据集确定第一安全数据集。具体地,第一终端130中的第一计算模块可以将第一私有数据映射到整数域,确定与第一私有数据相关联的第一整数数字,然后通过进位计数制方法将第一整数数字转换为进制数,并通过前缀划分方式对该进制数进行划分确定第一数据集;第一终端130中第一加密模块可以基于第一数据集,通过第一安全算法确定第一安全数据集。进位计数制是指利用固定的数字符号和统一的规则来计数的方法。在一些实施例中,进位计数制方法可以包括二进制、三进制、七进制、八进制、十进制、十六进制、六十进制等中的一种或其任意组合。在一些实施例中,前缀划分方式可以将进制数划分为多个对应一个或多个数值的字符串。例如,数字5对应的二进制数为0101,通过前缀划分方式可以将二进制数0101划分为字符串列表:0101、010#、01##和0###,其中字符串010#可以包括0100和0101,分别对应数值4和5。在一些实施例中,第一数据集可以包括至少一个字符串,且至少一个字符串的其中一个对应的数值等于第一私有数据。在一些实施例中,第一终端130可以将确定的第一安全数据集发送至第二终端140。
步骤220,由第二终端将第二私有数据转换为第二安全数据集,并发送至第一终端。
第二私有数据为第二用户用以与其他用户(如第一用户)比较计算的个人隐私数据。例如,第二私有数据可以用于与第一用户的第一私有数据进行比较。在一些实施例中,第二私有数据可以包括整数、浮点数、字符数、布尔数等中的一种或其任意组合。在一些实施例中,第二私有数据可以由第二用户通过第二终端140输入。在一些实施例中,用户输入方式可以包括手写输入、打字输入、选择输入、扫描输入、语音输入等中的一种或其任意组合。在一些实施例中,第二私有数据可以由第二终端140从数据库150和/或服务器110中获取。例如,第二终端140可以通过网络120从第二用户的数据库中获取第二用户预先存储的第二私有数据。
在一些实施例中,第二安全数据集可以反映第二私有数据加密后的值。在一些实施例中,第二安全数据集可以包括至少两组与第二私有数据相关联的字符串的并集。其中,至少两组字符串的并集的其中一组中每个字符串对应的数值小于第二私有数据,另一组中每个字符串对应的数值大于第二私有数据。在一些实施例中,第二终端140可以通过第二安全算法将第二私有数据转换为第二安全数据集。在一些实施例中,第二终端140可以基于与第二私有数据相关联的第二数据集,通过第二安全算法将第二私有数据转换为第二安全数据集。具体地,第二终端140中第二计算模块可以将第二私有数据映射到整数域得到与第二私有数据相关联的第二整数数字,基于第二整数数字确定至少两组整数范围集,并通过前缀划分方式确定第二数据集;第二终端140中第二加密模块可以基于第二数据集,通过第二安全算法确定第二安全数据集。在一些实施例中,第二计算模块可以基于第二整数数字确定相应的最大整数和最小整数。在一些实施例中,第二计算模块可以基于第一整数数字与第二整数数字确定最大整数和最小整数。在一些实施例中,第二计算模块可以基于进位计数制确定与第一整数数字、第二整数数字相关联的最大整数和最小整数。在一些实施例中,第二计算模块可以基于第二整数数字、最大整数和最小整数确定至少两组整数范围集。在一些实施例中,至少两组整数范围集的其中一组的最大整数值小于第二整数数字,另一组的最小整数值大于第二整数数字。在一些实施例中,第二计算模块可以通过确定与第二整数数字的整数距离为1的两个整数数字确定至少两组整数范围集。整数距离可以反映两个整数之间的差值。在整数域中,两个整数数字的最小整数差值为1,即相邻两个整数之间的距离为1。基于与第二整数数字的整数距离为1的两个整数数字确定至少两组整数范围集,可以使得确定的整数范围集包含的数据更全面,提高两组私有数据计算的准确率。例如,若第二整数数字为6,根据其对应的四位二进制数0110确定最大四位二进制数为1111,其对应的整数数值为15,确定最小四位二进制数为0000,其对应的整数数值为0,因此可以确定最大整数为15、最小整数为0;第二计算模块可以确定与第二整数数字6整数距离为1的两个整数数字5和7,以此确定两组整数范围集[0,5]和[7,15]。若以6对应的三位二进制数110确定最大整数和最小整数,则确定整数范围集时将导致整数范围集包含的数据较少,在进行两组私有数据计算时对比数据较少、降低计算准确度,若以五位或更多位的二进制数确定最大整数将导致确定的整数范围集包含的数据量太大、增加数据计算的复杂度。在一些实施例中,通过前缀划分方式可以将整数范围集转换为字符串的并集。例如,通过二进制前缀划分方式,整数范围集[0,5]和[7,15]可以转换为两组二进制字符串的并集(00##,010#)和(0111,1###)。在一些实施例中,第二安全算法可以包括单向函数。在一些实施例中,第一安全算法和第二安全算法具有映射可交换性。例如,若单向函数满足Enc_a(Enc_b(D))==Enc_b(Enc_a(D)),其中a、b为单向函数的参数,D是映射前的原始输入,则第一安全算法可以为以a为参数的单向函数Enc_a(D),第二安全算法可以为以b为参数的单向函数Enc_b(D)。在一些实施例中,第二终端140可以将确定的第二安全数据集发送至第一终端130。
步骤230,比较第一安全数据集与第二安全数据集,根据比较结果确定第一私有数据和第二私有数据的大小。
在一些实施例中,第一终端130(如第一比较模块)和/或第二终端140(如第二比较模块)可以比较第一安全数据集与第二安全数据集,根据比较结果确定第一私有数据和第二私有数据的大小。在一些实施例中,第一终端130和/或第二终端140可以通过比较第一安全数据集与第二安全数据集是否存在交集,确定第一私有数据和第二私有数据的大小。具体地,第一终端130和/或第二终端140可以响应于第一安全数据集中的至少一个字符串与第二安全数据集至少两组字符串的并集的其中一组存在交集,确定第一私有数据小于第二私有数据;响应于第一安全数据集中的至少一个字符串与第二安全数据集至少两组字符串的并集的另一组存在交集,确定第一私有数据大于第二私有数据;响应于第一安全数据集与第二安全数据集不存在交集,确定第一私有数据和第二私有数据相等。
在一些实施例中,第一终端130和/或第二终端140可以通过比较与第一安全数据集相关联的第四安全数据集和与第二安全数据集相关联的第三安全数据集,确定第一私有数据和第二私有数据的大小。第三安全数据集可以反映第二私有数据二次加密后的数值。在一些实施例中,第一终端130中第一加密模块可以基于第二终端140发送的第二安全数据集,通过第一安全算法确定第三安全数据集。在一些实施例中,第三安全数据集可以包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于第二私有数据,另一组中每个字符串对应的数值大于第二私有数据。第四安全数据集可以反映第一私有数据二次加密后的数值。在一些实施例中,第二终端140中第二加密模块可以基于第一终端130发送的第一安全数据集,通过第二安全算法确定第四安全数据集。在一些实施例中,第四安全数据集可以包括至少一个字符串,至少一个字符串的其中一个对应的数值小于第一私有数据。具体地,第一终端130(如第一比较模块)和/或第二终端140(如第二比较模块)可以响应于第四安全数据集中的至少一个字符串与第三安全数据集中至少两组字符串的并集的其中一组存在交集,确定第一私有数据小于第二私有数据;响应于第四安全数据集中的至少一个字符串与第三安全数据集中至少两组字符串的并集的另一组存在交集,确定第一私有数据大于第二私有数据;响应于第三安全数据集与第四安全数据集不存在交集,确定第一私有数据和第二私有数据相等。在一些实施例中,第一终端130和/或第二终端140对第三安全数据集和第四安全数据集求交集时,可以对数据集中的字符串进行计算。
由于第一安全算法和第二安全算法具有映射可交换性,通过第一安全算法和第二安全算法确定的第一安全数据集和第四安全数据集相当于分别对第一私有数据的一次加密和二次加密,因此第一安全数据集和第四安全数据集对应的第一私有数据不变。同理地,第二安全数据集和第三安全数据集对应的第二私有数据也不变。
在一具体实施例中,假设第一私有数据对应的第一整数数字为5,第二私有数据对应的第二整数数字为6,由第一终端130基于二进制前缀划分方式确定的第一数据集可以为:0101、010#、01##和0###,通过以a为参数的单向函数确定的其对应的第一安全数据集可以为L1:Enc_a(L1);由第二终端140基于二进制前缀划分方式确定的第二数据集可以为L2:(00##,010#)和L3:(0111,1###),通过以b为参数的单向函数确定的其对应的第二安全数据集可以为:Enc_b(L2)和Enc_b(L3);由第一终端130基于第二安全数据集通过以a为参数的单向函数确定的第三安全数据集可以为:Enc_a(Enc_b(L2))和Enc_a(Enc_b(L3));由第二终端140基于第一安全数据集通过以b为参数的单向函数确定的其对应的第四安全数据集可以为:Enc_b(Enc_a(L1));对比第四安全数据集Enc_b(Enc_a(L1))和第三安全数据集的两个字符串的并集Enc_a(Enc_b(L2))和Enc_a(Enc_b(L3)),可以计算获得第四安全数据集Enc_b(Enc_a(L1))与第三安全数据集对应数值较小的字符串的并集Enc_a(Enc_b(L2))存在交集字符串“010#”,该字符串的并集中每个字符串对应的数据均小于第二整数数字(即小于第二私有数据),因此可以确定第一私有数据小于第二私有数据。
应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,步骤210中,第一私有数据可以转换为至少两组整数范围集,基于第一私有数据确定的第一安全数据集可以包括至少两组字符串的并集,且其中一组中每个字符串对应的数值小于第一私有数据,另一组中每个字符串对应的数值大于第一私有数据。此种情况下,基于第二私有数据确定的第二安全数据集包括至少一个字符串,且至少一个字符串的其中一个对应的数值小于或等于第二私有数据。又例如,步骤230中,第一安全数据集与第二安全数据集的比较可以由服务器110执行,并由服务器110将确定表示第一私有数据和第二私有数据大小的结果发送给第一终端和第二终端。再例如,第一安全算法和第二安全算法可以为任何具有映射可交换性的单向函数。
图3是根据本说明书的一些实施例所示的私有数据多方安全计算方法的示例性流程图。流程300将以具体的示例性实施例对本说明书提出的私有数据多方安全计算方法进行描述。
如图3所示,步骤301至步骤310可以由第一终端130执行。
在步骤301中,第一终端130中第一计算模块可以将第一私有数据映射到整数域,获得第一整数数字D1。步骤303中,第一计算模块可以通过二进制前缀划分方式将第一整数数字D1转换为字符串列表(即第一数据集)。在一些实施例中,该字符串列表可以包括一个或多个字符串。步骤305中,第一终端130中的第一加密模块可以基于步骤303获得的字符串列表,通过第一安全算法确定与第一私有数据相关联的第一安全数据集。
为更清楚的理解本说明书提供的私有数据多方安全计算方法,下述将以第一整数数字D1=5,第一安全算法为以a为参数的单向函数Enc_a(D)为例进行详细说明。具体地,第一计算模块可以通过二进制前缀划分方式将第一整数数字D1=5转换为二进制字符串列表L1:0101、010#、01##和0###(即第一数据集);第一加密模块可以使用以a为参数的单向函数Enc_a(D)对字符串列表L1进行映射,获得映射后的字符串集合Enc_a(L1)(即第一安全数据集)。步骤310中,第一终端130可以将第一安全数据集Enc_a(L1)发送至第二终端140。
步骤313至步骤320可以由第二终端140执行。
步骤313中,第二终端140的第二计算模块可以将第二私有数据映射到整数域,得到第二整数数字D2。步骤315中,第二计算模块可以将第二整数数字D2转换为与第二私有数据相关联的至少两组整数范围集。步骤317中,第二计算模块可以通过二进制前缀划分方式将至少两组整数范围集转换为至少两组字符串的并集(即第二数据集)。步骤319中,第二终端140中第二加密模块基于第二数据集,通过第二安全算法确定与第二私有数据相关联的第二安全数据集。
具体地,以第二整数数字D2=6,第二安全算法为以b为参数的单向函数Enc_b(D)为例。其中,Enc_a(Enc_b(D))==Enc_b(Enc_a(D))。在一些实施例中,第二计算模块可以基于第二整数数字确定最大整数和最小整数。例如,第二计算模块可以确定第二整数数字D2=6对应的最大整数15和最小整数0。第二计算模块可以确定与第二整数数字距离为1的两个整数5和7,并基于最大整数和最小整数确定与第一私有数据相关联的两组整数范围集[0,5]和[7,15]。然后,第二计算模块可以基于两组整数范围集通过二进制前缀划分方式确定两组字符串的并集L2:(00##,010#)和L3:(0111,1###)(即第二数据集)。第二终端140的第二加密模块可以使用以b为参数的单向函数Enc_b(D)分别对字符串并集L2和L3进行映射,获得映射后的字符串并集Enc_b(L2)和Enc_b(L3)(即第二安全数据集)。第二终端140可以将第二安全数据集Enc_b(L2)和Enc_b(L3)发送至第一终端130。
步骤323中,第一终端130可以通过第一安全算法将第二终端140发送的第二安全数据集转换为第三安全数据集。
在一些实施例中,第一加密模块可以使用以a为参数的单向函数对第二安全数据集Enc_b(L2)和Enc_b(L3)中每一个字符串进行映射,获得第三安全数据集Enc_a(Enc_b(L2))和Enc_a(Enc_b(L3))。在步骤327中,第一终端130可以将确定的第三安全数据集发送至第二终端140。
步骤325中,第二终端140可以通过第二安全算法将第一终端130发送的第一安全数据集转换为第四安全数据集。
在一些实施例中,第二加密模块可以使用以b为参数的单向函数对第一安全数据集Enc_a(L1)进行映射,获得第四安全数据集Enc_b(Enc_a(L1))。在一些实施例中,第二终端140可以将第四安全数据集发送至第一终端130。
步骤329中,比较第三安全数据集和第四安全数据集,根据比较结果确定第一私有数据和第二私有数据的大小。
在一些实施例中,第二终端140可以求第三安全数据集与第四安全数据集的交集,根据计算结果确定第一私有数据和第二私有数据的大小。具体地,第二终端140中第二比较模块可以对第四安全数据集Enc_b(Enc_a(L1))和第三安全数据集的其中一个字符串的并集Enc_a(Enc_b(L2))求交集,如果两组数据集中有相同的字符串,表示与第一私有数据相关联的字符串在与第二私有数据相关联的字符串的并集(00##,010#)中,字符串的并集(00##,010#)中每个字符串对应的整数数值均小于第二整数数字D2,即D1<D2,则第一私有数据小于第二私有数据。第二比较模块对第四安全数据集Enc_b(Enc_a(L1))和第三安全数据集的另一个字符串的并集Enc_a(Enc_b(L3))求交集,如果两组数据集中有相同的字符串,表示与第一私有数据相关联的字符串在与第二私有数据相关联的字符串的并集(0111,1###)中,字符串的并集(0111,1###)对应的整数数值均大于D2,即D1>D2,则第一私有数据大于第二私有数据。若Enc_a(Enc_b(L2))和Enc_a(Enc_b(L3))与Enc_b(Enc_a(L1))均没有交集,表示与第一私有数据相关联的字符串不在与第二私有数据相关联的两组字符串的并集中,由于两组字符串的并集对应的两组整数范围集中的数值较小的一组的最大值小于第二整数数字,数字较大的一组的最小值大于第二整数数字,且所述最大值和最小值与第二整数数字的距离为1,1为整数中的最小距离,因此D1=D2,即第一私有数据等于第二私有数据。
在一些实施例中,步骤329比较第三安全数据集和第四安全数据集,根据比较结果确定第一私有数据和第二私有数据的大小,可以由第一终端130执行。在一些实施例中,第一终端130和/或第二终端140对第三安全数据集和第四安全数据集求交集时,可以对数据集中的字符串进行计算。例如,以上述D1=5和D2=6的数值为例,第一比较模块和/或第二比较模块可以直接比较第四安全数据集的字符串“010#”和第三安全数据集中的字符串的并集(00##,010#)中的字符串“010#”,两个字符串相同,即表示第四安全数据集与第三安全数据集数值较小的字符串的并集存在交集,即第一私有数据小于第二私有数据。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,步骤301-步骤310与步骤313-步骤320的顺序是可以互换的。又例如,步骤315中可以将第二整数数字通过二进制前缀划分方式划分为包含至少一个字符串的字符串列表。再例如,第一终端130中步骤301-步骤310、步骤323和步骤327可以由第二终端140执行,相应地第二终端140中的步骤可以由第一终端130执行。
本说明书实施例可能带来的有益效果包括但不限于:(1)本说明书通过将两组私有数据转换为数据范围,对数据范围进行比较来确定两组私有数据的大小,相较于传统的基于混淆电路的数据比较方式,简化了数据比较的过程、降低了操作复杂度、提升了数据比较的计算性能;(2)本说明书通过前缀划分的方式将整数数字转换为字符串列表,使得数据比较时,可以直接对字符串进行比较,减少了数据比较次数,提高了比较的效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (21)
1.一种私有数据多方安全计算方法,包括:
由第一终端将第一私有数据转换为第一安全数据集,并将所述第一安全数据集发送至第二终端,所述第一安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;
由所述第二终端将第二私有数据转换为第二安全数据集,并将所述第二安全数据集发送至所述第一终端,所述第二安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;
比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
2.根据权利要求1所述的私有数据多方安全计算方法,由所述第一终端确定所述第一安全数据集包括:
获取第一私有数据,并将所述第一私有数据转换为第一数据集,所述第一数据集包括至少一个字符串;
基于所述第一数据集,通过第一安全算法确定第一安全数据集。
3.根据权利要求2所述的私有数据多方安全计算方法,所述将所述第一私有数据转换为第一数据集包括:
将所述第一私有数据映射到整数域,确定与所述第一私有数据相关联的第一整数数字;
通过进位计数制方法将所述第一整数数字转换为进制数;
基于所述进制数,通过前缀划分方式确定第一数据集。
4.根据权利要求3所述的私有数据多方安全计算方法,所述进位计数制方法至少包括二进制计数法,所述前缀划分方式至少包括二进制前缀划分法。
5.根据权利要求1所述的私有数据多方安全计算方法,由所述第二终端确定所述第二安全数据集包括:
获取第二私有数据,并将所述第二私有数据转换为第二数据集;
基于所述第二数据集,通过第二安全算法确定第二安全数据集。
6.根据权利要求5所述的私有数据多方安全计算方法,所述将所述第二私有数据转换为第二数据集包括:
将所述第二私有数据映射到整数域,确定与所述第二私有数据相关联的第二整数数字;
基于所述第二整数数字,确定至少两组整数范围集,其中一组的最大整数值小于所述第二整数数字,另一组的最小整数值大于所述第二整数数字;
基于所述至少两组整数范围集,通过前缀划分方式确定第二数据集,所述第二数据集包括至少两组字符串的并集。
7.根据权利要求5所述的私有数据多方安全计算方法,所述第一安全算法和所述第二安全算法具有映射可交换性。
8.根据权利要求7所述的私有数据多方安全计算方法,所述比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小包括:
由所述第一终端,基于所述第二安全数据集通过所述第一安全算法确定第三安全数据集,并将所述第三安全数据集发送至所述第二终端,所述第三安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;
由所述第二终端,基于所述第一安全数据集通过所述第二安全算法确定第四安全数据集,并将所述第四安全数据集发送至所述第一终端,所述第四安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;
比较所述第三安全数据集与所述第四安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
9.根据权利要求8所述的私有数据多方安全计算方法,所述比较所述第三安全数据集与所述第四安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小包括:
响应于所述第三安全数据集与所述第四安全数据集存在交集,确定所述第一私有数据和所述第二私有数据不相等;
响应于所述第三安全数据集与所述第四安全数据集不存在交集,确定所述第一私有数据和所述第二私有数据相等。
10.根据权利要求9所述的私有数据多方安全计算方法,所述响应于所述第三安全数据集与所述第四安全数据集存在交集,确定所述第一私有数据和所述第二私有数据不相等包括:
响应于所述第四安全数据集中的至少一个字符串与所述第三安全数据集中至少两组字符串的并集的其中一组存在交集,确定所述第一私有数据小于所述第二私有数据;
响应于所述第四安全数据集中的至少一个字符串与所述第三安全数据集中至少两组字符串的并集的另一组存在交集,确定所述第一私有数据大于所述第二私有数据。
11.一种私有数据多方安全计算系统,至少包括第一终端和第二终端;
所述第一终端用于将第一私有数据转换为第一安全数据集,并将所述第一安全数据集发送至所述第二终端,所述第一安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;
所述第二终端用于将第二私有数据转换为第二安全数据集,并将所述第二安全数据集发送至所述第一终端,所述第二安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;以及
所述第一终端和所述第二终端中的至少一个用于比较所述第一安全数据集与所述第二安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
12.根据权利要求11所述的私有数据多方安全计算系统,所述第一终端包括第一计算模块和第一加密模块;
所述第一计算模块用于获取第一私有数据,并将所述第一私有数据转换为第一数据集,所述第一数据集包括至少一个字符串;
所述第一加密模块用于基于所述第一数据集,通过第一安全算法确定第一安全数据集。
13.根据权利要求12所述的私有数据多方安全计算系统,所述第一计算模块还用于:
将所述第一私有数据映射到整数域,确定与所述第一私有数据相关联的第一整数数字;
通过进位计数制方法将所述第一整数数字转换为进制数;
基于所述进制数,通过前缀划分方式确定第一数据集。
14.根据权利要求13所述的私有数据多方安全计算系统,所述进位计数制方法至少包括二进制计数法,所述前缀划分方式至少包括二进制前缀划分法。
15.根据权利要求11所述的私有数据多方安全计算系统,所述第二终端包括第二计算模块和第二加密模块;
所述第二计算模块用于获取第二私有数据,并将所述第二私有数据转换为第二数据集;
所述第二加密模块用于基于所述第二数据集,通过第二安全算法确定第二安全数据集。
16.根据权利要求15所述的私有数据多方安全计算系统,所述第二计算模块还用于:
将所述第二私有数据映射到整数域,确定与所述第二私有数据相关联的第二整数数字;
基于所述第二整数数字,确定至少两组整数范围集,其中一组的最大整数值小于所述第二整数数字,另一组的最小整数值大于所述第二整数数字;
基于所述至少两组整数范围集,通过前缀划分方式确定第二数据集,所述第二数据集包括至少两组字符串的并集。
17.根据权利要求15所述的私有数据多方安全计算系统,所述第一安全算法和所述第二安全算法具有映射可交换性。
18.根据权利要求17所述的私有数据多方安全计算系统,所述第一加密模块还用于基于所述第二安全数据集通过所述第一安全算法确定第三安全数据集,并将所述第三安全数据集发送至所述第二终端,所述第三安全数据集包括至少两组字符串的并集,其中一组中每个字符串对应的数值小于所述第二私有数据,另一组中每个字符串对应的数值大于所述第二私有数据;
所述第二加密模块还用于基于所述第一安全数据集通过所述第二安全算法确定第四安全数据集,并将所述第四安全数据集发送至所述第一终端,所述第四安全数据集包括至少一个字符串,所述至少一个字符串的其中一个对应的数值等于所述第一私有数据;以及
所述第一终端和所述第二终端中的至少一个还用于比较所述第三安全数据集与所述第四安全数据集,根据比较结果确定所述第一私有数据和所述第二私有数据的大小。
19.根据权利要求18所述的私有数据多方安全计算系统,所述第一终端还包括第一比较模块,以及所述第二终端还包括第二比较模块,所述第一比较模块和所述第二比较模块中的至少一个用于:
响应于所述第三安全数据集与所述第四安全数据集存在交集,确定所述第一私有数据和所述第二私有数据不相等;
响应于所述第三安全数据集与所述第四安全数据集不存在交集,确定所述第一私有数据和所述第二私有数据相等。
20.根据权利要求19所述的私有数据多方安全计算系统,所述第一比较模块和所述第二比较模块中的至少一个进一步用于:
响应于所述第四安全数据集中的至少一个字符串与所述第三安全数据集中至少两组字符串的并集的其中一组存在交集,确定所述第一私有数据小于所述第二私有数据;
响应于所述第四安全数据集中的至少一个字符串与所述第三安全数据集中至少两组字符串的并集的另一组存在交集,确定所述第一私有数据大于所述第二私有数据。
21.一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1~10任一项所述的私有数据多方安全计算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290265.9A CN111046409B (zh) | 2019-12-16 | 2019-12-16 | 一种私有数据多方安全计算方法和系统 |
PCT/CN2020/124139 WO2021120869A1 (zh) | 2019-12-16 | 2020-10-27 | 一种私有数据多方安全计算方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290265.9A CN111046409B (zh) | 2019-12-16 | 2019-12-16 | 一种私有数据多方安全计算方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111046409A true CN111046409A (zh) | 2020-04-21 |
CN111046409B CN111046409B (zh) | 2021-04-13 |
Family
ID=70236567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911290265.9A Active CN111046409B (zh) | 2019-12-16 | 2019-12-16 | 一种私有数据多方安全计算方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111046409B (zh) |
WO (1) | WO2021120869A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021120869A1 (zh) * | 2019-12-16 | 2021-06-24 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1683298B1 (en) * | 2003-11-03 | 2008-09-17 | Koninklijke Philips Electronics N.V. | Method and device for efficient multiparty multiplication |
US20110271107A1 (en) * | 2010-05-03 | 2011-11-03 | Sap Ag | System and Method for Comparing Private Data |
CN102984156A (zh) * | 2012-11-30 | 2013-03-20 | 无锡赛思汇智科技有限公司 | 一种可验证的分布式隐私数据比较与排序方法及装置 |
CN103248492A (zh) * | 2013-05-23 | 2013-08-14 | 清华大学 | 可验证的分布式隐私数据比较与排序方法 |
CN109992977A (zh) * | 2019-03-01 | 2019-07-09 | 西安电子科技大学 | 一种基于安全多方计算技术的数据异常点清洗方法 |
CN110019283A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 极值确定方法及装置、电子设备、存储介质 |
CN110299987A (zh) * | 2019-06-24 | 2019-10-01 | 暨南大学 | 一种基于同态加密的百万富翁问题解决方法 |
CN110445797A (zh) * | 2019-08-15 | 2019-11-12 | 湖北工业大学 | 一种具有隐私保护的两方多维数据比较方法和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103117849B (zh) * | 2013-02-04 | 2016-01-20 | 南京信息工程大学 | 一种基于量子机制的多方私有比较方法 |
WO2016122513A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Data analytics on encrypted data elements |
CN107864071B (zh) * | 2017-11-02 | 2021-06-22 | 江苏物联网研究发展中心 | 一种面向主动安全的数据动态采集方法、装置及系统 |
CN109104413B (zh) * | 2018-07-17 | 2020-07-31 | 中国科学院计算技术研究所 | 用于安全多方计算的私有数据求交集的方法及验证方法 |
CN110399735A (zh) * | 2019-06-21 | 2019-11-01 | 深圳壹账通智能科技有限公司 | 加密数据大小关系证明方法、装置、设备及存储介质 |
CN111046409B (zh) * | 2019-12-16 | 2021-04-13 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和系统 |
-
2019
- 2019-12-16 CN CN201911290265.9A patent/CN111046409B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/124139 patent/WO2021120869A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1683298B1 (en) * | 2003-11-03 | 2008-09-17 | Koninklijke Philips Electronics N.V. | Method and device for efficient multiparty multiplication |
US20110271107A1 (en) * | 2010-05-03 | 2011-11-03 | Sap Ag | System and Method for Comparing Private Data |
CN102984156A (zh) * | 2012-11-30 | 2013-03-20 | 无锡赛思汇智科技有限公司 | 一种可验证的分布式隐私数据比较与排序方法及装置 |
CN103248492A (zh) * | 2013-05-23 | 2013-08-14 | 清华大学 | 可验证的分布式隐私数据比较与排序方法 |
CN110019283A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 极值确定方法及装置、电子设备、存储介质 |
CN109992977A (zh) * | 2019-03-01 | 2019-07-09 | 西安电子科技大学 | 一种基于安全多方计算技术的数据异常点清洗方法 |
CN110299987A (zh) * | 2019-06-24 | 2019-10-01 | 暨南大学 | 一种基于同态加密的百万富翁问题解决方法 |
CN110445797A (zh) * | 2019-08-15 | 2019-11-12 | 湖北工业大学 | 一种具有隐私保护的两方多维数据比较方法和系统 |
Non-Patent Citations (3)
Title |
---|
HSIAO-YING LIN等: "《ACNS 2005: Applied Cryptography and Network Security》", 10 June 2005 * |
MICHAEL J等: "《EUROCRYPT 2004: Advances in Cryptology - EUROCRYPT》", 6 May 2004 * |
查俊等: "姚氏百万富翁问题的高效解决方案", 《计算机工程》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021120869A1 (zh) * | 2019-12-16 | 2021-06-24 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111046409B (zh) | 2021-04-13 |
WO2021120869A1 (zh) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3701466B1 (en) | Blockchain member management data processing methods, apparatuses, servers, and systems | |
US10778410B2 (en) | Homomorphic data encryption method and apparatus for implementing privacy protection | |
Jain et al. | Differential privacy: its technological prescriptive using big data | |
US9229997B1 (en) | Embeddable cloud analytics | |
KR102499076B1 (ko) | 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치 | |
CN108462689A (zh) | 用于远程sgx飞地认证的技术 | |
CN111695675A (zh) | 联邦学习模型训练方法及相关设备 | |
WO2021155721A1 (zh) | 业务处理方法及装置、电子设备、存储介质 | |
US20180101688A1 (en) | Trust-enhanced attribute-based encryption | |
CN112988774B (zh) | 一种基于大数据采集的用户信息更新方法及信息服务器 | |
WO2017097159A1 (zh) | 一种随机字符串生成方法及装置 | |
CN111191255B (zh) | 信息加密处理的方法、服务器、终端、设备以及存储介质 | |
CN112152787A (zh) | 用于后量子密码学安全的基于哈希的签名和验证的消息索引感知多哈希加速器 | |
Lakhan et al. | Hybrid workload enabled and secure healthcare monitoring sensing framework in distributed fog-cloud network | |
CN111046409B (zh) | 一种私有数据多方安全计算方法和系统 | |
CN111339784B (zh) | 一种新话题的自动挖掘方法和系统 | |
US20230403254A1 (en) | Decentralized identifier determination by a registry operator or registrar | |
CN111274348A (zh) | 服务特征数据提取方法、装置及电子设备 | |
US20140298455A1 (en) | Cryptographic mechanisms to provide information privacy and integrity | |
CN110197078B (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN111737587B (zh) | 设备操作方法、装置、电子设备和计算机可读介质 | |
JP2023094555A (ja) | データ処理装置及びデータ処理方法 | |
KR20220007007A (ko) | 법률 컨텐츠 제공을 위한 클라이언트 단말과 프로바이더 단말 간의 매칭 방법 | |
CN113051406A (zh) | 一种人物属性预测方法、装置、服务器及可读存储介质 | |
WO2019196721A1 (en) | Methods and apparatuses for processing data requests and data protection |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028426 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |