发表于 2010-6-27 08:46:39 | 显示全部楼层
本帖最后由 侦探AV 于 2010-6-27 08:48 编辑

密码的历史是十分悠久的,人类文明刚刚形成的公元前2000年,古埃及就有了密码,我们在古埃及的坟墓中找到了一块贵族的墓碑,上面的象形文字不同于我们已知的普通埃及象形文字,而是由一位擅长书写的人经过变形处理之后写的,但是具体的使用方法已经失传。人们推测这是为了给坟墓增加神秘气氛,以提高墓主的声望。

    希伯来也是同样古老的文明,公元前21世纪,希伯亚民族发源于两河流域的美索不达米亚的吾珥(Ur),在这批游牧民族为了寻找牧场而迁移,踏上迦南,巴勒斯坦的土地之后,他们被称为希伯来,即迦南语“越河者”之意。而希伯来民族的伟大领袖亚伯拉罕的孙子雅各,在传说中一次与神的角力中获胜后,这个民族有了一个更加为人所知的名字--以色列,即“与神角力”之意,雅各也成为以色列的祖先。希伯来人开发出了三种加密法,称为“atbah”、“atbash”和“albam”,是否觉得眼熟呢?丹·布朗的Fans一定想到了吧,《达芬奇密码》中,达芬奇密码筒中诗句的一句:“埃特巴什使道昭显”(and atbash will reveal the truth to thee.)这里的埃特巴什正是指希伯来三种加密法中最为有名的atbash。在介绍这三种加密法前,先让我们了解一下希伯来字母,希伯来字母共有22个:(虽然对丹·布朗的真实性很怀疑,但还是决定引用《达芬奇密码》中的希伯来字母表)
    A(Alef) B(Beit) G(Gimel) D(Dalet) H(Hei) V(Vav) Z(Zayin) Ch(Chet) T(Tet) Y(Yud) K(Kaf) L(Lamed) M(Mem) N(Nun) S(Samech) O(Ayin) P(Pei) Tz(Tzadik) Q(Kuf) R(Reish) Sh(Shin) Th(Tav)
    这三种加密方式都是把字母两两配对后进行互相替换,atbash,即《达芬奇密码》中的这种密码,是将字母表颠倒后配对,其配对如下:
    A  B  G D H  V Z Ch T Y K
    Th Sh R Q Tz P O S  N M L
    这种密码显然更容易被应用到拉丁字母当中,其实,这就是我们常说的字母倒序。:
    A B C D E F G H I J K L M
    Z Y X W V U T S R Q P O N
    出一道例题来帮助理解:
    密文:OLLP,GSV ERITRM HSZOO XLMXVREV ZMW YVZI Z HLM,ZMW GSVB HSZOO MZNV SRN VNNZMFVO
    将密文中所有的字母用配对表中与之配对的字母代替后,不难得到
    明文:look,the virgin shall conceive and bear a son,and they shall name him Emmanuel。(“必有童女怀孕生子,人要称他的名为以马内利。”选自《圣经--马太福音》第一章)
    顺带一提,这是D最为常用的密码,每个人都有自己的喜好,即对一种简单密码有着频繁的使用,当然他们更多地把这种简单密码与其他密码复合后再应用,D就曾经把字母倒序与栅栏、Playfair等密码结合,出一些复合密码的题目。

    albam的配对表则是这样的:
    A B G D H V Z  Ch T Y  K
    L M N S O P Tz Q  R Sh Th
    这是将字母表的后半部分直接移到下一行,这同样适用于拉丁字母:
    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
    例题密文:NAQ LBH,ORGUYRURZ,VA GUR YNAQ BS WHQNU,NER OL AB ZRNAF YRNFG NZBAT GUR EHYRF BS WHQNU;SBE SEBZ LBH FUNYY PBZR N EHYRE JUB VF GB FURCUREQ ZL CRBCYR VFENRY.
    同上题一样,易得
    明文:and you,Bethlehem,in the land of Judah,are by no means least among the rules of Judah;for from you shall come a ruler who is to shepherd my people Israel。(“犹大地的伯利恒啊,你在犹大诸城中并不是最小的,因为将来有一位君王要从你那里出来,牧养我以色列民。”选自《圣经--马太福音》第二章)

    atbah码,根据我手上的资料,我推测其配对表如下:
    A B  G D H Y  K  L M N  S O
    T Ch Z V H Th Sh R Q Tz P O
    但是没有任何证据说明这一点,我也不敢肯定,因为这种配对尚和部分资料冲突不符。和竹子商量了一下,决定这里先暂时跳过,等有了详细且可靠的资料时,再出个补丁修正。这个配对表,各位看看就算了,不必注意。  

    著名的希伯来密码并没有被称为最早的密码,显然这种密码并不像发明它的文明那样古老。另一个古老文明是希腊,希腊人使用过一种有趣的传递情报的手段,他们先把一个奴隶的头发剃光,然后再头皮上写下情报内容,等这位奴隶的头发长好后,他就可以带着这份情报出发了。如果你还记得我们之前提到的密码的分类,你会发现这显然是一个夹带加密法,它把密文以隐藏的方式传递。一个显而易见的问题是,这种密码没有什么时效性,我们的情报员需要等自己的头发长到可以隐藏情报时,才能够出发将情报传送到它应该被送到的地方。如果我决定把亡者岛出了新章节这个消息用这种奇怪的方法告诉竹子,虽然它可能瞒过8Y,但等竹子收到这个消息时,亡者岛可能又出了4或5章。在战场这种地方,这种延迟性所带来的后果可想而知,这或许是这种密码未能发展下去的原因。因此,再加上夹带加密法有时并不被认为是一种密码,它也没能成为最早的密码。

    真正得到大部分人公认的最早的密码是斯巴达人发明的,在公元前8至公元前6世纪,希腊半岛上出现了200多个奴隶制国家,它们都以一个城市为中心,包括周围的若干城镇,这被称为“城邦”。在这些城邦之中,最强大的是推崇武力的斯巴达和强调民主的雅典。公元前十二世纪,一批多利亚人来到斯巴达地区,200年后,他们用五个村落组成了一个城市,称为“斯巴达城”。斯巴达人凭借自己强大的武装,将这片土地原有的居民变成了自己的奴隶,称他们为“希洛人”,斯巴达通过这些奴隶进行各种农业或是手工业劳动,而斯巴达人自己要做的,只是随时准备镇压不断的奴隶起义。这种镇压起义的需要使得斯巴达人无比的崇尚武力,他们希望把每一个男子都训练成为最强悍的武士,男孩出身时需要接受长老的检查,如果被认为身体不够强壮,就会被直接扔掉,只有合格的健壮婴孩才允许被养育。这些孩子将从小接受最为严格的训练,优胜劣汰,直到他们长到二十岁,那时他们将进入军队,开始军旅生涯。他们将在军营被训练成为具有严格组织纪律性的战士,30岁时才可以成家,并同时接受训练,直到60岁退伍。这种近乎恐怖的训练方式使得斯巴达成功地成为希腊半岛上最强大的城邦,并将周围的其它城邦征服,并成立了以自己为首的城邦联盟。一个区域内存在像斯巴达和雅典这样两个强大的势力,接下来会发生的事情可想而知,虽然他们曾经作为盟友,击败了波斯的两次入侵(其中包括著名的马拉松战役、温泉关血战和萨拉米海战)。公元前431年,斯巴达和雅典以及双方的盟友终于发生了战争。战争持续了几十年,这段时间中斯巴达人借助波斯的力量构建了一只强大的海军。在公元前405年,北路军司令来山得率领斯巴达海军在羊河口全歼雅典海军之后,雅典最终被斯巴达征服。公元前404年,在来山得征服雅典之后,得到了本国间谍(最早的情报部门?)送来的情报,雅典的残余部队打算在斯巴达军队回国的路上发动攻击。来山得当机立断,率军轻装速行,成功地脱离险境。而这份情报,正是使用密码书写的,是历史记载上第一次将密码应用于军事领域。
    长期的战争使得斯巴达人发展出了自己的一套加密方式,他们将其称为“Scytail”,这个单词的发音近似“Skytale”,于是这种密码最终被称为“Skytale”(中文译为“天书”)。斯巴达人把一个带状物,比如纸带、羊皮带或是皮革类的东西,呈螺旋形紧紧地缠在一根权杖或木棍上,之后再沿着棍子的纵轴书写文字,在这条带状物解开后,上面的文字将杂乱无章,收信人只需用一根同样直径的棍子(这两根同样直径的棍子可以是在出征前把一根棍子锯断后得到,之后将领和“情报部门”各拿一半。)重复这个过程,就可以看到明文,这还是人类历史上最早的加密器械。很遗憾不能用文字给你们示范这个过程,你们可以自己找些东西进行试验。


