公用密钥加密

主要参考文章是这个:

https://developer.mozilla.org/en-US/docs/Introduction_to_Public-Key_Cryptography

公用密钥加密是SSL等协议的基础。

引入SSL是为了:
1. 防止数据在网络上传递的过程中被窥探
2. 数据接收方确保数据在传输过程中没有被修改过
3. 数据接收方能够确认数据发送方的身份
4. 防止数据发送方日后否认曾经发送过这笔数据

对称密钥加密:对于这种加密方法而言,加密和解密的密钥一样。并且计算高效。这种加密方法需要双方都保持密钥的保密性。

公开密钥加密:也叫RSA加密。加密和解密所用密钥不同,其中公钥是公开的,私钥是保密的。用公钥加密的文件,只能通过指定的私钥解密,因此只要私钥没有泄露。通过公钥加密过的文件别人就无法解密。和对称密钥相比,计算量要大。在SSL中,通过这种方法交换对称密钥,以获得高效的加密和解密算法。

对于相反的过程,如果用私钥加密文件,也只能通过给定的公钥解密。通常不能用这种方法加密敏感信息,因为很多人有公钥,可以解密私钥加密过的文件。但是用私钥加密文件在另一种情况下却相当有用,那就是数字签名。因为私钥的私有行,如果获得私钥加密过的文件基本上可以确认这个文件是来自私钥持有人。因此私钥加密可用作数字签名。

数字签名:上面的加解密过程确保数据在传送过程中不会被窥视,修改,但是我们仍需要一种方法来确认文件发送人的身份和接受人的身份。这就是数字签名。

下面这张图显示了数字签名的工作原理:

数字签名

其中的发送方用自己的私钥加密hash,生成数字签名。接收方利用公钥解密签名得到hash,同时生成原文件的hash,对比即知文件有没有被修改,是不是私钥持有人发送过来的。

 



本文地址: http://www.bagualu.net/wordpress/archives/3489 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注