随着互联网技术的快速发展,网络安全已经越来越受到人们的关注。而网络安全最重要的就是数据安全,如何才能保证在互联网上安全的传输数据呢?—-加密,在数据传输之前,双方进行一系列的通信协商,发送发使用特殊的方式对要传输的数据进行加密。接收方在接收到数据后,通过事先协商的方式进行解密,从而保证数据传输过程中的机密性与完整性。加密方式通常有两种方法:对称加密和非对称加密。
1、对称加密
通信双方事先协商一种密钥,双方共同拥有一个相同的密钥X。在传输数据时,发送方使用密钥X对传输的数据进行加密之后发送给接收方。接收方在收到数据之后,使用密钥X对数据进行解密,从而获取数据。例如数据加密算法DES。
优点:加密速度快、加密效率高。
缺点:密钥对于对称加密非常重要,所以管理起来比较困难、安全性不高。
2、非对称加密
又称“公开密钥加密算法”,需要两个密钥:公开密钥和私有密钥。公私钥采用不同的算法,所以称为“非对称加密”。其中公开密钥和私有密钥是一对。也就是说使用公钥加密的数据,使用相应的私钥才能解开;相反,用私钥加密的数据,使用对应的公钥才能解开。
其中将公钥A1 、公钥B1分发出去,自身保留各自的私钥。
此时,如果A要发送数据给B,使用自己的私钥A2加密数据,B接受到数据后,使用A的公钥A1即可解密。
但是这里有个问题,C很容易伪造A、B之间的通信信息,这样A、B双方很难确定是对方发出的信息。
所以诞生出更为安全的加密方式:
1)数字签名:使用某个方式形成原数据的摘要,并且对这个摘要进行私钥加密形成数字签名,而且这个摘要是不可逆的。也就是说如果C获取到A发送给B的数据,无法获取到A所形成的摘要,如果修改原数据,新产生的摘要也就会不同。
缺点:C可以偷偷使用B的电脑,用自己的公钥来换取A的公钥,从而达到伪造的目的
2)数字证书:发送方A去找"证书中心"(certificateauthority,简称CA),为公钥做认证。证书中心用自己的私钥,对A的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate);B收信后,用CA的公钥解开数字证书,就可以拿到A真实的公钥了,然后就能证明"数字签名"是否真的是A签的。
主要应用DSA、RSA
数字证书的实例: https
有一篇图示数字签名和数字证书的文章,觉得不错,很形象,可以去看下
看图片 读故事:轻松理解数字签名和数字证书
下一篇:python zip暴力破解