CN112861175A - 一种数据处理方法、装置和用于数据处理的装置 - Google Patents
一种数据处理方法、装置和用于数据处理的装置 Download PDFInfo
- Publication number
- CN112861175A CN112861175A CN202110150821.3A CN202110150821A CN112861175A CN 112861175 A CN112861175 A CN 112861175A CN 202110150821 A CN202110150821 A CN 202110150821A CN 112861175 A CN112861175 A CN 112861175A
- Authority
- CN
- China
- Prior art keywords
- index
- result
- intersection
- integer
- privacy
- 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
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置。其中的方法包括:获取多个参与方各自持有的索引字符串集合;按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。本发明实施例可以在多方安全计算系统中实现对索引字符串进行隐私求交,得到准确的隐私求交结果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和用于数据处理的装置。
背景技术
MPC(Secure Muti-Party Computation,多方安全计算)是一种保护数据隐私安全的算法。多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协作计算,得到计算结果。
基于多方安全计算系统,可以在不泄露参与方原始数据的基础上对多个参与方各自持有的集合进行隐私求交,得到隐私保护集合交集。
在多方安全计算系统中,隐私求交算法通常基于判断两个元素的索引值是否相等来进行,通过密码学的协议可以实现判断两个整数元素是否相等。然而,在对用户信息的隐私求交场景中,用作匹配的索引值可以是用户ID之类的长字符串。对于长字符串的索引,如果将其编码为大整数,再判断是否相等,现有的密码学协议实现效率较低,无法满足实际场景的要求。
发明内容
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置,可以在多方安全计算系统中实现对索引字符串进行隐私求交,得到准确的隐私求交结果。
为了解决上述问题,本发明实施例公开了一种数据处理方法,所述方法应用于安全计算引擎,所述方法包括:
获取多个参与方各自持有的索引字符串集合;
按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
可选地,所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果;
从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;
按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果;
从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串;
以此类推,直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
可选地,所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
按照预设编码方式,将每个参与方的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到每个参与方的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1;
对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果;
将与操作结果为1的索引字符串作为隐私求交结果。
可选地,所述按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之后,所述方法还包括:
若存在长度小于k的子字符串,则用预设符号将长度小于k的子字符串补足为长度为k的子字符串。
可选地,所述得到所述多个参与方各自持有的索引字符串集合的隐私求交结果之后,所述方法还包括:
接收结果获取方发送的结果获取请求;
在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
可选地,所述按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之前,所述方法还包括:
根据每个参与方的索引字符串集合的特征以及系统的整数长度范围,确定预设长度k,所述每个参与方的索引字符串集合的特征包括:每个参与方的索引字符串集合中索引字符串的数据量、索引字符串的编码方式、以及索引字符串的最大长度中的至少一种。
可选地,所述索引字符串集合中的索引字符串包括用户标识、身份证标识中的至少一种。
另一方面,本发明实施例公开了一种数据处理装置,所述装置应用于安全计算引擎,所述装置包括:
字符串获取模块,用于获取多个参与方各自持有的索引字符串集合;
字符串分割模块,用于按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
隐私求交模块,用于获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
可选地,所述隐私求交模块,包括:
第一编码子模块,用于按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
第一求交子模块,用于基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果;
移除子模块,用于从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;
所述第一编码子模块,还用于按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
所述第一求交子模块,还用于基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果;
所述移除子模块,还用于从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串;
迭代子模块,用于迭代直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
可选地,所述隐私求交模块,包括:
第二编码子模块,用于按照预设编码方式,将每个参与方的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数;
第二求交子模块,用于基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到每个参与方的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1;
与操作子模块,用于对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果;
结果确定子模块,用于将与操作结果为1的索引字符串作为隐私求交结果。
可选地,所述装置还包括:
补足模块,用于若存在长度小于k的子字符串,则用预设符号将长度小于k的子字符串补足为长度为k的子字符串。
可选地,所述装置还包括:
接收请求模块,用于接收结果获取方发送的结果获取请求;
结果发送模块,用于在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
可选地,所述装置还包括:
参数确定模块,用于根据每个参与方的索引字符串集合的特征以及系统的整数长度范围,确定预设长度k,所述每个参与方的索引字符串集合的特征包括:每个参与方的索引字符串集合中索引字符串的数据量、索引字符串的编码方式、以及索引字符串的最大长度中的至少一种。
可选地,所述索引字符串集合中的索引字符串包括用户标识、身份证标识中的至少一种。
再一方面,本发明实施例公开了一种用于数据处理的装置,所述装置应用于安全计算引擎,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取多个参与方各自持有的索引字符串集合;
按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
可选地,所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果;
从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;
按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果;
从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串;
以此类推,直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
可选地,所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
按照预设编码方式,将每个参与方的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到每个参与方的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1;
对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果;
将与操作结果为1的索引字符串作为隐私求交结果。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
若存在长度小于k的子字符串,则用预设符号将长度小于k的子字符串补足为长度为k的子字符串。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收结果获取方发送的结果获取请求;
在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据每个参与方的索引字符串集合的特征以及系统的整数长度范围,确定预设长度k,所述每个参与方的索引字符串集合的特征包括:每个参与方的索引字符串集合中索引字符串的数据量、索引字符串的编码方式、以及索引字符串的最大长度中的至少一种。
可选地,所述索引字符串集合中的索引字符串包括用户标识、身份证标识中的至少一种。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
本发明实施例包括以下优点:
本发明实施例通过将索引字符串分割为若干个子字符串,基于每个参与方的子字符串对应的整数编码结果,对所述多个参与方各自持有的索引字符串集合进行隐私求交,得到隐私求交结果。本发明实施例将长字符串的隐私求交过程转换为对短字符串对应的整数编码结果进行隐私求交的过程,解决了多方安全计算系统中无法对长字符串进行隐私求交的问题,实现了可以在多方安全计算系统中对长字符串索引的数据进行隐私求交,在保护索引字符串隐私安全的基础上,提高隐私求交结果的准确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理装置实施例的结构框图;
图3是本发明的一种用于数据处理的装置800的框图;
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,所述方法应用于安全计算引擎,所述方法具体可以包括如下步骤:
步骤101、获取多个参与方各自持有的索引字符串集合;
步骤102、按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
步骤103、获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
本发明提供的数据处理方法可应用于安全计算引擎,所述安全计算引擎可以为多方安全计算系统中的安全计算引擎。
多方安全计算系统是一种保护数据隐私安全的计算系统。本发明实施例对所述多方安全计算系统采用的安全计算协议不做限制,例如,所述多方安全计算系统可以基于多方安全计算MPC协议,在基于MPC协议的多方安全计算系统中,多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协同计算得到计算结果,参与计算的数据、中间结果、以及最终结果可以为密文。当然,所述多方安全计算系统还可以基于秘密分享、半同态、不经意传输等技术实现的多方安全计算协议。
所述安全计算引擎可以通过预设数量的计算节点对计算任务进行协同计算,所述计算任务用于对输入数据进行数据处理,所述计算任务包括但不限于:加、减、乘、除等数字计算,以及与、或、非等逻辑计算等。
在本发明实施例中,所述安全计算引擎可以对多个参与方各自持有的索引字符串集合进行隐私求交,得到隐私求交结果。其中,多个参与方包括两个参与方或者两个以上参与方。为便于描述,本发明实施例中以两个参与方为例进行说明,两个以上参与方的场景相互参照即可。
本发明实施例提供的数据处理方法可应用于大数据共享场景,通过对多个参与方各自持有的索引字符串集合进行隐私求交,可以在避免敏感数据存在被泄露风险的基础上,实现多方数据的融合,进而可以对多方产生的业务数据执行汇集、处理和分析等操作,解决信息孤岛,提高多个网络服务中的海量级业务数据的应用价值。
在本发明的一种可选实施例中,所述索引字符串集合中的索引字符串可以包括但不限于用户标识、身份证标识中的至少一种。
所述索引字符串集合中的索引字符串可以为长字符串,在多方安全计算系统中,以字符串作为索引进行隐私求交,得到隐私保护集合交集,可以在不泄露参与方原始数据的情况下得到多方数据的交集。例如,在对用户信息的隐私求交场景中,用作匹配的索引字符串可以是用户标识(如用户ID)、身份证标识(如身份证号)之类的长字符串。
在本发明实施例中,索引字符串可以为密文。
在本发明的一个示例中,以两个参与方为例,假设参与方A持有的索引字符串集合为{str1,str2,str3,str4},参与方B持有的索引字符串集合为{str5,str6,str7,str8}。
本发明实施例在获取参与方A和参与方B各自持有的索引字符串集合之后,按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,并且保证不同参与方的索引字符串中相同下标的子字符串的长度相等。例如,以长度k为单位,将参与方A的索引字符串集合中的索引字符串str1分割为str1=a1a2a3…am1,其中,子字符串a1、a2、…am1的长度均等于或小于k。同样地,将索引字符串str2分割为str2=b1b2b3…bm2,索引字符串str3分割为str3=c1c2c3…cm3,索引字符串str4分割为str4=d1d2d3…dm4。
采用同样的方法,将参与方B的索引字符串集合中的索引字符串str5分割为str5=e1e2e3…en1,其中,子字符串e1、e2、…en1的长度均等于或小于k。同样地,将索引字符串str6分割为str6=f1f2f3…fn2,索引字符串str7分割为str7=g1g2g3…gn3,索引字符串str8分割为str8=h1h2h3…hn4。
在该示例中,相同下标的子字符串的长度相等,也即,子字符串a1、b1、c1、d1、e1、f1、g1、h1的长度相等,子字符串a2、b2、c2、d2、e2、f2、g2、h2的长度相等,子字符串a3、b3、c3、d3、e3、f3、g3、h3的长度相等,以此类推。
在本发明的一种可选实施例中,所述按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之后,所述方法还可以包括:
若存在长度小于k的子字符串,则用预设符号将长度小于k的子字符串补足为长度为k的子字符串。
在本发明实施例中,可以将各个索引字符串分割为数量相等的子字符串,这样,在索引字符串的长度不相等时,将存在一个或多个索引字符串的最后一个子字符串的长度小于k的情况。一个示例中,假设k=3,也即k表示3个字符的长度。如果某个索引字符串的长度为12,则该索引字符串正好可以分割为4个长度为3的子字符串。如果某个索引字符串的长度为11,则该索引字符串也可以分割为4个子字符串,前3个子字符串的长度为3,第4个子字符串的长度为2。在这种情况下,可以用预设符号将最后一个子字符串的长度补足为3。例如,假设最后一个子字符串为“a5”,且预设符号为“-”,则用预设符号“-”补足之后,最后一个字符串为“a5-”。又如,某个索引字符串的长度为8,则该索引字符串可以分割为3个子字符串,前2个子字符串的长度为3,第3个子字符串的长度为2。在这种情况下,可以用预设符号将第3个子字符串的长度补足为3。此外,还可以用预设符号补足第4个长度为3的子字符串,也即,第4个子字符串为“---”。
需要说明的是,本发明实施例对所述预设符号不做限制,例如,所述预设符号可以为所述多个参与方的索引字符串中均未出现过的字符。或者,所述预设符号还可以为预先设置的某个特殊符号等。
接下来,本发明实施例获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
具体地,本发明实施例可以按照预设编码方式,对每个参与方的子字符串进行整数编码,得到每个参与方的子字符串对应的整数编码结果,并且基于整数的隐私求交协议,对每个参与方的子字符串对应的整数编码结果进行隐私求交。其中,整数的隐私求交协议,指基于密码学协议对整数相等进行判断,以得到整数的隐私求交结果。本发明实施例通过将长字符串(索引字符串)分割为若干短字符串(子字符串),基于子字符串的整数编码结果进行隐私求交,实现对多个参与方各自持有的索引字符串集合进行隐私求交,解决了多方安全计算系统中无法对长字符串进行隐私求交的问题。
需要说明的是,在索引字符串为密文的情况下,可以将索引字符串分割为密文的子字符串,在对密文的子字符串进行整数编码时,可以编码得到密文的整数编码结果。基于密文的整数编码结果进行隐私求交时,可以采用密文的比较方法,判断密文的整数是否相等,以得到隐私求交结果。
进一步地,在对子字符串进行整数编码时,可以将不同的子字符串编码为不同的整数,以避免将多个子字符串编码为同一个整数导致隐私求交结果出现错误的情况发生。
在实际应用中,如果将长字符串截断后通过散列函数(哈希函数)映射到较短的整数上,例如,对于256位的长字符串,可以截取前32位映射到int32类型的整数上,再用密码学协议对整数相等进行判断,进而实现隐私求交。但是将长字符串截断后通过散列函数(哈希函数)映射到较短的整数,在数据量较大时无法避免出现哈希冲突,即将多个长字符串映射到同一个整数上,使得隐私求交的结果出现错误。
本发明实施例按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,而不是对长字符串进行截断,也不基于散列函数的以字符串为索引的隐私求交协议,因此可以避免数据量较大时出现哈希冲突的问题,在实现对长字符串进行隐私求交的基础上,提高隐私求交结果的准确性。
在具体实施中,k值的选择对计算隐私求交结果的收敛速度和准确性都有影响,如果k值很小,每次对子字符串隐私求交之后大部分结果仍在交集之中,将导致结果收敛较慢,甚至在结束时导致结果错误。通过增大k值,可以加快收敛速度以及减小错误发生的概率。因此,在对索引字符串进行分割之前,可以根据实际情况选择合适的预设长度k。
在本发明的一种可选实施例中,所述按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之前,所述方法还可以包括:
根据每个参与方的索引字符串集合的特征以及系统的整数长度范围,确定预设长度k,所述每个参与方的索引字符串集合的特征包括:每个参与方的索引字符串集合中索引字符串的数据量、索引字符串的编码方式、以及索引字符串的最大长度中的至少一种。
本发明实施例根据每个参与方的索引字符串集合的特征以及系统的整数长度范围确定参数k,以选取合适的预设长度k。
在具体实施中,k值的下界受限于索引字符串集合的大小,也即,k值的下界可以由每个参与方的索引字符串集合中索引字符串的数据量所确定。k值的上界受限于每个参与方的索引字符串集合中索引字符串的编码方式、索引字符串的最大长度、以及系统的整数长度范围。
一个示例中,对于支持int64的多方安全计算系统,采用常用的ASCII(AmericanStandard Code for Information Interchange,美国信息交换标准代码)编码方式(用7位编码一个字符),则k的最小值可以为1,最大值不能超过
本发明实施例对多个参与方各自持有的索引字符串集合进行隐私求交的方案可以包括串行实现方案和并行实现方案。
串行实现方案
在串行实现方案中,在步骤102按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之后,可以通过串行方式对每个参与方的子字符串进行整数编码,以及进行隐私求交。
在本发明的一种可选实施例中,步骤103所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
步骤S11、按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
步骤S12、基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果;
步骤S13、从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;
步骤S14、按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
步骤S15、基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果;
步骤S16、从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串;
步骤S17、以此类推,直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
在串行实现方案中,首先按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数。
例如,对于参与方A持有的索引字符串集合{str1,str2,str3,str4},以及参与方B持有的索引字符串集合{str5,str6,str7,str8},首先,按照预设编码方式将第一个子字符串a1、b1、c1、d1、e1、f1、g1、h1编码为整数,得到参与方A第一轮的整数编码结果和参与方B第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数。
需要说明的是,本发明实施例对预设编码方式不做限制,所述预设编码方式包括但不限于ASCII编码、UTF-8(Universal Character Set/Unicode TransformationFormat,8位元)编码、GBK(Chinese Internal Code Specification,汉字内码扩展规范)编码等。
然后,基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果。
接下来,从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;之后,再按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数。再基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果,并且从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串。以此类推,直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,停止迭代,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
下面通过一个具体示例说明本发明的串行实现方案。
示例一
参与方A的索引字符串集合ID_A为{0a5,3ba,adf,a04,f54,f92},参与方B的索引字符串集合ID_B为{011,0a5,730,a64,fa,f92},现需要对ID_A和ID_B进行隐私求交。
该示例中以预设长度k=1为例,也即,将各索引字符串分割为长度为1的子字符串。例如,ID_A中的索引字符串“0a5”可以分割为如下子字符串:{0,a,5}。索引字符串“3ba”可以分割为如下子字符串:{3,b,a}。以此类推。参见表1,示出了示例一中参与方A和参与方B分别对应的子字符串。
表1
如表1所示,由于参与方B的索引字符串集合ID_B中索引字符串“fa”的长度为2,分割后可以得到如下子字符串{f,a}。其余索引字符串的长度均为3,可以分割为3个子字符串。为了在隐私求交过程中便于对各索引字符串的相应子字符串进行比对,本发明实施例对索引字符串“fa”使用预设符号进行补足,如使用预设符号“-”对索引字符串“fa”进行补足。预设符号“-”在参与方A和参与方B的索引字符串中均未出现。
按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数。本发明实施例中均以ASCII编码为例。
在该示例中,参与方A的所有索引字符串的第一个子字符串包括:{0,3,a,a,f,f}。按照ASCII编码方式将参与方A的所有索引字符串的第一个子字符串编码为整数,可以得到参与方A第一轮的整数编码结果为{48,51,97,97,102,102},其中,子字符串“0”编码为整数48,子字符串“3”编码为整数51,子字符串“a”编码为整数97,子字符串“f”编码为整数102。
参与方B的所有索引字符串的第一个子字符串包括:{0,0,7,a,f,f}。按照ASCII编码方式将参与方B的所有索引字符串的第一个子字符串编码为整数,可以得到参与方B第一轮的整数编码结果为{48,48,55,97,102,102}。其中,子字符串“0”编码为整数48,子字符串“7”编码为整数55,子字符串“a”编码为整数97,子字符串“f”编码为整数102。
基于整数的隐私求交协议,对参与方A第一轮的整数编码结果和参与方B第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果。也即,计算{51,48,97,97,102,102}与{55,55,48,97,102,102}的交集,可以得到第一轮的交集结果为{48,97,102}。其中,整数48对应子字符串“0”,整数97对应子字符串“a”,整数102对应子字符串“f”。因此,第一轮的交集结果为{0,a,f}。
参与方A的所有索引字符串的第一个子字符串包括:{0,3,a,a,f,f}。其中,子字符串“3”不在第一轮的交集结果{0,a,f}中,因此,从参与方A的索引字符串集合中移除以子字符串“3”为第一个子字符串的索引字符串,也即,从ID_A中移除索引字符串“3ba”。参与方B的所有索引字符串的第一个子字符串包括:{0,0,7,a,f,f}。其中,子字符串“7”不在第一轮的交集结果{0,a,f}中,因此,从参与方B的索引字符串集合中移除以子字符串“7”为第一个子字符串的索引字符串,也即,从ID_B中移除索引字符串“730”。
参见表2,示出了示例一中第一轮后参与方A和参与方B分别对应的剩余字符串。
表2
接下来,按照ASCII编码方式,将参与方A和参与方B的剩余索引字符串的第二个子字符串编码为整数,得到参与方A第二轮的整数编码结果和参与方B第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数。基于整数的隐私求交协议,对参与方A第二轮的整数编码结果和参与方B第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果。从参与方A的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串,具体地,从表2所示的参与方A的剩余索引字符串中移除索引字符串“adf”、“a04”、“f54”。以及从参与方B的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串,具体地,从表2所示的参与方B的剩余索引字符串中移除索引字符串“011”、“a64”。
参见表3,示出了示例一中第二轮后参与方A和参与方B分别对应的剩余字符串。
表3
以此类推,按照ASCII编码方式,将参与方A和参与方B的剩余索引字符串的第三个子字符串编码为整数,得到参与方A第三轮的整数编码结果和参与方B第三轮的整数编码结果,其中,不同的子字符串编码为不同的整数。基于整数的隐私求交协议,对参与方A第三轮的整数编码结果和参与方B第三轮的整数编码结果进行隐私求交,得到第三轮的交集结果。从参与方A的剩余索引字符串中移除第三个子字符串不在所述第三轮的交集结果中的索引字符串,以及从参与方B的剩余索引字符串中移除第三个子字符串不在所述第三轮的交集结果中的索引字符串。
参见表4,示出了示例一中第三轮后参与方A和参与方B分别对应的剩余字符串。
表4
此时,参与方A和参与方B的剩余索引字符串的最后一个子字符串均完成整数编码和隐私求交,则可以停止迭代,并且将表4所示的参与方A和参与方B的剩余索引字符串作为隐私求交结果。也即,隐私求交结果为{0a5,f92}。其中,索引字符串“0a5”和“f92”均出现在ID_A和ID_B中。
并行实现方案
在并行实现方案中,在步骤102按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之后,可以通过并行方式对每个参与方的子字符串进行整数编码,以及进行隐私求交。
在本发明的一种可选实施例中,步骤103所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
步骤S21、按照预设编码方式,将每个参与方的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数;
步骤S22、基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到每个参与方的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1;
步骤S23、对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果;
步骤S24、将与操作结果为1的索引字符串作为隐私求交结果。
仍以示例一中的参与方A和参与方B的索引字符串集合为例说明本发明的并行实现方案。
示例二
参与方A的索引字符串集合ID_A为{0a5,3ba,adf,a04,f54,f92},参与方B的索引字符串集合ID_B为{011,0a5,730,a64,fa,f92},现需要对ID_A和ID_B进行隐私求交。
参与方A和参与方B分割后分别对应的子字符串如表1所示。按照ASCII编码方式,将参与方A和参与方B的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数,并且基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到参与方A和参与方B的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1。
参见表5,示出了示例二中参与方A和参与方B的每个索引字符串的每个子字符串的求交结果的具体示意。
表5
如表5所示,RES_A表示参与方A的每个索引字符串的每个子字符串的求交结果,RES_B表示参与方B的每个索引字符串的每个子字符串的求交结果。在本发明实施例中,结果值0表示该子字符串不在求交结果中,结果值1表示该子字符串在求交结果中。
在示例二中,基于整数的隐私求交协议,对参与方A和参与方B的第一个子字符串对应的整数编码结果进行隐私求交,得到参与方A和参与方B的每个索引字符串的第一个子字符串的求交结果,如{0,a,f};对参与方A和参与方B的第二个子字符串对应的整数编码结果进行隐私求交,得到参与方A和参与方B的每个索引字符串的第二个子字符串的求交结果,如{a,9};对参与方A和参与方B的第三个子字符串对应的整数编码结果进行隐私求交,得到参与方A和参与方B的每个索引字符串的第三个子字符串的求交结果,如{5,4,2}。
对于参与方A(ID_A)中的第一个索引字符串“0a5”的第一个子字符串“0”,该子字符串在参与方A和参与方B的每个索引字符串的第一个子字符串的求交结果{0,a,f}中,因此,用结果值1表示,如表5中RES_A的第一行第一列所示。对于参与方A(ID_A)中的第一个索引字符串“0a5”的第二个子字符串“a”,该子字符串在参与方A和参与方B的每个索引字符串的第二个子字符串的求交结果{a,9}中,因此,用结果值1表示,如表5中RES_A的第一行第二列所示。对于参与方A(ID_A)中的第一个索引字符串“0a5”的第三个子字符串“5”,该子字符串在参与方A和参与方B的每个索引字符串的第二个子字符串的求交结果{5,4,2}中,因此,用结果值1表示,如表5中RES_A的第一行第三列所示。
同理,对于参与方B(ID_B)中的第一个索引字符串“011”的第一个子字符串“0”,该子字符串在参与方A和参与方B的每个索引字符串的第一个子字符串的求交结果{0,a,f}中,因此,用结果值1表示,如表5中RES_B的第一行第一列所示。对于参与方B(ID_B)中的第一个索引字符串“011”的第二个子字符串“1”,该子字符串不在参与方A和参与方B的每个索引字符串的第二个子字符串的求交结果{a,9}中,因此,用结果值0表示,如表5中RES_B的第一行第二列所示。对于参与方B(ID_B)中的第一个索引字符串“011”的第三个子字符串“1”,该子字符串不在参与方A和参与方B的每个索引字符串的第二个子字符串的求交结果{5,4,2}中,因此,用结果值1表示,如表5中RES_B的第一行第三列所示。
以此类推,可以得到表5所示的参与方A和参与方B的每个索引字符串的每个子字符串的求交结果。
接下来,对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果。例如,对于参与方A的第一个索引字符串“0a5”,对该索引字符串的所有子字符串的求交结果进行与操作,也即,对表5中RES_A的第一行的各结果值进行与操作,即对结果值1、1、1进行与操作,得到的结果值为1,表示该索引字符串“0a5”在最终的隐私求交结果中。又如,对于参与方A的第三个索引字符串“adf”,对该索引字符串的所有子字符串的求交结果进行与操作,也即,对表5中RES_A的第三行的各结果值进行与操作,即对结果值1、0、0进行与操作,得到的结果值为0,表示该索引字符串“adf”不在最终的隐私求交结果中。
参见表6,示出了示例二中参与方A和参与方B的每个索引字符串的与操作结果的具体示意。
表6
如表6所示,AND_A表示参与方A的每个索引字符串的与操作结果,AND_B表示参与方B的每个索引字符串的与操作结果。
对于参与方A(AND_A),AND_A的第一行与第六行的与操作结果均为1,第一行对应参与方A的索引字符串为“0a5”,第六行对应参与方A的索引字符串为“f92”。因此,对于参与方A,与操作结果为1的索引字符串包括“0a5”和“f92”。对于参与方B(AND_B),AND_B的第二行与第六行的与操作结果均为1,第二行对应参与方B的索引字符串为“0a5”,第六行对应参与方B的索引字符串为“f92”。因此,对于参与方B,与操作结果为1的索引字符串包括“0a5”和“f92”。由此,可以得到参与方A的索引字符串集合ID_A与参与方B的索引字符串集合ID_B的隐私求交结果为{0a5,f92}。其中,索引字符串“0a5”和“f92”均出现在ID_A和ID_B中。
在本发明的一种可选实施例中,所述得到所述多个参与方各自持有的索引字符串集合的隐私求交结果之后,所述方法还可以包括:
步骤S31、接收结果获取方发送的结果获取请求;
步骤S32、在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
本发明实施例实现在多方安全计算系统中,通过安全计算引擎对多个参与方各自持有的索引字符串集合进行隐私求交,得到隐私求交结果。在得到隐私求交结果之后,结果获取方可以获取隐私求交结果,而且不会得到隐私求交结果以外的任何信息,可以保证各参与方的索引字符串的隐私安全。
为了进一步保证各参与方的索引字符串的隐私安全,安全计算引擎在接收到结果获取方发送的结果获取请求之后,可以判断该结果获取方是否已授权,在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
综上,本发明实施例通过将索引字符串分割为若干个子字符串,基于每个参与方的子字符串对应的整数编码结果,对所述多个参与方各自持有的索引字符串集合进行隐私求交,得到隐私求交结果。本发明实施例将长字符串的隐私求交过程转换为对短字符串对应的整数编码结果进行隐私求交的过程,解决了多方安全计算系统中无法对长字符串进行隐私求交的问题,实现了可以在多方安全计算系统中对长字符串索引的数据进行隐私求交,在保护索引字符串隐私安全的基础上,提高隐私求交结果的准确性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种数据处理装置实施例的结构框图,所述装置应用于安全计算引擎,所述装置具体可以包括:
字符串获取模块201,用于获取多个参与方各自持有的索引字符串集合;
字符串分割模块202,用于按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
隐私求交模块203,用于获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
可选地,所述隐私求交模块,包括:
第一编码子模块,用于按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
第一求交子模块,用于基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果;
移除子模块,用于从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;
所述第一编码子模块,还用于按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
所述第一求交子模块,还用于基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果;
所述移除子模块,还用于从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串;
迭代子模块,用于迭代直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
可选地,所述隐私求交模块,包括:
第二编码子模块,用于按照预设编码方式,将每个参与方的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数;
第二求交子模块,用于基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到每个参与方的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1;
与操作子模块,用于对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果;
结果确定子模块,用于将与操作结果为1的索引字符串作为隐私求交结果。
可选地,所述装置还包括:
补足模块,用于若存在长度小于k的子字符串,则用预设符号将长度小于k的子字符串补足为长度为k的子字符串。
可选地,所述装置还包括:
接收请求模块,用于接收结果获取方发送的结果获取请求;
结果发送模块,用于在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
可选地,所述装置还包括:
参数确定模块,用于根据每个参与方的索引字符串集合的特征以及系统的整数长度范围,确定预设长度k,所述每个参与方的索引字符串集合的特征包括:每个参与方的索引字符串集合中索引字符串的数据量、索引字符串的编码方式、以及索引字符串的最大长度中的至少一种。
可选地,所述索引字符串集合中的索引字符串包括用户标识、身份证标识中的至少一种。
本发明实施例将长字符串的隐私求交过程转换为对短字符串对应的整数编码结果进行隐私求交的过程,解决了多方安全计算系统中无法对长字符串进行隐私求交的问题,实现了可以在多方安全计算系统中对长字符串索引的数据进行隐私求交,在保护索引字符串隐私安全的基础上,提高隐私求交结果的准确性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据处理的装置,所述装置应用于安全计算引擎,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:获取多个参与方各自持有的索引字符串集合;按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
图3是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图4是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据处理方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据处理方法,所述方法包括:获取多个参与方各自持有的索引字符串集合;按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法应用于安全计算引擎,所述方法包括:
获取多个参与方各自持有的索引字符串集合;
按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
2.根据权利要求1所述的方法,其特征在于,所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
按照预设编码方式,将每个参与方的所有索引字符串的第一个子字符串编码为整数,得到每个参与方第一轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对每个参与方第一轮的整数编码结果进行隐私求交,得到第一轮的交集结果;
从每个参与方的索引字符串集合中移除第一个子字符串不在所述第一轮的交集结果中的索引字符串;
按照所述预设编码方式,将每个参与方的剩余索引字符串的第二个子字符串编码为整数,得到每个参与方第二轮的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对每个参与方第二轮的整数编码结果进行隐私求交,得到第二轮的交集结果;
从每个参与方的剩余索引字符串中移除第二个子字符串不在所述第二轮的交集结果中的索引字符串;
以此类推,直到每个参与方的剩余索引字符串的最后一个子字符串完成整数编码和隐私求交,将最后一轮得到的每个参与方的剩余索引字符串作为隐私求交结果。
3.根据权利要求1所述的方法,其特征在于,所述获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果,包括:
按照预设编码方式,将每个参与方的所有索引字符串的所有子字符串编码为整数,得到所有子字符串的整数编码结果,其中,不同的子字符串编码为不同的整数;
基于整数的隐私求交协议,对相同下标的子字符串对应的整数编码结果进行隐私求交,得到每个参与方的每个索引字符串的每个子字符串的求交结果,所述求交结果包括结果值0或1;
对每个参与方的每个索引字符串的所有子字符串的求交结果进行与操作,得到每个参与方的每个索引字符串的与操作结果;
将与操作结果为1的索引字符串作为隐私求交结果。
4.根据权利要求1所述的方法,其特征在于,所述按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之后,所述方法还包括:
若存在长度小于k的子字符串,则用预设符号将长度小于k的子字符串补足为长度为k的子字符串。
5.根据权利要求1所述的方法,其特征在于,所述得到所述多个参与方各自持有的索引字符串集合的隐私求交结果之后,所述方法还包括:
接收结果获取方发送的结果获取请求;
在确定所述结果获取方已授权的情况下,响应所述结果获取请求,向所述结果获取方发送所述隐私求交结果。
6.根据权利要求1至5任一所述的方法,其特征在于,所述按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串之前,所述方法还包括:
根据每个参与方的索引字符串集合的特征以及系统的整数长度范围,确定预设长度k,所述每个参与方的索引字符串集合的特征包括:每个参与方的索引字符串集合中索引字符串的数据量、索引字符串的编码方式、以及索引字符串的最大长度中的至少一种。
7.根据权利要求1至5任一所述的方法,其特征在于,所述索引字符串集合中的索引字符串包括用户标识、身份证标识中的至少一种。
8.一种数据处理装置,其特征在于,所述装置应用于安全计算引擎,所述装置包括:
字符串获取模块,用于获取多个参与方各自持有的索引字符串集合;
字符串分割模块,用于按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
隐私求交模块,用于获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
9.一种用于数据处理的装置,其特征在于,所述装置应用于安全计算引擎,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取多个参与方各自持有的索引字符串集合;
按照预设长度k,将所述多个参与方的索引字符串集合中的所有索引字符串分割为子字符串,其中,相同下标的子字符串的长度相等;
获取每个子字符串对应的整数编码结果,基于整数的隐私求交协议对所述整数编码结果进行隐私求交,得到所述多个参与方各自持有的索引字符串集合的隐私求交结果。
10.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110150821.3A CN112861175A (zh) | 2021-02-03 | 2021-02-03 | 一种数据处理方法、装置和用于数据处理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110150821.3A CN112861175A (zh) | 2021-02-03 | 2021-02-03 | 一种数据处理方法、装置和用于数据处理的装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112861175A true CN112861175A (zh) | 2021-05-28 |
Family
ID=75987842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110150821.3A Pending CN112861175A (zh) | 2021-02-03 | 2021-02-03 | 一种数据处理方法、装置和用于数据处理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112861175A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489583A (zh) * | 2021-09-07 | 2021-10-08 | 华控清交信息科技(北京)有限公司 | 一种多方隐私求交中的数据处理方法、装置及电子设备 |
CN114978512A (zh) * | 2022-07-18 | 2022-08-30 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、装置和可读存储介质 |
CN115203495A (zh) * | 2022-09-14 | 2022-10-18 | 华控清交信息科技(北京)有限公司 | 一种字符串模糊匹配方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02273868A (ja) * | 1989-04-17 | 1990-11-08 | Nec Corp | 文字列データ検索方式 |
US20090282039A1 (en) * | 2008-05-12 | 2009-11-12 | Jeff Diamond | apparatus for secure computation of string comparators |
US20160217186A1 (en) * | 2015-01-22 | 2016-07-28 | International Business Machines Corporation | Distributed fuzzy search and join with edit distance guarantees |
US20180052904A1 (en) * | 2016-08-18 | 2018-02-22 | International Business Machines Corporation | Matching a first collection of strings with a second collection of strings |
CN111832067A (zh) * | 2020-05-26 | 2020-10-27 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
-
2021
- 2021-02-03 CN CN202110150821.3A patent/CN112861175A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02273868A (ja) * | 1989-04-17 | 1990-11-08 | Nec Corp | 文字列データ検索方式 |
US20090282039A1 (en) * | 2008-05-12 | 2009-11-12 | Jeff Diamond | apparatus for secure computation of string comparators |
US20160217186A1 (en) * | 2015-01-22 | 2016-07-28 | International Business Machines Corporation | Distributed fuzzy search and join with edit distance guarantees |
US20180052904A1 (en) * | 2016-08-18 | 2018-02-22 | International Business Machines Corporation | Matching a first collection of strings with a second collection of strings |
CN111832067A (zh) * | 2020-05-26 | 2020-10-27 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489583A (zh) * | 2021-09-07 | 2021-10-08 | 华控清交信息科技(北京)有限公司 | 一种多方隐私求交中的数据处理方法、装置及电子设备 |
CN113489583B (zh) * | 2021-09-07 | 2021-11-26 | 华控清交信息科技(北京)有限公司 | 一种多方隐私求交中的数据处理方法、装置及电子设备 |
CN114978512A (zh) * | 2022-07-18 | 2022-08-30 | 华控清交信息科技(北京)有限公司 | 一种隐私求交方法、装置和可读存储介质 |
CN115203495A (zh) * | 2022-09-14 | 2022-10-18 | 华控清交信息科技(北京)有限公司 | 一种字符串模糊匹配方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112861175A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN111832067B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113392422B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114969830B (zh) | 一种隐私求交方法、系统和可读存储介质 | |
CN112241250B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114301594B (zh) | 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 | |
CN115396100B (zh) | 一种基于秘密分享的不经意随机打乱方法和系统 | |
CN114840568B (zh) | 一种密文排序方法、装置和用于密文排序的装置 | |
CN115396101A (zh) | 一种基于秘密分享的不经意打乱方法和系统 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN112464257B (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN112487415B (zh) | 计算任务的安全性检测方法及装置 | |
CN113051610A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112269904A (zh) | 数据处理方法及装置 | |
CN115617897B (zh) | 一种数据类型转换方法和多方安全计算系统 | |
CN116401423A (zh) | 基于安全多方计算的中位数确定方法、装置、设备及介质 | |
CN112861145B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113239389B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112685747B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112468290B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114885038A (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN114969164B (zh) | 一种数据查询方法、装置和可读存储介质 | |
CN113392421B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112906904B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112016637B (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 |