目录
一、模块架构
二、模块详解
三、算法协议
四、学习路线
一、模块架构
良好的分层设计可以提高开发效率和可维护性,满足不同用户的需求。隐语从上到下一共分为六层。
●产品层:通过白屏化产品提供隐语整体隐私计算能力的输出,让用户简单直观体验隐私计算,屏蔽隐私计算底层细节,节约开发成本;
●调度层:提供隐私计算任务的编排与资源调度能力;
●AI & BI 算法层:屏蔽隐私计算技术细节,提供一些通用的算法能力,比如 MPC 的 LR/XGB/NN,联邦学习算法等;
●设备层:提供了统一的可编程设备抽象,将 MPC、HE 等隐私计算技术抽象为密态设备,将单方本地计算抽象为明文设备;
●安全协议层:提供密码原语能力,支持高安全、高性能的协议;
●硬件层:支持TEE可信硬件。
二、模块详解
隐语各模块的侧重点不同,下表是模块的详解以及相关文档:
层级 | 模块 | 模块简介 | 模块依赖关系 |
产品层 | SecretPad | 隐语打造的 AI 与数据分析平台,可快速帮助用户体验隐语核心能力。 | SecretPad 集成了 SecretFlow 和 TrustedFlow 的能力,在使用时通过 Kuscia 调用下层模块。 |
Easy PSI | 独立 PSI 轻量级白屏产品,满足用户想要单独使用 PSI 的需求。具有轻量化部署、使用门槛低等优点。 | Easy PSI 依赖 PSI 模块中的隐私求交能力,在使用时通过 Kuscia 调用下层模块 PSI 。 | |
调度层 | Kuscia | 基于 K3s 的轻量级隐私计算任务编写框架,旨在增强基础设施和协议,并提供统一的隐私计算基础 | 目前已支持 SecretFlow 、TrustedFlow 、 Serving 在 Kuscia 上运行,对 SCQL 的支持正在建设中。 |
Kuscia Envoy | Envoy 是一个开源的边缘和服务代理。在控制平面中,Envoy 是节点与 Master、Master 与 Master 之间的流量代理,从 DomainRoute Controller 接收路由规则和身份认证、鉴权策略。 | Envoy 将发送给互联互通合作方 Master 的请求转发到对端的 Envoy(若对端非 Kuscia 架构,则转发给对端网关),同时对来自节点和互联互通合作方 Master 的请求进行身份认证和鉴权,将合法请求转发给 K3s 的 ApiServer 或 Kuscia Storage 。 | |
AI&BI 算法层 | PSI | 隐语 PSI 和 PIR 的仓库,为 SecretFlow 、SCQL 、SecretPad 和 Easy PSI 提供隐私求交和隐匿查询功能。 | PSI 为 Easy PSI 提供隐私求交能力、为 SecretFlow 提供隐私求交和隐匿查询能力; PSI 依赖于 YACL 的密码能力。 |
SecretFlow | 隐语核心算法模块,为用户提供了丰富的隐私集合求交、隐匿查询、预处理、MPC机器学习、联邦学习(含拆分学习)等核心算法。 | SecretFlow 依赖于 PSI 的能力;依赖于Serving,Secretflow 目前的算子可以导出的模型遵循的是 Serving 的设计,这样的模型可以被 Serving 服务化;SecretFlow 将 MPC、HE 抽象为 SPU、HEU 设备。 | |
Serving | 用于保护隐私的机器学习模型的服务系统,主要提供模型预测能力。 | Serving 依赖了 YACL 中的一些基础功能,为 SecretPad 提供加载模型服务化的能力。 | |
SCQL | 将 SQL 语句转换为明密文混合执行图,并在联合数据库系统上执行。是一个允许多个互不信任参与方在不泄露各自隐私数据的条件下进行联合数据分析的系统。 | SCQL 依赖 PSI、SPU、HEU、YACL 模块。 | |
TrustedFlow | 隐语基于可信硬件的隐私保护引擎,立足于可信执行环境技术,提供受保护和隔离的环境,其中封装了敏感数据,并且提供数据安全存储和计算能力。 | TrustedFlow 由 TeeAPPs、CapsuleManager、CapsuleManager SDK 三个模块组成,依赖 TEE 硬件。 | |
设备层 | SPU | 基于 MPC 的密态计算设备,旨在提供具有可证明安全性的安全计算服务。SPU 可以被视为可编程设备,它并不是为直接使用而设计的。通常我们使用 SecretFlow 框架,该框架使用 SPU 作为底层安全计算设备。 | SPU 为 SecretFlow、SCQL 提供安全计算能力,依赖于 YACL 的密码协议。 |
HEU | 基于 HE 的隐语密态设备,实现了高性能的同态加密算法,降低同态加密的使用门槛,使得用户无需专业知识就能利用同态加密算法构建任意程序。 | HEU 为 SecretFlow、SCQL 提供同态加密能力,依赖于YACL的密码协议。 | |
安全协议层 | YACL | 安全密码库,包含其他 SecretFlow 代码所依赖的常见密码学、网络和 io 模块。Yacl 中的加密模块实现了许多最先进的安全计算协议,包括 OT、VOLE、TPRE 等原语以及 PRG、RO 等工具。 | YACL 为 PSI、SPU、HEU、SCQL、Serving 提供基础密码能力。 |
三、算法协议
隐语结合最新的隐私计算领域研究成果,提供了一系列高效、强大的算法。以下是我们支持的主要算法列表:
分类 | 算法 | 协议/算法 | 算法说明 |
PSI & PIR | PSI | ECDH-PSI (2PC) | 基于半诚实 ECDH 的两方 PSI 协议 |
ECDH-PSI (3PC) | 基于半诚实 ECDH 的三方 PSI 协议(存在已知泄漏) | ||
KKRT16-PSI | 基于半诚实 OT 的两方 PSI 协议 | ||
BC22 PCG-PSI | 基于半诚实 PCG/VOLE 的两方 PSI 协议(提高了通信效率) | ||
DP-PSI | 差分隐私 PSI 协议 | ||
EDCH-OPRF PSI | 基于 ECDH-OPRF 的非平衡两方 PSI 协议 | ||
RR22 PSI | 基于半诚实和 VOLE 的高效 PSI 协议 | ||
PIR | SealPIR | 基于同态加密的 PIR 协议 | |
Labeled PSI | 基于同态加密的 PIR 协议 | ||
MPC | LR | SS-SGD | 基于秘密分享实现的针对垂直划分数据集的线性回归和二分类回归算法 |
HESS-SGD | 基于同态加密和秘密分享的逻辑回归算法 | ||
SS-GLM | 基于秘密分享的广义线性回归算法 | ||
XGB | SS-XGB | 基于秘密分享的 XGB 算法 | |
特征工程 | SSVertPearsonR | 基于秘密分享实现的探查垂直划分数据集的皮尔逊积矩相关系数算法 | |
SSVertVIF | 基于秘密分享实现的探查垂直划分数据集的方差扩大因子算法 | ||
SSPValue | 基于秘密分享实现的 P-Value 算法 | ||
groupby_statistics | 获取分组统计信息算法 | ||
FL | LR | FL-LR-MIX | 基于随机梯度下降的混合联邦逻辑回归算法 |
XGB | SFXGBoost | 水平场景下的 XGB 模型算法 | |
SGB | 基于同态加密的纵向联邦树模型算法 SGB | ||
水平 NN | FedSCR | 基于梯度下降的分布式联邦学习策略(选择性将部分重要更新回传) | |
Fed-Prox | 基于梯度下降的分布式联邦学习策略(解决数据和设备异构性) | ||
FedSTC | 基于梯度下降的分布式联邦学习策略(压缩 client 和 server 之间的通讯) | ||
垂直 NN | DNN | 深度神经网络 | |
CNN | 卷积神经网络 | ||
GNN | 图神经网络 | ||
垂直 NN -推荐模型 | MMoe | 基于拆分学习的多任务学习模型算法 | |
BST | 基于拆分学习的捕捉用户行为序列信息模型算法 | ||
DeepFM | 基于拆分学习的 CTR 预估模型算法 | ||
TEE | 原则上支持任意算法 |
四、学习路线
欢迎来到隐语的学习之旅,我们为您规划了详细的学习路线,帮助您快速体验隐语能力,由浅入深了解隐语。
分类 | 学习内容 | 学习素材 | |
初识隐语 | 隐语建设背景 | 通过本课程您可以初步了解隐私计算的概念,隐私计算在数据要素市场的关键作用,隐语建设的背景等内容。 | ●构建纵深分域数据要素市场运营体系 |
了解隐语 | 了解隐语的理念、价值、优势、实践以及隐语的后续规划 | ●深度解读隐语 | |
快速开始 | SecretPad | 从零开始学习使用隐语白屏化产品,通过拖拉拽形式让您快速体验隐私计算,从上层角度了解平台层是如何集成隐语各层能力。 | ●SecretPad 开源发布 |
Kuscia | 学习了解 Kuscia 如何进行任务调度,以及如何通过 Kuscia 实现不同算子的自由组合 | ●Kuscia 入门教程-快速开始 | |
SecretFlow | 学习通用的隐私计算框架 SecretFlow,快速体验 SecretFlow 的包容性和可扩展性 | ●SecretFlow 简介 | |
开发 | SecretPad | SecretPad 前端及后端代码结构并上手实践 | ●SecretPad 前端介绍及开发实践 |
Kuscia | 学习 Kuscia 相关概念、Kuscia API | ●Kuscia 概念 | |
SecretFlow | 学习 SecretFlow API 文档、用户指南及组件列表。 | ●SecretFlow API 文档 | |
实践 | SecretPad | 学习如何自定义新增 SecretPad 平台层组件。 | ●隐语 SecretPad 平台新增组件 |
Kuscia | 学习如何应用实践 Kuscia,例如学习如何运行一个 FATE 作业。 | ●基于 Kuscia 的隐私计算应用研发实践 | |
SecretFlow | 学习如何使用 SecretFlow 实现加载数据、数据预处理、数据编码、隐私求交等全链路流程。 | ●SecretFlow 教程 | |
进阶 | 算法实践 | 学习隐私求交、逻辑回归、XGBoost 等算法原理,以及这些算法在隐语中是如何实现的。 | ●隐私求交 |