找回密码
 人工审核注册

QQ登录

只需一步,快速开始

查看: 4995|回复: 9

[密码学] 密码 合集帖

[复制链接]

UID
726
经验
9428 点
B币
4322 个
原创
4 篇
创作值
0 点
分享值
0 分
推理积分
11 分
发表于 2010-5-10 09:40:22 | 显示全部楼层 |阅读模式

加入一起搜索真相

您需要 登录 才可以下载或查看,没有账号?人工审核注册

×
本帖最后由 ⊿轶舍人 于 2010-5-19 20:58 编辑

仿射密码破解方法


仿射密码简介:
仿射密码和移位密码一样, 也是一种替换密码. 不同的是, 移位密码中, 我们使用的是模n加; 而在下面的仿射密码中, 我们使用的上一节中介绍的模n乘. 在安全性方面, 仿射密码同移位密码一样, 都是极其差的, 不仅因为他们的原理简单, 更要命的是这两种替换密码没有隐藏明文的字频信息, 这很容易导致破解者轻易的攻破.


放射密码中的一些概念:

1) 明密文字母表为Z26
2) 秘匙 K = (a,b) ∈ Z26_ × Z26 . 其中Z26_ 表示小于26且与26互素(或叫互质)的正整数的集合,这点非常重要的.
3) 加密变换为 y = (ax + b) mod 26 ;

很简单?(呵呵, 先别急.) 我们先来引入一个定义.

大家知道, 好多东西都有逆, 大家读小学时都知道,两个数相乘乘机为1,则互为倒数, 其实是最简单的逆. 后来, 我们到了高中, 我们学习了逆函数; 到了大学, 我们学习线性代数, 知道两个矩阵的乘积为单位矩阵的话, 则这两个矩阵互为逆矩阵.
现在我跟大家介绍另一种逆. 叫模逆. 其实很好理解的, 如下:
若a,b两数的乘积对正整数n取模的结果为1. 则称a,b 互为另外一个的模逆.
比如:
3*7 = 21; 21 % 20 = 1 ; 所以3,7 互为 20 的 模逆.
9*3 = 27; 27 % 26 = 1 ; 所以9,3 互为 26 的 模逆.

如何标记?

若a,b互为n的模逆 , 即b 为a 的模n的逆元 , 则记 b 为 a-1mod n (这里没公式编辑器, a-1中的-1在右上角, 见谅了呵呵).

看了上面的定义, 我们知道:
只有当 a 与 n 互素的时候, a 才是有模逆的. 其他情况下是不存在模逆的, 比如 2 对26 就没有模逆. 这是个很简单的数学问题, 大家动下手, 画几笔就清楚了.我就不多罗嗦了.

[思考] 大家能快速的求出11对123的模逆吗? (放心,11和123是互素的.)

可能大家会这样想:

设其模逆为 b , 则 必定存在一个整数 t , 使得等式 11b = 123t + 1 成立.

我们再变化一下, 也即所求为 必须使得 (11b - 1) % 123 = 0 恒成立.

到了这里, 如果使用笔算对b从2开始依次递加穷举的话,将会非常辛苦, 若将123换成一个更大一点的数, 用笔算穷举更是不可能的.

聪明你的肯定想说, 写个程序算就行了啊. 不错, 写个程序帮我们穷举的确很棒, 充分发挥了计算机的作用.

但这里, 我介绍给大家另外一种巧妙的方法 ---- 扩展欧几里德变换:

123 = 1*123+ 0*11
11 = 0*123+ 1*11 |11
2 = 1*123+ (-11)*11 |5
1 = (-5)*123+ 56*11


聪明的你, 一定看出来了吧. 对! 我们将123和11都表示成 x * 123 + y * 11 的 格式, 然后相减, 在最右侧一栏写上每次减去的被减数的倍数. 依次进行, 知道减数变为1为止. 然后我们取第三列的最下面的一个数, 再对123 取模 即得11 对123的模逆.
对于这个变换, 不清楚的朋友,我劝你们最好动笔画几下. 那样比我在这里说的起作用的多.嘿嘿~~


