同态加密开源框架整理

Posted 开放隐私计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同态加密开源框架整理相关的知识,希望对你有一定的参考价值。

开放隐私计算 2022-11-16 19:17 发表于浙江

以下文章来源于隐私计算研习社 ,作者庄智廉

隐私计算研习社.

开放隐私计算社区

开放隐私计算

开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。

177篇原创内容

公众号

本次推文分享同态加密开源框架合集。本文基于Jonathan Schneider的github仓库进行补充整理。

HEhub

github: 

https://github.com/primihub/HEhub

简介:由原语科技推出的同态加密开源算法库 HEhub,作为 PrimiHub 开源生态的一部分。HEhub 是一个易于使用,可扩展性强且性能优秀的密码学算法库,致力于汇集各类同态加密算法及其应用。其目前包含了 BGV、CKKS、TFHE 等全同态加密算法,并将进一步集成更多同态加密方案、常用的计算逻辑以及上层应用接口。对开发者而言,HEhub 有助于其跟踪同态加密领域的最前沿进展,将同态加密技术应用到各类隐私计算场景中。与此同时,HEhub 也是国内第一个自研的开源(全)同态加密算法库,及时填补了国内开源生态中的空白,其将有利于国内同行在同态加密领域的前沿研究与落地实践,并促进隐私技术的自主发展。

Concrete

github: 

https://github.com/zama-ai/concrete

docs: 

https://docs.zama.ai/concrete

简介:使用Rust语言实现了Zama的TFHE变体。Concrete的密码算法基于LWE问题和RLWE问题,研究证明基于这类问题的密码算法是抗量子的。

cuFHE

github:

https://github.com/vernamlab/cuFHE

简介:支持GPU加速的全同态加密仓库。它实现了 Chillotti 等人提出的 TFHE 方案 [CGGI16][CGGI17]。使用英伟达泰坦Xp显卡进行实验,比使用CPU进行计算的TFHE方案快20多倍。

cuHE

github: 

https://github.com/vernamlab/cuHE

简介:cuHE是一个 GPU 加速库,实现了在多项式环上定义的同态加密 (HE) 方案和同态算法。同时提供了一个简单易用的接口,提高了程序员的开发效率。它使用电路同态评估技术。并针对单 GPU 和多 GPU 设备优化了代码。

相关文献:

Dai, Wei, and Berk Sunar. "cuHE: A Homomorphic Encryption Accelerator Library." Cryptography and Information Security in the Balkans. Springer International Publishing, 2015. 169-186.

Dai, Wei, Yarkın Doröz, and Berk Sunar. "Accelerating NTRU based homomorphic encryption using GPUs." High Performance Extreme Computing Conference (HPEC), 2014 IEEE. IEEE, 2014.

Dai, Wei, Yarkın Doröz, and Berk Sunar. "Accelerating SWHE Based PIRs Using GPUs." Financial Cryptography and Data Security: FC 2015 International Workshops, BITCOIN, WAHC, and Wearable, San Juan, Puerto Rico, January 30, 2015, Revised Selected Papers. Vol. 8976. Springer, 2015.

cuYASHE

github: 

https://github.com/cuyashe-library/cuyashe

cuYASHE 是第一个在 GPGPU 上实现水平全同态方案 YASHE。该库采用 CUDA 平台以及代数技术(如 CRT、FFT 以及多项式和模约简的优化)获得显了著的性能改进。与CPU、GPU 和 FPGA 中最先进的实现方案相比,他有更优异的性能。特别是多项式乘法有 6 到 35 倍的加速。

相关文献:

Alves, P. G. M. R., & Aranha, D. F. (2016). Efficient GPGPU implementation of the Leveled Fully Homomorphic Encryption scheme YASHE (In Portuguese). Institute of Computing, Unicamp.

Bos, J. W., Lauter, K., Loftus, J., & Naehrig, M. (n.d.). Improved Security for a Ring-Based Fully Homomorphic Encryption Scheme.

Cupcake

