“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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

  • 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, .


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-06-26 09:007057

评论

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

如何用Java校验SQL语句的合法性?有这5种解决方案

高端章鱼哥

Java sql

谁是家居智能化时代“头号玩家”? 小度全屋智能将登陆中国建博会

新消费日报

大模型加速学科升级,飞桨赋能北邮“X+大模型”特色小学期

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

揭秘元宇宙背后的最炫科技风

华为云PaaS服务小智

云计算 华为云 元宇宙

一篇文章带你上手性能测试框架K6

QE_LAB

自动化测试框架 测试自动化 #性能测试

合作、参与、让开源更易用 | 亚马逊的开源文化

亚马逊云科技 (Amazon Web Services)

云计算

火山引擎 DataLeap 构建Data Catalog系统的实践(一):背景与调研思路

字节跳动数据平台

2023-07-03:讲一讲Redis缓存的数据一致性问题和处理方案。

福大大架构师每日一题

redis 底层原理 福大大架构师每日一题

代码随想录训练营 Day06 - 哈希表(上)

jjn0703

手把手带你搭建企业低成本万能架构

EquatorCoco

架构 软件架构 低成本

语音房源码搭建技术分享之降噪功能详解

山东布谷科技

软件开发 源码搭建 语音房源码 语音房

算法复杂度介绍

宁静知行者

算法

组合框架:融合创新技术,实现一次编码多平台运行

FinFish

flutter 跨端开发 小程序容器 跨端框架 跨端应用开发

软件DevOps云化发展的趋势 【课程限时免费】

华为云PaaS服务小智

云计算 DevOps 云原生 华为云 华为开发者大会2023

如何自动化测试你的接口?—— Rest Assured

不在线第一只蜗牛

自动化 自动化测试 API

技术分享| 融合通讯的架构介绍

anyRTC开发者

音视频 MCU mesh SFU 融合通讯

码住!ChatGPT的五大开源替代方案

这我可不懂

人工智能 工具 ChatGPT

国内首批!腾讯云EdgeOne通过信通院边缘计算最新评估

Geek_2d6073

第九届“互联网+”大赛产业赛道百度命题正式公布!57道命题,等你揭榜!

飞桨PaddlePaddle

人工智能 百度

用ChatGPT搞定K8s!

互联网工科生

k8s kubernetes 运维 ChatGPT

2023 MWC上海:移动云勇担新基建国家队 引领算网新趋势

Geek_2d6073

扫光动效在移动端应用实践

百度Geek说

动效 移动端 企业号 7 月 PK 榜

时序数据库 TDengine 与 DBeaver 达成合作,生态系统再壮大

爱倒腾的程序员

涛思数据 tdengine 时序数据库

Spring容器获取Bean的9种方式 | 京东云技术团队

京东科技开发者

spring Spring Boot bean 企业号 7 月 PK 榜

POCO库的安装与基础知识说明

攻城狮Wayne

SQL 优化(四):如何使用 join

hungxy

EMAS热修复Sophix适配App加固的技术方案

移动研发平台EMAS

阿里云EMAS 移动热修复 app热修复 app加固

对线面试官-Redis(五 为什么这么快为什么能抗住高并发)

派大星

Java 面试题

inBuilder今日分享丨系统集成系列之异构接入

inBuilder低代码平台

集成

HarmonyOS极客松“上分秘籍”! 高手们顶峰相见!

HarmonyOS开发者

HarmonyOS

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