密码学入门知识
一、几种常见密码形式:
1、栅栏易位法。
即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。
举例:
TEOGSDYUTAENNHLNETAMSHVAED
解:
将字母分截开排成两行,如下
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再将第二行字母分别放入第一行中,得到以下结果
THE LONGEST DAY MUST HAVE AN END.
课后小题:请破解以下密码
Teieeemrynwetemryhyeoetewshwsnvraradhnhyartebcmohrie
2、恺撒移位密码。
也就是一种最简单的错位法,将字母表前移或者后错几位,例如:
明码表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密码表:DEFGHIJKLMNOPQRSTUVWXYZABC
这就形成了一个简单的密码表,如果我想写frzy(即明文),那么对照上面密码表编成密码也就是iucb(即密文)了。密码表可以自己选择移几位,移动的位数也就是密钥。
课后小题:请破解以下密码
dtzwkzyzwjijujsixtsdtzwiwjfrx
3、进制转换密码。
比如给你一堆数字,乍一看头晕晕的,你可以观察数字的规律,将其转换为10进制数字,然后按照每个数字在字母表中的排列顺序,
拼出正确字母。
举例:110 10010 11010 11001
解:
很明显,这些数字都是由1和0组成,那么你很快联想到什么?二进制数,是不是?嗯,那么就试着把这些数字转换成十进制试试,得到数字6 18 26 25,对应字母表,破解出明文为frzy,呵呵~
课后小题:请破解以下密码
11 14 17 26 5 25
4、摩尔斯密码。
翻译不同,有时也叫摩尔密码。*表示滴,-表示哒,如下表所示比如滴滴哒就表示字母U,滴滴滴滴滴就表示数字5。另外请大家不要被滴哒的形式所困,我们实际出密码的时候,有可能转换为很多种形式,例如用0和1表示,迷惑你向二进制方向考虑,等等。摩尔斯是我们生活中非常常见的一种密码形式,例如电报就用的是这个哦。下次再看战争片,里面有发电报的,不妨自己试着破译一下电报
内容,看看导演是不是胡乱弄个密码蒙骗观众哈~由于这密码也比较简单,所以不出小题。
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 --**
数字
0 ----- 1 *---- 2 **--- 3 ***-- 4 ****-
5 ***** 6 -**** 7 --*** 8 ---** 9 ----*
常用标点
句号 *-*-*- 逗号 --**-- 问号 **--**
长破折号 -***- 连字符 -****- 分数线 -**-*
5、字母频率密码。
关于词频问题的密码,我在这里提供英文字母的出现频率给大家,其中数字全部是出现的百分比:
a 8.2 b 1.5 c 2.8 d 4.3
e 12.7 f 2.2 g 2.0 h 6.1
i 7.0 j 0.2 k 0.8 l 4.0
m 2.4 n 6.7 o 7.5 p 1.9
q 0.1 r 6.0 s 6.3 t 9.1
u 2.8 v 1.0 w 2.4 x 0.2
y 2.0 z 0.1
词频法其实就是计算各个字母在文章中的出现频率,然后大概猜测出明码表,最后验证自己的推算是否正确。这种方法由于要统计字母出现频率,需要花费时间较长。
6、维热纳尔方阵。
上面所说的频率分析,很容易破解较长篇幅的密文,于是维热纳尔继承前人的经验,创造出了这个维热纳尔方阵,从而克服了词频分析轻易能够破解密码的弊端,成为一种较为强大的密码编译形式。
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
1 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 A
2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4 E 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
5 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
6 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 F
7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25 Z 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
26 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
以上就是维热纳尔方阵,它由明码表(第一行的字母)、密码表(下面26行)和密钥组成,下面我举个例子说明。
举例:
密钥:frzy
密码:qfuc
解:第一个字母,看以f开头第五行,对应明码表查找q字母所标示的字母为l。以此类推找出后面字母。所得明文为love。
这个也不出小题了,只要有密钥,再复杂的密码也能查出来,就是个查表的问题~
二、一些新兴的密码形式:
1、利用键盘
无论是计算机键盘,还是收集键盘,都是出密码的好工具哦,可以用错位、或者排列形状等。使用手机键盘和这个同理。另外手机键盘还可以在键盘的字母上做文章,例如你可以用51表示字母j,用73表示字母r等。
举例:
r4a6
这个密码利用计算机键盘,将明文字母分别向上移动一个位置,得到密文。破解结果为frzy。
852 74123 741236987 426978974123456 7412369
这排数字是不是很晕?其实很简单,对照小键盘,依次打这些字母,看组成的形状就行了。答案是I L O V E U。
课后小题:请破解以下密码
18 29 19 34 13 17
2、字母形状
本人曾经收到过这样一个密码短信,不幸被破解,导致发短信人被我非常严肃地奚落了一番!
前面我不记得了,只记得后面是hep poo6。这个你可以从手机里打出来,然后把手机倒过来看,形成了密码的明文,good day~~~
课后小题:请破解以下密码
AnnAW T2UL
THpin boop YA2
T99W2 A 9VAH
MA37b
三、密码印象
前言:本文是一篇人文性质的文章,并非技术文章。对密码学感兴趣的读者,可以去图书馆查阅相关的书籍,或者去报考我校密码学权威——杨义先教授的研究生。本篇重在宣扬人文理念,主要讲述了我这些年对密码方面的一些了解和随想,古典的味道比较浓。好了,诸位看官,我们开始。
Case 1 达·芬奇密码
13-3-2-21-1-1-8-5
O Draconian devil !(啊,严酷的魔王!)
Oh Lame Saint !(噢,瘸腿的圣徒!)
这是畅销小说《达·芬奇密码》里面出现的第一段密码。在故事中,卢浮宫博物馆馆长被人杀害,临死前用隐写笔在地上写下了这样一段令人费解的文字,其中隐藏了重要的信息。
主角是如何破译这段密码的呢?他通过分析发现开头的“13-3-2-21-1-1-8-5”是解密的关键所在。将这一串数字从小到大重新排列,得到“1-1-2-3-5-8-13-21”,恰好是数学中著名的斐波那契数列。这就暗示着,谜题中的文字也是经过乱序排列的。于是,经过对文字的重新排序,主角得到了明文:
Leonardo da Vinci !(莱昂纳多·达·芬奇!)
The Mona Lisa !(蒙娜丽莎!)
故事在这里终于出现了转机,读者从此开始了惊心动魄的密码之旅。真是给人一种茅塞顿开的感觉。
当然,这只是浩如烟海的密码世界的一个比较典型的例子。下面,就让我们切入正题。
Case 2 密码释义
使用电脑多了的人,听到“密码”一词总会想到password。其实在英语中,主要有两种对密码的解释。一个就是password,还有一个是 code。后者比较不常用一点,不过程序员(coder)对这个词还是有着比较深的感情的(笑)。
其实password和code在含义上是有着本质的区别的。对于password,我觉得称它为“口令”似乎更贴切一些。比如Windows 的开机密码,比如FTP的登陆口令,等等。其特征是把输入的一个字符串与标准答案进行比对,根据其结果来决定是否授予通过的权限。这个比对的工作是一次性的,而且原理简单。而code就不同。对于code,主要体现的是“翻译”的过程,牵涉到对信息的编码和译码。比如凯撒密钥,比如RSA算法,等等。这里面牵涉到很多数学的东西,比如对字符的分解和重组等。当然,从广义的角度讲,code的编码和译码也可以往数学以外的方面延伸,这又涉及到很多典故,在此按下不表。
本文主要讲述的,基本上是关于code的内容。
Case 3 初见密码
20.8.1.14.11/25.15.21/
9/12.15.22.5/25.15.21/
这是我小学二年级第一次接触密码这种事物时,所遇到的一段code。当时脑筋急转弯之类的东西还没有引进到大陆,我是在一本香港出版的智力游戏书籍中发现这个密码的。原文我忘了,在这里我用相同的加密方式写了一段话。
解密的方法很简单,只要把a=1,b=2,… z=26代入code,就可以非常容易地得到明文:
Thank you , I love you .
怎么样,是不是很容易?不过如果将四则运算加入译码(比如让a=2等),破译时就有一定的难度了。
这是一种很典型的古典密码。
Case 4 凯撒密钥
提到古典密码,就不能不提到著名的凯撒密钥。基本上每一本密码学方面的基础教材在提到古典密码时,都会举出凯撒密钥的例子。凯撒密钥的加密公式是:
c≡ m + k mod 26
凯撒密钥又称为单表代替法。其中m为明文的数据,c为加密后的数据,而k是密钥。
当年凯撒指导军团作战,使用的就是这套密码体系。比如让a=d,b=e,c=f……依此类推。
这在密码史上产生了重要的影响,不能不说是一个经典。
Case 5 珍珠港
还记得电影《珍珠港》中的战火和硝烟么?在日本偷袭珍珠港之前,美国的情报部门破译了日本的外交电报密码,但是由于当局没有重视,最后还是没能阻止悲剧的发生。
1942年4月和5月期间,在美军截获的日军通讯中,有一个“AF”名称出现的频率和次数明显增多,罗奇福特少校领导的情报小组绞尽脑汁,终于在堆积如山的侦抄电文中找到一份日军偷袭珍珠港时的电报,电文曾提到“AF”,说一架日军水上飞机需要在“AF”附近的一个小珊瑚岛上加油。因此罗奇福特推断,“AF”只能是指中途岛。为进一步证实这一推断的准确性,驻中途岛上美军奉命用浅显的明码拍发了一份作为诱饵的无线电报,谎称中途岛上的淡水设备发生了故障。果然不久,美军截获一份日军密电,电文中说:AF可能缺少淡水。一切立时真相大白了。罗奇福特小组以此为突破口,一下子破译了反映日军舰队作战计划的所有通讯。这样,尼米兹不仅清楚掌握了日军夺取中途岛的战略企图,而且还查明了其参战兵力、数量、进攻路线和作战时间,甚至连对方各舰长的名子都了如指掌。(注:这段文字摘自网络)
日军当时使用的密码体系代号为JN25,比较复杂。但是美军破译这个密码的手法却是一种非常经典的解密技术。其基本方法是,直接分析密文,根据字符出现的频率分布逆推出密码表。比如研究证明,英语文章里面26个字母的出现频率总是固定的,于是我们就可以根据统计得来的数据解析出原始的密码表。因此,单纯以字母替换为基础的密码体系是非常脆弱的,可以说是形同虚设。
Case 6 电影中的密码
与间谍或侦探有关的电影中,总会出现各种各样的密码。随着电影的发展,以电脑叛客为题材的科幻电影就更是将这一点发挥到了极致。
在电影中,似乎password的出现次数比code要多得多。在警匪片中,经常会有敌方的黑客在笔记本电脑上开着算号器破解密码的场面出现。比如《对抗性游戏》里,罪犯甚至可以通过破解旅馆电脑系统的密码来锁住所有房间的门。需要指出的是,电影里黑客所使用电脑的界面往往都非常的人性化,要么是画面华丽精美,要么可以识别自然语言。不知导演是怎么想的。嗬嗬,这是题外话:-p。
至于电影中的code,给我印象比较深的是《神秘拼图》等。这里面的code与通常的code不同。因为要考虑到观众的理解能力,电影中的 code的密钥往往与一些典故有关,比如在一本书里(比如圣经),或者在一幅画中。这些因素总是使得悬疑的情节散发出浓厚的人文气息。有时候,电影中的 code干脆就以字谜或画谜的形式出现,这就是我在前面提到的,在数学以外领域的延伸,本质上是一种隐喻。
当然,不仅仅是电影,在小说、游戏等其他艺术领域,密码也经常出现,并且总是能成为推动情节发展的关键动力。比如《达·芬奇密码》,比如福尔摩斯的一些探案故事。
Case 7 The RING
如果提到恐怖小说,不能不提到《午夜凶铃》。这也是我唯一完整读完的长篇恐怖小说。《午夜凶铃》是日本著名小说家铃木光司的作品,共有四部。其情节我就不再赘述了。需要指出的是,在小说的第二部《凶铃再现》中,作者以相当的篇幅描写了一种基于DNA的极度匪夷所思的密码。
大致的情节是:午夜凶铃的受害者由于受到怨念的影响,体内的基因产生突变。经过染色体的变异,四个碱基A,G,T,C(腺嘌呤、鸟嘌呤、胸腺嘧啶、胞嘧啶)经过组合竟然表达出了非同一般的信息。这种以染色体碱基序列作为加密载体的方式,我还真是闻所未闻。不禁对铃木光司那天马行空般的想象力感到深深的佩服。
Case 8 生命之歌
中国著名科幻小说作家王晋康曾经写过一部非常经典的小说《生命之歌》,也是关于DNA密码的。当时曾经引发了科幻界的大讨论,给我印象很深刻。
故事提出的假设是,既然DNA包含了生命的密码,那么机器如果洞悉了其中的奥秘,会不会发展成足以和人类竞争的生命形式呢?小说里面还加入了音乐的要素,即把DNA的序列编制成了旋律,即生命之歌。这个是有一定科学依据的。因为历史上确实有过把DNA序列谱写成音乐的先例(好像是个日本的演奏家,具体的我给忘了)。
这似乎又是一个隐喻。抑或是,讽刺?
Case 9 密写术
这个话题似乎跟密码没什么关系。但是因为实在很有趣,我就写下来了。
所谓密写,就是用特殊的方式写信息,然后只能用特殊的方式才能看到。记得中学语文里有一篇关于鲁迅的课文,提到一种用米汤进行的密写方式。即用毛笔或手指蘸着米汤写字,只有纸张浸水后才能看到。后来看了一些影视作品,经常出现的场面是一张羊皮纸在熊熊的火中现出字迹。最夸张的是漫画《城市猎人》中有一节,居然是在镜子的背面进行密写,然后将镜子反光在墙上投影,从中就会显现出字样。
下面介绍一种非常简单的密写方法。首先,准备两张白纸和一盆水。将其中的一张白纸在盆内浸湿,铺开在桌面,摊平。将另外一张干燥的白纸覆盖在湿的那张纸上,然后在其上书写文字。写完后,将干燥的纸张拿走,毁掉,然后把那张浸湿的纸晒干。好了,晒干后的那张纸看上去将仍然是一张白纸,可是一旦浸湿,就会显现出字样。密写成功。
这个方法我在初中玩过多次,屡试不爽。
Case 10 矩阵博士
差点忘了,谈论密码就不能不提到一位美国人,大名鼎鼎的矩阵博士。他的真名我忘了,不过他在美国应该是家喻户晓。《科学美国人》杂志曾经对他做过长期的采访。矩阵博士的职业是“数学巫师”,就是通过数学来搞一些玄学的东西,比如算命等等。此人数学天赋极高,可惜没有用在正道上。《科学美国人》对他的专访也是揭露了很多他的骗术。比如,他使用一个环形的字母表来给人测字,或是对人梦中出现的数字给予玄妙的解释(举例:有个人梦中经常出现7734这个数,矩阵博士给它倒过来写,结果变成了hell,即地狱)。他可以通过一美元纸币的隐喻预测肯尼迪的被刺。他甚至宣称开发出了可以写诗的电脑程序。他还曾因为非法变造美元货币(通过特殊的裁剪粘贴使得14张20美元纸币变为15张)而遭到通缉。最后他的数学“天才”终于引起了当局的注意,被招安到了中央情报局,从事密码方面的研究。
《科学美国人》的专栏作家马丁·加德纳为此曾经专门写过一本书,介绍阵图博士的把戏。我看的是80年代的中译本,取名居然叫《科学算命之谜》,现在的译本改为《矩阵博士的魔法数》,有兴趣的读者不妨找来一读。
Case 11 圣经密码
上个世纪在西方世界闹得沸沸扬扬的一本书《圣经密码》,将密码的故事推演到了极致。此书可能是因为意识形态的原因在大陆没有出版,因此我只能读到盗版的台译本。
90年代,美国《华盛顿邮报》记者德罗斯宁出版了一本叫作《圣经密码》的书,记述了有关圣经密码的破译方法,及密码对过去一些重大历史事件的印证和对未来世界的耸人听闻的预测。圣经密码的发现者在1994年预测拉宾遇刺,结果1995年悲剧果然发生了。当时在全世界引发了轰动,也引发了科学界与宗教界的激烈辩论。
所谓圣经密码,就是采取均衡间字法可以发现圣经中隐藏的信息,即“上帝的启示”。 研究人员首先将原版希伯莱文的《圣经》旧约输入计算机,去掉所有的标点,使之成为一整篇由344805个希伯莱文字母组成的文字,然后运用均衡间字法对整篇经文进行搜寻,结果获得惊人的发现。神奇的圣经密码不仅印证了许多重大的历史事件,甚至似乎还可以预测未来世界。比如,使用计算机对圣经密码进行分析,搜索“第二次世界大战”,可以找到“希特勒”的名字,而且周围还环绕着诸如“纳粹”、“屠杀”等字眼。让人感觉十分的匪夷所思。