一、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同态加密实现的更多相关文章

  1. Paillier同态加密的介绍以及c++实现

    我们先来简短认识一下Paillier同态加密算法: 如果就这么按照定义来用最简朴的c++程序写 就像这样: #include <iostream> #include <math.h& ...

  2. 同态加密与 Paillier/RSA

    本文作者: wdxtub 本文链接: http://wdxtub.com/flt/flt-03/2020/12/02/ 白话同态加密 虽然同态加密即使现在听起来也很陌生,但是其实这个概念来自 1978 ...

  3. 同态加密-Homomorphic encryption

    同态加密(Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样.换言之,这项技术令人 ...

  4. 【云安全与同态加密_调研分析(8)】同态加密技术及其应用分析——By Me

    ◆同态加密技术(Homomorphic Encryption, HE)及其应用◆ ◆加密方案◆ ◆应用领域◆ ◆厂商◆ ◆同态加密现有产品形态和工程实现◆ ◆参考链接◆ ◆备注(其他参考信息)◆ 同态 ...

  5. 【云安全与同态加密_调研分析(7)】安全技术在云计算中的安全应用分析——By Me

                                                                   我司安全技术在云计算中的安全应用分析 1. 基于云计算参考模型,分析我司安 ...

  6. 【云安全与同态加密_调研分析(6)】云计算及云安全主流体系架构与模型——By Me

                                                            云计算及云安全的主流体系架构与模型 1. 云计算主流安全参考模型 1.1 云计算安全参考 ...

  7. 【云安全与同态加密_调研分析(5)】云安全标准现状与统计——By Me

  8. 【云安全与同态加密_调研分析(4)】云计算安全领域主要研究成果——By Me

    下表列举了在云安全问题研究表现突出的ICT公司和研究机构以及其在云计算安全方面主要研究成果: ◆ICT公司和研究机构(云计算安全领域主要研究成果)◆ ◆机构名称◆ ◆机构类别◆ ◆主要研究成果◆ ◆备 ...

  9. 【云安全与同态加密_调研分析(3)】国内云安全组织及标准——By Me

    ◆3. 国内云安全组织及标准◆ ◆云安全标准机构(主要的)◆ ◆标准机构介绍◆ ◆相关标准制定◆ ◆建立的相关模型参考◆ ◆备注(其他参考信息)◆ ★中国通信标准化协会(CCSA) ●组织简介:200 ...

随机推荐

  1. python入门神书!|python编程从入门到实践|内附网盘链接带提取码|

    点击此处进入网盘下载地址 提取码:o39n 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌握让 ...

  2. PHP simplexml_load_string() 函数

    实例 转换形式良好的 XML 字符串为 SimpleXMLElement 对象,然后输出对象的键和元素: <?php$note=<<<XML<note>高佣联盟 w ...

  3. Codeforces Round #649 (Div. 2) E. X-OR 交互 二进制 随机 期望

    LINK:X-OR 本来是应该昨天晚上发的 可是昨天晚上 做这道题 写了一个分治做法 一直wa 然后查错 查不出来 心态崩了 想写对拍 发现交互库自己写不出来. 一系列sb操作 == 我都醉了. 今天 ...

  4. 4.22 省选模拟赛 三元组 manacher 回文自动机

    容易发现可以枚举j 那么只需要计算出 l~j这段是回文串的l的和 以及j+1~r这段是回文串的r的和. 可以manacher 之后想要求出以j为右端点的回文串左端点的和 这个东西我们通过某个点为中心的 ...

  5. bzoj 2989: 数列

    LINK:数列 需要动一点脑子 考虑查询 暴力显然不行 考虑把绝对值拆开. 当x<=y ax<=ay时 有 y-x+ay-ax<=k x+ax>=y+ay-k 可以发现在满足前 ...

  6. intel:spectre&Meltdown侧信道攻击(二)

    上面一篇介绍了spectre&meltdown基本原理和简单的demo方案,今天继续学习一下该漏洞发现团队原始的POC:https://spectreattack.com/spectre.pd ...

  7. 当asp.net core偶遇docker一(模型验证和Rabbitmq 二)

    上一篇我们说到构建了一个Rabbitmq容器 现在我们说说如何在一个悄悄传输消息到队列 我们现在设计一个Rabbitmq发送消息部分的模块 先设计一个远程发送的接口 public interface ...

  8. NOI Online#1 小记

    虽然只是一个普通的模拟赛,但是毕竟是我第一次参加官方组织的比赛,所以还是写一篇小记纪念一下吧(毕竟经验少,太菜了. 上午一直颓着,随便看了两眼文化课,补了补昨天的化学作业,就当是对明天月考的复习吧(月 ...

  9. 04-Thread的生命周期

    图示: 说明: 1.生命周期关注两个概念:状态.相应的方法 2.关注:状态a-->状态b:哪些方法执行了(回调方法) 某个方法主动调用:状态a-->状态b 3.阻塞:临时状态,不可以作为最 ...

  10. 29-main()的使用说明

    * 1. main()方法作为程序的入口 * 2. main()方法也是一个普通的静态方法 * 3. main()方法可以作为我们与控制台交互的方式.(使用Scanner) 如何将控制台获取的数据传给 ...