这个算法的好处:
我们编写这个算法的程序去求任何模逆都是非常高效的, 它帮我们以及CPU都节省了不少时间.

为了加深理解, 来看一个例子:

[例子] :求 1211对13211的模逆 .

13211 1 0 //这一行的1和0是固定的.
1211 0 1 |10 //这一行0和1也是固定的, 后面的10是13211减掉的1211的倍数.意思为减掉10个1211.
1101 1 -10 |1 //第一个1为上一行的第二个1抄下来;-10 = 0 - 1*10 (上一行的算这一行的);后面的1依然为减掉的倍数.
110 -10 11 |10 //-10 为带抄下来, 11 = 1 - (-10) *1 , 10 为倍数.
1 -120 //很快就到1了, 这时的 -120 就是我们要的.

-120 % 13211= 13091 即为 1211 对13211 的模逆. 怎么样? 不错吧. 呵呵.

我们可以用如下一段小程序来完成模逆的计算:
int Moni(int a,int n)
{
int p=a,q=n, t;
int x = 0, y = 1, z = (int)q/p;
while(1 != p && 1 != q)
{
t = p;
p = q % p;
q = t;
t = y;
y = x - y*z;
x = t;
z = (int) q/p;
}
y = y%n;
if (y<0)
{
y += n;
}
return y;
}


[再来看仿射]

刚才费了这么大的劲, 介绍了模逆, 还是为了在给仿射密码的解密打地基.
我们看上面的放射密码的加密公式 : y = (ax + b) mod 26 .
根据简单的数论知识, 我们知道其解密变换为: x = a-1(y-b) mod 26 .(其中a-1中-1在右上角, 为a对26的模逆).
也即 x = a对26的模逆与(y-b)相乘后的积再对26取模, 最终结果即为解密后的内容.

下面我们来看一个实例:

[例子] 已知仿射密码中密文为JACKOZOO ,字母表为Z26, 秘匙 K = (11,7) , 试解密.

解: 先求11对26的模逆: 11-1mod26 = 19 .
故解密变换为: x = 19(y-7) mod 26 ;
由 JACKOZOO
---> 9 0 2 10 14 25 14 14
---> 12 23 9 5 3 4 3 3
---> M X J F D E D D

所以明文为: MXJFDEDD.


好了, 仿射密码的理论介绍就到这里.
对于全盘肯定或否定的判断,只要找出一反例即可判断。要证明它是正确的就要有充分的证据。

UID
726
经验
9428 点
B币
4322 个
原创
4 篇
创作值
0 点
分享值
0 分
推理积分
11 分
 楼主| 发表于 2010-2-21 22:32:46 | 显示全部楼层

由维吉尼亚密码说起