github:  

https://github.com/facebookresearch/Cupcake

简介:Cupcake 是一个Fackbook开源的同态加密库,实现了Fan-Vercauteren 同态加密方案的加法版本,并使用。提供明文向量加密、加/减两个加密向量以及重新随机化密文的功能。

相关文献:

Somewhat Practical Fully Homomorphic Encryption

FINAL

github:

https://github.com/KULeuven-COSIC/FINAL

简介:FINAL实现了论文 "FINAL: Faster FHE instantiated with NTRU and LWE"提出的全同态加密方案。

HEAAN

github: 

https://github.com/snucrypto/HEAAN

简介:HEAAN 是实现支持定点算法的同态加密 (HE) 的软件库。该库支持有理数之间的近似运算。近似误差取决于一些参数,与浮点运算误差几乎相同。

相关文献:Homomorphic Encryption for Arithmetic of Approximate Numbers  

HEAAN-python

github: 

https://github.com/Huelse/HEAAN-Python

简介:HEAAN的python版本。

HElib

github: 

https://github.com/HomEnc/HElib

docs: 

https://github.com/homenc/HElib/tree/master/documentation

简介:HElib 是一个实现同态加密(HE)的开源代码库。目前实现的方案是包括带有引导的 Brakerski-Gentry-Vaikuntanathan (BGV) 方案和 Cheon-Kim-Kim-Song (CKKS) 的近似数方案的实现,仓库使用了许多优化技术使同态运算更快。

HEMat

github: 

https://github.com/K-miran/HEMat

简介:HEMat 是一个使用同态加密执行安全外包矩阵计算的软件包

相关文献:Secure Outsourced Matrix Computation and Application to Neural Networks

Lattigo

github:

https://github.com/tuneinsight/lattigo

简介:Lattigo实现了基于RLWE的同态加密方案以及基于同态加密的多方安全计算协议。Lattigo使用go语言实现。Lattigo 旨在支持分布式系统和微服务架构中的 HE,选用go是因为其并发模型和可移植性。

相关文献:

