对称|非对称密钥&完整性

来源:互联网 发布:南方易学软件 编辑:程序博客网 时间:2024/05/19 02:41

文件A从主机A发送到主机B,在主机A和B发送文件之前,主机A和主机B协商,协商的内容暂时未知(待和小伙伴们一起探索)1。协商过后A主机的A文件被A主机通过无参的hash函数,生成了消息摘要(hash码)AMD5(这个过程不是加密)

2.hash码AMD5通过非对称加密算法加密,使用的参数是公钥B,将hash码加密成hash码密文-AMD5密文

3.A文件通过密钥C采用对称加密算法加密,生成了A文件的密文。温馨提示(对称加密算法的特点是:加密速度快。适合于大文件的加密,密钥使用的是长度较短的,一般小于256位,是的,没有错,因为使用的密钥如果是1位0或1,则黑客很容易试出来,如果使用的是1M的密钥,估计黑客要崩溃了,但是使用的密钥虽说长度越长安全性越高,但是加密解密的速度就会变慢,所以说密钥的长度既要考虑到安全性,也要考虑到加密解密速度,扯远了,快回来继续我们的流程。。。。)

4.A文件加密完成了,但是现在如果B方要解密的话就需要密钥C,所以发送的时候就将密钥C发送给B,但是再发送的过程中密钥C很容易被黑客劫持,怎么办呢?这时候我们就给密钥C采用非对称加密算法加密,给密钥C 加密的密钥是公钥B,因此途中的发送(。。。密钥C。。。)其实是密钥C密文,上图中纯属打错!

5.B接受到A传过来的文件后,对密钥C密文进行非对称加密算法解密参数是使用的私钥B(公钥是公开的,私钥是自己拥有的),解密成密钥C明文。

6.对传输过来的A文件密文采用对称加密算法进行解密参数是第五步中解密的密钥C,得到A文件明文

7.将AMD5密文(hash码密文)采用非对成加密算法解密,参数是私钥B,得到AMD5(hash码明文) 

8.对明文文件A再次采用无参hash函数生成一个新的消息摘要AMD5_2(新的hash码)

9.将新生成的hash码AMD5_2传输过来解密的AMD5进行比较。若一样,则说明传输的文件具有完整性,文件俺未被篡改,若不一样,则说明文件A被修改。