数据传输过程中加密与CA认证理解

数据传输过程中加密与CA认证理解

正在使用安全知识实现数据在网上传输,由于自己没有这方面的知识,因此恶补了一下。在学习的过程中发现很多概念和知识点很容易让人迷惑,因此决定将自己对各知识点的理解记录于此,希望对各位的学习能起到帮助,并且衷心感谢各位大神纠正文中错误。

1 ,对称加密和非对称加密
对称加密:加密和解密使用的是同一套密钥,实现简单,但是安全强度低于非对称加密,加密效率高,因此常用于加密较大的文件,比如视频,音频等。常见的对称加密算法有:

  • DES:替换+移位,56位密钥,64位数据块,速度快,密钥易产生
  • 3DES(三重DES):两个56位的密钥K1,K2
    • 加密:K1加密 -> K2解密->K1加密
    • 解密:K1解密 -> K2加密->K1解密
  • AES: 高级加密标准Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,对其要求是“至少与3DES一样安全”
  • RC-5: RSA数据安全公司的很多产品都使用了RC-5
  • IDEA算法:128位密钥、64位数据块、比DES的加密性好、对计算机功能要求相对低

非对称加密:加密和解密用的是不同的密钥,实现复杂,很安全,加密效率低于对称加密,常用于加密字符串等,例如加密上文中提到的对称密钥。追究其原理貌似是使用数学上的素数积求因子的原理,有兴趣的大神可以研究一下。提到非对称算法,不可不提的便是公钥和私钥,用公钥对数据处理叫加密,用私钥对数据处理叫签名。这里大家不要误以为只有公钥才能对数据进行处理,写者当初就范了这个错误,经过公钥和私钥处理的数据是一堆字母和数字组成的,反正我看不懂。是不是有点晕了,比方说A向B发送数据,B持有A的公钥PUKA,B只能用PUKA来解密(这不应该叫解密,但我不知道怎么称呼它,反正能理解就行)用A的私钥PIKA签名的数据,如果能解密开说明数据来自A, 反之不是,当然,如果PIKA被盗则另当别论。常见的非对称加密算法有:

  • RSA:512位(或1024位)密钥、计算量极大,难破解
  • Elgamal:其基础是Diffie-Hellman密钥交换算法
  • ECC:椭圆曲线算法
  • 其它非对称算法包括:背包算法,Rabin,D-H

这里有两个算法提一下,SHA和MD5,大家注意了,它们不是加密算法,而是摘要算法,摘要过程不可逆,很好理解,大家想一下,可以通过文章的中心思想还原整个文章吗?摘要算法就是这样,主要用于验证传输的数据是否被篡改。因为数据篡改了,再通过摘要算法做摘要的时候结果将不同。

实际应用中通常将对称加密,非对称加密和摘要算法三者结合起来。在数据的传输过程会涉及到上文提到的签名过程,以确保数据来源的合法性。在数据传输前有两步是必不可少的:双方生成密钥(公,私,以及对称密钥),双方交换公钥,这里的公钥不是明文传输,具体如何传输,下文详解。数据(这里假设数据较大,例如500M)的传输过程如下图所示:

这里写图片描述

解释:接收方B,第5步,如果用PUKA能够解密此数据说明该数据的来源合法,即来自A。第6步,如果两个摘要比较结果相等,说明数据在传输过程中没有被篡改,反之篡改!

写到这,算是完成了80%,大家有没有想过这个问题,就是互相交换公钥的时候如何互相信任的问题,我如何敢把公钥交给你,你如果用我的公钥加密一个病毒发给我,我用私钥一解密,完了,电脑死机。所以这里就要谈到一个第三方CA(Certificate Authority),即所谓的认证机构,一个公证方,用这个公证方来确认公钥是否可靠。其原理很简单,CA拥有自己的公钥和私钥,它会将公钥发送给所有人,怎么发的,本人理解是是浏览器里安装的或者操作系统某个地方,即装系统的时候会把某些认证机构的公钥装在系统里,当某个机构想在互联网上传输数据时,首先得将自己的公钥和机构的相关信息发送给CA,CA再用其本身的私钥将其加密,即所谓的签名,签名之后的公钥和信息被称之为证书,在传输过程中这个证书会被发送给接收方,接收方会用其电脑中的CA公钥去解密这个证书,如果能解密说明此证书值得信任,可以与其建立连接,然后就可以用证书中的公钥去加密数据了。

到此,整个加密和CA过程也就结束了,文中很多地方描述不清,尽请谅解!


猜你喜欢

转载自blog.csdn.net/hongyinanhai00/article/details/80616619