Paillier同态加密实现
一、C++(该方案只实现了加密以及解密)
1、git clone https://github.com/klei0229/paillier.git
2、下载GMP与NTL包;
下载版本以及操作参见https://blog.csdn.net/corewith/article/details/50937206
3、原本的Makefile文件在我这里总是编译不通过,修改后才编译成功;
新的Makefile:
# The following all worked on my machine:
#g++ -g $< -o $@ -lntl -lgmp
#g++ -g $< -o $@ -lntl
#g++ -g $< -o $@
# # - ntl: Number theory library
# - gmp: Arbitrary precision arithmetic.
# - ssl + crytpo: For openssl. Installed on most linux machines, and
# has hashing algorithms.
# - m: From what I can tell, libm is an implementation of C math
# functions. Why would we need this?
LIBS:=ntl gmp m ssl crypto
LIBFLAGS:=$(addprefix -l, $(LIBS)) main : main.cpp paillier.cpp
g++ -g -Wall -Wpedantic -std=c++ $^ -o $@ $(LIBFLAGS) -rdynamic /usr/local/lib/libntl.a
二、C++(该方案实现了完整的同态加密)
1、git clone https://github.com/abb-iss/ophelib.git
2、Quick Start: See BUILD
3、ophelib/CMakeList.txt需要添加如下语句:
SET(CMAKE_C_COMPILER g++)
if(CMAKE_COMPILER_IS_GNUCXX)
add_compile_options(-std=c++)
message(STATUS "optional:-std=c++11")
endif(CMAKE_COMPILER_IS_GNUCXX)
4、 ophelib/sample/CMakeList.txt需要添加如下语句:
SET(LIBNTL_INCLUDE_DIR "/usr/local/lib")
SET(CMAKE_C_COMPILER g++)
if(CMAKE_COMPILER_IS_GNUCXX)
add_compile_options(-std=c++)
message(STATUS "optional:-std=c++11")
endif(CMAKE_COMPILER_IS_GNUCXX)
注:不知道为什么,make test无法通过第四个测试;但是./helloworld可以正常运行;
三、python
1、git clone https://github.com/n1analytics/python-paillier.git
震惊的是,相同的密钥长度下,python版本的运算速度居然比C++版本的快。。。
Paillier同态加密实现的更多相关文章
- Paillier同态加密的介绍以及c++实现
我们先来简短认识一下Paillier同态加密算法: 如果就这么按照定义来用最简朴的c++程序写 就像这样: #include <iostream> #include <math.h& ...
- 同态加密与 Paillier/RSA
本文作者: wdxtub 本文链接: http://wdxtub.com/flt/flt-03/2020/12/02/ 白话同态加密 虽然同态加密即使现在听起来也很陌生,但是其实这个概念来自 1978 ...
- 同态加密-Homomorphic encryption
同态加密(Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样.换言之,这项技术令人 ...
- 【云安全与同态加密_调研分析(8)】同态加密技术及其应用分析——By Me
◆同态加密技术(Homomorphic Encryption, HE)及其应用◆ ◆加密方案◆ ◆应用领域◆ ◆厂商◆ ◆同态加密现有产品形态和工程实现◆ ◆参考链接◆ ◆备注(其他参考信息)◆ 同态 ...
- 【云安全与同态加密_调研分析(7)】安全技术在云计算中的安全应用分析——By Me
我司安全技术在云计算中的安全应用分析 1. 基于云计算参考模型,分析我司安 ...
- 【云安全与同态加密_调研分析(6)】云计算及云安全主流体系架构与模型——By Me
云计算及云安全的主流体系架构与模型 1. 云计算主流安全参考模型 1.1 云计算安全参考 ...
- 【云安全与同态加密_调研分析(5)】云安全标准现状与统计——By Me
- 【云安全与同态加密_调研分析(4)】云计算安全领域主要研究成果——By Me
下表列举了在云安全问题研究表现突出的ICT公司和研究机构以及其在云计算安全方面主要研究成果: ◆ICT公司和研究机构(云计算安全领域主要研究成果)◆ ◆机构名称◆ ◆机构类别◆ ◆主要研究成果◆ ◆备 ...
- 【云安全与同态加密_调研分析(3)】国内云安全组织及标准——By Me
◆3. 国内云安全组织及标准◆ ◆云安全标准机构(主要的)◆ ◆标准机构介绍◆ ◆相关标准制定◆ ◆建立的相关模型参考◆ ◆备注(其他参考信息)◆ ★中国通信标准化协会(CCSA) ●组织简介:200 ...
随机推荐
- Java Script 数组
数组:有许多变量的集合,它们的名称和数据类型都是一致的. 定义 操作(添加修改) Var arr=new Array(): Var arr=[ ]; //定义 Var arr1=[ 1,2,3, ...
- 解决node 运行接口 出现 Cannot destructure property `us` of 'undefined' or 'null'.
出现 参数是 undefined or null 一.检查是否安装 body-parser server.js中是否引入 app.use(bodyParser.urlencoded({ extende ...
- Skill 中的通用输出格式规范
https://www.cnblogs.com/yeungchie/ Skill中的通用输出格式规范 Common Output Format Specifications Format Specif ...
- MyBatis辟邪剑谱
一 MyBatis简介 MyBatis是一个优秀的持久层框架 它对JDBC操作数据库的过程进行封装 开发者只需要关注SQL本身 而不需要花费精力去处理JDBC繁杂的过程代码 MyBatis将要执行的各 ...
- 【机器学习的Tricks】随机权值平均优化器swa与pseudo-label伪标签
文章来自公众号[机器学习炼丹术] 1 stochastic weight averaging(swa) 随机权值平均 这是一种全新的优化器,目前常见的有SGB,ADAM, [概述]:这是一种通过梯度下 ...
- LeetCode(1)---检查括号出现的合法性
题目: 检查字符串中"( )","[ ]","{ }" 的合法性,即是否成对出现 eg,如出现"[()]", ...
- 【leetcode每日两题】-Day1-简单题
1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素 ...
- Android SQLite轻量级数据库的删除和查找操作
今天主要是补充昨天的内容,本打算合成一章的,但是毕竟一天一天的内容写习惯了. 就这样继续昨天的,昨天只讲了创建以及增加和查询, 其实用法都差不多,今天学长也是在原有的基础上写的,还顺便融合了Share ...
- Android 布局的一些控件的补充和布局的补充(今儿没课)
前面写的博客可能会有点乱: 1,是不太会排版. 2,就是我一边看书,一边听学长讲课,所以有的知识就融入进去了,我写的都是自己的意见和理解,大家取我精华,弃我糟粕哈. 今天是书上的内容,主要讲布局的,一 ...
- python2.1 if-else条件语句:
#案例:存款大于100万,买宝马:小于20万自行车! cunkuan=10#if判断条件,else:不满足if执行其他命令if cunkuan>100: print("可以买宝马,好开 ...