其他
加密算法的历史加密算法最早诞生在什么时候?是在计算机出现之后吗?不不不,早在古罗马时期,加密算法就被应用于战争当中。在大规模的战争中,部队之间常常需要信使往来,传递重要的军事情报。可是,一旦信使被敌军抓获,重要的军事情报就完全暴露给了敌方。甚至,狡猾的敌人有可能篡改军事情报,并收买信使把假情报传递给我方部队。这样一来,我方部队就完全落入到了敌方的陷阱之中。这种拦截并篡改信息的手法,在网络安全领域被称为中间人攻击。怎样防止这种情况的发生呢?不让信使被敌人抓获?这个肯定是无法绝对避免的。那么我们不妨换个角度,让敌人即使截获了军事情报,也看不懂里面的内容,这就是对信息的加密。如何进行加密呢?古人想出了一种非常朴素的加密方法,被称为凯撒密码。加密的原理就像下图这样:如图所示,图中第一行的字母代表信息的“明文”,第二行字母代表信息的密文。这个加密算法十分简单,就是选择一个偏移量(这里的偏移量是2),把明文当中的所有字母按照字母表的顺序向后偏移两位,从而生成密文。比如:原文的字母A,对应的密文是字母C。原文的字母D,对应的密文是字母F。原文的单词Java,对应的密文是Lcxc。这样一来,敌方看到信使的情报内容,就彻底蒙逼了。相应的,我军事先约定好了密文通信的偏移量,当友军收到情报以后,把密文的所有字母向前偏移两位,就还原成了明文,这个过程叫做解密。但是,这种加密方法真的百分百保险吗?并不是。在英语的26个字母中,出现频率最高的字母是e。如果敌人截获了情报,发现这段看不懂的密文当中出现频率最高的字母是g,由于e和g相差两个字母,就可以猜测出我军的密文通信很可能选择2作为偏移量。这样一来,我军的密码就被破解了。最不济,敌人可以把每一种偏移量都尝试一遍(26个字母,最多25种偏移),终究可以试出符合正常语法的偏移量。这种方式被称为暴力破解。加密算法的种类在如今的信息安全领域,有各种各样的加密算法凝聚了计算机科学家门的智慧。从宏观上来看,这些加密算法可以归结为三大类:哈希算法、对称加密算法、非对称加密算法。1.哈希算法从严格意义上来说,哈希算法并不属于加密算法,但它在信息安全领域起到了很重要的作用。哈希算法能做什么用呢?其中一个重要的作用就是生成信息摘要,用以验证原信息的完整性和来源的可靠性。让我们来举个栗子:在某个互联网应用上,有用户下单买了东西,于是应用需要通知支付宝,并告诉支付宝商户ID、支付金额等等信息。支付宝怎么知道这个请求是真的来自该应用,并且没有被篡改呢?请求的发送方把所有参数,外加双方约定的Key(例子中Key=abc)拼接起来,并利用哈希算法生成了一段信息摘要:Hash(1234_100_abc)