对对称加密与非对称加密算法的一点理解

       平时在工作中一直有使用到对称加密与非对称加密算法,以前一直是拿来就用,没有仔细想过里面的实现原理。今天突然有兴趣和时间研究下。

1、什么是对称加密算法?

加密和解密都使用相同密钥的算法。

公式:C=E(P,e) , P=D(C,d) ,其中C是密文,P是明文,如果e=d,则函数P与函数D是对称函数,也即是对称算法。

2、什么是非对称加密算法?

加密和解密使用不同密钥的算法。

公式:C=E(P,e) , P=D(C,d) ,其中C是密文,P是明文,如果e!=d,则函数P与函数D是非对称函数,也即是非对称算法。

       以前在刚开始面试的时候,经常死记着使用同一个密钥加密解密的就是对称加密算法,使用不同密钥加密解密的就是非对称加密算法,然后对称加密算法有DES、3DES等,非对称加密算法有RSA等,只是死记这些肤浅的知识,因果关系都弄乱了。

       其实主要你理解了算法的原理,根本就不需要死记哪种算法属于对称加密算法,哪种算法属于非对称加密算法。因为当你理解了算法的原理,完全可以设计出一种加密算法。

举个栗子:

1、对称加密,输出HELLO WORLD。

下面是一种简单的3字符循环移位密码

服务器将明文HELLO WORLD的每个字符往右移3位进行加密后得到的结果是:KHOOR ZRUOG,服务器将这段密文发送给客户端后,客户端将密文的每个字符向左移3位即可得到明文:HELLO WORLD。

看公式:C=E(P,e) , P=D(C,d),现在我们可以假设e=3,d=3,则E和D是对称算法,至于E和D算法如何用代码实现也很简单,主要理解这个原理,算法可以千变万化,如果你害怕别人提供的对称加密算法不安全,完全可以自己设计一种算法。

2、非对称加密

数学不好,150分重来没有满分过,非对称加密算法的例子一下子没想到好的例子。原理上面已经写的很清楚了,谁能想到一个好的例子,也麻烦给下给我。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页