Efficient Bootstrapping for Approximate Homomorphic Encryption with Non-Sparse Keys (https://eprint.iacr.org/2020/1203)

Bootstrapping for Approximate Homomorphic Encryption with Negligible Failure-Probability by Using Sparse-Secret Encapsulation (https://eprint.iacr.org/2022/024)

Somewhat Practical Fully Homomorphic Encryption (https://eprint.iacr.org/2012/144)

Multiparty Homomorphic Encryption: From Theory to Practice (https://eprint.iacr.org/2020/304)

libScarab

github: 

https://github.com/hcrypt-project/libScarab

简介:libScarab 是使用大整数的完全同态加密方案的实现。

SEAL

github: 

https://github.com/microsoft/SEAL

docs: 

https://github.com/microsoft/SEAL#introduction

简介:Microsoft SEAL 是一个易于使用的开源(MIT 许可)同态加密库,由 Microsoft 的密码学和隐私研究小组开发。Microsoft SEAL 是用现代标准 C++ 编写的,易于在许多不同的环境中编译和运行。

NFLlib

github: 

https://github.com/quarkslab/NFLlib

docs: 

https://github.com/quarkslab/NFLlib/tree/master/doc

简介:NFLlib 是一个实现了理想格密码的同态加密。该库结合了算法优化(中国剩余定理、优化的数论变换)与编程优化技术(SSE 和 AVX2 专业化、C++ 表达式模板等)。

NuFHE

github: 

https://github.com/nucypher/nufhe

docs: 

https://github.com/nucypher/nufhe/tree/master/examples

简介:NuFHE是基于GPU实现的环上全同态加密方案。该库使用 CUDA 和 OpenCL 实现了 TFHE 的完全同态加密算法。与在内部使用 FFT 来加速多项式乘法的 TFHE 不同,nufhe 可以使用 FFT 或纯整数 NTT(有限域上的类似 DFT 的变换)。后者基于 cuFHE 的算术运算和 NTT 方案。

OpenFHE

github: 

https://github.com/openfheorg/openfhe-development

docs: 

https://openfhe-development.readthedocs.io/en/latest/

简介:OpenFHE 是一个开源 FHE 库,包括所有常见 FHE 方案的有效实现:

petlib

github: 

https://github.com/gdanezis/petlib

docs: 

https://petlib.readthedocs.io/en/latest/

简介:一个实现许多隐私增强技术 (PET) 的 python 库。

Pyfhel

github: 

https://github.com/ibarrond/Pyfhel

docs:

https://pyfhel.readthedocs.io/en/latest/

简介:支持对加密的向量、标量进行加法、减法、乘法、标量积的代码库。该库提供最先进的 C++ HE 库的 Python API。

python-paillier

github:

https://github.com/data61/python-paillier

docs: 

https://github.com/data61/python-paillier/tree/master/docs

简介:实现 Paillier 同态加密的 Python 3 库。paillier 密码系统的同态属性包括:加密数字可以乘以非加密标量;加密数字可以加在一起;加密数字可以添加到非加密标量。

SEAL-python

github:

https://github.com/Huelse/SEAL-Python/

docs: 

https://github.com/Huelse/SEAL-Python/tree/main/examples

简介:SEAL-python使用pybind11为SEAL的C++代码提供python接口,方便开发者使用python进行开发。

SparkFHE

github: https://github.com/SpiRITlab/spark

docs: 

https://homomorphicencryption.org/wp-content/uploads/2019/08/poster_5.pdf

简介:Spark提供了基于全同态加密算法的分布式数据流。

TenSEAL

github: 

https://github.com/OpenMined/TenSEAL

docs: 

https://github.com/OpenMined/TenSEAL#tutorials

简介:TenSEAL 是一个用于对张量进行同态加密操作的库,构建在 Microsoft SEAL 之上。它通过 Python API 提供易用性,同时通过使用 C++ 实现其大部分操作来保持效率。

tfhe

github: 

https://github.com/tfhe/tfhe

简介:环上的全同态加密高效实现。这个库是 TFHE 的原始版本,它实现了同态加密基本的模块 (bootstrapped and leveled)。

相关文献:

Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds  IACR conference Asiacrypt 2016 by Ilaria Chillotti, Nicolas Gama, Mariya Georgieva, Malika Izabachène.

参考链接

https://github.com/jonaschn/awesome-he

本文作者简介:庄智廉,重庆大学大数据与软件学院研究生。研究兴趣是隐私保护机器学习。知乎:acai

END

往期推荐:

隐私计算头条周刊(11.6-11.12)

车路协同隐私计算

好书赠送丨海伦·尼森鲍姆著:《场景中的隐私——技术、政治和社会生活中的和谐》,王苑等译

2022隐私计算HACKATHON大赛报名正在火热进行中!

开放隐私计算社区征稿啦!

热门文章:

姚期智院士:数据、算法、算力为何是数字经济核心技术?

附下载 | 2022年隐私计算技术与行业应用报告合集(33份)

联邦学习前沿 | 基于图神经网络的联邦推荐系统研究 

招标 | 近期隐私计算项目招标中标24(国家广播电视总局、国家工信安全中心、江西银行、光大银行、人保财险)

未来十年,将会有95%的企业采用隐私计算技术

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

谷歌近日开源了首个通用全同态加密(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”

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

以上是关于同态加密开源框架整理的主要内容,如果未能解决你的问题,请参考以下文章

布隆过滤器同态加密PKI体系……一文告诉你密码学在区块链中能做什么!

SEAL全同态加密开源库(十三) CKKS-源码浅析

FISCO BCOS 同态加密 实例

同态加密:实现数据的“可算不可见”

数据交易之数据信托,区块链差异隐私同态加密及智能合约等新 技术强化数据管理与保护的程度,全面提升个人数据利用的安全性合规性与保密性

同态加密实现数据隐私计算,能让你的小秘密更加秘密