迪菲-赫尔曼算法的简单数学证明

今天老师给我们讲了迪菲-赫尔曼算法,大概意思是通信双方不需要知道对方是谁都能通信。

以下的图片来自维基百科

只要Alice的K等于Bob的K双方就可以通信了,现在问题来了,我用了几组数据去做测试,都能得到相同的结果,为什么经过上面的数学的换算的结果是想等的?于是激起了我这个数学白痴的求知欲,证明可能吧严谨甚至有错,希望路过的大神们指教指教。

问题转换为:

证明 (A^a mod B)^m mod B=A^am mod B 恒成立

令X=A^a,

(X mod B)^m mod B=X^m mod B ,

若X<B ,则X mod B=X,

所以 X^m mod B =X^m mod B ,

若X>B

则可以转换为

(X mod B)^m  mod B=(x-nB)^m  mod B(n为整数)

(x-nB)^m mod B 按2项式展开得[x^m+(C1m * X^m-1 *(-nB)^1+ .....Cmm * (-nB)^m)]mod B

括号中的项都是B的倍数 mod B自然就变成0了

所以就剩X^m mod B=X^m mod B;

哈哈,跟大家分享下。

时间: 2024-12-17 11:46:06

迪菲-赫尔曼算法的简单数学证明的相关文章

迪菲.赫尔曼(Diffie–Hellman)密钥交换算法

迪菲.赫尔曼算法是通信线路不安全情况下,交换密钥的一个算法,应用于TLS协议中 首先说一下生成密钥的流程,我们有这样一种计算叫做求摸运算 mod, 比如:27 mod 17 = 10,也就是求余数的运算. 现在有两个通信者A和B,我们使用一种计算 假如我们这里选用 3 ^ x mod 17,A和B分别生成一个随机的整数,这个整数即为x,比如A是2,B是3,那么A使用2计算: 3^2 mod 17 = 9 ① B使用3计算: 3^3 mode 17 = 10 ② 然后A将9发送给B,B将10发送给

DiffieHellman(迪菲-赫尔曼)密钥交换算法原理及其实现

本文参考来源https://segmentfault.com/a/1190000010917737与https://zh.wikipedia.org/wiki/%E6%A8%A1%E9%99%A4  及其 https://www.cnblogs.com/DarkValkyrie/p/10962231.html (大佬的这篇文章的基础公式帮了大忙) 什么是Diffie-Hellman密钥交换算法? Diffie-Hellman:一种确保共享KEY安全穿越不安全网络的方法,它是OAKLEY的一个组成

赫尔曼算法及应用

借鉴的博客: http://baike.sogou.com/v111784.htm http://blog.csdn.net/cqnuztq/article/details/8919204 http://blog.csdn.net/pony_maggie/article/details/41620389 http://blog.csdn.net/JavaAlpha/article/details/4222845 实现代码: 1 #include <iostream> 2 #define MAX

赫尔布朗特定理开启自动定理证明的大门

1930年,年仅22岁的法国"小毛头"赫尔布朗特(Jacques Herbrand,1908-1931)在登山时遇难的前一年给我们留下了一条数理逻辑的基本定理:赫尔布朗特定理.这条定理有什么意义呢? 大家知道,在数理逻辑里面,引入量词符号"?"与"?",是很重要的,但是,对于数学自动鼎定理证明而言,量词符号"?"与"?"就是累赘.怎么办呢? 在所谓"一阶逻辑"里面,符号"?&q

php 二叉树 与赫夫曼树

在学习图之前,中间休息了两天,感觉二叉树需要消化一下.所以中间去温习了下sql,推荐一本工具书<程序员的SQL金典>看名字不像一本好书,但是作为一个不错的SQL工具书还是可以小小备忘一下.涵盖内容不详细但是挺广,覆盖多种主流数据库 言归正传,以前知道折半查找,二叉树的概念也是感觉挺有意思,二叉树的实现有一个案例很不错,代码如下 class BiNode{ public $data; public $lchild; public $rchild; public function __constr

赫夫曼树的构建、编码、译码解析

当你開始看这篇博文的时候.我相信你对树及二叉树的基本概念已有所了解.我在这里就不再赘述. 我们主要对赫 夫曼树的特点.构建.编码.译码做一个具体的介绍,并附有代码,全部函数代码都通过了測试.我不保证全部代码是最优的(毕竟是我一个人苦思冥想出来的,我相信在大家的集思广益之下还有优化的空间),但我保证全部代码是正确的. 一.赫夫曼树的特点 赫夫曼树又称作最优二叉树,是一类带权路径长度最短的树. 首先给出路径和路径长度的概念.从树中一个节点到 还有一个节点之间的分支构成这两个节点之间的路径.路径上的分

经典算法题每日演练——第十三题 赫夫曼树

原文:经典算法题每日演练--第十三题 赫夫曼树 赫夫曼树又称最优二叉树,也就是带权路径最短的树,对于赫夫曼树,我想大家对它是非常的熟悉,也知道它的应用场景, 但是有没有自己亲手写过,这个我就不清楚了,不管以前写没写,这一篇我们来玩一把. 一:概念 赫夫曼树里面有几个概念,也是非常简单的,先来看下面的图: 1. 基础概念 <1>  节点的权: 节点中红色部分就是权,在实际应用中,我们用“字符”出现的次数作为权. <2>  路径长度:可以理解成该节点到根节点的层数,比如:“A”到根节点

CG之菲涅尔效果简单实现

菲涅尔效果,指当光到达两种材质的接触面时,一些光在接触面的表面被反射出去,而另一部分光将发生折射穿过接触面. 现在要用shader来实现这种效果,如果要精确地描述这种底层的物理,其计算公式是非常复杂的,性能消耗也比较大.我们的目的是使创建的图像看上去真实,因此我们不使用菲涅尔公式本身,而是使用以下经验公式,它能够用非常少的计算获得很好的效果. reflectionCoefficient = max(0, min(1, bias + scale * pow(1 + dot(I,N), power)

最小生成树 Prim(普里姆)算法和Kruskal(克鲁斯特尔)算法

Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小.该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现:并在1957年由美国计算机科学家罗伯特·普里姆(英语:Robert C. Prim)独立发现:1959年,艾兹格·迪科斯彻再次发现了该算法.因此,在某些场