Diffe_Hellman算法
来源:互联网 发布:java判断是否数字 编辑:程序博客网 时间:2024/06/06 13:24
该算法是的目的是使两个用户能安全地交换密钥,以便在后续的通信中用该密钥来对信息进行加密。该算法本身只限于进行密钥交换。
其有效性是建立在计算离散对数很困难的基础之上的。 离散对数定义:
首先定义素数的本源根。素数p的本源根是一个整数,且其幂能产生1到p-1之间所有整数。即:若a是素数p的本源根,则a mod p, a^2 mod p,...,a^(p-1)mod p 各不相同,它是整数1到p-1的一个置换。 对任意整数b和素数p的本源根a,我们可以找唯一的指数使得:b=a^i(mod p),0<=i<=(p-1),指数i称为b的以a为底的模p离散对数。
密钥交换:通信的双方能够协商用于加密的密钥,并且不会遭到中间人攻击。
用户A选择一个随机整数XA<q,用户B选择一个随机整数XA<q,并计算YA=a^XAmodq,类似的YB=a^XBmodq。A和B都对其X的值进行保密,但对另一方而言,Y方是公开可访问的。用户A计算K=(YB)^XAmodq 同样用户B计算K=(YA)^XBmodq并都以此作为密钥。这两个K经过换算所得到的值是一致的。展开为:K=(a^XAmodq)^XBmodq,因为X是保密的,所以攻击方只有通过a和q或者公开的YA/YB来攻击所以必须要计算离散对数才能
0 0
- Diffe_Hellman算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 算法
- 数人云工程师手记 | Docker存储方式中的香菇填坑之路
- 类反射如何调用类成员
- 电子面单怎么申请-JAVA/PHP
- 10中简单的java性能优化
- Notification通知栏
- Diffe_Hellman算法
- 继承详解
- 连接池-DBCPUtils工具类(dbcp)
- Leetcode 123 Best Time to Buy and Sell Stock III
- mipmap 和 drawable 的区别
- js之prototype与_proto_
- C语言位操作
- 相机和镜头选型的关键:像素尺寸与景深
- Javascript跨域访问资源