FHE 的应用场景

2024-03-03 02:20
文章标签 应用 场景 fhe

本文主要是介绍FHE 的应用场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文献:

  1. [MSM+22] Marcolla C, Sucasas V, Manzano M, et al. Survey on fully homomorphic encryption, theory, and applications[J]. Proceedings of the IEEE, 2022, 110(10): 1572-1609.

文章目录

  • FHE
    • First Generation
    • Second Generation
    • Third Generation
    • Fourth Generation
    • Others
    • 实现
  • 应用场景
    • Machine Learning
    • Fog Computing for IoT
    • Cloud Computing

综述文章 [MSM+22] 参考了超过 300 篇文献,对 FHE 做了不错的调查,内容包括:方案、攻击、应用、实现。

FHE

一些主流 FHE 方案的时间轴:

在这里插入图片描述

First Generation

FHE based on ideal lattices

[Gen09] 通过 SWHE 以及 Bootstrapping 技术,基于理想格第一次构造出了 FHE 方案。它考虑 L ( I ) \mathcal L(I) L(I)​ 的 “坏基” 和 “好基”,利用 Babai’s NP 加解密。原始的解密电路无法被自身支持,因此提出了 Squash 技术,将私钥写成 Sparse Subset Sum Problem(SSSP)的形式。最终的 FHE 基于三个假设:SSSP、BDD、Ideal-SVP,其数学结构难以高效实现,比明文运算慢了 1 0 9 10^9 109 倍,并且主理想存在弱点

在这里插入图片描述

FHE based on the AGCD problem

[DGHV10] 构造了基于 SSSP 以及 Approximate - Greatest Common Divisor(AGCD)问题的 FHE,给定随机的整数集合 { x 0 , ⋯ , x n } ⊆ Z \{x_0,\cdots,x_n\} \subseteq \mathbb Z {x0,,xn}Z,去寻找一个大整数 p p p,使得它是近似的公因子。后续 [CS15] 给出了从 LWE 到 AGCD 的归约,移除了 SSSP 假设。

在这里插入图片描述

Second Generation

FHE based on LWE and RLWE

[BV11] 基于 LWE 构造 FHE,提出了 re-linearization 以及 dimension-modulus reduction 技术,后者淘汰了 Squash 技术,从而不再需要 SSSP 假设。[BGV12] 定义了新的范式 Level FHE,对于先验的有限深度的电路不再需要 Bootstrapping 技术。[GHS12] 给出了 BGV 的 RNS 变体,[Bra12] 以及 [FV12] 给出了 BGV 的 scale invariant 变体 B/FV,[BEHZ16] 和 [HPS19] 给出了 BFV 的 RNS 变体,[KLPX18] 给出了 BFV 的大明文模数的变体。

在这里插入图片描述

FHE based on NTRU

[SS11] 略微修改了 NTRU(带噪),给出了到 RLWE 的归约。[LTV12] 基于 SS-NTRU 构造了 FHE,它基于 RLWE 和 Decisional Small Polynomial Ratio(DSPR)假设,后者是说区分 h = g f − 1 ( m o d q ) h=gf^{-1}\pmod{q} h=gf1(modq) 和均匀分布。[BLLN13] 给出了 LTV 的 scale invariant 变体 YASHE,移除了 DSPR 假设。

在这里插入图片描述

Third Generation

FHE based on LWE and RLWE

[GSW13] 基于 LWE 构造出了不需要 KSK 的 FHE,并且同态乘法的噪声增长仅为多项式级别(而 BGV/BFV 的则是拟多项式的因子)。[AP14] 将取模运算表示为算术函数(对称群,置换矩阵的乘法)而非布尔电路,提出了 AP-type 自举算法(密文分解 + 选择私钥)。[DM15] 基于 RLWE 问题构造了 FHEW,在单位群上使用 AP 算法给出了盲旋转。[CGGI16] 利用 [GINX16] 提出的 GINX-type 自举算法(二元秘密 + 选择密文)构造了 TFHE,并提出了更快的外积。[CLOT21] 给出了 PBS 的扩展。[LMK+23] 给出了基于自同构的盲旋转算法,支持任意分布的秘密,且 BK 规模较小。

在这里插入图片描述

FHE based on NTRU

[BIP+22] 提出了基于 NTRU 假设的 TFHE 变体 FINAL,由于 NTRU 比 RLWE 的元素更少,因此秘钥规模更小,自举速度更快。[XZD+23] 提出了采用 LMK-type 自举算法的 NTRU-FHE,使得 KS 与外积一样快。

Fourth Generation