在密码发展的早期,希腊人无疑扮演了重要的角色,除了斯巴达人贡献了天书这一最早的密码之外,希腊人还创造了其它形式的密码。
  首先登场的是希腊方盘,这是一种古老的密码,大约形成于公元前2世纪,有时也被称为希腊棋盘,它使用一个5×5的棋盘式方格来加密,把字母按照顺序填入,随后使用这个字母所在的行和列,也就是坐标,来代指这个字母。你可能意识到一个问题,即26个字母如何能填入一个5×5的棋盘式方格?这个原因在于,希腊人并不使用一种拥有26个字母的语言。事实上,希腊字母只有24个(alpha,beta,gamma,delta,epsilon,zeta,eta,thet,iot,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega),因而可以成功填入这个棋盘。我们当然不会使用希腊语来传递信息,正如同上次的希伯来密码一样,我们希望这种密码可以应用于拉丁字母,使得我们可以用英语,甚至是拼音来作为明文。在这里,通常将i和j填入一个方格内。构成方阵:
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
  每个字母由对应的坐标代替,比如T就加密为44, Terry用希腊方盘来加密的结果是4415424254。你不会对这种密码感到陌生,如果你看过夏理的连锁谜题帖,最后一题正是希腊方盘,夏理没有依常规使用标准方阵,他去掉了方阵中的W,这个的提示是“它们共有25个,即便再加上一个它就成了前者的两倍,把它们放在一个恰好可以容纳它们的正方形里,此时真正的钥匙就会出现”,是指W是之前的字母V的两倍(明白么?看字母形状),从而得到答案“SS.Vadine”。密码不拘泥于其标准形式,这正是一个很好的例子,正如同标准的恺撒是后退三位,但是没人这么做,这使得密码有更多变化,本章正希望向你阐明这一点。
  那么我们来看看这个方盘有什么可变化的余地。首先,密码本身的加密法取决于那个方阵的排布,夏理没有使用标准排布(当然他对这一点给出了提示,这是个关键,密码需要变化,但如何使这个密码不像有些帖子一样石沉大海,一个好的提示是关键,以后如果有机会我再讨论这个问题),使用一个方阵进行加密时,如何决定其排布呢?
  第一种方法是如夏理一样,去掉一个字母,使其形成完美的矩阵造型,这里有26种手法,或者说26个密钥。这里有一个问题,我们将缺少一个字母的加密法,我们的明文如果出现这个字母,我们毫无办法。(显然你不能去掉像E、S这样的字母,我们的明文几乎不可能避开它们)
  第二种,调整字母顺序,为何一定要按照字母顺序填写方盘呢?我们当然可以按照自己喜欢的顺序填写,比如键盘顺序(QWERTYUIOPASDFGHJKLZXCVBNM),一个常见的手法。或者使用关键字顺序,我会在关键字加密法中详细介绍这种字母排列。
  第三种,我们还可以改变方盘的形状,一个5×5的方阵固然好,但是变成4×7的也不坏,我们还可以多出三个方格放其它的东西(标点?常用词组?)。
  以上只是随意举例,当你希望并思考变化时,你会发现一种极其简单的密码也有着复杂的变化,T抛砖引玉,希望引出你们的无限创意,本章的主题就在于此,希腊的智慧,也是你们的智慧。
  现在来看看另外一种密码,公元前4世纪,希腊人艾奈阿斯发明了艾奈阿斯绳结,这种密码使用一根绳子来传递信息,绳子上系着距离不等的绳结,而两个绳结之间的距离代指一个字母,这段距离当然是事先规定好的。(我很怀疑他们是否能准确的打这个结,以至不产生误解)
  这种看似不能被我们在网络上应用的密码有什么意义呢?我们试着在这里做一点变化:aaaaaaaaaaaaaaaaaaaaaaa sssss ddddddddddddddddddd ffffffffffffffffff ggggggggggggggggggggggggg。如果我说这还是我的名字,你是否能明白其加密原理?每两个空格之间的字母个数是指字母序数,这还是艾奈阿斯绳结。当然这个密文太长了,五个字母的明文被加密成了七八十个字母的密文,我们可以再看看另一种变化:aa bbbbb abbbbbbbb abbbbbbbb aabbbbb,还是名字,这里用a的个数代指十位,b做个位。当然还可以更短:aa b abccc abccc aab,a、b、c分别代表10、5、1。




  这里还可以有什么别的思路呢?艾奈阿斯绳结的实质实际是使用两个字符来表示字母,一个是绳结,一个是无绳结处。有和无,0和1,你想到2进制么?还是名字:
