TFHE-rs v0.7 版本发布,引入了密文压缩和多 GPU 支持等重要特性。密文压缩可将密文大小最多减少 1900 倍,而多 GPU 支持能够显著提升同态计算的性能,文章还介绍了新版本中参数集合的更新、新的向量和数组运算、优化的零知识证明以及优化的 GPU 密钥切换等额外功能。
/
2024 年 7 月 5 日
-
Jean-Baptiste Orfila, Arthur Meyre, Agnes Leroy
TFHE-rs v0.7 现在支持压缩对同态计算结果进行加密的密文。这项新功能在提供的参数下,可将密文大小最多减少 1,900 倍! 此外,TFHE-rs v0.7 允许用户利用广泛部署在服务器上的多 GPU 架构,从而大幅提高计算性能。 与往常一样,此版本引入了大量新功能和改进,如下详述!
FHE 实现的挑战之一是密文的大小。 默认情况下,明文的 1 位与其加密等效值之间的比率约为 8,200,这意味着密文中需要 8,200 位数据才能表示明文中的 1 位数据。 自 v0.2 以来,TFHE-rs 一直支持输入压缩; 但是,直到现在才有可能减小密文的后计算大小。 从 v0.7 此版本开始,现在可以在程序的任何时候压缩密文。
目前,后计算压缩仅适用于少数参数集,如下面的代码片段所示。 具有这些参数的压缩密文列表最多可以有 256 个槽,每个槽能够包含 2 位的加密数据。 例如,8 个 FheUint64 值可以最佳地存储在一个列表中。 表 1 提供了密文大小和压缩比的摘要。
表 1:压缩密文的大小与明文位数的函数关系。
以下示例演示了如何使用 TFHE-rs 和新引入的 CompressedCiphertextList 压缩密文。 它是异构的,因此允许将任何类型的密文存储在一起,例如 FheUint32、FheUint16、FheBool 等。如果输入位数超过最大阈值,则列表会自动拆分为多个列表。
use tfhe::prelude::*;
use tfhe::shortint::parameters::{COMP_PARAM_MESSAGE_2_CARRY_2, PARAM_MESSAGE_2_CARRY_2};
use tfhe::{
set_server_key, CompressedCiphertextListBuilder, FheBool, FheInt64, FheUint2, FheUint32,
};
fn main() {
let config = tfhe::ConfigBuilder::with_custom_parameters(PARAM_MESSAGE_2_CARRY_2, None)
.enable_compression(COMP_PARAM_MESSAGE_2_CARRY_2)
.build();
let ck = tfhe::ClientKey::generate(config);
let sk = tfhe::ServerKey::new(&ck);
set_server_key(sk);
let ct1 = FheUint32::encrypt(17_u32, &ck);
let ct2 = FheInt64::encrypt(-1i64, &ck);
let ct3 = FheBool::encrypt(false, &ck);
let ct4 = FheUint2::encrypt(3u8, &ck);
let serialized_ct1 = bincode::serialize(&ct1).unwrap();
let serialized_ct2 = bincode::serialize(&ct2).unwrap();
let serialized_ct3 = bincode::serialize(&ct3).unwrap();
let serialized_ct4 = bincode::serialize(&ct4).unwrap();
let uncompressed_serialized_size =
serialized_ct1.len() + serialized_ct2.len() + serialized_ct3.len() + serialized_ct4.len();
println!(
"Uncompressed serialized size: {} bytes",
uncompressed_serialized_size
);
let compressed_list = CompressedCiphertextListBuilder::new()
.push(ct1)
.push(ct2)
.push(ct3)
.push(ct4)
.build()
.unwrap();
let serialized = bincode::serialize(&compressed_list).unwrap();
let compressed_serialized_size = serialized.len();
println!(
"Compressed serialized size: {} bytes",
compressed_serialized_size
);
println!(
"Compression ratio for 105 bits {}",
uncompressed_serialized_size as f64 / compressed_serialized_size as f64
);
}
TFHE-rs v0.7 首次实现了使用多个 GPU 进行同态计算,标志着性能的显著提升。无需更改代码即可在多个 GPU 上执行。为了尽可能保持 API 的用户友好性,配置是自动设置的; 用户无法对 GPU 的选择进行细粒度控制。
但是,存在某些限制:只有通过 NVLink 对 GPU 0 具有对等访问权限的 GPU 才用于计算。 根据平台的不同,这可能会限制 TFHE-rs 可以有效利用的 GPU 数量。
多 GPU 支持以及此版本中引入的一些优化,为整数运算带来了前所未有的性能。
图 1:64 位加法、乘法和除法的耗时,其中两个输入已加密,在 CPU(来自 AWS 的 hpc7a.96xlarge)与一个和两个 H100 GPU 上运行。 这些参数对应于两位消息和两位进位,使用分组因子等于 3 的多位 PBS。
每个操作的最佳 GPU 数量因操作本身和用户指定的整数精度而异。 在文档中提供了所有指定精度下单 GPU 和多 GPU 的综合基准测试结果数组。
TFHE-rs v0.7 还包括一些其他新功能和性能改进:
TFHE-rs 的下一个版本将侧重于增强多 GPU 性能,同时扩展可用操作集。
[视频教程] 使用 TFHE-rs 在 FHE 计算后压缩密文 \ 在本教程中,Zama 团队成员 Arthur Meyre 将向你展示如何使用 TFHE-rs 在 FHE 计算后压缩密文。 2024 年 7 月 24 日\ \ Arthur Meyre
TFHE-rs
教程
Zama 产品发布 - 2024 年 7 月 \ 阅读有关 Zama 2024 年 7 月的产品更新,其中包括对 TFHE-rs、Concrete、Concrete ML 和 fhEVM 的增强功能... 2024 年 7 月 5 日\ \ The Zama Team
公告
fhEVM v0.5: 增强了加密数据的安全性和效率 \ fhEVM v0.5 引入了许多增强功能,以提高应用程序中处理加密数据的安全性和效率。 2024 年 7 月 5 日\ \ Clément Danjou
公告
fhEVM
Concrete ML v1.6:更大的神经网络和预训练的基于树的模型 \ Concrete ML v1.6 提高了大型神经网络的延迟,并支持具有许多其他改进的预训练的基于树的模型 2024 年 7 月 5 日\ \ Andrei Stoian
公告
Concrete ML
Concrete v2.7:GPU Wheel、扩展函数组合和其他改进 \ Concrete v2.7 引入了第一个可以加速 GPU 计算的 Wheel,并添加了许多其他新功能。 2024 年 7 月 5 日\ \ Quentin Bourgerie
公告
Concrete
Concrete ↗ Concrete ML ↗ FHEVM ↗ TFHE-rs ↗
博客 文档 ↗ GITHUB ↗ FHE 资源 ↗ 研究论文 ↗ Bounty Program ↗ FHE STATE OS
与专家交谈 联系我们 X Discord Telegram 所有社区频道
隐私对于电子时代开放的社会是必要的。隐私不是秘密。私事是不想让全世界知道的事情,而秘密是不想让任何人知道的事情。隐私是有选择地向世界展示自己的力量。如果双方有某种交易,那么每一方都会记住他们的互动。每一方都可以谈论自己对这件事的记忆; 谁能阻止呢?可以制定法律来禁止它,但言论自由,甚至比隐私更重要,对于一个开放的社会至关重要; 我们不寻求限制任何言论。如果许多各方在同一个论坛上一起发言,每个人都可以向所有其他人发言,并将关于个人和其他各方的知识汇总在一起。电子通信的力量促成了这种群体言论,它不会仅仅因为我们可能希望它消失而消失。由于我们渴望隐私,我们必须确保交易的每一方只知道该交易直接需要的知识。由于任何信息都可以被谈论,我们必须确保我们尽可能少地透露信息。在大多数情况下,个人身份并不突出。当我在商店购买杂志并向店员支付现金时,没有必要知道我是谁。当我要求我的电子邮件提供商发送和接收消息时,我的提供商不需要知道我在与谁交谈,我在说什么,或者其他人在对我说什么; 我的提供商只需要知道如何将消息发送到那里,以及我欠他们多少费用。当我的身份通过交易的底层机制被揭示时,我就没有隐私。我不能在这里有选择地展示自己; 我必须始终展示自己。因此,开放社会中的隐私需要匿名交易系统。到目前为止,现金一直是主要的此类系统。匿名交易系统不是秘密交易系统。匿名系统使个人能够在需要时以及仅在需要时才透露自己的身份; 这是隐私的本质。开放社会中的隐私也需要密码学。如果我说了一些话,我希望只有我打算让其听到的人才能听到。如果我的言论内容可以被全世界听到,我就没有隐私。加密是为了表示对隐私的渴望,而用弱密码学加密是为了表示对隐私的渴望程度不高。此外,当默认设置为匿名时,要确保地揭示自己的身份,需要使用密码签名。我们不能期望政府、公司或其他大型的、没有面孔的组织出于仁慈而给予我们隐私。谈论我们对他们有利,我们应该期望他们会谈论。试图阻止他们的言论是与信息的现实作斗争。信息不仅仅是想自由,它渴望自由。信息扩展到填满可用的存储空间。信息是谣言的年轻、更强大的表弟; 信息比谣言的脚步更快,眼睛更多,知道的更多,但理解的更少。如果我们希望拥有隐私,就必须捍卫自己的隐私。我们必须走到一起,创建允许进行匿名交易的系统。几个世纪以来,人们一直通过耳语、黑暗、信封、关着的门、秘密握手和信使来捍卫自己的隐私。过去的技术不允许强大的隐私,但电子技术可以。我们密码朋克致力于构建匿名系统。我们正在用密码学、匿名邮件转发系统、数字签名和电子货币来捍卫我们的隐私。密码朋克编写代码。我们知道必须有人编写软件来捍卫隐私,而且由于除非我们都这样做,否则我们无法获得隐私,因此我们将编写它。我们发布我们的代码,以便我们的密码朋克伙伴可以练习和使用它。我们的代码可供全世界所有人免费使用。我们不太关心你是否不赞成我们编写的软件。我们知道软件无法被销毁,而且广泛分散的系统无法被关闭。出于密码学从根本上是一种私人行为,密码朋克谴责对密码学的法规。事实上,加密行为将信息从公共领域中移除。即使是反对密码学的法律也只能达到一个国家的边界及其暴力的臂膀。密码学将不可避免地传播到全球,并随之传播到它所实现的匿名交易系统。为了使隐私得到广泛传播,它必须成为社会契约的一部分。人们必须走到一起,部署这些系统以造福大众。隐私只能延伸到社会中同伴的合作。我们密码朋克寻求你的问题和你的担忧,并希望我们能够与你互动,以便我们不会自欺欺人。但是,我们不会因为某些人可能不同意我们的目标而改变我们的路线。密码朋克正在积极致力于使网络对隐私更加安全。让我们一起快速前进。前进。作者:埃里克·休斯。1993 年 3 月 9 日。
- 原文链接: zama.ai/post/tfhe-rs-v0-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!