FHE based on LWE and RLWE

[CKKS17] 提出了近似运算的 Level FHE,[CHKKS18a] 提出了 CKKS 的自举算法(近似取模),[CHKKS18b] 给出了 RNS 变体。后续的 [CCS19]、[HK20]、[BMTH21] 等大量工作改进了 CKKS 的自举算法。

在这里插入图片描述

Others

FHE based on FFI

[DHP+18] 提出了一种基于 Finite Field Isomorphism(FFI)问题的 FHE,说的是恢复两个有限域之间的同构映射是困难的。所设计的 SWHE 的同态运算是自然的,这类似于 GSW,不需要 KSK。

实现

Libraries

目前已经存在许多的同态算法的开源库

在这里插入图片描述

Compilers

不过开源库提供的 API 依旧需要人们较为了解它们的功能和原理,因此人们设计了编译器,可以将标准代码转换为某些同态库的实现。

在这里插入图片描述

Accelerators

最初 [Gen09] 方案比明文运算慢了一亿倍,后续的各种同态方案提升了 3-4 个数量级,但是依旧比明文运算慢得多。设计 FPGA 加速器,可以提升 1-2 个数量级,但是与 CPU 之间的数据移动很慢;设计 ASIC 加速器,可以提升 3-4 个数量级,速度接近明文运算

应用场景

Machine Learning

Support Vector Machines(SVMs)

SVMs 是一种广泛应用的分类模型。有一些工作结合 Additive HE(比如 Paillier)以及 MPC(例如 SS)实现隐私保护的 SVM 的训练和分类。

Neural Networks(NN)

将 NN 视为回归模型的泛化。有一些工作结合 Additive HE 和以及 Garbled Circuits 实现了大数据集上的峰岭回归。[DGL+16] 设计了 CryptoNets,它实现了以 Sigmoid 为激活函数的前馈网络的预测(不用于训练),计算性能有限。后续的一些工作研究了在大数据、共享框架下的 deep NN 上的同态训练。

Fog Computing for IoT

在物联网(IoT)中存在 device 以及 cloud service,雾计算指的是在两者之间靠近 device 的地方存在一层 fog layer,用于预处理 device 发送的数据,一般是 event-driven 以及 packet-by-packet 方式处理的。

我们让 collector 生成公私钥,让 sensors 对数据 FHE 加密,传递途中的 fog layer 做预处理,最后数据汇总到 collector 解密出明文。当然 sensor 能力有限,而 FHE 会密文膨胀,因此可以采用 hybrid homomorphic encryption(HHE),组合使用 FHE 以及 symmetric key encryption(SKE),但是 fog layer 需要同态解密 SKE 回到 FHE

在这里插入图片描述

Cloud Computing

Homomorphic Proxy Re-Encryption((HPRE)

代理重加密说的是 delegator 授权 proxy 能够将它的密文转化为 delegatee 的密文,从而后者可以在不知道前者的私钥情况下解密前者的密文。HPRE 的一种简单实现就是 delegator 利用 delegatee 的 pk 加密自身的 sk 发送给 proxy,于是 proxy 可以在不知道 sk 的情况下实现密文的重加密。缺点是一旦 proxy 和 delegatee 共谋,那么 delegator 的 sk 就泄露了。有一些工作可以抵御上述攻击。

在这里插入图片描述

Homomorphic Authenticated Encryption(HAE)

可认证的同态加密,它可以检验同态运算结果的正确性,这用于抵御云计算的随意返回无用运算。 homomorphic

一般 HAE 可以组合使用 HE 以及 homomorphic authentication(HA),后者是附加在密文上的 homomorphic signatures(HS)。可以证明,如果 HE 和 HA 都是 IND-CPA 安全的,那么 HAE 就是 IND-CCA1 安全的。也有对称版本的解决方案 homomorphic MACs。

在这里插入图片描述

Multi-Party Computation(MPC)

MK-FHE 天然可以构造出 2 轮通信的 MPC,不过只要有一个参与方失败那么整个协议都会失败。Threshold MK-FHE 可以解决这个问题。FHE 只能提供被动安全,还需要添加 ZKP 实现主动安全性。

在这里插入图片描述

这篇关于FHE 的应用场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768161

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时

Java中Runnable和Callable的区别和联系及使用场景

《Java中Runnable和Callable的区别和联系及使用场景》Java多线程有两个重要的接口,Runnable和Callable,分别提供一个run方法和call方法,二者是有较大差异的,本文... 目录一、Runnable使用场景二、Callable的使用场景三、关于Future和FutureTa

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2