人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。它是由16世纪法国亨利三世王朝的布莱瑟·维吉尼亚发明的,其特点是将26个恺撒密表合成一个,见下表:

  A B C D E F G H I J K LM N O P Q R S T U V W X Y Z

  A -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

  B -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

  C-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

  D- 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

  E -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

  F -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

  G- 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

  H -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

  I- 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

  J -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

  K -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

  L -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

  M -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

  N -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

  O -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

  P -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

  Q -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

  R -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

  S -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

  T -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

  U -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

  V -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

  W -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

  X -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

  Y -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

  Z -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

  维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:

  TO BE OR NOT TO BE THAT IS THE QUESTION

  当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:

  密钥:RELAT IONSR ELATI ONSRE LATIO NSREL

  明文:TOBEO RNOTT OBETH ATIST HEQUE STION

  密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

  历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。

  公元16世纪晚期,想要获得更高的保密度的人获得了一种设计更加精细的密码表。

  法国外交家Blaise de Vigenère发明了一种方法来对同一条信息中的不同字母用不同的密码进行加密。这样,同样的E在一个位置可能被M所取代,而在另一个位置的E则有可能以K的面目出现。这样,就可以防止任何人利用频率分析法解密该条信息。

  维热纳尔密码表

  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

  A 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

  B 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

  C 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

  D 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

  E 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

  F 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

  G 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

  H 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

  I 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

  J 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

  K 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

  L 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

  M 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

  N 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

  O 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

  P 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

  Q 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

  R 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

  S 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

  T 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

  U 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

  V 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

  W 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

  X 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

  Y 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

  Z 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

  在维热纳尔(Vigenère)的密码中,发件人和收件人必须使用同一个关键词(或者同一文字章节),这个关键词或文字章节中的字母告诉他们怎么样才能前后改变字母的位置来获得该段信息中的每个字母的正确对应位置。比如如果关键字“BIG”被使用了,发件人将把信息按三个字母的顺序排列。第一个三字母单词的第一个字母将应当向前移动一个位置(因为B是排在A后面的字母),第二个字母需要向后移动8位(I是A后面第8个字母),而第三个字母需要向前移动6位(G是A后面第6个字母)。然后,文字就可以按下面的顺序来进行加密了:

  未加密文字:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER。(屠夫、面包师和蜡烛匠)。

  关键密钥:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB

  加密文字:UPK CCZDPKS BNF JGLMX BVJ UPK DITETKTBODS SBSKS

  如果知道“BIG”就是密钥,收件人就可以很容易地通过相应的位置改变字母位置,从而译出经过加密的文字。

  很多年以来,维热纳尔(Vigenère)密码都被认为是不可破解的,但查尔斯·巴贝奇(Charles Babbage),一个独立的英国富人在19世纪50年代向人们展示了事实并非如此。顺便提一句,这个人也因为其在计算机科学领域方面所进行的先锋性工作而被世人所熟悉。巴贝奇(Babbage)通过寻找重复的字母段破解了这个密码系统。当然,维热纳尔密码的优势在于这种密码被假定为它将不同位置的字母进行不同的加密。比如同一段文字中的“THE” 可能在前面表现为“UPK”,但在后面则被表现为“BNF”。同样,象“AKER”这样的字母也会被进行不同的加密。但是,第一个和第三个“THE”都会被编码为“UPK”。第一个“THE”中的“T”会用“B”来进行编码,而第三个“THE”中的“T”也同样是用“B”来编码。发生这种情况是因为第三个 “THE”是排在第一个“THE”后面第21个字母,而3字密钥BIG会在重复7次之后又回到了最开始。 在任何比密钥要长得多的加密信息中,都会不可避免地出现类似这样的重复。而一个解密者应该如何才能揭示加密文件的真正面目呢?比如,如果加密文字“UPK”出现了两次,中间隔着21个字母,那么他就可以推断出密钥的长度是21的整除数。或者换种说法,他可以推断出21是密钥的倍数。(约数或称除数是一个数字被除之后不会有余数。比如21的除数就是1、3、7和21。) 如果获得了足够多类似的线索,解密者就可以知道密钥的确切长度。一旦他知道了密钥长度,他就可以对加密信息进行日常频率分析。注意,数学在解密工作中总是放在首位的:解密者首先会计算出密钥的长度,这步工作甚至是在他要考虑密钥的具体内容是什么之前所要做的。

  巴贝奇的独具创意的技巧开创了一片密码术的新田地,并且将数学工具引入到了以前被认为专属于文字学的领域之中。即使一种编密码系统没有明确地使用数学,但其中隐藏的格式却通常需要以数学的方式进行整理。

  自从频率分析法出现后,单字母替换密码完全失去了效用。因此,密码编码者想方设法去编一种更强大的密码。一些编码者对单字母替换密码做了一些改动,如在编码过程中,加入一些特殊的字符,或者令一些字母不代表另一个字母,而是代表一种程式,譬如是代表空格,代表删去前一个字母,代表换行等。但这一切起的作用并不大,聪明的破译师仍然能在里面找到许许多多破译密码的线索。直到有一天,佛罗伦萨的里昂巴蒂斯特·阿尔伯提提出了一种多字母替换密码,即是用两个或两个以上的密码表交替使用来进行加密,如:

  明码表 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 Q W E R T Y U I O P A S D F G H K J L Z X C V B N M

  密码表2 E K P R J B D N C V O U H T Y W Z X M L A S F I G Q

  第一个密码表加密第一个字母,第二个密码表加密第二个字母,第一个密码表又加密第三个字母,不断地重复......那么:

  明文 F O R E S T

  密文 Y Y J J L L

  这样,按原来的方法进行频率分析就没有什么作用了。这只是两个密码表时的情况,如果用三个,四个或以上的密码表后,破译就显得非常非常困难。即使是这样,阿尔伯提未能把他的理念发展成一个完整的系统。这个任务当然由后人完成了。经过几个人的努力,最后,维热纳尔终于将其完善了。他编出了一个系统而有效的密码。那就是维热纳尔密码,其主要构成是维热纳尔方阵:

  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个密码表,每个表相对前一个发生一次移位。如果只用其中某一个进行加密,那么只是简单的恺撒移位密码。但用方阵中不同的行加密不同的字母,它就是一种强大的密码了。加密者可用第7行来加密第一个字母,再用第25行来加密第二个字母,然后根据第8行来加密第三个字母等。

  现在来试一下,就用关键词FOREST来加密Better to do well than to say well.

  关键词 F O R E S T F O R E S T F O R E S T F O R E S T F O R

  明 文 b e t t e r t o d o w e l l t h a n t o s a y w e l l

  密 文 G S K X W K Y C U S O X Q Z K L S G Y C J E Q P J Z C

  (看第5行,F开头,明文是b,要用G来加密;第14行,O开头,明文是e,要用S来加密,如此类推......)

  维热纳尔密码既克服了频率分析,又具有数目众多的密钥。发送者和接收者可使用字典里任一个单词,或单词组合,或虚构的词作为关键词。它提供了很好的安全保障,但它的复杂性,却令其等到19世纪才流行起来。不过,也是在19世纪,查尔斯·巴比奇---一个性情古怪的天才将其破译了。让我们来看看解密的过程:

  首先,破译的第一步就是寻找密文中出现超过一次的字母。有两种情况可能导致这样的重复发生。最有可能的是明文中同样的字母序列使用密钥中同样的字母加了密;另外还有一种较小的可能性是明文中两个不同的字母序列通过密钥中不同部分加了密,碰巧都变成了密文中完全一样的序列。假如我们限制在长序列的范围内,那么第二种可能性可以很大程序地被排除,这种情况下,我们多数考虑到4个字母或4个以上的重复序列。

  破译的第二步是确定密钥的长度,又看看这一段先:

  关键词 F O R E S T F O R E S T F O R E S T F O R E S T F O R

  明 文 b e t t e r t o d o w e l l t h a n t o s a y w e l l

  密 文 G S K X W K Y C U S O X Q Z K L S G Y C J E Q P J Z C

  第一个YC出现后到第二个YC的结尾一共有12个字母(U S O X Q Z K L S G Y C)

  那么密钥的长度应是12的约数---1,2,3,4,6,12之中的一个(其中,1可排除)。

  如下面的密文:

  I S W Z P N Q C K M Y Y Y J K A Y Y E Z F F S W E E S S P G Z X Q A H F

  I S W Z P N Q C K M T V Y J O A C V E H A E S A Z R L T P Q I Z M X O T

  Q S W M C V U D S I J G G D E U W A Z R S F X W I L K U E J Q L D A C B

  G D L Y J X M Y L M D Q K Z M P L D I L Q E M W F S W D P A Z E Z Q N W

  D Y W D Z X F S A E E A Z J D U E L V P T M C E K W S E E F U R Z F S W

  D P X A C Q A F K M X W A W V E Z F S D B G D L A Y U Q X G D P E K W S

  E E F U R Z F S W D P O U E Z K Z M Y L Q N P Q Q D E M J T Q Y G U V A

  Z O G R W A W P V U E Q A F J Q J G G C O M J Z A H Q A F K T J D K A D

  M N W P J G G C W K P K A Y E Q Z Z P T V K Z M Q G W D V F A H L T L L

  U S S P X A Z P G Z J G G O S D W A Z R K A E Z Q C W K Z M M C W I T L

  T E Z M E D A Z C A Y Q A F J R L U Q L K U Q Q A F J Q Y W H P J T F J

  F L K U Q Q A F J Q Y W H P J P Z O Z D Z M W D U M W F S W A Y W R Z J

  K Z M I S G B T F O S E E J G G D G R E D K M M F D M D P A R Q J A H F

  U D K T Z O Z E Z Q Y A I T D X V F A H L T L L K Z M M C W Z Z V D P S

  Y P J

  在里面重复序列有I S W Z P N Q C K M,B G D L,S E E F U R Z F S W D P,

  J G G C,L K U Q Q A F J Q Y W H P J,V F A H L T L L等;

  如果每个重复间隔都能被3整除,关键词应该有三个字母。

  下一步,仍旧是频率分析,不过,因为关键词有三个字母,我们应分为三组进行。把第1, 4,7,10,13......个字母分为一组,称之为L1,把第2,5,8,11,14......个字母又分为一组,称之为L2,余下的归另一组,称之为L3。那么每一组有169个字母。

  现在先做一个标准频率分布表:

  用169乘以各个字母的标准百分比,如字母A,169*8.2%=14。

  那么由标准频率:

  A:8.2 N:6.7

  B:1.5 O:7.5

  C:2.8 P:1.9

  D:4.3 Q:0.1

  E:12.7 R:6.0

  F:2.2 S:6.3

  G:2.0 T:9.1

  H:6.1 U:2.8

  I:7.0 V:1.0

  J:0.2 W:2.4

  K:0.8 X:0.2

  L:4.0 Y:2.0

  M:2.4 Z:0.1

  得到标准个数:

  A:14 N:11

  B:3 O:13

  C:5 P:3

  D:7 Q:0

  E:21 R:10

  F:4 S:11

  G:3 T:15

  H:10 U:5

  I:12 V:2

  J:0 W:4

  K:1 X:0

  L:7 Y:3

  M:4 Z:0

  然后,统计L1的169个字母出现的次数,有:

  A:22 N:1

  B:1 O:1

  C:0 P:5

  D:10 Q:16

  E:10 R:5

  F:9 S:2

  G:7 T:7

  H:2 U:14

  I:9 V:1

  J:0 W:1

  K:11 X:2

  L:0 Y:5

  M:14 Z:14

  又作出L1的图表(histogram),与标准图表对比一下。标准频率和L1的频率都有峰值,平稳期和低谷。它们之间的区别在于相互错开了一些位置,比较两者应该可以寻找出最显著的特征。例如,看L1图表中A-F这一段,A的峰值过后是低谷,特别是C没有出现,然后是一段平稳期,这与标准频率中的O-T这一段相像;标准频率中,O的前面I-N这一段和L1中U-Z一段也大致吻合;又看看,L1中,J和L的缺失应该就是标准频率中X和Z的缺失,M-Q这一段应就是标准频率中A-E这一段。这就暗示着L1的密码表是由M,N,O,P......开始的。把L1的图表向左平移12个单位再与标准频率对比,整体来说差不多。由此可知,关键词的第一个字母是M。(注意,一些误差是在所难免的,如K替换Y,两图表比较起来好像不很符合,但整体来说是差不多的,我们就可忽略过去。)

  继续下来,统计L2中169个字母出现的次数,可以确定关键词的第二个字母是L。

  最后,用同样的方法可确定关键词的第三个字母是S。

  至此,得到整个关键词是MLS。

  再用维热纳尔方阵将密文翻译过来,得到明文:

  Whenever sang my songs

  On the stage on my own

  Whenever said my words

  Wishing they would be heard

  I saw you smiling at me

  Was it real or just my fantasy

  You'd always be there in the corner

  Of this tiny little bar

  My last night here for you

  Same old songs just once more

  My last night here with you

  Maybe yes maybe no

  I kind of liked it you're your way

  How you shyly placed your eyes on me

  Oh did you ever know

  That I had mine on you

  Darling so there you are

  With that look on your face

  As if you're never hurt

  As if you're never down

  Shall I be the one for you

  Who pinches you softly but sure

  If frown is shown then

  I will know that you are no dreamer

  现在再说说一些技巧:

  1.A-E段,U-Z段以及O-T段的特征比较显著,可先从这些方面着手;

  2.如果一些字符串出现的频率较多,不妨猜猜,特别要注意THE,-ING等的出现;

  3.要留意那些图表中没有出现的字母,很多时候也会是突破点,如X与Z的空缺;

  4.图表最好还是做一下,毕竟比较直观,好看
