上一篇文章中,我大家主要聊了一下对称加密算法的一些知识。对称加密算法只有一个密钥,既可以加密,也可以解密。今天主要是和大家聊一下非对称加密算法。非对称加密有两个密钥,一个用于加密,一个用于解密!
非对称加密算法的简述:
非对称加密算法和对称加密算法不同,非对称加密算法拥有两个密钥,公开的密钥一般我们称为公钥,自己私有的密钥我们一般称为私钥。
公钥公钥,私钥保密!非对称加密算法的加密规则就是:公钥加密,私钥解密或者是私钥加密,公钥加密。
我们知道对称加密算法中密钥是公开的,如果通信的双方使用对称加密进行通信的加密,那么密钥的管理就会成了一个非常大的问题。
而非对称加密算法的出现,将密钥一分为二,很好的解决了管理这个问题,并且非对称加密算法的安全性更是达到了前所未有的高度。
但是,非对称加密算法虽然加密安全性高,但是复杂的加解密过程,使对称加密算法效率大大的降低。
非对称加密算法的家谱:
在这里,大家需要知道一个小知识。非对称加密算法源于DH算法(密钥交换算法)。DH算法堪称是非对称加密算法的鼻祖,为非对称加密算的研究奠定了坚实的基础。
非对称加密算法按照数学问题的求解主要非为两种:
密钥交换算法---DH算法:
DH算法的诞生是为了解决密钥管理的问题而诞生的一种算法。
DH算法是一个密钥协商算法,但是仅仅用于密钥分配,不能用于加密或者解密。
DH密钥交换算法,是基于有限域上的离散对数难题。基于对这个难题的研究,交换的上方可以安全的交换一个密钥。
关于DH算法的讲述,就先说到这里,大家做一个简单的了解,如果有兴趣的话,可以搜集一些资料进行更深入的研究。
非对称加密算法---RSA算法:
RSA算法可以算是唯一一个被广泛接受的非对称加密算法,现在有已成成为了非对称加密算法的一个国际标准。
关于非对称加密算法的原理,我从wiki上找了一段,供大家参考。因为要完全理解RSA算法的实现原理,需要一定的数学功底。如果大家看不太明白,也没有关系,简单了解就好!
RSA算法的实现: