阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

同态加密技术及其在机器学习中的应用

  • 2020-06-26
  • 本文字数:3571 字

    阅读完需:约 12 分钟

同态加密技术及其在机器学习中的应用

分布式人工智能系统是一个多学科交叉领域,从应用场景看,其既可以应用在数据中心做加速,又可以用在联邦学习领域成为多方共同训练模型的工具。而在这两个应用场景中, 隐私保护都是必不可少的。近些年同态加密在隐私保护领域备受关注,本文将科普性地介绍什么是同态加密,以及其在联邦学习、云计算领域的应用。

1 什么是同态加密

同态加密(HE,homomorphic encryption)是密码学里一种特殊的加密模式,同态加密使我们可以将加密后的密文发给任意的第三方进行计算,并且在计算前不需要解密,即:在密文上进行计算。 虽然同态加密的概念最早出现于 30 年前,但是第一个支持在密文上进行任意运算的全同态加密框架出现较晚,在 2009 年由 Craig Gentry 提出。


同态加密的数学定义为 [1]:



其中 E 为加密算法,M 是所有可能信息的集合。如果加密算法 E 满足公式(1),那么我们称 E 在★运算上符合同态加密的性质。目前的同态加密算法,主要支持两种运算上的同态:加法和乘法。


需要注意的是,以上公式(1)只是为了让我们更加清晰地理解同态加密的性质,实际中的同态加密算法可能会有一些不同。比如 Paillier 算法对加法同态,那么根据公式 (1),其密文的求和应该等于求和后的密文,但实际情况是密文的乘积等于求和后的密文,所以我们一般只要求得到的密文结果和我们预期的计算相同,但是对密文上的计算不作具体要求(一般由加密算法决定)。

2 同态加密的组成与分类

同态加密算法一般包含以下四个部分:


  1. KeyGen:密钥生成算法,产生公钥和私钥

  2. Encryption:加密算法

  3. Decryption:解密算法

  4. Homomorphic Property:同态加密计算部分


其中前三个部分在很多加密算法中都可以看到,第四部分则是同态加密算法的核心,指导密文下的运算。


为了更好地理解与运用同态加密算法,我们按照将同态加密算法支持的运算类型和数量,将其分成 3 类:部分同态加密、层次同态加密、和全同态加密 [1]。


  1. 部分同态加密(Partial HE,简称 PHE)指同态加密算法只对加法或乘法(其中一种)有同态的性质。例如:RSA 加密是最早应用的公钥加密算法框架,同时 RSA 算法也是一种 PHE 算法,其对乘法有同态的性质。PHE 的研究成果出现比较早,并且加法同态加密算法(Additive HE)比 乘法同态加密算法要多一些。PHE 的优点是原理简单、易实现,缺点是仅支持一种运算(加法或乘法)。

  2. 层次同态加密算法(LHE,Leveled HE 或 SWHE ,SomeWhat HE)一般支持有限次数的加法和乘法运算。层次同态加密的研究主要分为两个阶段,第一个阶段是在 2009 年 Gentry 提出第一个 FHE 框架以前,比较著名的例子有:BGN 算法、姚氏混淆电路等;第二个阶段在 Gentry FHE 框架之后,主要针对 FHE 效率低的问题。LHE 的优点是同时支持加法和乘法,并且因为出现时间比 PHE 晚,所以技术更加成熟、一般效率比 FHE 要高很多、和 PHE 效率接近或高于 PHE,缺点是支持的计算次数有限。

  3. 全同态加密算法(Fully HE,简称 FHE)支持在密文上进行无限次数的、任意类型的计算。从使用的技术上分,FHE 有以下类别:基于理想格的 FHE 方案、基于 LWE/RLWE 的 FHE 方案等等。FHE 的优点是支持的算子多并且运算次数没有限制,缺点是效率很低,目前还无法支撑大规模的计算。



图 1 三种类型同态加密的研究时间线 [1]


图 1 展示了三类同态加密算法的研究时间线,同态加密的概念在 1976 年提出,随后 PHE 的研究成果逐渐丰富;在 Gentry 的 FHE 框架前,LHE 研究占主导;2009 年后,研究热点集中在 FHE。

3 同态加密在机器学习中的应用

3.1 联邦学习(PHE)