回复 反对

使用道具 举报

推理玩彤、

UID
740
经验
6310 点
B币
382 个
原创
2 篇
创作值
1 点
分享值
0 分
推理积分
0 分
发表于 2010-2-22 11:03:17 | 显示全部楼层
呵呵,好长啊~~~~~~~
愿有一天、我能在你面前笑得不分朝夕。
回复 反对

使用道具 举报

工藤家の

UID
584
经验
16088 点
B币
7962 个
原创
2 篇
创作值
0 点
分享值
0 分
推理积分
4 分
发表于 2010-2-22 11:10:27 | 显示全部楼层
啊咧...这个应该不难啊..找到突破口就OK
从此时间停在年少时。
回复 反对

使用道具 举报

UID
578
经验
263 点
B币
211 个
原创
0 篇
创作值
0 点
分享值
0 分
推理积分
0 分
发表于 2010-2-22 16:54:38 | 显示全部楼层 来自 辽宁省盘锦市 华宇宽带
哇~~~好多啊!
看来要恶补一下才好。。。
每一次接触 都会留下痕迹 -
回复 反对

使用道具 举报

(*^__^*) 嘻嘻……

UID
766
经验
357 点
B币
270 个
原创
0 篇
创作值
0 点
分享值
1 分
推理积分
5 分
发表于 2010-2-22 17:44:07 | 显示全部楼层 来自 江苏省南通市如皋市 电信
还蛮复杂的。。。
让人流血的人,势必会流血。
回复 反对

