上一篇文章中,我大家主要聊了一下对称加密算法的一些知识。对称加密算法只有一个密钥,既可以加密,也可以解密。今天主要是和大家聊一下非对称加密算法。非对称加密有两个密钥,一个用于加密,一个用于解密!

非对称加密算法的简述:

非对称加密算法和对称加密算法不同,非对称加密算法拥有两个密钥,公开的密钥一般我们称为公钥,自己私有的密钥我们一般称为私钥。

公钥公钥,私钥保密!非对称加密算法的加密规则就是:公钥加密,私钥解密或者是私钥加密,公钥加密。

我们知道对称加密算法中密钥是公开的,如果通信的双方使用对称加密进行通信的加密,那么密钥的管理就会成了一个非常大的问题。

而非对称加密算法的出现,将密钥一分为二,很好的解决了管理这个问题,并且非对称加密算法的安全性更是达到了前所未有的高度。

但是,非对称加密算法虽然加密安全性高,但是复杂的加解密过程,使对称加密算法效率大大的降低。

非对称加密算法的家谱:

在这里,大家需要知道一个小知识。非对称加密算法源于DH算法(密钥交换算法)。DH算法堪称是非对称加密算法的鼻祖,为非对称加密算的研究奠定了坚实的基础。

非对称加密算法按照数学问题的求解主要非为两种:

非对称加密 多个公钥 非对称加密的两个密钥_非对称加密 多个公钥

密钥交换算法---DH算法:

DH算法的诞生是为了解决密钥管理的问题而诞生的一种算法。

DH算法是一个密钥协商算法,但是仅仅用于密钥分配,不能用于加密或者解密。

DH密钥交换算法,是基于有限域上的离散对数难题。基于对这个难题的研究,交换的上方可以安全的交换一个密钥。

关于DH算法的讲述,就先说到这里,大家做一个简单的了解,如果有兴趣的话,可以搜集一些资料进行更深入的研究。

非对称加密算法---RSA算法:

RSA算法可以算是唯一一个被广泛接受的非对称加密算法,现在有已成成为了非对称加密算法的一个国际标准。

关于非对称加密算法的原理,我从wiki上找了一段,供大家参考。因为要完全理解RSA算法的实现原理,需要一定的数学功底。如果大家看不太明白,也没有关系,简单了解就好!

非对称加密 多个公钥 非对称加密的两个密钥_非对称_02

非对称加密 多个公钥 非对称加密的两个密钥_非对称加密 多个公钥_03

RSA算法的实现:

非对称加密 多个公钥 非对称加密的两个密钥_java_04


非对称加密 多个公钥 非对称加密的两个密钥_java_05