000000000000000000001000001000000000000000000100000000000000000010000000000000000000000000
  如果我们把它分成几段,比如16位一段,剩下的用1补齐:
0000000000000000
0000100000100000
0000000000000100
0000000000000000
1000000000000000
0000000000111111
  我们再把它换成十进制:0,2080,4,0,32768,63。那么完成了,一个复杂的加密手段。
  那么,思考一个问题,谁能在看到这串数字时,明白并解密这种密码呢?毫无疑问是几乎没有,尤其是只有这么六个数字的情况。我们总是觉得自己的密码很简单,然而即使是艾奈阿斯绳结这样看似简单的手法,怎么才能知道加密者使用的是这数以千万计的变化中的某种呢?尤其在当你只给出这么几个数字时。于是,一半以上的密码题目石沉大海……即使有着足够的明文,当面对着二进制转换、16位一段、艾奈阿斯绳结……有多少人能看出其中的密码特性,将其破解呢?显然,我们需要的是提示……密码只是游戏,我们享受的是破解的乐趣,密码的价值正在于被破解。这当然是与密码的本质相违背的,密码的本质是保密。但是,在电子计算机的飞速发展中,传统密码以毫无安全性可言,它的意义已经成为了一种娱乐,于是它的价值是被破解而不是不被破解。

第一次发帖,希望没人发过.
本主题帖为【历史主题】,仅楼主发布内容可以浏览。
| 楼主| 发表于 2010-6-29 15:48:12 | 显示全部楼层
中国古代秘密通信的手段,已有一些近于密码的雏形。宋曾公亮、丁度等编撰《武经总要》“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密本体制的特点。

1871年,由上海大北水线电报公司选用6899个汉字,代以四码数字,成为中国最初的商用明码本,同时也设计了由明码本改编为密本及进行加乱的方法。在此基础上,逐步发展为各种比较复杂的密码。
尚未登录
您需要登录后才可以回帖 登录 | 加入学院