基于python实现的paillier算法例子(极简)

这篇具有很好参考价值的文章主要介绍了基于python实现的paillier算法例子(极简)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考:经典同态加密算法Paillier解读 - 原理、实现和应用

        文中对Pailler进行了详细的解读并分享了相关源代码链接:python-phe同台算法库

        举了一个简单的例子:

2.3 Paillier算法

这里代码中lam = λ  mu=μ,由以上计算过程获得

Alice将 n 和g 封装成公钥 public-key = (n, g)
将λ和μ封装成私钥: private-key = (λ, μ)

执行前我们需要安装gmpy2库

!pip install gmpy2

加密:

Bob需要对明文进行加密,即获取了Alice发来的公钥public-key = (n, g)

paillier python,网络安全,密码学

import gmpy2

p = 11 #大素数
q = 19 #大素数
n = 209 #乘积
lam = 90 #最小公倍数
g = 147 #随机整数
mu = 153 

#明文m 以及 随机数r已经定义
m = 8
r = 3
n_square = pow(n, 2) # n_square = 43681
c = gmpy2.mod(pow(g, m)*pow(r, n), n_square) # c =  32948
print(c)
#输出结果 32948 即加密结果

解密

paillier python,网络安全,密码学

c = 32948
m  = gmpy2.mod(L(gmpy2.mod(pow(c, lam), n_square), n) * mu, n) # m = 8

在这里,代码中有一个L函数,原文并没有写出来。

paillier python,网络安全,密码学

此函数在计算μ时实际上会用到,但原文没有进行函数计算,而是直接得出了μ的值。

然而,解密时仍然需要用到,下面附上。

函数L代码实现非常简单:

def L(x,n):
    return (x - 1) / n

至此,简单的Paillier算法示例结束。文章来源地址https://www.toymoban.com/news/detail-708534.html

到了这里,关于基于python实现的paillier算法例子(极简)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 锐捷网络极简X SDN——内网安全与协防方案部署指导(试点)

    目录 Ⅰ  方案介绍 Ⅱ  方案原理 Ⅲ  方案组件 Ⅳ  方案限制 Ⅴ  实施前准备(基础环境准备) Ⅵ  部署指导   一、方案概述  以XXXXXX人民医院的拓扑为例,传统的安全部署均部署在出口或者服务器区,这种安全的部署可以有效的进行南北向的安全防护,但是对于东西向的

    2024年02月03日
    浏览(43)
  • python实现爬虫例子2

    网络爬虫是一个可以自动抓取互联网内容的程序。Python有很多库可以用来实现网络爬虫,其中最常用的是 requests (用于发送HTTP请求)和 BeautifulSoup (用于解析HTML)。 以下是一个简单的Python网络爬虫示例,该爬虫会抓取指定网页的所有标题( title 标签)并打印出来:

    2024年04月25日
    浏览(36)
  • 基于Python实现图像分割算法

    资源下载地址:https://download.csdn.net/download/sheziqiong/86763995 资源下载地址:https://download.csdn.net/download/sheziqiong/86763995 结合“Lecture 7 Segmentation”内容及参考文献[1],实现基于 Graph-based image segmentation 方法(可以参考开源代码,建议自己实现) ,通过设定恰当的阈值将每张图分割

    2024年02月05日
    浏览(49)
  • 网络算法-python实现prim(基于堆)

    基本思想: 1.从任意顶点开始; 2.逐步扩展边界; 3.每次扩展,选择当前边界边中 最小权重者加入T; 4.直至T中包含的顶点覆盖原图。 伪代码: 割: 图G(V,E)的一个割(cut)是V的一个划分,该划分将集合V分为两个非空的集合。 Empty-Cut引理: 图G不连通,当且仅当存在cut(A, B)没有

    2023年04月09日
    浏览(32)
  • 算法介绍及实现——基于遗传算法改进的BP神经网络算法(附完整Python实现)

    目录 一、算法介绍 1.1 遗传算法 1.2 为什么要使用遗传算法进行改进 二、算法原理 三、算法实现 3.1 算子选择 3.2 代码实现          遗传算法是受启发于自然界中生物对于自然环境 “适者生存”的强大自适应能力,通过对生物演化过程模拟和抽象,构建了以自然界生物演

    2024年02月03日
    浏览(116)
  • 【Python】项目管理中蒙特卡洛模拟的Python实现(进度管理的例子)

    周末从早到晚讲了一天~ 一不小心搞得田辛老师都断更了。 今天呢,田辛老师来给大家继续讲一个著名的项目管理工具:蒙特卡洛模拟。 当然,田辛老师既然发到CSDN上面,无论如何要给出关于蒙特卡洛模拟的Python实现啦。 下面就是我们今天的代码执行结果。 蒙特卡洛模拟是

    2024年02月02日
    浏览(47)
  • 基于网格搜索的随机森林回归算法Python实现

            随机森林回归算法的应用领域很广,可用于市场销售预测、客户细分、商品推荐等领域,也可应用于气候模型预测、土地利用分析、水资源管理等环境领域问题。其算法的Python实现涉及到多参数调优问题,本文使用了网格搜索法,以MSE作为评价指标,选取最佳MSE的参

    2024年02月06日
    浏览(50)
  • 基于遗传算法GA算法优化BP神经网络(Python代码实现)

        BP-GA算法的设计︰基于遗传算法的BP神经网络算法(以下简称BP-GA)就是在BP神经网络的学习过程中,将权重和阀值描述为染色体,并选取适宜的适应函数,然后进行GA迭代,直到某种意义上的收敛.与普通BP学习算法相比,算法 BP一GA的优势在于可以处理一些传统方法不能处理的例子

    2024年02月09日
    浏览(54)
  • 基于Python实现的遗传算法求最值问题

    遗传算法求最值问题 目录 人工智能第三次实验报告 1 遗传算法求最值问题 1 一 、遗传算法 1 1.1 遗传算法简介 1 1.2 遗传算法基本要素 2 4. 设定遗传操作: 2 1.3 遗传算法一般步骤 2 二 、程序说明 2 2.1 控制参数 2 2.2 编码规则 3 2.3 选择初始群体 3 2.4 适应度函数 4 三 、参数测试

    2023年04月25日
    浏览(37)
  • 基于Python+协同过滤算法的小说推荐系统设计与实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包