diffiehellman java_Diffie-Hellman加密算法

本文介绍了Diffie-Hellman(DH)秘钥交换算法,展示了如何在不安全信道上创建共享密钥,通过离散对数问题确保安全。通过Alice和Bob的步骤演示了其在实际场景中的操作,并强调了p和g选择的重要性。
摘要由CSDN通过智能技术生成

一、概述

DH秘钥交换算法,可以让双方在完全缺乏对方信息的前提条件下,通过不安全的信道达成一个共享密钥。

此秘钥用于对后续信息交换进行对称加密

二、离散对数问题(Discrete Logarithm Problem,DLP)

如果p是一个素数,g和x是整数,计算 y = g^x mod p 非常快。但是相反,先知道p,g,y要求某个x(离散对数)

满足等式y = g^x mod p 是十分困难的。

15 = 3 ^ x mod 17 ==> x = 6

g和p的选择对此类系统的安全性影响很大,为了保证无法求解离散对数问题,p应该是一个很大的素数。例如

三、

Alice和Bob想共有一个秘钥,用于对称加密。但是他们之间的通信渠道是不安全的。可能被第三方Eve看到。

1.Alice和Bob先对p和g达成一致,而且是公开的,Eve也是知道的他们的值

2.Alice取一个私密的整数a,不让任何其他人知道,发送Bob计算结果 A = g^a mod p.Eve也能看到A的值

3.类似,Bob取一个私密的整数b,发给Alice结果 B = g^b mod p. Eve也能看到B的值

4.Alice计算 S=B^a mod p = (g^b)^a mod p = g^ab mod p

5.Bob计算 S = A^b mod p = (g^a)^b mod p = g^ab mod p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值