您的位置:首页 > 其它

关于对公钥、私钥的理解

2012-04-09 11:11 141 查看
安全中的非对称密钥主要有两个用途:

1.加密防止监听攻击:数据发送者的使用数据接收者的公钥对发送给目的的数据进行加密,接收者使用自己的私钥进行解密,由于私钥永远不会在对等体之间共享,保证了只有目的端能够对源发送的加密数据进行解密;

2.设备之间的验证:源使用自己的私钥对自己的身份信息进行加密生成签名,把为加密的身份信息和签名一同发送给目的,目的使用源的公钥对预源生成的签名进行解密,然后将解密的数据和源发送过来的未加密身份信息进行比较,如果相同通过身份验证,由于只有最初的源拥有私钥,即使其他人获取到明文的身份信息,由于缺少源的私钥也就无法生成相应的数字签名,导致适用源公钥解密的身份信息和明文不匹配,验证失败。

--------------------------------------------------------------------------------------------------

较为形象的举例说明(想起以前电子商务课老师也举过类似的例子,当时没有仔细听,现在补习下)

1. 公钥加密

假设一下,我找两个数字,一个是1,一个是2,将2保留起来作为私钥(只有我知道),然后告诉大家,1是我的公钥。

我有一个文件,不能让别人看,所以就用1加密。当别人找到这个文件,但是他不知道2就是解密的私钥,所以他无法获得该文件的解密内容,我却可以使用2(私钥)来解密,从而达到一定的保护数据

我的一好友X用我的公钥1加密字符a,加密后变成字符b,如果其他人获得这个文件,但是这个人不知道2是我的私钥,从而无法进行解密,而我可以用2进行解密,这样我与X之间就能传送加密的数据

2. 私钥签名

如果我用私钥加密一段数据(只有我知道2是我的私钥),结果所有人(针对我已公布公钥为1的人,并非是任何人)看到这份内容,因为他们知道我提供的公钥是1,这种的加密有什么用处?

我的好友X说有人冒充我给他发信,如何对身份验证?我把我要发的信息,内容是c,用我的私钥2加密,加密后的内容是d,发给X,再告诉他解密看看是不是c,他用的的公钥1解密,发现是c。这个时候,他如果能够使用我的公钥解密数据,必然是用我的私钥加密处理过的,而只有我知道私钥,因为他可以确认该信息是我发的。这样我们就确认发送方的身份,这个过程叫做数字签名,用私钥来加密数据,用途是数字签名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: