内容简介:想知道我说了什么吗?什么?不想?不行,不想也得想。
想知道我说了什么吗?
什么?不想?不行,不想也得想。
其实这是一段经过凯撒密码加密后的文字,原文是Nice to meet you。
想知道其中的原理吗?不急不急,我先跟你讲讲加密的由来。
早在数千年以前,密码学就已经在战争中崭露头角了。
众所周知,情报作为战事中最大的要素,决定着一场战争的胜负。
在大型战争中,由于部队较多,指挥无法直接对每支部队下达命令,所以常常需要信使来传递重要的军事情报。
可是,你要知道,依靠信使来传递军情并不安全: 一旦信使被敌军抓获,重要的军事情报就完全被敌方知悉了。
届时,敌军可能已经在A城布下重重埋伏,就等着“君入瓮”了。
甚至,一些比较狡猾的敌人还可能篡改军事情报,将“今晚八点进攻A城”改成“今晚八点进攻B城”,并收买信使传递假情报。
等到晚上八点时,甲乙分别进攻A、B城,找不到友军,双方都以为自己被放鸽子了,这样一来,两支部队就完全落入到了敌方的陷阱之中。
那么,要如何防止这种情况发生呢?
能否让信使不被敌人抓获?这个肯定是无法绝对避免的。
那么只好对情报加密,让敌人即使截获了消息,也看不懂里面的内容。
于是,古罗马时期,凯撒大帝想出了第一种众所周知的密码——凯撒密码。
凯撒在他的军事命令中,将每一个字母都进行了位移,以防敌人截获他的军事情报。
原理就像下图这样,A变成C,B变成D,每个字母都向右位移2个单位:
假设原文是“jin gong A cheng” ,位移后就会变成“lkp iqpi C ejgpi”。
之后把加密过后的消息交给信使去传递,这样,即使敌人截获了该密文,拿到的也是一堆看不懂的文字。
而成功拿到密文的友军,再通过把密文的每个字母左移2个单位,就能得到真实的信息,这个过程,就称之为解密。
不过呢,这种加密方法也并不是一定保险的。
在800年后,一位名为AI-Kindi的阿拉伯数学家破解了凯撒密码。
如果你扫描任何一部英文书的文字,然后计算出每个字母所使用的频率,你会发现惊人的秘密,那就是在英语文字中,使用频率最高的字母永远是e。
——Al-Kindi
所以,如果截获了情报的敌人比较聪明,发现这份疑似乱码的情报中,出现频率最高的字母是 g ,与 e 相差了两个字母,猜测这份情报的加密位移量可能是 2 ,略作尝试,密码就被破解了。
当然,这种办法在文本较少情况下不适用。
不过敌人可以把每一种位移都试一试,终究可以试出正确答案。
于是恺撒密码就被破解了。
不过一种加密方法被破解,就会有新的加密方法诞生。
密码学一直在发展,期间有许多千奇百怪的加密方法,这里不做太多描述,下期我再一一盘点。
在计算机出现以后,传统的密码学发生了翻天覆地的变化。在计算机面前,此前的加密方法的安全系数已经不够,于是,更高级的加密算法应运而生。
在如今的信息安全领域,常见的加密算法可以分成三类,对称加密算法,非对称加密算法以及Hash算法。
[ 对称加密算法 ]
对称加密算法是指,加密过程与解密过程使用的是相同的密钥,即加密和解密的密钥是“对称”的。
发送方使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥将密文解密成明文读取。
这就好比如,一个上了锁的保险箱里放物品,放入时需要用钥匙打开;取出时,还需要用相同的钥匙开锁。
对称加密算法是目前使用最广泛的加密算法之一,因为它的算法公开、计算量小、加密速度快、加密效率高。
然而,由于通信双方用到的是同一个密钥,如果其中一方的密钥遭泄露,那么整个通信就会被破解。
此外,每个用户与其他用户使用对称加密算法时,都需要使用仅限双方知道的唯一密钥,随着每个用户通信对象的增加,用户所拥有的密钥数量呈几何级数增长,密钥管理成为用户的负担。
[ 非对称加密算法 ]
与对称加密算法不同,非对称加密算法需要两个密钥——公钥 ( Public key ) 和私钥 ( Private key ) 。
公钥和私钥是一对, 如果用公钥对数据进行加密,只有用对应的私钥才能解密 ,就算你截获了该公钥,也无法解密。
非对称加密的公钥是公开的,而私钥是自己保存的,在通讯前不需要先同步私钥, 避免了在同步私钥过程中被黑客盗取信息的风险 。
所以,非对称加密与对称加密相比,其安全性更好。
但是,非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能慢上1000倍,所以只适合对少量数据进行加密。
[ Hash算法 ]
Hash算法也是非常常见的加密算法之一。
它和前两种加密算法最大的区别是,它不是用来做数据传输,而是 对数据是否被篡改加以验证,防止不法分子篡改数据 。
它的特点是只能进行加密,而不能解密,而且无论原数据多长都会变成固定长度的字符串;
此外,原数据哪怕只被改动一点点,其哈希值的变动也会非常大。
可见,100000 通过MD5(Hash算法的一种)进行加密,所输出的密文与 100001 的密文天差地别。
最重要的是,对于不同的输入,理论上会生成不同的输出,不会出现不同的输入,密文却是一样的情况。
所以,Hash算法用来验证原信息的完整性和来源的可靠性,而加密解密还是需要使用对称加密算法或者非对称加密算法。
听了这么多,相信你对加密学也有了一定了解了吧,北卡科技将持续为您科普这些小知识哦~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 美国防情报局计划在2020财年启动情报数据库换代建设
- 【安全帮】伊朗利用Google破解美国中央情报局通信,30名美国间谍因此死亡
- Boolean源码解剖学
- 解剖小程序的 setData
- Android lifecyle 源码解剖
- XSS攻击的原理及解剖
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript快速开发工具箱
Robin Nixon / 陈武、姚飞 / 清华大学出版社 / 2011-11 / 59.00元
《JavaScript快速开发工具箱:轻松解决JavaScript日常编程问题的100个插件工具》通透讲解100个现成的JavaScript插件,引导您使用这些利器得心应手地创建动态Web内容。《JavaScript快速开发工具箱:轻松解决JavaScript日常编程问题的100个插件工具》开篇讲解JavaScript、CSS和DOM,此后每章都列举一个完整示例,指导您将特定效果快速应用于网页。使......一起来看看 《JavaScript快速开发工具箱》 这本书的介绍吧!