Open cybernagle opened 1 year ago
举例说明. 场景如下: 你和对象在两个教室内, 需要传纸条进行相互沟通. 在传纸条的过程当中, 需要满足以下几个条件:
https 下的使用的 tls 1.2 协议,是如何确保上面的目标的?
你对象发送了一个加密了的 ping 的消息. 做最终确认.
你给你返回了一个加密了的 pong 的消息. 最终确认.
你们开始通过密钥来加密彼此的字条并交换.
在第二步, 你把纸条给到你对象的时候, 会发送一个 certificate 以及位置信息. 这个 certificate 是怎么来的呢?
这个需要第三方,比如说你给老师看你的位置, 然后老师给你颁发了一个证书, 说, 第三行第四列证书
.这个证书里面, 也有一个密码. 你会用这个密码来对你的在第二步当中生成的公有密码进行加密.
被加密的内容被你对象拿到以后, 你对象呢, 从老师那里拿到了一个证书, 用这个证书对你的发过来的内容进行解密. 解密成功, 就证明你拥有第三行第四列证书
. 解密失败, 就表明第三行第四列证书
不属于你, 你是一个假的对象.
在第三步当中, 你们根据两个随机数加上彼此的公有密码以及私有密码形成了新的密码. (client write key & server write key. ) 你可以通过这个密码对你的所有需要给对象的字条进行加密, 你的对象可以通过生成的新的密码对你所发送的内容进行解密.
这样, 你们在交换过程当中, 所有的内容都是根据几个变量, 随机数, public key(经过了传阅) , private key(没有经过传阅) 生成的密码进行了加密操作. 因为 private 没有被传阅过(没有在网络上流通) , 所以能保证数据不能被任何人进行解密.
其数学原理基于大数分解问题:对于一个大的合数 N,如果能够将其因数分解成两个质数 p 和 q,则可以利用这两个质数来计算出 N 的欧拉函数 φ(N)。在计算出 φ(N) 后,我们就可以根据公式选择一个加密指数 e(一般为较小的质数),并计算出相应的解密指数 d。
RSA 的加密过程是:用接收者公钥中的加密指数 e 和模数 N,将要发送的明文数据进行加密得到密文数据。而解密过程则是:用接收者私钥中的解密指数 d 和模数 N,将收到的密文数据进行解密得到明文数据。
RSA 如何运用欧拉定理呢?根据欧拉定理,对于任意正整数 a 和 N,满足:a^φ(N) ≡ 1 (mod N),其中 φ(N) 为 N 的欧拉函数。这个定理意味着,如果我们知道了 N 的欧拉函数 φ(N),就可以根据欧拉定理得到一个满足条件的加密指数 e,进而求出相应的解密指数 d。同时,欧拉定理保证了 RSA 的加密和解密过程的正确性。
https://tls13.xargs.org/