草庐IT

同态加密开源框架整理

开放隐私计算 2023-12-12 原文

开放隐私计算 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%的企业采用隐私计算技术

有关同态加密开源框架整理的更多相关文章

  1. TimeSformer:抛弃CNN的Transformer视频理解框架 - 2

    Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图

  2. ruby - 使用 AES 的 Rails 加密,过于复杂 - 2

    我在加密来self正在使用的第三方供应商的值时遇到问题。他们的指令如下:1)Converttheencryptionpasswordtoabytearray.2)Convertthevaluetobeencryptedtoabytearray.3)Theentirelengthofthearrayisinsertedasthefirstfourbytesontothefrontofthefirstblockoftheresultantbytearraybeforeencryption.4)EncryptthevalueusingAESwith:1.256-bitkeysize,2.25

  3. ruby - sinatra 框架的 MVC 模式 - 2

    我想开始使用“Sinatra”框架进行编码,但我找不到该框架的“MVC”模式。是“MVC-Sinatra”模式或框架吗? 最佳答案 您可能想查看Padrino这是一个围绕Sinatra构建的框架,可为您的项目提供更“类似Rails”的感觉,但没有那么多隐藏的魔法。这是使用Sinatra可以做什么的一个很好的例子。虽然如果您需要开始使用这很好,但我个人建议您将它用作学习工具,以对您来说最有意义的方式使用Sinatra构建您自己的应用程序。写一些测试/期望,写一些代码,通过测试-重复:)至于ORM,你还应该结帐Sequel其中(imho

  4. ruby - 如何使用私钥加密完全加密 Ruby 中的数据? - 2

    首先,关于我们系统的一些信息,它基本上是建筑行业的电子招标解决方案。所以:列表项我们的系统有多家公司每个公司都有多个用户每家公司可以创建多个拍卖然后其他公司可以为可用的拍卖提交他们的出价。一个出价包含数百或数千个单独的项目,我们只需要加密这些记录的“价格”部分。我们面临的问题是,我们的大客户不希望我们知道投标价格,至少在投标过程中是这样,这是完全可以理解的。现在,我们只是通过对称加密对价格进行加密,因此即使价格在数据库中有效加密,他们担心的是我们拥有解密价格的key。因此,我们正在研究某种形式的公钥加密系统。以下是我们对解决方案的初步想法:当一家公司注册时,我们会使用OpenSSL为其

  5. ruby-on-rails - 我如何比较 'Bcrypt' Gem解密的密码和加密的密码 - 2

    我正在尝试对某些帖子的评论使用简单的身份验证。用户使用即时ID和密码输入评论我使用“bcrypt”gem将密码存储在数据库中。在comments_controller.rb中像这样@comment=Comment.new(comment_params)bcrypted_pwd=BCrypt::Password.create(@comment.user_pwd)@comment.user_pwd=bcrypted_pwd当用户想要删除他们的评论时,我使用data-confirm-modalgem来确认数据在这部分,我必须解密用户输入的密码以与数据库中的加密密码进行比较我怎样才能解密密码,

  6. ruby - 如何在Elixir中使用AES CBC 128进行加密和解密 - 2

    我在Rails中有一个具有以下方法的应用程序,该方法可以加密和解密文本并与Java客户端通信。defencrypt(string,key)cipher=OpenSSL::Cipher::AES.new(128,:CBC)cipher.encryptcipher.padding=1cipher.key=hex_to_bin(Digest::SHA1.hexdigest(key)[0..32])cipher_text=cipher.update(string)cipher_textexcenddefhex_to_bin(str)[str].pack"H*"enddefbin_to_hex(

  7. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  8. ruby-on-rails - 正确了解 Rails 框架的最佳方式是什么? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我一直在Rails上做两个项目,它们运行良好,但在这个过程中重新发明了轮子,自来水(和热水)和止痛药,正如我随后了解到的那样,这些已经存在于框架中。那么基本上,正确了解框架中所有智能部分的最佳方法是什么,这将节省时间而不是自己构建已经实现的功能?从第1页开始阅读文档?是否有公开所有内容的特定示例应用程序?一个特定的开源项目?所有的rails交通?还是完全

  9. ruby - 自动将院子文档框架添加到现有的 Rails 遗留代码中 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我希望能够将模板化的YARD文档样式注释插入到我现有的Rails遗留应用程序中。目前它的评论很少。我想要具有指定参数的类header和方法header(通过从我假定的方法签名中提取)和返回值的占位符。在PHP代码中,我有一些工具可以检查代码并在适当的位置创建插入到代码中的文档header注释。在带有Ducktyping等的Ruby中,我确信诸如@params等类型之类

  10. ruby-on-rails - 具有六边形架构和 DCI 模式的框架和数据库适配器 - 2

    我尝试用Ruby设计一个基于Web的应用程序。我开发了一个简单的核心应用程序,在没有框架和数据库的情况下在六边形架构中实现DCI范例。核心六边形中有小六边形和网络,数据库,日志等适配器。每个六边形都在没有数据库和框架的情况下自行运行。在这种方法中,我如何提供与数据库模型和实体类的关系作为独立于数据库的关系。我想在将来将框架从Rails更改为Sinatra或数据库。事实上,我如何在这个核心Hexagon中实现完全隔离的rails和mongodb的数据库适配器或框架适配器。有什么想法吗? 最佳答案 ROM呢?(Ruby对象映射器)。还有

随机推荐