当前位置: 首页 > news >正文

FHE全同态加密简介

1. 何为FHE?

在这里插入图片描述

FHE (Fully homomorphic encryption):

  • 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。
  • 即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内的任何明文数据。

1.1 FHE历史

FHE历史演变路径为:

  • Ronald Rivest、Leonard Adleman 和 Mike Dertouzos 于1978年 On Data Banks and Privacy Homomorphisms 论文中,提出了“基于密文计算”的概念。
  • 2009年Craig Gentry 在其博士论文 A fully homomorphic encryption scheme 中,构建了首个支持通用电路的方案——通过加法和乘法来实例化FHE。

2. FHE用例

FHE可用于:

  • 隐私加强:如用于机器学习、云计算、FHE+ZKP+MPC实现链上gambling、加密搜索和数据库操作。
  • 链上私有交易、私有智能合约、专注隐私的VM如FHEVM等。

2.1 何为专注隐私的VM?

以下将“专注隐私的VM”称为“加密VM”。
加密VM环境支持:

  • 上传合约S和交易T
  • 计算S(T),在不公开S和(或)T的情况下,来做资产转移、swap等。
    • 如,某些云厂商提供合约隐私,某些云厂商提供数据隐私,而有的云厂商同时提供合约隐私和数据隐私。

实现加密VM的挑战在于:

  • 1)Overheads开销
  • 2)Breaking composability突破现有组合性
  • 3)Breaking dev tools突破现有开发工具
  • 4)Regulatory监管

2.1.1 Overheads

  • 需要将program转换为“FHE-friendly”表示,如只包含加法和乘法门的电路。相比于直接计算,这引入了大量的开销。
  • 对每个电路执行密码学运算,将单个操作符,替换为,一系列基于大数的复杂运算。这仍会增加开销。

具体区间与具体的计算,以上步骤将增加数十倍的开销。

2023年9月,Intel声称正在开发对FHE运算高效的定制芯片:

  • Intel plans custom accelerator chip, model for encrypted computing

挑战在于,该算法仍在进化,且有大量的参数选型。Sergey Gorbunov参与了2019年的 Homomorphic Encryption Standard 制定。至今仍有一些选型未完成。

电路设计的挑战在于需要非常准确的域和运算,来最大限度地利用固定电路拓扑。

有没有什么“突破”使FHE成为现实?当前还没有。

  • 正在算法和优化方面进行扎实但渐进的改进。从必须将程序转换为某种形式的THE友好表示(这将增加开销)到必须对更大的数字进行计算,这一切都不会改变。

2.1.2 Breaking composability

隐私破坏了可组合性。

  • 不能像编写公共数据[和程序]那样编写私有数据。
  • 也就是说,加密交易不能像明文值那样在智能合约中使用——接收加密交易的程序不能调用另一个程序,也不能向仅通过明文值操作的程序发送存款。这使得在一个生态之上构建另一生态更具挑战性。

2.1.3 Breaking dev tools

似乎很少有人讨论这一点,但在加密的领域中不可能有相同的监控/调试工具。如,

  • 假设客户打电话说“我的交易没有通过”。要调试此语句,需要知道问题是否与数据编码、加密、程序评估或管道中的其他任何地方有关。如果没有对数据本身的可见性(客户一开始就试图隐藏数据),这是非常具有挑战性的。

2.1.4 Regulatory

已经看到了保护隐私的token和网络的问题。可能会因为编写该软件而遇到麻烦。监管机构将如何接收和分类完全加密的环境还有待观察。

3. FHE的当前瓶颈

FHE的当前瓶颈有:

  • 1)为加强计算安全性,在加密期间会给密文添加一些“noise噪声”。
  • 2)当密文中累积了过多“噪声”时,会因过噪,而影响输出的精度。
  • 3)Bootstrapping自举 是一种常用去噪技术,但其是计算密集型的。
  • 4)不同的解决方案正在探索,在不给设计施加太多约束的情况下,有效去噪的方法,包括TFHE、CKKS、BGV等。

4. FHE领域项目

