目录
1.对称加密的弊端
对称加密的弊端在于密钥分发困难,无法保证密钥的发送是绝对安全,因此一旦密钥丢失会导致数据信息极易被攻破。一般会通过非对称加密的方式来对对称加密的密钥进行分发保护。例如:
在图中步骤1、2、3都是为了能够将对称加密的key以一种相对安全的方式传输给Alex的一种手段。因为与Alex公钥对应的私钥仅仅在Alex本地才持有,这就意味着Frank处通过Alex公钥加密的内容其他人即便截获也无法读取。这样就保证了对称加密key的安全性。
2.非对称加密
非对称加密不存在密钥分发困难的问题,但需要对非对称加密的公私钥作出一个简单的说明:公钥和私钥都能够加密数据,公钥和私钥也都能解密数据,并不存在说只能使用公钥加密数据,只能使用私钥解密数据的说法。但是不同的是如果使用私钥加密数据,那么与私钥对应的所有公钥都能解密数据,由于公钥是公开的,所以所有持有公钥的用户都能够破解数据的加密,那么数据就无法做到限制某一个用户读取,换言之这种加密方式基本就等于没有加密。所以对于非对称加密来说:通常都是使用公钥对数据加密,然后只有持有私钥的用户可以对数据解密,保证数据安全。
2.1 非对称加密使用场景
数据对谁更重要,谁就持有私钥。
- (1)通信过程:A将数据传输给B,信息显然只允许B读取(A持有公钥加密数据,B持有私钥解密数据)
- (2)登录认证:客户端需要向服务器发送登录请求(服务器持有公钥加密登录请求响应,客户端持有私钥解密响应数据)
- (3)网银U盾:银行向个人发起认证信息只能允许个人读取(银行中持有公钥加密,个人持有的U盾中持有私钥解密)
- (4)数字签名:附在信息原文后面的表明信息传输过程中是否受到伪造、用来确认的确由信息拥有者发出的验证信息
- (比较特殊,由发送者持有私钥,接受者持有公钥。)
2.2 区分公私钥
- 直接观察区别区分:一般情况下,私钥长度大于公钥长度。
- 第三方工具生成的:公钥结构都是xxx.pub带有.pub的后缀,而私钥则是xxx这种不带有后缀的结构。
2.3 非对称加密通信流程
具体细节参见1中的图示内部步骤1、2、3即可。
2.4 非对称加密与对称加密
非对称加密尽管看起来简洁清晰、安全性高、似乎各方面都完爆对称加密,但是非对称加密无法替代对称加密!因为非对称加密尽管加密过程简单,但是非对称加密也存在很大的局限性
- 非对称加密的执行效率要低于对称加密,同样数量级的数据加密操作对称加密速度更快
- 非对称加密无法对大结构数据进行加密,因为非对称加密不存在分组加密操作,因此密钥的长度决定了加密数据长度有限
所以在使用加密的时候都会将对称加密的key通过非对称加密先行发送,毕竟对称加密的key都不会很大。然后在将本体数据经过对称加密后发送。也就是1中图示的内容。
3.非对称加密RSA算法
3.1 RSA算法
RSA是一种非对称加密算法,它的名字是由它的三位开发者,即RonRivest、AdiShamir和LeonardAdleman 的姓氏的首字母组成的,即Rivest-Shamir-Leonard(来威斯特-夏米尔-莱昂纳德)。它是目前使用最广泛的一种非对称加密算法,RSA不仅可以被用于非对称加密还能够用于生成数字签名。1983年,RSA公司为RSA算法在美国取得了专利,但现在该专利于2000年9月21日过期。
再次强调:非对称加密的密钥分为加密密钥和解密密钥两部分
3.2 RSA原理
与逻辑原理非常复杂的对称加密相比较,非对称加密中的RSA逻辑原理简单到让人不可思议,因为RSA的逻辑原理仅仅只用到了简单的乘方与取模操作。在RSA算法中明文、密文还有密钥都是数字,那么他的逻辑原理就能够用下面两个公式来表示:
其中E代表单词Encryption加密、D代表Decryption解密、N代表Number数字,而{E,N}组合就是公钥&#x