谷歌近日开源了首个通用全同态加密(FHE)的转译器(transpiler),可以将普通的C++程序转译为基于TFHE同态库的同态程序,将明文运算转换为了同态密文运算。这个项目依赖XLS和TFHE两个库。本文内容整理自google官方博客、github仓库和白皮书。

一、我们在全同态加密领域的最新进展

作为开发者,让用户安全地使用在线服务并保护用户数据隐私是我们的责任。首先产品需要做到:安全功能是默认的、设计时考虑隐私保护、将隐私数据控制权还给用户。我们在Google所做的全部产品都以这些原则为基础,我们很自豪能够成为新的隐私保护技术的行业领导者,我们开发、部署和大规模应用了这项技术,这使我们能够在保护用户隐私的同时学到有价值的洞见并获得经验。

这就是为什么今天,我们很高兴地宣布,我们是开源了全同态加密库。它是首个通用全同态加密(FHE)的转译器(transpiler),这将使得开发人员能够在密态数据上计算,而不需要访问个人隐私身份数据信息。

二、深入了解背后的技术

借助FHE,密态数据可以通过网路传输到云端,并在不解密的情况下进行处理。开发人员基于任何类型的基础运算编写代码,例如字符串处理或数学运算,谷歌的转译器将该代码转换为可以在密态数据上运行的中间码。借助这些基础的运算,开发人员可以创建运行在密态数据上的应用程序。FHE还可以用于保护隐私的在敏感数据上的机器学习模型训练。

例如,假设您正在为糖尿病患者构建一个应用程序。此应用程序可能会从其用户那里收集敏感信息,您需要一种方法来保护这些数据的私密性和安全性,同时还要与医学专家共享这些数据,以获得可能导致重要医学进步的宝贵洞见。借助 Google的FHE转译器,您可以对收集的数据进行加密并与医学专家共享,这些专家反过来可以在不解密的情况下分析数据,从而为医学界提供有用的信息,同时确保没有人可以访问数据的敏感明文信息。

在接下来的10年里,FHE甚至可以通过分析数千个加密样本的遗传信息并测试不同的理论假设,从而来识别与他们正在研究的疾病最密切相关的基因,从而帮助研究人员找到特定基因突变之间的关联。

通过设计使产品具有更多隐私保护功能

我们原则之一是通过设计使我们的产品保护隐私,这促使我们发展突破性的隐私计算技术,在保护您的隐私的同时实现个性化体验。隐私保护技术处于Google创新的前沿,它们已经显示出塑造更加私密的互联网的巨大潜力。

2016年,谷歌研究人员发明了联邦学习,这是一种通过在个人设备上保留尽可能多的个人信息来帮助保护隐私的技术。2019年,谷歌向组织或开发者免费提供其差分隐私库,这是一种先进的匿名化技术。没有人比我们更广泛地使用差分隐私技术。

我们很高兴看到这些技术在全球得到应用;例如,在法国,一家名为 Arkhn 的初创公司已经能够使用差分隐私在医院之间共享数据来加速科研。

将FHE应用于大多数场景之前,我们还有很长的路要走。但是,这个过程就像HTTPS需要一些时间才能起飞并被广泛采用。今天的故事是,为用户提供有用的产品时保护隐私和数据安全。

在Google,我们知道向开发者社区开放我们的技术以获取反馈和使用,有助于使技术变得更好。我们将不断发布新产品并开源,我们将继续投入和引领隐私保护技术领域。我们很高兴通过与各地的开发人员分享这一最新进展。我们迫不及待地想看看您将构建什么应用,我们期待在实现更安全互联网的过程中进行合作。

三、FHE C++转译器的设计

FHE C++ Transpiler是一种开源技术,允许任何C++开发人员对程序进行转译。

此转译器将Google的XLS库连接到TFHE库。它将允许开发人员(包括那些没有密码学专业知识的开发人员)编写在密态数据上运行的代码,而不会泄露数据内容或计算结果。该库应该有助于为FHE应用的进一步发展奠定基础。

这个项目目前一个探索性的概念验证。虽然它可以在生产中部署,但FHE-C++ 计算效率还是很低,目前不实用。这个转译器严重依赖TFHE库来保证安全。由于TFHE相对较新,因此尚未对TFHE进行可靠的密码学分析。因此,在实际生产部署中使用此库,请注意TFHE中可能存在尚未发现的漏洞。

FHE C++ Transpiler按顺序执行以下五个步骤:

  1. XLS[cc]阶段,将C++函数转换为XLS中间码(IR);

  2. 优化器阶段,优化XLS IR;

  3. Booleanifier 阶段,根据运算的基本布尔运算(例如 AND、OR、NOT)重写XLS IR;

  4. FHE IR Transpiler阶段,将布尔化的XLS IR转换为C++版本,即FHE-C++;

  5. TFHE测试基准阶段,运行带有TFHE库的FHE-C++。

该库包含前四个阶段的代码,用户需要编写自己的C++代码进行转译,以及第五阶段的TFHE测试基准。示例有说明如何构建新的测试基准。

进一步说明每个步骤的详细内容。

1)第一步,将C++代码编译为XLS中间码。

2)第二步,优化性能;

3)第三步,将XLS IR转换为Boolean形式的XLS IR,也就是将XLS中间语言以二进制电路的形式表示和描述。有点类似于零知识证明的做法。

4)第四步,将Boolean XLS IR转换为C++代码,调用FHE库的运算符。

5)第五步,在TFHE上运行测试。

模块化的设计

  • 输入代码可以是可以翻译成XLS 的任何语言。这大大减少了转换现有代码的负担,因为它不需要用固定支持的语言编写;

  • 输出FHE代码可以是任何FHE库的;

  • 底层FHE后端可以是任何将门作为API接口的FHE库;

四、应用样例

1. 计算器

计算器演示将两个加密的短整数相加、相减或相乘,而服务器不知道这些整数或结果的明文。

2. 斐波那契

Fibonacci 演示计算 Fibonacci 序列的总和。

3. 猜单词游戏Hangman

Hangman是经典游戏,这里改造为隐私版本。服务器不知道玩家选择了哪些字母,也不知道他们是赢了还是输了。

4. PIR隐私信息检索

此演示重点介绍了隐私信息检索(PIR)。用户提供的字符串进行检索,而服务器不知道查询条件和要查询的数据。这个操作的复杂度是O(N),其中N是数据库中的记录数。

5. 反转字符串

反转加密字符串。

6. 简单的总和

两个加密整数求和。

7. 字符串大小写

在这个演示中,句子的每个单词的首字母大写。

8. 剪刀石头布

该演示允许您在服务器上玩石头剪刀布。提供玩家的输入,服务器将评估游戏的结果,而不会获得输入或结果的明文。

五、参考文献

  1. whitepaper

    https://github.com/google/fully-homomorphic-encryption/blob/main/transpiler/docs/whitepaper.pdf

  2. github仓库

    https://github.com/google/fully-homomorphic-encryption/tree/main/transpiler

  3. google developer blog,

    https://developers.googleblog.com/2019/09/enabling-developers-and-organizations.html

  4. TFHE,https://tfhe.github.io/tfhe/

  5. XLS,https://google.github.io/xls/

点击下方公众号卡片,关注我

在公众号对话框,回复关键字 “1024”

免费领取副业赚钱实操教程

谷歌开源首个通用全同态加密转译器相关推荐

  1. 实测 Google 全同态加密FHE,效果如何?

    文 / 瑚琏 技术爱好者,广泛涉猎各领域机器学习技术,对不规范代码重度过敏.本篇首发于富数科技官方公号. Google 开源了首个通用全同态加密(FHE)的转译器(transpiler),可以将普通的 ...

  2. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  3. OPPO 40万年薪招应届生,狂揽芯片人才;恶意差评小米新手机,一用户被判赔3万元;谷歌开源全同态加密通用转译器|极客头条

    一分钟速览新闻点! 小米造车"急"了,发布大量自动驾驶相关岗位招聘 阿里平头哥:国产嵌入式 CPU 实现关键技术突破 BOSS 直聘:2021 年应届生岗位平均薪资为 6112 元 ...

  4. 26. 隐私计算时代的全同态加密处理器

    新浪科技讯 12月16日下午消息,由新浪财经客户端.新浪科技联合主办的"2022科技风云榜"线上年度盛典今日开幕.中科院计算所副教授.硕士生导师路航发言指出,人和计算系统的关系正在 ...

  5. 区块链和同态加密结合使用的电子投票系统_全同态加密资源汇总

    本文由陈智罡博士撰写. ●全同态加密论文列表 1.http://people.csail.mit.edu/vinodv/FHE/FHE-refs.html 这个是根据同态加密进行分类的列表 2.htt ...

  6. 全同态加密(FHE):BV方案、密钥切换、模约化、自举

    目前,全同态加密FHE,仅仅在格上被构造出来. 编码 most significant bit encoding Encode: 输入1比特的消息 u u u,计算 b = < s , a &g ...

  7. 全同态加密研究资源汇总

    1.全同态加密论文列表 (1)CryptologyePrint Archive:  http://eprint.iacr.org .这个网站估计密码学的人都知道.可以查找按照关键字"全同态& ...

  8. bfv同态加密_全同态加密BFV-(section 2-SHE)

    写在前面 如果第一次来到我的专栏,如果想从头学习全同态加密FHE,那么点击下面的链接吧,我在最开始的地方等你~安全六三:全同态加密1-(BFV section 1)​zhuanlan.zhihu.co ...

  9. 隐私计算之全同态加密

    [引]走近任何一个领域,都会发现自己的渺小和微不足道,会越发地敬畏技术和未知,隐私计算也不例外.读了一点儿文章和paper,觉得还是ACM 上的这篇综述(https://queue.acm.org/d ...

最新文章

  1. LeetCode简单题之旋转字符串
  2. golang sqlite数据库 rows.Close()造成 错误database is locked
  3. Flask+geventwebsocket实现群聊与单聊功能
  4. ASP.NET MVC XML绑定Action参数列表
  5. GDCM:gdcm::MediaStorage的测试程序
  6. 拷贝依赖_还不懂零拷贝(Zero-Copy)?怎么称得上高级程序员
  7. redis持久化策略梳理及主从环境下的策略调整记录
  8. (85)Verilog HDL:板间信号同步
  9. java set collection_Java的Collection接口和Set接口?
  10. success.php
  11. opper、vivo手机微信小程序扫码后请求后台报400错误
  12. Unable to find script library '/aspnet_client/system-web/1-1-4322/webvalidation.js'
  13. turtle画了一个皮卡丘
  14. python学习之旅_第1天
  15. mysql 竖线_为什么MySQL拒绝在INSERT INTO字符串中使用竖线('|')字符?
  16. buu刷题记录 [PWNHUB 公开赛 2018]傻 fufu 的工作日
  17. 美国TSCA 法案禁止产品中含有五种PBT 物质
  18. Java面试题 java高级
  19. DOS里的NET命令用法
  20. 新版postman,代理抓包,抓不到https

热门文章

  1. 微服务调用链监控开源工具CAT
  2. 由梅西控球助攻联想到的......
  3. Android-EditText实现小眼睛按钮显示密码
  4. C语言标准库函数qsort(快速排序函数)
  5. C语言排序函数qsort( )
  6. 2020年全球铀矿产量为4.77万吨,其中40.8%产自哈萨克斯坦[图]
  7. XIM协议的原理及其实现
  8. Andriod 底层第一课----JNI
  9. MySQL 高级知识(索引、优化)
  10. 通过修改Cookie登录后台