重磅!蚂蚁开源可信隐私计算框架“隐语”,主流技术灵活组装开发者友好分层设计算法编程隐私保护

7月4日,蚂蚁集团宣布面向全球开发者正式开源可信隐私计算框架“隐语”,采用Apache-2.0协议,代码托管至GitHub、Gitee两大平台。“隐语”通过良好可扩展的架构设计,用一套通用框架统一支持了包括MPC、TEE、FL、HE、DP在内的多种主流隐私计算技术,可以对多种技术进行灵活组合,针对不同应用场景提供不同的解决方案。

六年技术沉淀,“隐语”攻破一道隐私计算应用难题

2016年,“隐语”作为一个“实验项目”在蚂蚁诞生,从矩阵变换技术踩下第一个脚印,到可信执行环境(TEE),再到多方安全计算(MPC)、联邦学习(FL)等,一路以来不断丰富自身技术内涵,在金融、医疗等领域实际应用场景中有成功的落地应用经验。

尽管隐私计算理论发展四十余年,在应用层面,至今依然存在着诸多行业必须跨越的障碍:

隐私计算现阶段依旧是相对新兴的跨学科领域,涉及密码学、机器学习、数据库、可信硬件等多个领域,包含多方安全计算(MPC)、联邦学习(FL)、可信执行环境(TEE)、可信密态计算(TECC)等多种技术路线,涉及众多专业技术栈,要实现完善并保障安全并非易事。“隐语”的设计目标,是使得数据科学家和机器学习开发者无需了解底层技术细节,就可以非常容易地使用隐私计算技术进行数据分析和机器学习建模。

那么,如何才能够适配不同层次开发者的不同需求?

为了达到这个目标,隐语提供了一层设备抽象,将多方安全计算(MPC)、同态加密(HE)和可信执行环境(TEE)等隐私计算技术抽象为密文设备,将单方计算抽象为明文设备。

基于这层抽象,数据分析和机器学习工作流可以表示为一张计算图,其中节点表示某个设备上的计算,边表示设备之间的数据流动,不同类型设备之间的数据流动会自动进行协议转换。在这一点上,隐语借鉴了主流的深度学习框架,后者将神经网络表示为一张由设备上的算子和设备间的张量流动构成的计算图。

以上流程对应拆解到框架分层,“隐语”对框架自下而上,进行了如下的设计及研发:

资源管理层:主要承担了两方面的职责。第一是面向业务交付团队,可以屏蔽不同机构底层基础设施的差异,降低业务交付团队的部署运维成本。另一方面,通过对不同机构的资源进行统一的调度和管理,解决了生产场景中的大规模和高可用问题。

明密文计算设备与原语层:提供了统一的可编程设备抽象,将多方安全计算(MPC)、同态加密(HE)、可信硬件(TEE)等隐私计算技术抽象为密态设备,将单方本地计算抽象为明文设备。同时,提供了一些不适合作为设备抽象的基础算法,如差分隐私(DP)、安全聚合(SecureAggregation)等。未来当有新的密态计算技术出现时,可以通过这种松耦合的设计集成进隐私框架。

明密文混合调度层:这层一方面对上层提供了明密文混合编程的接口,同时也提供了统一的设备调度抽象。通过将上层算法描述为一张有向无环图,其中节点表示某个设备上的计算,边表示设备之间的数据流动,即逻辑计算图。然后由分布式框架进一步将逻辑计算图拆分并调度至物理节点。

AI&BI隐私算法层:这一层的目的是屏蔽隐私计算技术细节,但保留隐私计算的本质,目的是降低隐私计算算法的开发门槛,提升开发效率。有隐私计算算法开发诉求的开发者,可以根据自身场景和业务的特点,设计出一些特化的隐私计算算法,来满足自身业务和场景对安全性、计算性能和计算精度的平衡。在这一层上,隐语本身也会提供一些通用的算法能力,比如MPC的LR/XGB/NN,联邦学习算法,SQL能力等。

用户界面层:隐语的目标并不是做一个端到端的产品,而是为了让不同的业务都能够通过快速集成隐语而具备全面的隐私计算能力。因此隐语会在最上层去提供一层比较薄的产品API,以及一些原子化的前后端SDK,去降低业务方集成隐语的成本。

以开放为核心“隐语”致力于将开发者体验做到极致

总结隐语的架构分层,可以看出隐语框架始终围绕开放这一核心思想,通过不同层次的设计抽象,能够为不同类型的开发者都提供良好的开发体验:

设备层良好的设备接口和协议接口,支持更多的设备和协议插拔式的接入,对密码学、可信硬件、硬件加速等背景的开发者友好,利于不断扩展密态计算的类型和功能,不断提升协议的安全性和计算性能。

算法层为机器学习提供了灵活的编程接口,对算法开发者友好,他们可以像使用传统机器学习框架的方式去定义自己的算法。

那么在首个开源版本中,隐语已经开放了那些模块呢?支持的功能又有哪些?

支持Paillier同态加密算法,向上层提供Numpy编程接口,用户可以使用Numpy接口做矩阵加法或者明密文矩阵乘法运算。且实现了与MPC密态设备之间的数据可流转。

实现了一些差分隐私噪声机制、安全噪声生成器、隐私开销计算器。

支持中心化编程模式,使用@device标记构建明文和密文设备混合计算图,基于计算图进行并行、异步任务调度。

提供水平场景下的XGBoost算法、新增垂直场景下的HESS-LR算法,并结合差分隐私增强了对拆分学习的隐私保护。

提供联邦学习模型构建和包括SecureAggregation,MPCAggregation,在内的多种安全模式的梯度聚合,用户只需要在模型构建时给出参与方list和聚合方法,之后的数据读取,预处理到模型训练的体验和传统明文编程几乎一致。

总结来看,主要如下:

对于算法/模型研发:使用隐语提供的编程能力,可以方便快捷地将更多算法和模型迁移过来,并得到隐私保护增强。

对于底层安全共建:可将底层密码/安全研究成果嵌入隐语,完善密态设备的能力、性能和安全,转化实际业务应用。

据隐语开源发布会消息,“隐语”也将在后续的开源版本更新中,逐步点亮更多模块。

到开发者中去,穿透技术壁垒练就“绝活”

回归这个现实问题,市面上的隐私计算框架有很多,比如TFE,CrypTen,MP-SPDZ等,因为现有无论是基于AI的框架(TFE/CrypTen),还是从安全计算出发的框架(SPDZ),都存在着一定的局限。前者往往难部署,难做安全领域特定的优化。后者往往会需要写一些ToyAI框架,学习成本高。

在“隐语”沉淀出的一整套“绝活”中,密态计算设备SPU是创新研发亮点之一。

SPU是SecretflowProcessingUnit的简称,她作为隐语平台的密态计算单元,为隐语提供安全的计算服务:

近些年,密态计算(MPC/HE)在算力上都有巨大的进步,但是密态算力和AI的算法需求依然难以匹配。比如联邦学习,将算法的某一个子步骤使用安全计算实现,牺牲局部安全性以换取更高的性能。在算力无法匹配算法的时候,“隐语”的思路是“明密文混合”,来实现安全和性能的平衡。

隐语提供了非常自由的明密文混合编程范式,我们不限制明文的引擎,也不限制密文引擎,开发者可以用他自己熟悉的框架开发,然后标记其中的某一部分用明文引擎跑,另一部分用SPU跑。比如:

作为对比,从安全和性能这种的角度,无论TFE/CrypTen/SPDZ等都很难进行这种平衡。

此外,SPU的部署模式透明,不用修改任何一行代码,既有模型都可以在上述任何一种部署场景上被安全且正确的执行。并且(相对于基于AI平台的隐私计算框架)SPU运行时非常的轻量级,不需要Pythonruntime,可以方便的进行部署和集成。

作为AI开发者,不需要任何安全背景,就可以将现有的模型安全的应用到多方数据上。

作为安全开发者,不需要任何AI背景,仅仅实现安全计算的基本算子,就可以支持多种前端框架。并且,你可以方便的部署和运维,在安全和性能之间折中,找到最佳的落地方案。

SPU将AI前端和MPC后端解耦,使得在SPU中扩展的任何安全协议都可以无感的支持多种前端。这部分,已经有团队在“隐语”框架中取得了一些共建实现,如阿里安全双子座实验室将其Cheetah(猎豹)协议部分贡献至隐语中,并进行了更好的优化。

另一个亮点是:目前业界最快的两方安全计算协议“猎豹”,贡献到了隐语,实现了深度协作。

当前业界的隐私计算需求场景以两方计算居多:Alice(数据需求方)希望借助Bob(数据源)的数据来增强自己的业务能力,但是Bob又不想直接给出自己的数据。因此如何高效的实现安全两方计算(2PC),便成为解决这一问题的关键。阿里安全双子座实验室为解决这一问题研发了Cheetah(猎豹)安全两方计算框架,在2PC的多个底层瓶颈上都取得了突破,让两方计算的整体性能取得了大幅提升,最快可以比此前的最好成果-微软CryptFLOW2(CCS20)提升5倍以上,已经被国际四大安全顶会之一的USENIXSecuritySymposium接收。

“隐语”开源社区的未来规划

“隐语”的逻辑设备抽象为算法开发者提供了极大的灵活性,他们可以像积木一样自由组合这些设备,在设备上自定义计算,从而构建自己的隐私计算算法。目前,“隐语”开源采用Apache-2.0,允许自由地下载和使用,不仅将在代码库中面向开发者逐步开放更多模块及功能,也已经在开发者文档中提供了一些隐私保护算法开发实例,如基于联邦学习的图片分类任务等,供开发者下载运行感受效果。

除了专注于技术本身,在框架的可编程性、可扩展性上做实现强化。“隐语”开源社区也正式成立,围绕开源社区,蚂蚁集团及隐语也将在多个方面与开发者、研究者联动共建隐私计算生态:

其一是通过多种渠道以文字、视频等多样的内容,普及隐私计算这一技术,通过开放的交流探讨增强与开发者的交流;

除此之外,在隐语开源发布会上,蚂蚁集团宣布联合中国计算机学会(简称CCF)设立“CCF-蚂蚁隐私计算专项科研基金”,给予隐私计算研究者孵化支持,公开招募、评选、扶持有创新有价值的课题深度发展,支持隐私计算前沿研究。

