CN112000979B - 隐私数据的数据库操作方法、系统及存储介质 - Google Patents
隐私数据的数据库操作方法、系统及存储介质 Download PDFInfo
- Publication number
- CN112000979B CN112000979B CN201910544196.3A CN201910544196A CN112000979B CN 112000979 B CN112000979 B CN 112000979B CN 201910544196 A CN201910544196 A CN 201910544196A CN 112000979 B CN112000979 B CN 112000979B
- Authority
- CN
- China
- Prior art keywords
- screening
- calculation
- ciphertext
- multiparty
- dispersed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
Abstract
本申请提供一种隐私数据的数据库操作方法,隐私数据经一存储配置分散为分散密文并存储在多个存储节点中,包括:根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集。本申请提供的隐私数据的数据库操作方法能确保在不必要暴露明文的情况下,实现对数据库中分散密文进行数据检索的方式。另外,利用基于秘密分享的多方计算引擎执行数据库操作过程,可确保单一计算节点不保存隐私数据的明文、或隐私数据的统计结果的明文的情况。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种隐私数据的数据库操作方法、系统及存储介质。
背景技术
数据库可视为电子化的文件柜,以用于存储电子文件,藉由数据库管理系统可以对所存储的文件中的数据进行新增、截取、更新、删除等操作。任何需要对电子文件进行管理的电子设备都配置有数据库。
随着计算机应用在各领域广泛应用,企业、用户的各种行为被数据化,数据的隐私保护处理显得尤为重要。为提高隐私数据的安全性,数据库可通过对隐私数据加密存储的方式进行数据存储。当计算机设备对隐私数据进行数据处理时,大部分时候需恢复隐私数据的明文以便执行数据处理。这使得隐私数据的明文将在数据库操作时被保存在易失性存储器或非易失性存储器中,因此该种方式增加了隐私数据在数据库操作期间被泄露的可能。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种隐私数据的数据库操作方法、系统及存储介质,用于解决现有技术中隐私数据藉由数据库操作而被暴露,由此增加隐私数据泄露可能的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种隐私数据的数据库操作方法,所述隐私数据经一存储配置分散为分散密文并存储在多个存储节点中,所述数据库操作方法包括以下步骤:
根据所述存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;
按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
在本申请的第一方面的某些实施方式中,所述存储配置包括基于秘密分享技术而设置的分散方式。
在本申请的第一方面的某些实施方式中,所述分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
在本申请的第一方面的某些实施方式中,所述分散方式为基于Shamir秘密共享算法而设置的分散方式;所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的;所述根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文的步骤包括:根据所确定数量从对应数量的存储节点中读取相应字段关联的分散密文;将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。
在本申请的第一方面的某些实施方式中,所述筛选条件语句的数量为多个且筛选条件语句之间具有逻辑关系,对应地,所述多方计算筛选处理指令为多个,且多方计算筛选处理指令之间具有对应的逻辑关系;所述按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理步骤包括:按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到每个字段所关联的各隐私数据的子计算结果集;根据各多方计算筛选处理指令之间的逻辑关系,对各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述各字段所关联的隐私数据所在条目命中或者未命中各所述筛选条件语句及其之间的逻辑关系。
在本申请的第一方面的某些实施方式中,还包括基于多方计算统计处理指令对所述计算结果集进行隐私统计处理,得到统计结果的步骤;其中,所述多方计算统计处理指令是通过对数据库检索语句中的数据处理语句进行解析而获得的,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式。
在本申请的第一方面的某些实施方式中,所述计算结果集包含至少一个标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。
本申请的第二方面还提供一种隐私数据的数据库操作系统,包括:
多个存储节点,各存储节点分别存储有基于一存储配置而将隐私数据分散处理后所形成的多个分散密文中的部分;
语句解析设备,用于将一数据库检索语句中的筛选条件语句对应解析成由多方计算引擎所执行的多方计算筛选处理指令;
多方计算引擎,与所述语句解析设备和各存储节点通信连接,用于所接收的所述多方计算筛选处理指令执行以下步骤:
根据所述存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;
按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
本申请的第三方面还提供一种多方计算引擎,包括多个计算节点;各计算节点均包含存储装置和处理装置;其中,各存储装置均存储有可供协同执行的用于对隐私数据进行数据库操作的计算机程序;以及各所述处理装置在执行所述计算机程序时,所述多方计算引擎实现如第一方面所述的隐私数据的数据库操作方法。
本申请的第四方面还提供一种存储介质,存储有用于执行隐私数据的数据库操作方法的计算机程序,所述计算机程序被执行时实现第一方面所述的隐私数据的数据库操作方法。
如上所述,本申请的隐私数据的数据库操作方法、隐私数据的数据库操作系统、多方计算引擎及存储介质,具有以下有益效果:通过利用所述隐私数据的数据库操作方法及系统,对经存储配置分散并存储在多个存储节点中的分散密文进行数据库操作,能确保在不必要暴露明文的情况下,对隐私数据的分散密文进行数据库操作,进而实现对数据库中分散密文的数据检索、统计等计算处理,使得外部计算设备在不接触或保存隐私数据的明文的情况下获得对经分散存储的隐私数据的处理结果。
附图说明
图1显示为本申请隐私数据的数据库操作方法在一实施例中的流程示意图。
图2显示为本申请隐私数据的数据库操作系统在一实施例中的结构示意图。
图3显示为本申请隐私数据的数据库操作系统在另一实施例中的结构示意图。
图4显示为本申请隐私数据的数据库操作系统在又一实施例中的结构示意图。
图5显示为本申请多方计算引擎在一实施例中的结构示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。
如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
在银行、电商、企业、政府等技术部门对存储有隐私数据的存储节点设置相应的安全模式,例如,采用加密方式存储隐私数据。
为了防止加密方式被破解而导致隐私数据泄密,在一些实施方式中,隐私数据被分散存储在多个存储节点中。为此,破解单个存储节点中所存储的分散密文不会泄露隐私数据明文。如此,隐私数据以高安全性被存储。
在此,所述隐私数据可以是个体、群体或组织的敏感信息。所述隐私数据包括信息隐私数据、通信隐私数据、空间隐私数据、身份隐私数据等。所述信息隐私数据指的是个人的基本信息,包括例如身份证号、银行账号、各类密码、收入和财产状况、婚姻和家庭成员、医疗档案、消费和需求信息(例如购物、购房、购车、购买保险)、网络活动踪迹(例如IP地址、浏览踪迹、活动内容)等数据。所述通信隐私数据包括个人和其他人的交流使用的各种通信方式以及通过各种通信方式和其他人交流产生的信息数据,所述通信方式包括例如电话、短信、E-mail、QQ、微信等。所述空间隐私数据指的是个人出入的特定空间或区域的信息,包括家庭住址、工作单位以及个人出入的公共场所等数据。所述身体隐私数据指的是与个人身体关联的信息,如虹膜数据、人脸数据、指纹数据、身高、体重、病历、药物测试等数据。
所述隐私数据也可以是个人、群体或组织不愿或不能被外部世界知晓的信息。在一实施例中,所述隐私数据包括金融交易数据。所述金融交易数据是指金融机构(例如银行、保险、证券、基金、信贷公司等)知悉或掌握的包括例如个人或企业的身份、各类金融资产状况和交易情况等信息和资料,例如信贷数据、证券交易数据、债券融资数据、股票融资数据等。所述隐私数据是银行、股票交易所等能提供金融交易数据的企业或部门需以最高安全级别存储的储蓄用户、交易用户的财产信息。
以隐私数据为金融交易数据为例,在一些金融数据处理中,例如,在股票交易和证券交易期间,各存储节点以极大的并发量存入金融交易数据的分散密文,为此,一些高效的存储方式包括将各分散密文直接存入不同存储节点所提供的同一表的同一字段下。例如,将股票买入信息分散处理成多个分散密文,各存储节点将所接收的各自分散密文并统一存入股票买入表中的买入字段中,而不通过索引表(如利用摘要构建的索引表等)进行中间处理,以提高存储效率。上述能基于高并发存储隐私数据的场合还可应用在电商活动(如秒杀活动)、节目投票等,在此不再一一详述。
为了将以金融交易数据为示例的隐私数据分散存储,隐私数据被依据存储配置分散为分散密文,并存储在多个存储节点中。各存储节点提供相同或不同的数据库及数据库管理系统。其中,所述数据库指的是长期储存在计算机内、有组织的、可共享的大量数据的集合。所述数据库管理系统(Database Management System,DBMS)是一种管理数据库的大型软件,用于建立、使用和维护数据库。数据库管理系统对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据库管理系统将抽象的逻辑数据进行处理,以转换为能被计算机识别和处理的具体的物理数据,实现对数据的建立、修改、查询、追加、删除等操作。所述数据库管理系统举例但不限于MySQL、SQL Server、XQuery、Oracle等。
在此,所述每个存储节点可以是一个或者多个存储设备,所述存储设备可包括高速随机存取存储器、并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储设备还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。所述存储设备还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问,读取所述存储器中的分散密文。其中,存储在存储设备中的软件组件包括操作系统、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。所述存储节点还包括数据库存储引擎,所述数据库存储引擎用于向所述存储节点写入所述隐私数据的分散密文,以及从存储节点读取对应隐私数据的分散密文。
所述存储节点可位于单台计算机设备、或位于基于云架构的服务系统中被使用的实体设备或虚拟设备等。所述单台计算机设备可位于私有机房或位于公共机房中的某个被租用的机位中。所述实体设备或虚拟设备的形态和所设置的地理位置不做限定。例如,多个存储节点可以位于同一实体服务器的不同虚拟设备上且通过管理权限进行单独管理。所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。其中,所述虚拟设备可以是实体服务器通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用的设备之一。
所述存储节点中存储有可供读取的分散密文,所述分散密文是将隐私数据以适当的方式进行分散,所述分散密文存储在对应的多个存储节点中,并且单个存储节点中对应于同一个隐私数据的分散密文无法恢复该隐私数据,只有读取若干个存储节点的分散密文才能恢复所述隐私数据。其中,所述每个存储节点中所存储的分散密文为一隐私数据经一存储配置处理得到的。
其中,所述存储配置至少用于描述隐私数据的分散方式,对应地,存储配置也表示各存储节点所存储的分散密文与隐私数据之间的分散关系。在一些示例中,所述存储配置可以预先设置在配置文件(或日志文件等)中,并保存在存储节点或输出装置中;其中,所述配置文件至少包括隐私数据的分散方式。在另一示例中,所述存储配置内置于程序中,藉由运行所述程序,隐私数据被分散处理成分散密文,并分别保存在不同存储节点中。
在一实施例中,所述存储配置包括基于秘密分享技术而设置的第一分散方式。其中,所述秘密分享技术是将隐私数据以适当的方式进行分散,分散后的分散密文存储在对应的多个存储节点中,单个存储节点中对应于同一个隐私数据的分散密文无法恢复该隐私数据,只有若干个存储节点一同协作才能恢复所述隐私数据。
其中,所述第一分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
在一实施例中,所述存储配置中的第一分散方式为基于加法计算而设置的分散方式,其中,基于加法计算而设置的分散方式包含将隐私数据随机分散成预设数量的分散方式,所述数量对应于用于存储分散密文的存储节点的数量。在一些具体示例中,各存储节点所保存的分散密文来自于将隐私数据随机分散成n份后得到的分散密文。以n为4为例,存储隐私数据X的四个存储节点中的其中三个存储节点P1、P2和P3分别存储随机产生的分散密文{x1},{x2},{x3},以及另一个存储节点P4存储根据公式:x4=X-x1-x2-x3而得到的分散密文{x4}。在另一些具体示例中,所述基于加法计算而设置的分散方式还包括利用共享随机数对所分散后的成对的分散密文进行可抵消计算处理的处理方式。仍以n为4为例,存储隐私数据X的四个存储节点中的其中两个存储节点P1和P2分别存储随机产生的分散密文{x1},{x2},存储节点P3存储将一随机产生的分散密文x3与共享随机数s的和{s+x3},其中,以及另一个存储节点P4存储根据公式:x4=X-x1-x2-x3所得到的分散密文x4与共享随机数s的差值{x4-s}{x4-s}。
在另一实施例中,所述隐私数据的第一分散方式为基于Shamir秘密共享算法而设置的分散方式,其中,基于Shamir秘密共享算法而设置的分散方式包含将隐私数据基于构造的多项式分散成预设数量的分散方式,所述数量大于等于可恢复隐私数据所需分散密文的最小数量。其中,所分散的数量大于所述最小数量可有效防止部分存储节点出现异常时,不影响恢复隐私数据,进而不影响整个系统执行输出操作。在一些具体示例中,令隐私数据S为构造的k-1次多项式的常数项,各存储节点所保存的分散密文来自于基于隐私数据构造的k-1次多项式上的n个点。以n为4为例,任取随机数a1,a2,…,ak-1,构造k-1次多项式f(x)=a0+a1x+a2x2+…+ak-1xk-1,2≤k≤4,其中a0=S,任取4个数x1,x2,x3,x4,分别带入多项式得到f(x1),f(x2),f(x3),f(x4),四个存储节点P1、P2、P3和P4分别存储(x1,f(x1)),(x2,f(x2)),(x3,f(x3)),(x4,f(x4)),这4个点即为隐私数据S的分散密文。需要说明的是,读取单个存储节点的分散密文不能恢复出隐私数据,至少读取4个分散密文中的k个分散密文才能恢复所述多项式f(x),进而恢复所述隐私数据S。例如,一隐私数据为11,随机构造多项式f(x)=11+x+2x2,任取四个数1,2,3,4,分别带入多项式得到14,21,32,47,四个存储节点P1、P2、P3和P4分别存储(1,14),(2,21),(3,32),(4,47),这四个点即为隐私数据11的分散密文,至少读取其中三个点才可恢复随机构造的二阶多项式,进而恢复所述隐私数据11。
所述存储配置还可以包括加密所述分散密文的方式。所述加密分散密文的方式可由各存储节点单独设置,或各存储节点经统一配置而定。各存储节点依据加密分散密文的方式对所接收的分散密文进行加密存储,以增加数据安全性。所述加密分散密文的方式包括以下至少一种:利用密钥加密分散密文的方式,利用地址标签映射方式存储分散密文的方式,利用秘密分享技术加密分散密文的方式。
在某些实施例中,所述加密分散密文的方式为利用密钥加密分散密文的方式,所述利用密钥加密分散密文的方式可以是对称加密方式或者非对称加密方式。采取对称加密方式对所述分散密文进行加密后存储,读取所述加密后的分散密文后,需利用与加密时相同的密钥进行解密后才能获取所述隐私数据的分散密文。采取非对称加密方式对所述分散密文进行加密后存储,加密时利用一对匹配密钥中的其中一个进行加密,读取所述加密后的分散密文后需用加密时利用的一对匹配密钥中的另外一个进行解密后才能获取所述隐私数据的分散密文。
在一些实施例中,所述加密分散密文的方式为利用地址标签映射方式存储分散密文的方式,所述利用地址标签映射的方式是指存储节点依据预设的数据保存顺序和随机设置的地址标签之间的映射关系将所接收的分散密文进行存储的方式;其中,不同存储节点对应同一字段下的相同地址标签(如自增长的ID序号)的各分散密文未必可恢复成隐私数据,而依据各存储节点所设置的映射关系,同一字段下不同地址标签的各分散密文恢复成隐私数据。例如,隐私数据X被分散成分散密文x1和x2,并由存储节点P1和P2分别存储,其中,存储节点将分散密文x1存储在字段A下第0021地址标签的位置,存储节点将分散密文x2存储在字段A下第0031地址标签的位置,为便于读取可恢复成隐私数据X的各分散密文,存储节点P1还保存有分散密文x1的地址标签0021与保存隐私数据的保存顺序005之间的映射关系,存储节点P2还保存有分散密文x2的地址标签0031与保存隐私数据的保存顺序005之间的映射关系;其中,所述保存顺序005表示隐私数据被依序保存的自增长顺序编号。
在又一些实施例中,所述加密分散密文的方式为利用秘密分享技术加密分散密文的方式。在此,秘密分享技术可与前述第一分散方式所提及的分散技术相同或相似,在此不再详述。例如,将存储节点中的分散密文进行再分散使得一个分散密文生成多个加密后的分散密文,将所述加密后的分散密文分散到与所述存储节点相关联的多个存储节点中,实现对所述隐私数据分散密文进行加密的目的。
以上,对于无索引表、且分散存储的隐私数据来说,为了保证隐私数据的安全性,隐私数据的读取操作一方面需满足不泄漏明文的隐私需求,另一方面需从多个存储节点中读取可恢复隐私数据的分散密文,并在不必须暴露明文的情况下,以不恢复明文的方式执行数据库操作。
有鉴于此,本申请提供一种隐私数据的数据库操作方法,用于对分散存储的隐私数据的多个分散密文进行数据库操作,以供外部计算设备据此获得对经分散存储的隐私数据的处理结果。所述数据库操作方法可由多方计算引擎来执行,其旨在保证多方计算引擎中的任一计算节点在执行数据库操作期间且在不必要的情况下,不暂存或长期保存隐私数据的明文或隐私数据的密文。
在此,所述多方计算引擎包括多个计算节点。每个计算节点为单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备等。例如,计算节点(或计算节点之一)可以是存储节点。故而计算节点的实体或虚拟设备的形态和所设置的地理位置不做限定。例如,计算节点可以位于同一实体服务器的不同虚拟设备上且通过管理权限进行单独管理。所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。其中,所述虚拟设备可以是实体服务器通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用的设备之一。
请参阅图1,其显示为本申请隐私数据的数据库操作方法在一实施例中的流程示意图。如图所示,本申请提供的隐私数据的数据库操作方法包括:
步骤S1,根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文。其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的。
在此,所述数据库检索语句是一种供数据库执行以将数据从数据库中指定表单、指定字段中读取出来的机器语言。其中,数据库检索语句包含筛选条件语句,用于指明所读取的数据所在字段,以及可读取的数据的条件。所述筛选条件语句举例为包含字段及字段筛选条件的逻辑表达;其中,所述字段筛选条件包括但不限于:比较条件、范围条件、集合条件、匹配条件、空值条件等,例如,字段筛选条件包含字段名和以下任一种符号或逻辑描述:“>”、“!>”、“≥”、“<”、“!<”、“≤”“=”、“!=”、“IS NULL”、“IS NOT NULL”、“IN”、“NOT IN”等。例如,数据库检索语句A1为Select*from Userdata where age>10,其中,Userdata为表单名,age为Userdata表单中一字段名,age>10为筛选条件语句。
所述多方计算筛选处理指令是基于安全多方计算将筛选条件语句转换成可供多方计算引擎执行的计算指令(集)。其中,安全多方计算是用以解决互不信任的参与方之间隐私保护问题的协同计算方式,其包括但不限于:秘密分享技术。所述多方计算筛选处理指令为一种可供多方计算引擎执行的计算指令(集),用于执行筛选条件语句所对应的筛选计算。其中,所述多方计算筛选处理指令中包含根据存储配置及数据库检索语句中所指定的表单及其字段从至少两个存储节点中分别读取相应字段下的分散密文的数据库操作指令。所述多方计算筛选处理指令中还包括依据分散配置而确定的存储节点的数量及多方计算引擎中的各计算节点与存储节点的读取对应关系。
其中,以存储配置表示各存储节点所存储的分散密文是隐私数据经基于加法计算而设置的分散方式分散得到的为例,按照多方计算筛选处理指令,多方计算引擎中的各计算节点对应读取部分存储节点中指定表单及其字段下对应同一隐私数据的分散密文,使得各计算节点存储的分散密文可被恢复为所述隐私数据。例如,存储配置表示将隐私数据基于加法计算而设置的分散方式分散成四个分散密文,根据预先配置的各存储节点的配置信息,所述多方计算筛选处理指令包含多方计算引擎中四个计算节点与四个存储节点之间的读取对应关系,以及各计算节点单独读取相应存储节点中对应同一隐私数据的分散密文的数据库操作指令。多方计算引擎执行所述多方计算筛选处理指令以得到可恢复成隐私数据的四个分散密文。所述多方计算引擎继续执行步骤S2以对分别读取的各分散密文进行隐私筛选处理。
以存储配置表示各存储节点所存储的分散密文是隐私数据经基于Shamir秘密共享算法而设置的分散方式分散得到的为例,所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的。例如,所述数量是基于Shamir秘密共享算法中多项式最高幂次n加1而确定的,所述多方计算筛选处理指令包括指示多方计算引擎中(n+1)个计算节点分别读取(n+1)存储节点中指定表单及其字段下对应同一隐私数据的分散密文,使得各计算节点存储的分散密文可被恢复为所述隐私数据。
所述多方计算引擎根据所述数量从对应数量的存储节点中读取相应字段关联的分散密文。例如,所述多方计算引擎中的(n+1)个计算节点随机且无重叠地(或根据多方计算筛选处理指令)从m个存储有分散密文的存储节点中选择(n+1)个存储节点,并分别读取存储节点中表单及其字段下对应同一隐私数据的分散密文,其中,m≥(n+1)。
所述多方计算引擎将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。
在此,按照前述提及的基于Shamir秘密共享算法将隐私数据分散成分散密文的示例,所述多方计算引擎所读取的分散密文为一多项式函数所描述的曲线上的坐标,为此,所述多方计算引擎中的多计算节点将所读取的分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。例如,所述多方计算引擎中的多计算节点将所读取的分散密文转换成基于加法计算而设置的分散方式所对应的分散密文。
以基于Shamir秘密共享算法而设置的分散方式中的多项式函数模型为:f(x)=a0+a1x+a2x2+…+akxk-1为例,其中,a1,a2,…,ak为随机数,a0为隐私数据S。根据所述多项式函数模型,所述隐私数据S被分散存储在至少k个存储节点上。读取预先设定的参数(k-1),根据所述参数(k-1)确定任取n个数x1,x2,…,xn,分别代入所述多项式得到f(x1),f(x2),…,f(xn),从而获得S1=(x1,f(x1)),S2=(x2,f(x2)),…,Sn=(xn,f(xn));其中n≥k。以k=3且n=6为举例说明,隐私数据经所述多项式函数模型f(x)=a0+a1x+a2x2分散处理了后得到的分散密文分别为S1=(x1,f(x1)),S2=(x2,f(x2)),S3=(x3,f(x3)),S4=(x4,f(x4)),S5=(x5,f(x5)),S6=(x6,f(x6)),并存储在6个存储节点中;其中,a0为所述隐私数据S,a1和a2为随机数。多方计算引擎执行多方计算筛选处理指令,从6个存储节点中任意读取三个分散密文S1,S3,S5,藉由基于读取数量而设置的拉格朗日插值函数得到形式为li=cix2+bix+ai的三个多项式,i=1,3,或5;其中,a′1×f(x1),a′3×f(x3),a′5×f(x5)即为可供所述多方计算筛选处理指令处理的分散密文。所述多方计算引擎将执行步骤S2以对分别读取的各分散密文进行隐私筛选处理。
需要说明的是,在一些示例中,所述多方计算引擎可将所选取的各存储节点中相应字段下的所有分散密文全部取出,得到由不同计算节点分别持有的分散密文集,以便执行步骤S2对分别读取的各分散密文进行隐私筛选处理。在另一些示例中,多方计算引擎可逐个读取对应同一隐私数据的各分散密文,并针对所读取的各分散密文进行隐私筛选处理。
在实际应用中,数据库检索语句中的筛选条件语句的数量为多个,对应地,所述多方计算筛选处理指令为多个,且每个多方计算筛选处理指令对应一个筛选条件语句。
例如,所述数据库检索语句中的筛选条件语句包括“年龄不等于22岁”和“工资不小于2000元”;多方计算引擎按照经解析两个筛选条件语句而得到的两组多方计算筛选处理指令分别从多个存储节点中读取字段为“年龄”和“工资”下的分散密文。
又如,所述隐私数据为金融交易数据,所述数据库检索语句中的筛选条件语句包含:“交易时间在5月至6月期间”、“交易金额在200万元以下”和“公司注册地址在上海”;对应的,按照各筛选条件语句所对应的多方计算筛选处理指令以及逻辑关系,分别读取“交易时间”、“交易金额”、“公司注册地址”三个字段下的各分散密文。
在此,按照多组多方计算筛选处理指令分别读取分散密文的方式与前述按照一组多方计算筛选处理指令和存储配置从至少两个存储节点读取分散密文的方式相同或相似,在此不再重述。
步骤S2,按照所述多方计算筛选处理指令分别对各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
在此,为了让多方计算引擎执行筛选条件语句中的字段筛选条件的逻辑表达,所述多方计算筛选处理指令还包括按照筛选条件中的字段筛选条件经解析而成的用于对隐私数据进行隐私筛选处理的计算指令(集)。以多方计算引擎包含四个计算节点为例,所述多方计算筛选处理指令基于四个计算节点执行秘密分享运算的计算协议中各计算节点的角色而生成的计算指令(集)。其中,所述基于四个计算节点执行秘密分享运算的计算协议包括:利用至少两个计算节点执行秘密分享技术中加法计算的计算协议,利用四个计算节点执行秘密分享技术中乘法计算的计算协议,利用四个计算节点执行秘密分享技术中位提取计算的计算协议,利用四个计算节点执行秘密分享技术中不经意传输的计算协议等。上述各计算协议举例为申请号201910252631.5中所提供的对应计算协议,在此不再重述并全文引用于此。
以字段筛选条件为“age>10”,读取对应同一隐私数据的分散密文的数量为3,以及可执行本步骤计算的分散密文为基于加法计算而分散得到的分散密文为例,多方计算筛选处理指令中包含用以对分散密文进行单独隐私筛选计算的计算指令,所述计算指令举例包含(age1-2),(age2-3),(age3-5)等计算指令,其中,age1、age2和age3分别为从三个存储节点读取的对应同一隐私数据的分散密文,数字2、3和5为数字10经随机分散而得到的,多方计算引擎中的三个计算节点分别执行包含上述计算指令的计算,以得到对各分散密文进行隐私筛选处理得到的计算结果。
需要说明的是,上述筛选条件语句及其对应的多方计算筛选处理指令仅为举例,事实上筛选条件语句中的条件可基于多种运算而设置,如基于乘法、加法及混合运算等,所对应的多方计算筛选处理指令也不仅仅包含各计算节点所执行的本地计算指令(集),根据秘密分享技术及多方计算引擎中计算节点数量而设置的计算协议,所述多方计算引擎执行多方计算筛选处理指令后所得到的多个计算结果集与各存储节点中相应字段所存储的各分散密文并非一定存在一一对应关系,但是,多个计算结果集仍协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
藉由上述示例可见,多方计算引擎逐一计算所读取的字段下所有分散密文,得到经隐私筛选处理后,相应字段所关联的多个计算结果集,多个所述计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
在一些实际应用中,所述多方计算引擎利用合并部分分散密文、再分散部分或全部分散密文、利用共享随机数对分散密文进行可抵消的加法计算中至少一种,对待处理的对应同一隐私数据的多个分散密文进行可恢复明文的预处理,得到数量与所读取的分散密文的数量相同或不同的加密分散密文,再通过执行步骤S2得到多个计算结果集,其中,各计算结果集协同表示经隐私筛选处理后相应字段所关联的各隐私数据的计算结果的集合。
例如,所述多方计算引擎中的两个计算节点利用共享随机数r将所读取的分散密文x1和x2进行可抵消的加法计算,得到加密分散密文(x1+r),(x2-r),并分配给另外两个计算节点,并藉由四个计算节点对所读取的分散密文x1、x2以及加密分散密文(x1+r)、(x2-r)进行隐私筛选处理,得到四个计算结果。该四个计算结果由不同计算节点所持有,由此避免在不必要恢复明文的情况下,多方计算引擎获得隐私数据命中或未命中字段筛选条件的筛选结果。
多方计算引擎利用上述任一示例对同一字段下对应所有隐私数据进行隐私筛选处理,得到由不同计算节点持有的多个计算结果集。
其中,每个计算结果集包含标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。仍以前述字段筛选条件为“age>10”示例为例,计算结果集中包含age字段所关联的所有隐私数据执行(age1-2)的计算结果,每个计算结果中的标识信息可由以下至少一种描述:相应计算结果本身,由相应的隐私数据执行(age1-2)后的计算结果为正或负的比特值。
在此,为便于外部计算节点基于所得到的多个计算结果集得到对应数据库检索语句的检索结果,在一些示例中,每个计算结果集中的各计算结果按照同一隐私数据的多个分散密文在各存储节点中的存储顺序而排序的,由此,外部计算节点可依序对各计算结果集中的各计算结果进行计算,以得到所述检索结果。
例如,隐私数据S1,S2,…,SN以角标顺序被分散存入多个存储节点P1,P2,…,PM,其中,各存储节点所保存的分散密文的顺序与所述角标顺序相同,多方计算引擎藉由上述步骤S1和S2得到的多个计算结果集中各计算结果的顺序与相应存储节点中各分散密文的存储顺序一一对应。
在又一些示例中,每个计算结果集中各计算结果基于同一隐私数据的多个分散密文在各存储节点中存储标签的顺序而排序的。其中,所述存储标签标记分散密文在相应字段中的顺序标签,例如,所述存储标签为用于标记存储位置的编号ID。
例如,仍以隐私数据S1,S2,…,SN以角标顺序被分散存入多个存储节点P1,P2,…,PM为例,其中,各存储节点为增加所存储的分散密文的安全性,各自对所保存的分散密文的顺序进行乱序处理,并记录存储分散密文的存储顺序与各分散密文所对应的存储标签之间的对应关系,多方计算引擎藉由上述步骤S1和S2得到的多个计算结果集中各计算结果的顺序与相应存储节点中各分散密文的存储标签的顺序一一对应。
又如,仍以隐私数据S1,S2,…,SN以角标顺序被分散存入多个存储节点P1,P2,…,PM为例,其中,各存储节点为增加所存储的分散密文的安全性,各自对所保存的分散密文的顺序进行乱序处理,并记录存储分散密文的存储顺序与各分散密文所对应的存储标签之间的对应关系,多方计算引擎按照所述对应关系统一所读取的各分散节点中分散密文的顺序,并藉由上述步骤S1和S2得到的每个计算结果集中各计算结果的顺序均与某一存储节点中各分散密文的存储标签的顺序一一对应。
在承前所述的应用中,当所述筛选条件语句的数量为多个时,对应地,所述多方计算筛选处理指令为多个,且每组多方计算筛选处理指令对应一条筛选条件语句。
所述步骤S2包括:步骤S21,按照每个多方计算筛选处理指令分别对各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到被分散处理的多个子计算结果集;其中,每个子计算结果集表示相应字段所关联的各分散密文经所述多方计算筛选指令计算而得到的子计算结果的集合。
在此,为区分于单一筛选条件语句所对应的计算结果集,当数据库检索语句中包含多个筛选条件语句时,将每个字段所关联的分散密文经隐私筛选处理后得到的计算结果集称为子计算结果集。
实际上,当所述筛选条件语句的数量为多个时,各筛选条件语句之间具有逻辑关系。其中,所述逻辑关系举例为以下至少一种:“AND”、“OR”、“NOT”等。
在一些示例中,多个筛选条件语句中的字段属于同一表单,多个筛选条件语句及其逻辑关系描述了对表单下任一条目中不同字段所关联的隐私数据进行筛选的方式。例如,表单User中包含Name和Age字段,所述筛选条件语句包含筛选条件语句A为“Name like‘Dave’”和筛选条件语句B为“age>10”,且筛选条件语句A和B的逻辑关系为逻辑与,所述多个筛选条件语句及其逻辑关系描述了筛选User表单下姓名包含“Dave”以及年龄大于10的条目。
在另一些示例中,多个筛选条件语句中的字段不属于同一表单,且不同表单之间依据共同字段具有关联关系,多个筛选条件语句及其逻辑关系描述了对依据多个表单的关联关系而构建的条目中不同字段所关联的隐私数据进行筛选的方式。例如,表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段,依据UserID该两个表单被关联在一起,当筛选条件语句C为“Name like‘Dave’”和筛选条件语句D为“Amount>1000”,且筛选条件语句C和D的逻辑关系为逻辑与,所述多个筛选条件语句及其逻辑关系描述了筛选User和Expenses record表单下姓名包含“Dave”以及消费金额大于1000的条目,其中,该条目至少包括User表单下的Name字段以及Expenses record表单中的Amount字段。
对应地,为了使多方计算引擎执行包含多个筛选条件语句且各筛选条件语句之间具有逻辑关系的数据检索语句,配置在多方计算引擎中的各所述多方计算筛选处理指令之间也具有对应的逻辑关系。
为此,所述多方计算引擎还执行步骤S22,根据各多方计算筛选处理指令之间的逻辑关系,对所述各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述各字段所关联的隐私数据所在条目命中或者未命中各所述筛选条件语句及其之间的逻辑关系。
在一些示例中,所述多方计算筛选处理指令之间的逻辑关系描述了将不同字段所关联的子计算结果集之间进行逻辑计算的计算指令(集)。以逻辑关系为逻辑或为例,筛选条件语句A与筛选条件语句B之间的逻辑关系为逻辑或,则所述多方计算筛选处理指令之间的逻辑关系包含从多个子结果集中将同一条目中的不同字段所关联的各子计算结果进行比特位的或计算的计算指令(集)。更示例性地,以前述表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段的示例为例,其中,按照筛选条件语句C为“Name like‘Dave’”所对应的多方计算筛选处理指令得到Name字段所关联的3个子计算结果集N1、N2和N3,按照筛选条件语句D为“Amount>1000”所对应的多方计算筛选处理指令得到Amount字段所关联的3个子计算结果集Am1、Am2和Am3,多方计算引擎按照所述多方计算筛选处理指令之间的逻辑关系执行将子计算结果集N1与Am1、子计算结果集N2与Am2、子计算结果集N3与Am3分别进行比特位的逻辑或计算,得到计算结果集R1、R2和R3。其中,所述多个计算结果集R1、R2和R3协同描述一个条目中字段Name和Amount所关联的各隐私数据命中或者未命中各所述筛选条件语句及其之间的逻辑关系的结果。
在又一些示例中,所述多方计算筛选处理指令之间的逻辑关系描述了基于不同字段各自所关联的子计算结果集而确定的相应字段所关联的各隐私数据的隐私数据计算结果集,而执行各隐私数据计算结果集之间的逻辑计算的计算指令(集)。仍以逻辑关系为逻辑或为例,筛选条件语句A与筛选条件语句B之间的逻辑关系为逻辑或,则所述多方计算筛选处理指令之间的逻辑关系包含:根据筛选条件语句A和B中各自字段,分别将相应子计算结果集恢复成各字段下各隐私数据的隐私数据计算结果集的计算指令(集),以及根据所述逻辑关系,对应同一条目将所得到的两个隐私数据计算结果集中各隐私数据计算结果进行逻辑或以得到被分散处理的多个计算结果集的计算指令(集)。更详细地,以前述表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段的示例为例,其中,按照筛选条件语句C为“Name like‘Dave’”所对应的多方计算筛选处理指令得到Name字段所关联的3个子计算结果集N1、N2和N3,按照筛选条件语句D为“Amount>1000”所对应的多方计算筛选处理指令得到Amount字段所关联的3个子计算结果集Am1、Am2和Am3。多方计算引擎按照所述逻辑或的逻辑关系,将子计算结果集N1、N2和N3恢复成Name字段下所有隐私数据的隐私数据计算结果集N,以及将子计算结果集Am1、Am2和Am3恢复成Amount字段下所有隐私数据的隐私数据计算结果集Am;其中,隐私数据计算结果集N为基于同一隐私数据将子计算结果集N1、N2和N3中各自子计算结果加和后形成的结果集,隐私数据计算结果集Am为基于同一隐私数据将子计算结果集Am1、Am2和Am3中各自子计算结果加和后形成的结果集。所述多方计算引擎按照同一条目下Name字段和Amount字段之间逻辑或的逻辑关系,将隐私数据计算结果集Am和N进行多方的比特位的或计算,得到被分散处理的多个计算结果集。
在此,各计算结果集中包含标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令及其逻辑关系而执行的各计算结果。以前述表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段的示例为例,计算结果集中每个标识信息包含以下至少一种:执行比特位的逻辑或计算的计算结果本身,或者将用于描述所述逻辑关系的且被分散处理的比特值。
在此被分散处理的多个计算结果集可供外部计算节点恢复成对应数据检索语句的检索结果集。
在一些示例中,所述多方计算引擎按照外部计算节点所提供的输出配置,将所述计算结果集予以输出。
其中,所述输出配置用于描述外部计算设备对待输出的计算结果集的需求。其中,所述输出配置可包含默认需求或者指示需求。例如,所述多方计算引擎与外部计算设备的输出配置为预设固定的,所述输出配置预先内置于多方计算引擎中各计算节点的配置文件(或日志文件等)中,多方计算引擎中的计算节点根据所获取的读取指令中的设备识别标识(如IP等),从所保存的配置文件中获得相应的输出配置。又如,所述输出配置是外部计算设备的读取指令中所携带的。所述多方计算引擎中的计算节点通过获取读取指令为来获得输出配置。
所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密。
其中,所述输出明文是指向外部计算设备提供计算结果集中各计算结果的明文的方式。
其中,所述输出明文的加密是指在输出配置中指定将计算结果集中个计算结果的明文进行加密的方式。所述加密方式例如可以包括利用与外部计算设备匹配的密钥进行加密的方式,或者基于同态加密的方式,或者利用共享随机数对输出数据进行可抵消计算的方式进行加密的方式等。以基于密钥加密的方式为例,所述输出配置中包含与外部计算设备匹配的密钥。以基于同态加密对相应的计算结果集进行加密的方式为例,所述输出配置中包含基于同态加密而设置的加密函数。以基于共享随机数而设置的加密方式为例,所述输出配置中包含用于生成共享随机数的随机数发生器,以及使用所述共享随机数进行可抵消计算的计算方式。
其中,所述基于秘密分享技术而设置的分散方式包括但不限于基于加法计算而设置的分散方式,基于Shamir秘密共享算法而设置的分散方式等。例如,所述分散方式包括:将三个计算结果集转换成基于加法计算的分散方式而得到的四个计算结果集的方式。又如,所述分散方式包括:将四个可利用加和方式恢复明文的计算结果集转换成基于2阶Shamir秘密共享算法的分散方式而得到的三个计算结果集的方式。
需要说明的是,上述计算结果集的数量和分散方式仅为举例。事实上,根据由外部计算设备所构成的多方计算引擎的数据格式需求,上述输出配置提供匹配其需求的分散方式而配置下相应的计算结果集。
由于数据库检索语句还能提供对所筛选出的数据进行数据统计处理的能力,为此,所述隐私数据的数据库操作方法还包括基于多方计算统计处理指令对所述计算结果集进行隐私统计处理,得到统计结果的步骤。
其中,所述多方计算统计处理指令是通过对数据库检索语句中的数据处理语句进行解析而获得的。
在此,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式。其中,所述统计处理包括但不限于:求和、平均值、中位数、标准差、方差等或其中至少一种的统计处理。对应地,所述多方计算统计处理指令被解析为可供多方计算引擎执行所述数据处理语句的计算指令(集)。例如,所述数据处理语句包含对符合筛选条件语句的隐私数据进行求和的数据处理方式,所述多方计算统计处理指令包含对各计算结果集中对应同一隐私数据的计算结果进行多方加和计算,以及将多方加和结果进行分散保存,以得到分散处理的统计结果。
与前述将计算结果集输出至外部计算节点类似地,所述多方计算引擎也可按照外部计算节点所提供的输出配置,将所述统计结果予以输出。
在此,所述输出配置和输出方式与前述将计算结果集输出至外部计算节点相同或相似,在此不再详述。
上述利用多方计算引擎对分散密文的数据库操作方法能确保在不必要暴露明文的情况下,实现对数据库中分散密文进行数据检索的方式。另外,利用基于秘密分享的多方计算引擎执行所述数据库操作过程,可确保单一计算节点不保存隐私数据的明文、或隐私数据的统计结果的明文的情况。
本申请还提供一种隐私数据的数据库操作系统,用于执行前述隐私数据的数据库操作方法。请参阅图2,显示为本申请隐私数据的数据库操作系统在一实施例中的结构示意图,如图所示,所述隐私数据的数据库操作系统20包括多个存储节点201、语句解析设备202和多方计算引擎203。
承前所述,所述隐私数据可以是个体、群体或组织的敏感信息。所述隐私数据包括信息隐私数据、通信隐私数据、空间隐私数据、身份隐私数据等。所述信息隐私数据指的是个人的基本信息,包括例如身份证号、银行账号、各类密码、收入和财产状况、婚姻和家庭成员、医疗档案、消费和需求信息(例如购物、购房、购车、购买保险)、网络活动踪迹(例如IP地址、浏览踪迹、活动内容)等数据。所述通信隐私数据包括个人和其他人的交流使用的各种通信方式以及通过各种通信方式和其他人交流产生的信息数据,所述通信方式包括例如电话、短信、E-mail、QQ、微信等。所述空间隐私数据指的是个人出入的特定空间或区域的信息,包括家庭住址、工作单位以及个人出入的公共场所等数据。所述身体隐私数据指的是与个人身体关联的信息,如虹膜数据、人脸数据、指纹数据、身高、体重、病历、药物测试等数据。
所述隐私数据也可以是个人、群体或组织不愿或不能被外部世界知晓的信息。在一实施例中,所述隐私数据包括金融交易数据。所述金融交易数据是指金融机构(例如银行、保险、证券、基金、信贷公司等)知悉或掌握的包括例如个人或企业的身份、各类金融资产状况和交易情况等信息和资料,例如信贷数据、证券交易数据、债券融资数据、股票融资数据等。所述隐私数据是银行、股票交易所等能提供金融交易数据的企业或部门需以最高安全级别存储的储蓄用户、交易用户的财产信息。
以隐私数据为金融交易数据为例,在一些金融数据处理中,例如,在股票交易和证券交易期间,各存储节点以极大的并发量存入金融交易数据的分散密文,为此,一些高效的存储方式包括将各分散密文直接存入不同存储节点所提供的同一表的同一字段下。例如,将股票买入信息分散处理成多个分散密文,各存储节点将所接收的各自分散密文并统一存入股票买入表中的买入字段中,而不通过索引表(如利用摘要构建的索引表等)进行中间处理,以提高存储效率。上述能基于高并发存储隐私数据的场合还可应用在电商活动(如秒杀活动)、节目投票等,在此不再一一详述。
为了将以金融交易数据为示例的隐私数据分散存储,隐私数据被依据存储配置分散为分散密文,并存储在多个存储节点中。各存储节点提供相同或不同的数据库及数据库管理系统。其中,所述数据库指的是长期储存在计算机内、有组织的、可共享的大量数据的集合。所述数据库管理系统(Database Management System,DBMS)是一种管理数据库的大型软件,用于建立、使用和维护数据库。数据库管理系统对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据库管理系统将抽象的逻辑数据进行处理,以转换为能被计算机识别和处理的具体的物理数据,实现对数据的建立、修改、查询、追加、删除等操作。所述数据库管理系统举例但不限于MySQL、SQL Server、XQuery、Oracle等。
在所述隐私数据的数据库操作系统中,多个存储节点201用于各存储节点分别存储有基于一存储配置而将隐私数据分散处理后所形成的多个分散密文中的部分。
所述存储节点可以是一个或者多个存储设备,所述存储设备可包括高速随机存取存储器、并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储设备还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络(未示出)访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网(LAN)、广域网(WLAN)、存储局域网(SAN)等,或其适当组合。所述存储设备还包括存储器控制器,其可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问,读取所述存储器中的分散密文。其中,存储在存储设备中的软件组件包括操作系统、通信模块(或指令集)、文本输入模块(或指令集)、以及应用(或指令集)。所述存储节点还包括数据库存储引擎,所述数据库存储引擎用于向所述存储节点写入所述隐私数据的分散密文,以及从存储节点读取对应隐私数据的分散密文。
所述存储节点可位于单台计算机设备、或位于基于云架构的服务系统中被使用的实体设备或虚拟设备等。所述单台计算机设备可位于私有机房或位于公共机房中的某个被租用的机位中。所述实体设备或虚拟设备的形态和所设置的地理位置不做限定。例如,多个存储节点可以位于同一实体服务器的不同虚拟设备上且通过管理权限进行单独管理。所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。其中,所述虚拟设备可以是实体服务器通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用的设备之一。
所述存储节点中存储有可供读取的分散密文,所述分散密文是将隐私数据以适当的方式进行分散,所述分散密文存储在对应的多个存储节点中,并且单个存储节点中对应于同一个隐私数据的分散密文无法恢复该隐私数据,只有读取若干个存储节点的分散密文才能恢复所述隐私数据。其中,所述每个存储节点中所存储的分散密文为一隐私数据经一存储配置处理得到的。
其中,所述存储配置至少用于描述隐私数据的分散方式,对应地,存储配置也表示各存储节点所存储的分散密文与隐私数据之间的分散关系。在一些示例中,所述存储配置可以预先设置在配置文件(或日志文件等)中,并保存在存储节点或输出装置中;其中,所述配置文件至少包括隐私数据的分散方式。在另一示例中,所述存储配置内置于程序中,藉由运行所述程序,隐私数据被分散处理成分散密文,并分别保存在不同存储节点中。
在一实施例中,所述存储配置包括基于秘密分享技术而设置的第一分散方式。其中,所述秘密分享技术是将隐私数据以适当的方式进行分散,分散后的分散密文存储在对应的多个存储节点中,单个存储节点中对应于同一个隐私数据的分散密文无法恢复该隐私数据,只有若干个存储节点一同协作才能恢复所述隐私数据。
其中,所述第一分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
在一实施例中,所述存储配置中的第一分散方式为基于加法计算而设置的分散方式,其中,基于加法计算而设置的分散方式包含将隐私数据随机分散成预设数量的分散方式,所述数量对应于用于存储分散密文的存储节点的数量。在一些具体示例中,各存储节点所保存的分散密文来自于将隐私数据随机分散成n份后得到的分散密文。以n为4为例,存储隐私数据X的四个存储节点中的其中三个存储节点P1、P2和P3分别存储随机产生的分散密文{x1},{x2},{x3},以及另一个存储节点P4存储根据公式:x4=X-x1-x2-x3而得到的分散密文{x4}。在另一些具体示例中,所述基于加法计算而设置的分散方式还包括利用共享随机数对所分散后的成对的分散密文进行可抵消计算处理的处理方式。仍以n为4为例,存储隐私数据X的四个存储节点中的其中两个存储节点P1和P2分别存储随机产生的分散密文{x1},{x2},存储节点P3存储将一随机产生的分散密文x3与共享随机数s的和{s+x3},其中,以及另一个存储节点P4存储根据公式:x4=X-x1-x2-x3所得到的分散密文x4与共享随机数s的差值{x4-s}。
在另一实施例中,所述隐私数据的第一分散方式为基于Shamir秘密共享算法而设置的分散方式,其中,基于Shamir秘密共享算法而设置的分散方式包含将隐私数据基于构造的多项式分散成预设数量的分散方式,所述数量大于等于可恢复隐私数据所需分散密文的最小数量。其中,所分散的数量大于所述最小数量可有效防止部分存储节点出现异常时,不影响恢复隐私数据,进而不影响整个系统执行输出操作。在一些具体示例中,令隐私数据S为构造的k-1次多项式的常数项,各存储节点所保存的分散密文来自于基于隐私数据构造的k-1次多项式上的n个点。以n为4为例,任取随机数a1,a2,…,ak-1,构造k-1次多项式f(x)=a0+a1x+a2x2+…+ak-1xk-1,2≤k≤4,其中a0=S,任取4个数x1,x2,x3,x4,分别带入多项式得到f(x1),f(x2),f(x3),f(x4),四个存储节点P1、P2、P3和P4分别存储(x1,f(x1)),(x2,f(x2)),(x3,f(x3)),(x4,f(x4)),这4个点即为隐私数据S的分散密文。需要说明的是,读取单个存储节点的分散密文不能恢复出隐私数据,至少读取4个分散密文中的k个分散密文才能恢复所述多项式f(x),进而恢复所述隐私数据S。例如,一隐私数据为11,随机构造多项式f(x)=11+x+2x2,任取四个数1,2,3,4,分别带入多项式得到14,21,32,47,四个存储节点P1、P2、P3和P4分别存储(1,14),(2,21),(3,32),(4,47),这四个点即为隐私数据11的分散密文,至少读取其中三个点才可恢复随机构造的二阶多项式,进而恢复所述隐私数据11。
所述存储配置还可以包括加密所述分散密文的方式。所述加密分散密文的方式可由各存储节点单独设置,或各存储节点经统一配置而定。各存储节点依据加密分散密文的方式对所接收的分散密文进行加密存储,以增加数据安全性。所述加密分散密文的方式包括以下至少一种:利用密钥加密分散密文的方式,利用地址标签映射方式存储分散密文的方式,利用秘密分享技术加密分散密文的方式。
在某些实施例中,所述加密分散密文的方式为利用密钥加密分散密文的方式,所述利用密钥加密分散密文的方式可以是对称加密方式或者非对称加密方式。采取对称加密方式对所述分散密文进行加密后存储,读取所述加密后的分散密文后,需利用与加密时相同的密钥进行解密后才能获取所述隐私数据的分散密文。采取非对称加密方式对所述分散密文进行加密后存储,加密时利用一对匹配密钥中的其中一个进行加密,读取所述加密后的分散密文后需用加密时利用的一对匹配密钥中的另外一个进行解密后才能获取所述隐私数据的分散密文。
在一些实施例中,所述加密分散密文的方式为利用地址标签映射方式存储分散密文的方式,所述利用地址标签映射的方式是指存储节点依据预设的数据保存顺序和随机设置的地址标签之间的映射关系将所接收的分散密文进行存储的方式;其中,不同存储节点对应同一字段下的相同地址标签(如自增长的ID序号)的各分散密文未必可恢复成隐私数据,而依据各存储节点所设置的映射关系,同一字段下不同地址标签的各分散密文恢复成隐私数据。例如,隐私数据X被分散成分散密文x1和x2,并由存储节点P1和P2分别存储,其中,存储节点将分散密文x1存储在字段A下第0021地址标签的位置,存储节点将分散密文x2存储在字段A下第0031地址标签的位置,为便于读取可恢复成隐私数据X的各分散密文,存储节点P1还保存有分散密文x1的地址标签0021与保存隐私数据的保存顺序005之间的映射关系,存储节点P2还保存有分散密文x2的地址标签0031与保存隐私数据的保存顺序005之间的映射关系;其中,所述保存顺序005表示隐私数据被依序保存的自增长顺序编号。
在又一些实施例中,所述加密分散密文的方式为利用秘密分享技术加密分散密文的方式。在此,秘密分享技术可与前述第一分散方式所提及的分散技术相同或相似,在此不再详述。例如,将存储节点中的分散密文进行再分散使得一个分散密文生成多个加密后的分散密文,将所述加密后的分散密文分散到与所述存储节点相关联的多个存储节点中,实现对所述隐私数据分散密文进行加密的目的。
以上,对于无索引表、且分散存储的隐私数据来说,为了保证隐私数据的安全性,隐私数据的读取操作一方面需满足不泄漏明文的隐私需求,另一方面需从多个存储节点中读取可恢复隐私数据的分散密文,并在不必须暴露明文的情况下,以不恢复明文的方式执行数据库操作。
所述语句解析设备用于将一数据库检索语句中的筛选条件语句对应解析成由多方计算引擎所执行的多方计算筛选处理指令。
所述语句解析设备可为一单独配置的计算机设备,或者位于基于云架构的服务系统中被使用的实体设备或虚拟设备等。所述语句解析设备用来获得包含筛选条件语句的数据库检索语句,并将其解析成可供多方计算引擎执行的计算指令(集)。在一些示例中,所述语句解析设备与应用服务器通信,用以获得来自应用服务器的数据库检索语句,其中,应用服务器举例为提供互联网应用服务的服务器,例如,提供股票交易服务的服务器、提供线上商品销售服务的服务器等。例如,应用服务器基于用户操作产生包含“selectTradingInformation from Business where Company like“A””的数据库检索语句,其表示从Business表单中查询A公司当天交易清单,则所述语句解析设备根据多方计算引擎基于秘密分享技术而设计的计算协议将数据库检索语句转换成多方计算引擎执行的计算指令(集),其中包括对应筛选条件语句的多方计算筛选处理指令。
在此,所述数据库检索语句是一种供数据库执行以将数据从数据库中指定表单、指定字段中读取出来的机器语言。其中,数据库检索语句包含筛选条件语句,用于指明所读取的数据所在字段,以及可读取的数据的条件。所述筛选条件语句举例为包含字段及字段筛选条件的逻辑表达;其中,所述字段筛选条件包括但不限于:比较条件、范围条件、集合条件、匹配条件、空值条件等,例如,字段筛选条件包含字段名和以下任一种符号或逻辑描述:“>”、“!>”、“≥”、“<”、“!<”、“≤”“=”、“!=”、“IS NULL”、“IS NOT NULL”、“IN”、“NOT IN”等。例如,数据库检索语句A1为Select*from Userdata where age>10,其中,Userdata为表单名,age为Userdata表单中一字段名,age>10为筛选条件语句。
所述多方计算筛选处理指令是基于安全多方计算将筛选条件语句转换成可供多方计算引擎执行的计算指令(集)。其中,安全多方计算是用以解决互不信任的参与方之间隐私保护问题的协同计算方式,其包括但不限于:秘密分享技术。所述多方计算筛选处理指令为一种可供所述多方计算引擎执行的计算指令(集),用于执行筛选条件语句所对应的筛选计算。其中,所述多方计算筛选处理指令中包含根据存储配置及数据库检索语句中所指定的表单及其字段从至少两个存储节点中分别读取相应字段下的分散密文的数据库操作指令。所述多方计算筛选处理指令中还包括依据分散配置而确定的存储节点的数量及多方计算引擎中的各计算节点与存储节点的读取对应关系。
在此,为便于举例多方计算引擎对多方计算筛选处理指令的执行过程,所述语句解析设备基于所述数据库操作语句而解析的其他计算指令(集)将在后续多方计算引擎执行时对应描述。
所述多方计算引擎包括多个计算节点。每个计算节点为单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备等。例如,计算节点(或计算节点之一)可以是存储节点。故而计算节点的实体或虚拟设备的形态和所设置的地理位置不做限定。例如,计算节点可以位于同一实体服务器的不同虚拟设备上且通过管理权限进行单独管理。所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。其中,所述虚拟设备可以是实体服务器通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用的设备之一。
所述多方计算引擎203与所述语句解析设备202和各存储节点201通信连接,用于所接收的所述多方计算筛选处理指令执行以下步骤:根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
其中,以存储配置表示各存储节点所存储的分散密文是隐私数据经基于加法计算而设置的分散方式分散得到的为例,按照多方计算筛选处理指令,多方计算引擎中的各计算节点对应读取部分存储节点中指定表单及其字段下对应同一隐私数据的分散密文,使得各计算节点存储的分散密文可被恢复为所述隐私数据。例如,存储配置表示将隐私数据基于加法计算而设置的分散方式分散成四个分散密文,根据预先配置的各存储节点的配置信息,所述多方计算筛选处理指令包含多方计算引擎中四个计算节点与四个存储节点之间的读取对应关系,以及各计算节点单独读取相应存储节点中对应同一隐私数据的分散密文的数据库操作指令。多方计算引擎执行所述多方计算筛选处理指令以得到可恢复成隐私数据的四个分散密文。所述多方计算引擎继续执行前述隐私数据的数据库操作方法以对分别读取的各分散密文进行隐私筛选处理。
以存储配置表示各存储节点所存储的分散密文是隐私数据经基于Shamir秘密共享算法而设置的分散方式分散得到的为例,所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的。例如,所述数量是基于Shamir秘密共享算法中多项式最高幂次n加1而确定的,所述多方计算筛选处理指令包括指令多方计算引擎中(n+1)个计算节点分别读取(n+1)存储节点中指定表单及其字段下对应同一隐私数据的分散密文,使得各计算节点存储的分散密文可被恢复为所述隐私数据。
所述多方计算引擎执行根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文的步骤包括:所述多方计算引擎根据所述数量从对应数量的存储节点中读取相应字段关联的分散密文。例如,所述多方计算引擎中的(n+1)个计算节点随机且无重叠地(或根据多方计算筛选处理指令)从m个存储有分散密文的存储节点中选择(n+1)个存储节点,并分别读取存储节点中表单及其字段下对应同一隐私数据的分散密文,其中,m≥(n+1)。所述多方计算引擎将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。在此,按照前述提及的基于Shamir秘密共享算法将隐私数据分散成分散密文的示例,所述多方计算引擎所读取的分散密文为一多项式函数所描述的曲线上的坐标,为此,所述多方计算引擎中的多计算节点将所读取的分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。例如,所述多方计算引擎中的多计算节点将所读取的分散密文转换成基于加法计算而设置的分散方式所对应的分散密文。
以基于Shamir秘密共享算法而设置的分散方式中的多项式函数模型为:f(x)=a0+a1x+a2x2+…+akxk-1为例,其中,a1,a2,…,ak为随机数,a0为隐私数据S。根据所述多项式函数模型,所述隐私数据S被分散存储在至少k个存储节点上。读取预先设定的参数(k-1),根据所述参数(k-1)确定任取n个数x1,x2,…,xn,分别代入所述多项式得到f(x1),f(x2),…,f(xn),从而获得S1=(x1,f(x1)),S2=(x2,f(x2)),…,Sn=(xn,f(xn));其中n≥k。以k=3且n=6为举例说明,隐私数据经所述多项式函数模型f(x)=a0+a1x+a2x2分散处理了后得到的分散密文分别为S1=(x1,f(x1)),S2=(x2,f(x2)),S3=(x3,f(x3)),S4=(x4,f(x4)),S5=(x5,f(x5)),S6=(x6,f(x6)),并存储在6个存储节点中;其中,a0为所述隐私数据S,a1和a2为随机数。多方计算引擎执行多方计算筛选处理指令,从6个存储节点中任意读取三个分散密文S1,S3,S5,藉由基于读取数量而设置的拉格朗日插值函数得到形式为li=cix2+bix+a′i的三个多项式,i=1,3,或5;其中,a′1×f(x1),a′3×f(x3),a′5×f(x5)即为可供所述多方计算筛选处理指令处理的分散密文。所述多方计算引擎将对分别读取的各分散密文进行隐私筛选处理。
需要说明的是,在一些示例中,所述多方计算引擎可将所选取的各存储节点中相应字段下的所有分散密文全部取出,得到由不同计算节点分别持有的分散密文集,以便执行前述隐私数据的数据库操作方法对分别读取的各分散密文进行隐私筛选处理。在另一些示例中,多方计算引擎可逐个读取对应同一隐私数据的各分散密文,并针对所读取的各分散密文进行隐私筛选处理。
在实际应用中,数据库检索语句中的筛选条件语句的数量为多个,对应地,所述多方计算筛选处理指令为多个,且每个多方计算筛选处理指令对应一个筛选条件语句。
例如,所述数据库检索语句中的筛选条件语句包括“年龄不等于22岁”和“工资不小于2000元”;多方计算引擎按照经解析两个筛选条件语句而得到的两组多方计算筛选处理指令分别从多个存储节点中读取字段为“年龄”和“工资”下的分散密文。
又如,所述隐私数据为金融交易数据,所述数据库检索语句中的筛选条件语句包含:“交易时间在5月至6月期间”、“交易金额在200万元以下”和“公司注册地址在上海”;对应的,按照各筛选条件语句所对应的多方计算筛选处理指令以及逻辑关系,分别读取“交易时间”、“交易金额”、“公司注册地址”三个字段下的各分散密文。
在此,按照多组多方计算筛选处理指令分别读取分散密文的方式与前述按照一组多方计算筛选处理指令和存储配置从至少两个存储节点读取分散密文的方式相同或相似,在此不再重述。
为了让多方计算引擎执行筛选条件语句中的字段筛选条件的逻辑表达,所述多方计算筛选处理指令还包括按照筛选条件中的字段筛选条件经解析而成的用于对分散密文进行隐私筛选处理的计算指令(集)。以字段筛选条件为“age>10”,读取对应同一隐私数据的分散密文的数量为3,以及可执行多方计算引擎计算的分散密文为基于加法计算而分散得到的分散密文为例,多方计算筛选处理指令中包含用以对分散密文进行单独隐私筛选计算的计算指令,所述计算指令举例包含(age1-2),(age2-3),(age3-5)等计算指令,其中,age1、age2和age3分别为从三个存储节点读取的对应同一隐私数据的分散密文,数字2、3和5为数字10经随机分散而得到的,多方计算引擎中的三个计算节点分别执行包含上述计算指令的计算,以得到对各分散密文进行隐私筛选处理得到的计算结果。
藉由上述示例可见,多方计算引擎逐一计算所读取的字段下所有分散密文,得到经隐私筛选处理后,相应字段所关联的所有分散密文的计算结果集,多个所述计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
在一些实际应用中,所述多方计算引擎利用合并部分分散密文、再分散部分或全部分散密文、利用共享随机数对分散密文进行可抵消的加法计算中至少一种,对待处理的对应同一隐私数据的多个分散密文进行可恢复明文的预处理,得到数量与所读取的分散密文的数量相同或不同的加密分散密文,再通过执行前述隐私数据的数据库操作方法得到多个计算结果集,其中,各计算结果集表示经隐私筛选处理相应字段所关联的加密分散密文和/或分散密文的计算结果的集合。
例如,所述多方计算引擎中的两个计算节点利用共享随机数r将所读取的分散密文x1和x2进行可抵消的加法计算,得到加密分散密文(x1+r),(x2-r),并分配给另外两个计算节点,并藉由四个计算节点对所读取的分散密文x1、x2以及加密分散密文(x1+r)、(x2-r)进行隐私筛选处理,得到四个计算结果。该四个计算结果由不同计算节点所持有,由此避免在不必要恢复明文的情况下,多方计算引擎获得隐私数据命中或未命中字段筛选条件的筛选结果。
多方计算引擎利用上述任一示例对同一字段下对应所有隐私数据进行隐私筛选处理,得到由不同计算节点持有的多个计算结果集。
其中,每个计算结果集包含标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。仍以前述字段筛选条件为“age>10”示例为例,计算结果集中包含age字段所关联的所有分散密文执行(age1-2)的计算结果,每个计算结果中的标识信息可由以下至少一种描述:相应计算结果本身,由相应分散密文执行(age1-2)后的计算结果为正或负的比特值。
在此,为便于外部计算节点基于所得到的多个计算结果集得到对应数据库检索语句的检索结果,在一些示例中,每个计算结果集中的各计算结果按照同一隐私数据的多个分散密文在各存储节点中的存储顺序而排序的,由此,外部计算节点可依序对各计算结果集中的各计算结果进行计算,以得到所述检索结果。
例如,隐私数据S1,S2,…,SN以角标顺序被分散存入多个存储节点P1,P2,…,PM,其中,各存储节点所保存的分散密文的顺序与所述角标顺序相同,多方计算引擎藉由前述隐私数据的数据库操作方法得到的多个计算结果集中各计算结果的顺序与相应存储节点中各分散密文的存储顺序一一对应。
在又一些示例中,每个计算结果集中各计算结果基于同一隐私数据的多个分散密文在各存储节点中存储标签的顺序而排序的。其中,所述存储标签标记分散密文在相应字段中的顺序标签,例如,所述存储标签为用于标记存储位置的编号ID。
例如,仍以隐私数据S1,S2,…,SN以角标顺序被分散存入多个存储节点P1,P2,…,PM为例,其中,各存储节点为增加所存储的分散密文的安全性,各自对所保存的分散密文的顺序进行乱序处理,并记录存储分散密文的存储顺序与各分散密文所对应的存储标签之间的对应关系,多方计算引擎藉由前述隐私数据的数据库操作方法得到的多个计算结果集中各计算结果的顺序与相应存储节点中各分散密文的存储标签的顺序一一对应。
又如,仍以隐私数据S1,S2,…,SN以角标顺序被分散存入多个存储节点P1,P2,…,PM为例,其中,各存储节点为增加所存储的分散密文的安全性,各自对所保存的分散密文的顺序进行乱序处理,并记录存储分散密文的存储顺序与各分散密文所对应的存储标签之间的对应关系,多方计算引擎按照所述对应关系统一所读取的各分散节点中分散密文的顺序,并藉由前述隐私数据的数据库操作方法得到的每个计算结果集中各计算结果的顺序均与某一存储节点中各分散密文的存储标签的顺序一一对应。
在承前所述的应用中,当所述筛选条件语句的数量为多个时,对应地,所述多方计算筛选处理指令为多个,且每组多方计算筛选处理指令对应一条筛选条件语句。
在一些示例中,数据库检索语句中的筛选条件语句的数量为多个且筛选条件语句之间具有逻辑关系,所述语句解析设备还将多个所述筛选条件语句之间具有逻辑关系转换成多个多方计算筛选处理指令之间的逻辑关系。所述多方计算引擎按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到每个字段所关联的各隐私数据的子计算结果集。
在此,为区分于单一筛选条件语句所对应的计算结果集,当数据库检索语句中包含多个筛选条件语句时,将每个字段所关联的分散密文经隐私筛选处理后得到的计算结果集称为子计算结果集。
实际上,当所述筛选条件语句的数量为多个时,各筛选条件语句之间具有逻辑关系。其中,所述逻辑关系举例为以下至少一种:“AND”、“OR”、“NOT”等。
在一些示例中,多个筛选条件语句中的字段属于同一表单,多个筛选条件语句及其逻辑关系描述了对表单下任一条目中不同字段所关联的隐私数据进行筛选的方式。例如,表单User中包含Name和Age字段,所述筛选条件语句包含筛选条件语句A为“Name like‘Dave’”和筛选条件语句B为“age>10”,且筛选条件语句A和B的逻辑关系为逻辑与,所述多个筛选条件语句及其逻辑关系描述了筛选User表单下姓名包含“Dave”以及年龄大于10的条目。
在另一些示例中,多个筛选条件语句中的字段不属于同一表单,且不同表单之间依据共同字段具有关联关系,多个筛选条件语句及其逻辑关系描述了对依据多个表单的关联关系而构建的条目中不同字段所关联的隐私数据进行筛选的方式。例如,表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段,依据UserID该两个表单被关联在一起,当筛选条件语句C为“Name like‘Dave’”和筛选条件语句D为“Amount>1000”,且筛选条件语句C和D的逻辑关系为逻辑与,所述多个筛选条件语句及其逻辑关系描述了筛选User和Expenses record表单下姓名包含“Dave”以及消费金额大于1000的条目,其中,该条目至少包括User表单下的Name字段以及Expenses record表单中的Amount字段。
对应地,为了使多方计算引擎执行包含多个筛选条件语句且各筛选条件语句之间具有逻辑关系的数据检索语句,配置在多方计算引擎中的各所述多方计算筛选处理指令之间也具有对应的逻辑关系。
为此,所述多方计算引擎还根据各多方计算筛选处理指令之间的逻辑关系,对所述各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述各字段所关联的隐私数据所在条目命中或者未命中各所述筛选条件语句及其之间的逻辑关系。
在一些示例中,所述多方计算筛选处理指令之间的逻辑关系描述了将不同字段所关联的子计算结果集之间进行逻辑计算的计算指令(集)。以逻辑关系为逻辑或为例,筛选条件语句A与筛选条件语句B之间的逻辑关系为逻辑或,则所述多方计算筛选处理指令之间的逻辑关系包含从多个子结果集中将同一条目中的不同字段所关联的各子计算结果进行比特位的或计算的计算指令(集)。更示例性地,以前述表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段的示例为例,其中,按照筛选条件语句C为“Name like‘Dave’”所对应的多方计算筛选处理指令得到Name字段所关联的3个子计算结果集N1、N2和N3,按照筛选条件语句D为“Amount>1000”所对应的多方计算筛选处理指令得到Amount字段所关联的3个子计算结果集Am1、Am2和Am3,多方计算引擎按照所述多方计算筛选处理指令之间的逻辑关系执行将子计算结果集N1与Am1、子计算结果集N2与Am2、子计算结果集N3与Am3分别进行比特位的逻辑或计算,得到计算结果集R1、R2和R3。其中,所述多个计算结果集R1、R2和R3协同描述一个条目中字段Name和Amount所关联的各隐私数据命中或者未命中各所述筛选条件语句及其之间的逻辑关系的结果。
在又一些示例中,所述多方计算筛选处理指令之间的逻辑关系描述了基于不同字段各自所关联的子计算结果集而确定的相应字段所关联的各隐私数据的隐私数据计算结果集,而执行各隐私数据计算结果集之间的逻辑计算的计算指令(集)。仍以逻辑关系为逻辑或为例,筛选条件语句A与筛选条件语句B之间的逻辑关系为逻辑或,则所述多方计算筛选处理指令之间的逻辑关系包含:根据筛选条件语句A和B中各自字段,分别将相应子计算结果集恢复成各字段下各隐私数据的隐私数据计算结果集的计算指令(集),以及根据所述逻辑关系,对应同一条目将所得到的两个隐私数据计算结果集中各隐私数据计算结果进行逻辑或以得到被分散处理的多个计算结果集的计算指令(集)。更详细地,以前述表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段的示例为例,其中,按照筛选条件语句C为“Name like‘Dave’”所对应的多方计算筛选处理指令得到Name字段所关联的3个子计算结果集N1、N2和N3,按照筛选条件语句D为“Amount>1000”所对应的多方计算筛选处理指令得到Amount字段所关联的3个子计算结果集Am1、Am2和Am3。多方计算引擎按照所述逻辑或的逻辑关系,将子计算结果集N1、N2和N3恢复成Name字段下所有隐私数据的隐私数据计算结果集N,以及将子计算结果集Am1、Am2和Am3恢复成Amount字段下所有隐私数据的隐私数据计算结果集Am;其中,隐私数据计算结果集N为基于同一隐私数据将子计算结果集N1、N2和N3中各自子计算结果加和后形成的结果集,隐私数据计算结果集Am为基于同一隐私数据将子计算结果集Am1、Am2和Am3中各自子计算结果加和后形成的结果集。所述多方计算引擎按照同一条目下Name字段和Amount字段之间逻辑或的逻辑关系,将隐私数据计算结果集Am和N进行多方的比特位的逻辑或计算,得到被分散处理的多个计算结果集。
在此,各计算结果集中包含标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令及其逻辑关系而执行的各计算结果。以前述表单User中包含UserID、Name和Age字段,表单Expenses record中包含UserID和Amount字段的示例为例,计算结果集中每个标识信息包含以下至少一种:执行比特位的逻辑或计算的计算结果本身,或者将用于描述所述逻辑关系的且被分散处理的比特值。
在此被分散处理的多个计算结果集可供外部计算节点恢复成对应数据检索语句的检索结果集。
在一些示例中,请参阅图3,显示为本申请隐私数据的数据库操作系统在另一实施例中的结构示意图,如图所示,所述隐私数据的数据库操作系统30包括存储节点301、语句解析设备302、多方计算引擎303,还包括第一输出设备304。所述第一输出设备304用于按照外部计算节点所提供的输出配置,将所述计算结果集予以输出。
其中,所述输出配置用于描述外部计算设备对待输出的计算结果集的需求。其中,所述输出配置可包含默认需求或者指示需求。例如,所述多方计算引擎与外部计算设备的输出配置为预设固定的,所述输出配置预先内置于多方计算引擎中各计算节点的配置文件(或日志文件等)中,多方计算引擎中的计算节点根据所获取的读取指令中的设备识别标识(如IP等),从所保存的配置文件中获得相应的输出配置。又如,所述输出配置是外部计算设备的读取指令中所携带的。所述多方计算引擎中的计算节点通过获取读取指令为来获得输出配置。
所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密。
其中,所述输出明文是指向外部计算设备提供计算结果集中各计算结果的明文的方式。
其中,所述输出明文的加密是指在输出配置中指定将计算结果集中个计算结果的明文进行加密的方式。所述加密方式例如可以包括利用与外部计算设备匹配的密钥进行加密的方式,或者基于同态加密的方式,或者利用共享随机数对输出数据进行可抵消计算的方式进行加密的方式等。以基于密钥加密的方式为例,所述输出配置中包含与外部计算设备匹配的密钥。以基于同态加密对相应的计算结果集进行加密的方式为例,所述输出配置中包含基于同态加密而设置的加密函数。以基于共享随机数而设置的加密方式为例,所述输出配置中包含用于生成共享随机数的随机数发生器,以及使用所述共享随机数进行可抵消计算的计算方式。
其中,所述基于秘密分享技术而设置的分散方式包括但不限于基于加法计算而设置的分散方式,基于Shamir秘密共享算法而设置的分散方式等。例如,所述分散方式包括:将三个计算结果集转换成基于加法计算的分散方式而得到的四个计算结果集的方式。又如,所述分散方式包括:将四个可利用加和方式恢复明文的计算结果集转换成基于2阶Shamir秘密共享算法的分散方式而得到的三个计算结果集的方式。
需要说明的是,上述计算结果集的数量和分散方式仅为举例。事实上,根据由外部计算设备所构成的多方计算引擎的数据格式需求,上述输出配置提供匹配其需求的分散方式而配置下相应的计算结果集。
由于数据库检索语句还能提供对所筛选出的数据进行数据统计处理的能力,为此,所述多方计算引擎还基于多方计算统计处理指令对所述计算结果集进行隐私统计处理,得到统计结果的步骤。
其中,所述多方计算统计处理指令是通过所述语句解析设备对数据库检索语句中的数据处理语句进行解析而获得的。
在此,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式。其中,所述统计处理包括但不限于:求和、平均值、中位数、标准差、方差等或其中至少一种的统计处理。对应地,所述多方计算统计处理指令被解析为可供多方计算引擎执行所述数据处理语句的计算指令(集)。例如,所述数据处理语句包含对符合筛选条件语句的隐私数据进行求和的数据处理方式,所述多方计算统计处理指令包含对各计算结果集中对应同一隐私数据的计算结果进行多方加和计算,以及将多方加和结果进行分散保存,以得到分散处理的统计结果。
与前述将计算结果集输出至外部计算节点类似地,所述隐私数据的数据库操作系统还可以包括第二输出设备,所述第二输出设备也可按照外部计算节点所提供的输出配置,将所述统计结果予以输出。
请参阅图4,显示为本申请隐私数据的数据库操作系统在又一实施例中的结构示意图,如图所示,所述隐私数据的数据库操作系统40包括存储节点401、语句解析设备402、多方计算引擎403,还包括第二输出设备404,所述第二输出设备404用于按照外部计算节点所提供的输出配置,将所述统计结果集予以输出。在此,所述输出配置和输出方式与前述第一输出设备将计算结果集输出至外部计算节点相同或相似,在此不再详述。
上述利用隐私数据的数据库操作系统对分散密文的数据库操作能确保在不必要暴露明文的情况下,实现对数据库中分散密文进行数据检索的方式。另外,利用基于秘密分享的多方计算引擎执行所述数据库操作过程,可确保单一计算节点不保存隐私数据的明文、或隐私数据的统计结果的明文的情况。
请参阅图5,显示为本申请多方计算引擎在一实施例中的结构示意图。如图所示,所述多方计算引擎50包括:
多个计算节点501,各计算节点均包含存储装置和处理装置;其中,各存储装置均存储有可供协同执行的用于对隐私数据进行数据库操作的计算机程序;以及各所述处理装置在执行所述计算机程序时,所述多方计算引擎50实现如前述实施例所述的隐私数据的数据库操作方法。
在一些实施例中,所述处理装置可包括集成电路芯片,具有信号处理能力;或通用处理器,例如,可以是数字信号处理器(DSP)、专用集成电路(ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。所述通用处理器可以是微处理器或者任何常规处理器等。
在一些实施例中,所述存储装置可包括随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦编程只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。所述存储装置用于存储程序,处理装置在接收到执行指令后,执行该程序。
所述多方计算引擎中每个计算节点可以为单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备等。例如,计算节点(或计算节点之一)可以是存储节点。故而计算节点的实体或虚拟设备的形态和所设置的地理位置不做限定。例如,计算节点可以位于同一实体服务器的不同虚拟设备上且通过管理权限进行单独管理。所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括SaaS、PaaS及IaaS等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等等。其中,所述虚拟设备可以是实体服务器通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用的设备之一。
所述处理装置在执行所述计算机程序时,所述多方计算引擎50实现如前述实施例所述的隐私数据的数据库操作方法:根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
所述存储节点中存储有可供读取的分散密文,所述分散密文是将隐私数据以适当的方式进行分散,所述分散密文存储在对应的多个存储节点中,并且单个存储节点中对应于同一个隐私数据的分散密文无法恢复该隐私数据,只有读取若干个存储节点的分散密文才能恢复所述隐私数据。其中,所述每个存储节点中所存储的分散密文为一隐私数据经一存储配置处理得到的。
其中,所述存储配置至少用于描述隐私数据的分散方式,对应地,存储配置也表示各存储节点所存储的分散密文与隐私数据之间的分散关系。在一些示例中,所述存储配置可以预先设置在配置文件(或日志文件等)中,并保存在存储节点或输出装置中;其中,所述配置文件至少包括隐私数据的分散方式。在另一示例中,所述存储配置内置于程序中,藉由运行所述程序,隐私数据被分散处理成分散密文,并分别保存在不同存储节点中。
在一实施例中,所述存储配置包括基于秘密分享技术而设置的第一分散方式。其中,所述秘密分享技术是将隐私数据以适当的方式进行分散,分散后的分散密文存储在对应的多个存储节点中,单个存储节点中对应于同一个隐私数据的分散密文无法恢复该隐私数据,只有若干个存储节点一同协作才能恢复所述隐私数据。
其中,所述第一分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
在一实施例中,所述存储配置中的第一分散方式为基于加法计算而设置的分散方式,其中,基于加法计算而设置的分散方式包含将隐私数据随机分散成预设数量的分散方式,所述数量对应于用于存储分散密文的存储节点的数量。在一些具体示例中,各存储节点所保存的分散密文来自于将隐私数据随机分散成n份后得到的分散密文。以n为4为例,存储隐私数据X的四个存储节点中的其中三个存储节点P1、P2和P3分别存储随机产生的分散密文{x1},{x2},{x3},以及另一个存储节点P4存储根据公式:x4=X-x1-x2-x3而得到的分散密文{x4}。在另一些具体示例中,所述基于加法计算而设置的分散方式还包括利用共享随机数对所分散后的成对的分散密文进行可抵消计算处理的处理方式。仍以n为4为例,存储隐私数据X的四个存储节点中的其中两个存储节点P1和P2分别存储随机产生的分散密文{x1},{x2},存储节点P3存储将一随机产生的分散密文x3与共享随机数s的和{s+x3},其中,以及另一个存储节点P4存储根据公式:x4=X-x1-x2-x3所得到的分散密文x4与共享随机数s的差值{x4-s}。
在另一实施例中,所述隐私数据的第一分散方式为基于Shamir秘密共享算法而设置的分散方式,其中,基于Shamir秘密共享算法而设置的分散方式包含将隐私数据基于构造的多项式分散成预设数量的分散方式,所述数量大于等于可恢复隐私数据所需分散密文的最小数量。其中,所分散的数量大于所述最小数量可有效防止部分存储节点出现异常时,不影响恢复隐私数据,进而不影响整个系统执行输出操作。在一些具体示例中,令隐私数据S为构造的k-1次多项式的常数项,各存储节点所保存的分散密文来自于基于隐私数据构造的k-1次多项式上的n个点。以n为4为例,任取随机数a1,a2,…,ak-1,构造k-1次多项式f(x)=a0+a1x+a2x2+…+ak-1xk-1,2≤k≤4,其中a0=S,任取4个数x1,x2,x3,x4,分别带入多项式得到f(x1),f(x2),f(x3),f(x4),四个存储节点P1、P2、P3和P4分别存储(x1,f(x1)),(x2,f(x2)),(x3,f(x3)),(x4,f(x4)),这4个点即为隐私数据S的分散密文。需要说明的是,读取单个存储节点的分散密文不能恢复出隐私数据,至少读取4个分散密文中的k个分散密文才能恢复所述多项式f(x),进而恢复所述隐私数据S。例如,一隐私数据为11,随机构造多项式f(x)=11+x+2x2,任取四个数1,2,3,4,分别带入多项式得到14,21,32,47,四个存储节点P1、P2、P3和P4分别存储(1,14),(2,21),(3,32),(4,47),这四个点即为隐私数据11的分散密文,至少读取其中三个点才可恢复随机构造的二阶多项式,进而恢复所述隐私数据11。
所述存储配置还可以包括加密所述分散密文的方式。所述加密分散密文的方式可由各存储节点单独设置,或各存储节点经统一配置而定。各存储节点依据加密分散密文的方式对所接收的分散密文进行加密存储,以增加数据安全性。所述加密分散密文的方式包括以下至少一种:利用密钥加密分散密文的方式,利用地址标签映射方式存储分散密文的方式,利用秘密分享技术加密分散密文的方式。
在某些实施例中,所述加密分散密文的方式为利用密钥加密分散密文的方式,所述利用密钥加密分散密文的方式可以是对称加密方式或者非对称加密方式。采取对称加密方式对所述分散密文进行加密后存储,读取所述加密后的分散密文后,需利用与加密时相同的密钥进行解密后才能获取所述隐私数据的分散密文。采取非对称加密方式对所述分散密文进行加密后存储,加密时利用一对匹配密钥中的其中一个进行加密,读取所述加密后的分散密文后需用加密时利用的一对匹配密钥中的另外一个进行解密后才能获取所述隐私数据的分散密文。
在一些实施例中,所述加密分散密文的方式为利用地址标签映射方式存储分散密文的方式,所述利用地址标签映射的方式是指存储节点依据预设的数据保存顺序和随机设置的地址标签之间的映射关系将所接收的分散密文进行存储的方式;其中,不同存储节点对应同一字段下的相同地址标签(如自增长的ID序号)的各分散密文未必可恢复成隐私数据,而依据各存储节点所设置的映射关系,同一字段下不同地址标签的各分散密文恢复成隐私数据。例如,隐私数据X被分散成分散密文x1和x2,并由存储节点P1和P2分别存储,其中,存储节点将分散密文x1存储在字段A下第0021地址标签的位置,存储节点将分散密文x2存储在字段A下第0031地址标签的位置,为便于读取可恢复成隐私数据X的各分散密文,存储节点P1还保存有分散密文x1的地址标签0021与保存隐私数据的保存顺序005之间的映射关系,存储节点P2还保存有分散密文x2的地址标签0031与保存隐私数据的保存顺序005之间的映射关系;其中,所述保存顺序005表示隐私数据被依序保存的自增长顺序编号。
在又一些实施例中,所述加密分散密文的方式为利用秘密分享技术加密分散密文的方式。在此,秘密分享技术可与前述第一分散方式所提及的分散技术相同或相似,在此不再详述。例如,将存储节点中的分散密文进行再分散使得一个分散密文生成多个加密后的分散密文,将所述加密后的分散密文分散到与所述存储节点相关联的多个存储节点中,实现对所述隐私数据分散密文进行加密的目的。
以上,对于无索引表、且分散存储的隐私数据来说,为了保证隐私数据的安全性,隐私数据的读取操作一方面需满足不泄漏明文的隐私需求,另一方面需从多个存储节点中读取可恢复隐私数据的分散密文,并在不必须暴露明文的情况下,以不恢复明文的方式执行数据库操作。
本申请还提供一种计算机可读写存储介质,存储有隐私数据的数据库操作方法的计算机程序,所述隐私数据的数据库操作方法的计算机程序被执行时实现上述实施例关于图1中所述的隐私数据的数据库操作方法。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述隐私数据的数据库操作方法的计算机程序所描述的功能可以用硬件、软件、固件或者其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
本申请所述隐私数据的数据库操作方法可以用硬件、软件、固件或者其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
基于上述隐私数据的数据库操作方法、隐私数据的数据库操作系统、多方计算引擎以及计算机可读存储介质所描述的各示例所反映的技术框架下,本申请公开以下技术方案:
1.一种隐私数据的数据库操作方法,其特征在于,所述隐私数据经一存储配置分散为分散密文并存储在多个存储节点中,所述数据库操作方法包括以下步骤:
根据所述存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;
按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
2.根据实施方式1所述的隐私数据的数据库操作方法,其特征在于,所述存储配置包括基于秘密分享技术而设置的分散方式。
3.根据实施方式2所述的隐私数据的数据库操作方法,其特征在于,所述分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
4.根据实施方式3所述的隐私数据的数据库操作方法,其特征在于,所述分散方式为基于Shamir秘密共享算法而设置的分散方式;所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的;
所述根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文的步骤包括:
根据所确定数量从对应数量的存储节点中读取相应字段关联的分散密文;
将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。
5.根据实施方式1所述的隐私数据的数据库操作方法,其特征在于,所述筛选条件语句的数量为多个且筛选条件语句之间具有逻辑关系,对应地,所述多方计算筛选处理指令为多个,且多方计算筛选处理指令之间具有对应的逻辑关系;所述按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理步骤包括:
按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到每个字段所关联的各隐私数据的子计算结果集;
根据各多方计算筛选处理指令之间的逻辑关系,对各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述各字段所关联的隐私数据所在条目命中或者未命中各所述筛选条件语句及其之间的逻辑关系。
6.根据实施方式1或5所述的隐私数据的数据库操作方法,其特征在于,还包括基于多方计算统计处理指令对所述计算结果集进行隐私统计处理,得到统计结果的步骤;其中,所述多方计算统计处理指令是通过对数据库检索语句中的数据处理语句进行解析而获得的,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式。
7.根据实施方式6所述的隐私数据的数据库操作方法,其特征在于,还包括按照外部计算节点所提供的输出配置,将所述统计结果予以输出。
8.根据实施方式7所述的隐私数据的数据库操作方法,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密。
9.根据实施方式1或5所述的隐私数据的数据库操作方法,其特征在于,所述计算结果集包含至少一个标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。
10.根据实施方式1或5所述的隐私数据的数据库操作方法,其特征在于,还包括按照外部计算节点所提供的输出配置,将所述计算结果集予以输出。
11.根据实施方式10所述的隐私数据的数据库操作方法,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密。
12.根据实施方式1所述的隐私数据的数据库操作方法,其特征在于,每个所述计算结果集中各计算结果是按照同一隐私数据的多个分散密文在各存储节点中的存储顺序而排序的,或者基于同一隐私数据的多个分散密文在各存储节点中存储标签的顺序而排序的。
13.根据实施方式1所述的隐私数据的数据库操作方法,其特征在于,所述隐私数据包括金融交易数据。
14.一种隐私数据的数据库操作系统,其特征在于,包括:
多个存储节点,各存储节点分别存储有基于一存储配置而将隐私数据分散处理后所形成的多个分散密文中的部分;
语句解析设备,用于将一数据库检索语句中的筛选条件语句对应解析成由多方计算引擎所执行的多方计算筛选处理指令;
多方计算引擎,与所述语句解析设备和各存储节点通信连接,用于根据所接收的所述多方计算筛选处理指令执行以下步骤:
根据所述存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;
按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句。
15.根据实施方式14所述的隐私数据的数据库操作系统,其特征在于,所述存储配置包括基于秘密分享技术而设置的分散方式。
16.根据实施方式15所述的隐私数据的数据库操作系统,其特征在于,所述分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。17.根据实施方式16所述的隐私数据的数据库操作系统,其特征在于,所述分散方式为基于Shamir秘密共享算法而设置的分散方式;所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的;
所述多方计算引擎执行根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文的步骤包括:
根据所述数量从对应数量的存储节点中读取相应字段关联的分散密文;
将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。
18.根据实施方式14所述的隐私数据的数据库操作系统,其特征在于,所述筛选条件语句的数量为多个且筛选条件语句之间具有逻辑关系,对应地,所述语句解析设备还将多个所述筛选条件语句之间具有逻辑关系转换成多个多方计算筛选处理指令之间的逻辑关系;
所述多方计算引擎还用于执行以下步骤:
按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到每个字段所关联的各隐私数据的子计算结果集;
根据各多方计算筛选处理指令之间的逻辑关系,对各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述命中或者未命中各所述筛选条件语句及其之间的逻辑关系。
19.根据实施方式14或18所述的隐私数据的数据库操作系统,其特征在于,所述语句解析设备还用于将数据库检索语句中的数据处理语句解析成多方计算统计处理指令;其中,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式;
所述多方计算引擎还用于执行以下步骤:基于多方计算统计处理指令对多个所述计算结果集进行隐私统计处理,得到统计结果。
20.根据实施方式19所述的隐私数据的数据库操作系统,其特征在于,还包括输出设备,用于按照外部计算节点所提供的输出配置,将所述统计结果予以输出。
21.根据实施方式20所述的隐私数据的数据库操作系统,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密。
22.根据实施方式14或18所述的隐私数据的数据库操作系统,其特征在于,所述计算结果集包含至少一个标识信息;所述标识信息用于标识计算结果集中的隐私数据是否命中相应筛选条件。
23.根据实施方式14或18所述的隐私数据的数据库操作系统,其特征在于,还包括输出设备,用于按照外部计算节点所提供的输出配置,将所述计算结果集予以输出。
24.根据实施方式23所述的隐私数据的数据库操作系统,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密。
25.根据实施方式14所述的隐私数据的数据库操作系统,其特征在于,每个所述计算结果集中各计算结果是按照同一隐私数据的多个分散密文在各存储节点中的存储顺序而排序的,或者基于同一隐私数据的多个分散密文在各存储节点中存储标签的顺序而排序的。
26.根据实施方式14所述的隐私数据的数据库操作系统,其特征在于,所述隐私数据包括金融交易数据。
27.一种多方计算引擎,其特征在于,包括多个计算节点;
各计算节点均包含存储装置和处理装置;
其中,各存储装置均存储有可供协同执行的用于对隐私数据进行数据库操作的计算机程序;以及
各所述处理装置在执行所述计算机程序时,所述多方计算引擎实现实施方式1-13中任一所述的隐私数据的数据库操作方法。
28.一种配置在多方计算引擎的计算机可读存储介质,其特征在于,存储有用于执行隐私数据的数据库操作方法的计算机程序,所述计算机程序被执行时实现实施方式1-13中任一所述的隐私数据的数据库操作方法。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (28)
1.一种隐私数据的数据库操作方法,其特征在于,所述隐私数据经一存储配置分散为分散密文并存储在多个存储节点中,所述数据库操作方法包括以下步骤:
根据所述存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;所述筛选条件语句用于指明所读取的数据所在字段,以及可读取的数据的条件;所述筛选条件语句包含字段及字段筛选条件的逻辑表达;
按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句;各计算结果集表示经隐私筛选处理相应字段所关联的加密分散密文和/或分散密文的计算结果的集合,每个计算结果集包含标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。
2.根据权利要求1所述的隐私数据的数据库操作方法,其特征在于,所述存储配置包括基于秘密分享技术而设置的分散方式。
3.根据权利要求2所述的隐私数据的数据库操作方法,其特征在于,所述分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
4.根据权利要求3所述的隐私数据的数据库操作方法,其特征在于,所述分散方式为基于Shamir秘密共享算法而设置的分散方式;所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的;
所述根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文的步骤包括:
根据所确定数量从对应数量的存储节点中读取相应字段关联的分散密文;
将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。
5.根据权利要求1所述的隐私数据的数据库操作方法,其特征在于,所述筛选条件语句的数量为多个且筛选条件语句之间具有逻辑关系,对应地,所述多方计算筛选处理指令为多个,且多方计算筛选处理指令之间具有对应的逻辑关系;所述按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理步骤包括:
按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到每个字段所关联的各隐私数据的子计算结果集;
根据各多方计算筛选处理指令之间的逻辑关系,对各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述各字段所关联的隐私数据所在条目命中或者未命中各所述筛选条件语句及其之间的逻辑关系;
其中,多个筛选条件语句中的字段不属于同一表单,且不同表单之间依据共同字段具有关联关系,多个筛选条件语句及其逻辑关系描述了对依据多个表单的关联关系而构建的条目中不同字段所关联的隐私数据进行筛选的方式。
6.根据权利要求1或5所述的隐私数据的数据库操作方法,其特征在于,还包括基于多方计算统计处理指令对所述计算结果集进行隐私统计处理,得到统计结果的步骤;其中,所述多方计算统计处理指令是通过对数据库检索语句中的数据处理语句进行解析而获得的,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式。
7.根据权利要求6所述的隐私数据的数据库操作方法,其特征在于,还包括按照外部计算节点所提供的输出配置,将所述统计结果予以输出。
8.根据权利要求7所述的隐私数据的数据库操作方法,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密;其中,所述输出明文的加密是指在输出配置中指定将计算结果集中各个计算结果的明文进行加密的方式。
9.根据权利要求1或5所述的隐私数据的数据库操作方法,其特征在于,所述计算结果集包含至少一个标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。
10.根据权利要求1或5所述的隐私数据的数据库操作方法,其特征在于,还包括按照外部计算节点所提供的输出配置,将所述计算结果集予以输出。
11.根据权利要求10所述的隐私数据的数据库操作方法,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密;其中,所述输出明文的加密是指在输出配置中指定将计算结果集中各个计算结果的明文进行加密的方式。
12.根据权利要求1所述的隐私数据的数据库操作方法,其特征在于,每个所述计算结果集中各计算结果是按照同一隐私数据的多个分散密文在各存储节点中的存储顺序而排序的,或者基于同一隐私数据的多个分散密文在各存储节点中存储标签的顺序而排序的。
13.根据权利要求1所述的隐私数据的数据库操作方法,其特征在于,所述隐私数据包括金融交易数据。
14.一种隐私数据的数据库操作系统,其特征在于,包括:
多个存储节点,各存储节点分别存储有基于一存储配置而将隐私数据分散处理后所形成的多个分散密文中的部分;
语句解析设备,用于将一数据库检索语句中的筛选条件语句对应解析成由多方计算引擎所执行的多方计算筛选处理指令;
多方计算引擎,与所述语句解析设备和各存储节点通信连接,用于根据所接收的所述多方计算筛选处理指令执行以下步骤:
根据所述存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文;其中,所述多方计算筛选处理指令是通过对数据库检索语句中的筛选条件语句进行解析而获得的;所述筛选条件语句用于指明所读取的数据所在字段,以及可读取的数据的条件;所述筛选条件语句包含字段及字段筛选条件的逻辑表达;
按照所述多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行隐私筛选处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述相应字段关联的隐私数据是否命中所述筛选条件语句;各计算结果集表示经隐私筛选处理相应字段所关联的加密分散密文和/或分散密文的计算结果的集合,每个计算结果集包含标识信息;所述标识信息用于标识依据所述多方计算筛选处理指令而执行的各计算结果。
15.根据权利要求14所述的隐私数据的数据库操作系统,其特征在于,所述存储配置包括基于秘密分享技术而设置的分散方式。
16.根据权利要求15所述的隐私数据的数据库操作系统,其特征在于,所述分散方式包括以下至少一种:基于加法计算而设置的分散方式、基于Shamir秘密共享算法而设置的分散方式。
17.根据权利要求16所述的隐私数据的数据库操作系统,其特征在于,所述分散方式为基于Shamir秘密共享算法而设置的分散方式;所述多方计算筛选处理指令包含基于待读取的存储节点的数量而设置的指令;其中,所述数量是根据所述Shamir秘密共享算法而设置的分散方式中与读取数量相关的参数而确定的;
所述多方计算引擎执行根据存储配置以及多方计算筛选处理指令中所包括的字段,分别从其中的至少两个存储节点中读取相应字段关联的分散密文的步骤包括:
根据所述数量从对应数量的存储节点中读取相应字段关联的分散密文;
将所读取的各分散密文转换成可供所述多方计算筛选处理指令处理的分散密文。
18.根据权利要求14所述的隐私数据的数据库操作系统,其特征在于,所述筛选条件语句的数量为多个且筛选条件语句之间具有逻辑关系,对应地,所述语句解析设备还将多个所述筛选条件语句之间具有逻辑关系转换成多个多方计算筛选处理指令之间的逻辑关系;
所述多方计算引擎还用于执行以下步骤:
按照多方计算筛选处理指令分别对读取自各存储节点中相应字段关联的各分散密文进行单独地隐私筛选处理,得到每个字段所关联的各隐私数据的子计算结果集;
根据各多方计算筛选处理指令之间的逻辑关系,对各子计算结果集进行隐私逻辑处理,得到被分散处理的多个计算结果集;其中,所述多个计算结果集协同描述命中或者未命中各所述筛选条件语句及其之间的逻辑关系;
其中,多个筛选条件语句中的字段不属于同一表单,且不同表单之间依据共同字段具有关联关系,多个筛选条件语句及其逻辑关系描述了对依据多个表单的关联关系而构建的条目中不同字段所关联的隐私数据进行筛选的方式。
19.根据权利要求14或18所述的隐私数据的数据库操作系统,其特征在于,所述语句解析设备还用于将数据库检索语句中的数据处理语句解析成多方计算统计处理指令;其中,所述数据处理语句用于描述对依据所述筛选条件语句而筛选出的隐私数据进行统计处理的方式;
所述多方计算引擎还用于执行以下步骤:基于多方计算统计处理指令对多个所述计算结果集进行隐私统计处理,得到统计结果。
20.根据权利要求19所述的隐私数据的数据库操作系统,其特征在于,还包括输出设备,用于按照外部计算节点所提供的输出配置,将所述统计结果予以输出。
21.根据权利要求20所述的隐私数据的数据库操作系统,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密;其中,所述输出明文的加密是指在输出配置中指定将计算结果集中各个计算结果的明文进行加密的方式。
22.根据权利要求14或18所述的隐私数据的数据库操作系统,其特征在于,所述计算结果集包含至少一个标识信息;所述标识信息用于标识计算结果集中的隐私数据是否命中相应筛选条件。
23.根据权利要求14或18所述的隐私数据的数据库操作系统,其特征在于,还包括输出设备,用于按照外部计算节点所提供的输出配置,将所述计算结果集予以输出。
24.根据权利要求23所述的隐私数据的数据库操作系统,其特征在于,所述输出配置包括:基于秘密分享技术而设置的分散方式,或者输出明文,或者输出明文的加密;其中,所述输出明文的加密是指在输出配置中指定将计算结果集中各个计算结果的明文进行加密的方式。
25.根据权利要求14所述的隐私数据的数据库操作系统,其特征在于,每个所述计算结果集中各计算结果是按照同一隐私数据的多个分散密文在各存储节点中的存储顺序而排序的,或者基于同一隐私数据的多个分散密文在各存储节点中存储标签的顺序而排序的。
26.根据权利要求14所述的隐私数据的数据库操作系统,其特征在于,所述隐私数据包括金融交易数据。
27.一种多方计算引擎,其特征在于,包括多个计算节点;
各计算节点均包含存储装置和处理装置;
其中,各存储装置均存储有可供协同执行的用于对隐私数据进行数据库操作的计算机程序;以及
各所述处理装置在执行所述计算机程序时,所述多方计算引擎实现权利要求1-13中任一所述的隐私数据的数据库操作方法。
28.一种配置在多方计算引擎的计算机可读存储介质,其特征在于,存储有用于执行隐私数据的数据库操作方法的计算机程序,所述计算机程序被执行时实现权利要求1-13中任一所述的隐私数据的数据库操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544196.3A CN112000979B (zh) | 2019-06-21 | 2019-06-21 | 隐私数据的数据库操作方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544196.3A CN112000979B (zh) | 2019-06-21 | 2019-06-21 | 隐私数据的数据库操作方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000979A CN112000979A (zh) | 2020-11-27 |
CN112000979B true CN112000979B (zh) | 2023-07-04 |
Family
ID=73461643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910544196.3A Active CN112000979B (zh) | 2019-06-21 | 2019-06-21 | 隐私数据的数据库操作方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000979B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667674B (zh) * | 2021-03-12 | 2021-06-18 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN114003962B (zh) * | 2021-12-28 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方数据查询方法及装置 |
CN115580414B (zh) * | 2022-12-08 | 2023-05-30 | 太极计算机股份有限公司 | 基于隐私计算的数据开放系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2014133133A (ru) * | 2014-08-12 | 2016-03-10 | Юрий Владимирович Косолапов | Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данных |
WO2016136201A1 (ja) * | 2015-02-23 | 2016-09-01 | 日本電気株式会社 | 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体 |
CN107592195A (zh) * | 2017-09-12 | 2018-01-16 | 北京电子科技学院 | 一种准全同态密文数据操作方法和系统 |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014174516A1 (en) * | 2013-04-25 | 2014-10-30 | B.G. Negev Technologies And Applications Ltd. | Accumulating automata and cascaded equations automata for non-interactive and perennial secure multi-party computation |
GB2532039B (en) * | 2014-11-06 | 2016-09-21 | Ibm | Secure database backup and recovery |
US10097522B2 (en) * | 2015-05-21 | 2018-10-09 | Nili Philipp | Encrypted query-based access to data |
WO2017094009A1 (en) * | 2015-12-03 | 2017-06-08 | Dyadic Security Ltd | Securing sql based databases with cryptographic protocols |
US10592482B2 (en) * | 2015-12-29 | 2020-03-17 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for identifying and analyzing hidden data relationships in databases |
-
2019
- 2019-06-21 CN CN201910544196.3A patent/CN112000979B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2014133133A (ru) * | 2014-08-12 | 2016-03-10 | Юрий Владимирович Косолапов | Способ защиты доступности и конфиденциальности хранимых данных и система настраиваемой защиты хранимых данных |
WO2016136201A1 (ja) * | 2015-02-23 | 2016-09-01 | 日本電気株式会社 | 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体 |
CN107592195A (zh) * | 2017-09-12 | 2018-01-16 | 北京电子科技学院 | 一种准全同态密文数据操作方法和系统 |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
Non-Patent Citations (2)
Title |
---|
使用秘密共享技术的医疗云数据库的隐私保护;龚庆悦;胡孔法;申俊龙;;江苏医药(第18期) * |
外包数据库系统中隐私匹配与包含关系的安全计算协议;蒋亚军;杨波;张明武;陈旭日;;计算机科学(第03期) * |
Also Published As
Publication number | Publication date |
---|---|
CN112000979A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuo et al. | Blockchain distributed ledger technologies for biomedical and health care applications | |
US10903980B2 (en) | System and method to protect sensitive information via distributed trust | |
US20200210594A1 (en) | Method and System for secure Applications using Blockchain. | |
Nagaraju et al. | Trusted framework for online banking in public cloud using multi-factor authentication and privacy protection gateway | |
CN111931250B (zh) | 多方安全计算一体机 | |
Al Omar et al. | A transparent and privacy-preserving healthcare platform with novel smart contract for smart cities | |
CN112000979B (zh) | 隐私数据的数据库操作方法、系统及存储介质 | |
Grishin et al. | Data privacy in the age of personal genomics | |
US20240005039A1 (en) | Facilitating entity resolution, keying, and search match without transmitting personally identifiable information in the clear | |
Joshi et al. | Adoption of blockchain technology for privacy and security in the context of industry 4.0 | |
Perwej | A pervasive review of Blockchain technology and its potential applications | |
CN112000978B (zh) | 隐私数据的输出方法、数据处理系统及存储介质 | |
US11886414B2 (en) | One-way hashing methodology for database records | |
Ghafourian et al. | Combining blockchain and biometrics: A survey on technical aspects and a first legal analysis | |
Narayanan et al. | A Effective Encryption and Different Integrity Schemes to improve the performance of cloud services | |
Kumari et al. | A survey on big data security: Issues, challenges and techniques | |
Sekgoka et al. | Privacy-preserving data mining of cross-border financial flows | |
Mageshwari et al. | Decentralized Data Privacy Protection and Cloud Auditing Security Management | |
CN113449320A (zh) | 一种数据库敏感数据脱敏方法及系统 | |
Komal et al. | Role Of Blockchain in Securing Patient Data for Health Care Application | |
Bogdanov et al. | K-Anonymity Versus PSI3 for Depersonalization and Security Assessment of Large Data Structures | |
US20230161907A1 (en) | Method and system for unifying de-identified data from mulitple sources | |
Divadari et al. | Managing data protection and privacy on cloud | |
US20230325528A1 (en) | Systems and methods for privacy preserving, network analytics, and anomaly detection on decentralized, private, permissioned distributed ledger networks | |
Mahmood et al. | A survey on privacy and policy aspects of blockchain technology |
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 |