跟着大数据时期的到来和赶快发展, 数据行为分娩身分, 在各产业应用中具有愈发要紧的价值, 终结数据分享具有要紧真谛.《中共中央国务院对于构建愈加完善的身分阛阓化成立体制机制的意见》中指出, 国度要加速训诫数据身分阛阓. 具体强调了要鼓吹数据绽放分享巨臀, 训诫数字经济新产业. 足以讲解终结数据分享、挖掘数据价值对将来国度经济社会发展具有要紧的战术真谛. 数据分享带来的克己是可想而知的, 举例, 又名患者在多家病院王人有病历与查验薪金等归档, 若各病院之间八成分享这些数据, 不仅匡助患者幸免重叠查验, 还能对患者病史等情况有更为全面的了解; 再如, 政务数据分割存储在不同政府部门的信息系统中, 若冲突部门壁垒终结政务大数据的整合利用, 则能优化政务行状.
然则, 现实情况中数据分享受到严重截止. 这是由于数据分散且异质料存在于渊博个体之间, 形成了数据积贮极为艰苦, 截止了数据的分享利用, 被称为“数据孤岛”问题. 为处理此问题, 产生了相应的数据集成时刻[1]. 然则, 频年来数据阴事安全保护照旧成为国表里的平庸共鸣. 举例, 在2018年5月25日, 欧盟出台了《通用数据保护条例》(general data protection regulation, GDPR); 在2021年4月30日, 世界东谈主大常委会公布了《个东谈主信息保护法(草案二次审议稿)》与《数据安全法(草案二次审议稿)》. 以上监管法案均对数据的处理与运动等作念出截止, 使得数据分享难以平庸落实应用.
日益严格的阴事保护需求进一步加重了“数据孤岛”阵势, 各数据领有方只可使用自己所握有的小规模数据, 数据难以通过分享交融积贮, 不行很好地证据自己价值. 只须买通数据间孤岛, 破除数据间分享壁垒, 才能信得过使数据行为分娩身分有用地驱动经济社会发展[2]. 因此, 联邦斟酌这一主见应时而生. 其中, 联邦这一主见是相互沉寂自治的数据领有方的集结. 联邦中的数据领有方为保护阴事, 保证原始敏锐数据不离开土产货. 联邦斟酌中, 保护阴事的中枢念念想即为“数据不动斟酌动”, 各数据领有方不径直分享数据, 而是先在各方对数据进行斟酌, 将所得中间斟酌终结进行汇总, 从而得到最终斟酌终结. 这一方式将斟酌拆分至各方, 从而幸免了数据从各方土产货流出, 因此, 联邦斟酌“数据不动斟酌动”的念念想不错沟通保护阴事要求下的数据分享方式. 在联邦斟酌中“数据不出土产货”这一前提下, 构建上述数据分享方式下的数据联邦系统中还存在以下挑战.
● 数据分享的阴事安全保险难. 有用的数据分享离不开多数据领有方的参与, 然则让联邦系统终结对多数据领有方的复古, 对底层安全操作想象建议挑战.
● 数据分享的高效安全查询难. 联邦场景中, 数据分享过程需要保护数据阴事安全, 为此需要春联邦系统进行安全想象, 然则安全斟酌代价腾贵, 保险大规模数据的高效分享同样组成挑战.
● 数据分享的异构多方合作难. 在数据分享场景下, 各数据领有方存在异构性问题, 包括数据库系统异构、数据方式异构等. 如安在保护阴事的前提下对异构多方完成适配?
现在尚未有系统八成较好地处理上述3个挑战. 泉源, 在20世纪80年代出现过的联邦数据库, 这类数据库本色是行为中间件协调多个数据库共同完成某一查询. 然则这些系统侧重处理多方数据库的异构问题与合资完成查询的拆解重写形势, 不珍爱合资查询中的阴事问题. 直到21世纪初, 一些便于设备使用的安全多方斟酌用具库[3, 4]连续开源. 于是, 自2017年, 数据联邦系统启动发展. 不同于联邦数据库, 后者愈加强调对数据领有方的数据阴事安全保护. 一些学者尝试将安全多方斟酌时刻与联邦念念想勾通, 构建保护阴事的数据联邦系统[5, 6]. 然则这些责任受限于所采纳的安全多方斟酌用具库, 仅能复古2−3方数据领有者参与.
针对上述挑战, 咱们终结了一种多方安全的数据联邦系统. 本系统由系统适配、多方安全算子库、查询引擎和交互接口组成, 八成复古多种异构数据库接入, 复古包括大肆贯串在内的多种多方安全查询操作, 并具备面向用户的息争SQL与图形化界面, 从而终结高效的多方安全数据分享. 其主要孝顺如下:
● 构建了面向多方安全的数据联邦系统. 该系统八成终结复古3方以上的多数据领有方参与的安全数据分享, 同期其配有适配接口, 八成屏蔽各数据领有方数据库系统的异构性. 系统还提供用户友好的图形化界面, 复古SQL查询并适配多种查询接口.
● 终结了复古加减乘除和比较在内的高效多方安全算子库. 算子库终结基于秘密分享框架, 涵盖的基础操作不错复古基本的数据查询操作. 针对秘密分享中的特色, 终结了高效的终结重构.
● 终结了复古包括大肆贯串在内的高效多方安全查询引擎. 基于前述基础算子, 查询引擎八成复古乞降、求平均、求最值、等值贯串和大肆贯串在内的查询操作. 同期, 在想象过程中充分议论多方特色, 利用贯串过程的传递性等特色, 保险查询操作的高效性.
本文第1节先容本系统的联系配景常识. 第2节先容本系统包括系统构架与系统责任流. 第3节和第4节分别先容系统的多方安全算子库和查询引擎. 第5节先容系统适配和交互接口. 第6节展示在圭臬测试集上的系统性能考据终结. 第7节先容干系责任. 终末在第8节对本文进行总结与揣摸.
1 配景常识在数据阴事安全保护要求日益严格的配景下, “数据孤岛”问题日益严重. 为买通数据孤岛终结数据分享, 一个要紧念念想即是数据联邦. 具体来说, 数据联邦$\mathcal{F}$可视为n个数据领有方和中心行状器C共同组成的集结, 其中, 数据领有方个数n≥3. 在数据联邦中, 不同数据领有方的数据库是异构的. 此外, 就现实应用场景而言, 数据领有方数目n每每大于3. 举例在流行病学调查过程中, 可能需要病院、舆图应用、出动支付和网约车平台等多数据领有方的合作. 又如出租车定约中, 参与定约的出租车公司数目可能在十几到几十家不等. 在某些场景中, 数据联邦中心行状器的斟酌任务可由数据领有方顺序承担.
对数据联邦中的第i个数据领有方Pi, 假定所领有的数据为di, 各数据领有方遵命的安全模子假定为半诚信模子(semi-honest)[7]. 在半诚信模子假定中, 参与方是“真诚但有趣(honest-but-curious)”的, 即参与方会真诚地投诚条约和需要扩充的代码, 但是会把柄扩充过程中取得的数据进行推断, 如果八成推断出本应该被保护的信息, 则讲解系统是不安全的. 半诚信模子是安全领域被平庸应用的假定, 况兼该假定已被现存代表性的多方安全数据库系统辖受[5, 6].
为终结联邦场景下的数据分享, 数据联邦系统需复古多方安全的联邦查询操作. 界说如下:
界说 1(联邦查询操作). 对某一联邦查询操作f: Dn→R, 其斟酌终结与对应的传统数据库查询操作终结f′: D→R应一致, 即f(d1, d2, …, dn)=f′(d1∪d2∪…∪dn). 且在斟酌中, 不应将数据领有方Pi的数据di表露给大肆其他数据领有方.
其中, 基本的联邦查询操作包括联邦乞降(f-SUM)、联邦求平均(f-AVG)、联邦求最值(f-MIN/MAX)、联邦等值贯串(f-equi-join)和联邦大肆贯串(f-θ-join)等. 这些查询操作一方面应复古多方异构数据库, 另一方面应保证安全. 即: 各数据领有方在共同完成斟酌时, 保证每个数据领有方的原始数据不出土产货. 在该安全保证下进行数据分享, 要求扩充查询操作的过程中, 各数据领有方不行将其原始数据径直发送给其他方进行斟酌.保证了各数据领有方合资在完成查询操作后, 八成得到该查询操作的斟酌终结, 但不行得到其他数据领有方的原始数据, 从而保护各方数据阴事.
底下勾通上述界说举出医疗领域的应用案例. 举例, 又名患者在多家病院王人有病历与查验薪金等归档, 若各病院之间八成分享这些数据, 则不仅不错匡助患者幸免重叠查验, 还不错对患者病史等情况有更为全面的了解. 在该应用案例中, 每一家病院行为数据领有方具有渊博患者医疗数据, 共同组成一个数据联邦. 多家病院为保护患者数据的阴事性, 需进行多方安全数据分享, 如对肝功能检测数据表把柄患者身份证号进行联邦等值贯串(f-equi-join)再进行联邦求平均(f-AVG), 即可在患者数据不出土产货的前提下, 查询患者以往肝功能检测方针的均值.
上述场景中, 系统想象的主要标的是由于联邦场景带来的数据安全标的和由此带来的斟酌支出适度的效用标的, 以及多方数据库的异构性带来的可用性标的. 以下安全标的、效用标的与可用性标的这3个系统标的分别对应前述建议的阴事安全保险难、高效安全查询难和异构多方合作难这三大挑战.
● 安全标的. 在联邦场景中, 多方相互不真是, 数据不行离开土产货. 况兼其他数据领有方可能会把柄公开的信息进行推断. 为此, 除了查询语句和查询终结对所独特据领有方公开之外, 查询用户和扫数方王人不行把柄这些公开信息推断出其他任何颠倒信息. 举例, 在多方安全乞降操作中, 用户和所独特据参与方应该只知谈最终乞降终结, 但不行推断每方各自参与乞降的准确数值. 这么不错幸免数据领有方的数据在斟酌过程被窃取. 这是多方安全数据库系统中对查询操作的常见要求[5, 6].
● 效用标的. 在联邦场景中, 查询操作的斟酌支出主要有两个来源: 泉源, 安全操作保护的对象是数据, 因此保护数据量大, 终点是在贯串操作中, 保护对象为数据列, 宏大的数据量导致腾贵的保护代价; 其次, 数据联邦场景中的查询操作需要多方参与, 处理各数据领有方的异构性问题与多方协同问题也会带来支出. 为保证系统运行效用, 需针对上述支出来源想象优化模块. 其中, 对于因为保护数据量大形成的支出, 需要想象联系的高效安全算子等进行效用优化, 提高运行效用; 对于多方协调形成的支出, 应该奥妙利用多方的并行性终结效用晋升. 系统的运行效用将影响其在应用中的性能发达, 举例, 在出租车定约中, 运行效用决定了定约平台对订单的反适时辰; 在流行病学调查中, 系统运行效用决定了病例溯源与密接排查的耗时.
● 可用性标的. 联邦场景中, 各数据领有方的数据库系统存在异构性, 因此, 本系统应终结面向异构数据库的适配息争. 此外, 为便捷多方协调, 应构建面向用户的息争SQL查询操作接口和图形化管制界面.
本系统针对上述标的终结, 具体架构和进程想象详见第2节.
2 系统概述 2.1 系统架构本系统架构如图 1所示.
系悉数分为4层, 自底层多方数据库朝上分别依次为系统适配、多方安全算子库、查询引擎和交互接口. 底层即数据联邦中不同数据领有方的数据库, 为屏蔽数据库的异构性, 为不同种类的数据库编写适配模块完成系统适配, 对应第1.2节中的可用性标的想象. 在系统适配上则是多方安全算子库与查询引擎, 这是系统的中枢模块, 分别针对第1.2节中的安全标的与效用标的而想象, 使系统八成复古安全高效的多方数据分享. 交互接口中的图形化界面与SQL查询接口则主要为便于多方用户协调, 和系统适配共同完成了第1.2节的可用性想象标的. 各层的具体功能如下.
● 本系统底层面向各数据领有方, 由各数据领有方的数据库系统组成. 议论到各数据领有方其数据库系统的异构性, 本系统可复古多种数据库系统.
● 系统适配: 本系统适配连续表层多方安全算子库下发的万般查询斟酌, 适配底层多方异构数据: 泉源适配不同数据库系统, 现在已对MySQL、openGauss、SQL Server与PostgreSQL等多种数据库系统完成适配; 其次适配不同数据方式, 构建面向用户的息争数据视图.
● 多方安全算子库: 本算子库主要包含多方安全的基础算子, 各个基础算子主要终结多数据领有方共同参与的简便斟酌, 举例多方安全的乞降算子与多方安全的求积算子等. 其斟酌过程中和会过适配接口调用各数据领有方查询土产货数据库. 多方安全算子库是构建后续联邦查询操作的基础.
● 查询引擎: 本查询引擎连续表层交互接口得到的查询, 对查询进行剖判并将其重写为对应的面向联邦的查询操作. 波及多方联总斟酌的主要有联邦团员与联邦贯串两类, 其中, 联邦团员操作基于基层斟酌层, 复古SUM、AVG和MIN/MAX这3种团员斟酌; 联邦贯串复古equi-join与θ-join两种.
● 交互接口: 本交互接口向用户提供图形化界面, 晋升系统易用性. 接考中户通过界面输入的查询并将该查询传递给基层查询引擎. 本系统复古用户使用SQL查询语句.
如前所述, 本系统中的多方安全算子库和查询引擎属于系统中枢, 其具体终结将分别在第3节和第4节先容.
2.2 系统责任进程本系统责任进程如图 2所示. 用户泉源把柄系统提供的息争视图输入SQL查询. 系统中心行状器接受该查询后将其剖判为语法树, 并对SQL查询进行谓词下推优化, 行将过滤条款下推至距数据源更近. 然后针对其中波及多个数据领有方合资参与的查询操作, 将其重写为多方安全的联邦查询操作门径. 随后, 行状器将重写的联邦查询操作的扩充计议发送给各个数据领有方, 数据领有方按照重写的进程扩充, 主要分为土产货斟酌与多方交互两部分: 泉源扩充其中对土产货数据库的查询操作, 并得到对应的查询终结; 其次, 使用多方安全基础算子, 按照条约扩充波及多方联总斟酌的部分. 终末将得到的联邦查询终结发送至行状器端, 通过使用秘密分享与安全集结求并等门径, 在保护各联邦查询终结来源的前提下得到最终查询终结, 并将该终结复返给用户.
本系统多方安全算子库复古面向多方的安全基础斟酌, 涵盖了加减乘除与比较运算, 终结对系统的多种查询操作的复古. 各算子通过基于秘密分享的安全多方斟酌时刻保险数据安全. 本系统辖受秘密分享这一安全多方斟酌时刻而非污染电路, 主若是因为秘密分享八成较好地终结对多方的复古. 现在已有的数据联邦系统如SMCQL[5]和Conclave[6]的开源部分王人是基于污染电路用具库如ObliVM[3]或Obliv-C[4]终结的, 均不复古3方以上的数据领有方参与斟酌. 而基于秘密分享的安全斟酌条约对多方参与这一要求复古精湛. 秘密分享时刻用具库主要有Sharemind[8]和MP-SPDZ[9]: Sharemind用具库并未开源, 截止了其应用; MP-SPDZ用具库的接口封装主要面向斟酌, 其多方交互方式难以与数据联邦系统兼容. 因此, 需要为本系统定制基于秘密分享的多方安全的基础算子库. 本文分别在第3.1节先容该算子库的基本框架, 在第3.2节先容算子具体扩充进程, 并以乞降算子为例详备呈报.
3.1 算子库框架本系统主要基于Shamir(t, n)方式[10]的秘密分享来想象终结基础算子. 该方式保证当某一秘密分散在n个数据领有方时, 需要至少t个数据领有方参与才能共同重构出该秘密. 基于该方式想象的多方安全算子库框架主要分为3个阶段: 秘密分发、土产货斟酌与终结重构. 底下分别针对3个阶段进行呈报.
● 秘密分发. 在秘密分发阶段, 泉源为各数据领有方分别分拨编号; 随后把柄设定的阈值t, 每方均立时生成一个最高次数项为阈值的多项式, 并将该方的输入数据行为多项式常数项; 接着, 把各数据领有方对应的编号带入到多项式斟酌得到其子秘密, 并发送给该编号的数据领有方.
● 土产货斟酌. 各数据领有方在收到其他扫数方发送的子秘密之后, 把柄不同基础算子对子秘密进行对应运算巨臀, 运算所得即为最终终结的子秘密.
● 终结重构. 大肆不小于t个数据领有方将其在上一阶段中所得最终终结的子秘密发送至中心行状器, 由于最终标的终结是高次多项式的常数项, 且该多项式次数随参与数据领有方的数目增多而增高, 中心行状器接受的子秘密为该多项式上的点. 是以由中心行状器使用拉格朗日插值法, 把柄子秘密求解出该高次多项式, 即可重构出基础算子的最终终结.
以上3个阶段中, 终结重构阶段运行支出最大, 是多方安全算子库的瓶颈场所. 这是因为该阶段使用拉格朗日插值法求解高次多项式, 产生了如下两个问题: 泉源, 终结重构阶段需要求解高次多项式, 导致斟酌支出大, 而在秘密分发阶段与土产货斟酌阶段仅波及简便的立时数生成与多项式斟酌; 其次, 常用的拉格朗日插值法求解高次多项式时存在错误问题, 况兼错误一般随多项式次数增高而增大. 针对以上两问题, 多方安全算子库把柄分治念念想更动, 得到如下斟酌框架: 针对n个数据领有方参与的基础算子, 泉源将n个数据领有方分别为多年少组; 然后在每个小组内, 通过以上3个阶段得到该小组的斟酌终结行为基础算子的中间终结; 紧接着, 将各小组得到的中间终结再通过以上3个阶段得到新的中间终结. 重叠该过程, 直至得到算子的最终终结. 该框架通过分组的形势减少每次多方安全斟酌的参与方数目, 从而缩小其中多项式的次数, 能显贵减少基础算子的错误, 同期晋升算子的运行效用.
3.2 算子扩充进程基于以上多方安全算子库框架, 本系统算子库终结了加减、乘除与比较等基础算子, 以加法算子为例进行如下详备先容. 算法1呈报了加法算子的斟酌过程, 其中, 第1行−第4行形貌秘密分发阶段的扩充法子, 各方立时生成t−1次多项式, 并代入编号斟酌子秘密然后分发; 第5行和第6行形貌土产货斟酌阶段的法子, 对于加法算子, 该阶段每方对子秘密乞降即可; 第7行形貌终结重构阶段的法子, 把柄公式(1)对t个Ri分别代入公式进行斟酌, 即可得到最终终结R.
$ R = \sum\limits_{i = 1}^t {{R_i}} \cdot \prod\limits_{j = 1, j \ne i}^t {\frac{{{x_j}}}{{{x_j} - {x_i}}}} $ (1)算法 1. 联邦乞降算子.
Input: 数据领有方P1, P2, …, Pn的数据d1, d2, …, dn与编号x1, x2, …, xn; 阈值t.
Output: 各方乞降终结R, 其中, R=d1+d2+…+dn.
1: for数据领有方Pi do
2: 立时生成多项式fi(x)=di+a1x+a2x2+…+at-1xt-1
3: 斟酌子秘密Si, 其中, Si[j]=f(xj), 1≤j≤n
4: 分发子秘密, 将Si[j]发送给Pj
5: for数据领有方Pi do
6: $ {R_i} \leftarrow \sum {{S_j}[i]} , {\text{ }}1 \leqslant j \leqslant n, {\text{ }}j \ne i $
7: 汇总大肆t方的Ri, 把柄公式(1)解得最终终结R
8: return R
图 3展示了3个数据领有方参与的加法算子运行进程. 每个数据领有方$ i $的数据为di, 编号为xi. 每个数据领有方泉源立时生成两个立时数ai1与ai2, 并得到立时多项式fi. 然后将编号代入fi斟酌, 并将子秘密f(xi)发送给第i方, 完成秘密分发阶段. 在土产货斟酌阶段, 每一数据领有方将所得子秘密乞降, 即f1(xi)+f2(xi)+f3(xi), 终点于构造了以$ \sum {{d_i}} $为常数项的多项式S. 终末, 终结重构阶段即使用S(x1), S(x2), S(x3)求解多项式S, 解得多项式S后, 常数项即为乞降算子终结.
与传统数据库系统不同, 本系统查询面向多个数据领有方组成的数据联邦, 需保护各方数据安全阴事. 是以在查询处理过程中, 当某一斟酌过程只波及数据领有方自己的数据时, 则不错在该方土产货径直明文进行查询, 毋庸议论该方数据的阴事安全问题. 而当某一斟酌有各数据领有方共同参与需进行多方交互时, 则要把柄安全条约扩充渊博安全操作, 以保护每方数据阴事安全. 是以在本系统中, 多方交互的效用是查询引擎性能的蜿蜒场所. 因此, 本系统查询引擎以减少多方交互支出为想象理念, 针对查询处理进程中查询剖判、查询计议生成与查询计议扩充的三法子开展想象. 本系统查询引擎想象了相应的剖判单元、重写单元与扩充单元完成上述进程. 以上3个单元的具体想象如下.
4.2 剖判单元想象剖判单元主要接考中户通过接口所输入的SQL查询, 由中心行状器承担其斟酌任务. 该单元泉源对输入的SQL查询进行剖判来得到查询语法树. 把柄查询引擎的想象理念, 为减少多方交互支出, 对所得语法树扩充谓词下推操作. 举例对过滤条款进行下推, 使得过滤条款不错在数据领有方土产货尽早明文扩充, 毋庸议论安全问题, 从而减少后续波及多个数据领有方参与的查询操作中数据量, 以缩小后续多方交互时的支出. 图 4以具体实例展示了剖判单元的进程与效用, 通过下推操作减少了多方安全交互波及的数据量与斟酌支出.
重写单元想象连续前一剖判单元输出下推后的语法树, 并把柄语法树生成查询扩充计议. 由于语法树上某些节点的查询操作需要多个数据领有方的共同参与, 同期议论保护各方的数据阴事安全, 因此重写单元把柄查询引擎减少多方交互支出的想象理念, 主要将波及多方的查询操作重写为保护多方数据阴事安全的联邦查询操作. 底下以数据库经典贯串操作JOIN为例, 先容重写单元想象.
● 联邦JOIN查询操作
由于本系统底层多方数据库存储对用户透明, 因此用户可把柄中心行状器提供的息争视图, 发起传统贯串查询操作L.c⋈conditionR.c, 涌现将L表与R表中基于数据列c列恬逸condition条款的元组相贯串. 而重写单元需面向底层多个数据领有方, 议论用户视角的L表与R表现实分散在多方. 由于多个数据领有方分别握有L表与R表的一部分, 因此在多方联总斟酌贯串操作时, 需要其中大肆两方均进行一次贯串操作. 然后将扫数得到的贯串中间终结汇总, 得到最终的贯串终结. 因此, 联邦查询操作的全局终结由多个两方贯串终结汇总所得. 底下以其中某两方进行贯串操作的进程为例, 简便先容在数据联邦场景下怎么进行重写.
● 两方JOIN查询操作
两个数据领有方进行保护数据阴事的安全贯串时, 数据领有方P1握有L表的部分数据L1, 数据领有方P2握有R表的部分数据R2. 径直将通盘数据表L1, R2行为安全条约的输入进行贯串, 会导致两方交互的支出极大[5]. 因此, 把柄查询引擎的想象理念, 本重写单元针对此高支出问题重写贯串操作进程, 减少两方斟酌的通讯量. 泉源, 在数据领有方土产货对数据列c列进行明文排序; 然后对于数据表L1中数据列c列第i行的值, 与数据表R2中数据列c列中第j行的值进行安全的比较斟酌, 判断是否合适condition条款. 即可在不向对方表露数据值的前提下, 判断两数据表中第i行与第j行对应的元组是否需要进行贯串. 若安全比较终结判定合适condition条款, 则可将该元组发送至中心行状器, 由中心行状器对两元组进行贯串即可; 若安全比较终结判定不合适condition条款, 则两元组毋庸贯串. 不绝重叠以上法子, 将数据表L1中数据列c列第i行的值与数据表R2中数据列c的其他行进行比较, 直至数据表L1中数据列c上扫数值均与数据表R2完成比较.
通过以娴雅程想象, 缩小了两边交互的支出, 使得两个数据领有方只须数据表中的一个数据列参与安全比较条约的斟酌. 本系统把柄传递性念念想, 进一步减少两边贯串的交互支出. 由于贯串操作的数据列在两方土产货是有序的, 因此对于数据表L1中数据列c列第i行的值, 毋庸遍历R2中数据列c列的扫数值, 可通过二分搜索定位. 通过二分搜索减少两边贯串时需要进行的安全比较次数, 从而缩小两边交互支出.
● 全局JOIN查询操作
以上重写进程八成安全完成两个数据领有方之间的贯串操作. 然则联邦贯串查询中, 每一数据领有方Pi均握独特据表Li, Ri, 因此还需想象怎么由多个的两方贯串汇总得到全局贯串操作终结. 本单元同样把柄传递性的念念想, 减少汇总过程中的多方间交互的通讯量. 以等值贯串为例, 当数据领有方P1分别与数据领有方P2、数据领有方P3均进行两方的安全贯串操作之后, 则数据领有方P1可把柄两次贯串终结的错乱, 推断出该错乱部分既存在于数据领有方P2同期也存在于数据领有方P3. 那么数据领有方P2与P3进行安全贯串操作时, 则毋庸对该部分再重叠进行安全比较. 通过该形势组织多方进行贯串操作, 可减少两方间参与安全操作的斟酌量, 减少交互支出.
4.4 扩充单元想象扩充单元连续前述单元制定的联邦查询计议, 调理各个数据领有方扩充该计议. 计议中的每一联邦查询操作均在上一重写单元被重写, 则这些联邦查询操作在扩充时需调用算子库中对应的多方安全基础算子. 举例, 针春联邦JOIN查询操作, 两方进行贯串时需调用比较算子来判定是否合适贯串的拘谨条款; 针春联邦SUM查询操作, 各数据领有方土产货扩充SUM操作之后, 需对所得值调用安全乞降算子, 该算子斟酌终结为联邦SUM查询操作的终结.
前述单元想象的基础算子与查询操作的进程, 具有精湛的可并行性. 在本扩充单元中, 调理各数据领有方在对应进程中并行化部分斟酌操作, 以晋升系统的运行效用. 对于基础算子的扩充过程, 由于多方安全算子库中算子均基于秘密分享的框架想象, 因此各方把柄分治念念想分组进行算子的斟酌, 是以以组为单元扩充算子斟酌时均可并行; 对于联邦团员查询操作, 各数据领有方泉源在土产货扩充对应数据库查询操作, 该土产货斟酌不错各方为单元并行扩充; 其次, 各方调用算子库算子进行多方中间终结的团员, 该法子可使用前述基础算子的并行化; 对于联邦贯串查询操作, 由于全局贯串终结由多个两方接连合果汇总组成, 因此每两方扩充贯串操作的过程均不错两方为单元并行化.
4.5 查询操作的安全性分析本系统行为面向数据联邦的多方安全数据联邦系统, 需保护各数据领有方的原始数据不出土产货, 即各方扩充查询操作进程后不错得知终结, 但不行得知其他方的原始数据. 对基础算子、团员操作与贯串操作的安全性分析如下.
● 基础算子安全性分析. 本系统多方安全算子库基于秘密分享的安全多方斟酌时刻终结, 把柄安全多方斟酌界说, 此类算子对函数f(x1, x2, …, xn), 保证各方不获取其他方xi的要求下得到函数斟酌终结[11].因此, 在本系统多方安全算子库中的操作能保证各数据领有方的数据不表露给其他方, 同期完成斟酌要求得到斟酌终结, 合适数据联邦场景下的安全要求.
● 联邦团员查询操作安全性分析. 本系统复古团员操作, 此类操作斟酌进程主要分为土产货斟酌与多方交互两部分: 土产货斟酌部分由各数据领有方自治数据完成斟酌, 不波及数据阴事表露的安全问题; 多方交互部分操作径直调用基础算子进行团员斟酌, 并得到最终团员终结. 因此, 多方交互部分的安全性由基础算子进行保险, 已在前续段落进行分析.
● 联邦贯串查询操作安全性分析. 本系统复古贯串操作, 主要将其斟酌进程拆分为扫数方两两进行贯串后, 汇总全局贯串终结. 在两方进行贯串时, 泉源对贯串基于的数据列调用安全比较算子来判定是否合适贯串条款, 在该判定过程中, 安全比较算子保证参与两边在不获知对方数据前提下得到判定终结; 然后, 两边把柄判定终结将合适条款的元组发送给中心行状器进行贯串, 这些元组行为贯串终结也毋庸保护, 合适系统安全要求. 在汇总全局贯串终结时, 由于该斟酌只波及各方所得贯串终结, 且这些贯串终结均包含在最终全局贯串终结内, 因此汇总过程也毋庸进行保护. 而当联邦贯串操作后续紧跟团员操作时, 各方在取得判定终结后不将元组发送给中心行状器进行贯串, 而是径直在判定合适贯串条款的元组上进行联邦团员操作, 幸免贯串终结表露. 因此, 联邦贯串查询操作尽可能地幸免表露原始数据.
5 系统适配与交互接口 5.1 系统适配本系统针对底层多个数据领有方间的数据异构问题, 提供面向不同数据库系统的适配接口与不同数据表方式的适配接口. 对底层数据领有方不同的数据库系统, 本系统已适配如MySQL、openGauss、SQL Server与PostgreSQL等多种数据库系统的操作接口. 对底层数据领有方不同的数据表方式, 本系统在视图构建法子为各数据领有方提供数据表方式的上传接口, 各方将参与数据联邦分享的数据方式通过接口授至中心行状器.中心行状器把柄各方数据方式构建面向用户的息争数据视图, 并构建息争视图与各方数据方式间的映射关系, 以对用户屏蔽底层数据异构性.
5.2 交互接口本系统为用户提供易于使用的图形化界面, 该界面功能主要有两个: 一是向用户展示数据联邦的息争数据视图, 供用户基于本数据视图进行查询; 二是向用户提供查询操作功能, 本系统复古SQL语句查询, 用户在对应操作框内输入SQL查询, 即可对多方数据进行合资查询(如图 5所示).
● 实验环境
本次实验需要搭建联邦场景, 实验使用多台机器模拟多数据领有方参与的情况. 每台机器配有1个CPU (型号: Intel®Xeon®Platinum 8269CY CPU T 3.10 GHz)和32 GB内存, 操作系统为Ubuntu 18.04.5 LTS (Bionic Beaver). 具体而言, 选用一台机器运行中心行状器程度, 其他每台机器运行一个数据领有方程度, 并为每个数据领有方构建其数据库. 在查询操作扩充的过程中, 各程度协同完成斟酌. 由于不同的数据参与方信得过位于不同的机器上, 因此终结了各方数据物理分散存储. 不同于在单机上通过杜撰机模拟联邦场景的形势, 数据的分散存储更容易考据“数据不出土产货”, 实验竖立更为真实.
● 测试数据
实验选用测试数据集为TPC Benchmark™H (TPC-H)[12]. 该数据集由含有万般商品信息的数据表组成. 咱们选用其中1 GB的数据构造数据领有方数据库. TPC-H数据集被平庸用于数据库系统的性能测试分析中[13], 其实验终结具有参考真谛.
● 有观看方针
实验中, 使用查询语句的扩充时辰行为系统运行效用的量化有观看方针.
● 比较系统
本次实验及第了最具代表性的两个复古多方安全的数据联邦系统SMCQL[5]和Conclave[6]. 此外, 为了更进一步考据本系统的高效性和规模可彭胀性, 及第安全多方斟酌用具库MP-SPDZ[9]行为比较系统.
6.2 系统性能比较泉源分析本系统同代表性多方安全数据联邦系统SMCQL和Conclave的现实应用性能互异. 具体比较单一查询操作和复合查询语句, 以此全面检会系统的应用性能.
6.2.1 单一查询操作系统性能比较SMCQL和Conclave系统所复古的最大数据领有方数目分别为2和3, 经过适宜修改, SMCQL可复古最多在3个数据领有方上的单一查询操作. 因此在参与方个数为3的场景下进行对单一查询操作进行比较, 3个系统在乞降(SUM)、求平均(AVG)、求最值(MIN/MAX)、等值贯串(equi-join)和大肆贯串(θ-join)的操作性能比较的比较如图 6所示, 其中, 贯串操作的左表规模为20万行, 其中, 表规模指所独特据领有方参与贯串操作的表规模之总额.
从实验比较终结不错看出, 跟着运行数据规模的增多, 不同系统的贯串操作耗时赫然增多, 乞降、求平均、求最值操作耗时增幅较小. 但咱们所终结的系统恒久八成保握最优性能, 且时辰支出最小仅为SMCQL和Conclave的0.3%和29.7%.
6.2.2 复合查询语句的系统性能比较复合查询语句是单一查询操作的轮廓, 但由于SMCQL系统的复杂性和终结问题, 不易径直修改使其复古数据领有方高出3的多方场景[13]. 因此, 本节聚焦于和Conclave比较. 基于TPC-H数据集结的复合查询语句具体如图 7所示, 两系统扩充性能比较如图 8所示.
实验终结标明, 本系统的效用八成显贵优于Conclave, 效用上风最高可达3.75倍.
轮廓上述实验终结, 本系统在现在八成复古多方安全的数据联邦系统中达到了最优性能. 更进一时事, 本系统的另一大上风在于八成复古高出3方的数据查询操作, 底下的实验勉强此张开考据.
6.3 多方性能分析在数据领有方多于3方时, SMCQL和Conclave两系统均已无法应用. 为此, 选择了安全多方斟酌用具库MP-SPDZ[9]. 行为比较系统, MP-SPDZ终结了复古多方的安全代数运算, 不错行为本系统基础算子的比较对象. 实验进一步考据了本系统的查询操作在多方情况下的性能发达. 由于乞降与求平均操作仅仅基础算子的简便叠加应用, 因此要点考据了等值贯串和大肆贯串的操作性能.
6.3.1 贯串操作的多方性能分析本节实验考据本系统的贯串操作在多方场景下的性能发达. 本系统的等值贯串与大肆贯串操作时辰支出随数据领有方数目增多的时辰支出如图 9所示.
不错看到, 在不同数据领有方数目的情况下, 本系统恒久保握较为快速的性能发达, 况兼八成在和径直明文上斟酌支出出入不大的情况下有用保护数据安全.
6.3.2 基础算子的多方性能分析本系统的基础算子加法、乘法和比较运算与MP-SPDZ、明文上斟酌的性能比较如图 10所示. 由于减法和加法之间、除法和乘法之间较易更变, 故不详其比较.
不错看到, 3类基础算子的性能比较中, 跟着数据参与方增多, 时辰支出随之增多. 对于乘法和比较算子, 本系统的算子扩充效用恒久快于MP-SPDZ, 更为接近在明文上斟酌的性能. 对于加法算子, 诚然略慢于MP- SPDZ, 但是效用出入较小. 因此, 本系统不错在较少的时辰支出代价下终结数据安全保护的要求.
轮廓上述实验, 本系统在数据领有方数目增多的情况下依然保握了更好的性能. 这讲解本系统不仅八成在扩充效用上优于现存的SMCQL和Conclave系统, 也能在规模可拓展性上显贵超过现存系统.
7 干系责任本文所终结的系统是在联邦场景下的多方安全数据联邦系统. 不同于20世纪80年代产生的联邦数据库主见, 这类系统聚焦数据库异构问题, 旨在终结异构数据库系统间的合作. 频年来, 跟着对用户数据安全保护的加强, 联邦场景下多方安全的数据库系统主见应时而生, 又称为数据联邦系统. 这类系统不仅八成复古异构数据库的合作, 而且把稳保护多方合作中数据的安全性问题. 这类系统终结数据安全保护主要依赖安全多方斟酌时刻. 底下分别先容联邦数据库时刻、多方安全数据联邦时刻和安全多方斟酌时刻的干系责任.
7.1 联邦数据库时刻联邦数据库系统[14]是在20世纪80年代建议来的主见, 这类数据库系统并非实体存在的数据库, 它是介于底层多个数据库与表层用户之间的中间件. 它八成屏蔽底层多个数据库间的异构性, 对用户发达为一个息争的数据库, 是运行在各数据库上的杜撰数据库.
联邦数据库系统底层的多个异构数据库既相互沉寂又共同合作. 不同于传统的散布式数据库, 联邦数据库需要各个数据库共同合作完成数据的存储查询修改等功能. 联邦数据库系统底层中的各数据库具有一定的自治性, 其领有方数据库土产货沉寂操作、沉寂运行. 联邦数据库系统的应用配景源自公司收购后的数据管制.举例, 当公司A收购公司B后, 需要把公司B的数据纳入管制. 这一过程可能会因为两公司数据库不兼容受到窒碍. 联邦数据库时刻八成处理此问题. 通过构建联邦数据库管制系统并将B公司数据库系统接入, 公司A毋庸将公司B的所独特据移动至公司A的数据库系统中, 只需通过联邦数据库系统与公司B合资处理数据. IBM公司推出的DB2数据管制系统[15]中即复古该联邦数据库.
这类联邦数据库时刻中的联邦主见蕴含了多方协同、各方异构自治的特色, 然则并不波及多方数据中的数据阴事安全问题, 因此和本文探讨的联邦场景及多方安全数据库主见还存在较大互异. 本文聚焦的联邦场景偏执联系责任详见第7.2节.
7.2 面向多方安全的数据联邦时刻跟着海外和国内对用户数据阴事保护要求的日益加强, 传统联邦数据库不议论数据安全径直开展数据分享的门径已不适用. 为应酬数据安全挑战, 面向多方安全的数据联邦时刻兴起. 这类系统不错终结多数据领有方合作完成查询操作的同期, 保证参与斟酌的敏锐数据不泄漏, 从而保护数据安全.
Bater等东谈主于2017年建议了SMCQL数据联邦系统[5], 该系统八成复古在两个数据领有方的数据库上头进行安全地查询. SMCQL系统把数据表每一列的拜谒权限分别为全球(public)和独特(private), 不同权限对应不同分享安全需求. 举例, 全球列的值默许不错分享, 因此如果查询中的运算仅波及全球列数据, 则不错径直明文斟酌, 和传统数据库斟酌形势一样; 而如果查询中的运算过程波及独特列, 则需要在保证原始独特数据不离开土产货的前提下张开查询操作, 从而终结数据不泄漏的安全性要求. 该系统诚然八成保证独特数据安全, 但因保险安全带来了巨大的运行时辰支出, 且仅能复古两个数据领有方, 效用和参与方规模的彭胀性问题截止了该系统的应用.
Volgushev等东谈主在2019年建议了Conclave数据联邦系统[6], 该系统为了适度保险安全带来的时辰支出, 建议了上推(push up)、下推(push down)和夹杂条约(hybrid protocol)等查询优化. 这些优化的中枢念念想王人是尽可能把查询操作的斟酌在数据领有方里面完成, 从而减少数据领有方之间的数据交互, 进一步缩小安全保护带来的时辰支出. 该系统在效用上较之SMCQL有所晋升, 但系统最多复古3个数据领有方, 应用场景有限.
现在, 数据联邦系统终结安全操作的念念路基本一致, 即把SQL语句移动为安全操作原语再扩充. 这些安全操作原语使用了安全多方斟酌时刻, 这类时刻八成终结多方相互不泄漏敏锐数据的情况下进行联总斟酌, 契合了数据联邦的安全需求. 底下将具体先容安全多方斟酌时刻的联系责任.
7.3 安全多方斟酌时刻安全多方斟酌(secure multi-party computation, SMC)是当代密码学发展中为处理安全斟酌问题而建议的一类密码条约集结, 它处理了在一些互不信任的参与方之间联总斟酌一个函数的问题. 该时刻最早是由姚期智院士于1982年建议的百万大亨问题引出的[11]. 在安全多方斟酌所珍爱的问题可面孔化表述为: n个斟酌参与方分别握独特据x1, x2, …, xn, 条约目标是利用各方秘密数据斟酌一个事前达成共鸣的函数y1, y2, …, yn=f(x1, x2, …, xn). 此时, 大肆一方不错得到对应的终结yi, 但无法取得其他任何信息. 为处理这一问题, 两大常见的时刻有污染电路(garbled circuits, GC)[16]与秘密分享(secret sharing, SS)[17]两种时刻. 两类时刻的具体先容如下.
7.3.1 污染电路污染电路时刻是一种将斟酌函数更变成布尔电路, 对真值表进行加密打乱进行斟酌的一种时刻, 是处理两方之间的安全斟酌问题的通用框架. 该时刻可应用于可考据斟酌[18]、KDM(key-dependent message)安全性[19]等, 也可在生计中平庸应用于保护阴事的医疗会诊[20]、拍卖机制[21]与信息检索[22]等. 该模子最早是由图灵奖取得者姚期智院士在1986年建议的半真诚模子下的姚氏电路[23], 用来处理百万大亨问题. 姚氏电路的主要责任是将大肆功能的函数移动为布尔电路, 电路有两个参与方Alice和Bob, 其中, Alice把柄逻辑电路产生真值表, 再以线缆对应的字符串为密钥, 针对每一个电路门进行两重对称加解密运算, 生成污染密文表; Bob调用不经意传输(oblivious transfer, OT)条约[24]获取其输入的字符串面孔, 并以此字符串及Alice发送的字符串为密钥, 逐行试解污染密文表. 频年来, 由Liu等东谈主和Zahur等东谈主分别建议了基于污染电路的用具库ObliVM[3]和Obliv-C[4]. 该用具库构建一套面向设备者的高档模范谈话, 八成径直将设备者撰写的模板代码编译为污染电路, 从而大大缩小设备难度. 事实上, 前边所述的SMCQL系统就使用了ObliVM构建污染电路以保证安全斟酌, 而Conclave则部分使用了Obliv-C. 但是这两个用具库采纳污染电路行为安全后端, 在斟酌效用上发达上略差, 举例, ObliVM用具库只可负载不及100 KB的数据输入量[13].
7.3.2 秘密分享秘密分享是安全多方斟酌中的另一种要紧门径, 它的念念想是: 将秘密拆解分为多个部分(子秘密), 然后将每部分发送给对应的参与者, 使得终末只须授权的参与者集结的子集协同重构出原始的秘密, 而其他大肆的非授权的参与者子集无法重构原始的秘密. 秘密分享除了诈欺在安全多方斟酌之外, 其泉源是用于安全信息存储的问题[25], 还不错用于密钥分发[26]、拜谒适度[27]等, 在生计中也可应用于电子投票[28]、版权确权[29]和机器学习阴事保护[30]等. 秘密分享最早是由Shamir[10]和Blakley[31]引入的. 他们建议的是一种阈值的秘密分享, 即, 只须恬逸参与者集结的子集的大小大于某个阈值的任何集结王人能构造出原始的秘密. Shamir方式的秘密分享斟酌进程主要利用拉格朗日插值旨趣: 泉源, 立时选择一个多项式, 将分发者的输入行为多项式的常量项; 然后, 用此多项式来斟酌分发给各个参与者的子秘密, 通过拉格朗日插值法不错知谈恬逸参与者集结的大小大于指定的阈值时, 就不错重新构造出原始的多项式, 从而得到原始的秘密. 同样也有基于秘密分享门径的多方安全斟酌用具库, 举例Sharemind[8]和MP-SPDZ[9]. 前述数据联邦系统Conclave就使用了Sharemind, 但该用具库最多复古3个斟酌方参与况兼未开源, 因此在使用上存在截止.
8 总结与揣摸本文针对日益严格的数据阴事安全保护前提下和数据分享需求, 想象并终结了联邦场景底下向多方安全的数据联邦系统. 系统自底朝上终结了系统适配、多方安全算子库、查询引擎、交互接口, 八成屏蔽底层数据库异构脾性, 向用户提供息争且友好的操作界面, 并终结数据阴事安全保护前提下的数据分享. 具体来说, 本文责任总结如下.
● 终结了系统多方安全算子库与查询引擎. 基于秘密分享框架终结了包括加减乘除比较在内的高效的安全基础算子. 在此基础上构建查询引擎, 复古包括乞降、求平均、求最值、等值贯串和大肆贯串的数据库基本查询操作. 查询引擎的想象与终结上充分议论多方合作脾性, 在查询语句的剖判、查询计议生成和查询操作扩充的全进程中贯彻土产货操作优先、减少传输冗余的念念想, 最大限制压缩了数据领有方之间的数据交互, 从而极地面缩小了安全支出, 提高系统性能.
爱啦啦视频在线观看● 终结了系统适配和交互界面. 系统适配接口面向多数据领有方的数据库, 屏蔽其异构性, 而交互界面则面向用户提供息争的SQL语句查询接口和图形化交互界面, 便捷数据分享过程的息争协调与管制, 提高易用性.
● 实验考据了系统性能. 在圭臬数据集TPC-H上的实验终结标明, 与现在的数据联邦系统SMCQL和Conclave比较, 本系统八成复古高出3个数据领有方以上的数据联邦场景, 况兼在万般基本查询操作和复合查询上王人发达出更高的效用. 本系统的高效性和规模可彭胀性标明, 其具有比刻下主流数据联邦系统更高的实用性.
本系统的将来责任如下.
● 彭胀系统复古查询操作范围. 现在, 系统基于秘密分享这一基础多方安全斟酌念念想, 终结了如团员、贯串等操作符, 但与锻真金不怕火的数据库系统比较, 本系统复古的功能还较为有限. 可在现在系统已有基础上, 进一步拓展窗口等操作.
● 基于现存基础算子终结更为复杂的数据挖掘分析算法. 本系统现在已复古简便的查询操作巨臀, 可基于已终结乞降、求积等算子构造更为复杂的数据挖掘分析算法, 举例聚类算法、纪念算法等, 进一步在保护阴事前提下, 挖掘多方数据所蕴含的价值.