非对称加密算法 浅理解

非对称加密算法

作者:iamxwts 编写时间:2018年8月23日
阅读提示:如果对非对称加密算法有一定了解,可直接跳过定义以及工作原理进行故事阅读。
定义
1976年,美国学者Dime和Henman为解决信息公开传送和**管理问题,提出一种新的**交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的**,这就是“公开**系统”。
与对称加密算法不同,非对称加密算法需要两个**:公开**(publickey)和私有**(privatekey)。公开**与私有**是一对,如果用公开**对数据进行加密,只有用对应的私有**才能解密;如果用私有**对数据进行加密,那么只有用对应的公开**才能解密。因为加密和解密使用的是两个不同的**,所以这种算法叫作非对称加密算法。
工作原理
如下图1所示,甲乙之间使用非对称加密的方式完成了重要信息的安全传输。
1、 乙方生成一对**(公钥和私钥)并将公钥向其它方公开。
2、 得到该公钥的甲方使用该**对机密信息进行加密后再发送给乙方。
3、 乙方再用自己保存的另一把专用**(私钥)对加密后的信息进行解密。乙方只能用其专用**(私钥)解密由对应的公钥加密后的信息。
在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法**密文,因为只有乙的私钥才能解密密文。
@同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
非对称加密算法 浅理解
图1非对称加密工作过程简要示意图
故事简介
通过第一人称对故事进行叙述,从而对非称加密的描述以及分析。
故事描述
我有一个好朋友小明,有一天,要给小明发送10G的大文件 file,而且要保证秘密传送。我先使用小明的公钥publicKeyXM对文件进行加密 fileEncrypt,再使用 HASH( fileEncrypt ) 获得文件的摘要fileHashReal,然后再使用我自己的私钥 privateKeyLP 对 fileHashReal 进行加密,获得 fileSignature,现在将{ fileSignature,fileEncrypt }打包发送。小明收到文件后非常高兴,先看看文件是否被修改过。如何查看呢,首先以相同的方式进行 hash( fileEncrypt )获得文件的摘要fileHashNew,再通过decode( fileSignature,publicKeyLP )获得 fileHashRecv,比对 fileHashNew和fileHashRecv,如果相同,说明未修改,并且文件来源于真是的我。
通过上述方法,不仅对数据进行了加密,而且通过数字签名验证的文件完整性,同时校验的文件的发送方。

参考资料
[1] 百度百科-非对称加密(链接)