加密算法
Guderian出品
加密算法的历史
加密算法是一种古老的算法,在人类几千年来的历史进程中,加密算法随着一场场战争的爆发而不断进步,从古罗马时代到第二次世界大战,从凯撒密码到恩尼格玛密码。然而,就像矛和盾的关系一样,加密技术和解密技术也在不断螺旋式发展。下面,笔者将向读者朋友们介绍一种古老的科技:凯撒密码。
在战争中,命令的传递往往需要通过传令兵。如:
可是,一旦传令兵被敌方抓获,重要的军事情报就会泄露给敌方。
甚至,敌人可能会篡改命令,并收买传令兵把假情报传给我方部队。
这样一来,我方部队就会完全落入敌方陷阱中。为了防止这种情况发生,在没有更好的传达命令的方法的情况下,我们不妨修改命令的内容,让敌人即使截获了命令,也无法看懂命令的内容,这就是对信息的加密。
如何进行加密呢?有一种非常朴素的加密方法叫凯撒密码,它的基本思路就是偏移。
如图所示,图中第一行的字母代表明文,第二行字母代表密文。这个加密算法十分简单,选择一个偏移量,此处是3,把明文当中的所有字母按照字母表的顺序向后偏移三位,从而生成密文。比如:
1 | A - > D |
这样一来,就算我军的密码被敌军截获,敌军也无法看懂。一旦我方部队收到了我方的命令,只要逆转原来加密的过程,把密文以偏移量3往左偏移解密为明文,就可以正确收到我方的命令。假设敌军已知我方的加密算法,想要破解,把26个字母都试一遍,终究可以得到正确的原文,这就叫暴力破解。
现代加密算法
1.对称加密算法
这很好理解,这就好比给你需要传递的信息加上一把锁,这把锁的钥匙只有你和信息接收方拥有,这样就算信息被截获,也只能看出一堆乱码。只要传递方与接收方事先得到一致的密钥,双方就可以安全进行信息往来。
常见的对称加密算法有DES
算法和3DES
算法,它的基本方法是替换+移位;还有美国联邦政府采用的AES
算法;还有RC-5
算法和IDEA
算法。office Word
、Excel
、Powerful
、pdf
、WinRAR
的加密算法都属于对称加密算法。
对称加密算法的优点是简单高效,然而缺点却也很明显,那就是安全性低。比如下面这种情况:
你想要给某人通过QQ发送一个加了密的word
文档,你发过去了但你的小伙伴打不开,那他当然会向你要密码。为了让他能顺利打开这个文档,你又要给他发送文档的密码。这样一来,你的文档就没有任何安全性可言了。如果你的文档被不怀好意的人截获,那他当然也能截获你的密码。
为了解决对称加密算法安全性低的问题,科学家发明了非对称加密算法。
2. 非对称加密算法
在非对称加密算法中有一对密钥,其中一个叫公钥、另一个叫私钥。如果要加密一个文档,我们既可以用公钥加密文档,用私钥解密文档;也可以用私钥加密文档,用公钥解密文档。最常见的非对称加密算法就是大名鼎鼎的
RSA
算法,几乎无法破解。
非对称加密算法的缺点是效率低下,然而其优点是安全性极高,解决了对称加密算法的安全性低的问题。比如下面这种情况:
在一间公司中,每一个员工都有自己的一对公钥和私钥,公钥可以交给他人,但是私钥只有自己知道。员工之一的你想要给同样为员工的某人通过QQ发送一个文档,你只需要向接受者索要他的公钥,他就会光明正大地通过QQ发给你,你再利用他的公钥给文档加密,然后光明正大地通过QQ发给他,他接收到你发送的已用他的公钥加密过的文档之后,就可以用他的私钥解密,从而顺利的查看文档了。在这个过程中,就算文档和公钥都被截获,因为没有相应的私钥,也无法正常还原。因此,这个非对称加密算法的安全性比对称加密算法提高了一个等级。