(3)Diffie-Hellman算法介绍及核心部分数学验证(简介)

本文详细介绍了Diffie-Hellman算法的工作原理,包括核心步骤和数学验证,重点在于如何通过离散对数难题确保密钥的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 背景介绍:
        Diffie-Hellman算法是Whitfield Diffie(惠特菲尔德·迪菲)和Martin Hellman(马丁·赫尔曼)在1976年提出。二者在2016年还获得了2015年度图灵奖,以表彰他们在密码学领域的突出贡献。这算法干了个啥呢?——在收发双方本地生成对称密钥,巧妙地避开了对称密钥管理难的问题。

2. 核心原理:
        step1:A:随机选底数g,素数p,秘密整数a,计算S_A=g ^ a (mod p);
        step2:A:共享g, p, S_A;传给B;
        step3:B:随机选秘密整数b,计算S_B = g ^ b (mod p);
        step4:B:共享S_B;
        step5:A计算密钥S=S_B ^ a (mod p)=g ^ b(mod p) ^ a (mod p) = g^(b*a) mod p;
        step6:B计算密钥S=S_A ^ b (mod p)=g ^ a(mod p) ^ b (mod p) = g^(a*b) mod p

如此,A,B双方就得到了一样的对称密钥,而第三方只能拿到g, p, S_A, S_B,在不知道a,b选值的情况下是没办法推算出对称密钥的值的。

3.数学验证:
        在上述原理中,标红部分的内容是很多人在查询DH算法的时候,经常会看到的,也是整个原理逻辑的核心部分。不知道大家是不是第一反应就能明白?笔者自学的时候,这部分一开始始终不明白,后来有看到一篇解释论证的文章,才明白。借此整理共享:
        step1:令r_1 = g ^ b mod p; r_0 = r_1 ^ a mod p
        step2:g ^ b = k*p + r_1,k为整数;r_1=g^b-k*p
        step3:r_0 = r_1 ^ a mod p = (g ^ b - k*p) ^ a mod p;令r_3= (g ^ b - k*p) ^ a
        step4:根据二项式展开定理把r_3展开,得到:

        step5:上述展开式中,含(-k*p)的非零次方的项对p求余都为0,故r_0对p求余结果如下:

        step6:即r_0 = g ^ b (mod p) ^ a mod p = g ^ b ^ a mod p = g ^ (b * a) mod p

4.数学知识:
        本质:求解离散对数太难了
        定义:对于一个整数b和素数p的一个原根a,可以找到唯一的指数i,使得b=a^i mod p,且0<= i <=p-1;则指数i称为b的以a为基数的模p的离散对数或者指数。
        理论依据:给定质数p和底数g,已知y=g ^ i (mod p)的值,反向求解i,很难很难。但如果知道p、g、i,正向求解y,很简单很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少卿不在大理寺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值