联邦学习是一种隐私保护机器学习方法,其主要思想为:构建一个隐私保护机器学习系统,使得拥有数据的多方能够联合训练一个或多个模型,并且任意一方的数据不会泄露给其他参与者。这能在保证隐私数据不泄露的情况下,提升参与者们本地模型的任务表现,打破数据孤岛 [2]。




图 2 联邦学习流程示例


在联邦学习中,多方联合训练模型一般需要交换中间结果,如果直接发送明文的结果可能会有隐私泄露风险。在这种场景下,同态加密就可以发挥很重要的作用。多方直接将中间结果用同态加密算法进行加密,然后发送给第三方进行聚合,再将聚合的结果返回给所有参与者,不仅保证了中间结果没有泄露,还完成了训练任务(第三方可以通过优化系统设计去除)。


在联邦学习中,因为只需要对中间结果或模型进行聚合,一般使用的同态加密算法为 PHE(多见为加法同态加密算法),例如在FATE中使用的 Paillier 即为加法同态加密算法。为了更好地展示同态加密在联邦学习中的应用,我们在此展示一个同态加密在联邦学习推荐系统中的应用 [3]。



图 3 联邦矩阵分解推荐系统流程


在传统的推荐系统中,用户需要上传浏览记录、评价信息来实现个性化推荐,但是这些信息均属于个人的隐私数据,直接上传会带来很大的安全隐患。在联邦推荐系统中,每个用户将数据保存在本地,只上传特定的模型梯度。这样虽然避免了隐私数据的直接泄露,但是还是透露了梯度信息给云服务器。同时我们发现,从数学上可以证明,使用连续两次更新的梯度即可反推出用户的评分信息。这种情况下,就必须使用同态加密对用户上传的梯度进行保护,即用户在上传梯度前使用加法同态加密算法对梯度信息进行加密,然后云服务器将所有用户的密文梯度进行聚合(相加),再将更新后的模型返还给各个用户解密,完成训练更新。

3.2 密态机器学习(LHE and FHE)


除了联邦学习外,同态加密另一个比较重要的应用领域是密态计算。和联邦学习不同的是,密态计算不需要多方参与,但需要的计算比联邦学习更加复杂(算子多、计算量大)。密态计算中使用的同态加密算法多为 LHE 和 FHE。其实全同态加密研究的初衷,就是为了实现安全的云计算,即对云算力有需求的用户可以将本地的数据全部加密,然后上传到云端,然后云端的服务器即可按照用户指令完成计算,整个过程用户的数据不会泄露给云端,从而完成“绝对安全”的云计算服务。


但是由于目前 FHE 效率比较低,所以使用全同态加密进行云计算远远没有达到应用的级别。机器学习在云计算中有着广阔的市场,而机器学习有训练和推理两种需求,训练过程一般数据较多、计算量很大,而推理则数据量相对较小、计算量也小,所以目前研究主要集中在密态下的机器学习推理,并且目前已经有速度比较快的方案 [4];而密态下的机器学习训练研究稀少,是一个比较难解决的问题。

4 部分开源同态加密库的效率比较

目前 GitHub 中有很多的开源 HE 框架,在这里我们选择两个进行测试比较,一个是python-paillier,支持加法同态;一个是SEAL-CKKS,属于 LHE 算法,支持有限次数的加法和乘法。



表 1: Paillier 和 CKKS 的效率对比(ms)


表 1 展示了 Paillier 和 CKKS 的效率对比,时间单位为毫秒,测试机器为 Intel® Xeon® E5-2630 24-core 2.6GHz CPU,63GB RAM,表格 C+P 中的 C 代表密文、P 代表明文。表格中 CKKS 的 key 含义为 polynomial modulus degree。


从结果中可以看出,paillier 在 key size 逐渐增大时,耗时迅速增长(速度超过线性),paillier 一般使用最少 2048 位密钥来保证安全, 2048 位下的 paillier 运算效率高于 CKKS。值得一提的是,SEAL-CKKS 支持 SIMD 操作,所以在机器学习的训练、推理中,可以按照 batch size 维度对一批数据进行打包、加密,使得运算效率线性提升。


总结:在不能够使用 SIMD 操作时(部分机器学习场景可能没有 batch 的情况,比如矩阵分解),使用 key size 比较小的 paillier 效率更高;在能够使用 SIMD 操作时(例如大部分场景下的机器学习模型训练、推理),SEAL-CKKS 效率显著高于 paillier。


除了 Paillier 和 CKKS,未来我们将测试更多的同态加密算法效率,以便为同态加密的应用提供参考,欢迎查看 GitHub 项目主页:


https://github.com/Di-Chai/he-benchmark


作者介绍:柴迪,星云 Clustar 算法工程师,香港科技大学在读博士,于 2018 年在香港科技大学取得理学硕士学位,研究方向为联邦学习、隐私保护机器学习。可通过以下邮箱联系:dchai@cse.ust.hk


参考文献:


[1] A. Acar et al, “A Survey on Homomorphic Encryption Schemes,” ACM Computing Surveys (CSUR), vol. 51, (4), pp. 1-35, 2018. Available: http://dl.acm.org/citation.cfm?id=3214303. DOI: 10.1145/3214303.


[2] Q. Yang et al, “Federated Machine Learning,” ACM Transactions on Intelligent Systems and Technology (TIST), vol. 10, (2), pp. 1-19, 2019. Available: http://dl.acm.org/citation.cfm?id=3298981. DOI: 10.1145/3298981.


[3] D. Chai et al, “Secure federated matrix factorization,” arXiv Preprint arXiv:1906.05108, 2019.


[4] C. Juvekar, V. Vaikuntanathan and A. Chandrakasan, “{GAZELLE}: A low latency framework for secure neural network inference,” in 27th {USENIX} Security Symposium ({USENIX} Security 18), 2018, .


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-06-26 09:007103

评论

发布
暂无评论
发现更多内容

报名开启,明天直播!龙蜥社区多位专家在线报告 | 2023 大学生操作系统大赛培训会

OpenAnolis小助手

活动 操作系统 计算机 大学生 龙蜥社区

网络视频监控如何入门?如何安装和配置、设备选择和实时监控?

wljslmz

三周年连更

解析mmap系统调用的所有的标志位

linux大本营

Linux 内存管理 Mmap 系统调用 内存映射

C语言检测输入的ip地址是否合法

linux大本营

C语言 IP地址

怎么看电脑上是否有lindex命令可运行

linux大本营

bash Linux linux命令

Flutter 开发:如何引入第三方库并安装使用

三掌柜

三周年连更

Android XML数据解析

智趣匠

android XML配置 三周年连更

华为云数据灾备,为企业数据安全保驾护航

平平无奇爱好科技

2023-04-21:用go语言重写ffmpeg的metadata.c示例。

福大大架构师每日一题

Go ffmpeg

linux环境下用c语言实现reactor网络模型的代码案例

linux大本营

Linux reactor 高并发 epoll

一文初探 Goroutine 与 channel

陈明勇

Go golang channel goroutine 三周年连更

大模型带来的Web复兴,会是昙花一现吗?

脑极体

AI 云厂商

组播ip地址,广播ip地址,特殊ip地址

linux大本营

TCP IP地址

运行脚本报错lindex:未找到命令

linux大本营

bash Linux 脚本

怎么查看自己的mac地址和ip

linux大本营

Mac 网络 Windows Server IP地址

Prometheus常用资源监控

乌龟哥哥

三周年连更

华为云数据灾备,助力企业应对信息安全

平平无奇爱好科技

仅需三步,快速打造指标数据应用

Kyligence

数据分析 指标平台

kafka常用命令

烟波

kafka MQ 中间件

C头文件是什么,使用mmap

linux大本营

C语言 Mmap

创建型模式之单例模式和工厂模式

共饮一杯无

设计模式 创建型模型 三周年连更

C语言检测输入的ip地址中含有几个.

linux大本营

C语言 字符串

QUIC技术分享

linux大本营

网络协议 udp QUIC

ORACLE EBS:多组织结构 理解与配置

back_wang

oracle oracle ebs oracle apex

lindex命令在shell脚本里的应用

linux大本营

Shell linux命令 脚本 shell脚本

一键搭建web版chatGPT,无需魔法,国内可用

石云升

AI AIGC ChatGPT 三周年连更

IPv6过渡技术概述

穿过生命散发芬芳

ipv6 三周年连更

TCP正常关闭连接

阿泽🧸

TCP 三周年连更

AI视觉实战2:实时头发染色

轻口味

android AI 图像处理 三周年连更

挑战 30 天学完 Python:Day11 函数

MegaQi

Python 挑战30天学完Python 三周年连更

JavaSE 和 Java EE 分别是什么

HoneyMoose

同态加密技术及其在机器学习中的应用_语言 & 开发_星云Clustar_InfoQ精选文章