TLS

Posted caocong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TLS相关的知识,希望对你有一定的参考价值。

 

 

DH (Diffie–Hellman 密钥交换协议)

概要: Diffie-Hellman算法是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法,它是一种建立秘钥的方法,而不是加密方法 !

原理:Diffie-Hellman密钥交换算法的有效性依赖于计算离散对数的难度

这种算法的关键是在这个式中

b=ai mod p, 0<=i<=p-1      (mod: 取余, 即a/ p 的余数)

如果知道a, i, p可以很方便的算出b的值,但是知道b, a, p的情况下想要算出i的值却非常难。

 

举例,以下是DH协议的方案:

离散对数:  y = gx modp

1.      Alice和Bob先对p 和g达成一致,而且公开出来。Eve(攻击者)也就知道它们的值了。

2.      Alice取一个私密的整数a,不让任何人知道,发给Bob 计算结果:A=ga modp. Eve 也看到了A的值。

3.      类似,Bob 取一私密的整数b,发给Alice计算结果B=gb mod p.同样Eve也会看见传递的B是什么。

4.      Alice 计算出S=B a mod p=(gb)a modp=gabmod p.

5.      Bob 也能计算出S=Ab mod p=(ga)bmodp=gabmod p.

6.      Alice 和 Bob 现在就拥有了一个共用的密钥S.

7.      虽然Eve看见了p,g, A and B, 但是鉴于计算离散对数的困难性,她无法知道ab 的具体值。所以Eve就无从知晓密钥S 是什么了。

 

PS: 我相信不久的将来,随着量子计算机的发展,破解这种加密方式将不再是问题,任何一种依靠计算复杂度来保证数据安全性的加密方式都将会被淘汰,应运而生的将是更加先进可靠的加密方式。

 

请参考

http://blog.csdn.net/zzminer/article/details/8571289

 

以上是关于TLS的主要内容,如果未能解决你的问题,请参考以下文章

在高级设置中启用 TLS 1.0、TLS 1.1 和 TLS 1.2,

如何强制 java 服务器只接受 tls 1.2 并拒绝 tls 1.0 和 tls 1.1 连接

http服务(nginxapache)停用不安全的SSL协议TLS1.0和TLS1.1协议/启用TLS1.3

尝试使用此代码在 TLS 上运行 TLS 时,为啥会出现握手失败?

SSL/TLS

HTTPS 中的 TLS 过程