https加密

此篇文章仅自己书写过底层代码书写,用于记录学习过程,以便以后复习。
所用到的抓包工具为wireshark。
找一个ip不变的网站,然后用浏览器访问进行抓包分析。
TCP三次握手是前提。以下只说明加密解密过程。
client向server发送随机数+加密算法列表
在这里插入图片描述

在这里插入图片描述
server自己生成私钥,并且从ca机构得到证书,证书中包含了ca的公钥。
并且RSA非对称加密解密,生成数字证书。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在client端,使用ca的pub_k解密数字证书得到s.pub_k,然后用s.pub_k对发送的数据加密(数据有随机数R3,等等)。然后在server端用s.p_k解密。最后就双方使用R1,R2,R3生成密钥。之后就是用生成的密钥进行数据通信。这样就看不到发送的数据具体内容了。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

之后生成的密钥进行数据通信,那么可以看到Application Data已经被加密,看不到了。
在这里插入图片描述
因为服务器的私钥是服务器自己拥有的,所以只有服务器才能解锁公钥加密的数据包。具体加密算法使用非对称RSA算法。
RSA算法涉及欧拉函数以及欧拉降幂。
比如要发送的数据为m(以下表示对m的每个字符加密),那么加密过程如下:
在这里插入图片描述
解释一下:
在这里插入图片描述
是欧拉函数(小于等于n的与n互质的数的个数):
在这里插入图片描述
p1,p2…是n的素因数。
所以很容易得到密钥d。
因为e(私钥)是ca生成的,d(公钥)也是ca生成的,只有授权用户的才能拥有d。
在商量好使用的密钥之前是使用的非对称RSA(私钥需要有公钥解密)。商量之后使用的密钥就采用对称加密,比如AES(双方都通过一个密钥进行加密解密)。
有个有趣的事情:
欧拉降幂定义:
在这里插入图片描述
证明密文解密确实是明文:
在这里插入图片描述
所以ssl加密还是挺有意思的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值