使用道具 举报

UID
726
经验
9428 点
B币
4322 个
原创
4 篇
创作值
0 点
分享值
0 分
推理积分
11 分
 楼主| 发表于 2010-3-11 13:57:19 | 显示全部楼层
呃 像昔音说的 找到突破口就不难
回复 反对

使用道具 举报

UID
726
经验
9428 点
B币
4322 个
原创
4 篇
创作值
0 点
分享值
0 分
推理积分
11 分
 楼主| 发表于 2010-5-10 09:58:34 | 显示全部楼层

希尔密码及其破解方法

本帖最后由 ⊿轶舍人 于 2010-5-19 20:59 编辑

  希尔密码(Hill Password)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。

  每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。

  注意用作加密的矩阵(即密匙)在<math>\mathbb_^n</math>必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。

  三、Hill cipher(希尔密码)

  Hill cipher是1929年提出的一种密码体制。

  设d是一正整数,定义 。Hill cipher的主要思想是利用线性变换方法,不同的是这种变换是在 上运算。

  例如:设d=2,每个明文单元使用 来表示,同样密文单元用 表示,具

  体的加密中, 将被表示为 的线性组合。

  如:

  利用线性代数的知识,可得

  这个运算在 上进行,即mod26,密钥K一般取一个m*m的矩阵,记为 。对明文 ,以 ,则加密算法为:

  也可表示成 。

  例:对明文attack,利用密钥 进行加密。

  第一步:将明文分为两两一组:at ta ck

  第二步:计算:

  同理,

  因此,密文为VBDEKQ

  解密算法:因为 ,由于K必须可逆,即 ,所以 ,如何计算K的逆,有两种算法:一种是利用伴随矩阵,另一种是利用初等变换,无论采用何种算法都可以。

  例;设 ,求K的逆。

  解法一、因为 ,因此K的逆存在。显然在mod26下 的余为1,即337/26=1

  或337=x mod26,显然x=1。所以

  ,即:

  注意: , , 在mod26下是7。由此我们有在 在mod26下的逆分别是: , , , , 。

  例:密文为:YIFZMA 设密钥为 ,找出它的明文。

  解: ,所以

  因此明文为cureka。

  例子:

  原文:Mr Hill made this code.

  abcdefghijklmnopqrstuvwxyz

  01234567890123456789012345

  _______m___r___h___i___l___l___m___a___d___e___t___h___i___s___c___o___d___e

  ______12__17___7___8__11__11__12___0___3___4__19___7___8__18___2__14___3___4

  m_12_144_204__88__96_132_132_144___0__36__48_228__98__96_216__24_168__36__48

  r_17_204_289_119_136_187_187_204___0__51__68_323_119_136_306__34_238__51__68

  h__7__88_119__49__56__77__77__84___0__21__28_133__49__49_126__14__98__21__28

  i__8__96_136__56__64__88__88__96___0__24__32_154__56__56_144__16_112__24__32

  l_11_132_187__77__88_121_121_132___0__33__44_209__77__88_198__22_154__33__44

  l_11_132_187__77__88_121_121_132___0__33__44_209__77__88_198__22_154__33__44

  m_12_144_204__84__96_132_132_144___0__36__48_228__84__96_216__24_168__36__48

  a__0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0___0

  d__3__36__51__21__24__33__33__36___0___9__12__57__21__24__54___6__52___9__12

  e__4__48__68__28__32__44__44__48___0__12__16__76__28__32__72___8__56__12__16

  t_19_228_323_133_152_209_209_228___0__57__76_361_133_152_342__38_266__57__76

  h__7__98_119__49__56__77__77__98___0__21__28_133__49__56_126__14__98__21__28

  i__8__96_136__56__64__88__88__96___0__24__32_152__56__56_144__16_112__24__32

  s_18_216_306_126_144_198_198_216___0__54__72_342_126_144_324__36_252__54__72

  c__2__24__34__14__16__22__22__24___0___6___8__38__14__16__36___4__28___6___8

  o_14_168_238__98_112_154_154_168___0__42__56_266__98_112_252__28_169__42__56

  d__3__36__51__21__24__33__33__36___0___9__12__57__21__24__54___6__52___9__12

  e__4__48__68__28__32__44__44__48___0__12__16__76__28__32__72___8__56__12__16

  用其中的一行作为密文既可

  例子:

  密文:l 11 242 44 121 22 154 132 44 209 154 154 220 187 22 121 220 11

  解答:全部除以11,按a=0 …… z=25,列出字母 WELCOME TO OUR CLUB
对于全盘肯定或否定的判断,只要找出一反例即可判断。要证明它是正确的就要有充分的证据。
回复 反对

使用道具 举报

UID
928
经验
5324 点
B币
5273 个
原创
0 篇
创作值
0 点
分享值
0 分
推理积分
0 分
发表于 2010-7-19 21:19:20 | 显示全部楼层 来自 安徽省滁州市 联通
呵呵好多,真够学习了,院长,为什么不把密码单独设一个区
设想多么重要啊!对已发生的事进行设想,并按设想去办,也许就能找到结果。
回复 反对

使用道具 举报

UID
482
经验
2329 点
B币
1259 个
原创
1 篇
创作值
0 点
分享值
0 分
推理积分
7 分
发表于 2010-7-20 07:10:51 | 显示全部楼层 来自 山东省 BGP大带宽业务机柜段
哇咔咔,杀了我吧~~~
曾经看过一本密码破解术,看了一遍就学会了凯撒.栅栏密码
徒然饮落醉卧……徒然如梦如真……
回复 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 人工审核注册

本版积分规则

Archiver|微推理|小黑屋|Baker Street推理缘地|推理书库

GMT+8, 2024-5-4 06:55 , Processed in 0.187051 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表