首页
社区
课程
招聘
[原创]简单的密码分析之:“E”还是“E-Nough”
发表于: 2005-4-10 00:50 5042

[原创]简单的密码分析之:“E”还是“E-Nough”

2005-4-10 00:50
5042
“E”还是“E-Nough”

原文:声声慢

完整的文章在上传的.RAR文件里,包括javascrip,请在您的阅览器里设置允许javascrip,否则看不了.
附件:e.rar
或在这:
b9cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4G2N6$3S2S2N6q4)9J5k6h3S2G2L8r3I4G2M7$3W2@1k6g2)9J5k6h3y4G2L8g2)9J5c8X3g2Q4x3V1k6W2i4K6u0W2K9s2c8E0

前言:
密码学,密码分析学,解密...在这些看来似乎很玄乎的字眼里隐藏着一些简单而迷人的概念.这篇文章是写给像我一样对密码学好奇,却又初入门的人...尽管我们不是密码学家也不是数学家,只要我们有兴趣,我们也有权去了解.

今天我们要来看看简单的加密和密码分析.我们尽量不使用电脑,而用一张纸一根笔.

隐藏术:
首先我想说说古时候人们是怎样传递他们的小秘密的...

有的人使用神奇的隐形墨水(用柠檬汁,洋葱汁,牛奶汁制成)用羽毛写在纸上,干了后就什么也看不见了,收信人只要在蜡烛下照一下,汁迹氧化了,就重新能看见字迹.

有的人把信使的头发剃光,把信写在他头上,等信使把头发长长,再派他去送信...不过这其中等的时间很长...还有,对方得剃掉信使的头发才能阅读来信.

在英国维多利亚时期,恋人们是不允许互相示爱的,他们要是敢通信,也会被他们的父母亲把信扣下来,并且拆看.于是,这些恋人们就利用利用报纸上的启事栏互相交流加密的信息或绵绵情语.这些启事栏在英国叫agony columns,吸引了不少的密码分析家,他们以研究这些加了密的情话为乐,或者故意写一些类似的密文去挑拨对这也有兴趣的密码界的同事们.

这些都属于题外话,因为以上的只能算作隐藏术,而非密码学.

移位和替换:
为什么要研究给文字加密,而现代最流行的强大的加密方法都是建立在对数字加密的基础上的呢? 是因为能够学到一点密码基础知识是件很棒的事情!还有,那些秘密警察是怎样交换信息,当他们没有电脑的时候?!他们需要利用对文字进行加密的快速方法,虽然这是在很多世纪前发明的,可到今天还是很有用呢!

一个密码是由两方提前约定的,将一个词或一组词和另一个词或另一组词合起来,代表别的意思,好象用 "your hairs are beautiful" 来代替 "kill this stupid woman"这是很简单的方法,美中不足的是要把密码谨慎的记在脑中.我们也可以将信息藏在很"清白"的文字里,只将其中一些字词从句中提取出来,(它们的标记是它们在句中的位置,它们的书写方法,一个象征标点的符号...)这些方法是无限的,唯一有限的是我们的想象力!

言归正转,我们利用移位和替换把一段有意义的文字变得含义不清...
举个简单的例子,cracker这个词,我们把每个字母移3位(c就成了g, r就成了u ,a就成了d...)那么cracke这个词r就成了guanhu,这就是凯撒算法,世界上最简单的加密方式,也是最古老的方法之一.我们也可以把字母移4位,就成了hveoiv.为了给这个词解密,就必须知道算法,也就是秘匙,在这里,这种算法是极其简单的,因为我们知道算法就是在字母表里移位,那么只须尝试25种可能性就可以了.要是我们想增加解密的难度,也可以加上字母调换位置的方法:好象cracker这个词,我们按顺序把两个字母中的第一个字母拿走(c,a,k,r),然后我们重来把两个字母中的一个拿走,这次是拿第二个字母(r,c,e),我们就得到cakrrce.

