㈠ 请问有谁知道古代密码学的发展过程
密码的使用可以追朔到古埃及时期,在那时有一种现在昌吵伏被称为“棋盘密码”的加密方法。
其原理如下:
在通信双方,掌握着相同的m*n列矩阵,在该矩阵中保存着所要加密的字符组成的字符集,加密时找到相应的明文字符,然后记下行号与列号。
不断重复上述过程,直到查完所有明文字符,这样就可以得到以行号与列号组成的一个数字序列c。
接受方接受到该数字序列c,不断从该序列中取出行号与列号,然后在m*n列矩阵中查找出对应行、列的字符。
显然,由于双方拥有相同的矩阵,故能够保证接受者可以从密文中还原出明文。
在这种加密方法中,密钥显然就是那个矩阵。
对于这种加密方法,相必有许多读者已从一些小说中见到。
在计算机上又如何实现这种密码呢?我相信不用说,大家都已想到该怎么做了。
对,实质上就是重新映射计算机上的字符集。
而那个映射表就是密钥。
说到底,其实这种加密方法就是一个单表置换加密(在以后会讨论到这种加密方法的)。
对于单表置换加密可通过频率统计方法进行破译,因此,这是一种不安全的加密方法。
密码学作为保护信息的手段,经历了三个发展时期。
它最早应用在军事和外交领域,随着科技的发展而逐渐进入人们的生活中。
在手工阶段,人们只需通过纸和笔对字符进行加密。
密码学的历史源远流长,人类对密码的使用可以追溯到古巴比伦时代。
下图的Phaistos圆盘是一种直径约为160mm的粘土圆盘,它始于公元前17世纪,表面有明显字间空格的字母。
近年有研究学家认为它记录着某种古代天文历法,但真相仍是个迷。
随着工业革命的兴起,密码学也进入了机器时代、电子时代。
与人手操作相比电子密码机使用了更优秀复杂的加密手段,同时也拥有更高的加密解密效率。
其中最具有代表性的就是下图所示的ENIGMA。
ENIGMA是德国在1919年发明的一种加密电子器,它被证明是有史以来最可靠的加密系统之一。
二战期间它开始被德军大量用于铁路、企业当中,令德军保密通讯技术处于领先地位。
在这个时期虽然加密设备有了很大的进步,但是密码学的理论却没有多大的改变,加密的主要手段仍是--替代和换位。
计算机的出现使密码进行高度复杂的运算成为可能。
直到1976年,为了适应计算机网络通信和商业保密要求产生的公开密钥密码理论,密码学才在真正意义上取得了重大突破,进入近代密码学阶段。
近代密码学改变了古典密码学单一的加密手法,融入了大量的数论、几何、代数等丰富知识,使密码学得到更蓬勃的发展。
到了现在,世界各国仍然对密码的研究高度重视,已经发展到了现代密码学时期。
密码学已经成为结合物理、量子力学、电子学、语言学等多个专业的综合科学,出现了如“量子密码”、“混沌密码”等先进理论,在信息安全中起着十分重要的角色。
希腊斯巴达出现原始的密码器,用一条带子缠绕在一根木棍上,沿木棍纵轴方向写好明文,解下来的带子上就只有杂乱无章的密文字母。
解密者只需找到相同直径的木棍,再把带子缠上去,沿木棍纵轴方向即可读出有意义的明文。
这是最早的换位密码术。
公元前1世纪,着名的恺撒(Caesar)密码被用于高卢战争中,这是一种简单易行的单字母替代密码。
公元9世纪, *** 的密码学家阿尔·金迪(al' Kindi 也被称为伊沙克 Ishaq,(801?~873年),同时还是天文学家、哲学家、化学家和音乐理论家)提出解密的频度分析方法,通过分析计算密文字符出现的频率破译密码。
公元16世纪中期,意大利的数学家卡尔达诺(G.Cardano,1501—1576)发明了卡尔达诺漏格板,覆盖在密文上,可从漏格耐携中读出明文,这是较早的一种分置式密码。
公元16世纪晚期,英国的菲利普斯(Philips)利用频度分析法成功破解苏格兰女王玛丽的密码信,信中策划暗杀英国女王伊丽莎白,这次解密将玛丽送上了断头台。
几乎在同一时期,法国外交官维热纳尔(或译为维琼内尔) Blaise de Vigenere(1523-1596)提出着名的维热纳尔方阵密表和维热纳尔密碰睁码(Vigenerecypher),这是一种多表加密的替代密码,可使阿尔—金迪和菲利普斯的频度分析法失效。
公元1863,普鲁士少校卡西斯基(Kasiski)首次从关键词的长度着手将它破解。
英国的巴贝奇(Charles Babbage)通过仔细分析编码字母的结构也将维热纳尔密码破解。
公元20世纪初,第一次世界大战进行到关键时刻,英国破译密码的专门机构“40号房间”利用缴获的德国密码本破译了着名的“齐默尔曼电报”,促使美国放弃中立参战,改变了战争进程。
大战快结束时,准确地说是1918年,美国数学家吉尔伯特·维那姆发明一次性便笺密码,它是一种理论上绝对无法破译的加密系统,被誉为密码编码学的圣杯。
但产生和分发大量随机密钥的困难使它的实际应用受到很大限制,从另一方面来说安全性也更加无法保证。
第二次世界大战中,在破译德国着名的“恩格玛(Enigma)”密码机密码过程中,原本是以语言学家和人文学者为主的解码团队中加入了数学家和科学家。
电脑之父亚伦·图灵(Alan Mathison Turing)就是在这个时候加入了解码队伍,发明了一套更高明的解码方法。
同时,这支优秀的队伍设计了人类的第一部电脑来协助破解工作。
显然,越来越普及的计算机也是军工转民用产品。
美国人破译了被称为“紫密”的日本“九七式”密码机密码。
靠前者,德国的许多重大军事行动对盟军都不成为秘密;靠后者,美军炸死了偷袭珍珠港的元兇日本舰队总司令山本五十六。
同样在二次世界大战中,印第安纳瓦霍土着语言被美军用作密码,从吴宇森导演的《风语者》Windtalkers中能窥其一二。
所谓风语者,是指美国二战时候特别征摹使用的印第安纳瓦约(Navajo)通信兵。
在二次世界大战日美的太平洋战场上,美国海军军部让北墨西哥和亚历桑那印第安纳瓦约族人使用约瓦纳语进行情报传递。
纳瓦约语的语法、音调及词汇都极为独特,不为世人所知道,当时纳瓦约族以外的美国人中,能听懂这种语言的也就一二十人。
这是密码学和语言学的成功结合,纳瓦霍语密码成为历史上从未被破译的密码。
1975年1月15日,对计算机系统和网络进行加密的DES(Data Encryption Standard数据加密标准)由美国国家标准局颁布为国家标准,这是密码术历史上一个具有里程碑意义的事件。
1976年,当时在美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)两人提出了公开密钥密码的新思想(论文"New Direction in Cryptography"),把密钥分为加密的公钥和解密的私钥,这是密码学的一场革命。
1977年,美国的里维斯特(Ronald Rivest)、沙米尔(Adi Shamir)和阿德勒曼(Len Adleman)提出第一个较完善的公钥密码体制——RSA体制,这是一种建立在大数因子分解基础上的算法。
1985年,英国牛津大学物理学家戴维·多伊奇(David Deutsch)提出量子计算机的初步设想,这种计算机一旦造出来,可在30秒钟内完成传统计算机要花上100亿年才能完成的大数因子分解,从而破解RSA运用这个大数产生公钥来加密的信息。
同一年,美国的贝内特(Ben)根据他关于量子密码术的协议,在实验室第一次实现了量子密码加密信息的通信。
尽管通信距离只有30厘米,但它证明了量子密码术的实用性。
㈡ 十大常见密码加密方式
一、密钥散列
采用MD5或者SHA1等散列算法,对明文进行加密。严格来说,MD5不算一种加密算法,而是一种摘要算法。无论多长的输入,MD5都会输出一个128位(16字节)的散列值。而SHA1也是流行的消息摘要算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。MD5相对SHA1来说,安全性较低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非对称加密
非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
四、数字签名
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。
五、直接明文保存
早期很多这样的做法,比如用户设置的密码是“123”,直接就将“123”保存到数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
六、使用MD5、SHA1等单向HASH算法保护密码
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
七、特殊的单向HASH算法
由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。
八、PBKDF2
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
九、BCrypt
BCrypt 在1999年就产生了,并且在对抗 GPU/ASIC 方面要优于 PBKDF2,但是我还是不建议你在新系统中使用它,因为它在离线破解的威胁模型分析中表现并不突出。
十、SCrypt
SCrypt 在如今是一个更好的选择:比 BCrypt设计得更好(尤其是关于内存方面)并且已经在该领域工作了 10 年。另一方面,它也被用于许多加密货币,并且我们有一些硬件(包括 FPGA 和 ASIC)能实现它。 尽管它们专门用于采矿,也可以将其重新用于破解。
㈢ 加密解密工具 之 波利比奥斯方阵密码
波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是利用波利比奥斯方阵进行加密的密码方式,简单的来说就是把字母排列好,用坐标(行列)的形式表现出来。字母是密文,明文便是字母的坐标。
工具链接: http://www.atoolbox.net/Tool.php?Id=913