密码种类:
1、字母法
2、代数法
3、文字法
4、键盘法
5、密码通信卡
6、埃特巴什码
7、镜像字迹
8、运算式密码一式
9、运算式密码二式
10、运算式密码三式
11、运算式密码四式
12、运算式密码五式
13、四角密码
14、字母替换
15、历换法
16、换音词
17、凯撒方阵
18、换位密码
19、斯巴达圆棒
20、数字解经法
21、曾码汉字
我对“恩尼格玛”密码机很感兴趣,趁着考完AP历史和物理休息的时间,整理一下我自己学到的东西,包括密码的历史和恩尼格玛的历史。
I am interested in the "Enigma" cipher machine. While taking a break after AP history and physics exam. I organized what I have learned, including the history of cipher and enigma.
密码学是研究密码技术的科学,目的是研究保障信息安全的技术和手段。
密码在中外历史上古代就有广泛的应用,比如中国的狼烟,消息树,古罗马的凯撒密码等,这些密码都是利用简单的直接想象编制完成的。现代的密码学原理直到20世纪初都才逐渐形成,现代的密码学是数学+通信+计算机科学等学科于的交叉科学。
Cryptography is the study of the science of cryptography, the purpose of which is to study the technology and means to ensure information security.
Passwords have been widely used in Chinese and foreign history, such as the Chinese "Wolf smoke", "message tree", and the ancient Roman "Caesar" ciphers.
The principles of modern cryptography were not gradually formed until the early 20th century. Modern cryptography is an interdisciplinary science of mathematics, communication and computer science
一、几个非常有意思的例子
唐朝武则天朝执政期间,宰相裴炎与徐敬业(就是骆宾王著名的檄文《为徐敬业讨武曌檄》中的徐敬业)勾搭造反,裴给徐送去一封密信,书信被武则天查获。信中只有“青鹅”两个字,武则天识破密信内容,“青”字可以拆分成“十二月”,繁体的“鹅”,可以拆分成“我自与”,断定裴炎十二月要造反,将裴炎处死于洛阳。
古罗马皇帝恺撒向前线司令官发出了一封密信:VWRS WUDIIF,密信的内容被敌方截获,但是敌方根本不了解这是什么意思,但罗马的前线司令官却很快明白了。因为古罗马皇帝同时发出的还有另外一封密信:前进三步,两封信结合到一起,VWRS WUDIIF就是STOP TRAFFIC。
二、古典密码
原始的加密方法,也被称为古典密码,大致有以下几种,
1、棋盘密码
公元前两世纪,一个希腊人提出了棋盘密码,原理是把26个字母放合5x5的方格里,其中i、j放在同一个格中,具体如下表:
如果α是该字母所在行的标号,β是列标号,那么每个字母就对应了由两个数字αβ构成的字符。如果接收到密文为:11、35、12、24、34、31、34、22、54,对应的明文就是:A P B I O L O G Y。
2、替代密码法
典型的替代密码法是凯撒密码,以上文的前进三步为例:“VWRS WUDIILF”+“前进三步”,按照字母表,前进三步,就出现了如下的转换:v—s、w—t、r—o、s—p、w—t、U—r、d—a……,最后解密为 STOP TRAFFIC。
法国人维吉尼亚1585年在凯撒密码基础上,使用一系列凯撒密码组成密码字母表的加密方法,被称作维吉尼亚密码。
假设明文为:
ATTACKLONDON
选择一个关键词作为密钥,关键词重复使用,如果关键词为LEMON,对应上述明文的密钥为:LEMONLEMONLE
明文的第一个字母A,对应密钥的第一个字母L,使用表格中L行字母表进行加密,得到密文第一个字母L。类似,明文第二个字母为T,在表格中使用对应的E行进行行加密,得到密文第二个字母X。如此类推,可以得到:
明文:ATTACKLONDON
密钥:LEMONLEMONLE
密文:LXFOPVPABOZE
3、一次性密码本
一次性密码本(One Time Pad,缩写为OTP)是古典密码学中的一种加密算法。以随机的密钥组成明文,且只使用一次。
理论上,此种密码具有完善保密性,是牢不可破的。
波利比奥斯方阵
公元前2世纪,一个叫Polybius的希腊人设计了一种将字母编码成符号对的方法。他使用了一个称为Polybius的校验表。Polybius校验表由一个5行5列的网格组成,网格中包含26个英文字母,其中I和J在同一格中。相应字母用数对表示。在古代,这种棋盘密码被广泛使用。Polybius校验表如下:
假设我们需要发送明文信息“Hello”,找到H对应2行3列,则加密为23,e加密为15,以此类推,得到密文:2315 31 31 34。
ADFGX密码
1918年,第一次世界大战将要结束时,法军截获了一份德军电报,电文中的所有单词都由A、D、F、G、X五个字母拼成,因此被称为ADFGX密码。ADFGX密码是1918年3月由德军上校FritzNebel发明的,是结合了波利比奥斯方阵和置换密码的双重加密方案。ADFGX密码之所以选择ADFGX一个字母,是因为它们译成摩斯密码时不容易混淆,可以降低传输错误的机率。ADFGX密码表如下:
这样加密的话Hello的密文就是:DD XF AG AGDF。
ADFGVX密码
ADFGX密码发送含有大量数字的信息会有问题。 在1918年6月,又加入一个字母V扩充,变成以6×6格共36个字符加密,这使得所有英文字母(不再将I和J视为同一个字)以及数字0到9都可混合使用。ADFGVX是被法国陆军中尉Georges Painvin所破解的。
密码的使用可以追朔到古埃及时期,在那时有一种现在被称为“棋盘密码”的加密方法。
其原理如下:
在通信双方,掌握着相同的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厘米,但它证明了量子密码术的实用性。
世界上最早的一种密码产生于公元前两世纪。
是由一位希腊人提出的,人们称之为
棋盘密码,原因为该密码将26个字母放在5×5的方格里,i,j放在一个格子里,具体情
况如下表所示
1 2 3 4 5
1 a b c d e
2 f g h i,j k
3 l m n o p
4 q r s t u
5 v w x y z
这样,每个字母就对应了由两个数构成的字符αβ,α是该字母所在行的标号,β是列
标号。
如c对应13,s对应43等。
如果接收到密文为
43 15 13 45 42 15 32 15 43 43 11 22 15
则对应的明文即为secure message。
另一种具有代表性的密码是凯撒密码。
它是将英文字母向前推移k位。
如k=5,则密
文字母与明文与如下对应关系
a b c d e f g h i j k l m n o p q r s t u v w x y z
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
于是对应于明文secure message,可得密文为XJHZWJRJXXFLJ。
此时,k就是密钥。
为了
传送方便,可以将26个字母一一对应于从0到25的26个整数。
如a对1,b对2,……,y对
25,z对0。
这样凯撒加密变换实际就是一个同余式
c≡m+k mod 26
其中m是明文字母对应的数,c是与明文对应的密文的数。
随后,为了提高凯撒密码的安全性,人们对凯撒密码进行了改进。
选取k,b作为两
个参数,其中要求k与26互素,明文与密文的对应规则为
c≡km+b mod 26
可以看出,k=1就是前面提到的凯撒密码。
于是这种加密变换是凯撒野加密变换的
推广,并且其保密程度也比凯撒密码高。
以上介绍的密码体制都属于单表置换。
意思是一个明文字母对应的密文字母是确定
的。
根据这个特点,利用频率分析可以对这样的密码体制进行有效的攻击。
方法是在大
量的书籍、报刊和文章中,统计各个字母出现的频率。
例如,e出现的次数最多,其次
是t,a,o,I等等。
破译者通过对密文中各字母出现频率的分析,结合自然语言的字母频
率特征,就可以将该密码体制破译。
鉴于单表置换密码体制具有这样的攻击弱点,人们自然就会想办法对其进行改进,
来弥补这个弱点,增加抗攻击能力。
法国密码学家维吉尼亚于1586年提出一个种多表式
密码,即一个明文字母可以表示成多个密文字母。
其原理是这样的:给出密钥
K=k[1]k[2]…k[n],若明文为M=m[1]m[2]…m[n],则对应的密文为C=c[1]c[2]…c[n]。
其中C[i]=(m[i]+k[i]) mod 26。
例如,若明文M为data security,密钥k=best,将明
文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为
C=EELT TIUN SMLR
从中可以看出,当K为一个字母时,就是凯撒密码。
而且容易看出,K越长,保密程
度就越高。
显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加
密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。
该密码可用所谓
的维吉尼亚方阵来进行,从而在操作上简单易行。
该密码曾被认为是三百年内破译不了
的密码,因而这种密码在今天仍被使用着。
古典密码的发展已有悠久的历史了。
尽管这些密码大都比较简单,但它在今天仍有
其参考价值。
根据明文和密钥区分。
由于ij同时出现的概率较低,所以同格。ij可以根据明文和密钥来区分。
棋盘密码是利用波利比奥斯方阵进行加密的密码方式,产生于公元前两世纪的希腊,相传是世界上最早的一种密码。