一但我们手头有一段密文,我们该如何去分析它,把它变成明文呢?要是我们知道了密匙当然是容易的事情,可是要是不知道呢?我们管这叫密码分析.为了解开一段密文,需要有些技巧,有时是运气和耐心.每个细节都要被留意的,小小的细节往往是揭开迷底的关键.二战期间,Rejewski就是利用德国人每次都把Enigma密匙的开头几个字母重复两次这个细节来进行攻击的.(为了避免错误,他们总是把开头字母重复两次,如REG=REGREG).首先我们要弄清楚是哪种算法,简单的算法往往有些专门的方法,可是要是对方使用了自己创造出的方法,就得分析好些信息,试着找出其中一些相同点,重复的字母或字母组,及分析字母的出现频率...可能很难,可是您要是知道其中有哪个词有可能出现,这有点帮助.

要是您清楚了算法,就可以开始找漏洞进行攻击了那些人们手动加密的算法,都能利用电脑算出来,可最好对数学比较了解.最好的算法是那些能被公众知道,而无伤安全的算法,也就是利用电脑的现代算法,如:RSA,DES,AES等,它们没有任何漏洞,它们的安全是寄任于密匙,要保持密匙的安全性,在没有密匙的情况下,就得尝试所有可能的的匙(也就是穷举了),密匙往往是很长的,所以穷举起来有的时候要十多年或者更多...现在您该明白为什么测试25种可能性的方法很容易了吧?!

字母E:
我们来个简单的例子,当我们面对以下这样一段没有意思的文字,该怎么办呢?: QIIXQIXSQSVVSARMKLXEXWMBFILMRHXLIXVII

9世纪时,阿拉伯的密码学家al_kindi总结出来的一种分析字母出现频率的方法,要知道,在法文,英文,德文,西班牙文中,字母E出现的频率比其它字母都高.
这里我列出英文和法文前6个出现最多的字母.

英文:
A 8.08%
E 12.56%
I 7.24%
N 7.38%
O 7.47%
T 9.15%

法文:
A 8.40%
E 17.26%
I 7.34%
N 7.13%
S 8.08%
T 7.07%

西班牙文:
A 12.30%
E 13.69%
I 7.78%
N 7.41%
O 8.68%
S 6.97%

德文:
A 6.28%
E 16.92%
I 7.42%
N 10.20%
R 7.44%
S 6.62%

是字母E出现的最多,那么是不是该看看我们密文中哪个字母出现得最多呢? 您猜对啦!我们可以看到,在这段密文中,字母I出现的频率最高,随后是字母X.我们可以假设这段文字是英文的,I就是E.那么从E转换成I,字母移了4位,我的方法很简单,我喜欢拿一张纸,一根笔,趴在地上慢慢的一个一个的把它们数着移回来.当然,这是小孩子过家家的玩法,有经验的朋友可以写出程序把问题变的更简单.
我们也可以套用以下的公式: k=p+c-26n ( p:明文字母在字母表中的排列位置. k:密文字母在字母表中的排列位置,在1到26之间. n必须是个整数,0或者1. )
例如:对位移了4位的算法,c=4, 字母M(p=13)变成Q(k=17), p+c=13+4=17, n=0所以没问题. 但是,字母y(p=25), 就变成k=25+4=29!我们超出26字的字母表了,要将之变成n=1,我们得到:k=29-26=3, 也就是字母c.
为了给密文解密,我们要把公式反过来:p=k-c+26n

自从有了联网,“E"字越来越流行,很多的美国公司在举行商业营销活动时动辄就冠以“E"打头的单词,好让活动听起来与电子商务有些关,日前企业应用程序工具厂商Persistence软件公司则发起了一场反对这种风气的活动. Persistence软件制作了一个名为“E-Nough”(够了)的网站(e81K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8W2M7Y4y4A6M7%4c8W2L8X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3k6g2)9J5k6r3&6G2N6h3N6Z5i4K6t1&6i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4@1t1^5i4K6S2o6i4@1f1$3i4K6W2o6i4K6W2n7i4@1f1$3i4K6V1@1i4@1t1$3i4@1f1&6i4K6W2n7i4K6R3$3i4@1f1#2i4K6R3^5i4@1t1H3i4@1f1$3i4K6W2o6i4K6R3H3i4@1f1%4i4@1t1K6i4K6W2r3i4@1f1%4i4@1t1K6i4K6V1#2i4@1f1%4i4K6W2m8i4K6R3@1"E"的滥用者.