当前,FHE领域项目有:

  • @zama_fhe:TFHE + fhEVM
  • @FhenixIO:FHE L2 + coprocessor
  • @Privasea_ai:Ai X FHE
  • @octra:HFHE L1
  • @inconetwork:FHE L1
  • @Fair_Block:Modular FHE solution
  • @mindnetwork_xyz:Depin + AI X FHE
  • @SunscreenTech:FHE compiler
  • @zkHoldem:Gambling with FHE

5. FHE领域前景展望

将ZK推向今天的水平总共花费了大约10亿美元——这是一个很大的兴奋和潜力,但还有更多的生产用例有待观察。Sergey预计FHE将需要大约相同的资金才能达到目前的水平[需要大约9亿VC]。这是因为软件栈的类似部分需要重写,而且可以说需要重写更多。

Sergey认为工程师应该关注更多的垂直用例,并考虑端到端的开发人员体验。当然,考虑通用VM环境是有利可图的,但其应针对特定的工作负载进行优化。

谁将为保护隐私的固有管理费用支付美元(工程、维护和执行成本)还有待观察。

FHE领域需要更多的资金、更多的工程师、实用的用例和简单的开发环境。

参考资料

[1] Poopman 2024年4月7日twitter A simple explanation of FHE (Fully homomorphic encryption) 🥷🧾
[2] Sergey Axelar 2024年3月9日twitter To FHE, or not to FHE, that is the question.
[3] Sergey 2024年3月9日博客 To FHE, or not to FHE, that is the question.

FHE系列博客

  • 技术探秘:在RISC Zero中验证FHE——由隐藏到证明:FHE验证的ZK路径(1)
  • 基于[Discretized] Torus的全同态加密指引(1)
  • 基于[Discretized] Torus的全同态加密指引(2)
  • TFHE——基于[Discretized] Torus的全同态加密 代码解析
  • 技术探秘:在RISC Zero中验证FHE——RISC Zero应用的DevOps(2)
  • FHE简介
  • Zama TFHE-rs
  • Zama TFHE-rs白皮书(1)
  • Zama TFHE-rs白皮书(2)
  • ZK系统内隐私 VS. FHE系统内隐私
  • ZK vs FHE

相关文章:

FHE全同态加密简介

1. 何为FHE? FHE (Fully homomorphic encryption): 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内…...

【vue】跨组件通信--依赖注入

import { provide,inject } from vue provide&#xff1a;将父组件的数据传递给所有子组件&#xff08;子孙都有&#xff09;inject&#xff1a;接收provide 项目文件结构 App.vue是Header.vue的父组件&#xff0c;Header.vue是Nav.vue的父组件 传值过程 App.vue <tem…...

Aritest+python+Jenkins解放双手iOS/Android自动化

ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案&#xff0c;实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念&#xff1a; 1. **ARITest**&#xff1a; ARITest 是一款功能全面的自动化测试工具&#xff0c;提供 UI 自动化、接口自…...

Problem #7 [Medium]

This problem was asked by Facebook. Given the mapping a = 1, b = 2, … z = 26, and an encoded message, count the number of ways it can be decoded. For example, the message ‘111’ would give 3, since it could be decoded as ‘aaa’, ‘ka’, and ‘ak’. Y…...

MySQ数据库: MySQL数据库的安装配置 ,图文步骤详细,一篇即可完成安装完成! MySQL数据库如何与客户端连接

LiuJinTao&#xff1a; 2024年4月14日 文章目录 MySQL的安装配置1. 下载2. 安装 三、 MySQL 启动与停止1. 第一种 方式&#xff1a;2. 第二种方式&#xff1a; 四、MySQL 客户端连接2. 方式二&#xff1a; MySQL的安装配置 1. 下载 官方下载网址&#xff1a;https://www.mysq…...

vue3+vant自动导入+pina+vite+js+pnpm搭建项目框架

vue3vant自动导入pinavitejspnpm搭建项目框架 文章目录 vue3vant自动导入pinavitejspnpm搭建项目框架1. 安装pnpm&#xff08;如果还没有安装&#xff09;&#xff1a;2. 创建项目目录并进入该目录&#xff1a;3. 初始化项目&#xff1a;4. 安装Vite作为构建工具&#xff1a;5.…...

使用 Axios 处理 AxiosError 的三种常见方法

在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…...

linux上安装Tomcat

安装Tomcat 安装JDK https://www.oracle.com/java/technologies/downloads/#license-lightbox mkdir -p /usr/java tar xf jdk-11.0.22_linux-x64_bin.tar.gz ln -sv /usr/java/jdk /usr/java/jdk-11.0.22配置环境变量&#xff1a; cat > /etc/profile.d/java.sh <&…...

Ubuntu20.04安装ROS过程记录以及常见报错处理

官网安装步骤如下&#xff1a; http://wiki.ros.org/cn/noetic/Installation/Ubuntu#A.2BXwBZy1uJiMU- 第一个&#xff1a;添加ROS软件源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-la…...

PaddleOCR 图片日期识别

目录 一 . 获取图片信息种对应坐标区域日期信息 &#xff08;类型为1&#xff1a;http链接 类型为 2本地图片路径&#xff09; 二 . ocr图片识别日期信息获取&#xff0c;调用获取图片区域相应位置方法 三 . 如有所需获取rtsp流回放格式 四 . 完整代码如下 &#xff08…...

HTML5学习记录

简介 超文本标记语言&#xff08;HyperText Markup Language&#xff0c;简称HTML&#xff09;&#xff0c;是一种用于创建网页的标准标记语言。 编辑器 下载传送门https://code.visualstudio.com/ 下载编辑器插件 标题 标题通过 <h1> - <h6> 标签进行定义。 …...

提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件

法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼&#xff0c;以及仲裁案件&#xff0c;精确的法律文书撰写对于案件的成功至关重要。然而&#xff0c;这一过程往往既耗时又复杂&#xff0c;尤其是在处理复杂的案情和面对当事人难以理解…...

大数据之 Hive 快速搭建的详细步骤

Hive hive 搭建三种模式: 内嵌模式本地模式远程模式内嵌模式 Hadoop 和 Hive 整合 修改 hadoop/etc/下的 core-site.xml: <property><name>hadoop.proxyuser.root.hosts</name><value>*</value> </property> <property><nam…...

从入门到高级的99个python知识点

大家好&#xff0c;想掌握Python编程语言&#xff0c;从零基础的小白晋升为大神&#xff1f;没问题&#xff01;接下来我们将以轻松有趣的方式&#xff0c;逐一解锁Python学习路上的99个关键知识点。每一步都将结合实际应用场景、函数功能解析及简洁代码演示&#xff0c;带你深…...

设计模式之备忘录模式(上)

备忘录模式 1&#xff09;概述 1.定义 在不破坏封装的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;可以在以后将对象恢复到原先保存的状态。 2.作用 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便…...

算法中二分搜索详解

文章目录 在有序数组中找num是否存在实现思路实现代码(里面运用了对数器)在有序数组中找>num的最左位置实现思路代码实现 在有序数组中找<num的最右位置实现思路实现代码 二分搜索不一定发生在有序数组上(比如寻找峰值问题)题目描述实现思路实现代码 在有序数组中找num是…...

关于无线充电项目总结IP6826

1、电路 1.1 选用芯片IP6826英集芯 支持PD3.0 5-15W 1.2 推荐电路 讲解这个是官方推荐图 注意以下几点&#xff1a; NTC是100K的别买错了 L就是线圈 我这选用的A11 6.3 uH 淘宝买的 需要陪400nf NPO或CBB 还可以10uh配250nf&#xff08;这个我没试过&#xff09; 如果led2闪烁…...

[CSS]样式属性+元素设置

哎呀&#xff0c;好多东西&#xff0c;根本记不住&#xff0c;更多的还是边用边记吧&#xff0c;这里的代码就当使用范例&#xff0c;但其实如果可以让gpt应该会更好&#xff0c;哎学吧&#xff0c;反正记得住当然更好 文本 属性名描述word-break单词换行。取值如下&#xff1…...

优雅关闭jar程序shell 脚本

参考竽道Linux部署 #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/work/projects/yudao-server # 服务名称。同时约定部署服务的 jar 包名字也为它。 SERVER_NAMEyudao-server # 环境 PROFILES_ACTIVEdev# heapError 存放路径 HEAP_ERROR_PATH$BASE_PATH/he…...

基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机多功能洗衣机控制(强洗弱洗漂洗)设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 多功能洗衣机控制-强洗弱洗漂洗 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接&#xf…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...