同态加密开源框架整理

news2024/12/25 0:29:28

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年数维杯国际赛D题 极端天气损失评估与应对策略

2022年7月至8月,中国南方许多城市经历了多日的炎热天气,而北方部分地区也出现了大 规模的强降水。此外,许多欧洲国家也经历了历史上罕见的干旱灾害。无论是南部的高温天气 ,北方的强降水,还是欧洲的干旱天气&#x…

算法部署经验实操:手把手教你掌握Atlas移植和算法推理

华为Atlas智能边缘解决方案已广泛应用于安防、交通、社区、商超等复杂环境区域的AI需求,在算法部署落地过程中,具备算法异构能力已经成为算法开发者的加分项。 本次特训营由极市平台、昇腾社区联合主办,启用行业专家导师结合算法实际落地应用…

Jekyll 选项(options)和子命令(subcommand)小手册

建议直接通过侧边栏进行跳转查询。 本文将列出并介绍一些常用的 Jekyll 的命令选项(options)和子命令(subcommand),这样方便快速查看。如果你想找的这里没有列出,可以查看官方文档 《Configuration Option…

JPA Buddy指南

1. 概述 JPA Buddy是一个广泛使用的IntelliJ IDEA插件,面向使用JPA数据模型和相关技术(如Spring DataJPA,DB版本控制工具(Flyway,Liquibase),MapStruct等)的新手和有经验的开发人员。…

猿创征文|C++软件开发值得推荐的十大高效软件分析工具

目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具…

【毕业设计】深度学习试卷批改系统 - opencv python 机器视觉

文章目录0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现6 算法测试7 系统实现8 最后0 简介…

使用react开发谷歌插件

前言 自己搭架子确实不会,好在github上有已经搭好的架子,具体见:https://github.com/satendra02/react-chrome-extension 项目是基于react16和scss的还是挺不错的。 不过这个是基于v2版本的,现在已经是v3版本了,我们…

【面试题】近期学员被问最多的真实面试题记录(如何分配测试任务?)

问题均由朋友/粉丝提供的真实面试记录,帮大家解答,我义不容辞,但有些问题如果回答的不够仔细和正确,也希望大家能客观的指出改正,轻喷。 问题:发现了线上bug,作为测试,你是如何发挥…

net基于asp.net的二手商品的交易系统-二手网站-计算机毕业设计

项目介绍 基于ASP.NET的二手商品的交易系统是针对目前二手商品交易的实际需求,从实际工作出发,对过去的二手商品交易平台存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高,节省了开支,提高了工作的效率。 本系统结合计…

GitHub神坛变动,10W字Spring Cloud Alibaba笔记,30W星标登顶第一

Spring Cloud Alibaba是Spring Cloud下的一个子项目,使用 Spring Cloud Alibaba,只需添加一些注解和少量配置,即可将 Spring Cloud 应用连接到 Alibaba 的分布式解决方案中,并使用 Alibaba 中间件构建分布式应用系统。 ​为了帮助…

高手PM控制项目范围的流程和方法!

​项目的范围、成本与质量相互制约。 如果不能使用合理的手段和方法确定项目范围,不能在项目过程中有效的控制范围,不能让项目范围在各相关方之间达成一致,那么会对项目造成严重的伤害。 如无情消耗项目资源,影响范围内工作的有…

手机怎么把照片转JPG格式?这三种手机小技巧需要知道

怎么用手机把照片的格式转换成JPG格式呢?大家在日常中使用的照片,有的格式可能连自己都不清楚,只有在特定格式的情况下才会才会发现自己的图片格式需要转换才行,最常使用到的就是将照片转换成JPG格式了,那么我们怎么用…

最新解决谷歌翻译无法使用的教程

谷歌翻译无法使用是谷歌官方关闭了中国地区翻译服务。 废话不多说直接上教程,本质就是通过修改hosts文件让translate.googleapis.com域名的IP解析到国内的谷歌服务器IP,网上大部分的教程也是如此。 但是有个问题就是这个IP不稳定可能用了几天就不用了&am…

web前端期末大作业:青岛旅游网页主题网站设计——青岛民俗4页 HTML+CSS 民俗网页设计与制作 web网页设计实例作业 html实训大作业

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

有哪些编辑图片加文字的软件?这些软件值得收藏

大家平时在分享自己拍的照片的时候,会不会觉得照片有点单调,有些空旷呢?其实这时候,我们只需要对图片添加上一些文字描述,就可以大大提高图片的趣味性以及丰富图片的内容,并且我们也可以将这些加文字的图片…

LDO的前世今生

众所周知,开关电源的效率很高,但是输出电压有纹波,噪声很大,不能直接接入单片机控制电路中,而一般选择的方案都是在开关电源的输出端接一级LDO低压差线性稳压电源,可以保证输出到单片机中的电压很稳定&…

C语言知识之字符串

字符串 Problem Description 给你一个长度为l&#xff08;l<150&#xff09;的字符串&#xff0c;字符串包含很多个单词&#xff0c;每2个单词之间用一个或多个空格隔开&#xff0c; 单词内可能包含"?",例如单词"china"可能在字符串中表示为"c?h…

AIGC困局与Web3破圈之道

最近一年&#xff0c;随着 AIGC&#xff08;AI-Generated Content&#xff09; 技术的发展壮大&#xff0c;越来越多的人感受到了它的恐怖之处。AI 降低了创作门槛&#xff0c;使每个普通人都有机会展现自己的创造力&#xff0c;做出不输专业水平的作品。但是就在全民 AI 作图的…

JavaEE——Tomcat和servlet

Tomcat tomcat是一个http的服务器&#xff0c;用来简化我们的网站开发 大家在下载的时候&#xff0c;如果jdk是8&#xff0c;那么tomcat也应该大版本是8 安装解压缩后&#xff0c;可以看到其中的一系列目录 bin 是tomcat的启动脚本&#xff08;start.bat是windows用的&#x…

分布式IO系统应用连接华为云

分布式IO系统华为云设置 启用设置 &#xff1a;勾选启用 认证方式 &#xff1a;可选择设备秘钥方式和认证证书方式&#xff0c;认证证书方式需要上传证书 设备 ID &#xff1a;华为云创建设备时生成的设备 ID 服务 ID &#xff1a;产品需要创建服务才能上报数据 地域(Region …