当前位置: 首页 > news >正文

隐私计算实训营学习七:隐语SCQL的架构详细拆解

文章目录

  • 一、SCQL Overview
    • 1.1 SCQL背景
    • 1.2 SCQL Overview
  • 二、SCQL CCL
  • 三、SCQL架构

一、SCQL Overview

1.1 SCQL背景

SCQL:属于隐私计算BI范畴,允许多个互不信任参与方在不泄露各自隐私数据的条件下进行联合数据分析。
在这里插入图片描述
如下数据在不同机构,同时又要保护原始数据不泄露,需要使用多方数据分析技术,目前主要有两种技术路线:

1、基于可信执行环境TEE SQL: 数据需要出域,数据方首先将数据加密上传到可信执行环境里,可信执行环境能够保证数据安全,在可信执行环境进行计算。

​ 优点:效率高。

​ 缺点:数据要出域,信任根在硬件提供商。

2、多方安全计算MPC SQL: 数据不需要出域,数据拥有方需要部署计算节点,通过MPC协议进行计算。

​ 优点:数据不出域。

​ 缺点:性能较低,规模受限。
在这里插入图片描述
在这里插入图片描述

1.2 SCQL Overview

SCQL(Secure Collaborative Query Language):是MPC SCQL的一个解决方案,系统组件主要有SCDB与SCQLEngine。

SCDB: 部署在可信第三⽅,负责将 query 翻译成密态执⾏图,下发给 SCQLEngine,本身不参与计算。

SCQLEngine: 部署在数据参与⽅,负责协同其他参与⽅⼀起完成执⾏图的计算。
在这里插入图片描述
SCQL特性:

  1. 半诚实安全模型。

  2. ⽀持多⽅(N>=2)。

  3. 易上⼿,提供 MySQL 兼容的 SQL ⽅⾔⽤户界⾯。

  4. ⽀持常⽤的 SQL 语法和算⼦,满⾜⼤部分场景的需求。

  5. 可实⽤的性能。

  6. 提供列级别的数据使⽤授权控制(CCL)。

  7. ⽀持多种密态协议(SEMI2K/CHEETAH/ABY3)。

  8. 内置⽀持多种数据源接⼊(MySQL,Postgres, CSV 等)。

应用场景: 适用于任何多方数据分析场景。
在这里插入图片描述

二、SCQL CCL

       当前业内基于多方数据分析的安全保障模型审核强度大、周期长、效率低;因此提出CCL的多方数据分析安全保障模型,数据拥有方首先设置数据如何被使用的限制,若未通过CCL检查则直接被拒绝,若通过再由审核员确认,减轻审核员负担。

CCL(Column Control List): CCL 是一种约束机制,使得数据拥有者可以使用CCL描述每列数据在使用过程中的约束,数据分析引擎确保所有执行过程严格满足约束条件。他是一个三元组<src_column, dest_party, constraint>,数据拥有方允许某列数据(src_column)被某个参与方(dest_party)以满足某种约束条件下进行访问。 不满足CCL约束一定不安全,满足CCL约束不一定安全。

例如:Alice对Bob的约束为,Alice table A的salary字段对Bob的权限必须经过聚合操作(sum/avg/min/max)后才能对Bob可见。
在这里插入图片描述
目前CCL定义的六种约束:
在这里插入图片描述

三、SCQL架构

SCQL架构:

  1. 用户发起一个Query后会先经过Session Manager,Session Manager首先会校验用户身份信息;
  2. 检查通过后会经过Parser解析成语法树AST;
  3. Planner会将AST构建成逻辑执行计划;
  4. 若Query为DDL/DCL语句会直接用SCDB的Executor进行处理,否则将由Translator(会在多种约束条件下选择最优协议,然后选择最佳执行逻辑)将逻辑执行计划翻译成密态执行图;
  5. 在翻译前会先检查CCL,只有CCL检查通过才会进入Graph Optimizer会运用图形化算法对执行图进行优化(节点合并或消除),还会得到一张全局图;
  6. 最后Graph Spliter会将图按照参与方进行切分,每个参与方会看到自己参与计算的节点构成的子图,最后下发给SCQL Engine进行执行;
  7. SCQL Engine得到执行图后,一般会先执行run SCQL节点从数据源读取数据,再使用MPC协议与对方的SCQL Engine配合协作完成计算;
  8. 计算完成将结果汇报给SCDB,SCDB将结果返回给用户。
    在这里插入图片描述
    在这里插入图片描述
    示例如下:在条件ta.reduce_long_0 > tb.reduce_long_0,alice.tbl_0与bob.tbl_0进行join后,查询ta.join_long_0结果。
    在这里插入图片描述

相关文章:

  • 数据库的基本操作
  • 面试题多态结合线程
  • 【TI毫米波雷达】IWR6843AOP的官方文件资源名称BUG,选择xwr68xx还是xwr64xx,及需要注意的问题
  • 【测试面试题】14题常见APP测试面试题(参考答案)
  • 加州大学欧文分校英语基础语法专项课程02:Questions, Present Progressive and Future Tenses 学习笔记
  • Inotify
  • Linux网络编程二(TCP图解三次握手及四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)
  • DNS以及dnsmasq 搭建 dns 局域网(2)
  • 每日五道java面试题之ZooKeeper篇(一)
  • AWS-EKS 给其他IAM赋予集群管理权限
  • set feedback 和set define
  • MySQL 行锁和表锁是什么?区别,作用等学习总结
  • 【算法】求平方根 - 二分法/牛顿迭代
  • 如何高效学习Python编程语言
  • Jenkins安装了locale汉化插件后出现部分翻译,部分没翻译的情况
  • extjs4学习之配置
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java深入 - 深入理解Java集合
  • Map集合、散列表、红黑树介绍
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • python学习笔记 - ThreadLocal
  • Redis的resp协议
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Cloud中负载均衡器概览
  • 不上全站https的网站你们就等着被恶心死吧
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 通过git安装npm私有模块
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 找一份好的前端工作,起点很重要
  • 《码出高效》学习笔记与书中错误记录
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 大数据全解:定义、价值及挑战
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #pragam once 和 #ifndef 预编译头
  • #pragma multi_compile #pragma shader_feature
  • (09)Hive——CTE 公共表达式
  • (ZT)薛涌:谈贫说富
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (九)信息融合方式简介
  • (三)mysql_MYSQL(三)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .“空心村”成因分析及解决对策122344
  • .bat批处理出现中文乱码的情况
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .net 流——流的类型体系简单介绍
  • .NET处理HTTP请求
  • .Net组件程序设计之线程、并发管理(一)
  • []常用AT命令解释()
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [Angularjs]asp.net mvc+angularjs+web api单页应用