虽然E是在许多西方语言中出现频率最高的字母,我还是要提醒您,在现代文学界中,也有故意玩弄小把戏的作家,其中我很喜欢的一位法国前卫作家(1936-1982)乔治.佩来克(Georges perec)在《消失》这篇小说中,居然没有使用到一个字母E!

好了,现在是有奖游戏,现在请告诉我,以下密文说了些什么?
VDLGW KHIRA PHQKD YHQRP RUHWL PHWRX QGHUV WDQGD QBWKL QJWKH BEXBW KLQJV DOOUH DGBPD GHDWW KHVKR SVEXW WKHUH LVQRV KRSDQ BZKHU HZKHU HRQHF DQEXB IULHQ GVKLS DQGVR PHQKD YHQRI ULHQG VDQBP RUH

当然,密码分析方法还有很多,下次再谈 .

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
2
学习!

上次跟我们老大学了个凯撒 嘿嘿
2005-4-10 01:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
密钥是5个字母吧?
2005-4-15 12:16
0
雪    币: 212
活跃值: (105)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
不对啊!是最简单的凯撒,你可以试用我的文章里的字母频率的分析看看,然后再慢慢移,努力噢,真的有奖!
你要找出来了,留下你的MAIL,我奖你一本小说的电子书.
2005-4-17 06:24
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
我不懂得英文,根据你网页上的字母频率分析来看,H出现的频率最高,以H为主,和E对应前3位(E = H - 3), 故解密只须将所有字母向后移动3位。解出了如下数据,因我不懂英文,不知到解的对不对:
#include <stdio.h>
#include <windows.h>

int main () {
CHAR ss[200] = "VDLGWKHIRAPHQKDYHQRPRUHWLPHWRXQGHUVWDQGDQBWKLQJWKHBEXBWKLQJVDOOUHDGBPDGHDWWKHVKRSVEXWWKHUHLVQRVKRSDQBZKHUHZKHUHRQHFDQEXBIULHQGVKLSDQGVRPHQKDYHQRIULHQGVDQBPRUH";
int i,len = 0;
len = strlen(ss);
for (i=0; i<len; i++)
{
        if (ss[i] <= 'C') ss[i] += 26;
        ss[i] = ss[i] - 3;
}
        printf("%s\n",ss);
        return 0;
}
SAIDT HEFOX MENHA VENOM ORETI METOU NDERS TANDA NYTHI NGTHE YBUYT HINGS ALLRE ADYMA DEATT HESHO PSBUT THERE ISNOS HOPAN YWHER EWHER EONEC ANBUY FRIEN DSHIP ANDSO MENHA VENOF RIEND SANYM ORE
2005-4-17 10:12
0
雪    币: 212
活跃值: (105)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
答案对了.

said the fox. "Men have no more time to understand anything. They buy things all ready made at the shops. But there is no shop anywhere where one can buy friendship, and so men have no friends any more.

译文:  
狐狸说,“人不会再有时间去了解任何东西的。他们总是到商人那里去购买现成的东西。因为世界上还没有购买朋友的商店,所以人也就没有朋友。

恩...奖品有几个选择,不过其中有几个是英文的电子小说...
好吧,我把它们列出来,你自己挑选:
1.DanBrown.Angels&Dem
2.DanBrown.DeceptionPointons
3.DanBrown.DigitalFortress
4.DanBrown.TheDaVinciCode
5.童话小王子的电子书,包括中文,英文,法文版.( 也就是本游戏的明文出处.)

前4个是英文的小说,你说了看不懂的...那只剩下第5个了...
2005-4-17 23:54
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
7
看来只好选第五本了,嗯,不错,看看也好。
2005-4-18 00:27
0
雪    币: 212
活跃值: (105)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
好了,奖品寄出.
2005-4-18 00:51
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
9
OK,已收到,这么晚了还没睡?ssm
2005-4-18 01:03
0
游客
登录 | 注册 方可回帖
返回