同态加密应用入门与实践

使用同态加密构建应用

摘要

2009年,克雷格·金特里提出了首个“完全”同态加密方案,允许对加密数据执行任意电路运算[17]。同态加密是一种非常强大的密码学原语,尽管实践者常常认为其效率太低而难以用于实际应用。然而,这些加密方案的性能已远非金特里的原始工作可比:如今已有多个维护良好的库实现了同态加密方案和协议,并取得了令人印象深刻的性能成果,同时社区正在进行持续的标准化工作。在本教程中,我们将综述现有同态加密格局,既提供对最新技术的一般性概述,也深入探讨其中几个现有的库。我们的目标是为更广泛的计算机安全社区提供一个全面且易于理解的同态加密入门介绍。多位报告人是知名公开同态加密库的核心开发者,同时也是同态加密标准化工作 HomomorphicEncryption.org [2]的组织者。

本教程面向应用开发者、安全研究人员、隐私工程师、研究生以及任何对学习现代同态加密基础感兴趣的人士。本教程分为两部分:第一部分适用于具备基础大学水平数学知识的读者;第二部分将涵盖更高级的主题,包括不同的同态加密方案和库的介绍、具体示例应用和代码样本,以及更深入的讨论关于实现挑战。第二部分要求听众熟悉现代C++。

CCS概念

  • 安全与隐私 → 密码学;
  • 软件及其工程 → 软件设计工程;

关键词

同态加密;安全计算;密码学标准化;应用开发


教程说明 第一部分:同态加密简介

在本教程的第一部分,我们将全面介绍现代同态加密(HE),重点关注实际应用方面。我们的目标是为感兴趣的研究员、开发者和公司提供足够的知识,以支持他们在这一领域的进一步探索。

我们首先设想由公司、政府和个人客户所需的各类安全应用与服务,这些应用和服务如今借助同态加密(HE)已经可以实现,甚至具备实用性。为了具体说明,我们将通过医疗保健领域的具体示例进行阐述,并讨论以下问题:

  • 现有的同态加密方案有哪些能力和局限性?
  • 我可以信任同态加密来保护我的私有数据吗?我们简要介绍同态加密方案的数学基础及其安全性论证。
  • 如何节省加密数据的存储和处理时间?目前大多数同态加密方案和库支持加密大批量数据。我们展示了通过正确使用此技术,相较于朴素方法可以节省几个数量级的开销。
  • Which HE scheme(s) should I adopt? 我们对不同的同态加密方案进行了高层次的比较,并讨论了针对特定应用以及存储或带宽需求的具体选择。
  • 同态加密足够成熟了吗?尽管同态加密仅有十年历史,但它已经适合主流应用。社区(包括学术界和产业界)一直在积极推动同态加密的标准化工作。我们简要描述了该标准化工作所采取的方向和取得的进展。
  • 使用同态加密创建应用有多容易?我们简要介绍第二部分的内容,其中讨论了多个现有的同态加密库和编译器。

Break

我们将休息30分钟,在此期间,我们会帮助听众安装同态加密库,以便他们在第二部分获得更实际的操作体验。

第二部分:探索同态加密库

本教程的第二部分介绍了四种开源同态加密库:SEAL [8], PALISADE [6], TFHE [9], 和 cuFHE [4]。我们讨论了这些库中实现的同态加密方案,并给出了使用每种库编写简单应用的具体示例。最后,我们介绍了两种用于开发支持同态加密的应用的基于编译器的方法。

简单加密算术库

简单加密算术库 (SEAL) 是由微软研究院自2015年起开发的同态加密库。SEAL 使用 C++17 编写,并为公共 API 提供了 .NET 封装器。在本部分演示中,我们将介绍 SEAL 的核心功能,展示如何执行简单的计算,并以实现一个简单的私有集合交集协议为例,讨论其中的一些挑战和解决方案。SEAL 2.3.1 可在 http://sealcrypto.org 下载。如需背景阅读,请参阅该网站上提供的文档。

PALISADE格密码学库

PALISADE格密码学库为同态加密及其他先进的基于格的协议(如基于身份的加密、基于属性的加密和程序混淆)提供了一个分层框架。我们介绍了该库及其架构,讨论了所支持的方案及其功能,并概述了明文编码器。我们通过两个简单的应用示例,展示了如何利用库中的密码上下文封装器功能,使用同一段代码在多个方案中执行。

PALISADE 1.2.0 可在 https://git.njit.edu/palisade/PALISADE 下载。有关背景阅读,请参阅网站上提供的用户手册。

TFHE:环面快速全同态加密

快速可引导的同态加密方案释放了同态计算的全部灵活性。它们支持无限或未知深度的电路,同时具有较小的密文和公钥尺寸。此外,与算术方案相比,加密形式下的比较操作成本更低。

使用这些方案的实现类似于数字电路设计,其中二进制门在诸如TFHE(中央处理器)和cuFHE(图形处理器)之类的库中构建。TFHE库支持多种明文几何结构和计算模型(电路、自动机、查找表),以及离散与连续逻辑(与其他库互兼容)。

TFHE旨在评估小型电路,例如比较操作、单个低延迟问题实例(与支持单指令多数据操作的方案相对),也可用于可验证计算。TFHE及其文档可在 https://tfhe.github.io 下载。

cuFHE 和硬件加速

在硬件加速(尤其是 GPU 上)的同态加密(HE)以较低的成本(能耗和硬件)实现了显著加速。我们解释了 HE 应用如何被卸载到 GPU 并由其加速,并澄清了在 GPU 上进行机器学习(ML)与同态机器学习(homomorphic ML)之间的混淆。

我们以实现 TFHE 方案 [9] 的 cuFHE 库 [4] 为例,演示如何使用现有库。我们展示了 C++ 和 Python API 中两个等效脚本,重点介绍如何在单 GPU 或多 GPU 系统上实现高计算吞吐量。我们还进一步介绍了我们为提供优化扩展指令集所做的努力。其他相关工作包括:用于构建部分同态加密方案的 cuHE 库 [1]、微软研究院开发的 GPU加速的SEAL、A*STAR 与新泽西理工学院(NJIT)[10, 11] 开发的 GPU 加速的布拉克斯基‐范‐维尔科特伦方案 [12, 13, 16, 18],以及太平洋太空与海战系统中心(SSC Pacific)开发的 Nomad,该工具为 HElib 使用布鲁斯坦算法 [14] 实现了基于 GPU 的优化。

cuFHE 库及其文档可在 https://github.com/vernamlab/cuFHE 下载。

基于编译器的方法

在本节中,我们讨论两种从高级抽象编译到同态加密的方法:RAMPARTS [7] 和 Cingulata [3]。

RAMPARTS 提供了针对 Julia编程语言 的编译器,允许将同态加密功能集成到现有的 Julia 程序中;Cingulata 则是一个编译器工具链和运行时环境,用于在同态加密数据上执行类似 C++ 的程序。

内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件PLC的专业的本科生、初级通信联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境MCGS组态平台进行程序高校毕业设计或调试运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑互锁机制,关注I/O分配硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值