THE END
1.编程中算法究竟是什么?编程界的“Pascal之父”Nicklaus Wirth有一句人尽皆知的名言:“算法+数据结构=程序”。(Algorithm+Datahttps://www.zhihu.com/question/423634581/answer/2836457639
2.什么是算法?算法的发展历程?特征?什么是复杂度?算法的产生定义:算法的每一步都应该简单且容易执行,并且这些步骤应当是清楚且有效的。 解释:每一个算法步骤都必须是具体的、可以执行的基本操作,不能有模糊的、抽象的指令。有效性保证了算法在实际中是可实现的。 7.独立性(Independence) 定义:算法的设计与实现应独立于具体的编程语言、机器或实现环境。 https://blog.csdn.net/weixin_67739446/article/details/141789238
3.Java语言具有哪些特点?Java语言具有哪些特点?Java语言是一门优秀的编程语言,它之所以应用广泛,受到大众的欢迎。是因为它有众多突出的特点,其中最主要的特点有以下几个。1.简单性 Java语言是一种相对简单的编程语言,它通过提供最基本的方法完成指定的任务。程序员只需理解一些基本的概念,就可以用它编写出适用于各种情况的应用程序。Javahttps://baijiahao.baidu.com/s?id=1744110954938024670&wfr=spider&for=pc
4.特征空间算法范文9篇(全文)图2给出了目标被遮挡情况下的传统mean-shift算法和本文算法的跟踪效果图,图中跟踪的目标是一个深蓝色的汽车,在第355帧时,传统mean-shift算法和本文算法的跟踪结果差别不大,随着目标的运动,两种算法的跟踪效果就出现了差别,在第375帧时,当目标被树遮挡住一半左右时,传统mean-shift算法基本上还能跟得上,但已失去了https://www.99xueshu.com/w/ikeyhztmyriy.html
5.算法与程序设计思想(精选8篇)求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。2.过程与方法: 利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。 培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰https://www.360wenmi.com/f/fileavgfb18k.html
6.高职单招计算机复习(单招考试计算机知识点)算法是计算机科目中的重要内容,包括算法的基本概念、算法的分类、算法的分析等方面。在备考中,考生需要重点掌握算法的基本概念和算法的分类,了解各种算法的特点和应用场景。考生还需要掌握算法的分析,了解如何分析和评估算法的效率和优劣。 七、编程语言 编程语言的分类、编程语言的特点、编程语言的应用 http://www.sccdedu.com/news/239228.html
7.Scale概述(上)学习笔记C 语言、C++、java 等语言在学习后具有部分的共同特性,存在大同小异的特点。但 Scala 相对其它语言而言变化较大,部分本身的特色较为有趣。此语言在学习过程中可使得自身的编程思想、编程算法得到一定程度的提升。 4、Spark 特点-函数式编程 引入后使函数更为强大、提倡递归,效率得到大大提升。 https://developer.aliyun.com/article/1079002
8.高中信息技术课程标准(1)从其他科目的学习或者生活实际中选择问题,确定解决该问题所需要的算法和计算公式,用流程图描述问题的计算过程,编写程序,调试并运行该程序,获得问题的答案,并讨论该问题解决过程与所得答案的特点。 (2)在已学知识的基础上,通过调查和讨论对算法和程序设计进行更多了解,探讨待解决的问题与其相应算法之间的关系,尝试https://www.fqkhzx.cn/index/article/view/id/94.html
9.第5课算法的特征(教学设计)五年级上册信息技术浙教版(8页)讲解算法的定义,包括其主要特性(确定性、有穷性和可输出性)。 详细介绍算法的表示方法,如伪代码和流程图,并展示实例。 3.算法案例分析(20分钟) 目标:通过具体案例,让学生深入了解算法特性及其在实际问题解决中的应用。 过程: 选择几个典型的算法案例进行分析。 详细介绍每个案例的背景、特点和意义,让学生全面了解https://m.book118.com/html/2024/0810/7111141150006142.shtm
10.敏捷交换机的特色:iPCA网络包守恒算法交换机网络华为新推出S 12700 敏捷交换机,利用其灵活可编程的特点,开创性地实现了iPCA 功能,全面提升网络质量检测和故障精确定位能力,降低网络运维成本,iPCA网络包守恒算法是怎么样的呢?感兴趣的朋友可以参考下 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用! https://www.jb51.net/network/223201.html
11.重磅!计算机二级C语言考试备考攻略和考试资料下载二、选择题特点: 选择题共40分,其中公共基础知识10分;C语言基础知识30分。 1. 二级公共基础知识:专业性强且相对独立,考核重点为数据结构与算法、数据库设计基础,其中涉及到的难点是进制之间的转换(一般为2进制与10进制之间的转换)以及关系代数运算,这部分要灵活掌握。 https://www.jianshu.com/p/4014994dabb3
12.算法编程编程语言的算法Message Passing Interface(MPI)是支持多编程语言编程的并行计算通讯应用接口,具有高性能、大规模性、可移植性、可扩展性等特点。 华为高性能通信库(Hyper MPI)是基于Open MPI 来自:百科 查看更多 → 图像处理理论、应用与实验 征提取算法和卷积神经网络,学习时注意两者的区别。 目标学员 1、希望成为企业AIhttps://www.huaweicloud.com/theme/857518-3-S-undefined