✅ 操作成功!

密码学

发布时间:2024-03-04 作者:admin 来源:讲座

2024年3月4日发(作者:)

密码学

密码学英文是Cryptography。

源自希腊语kryptós(隐藏的)和gráphein(书写)。

是研究如何隐密地传递信息的学科。

现代的密码学是一般被认为是数学和计算机科学的分支。

在信息论里也有涉及。

密码学的首要目的是隐藏讯息的涵义,并不是隐藏讯息的存在。

密码学也促进了计算机科学。

特别是在於电脑与网路安全技术的发展。

先介绍几个术语:

1.加密(encryption)算法指将普通信息(明文,plaintext)转换成难以理解的资料(密文,ciphertext)的过程。

与之相反的是解密(decryption)算法。

两者统称加解密。

加解密包括两部分:算法和密钥。

密钥是一个加解密算法的秘密参数,通常只通讯者拥有。

2.密码协议(cryptographic protocol):

指使用密码技术的通信协议(communication protocol)。

加解密演算法和密码协议是密码学研究的两大课题。

经典密码学

近代以前的密码学。

只考虑信息的机密性(confidentiality)。

西方世界的最早的起源可以追述到秘密书信。

希罗多德的《历史》中就记载过。

介绍一下最古典的两个加密技巧:

1.移位式(Transposition cipher):将字母顺序重新排列。

例如Dave is killer变成Adev si likrel

2.替代式(substitution cipher):有系统地将一组字母换成其他字母或符号。

例如fly at once变成gmz bu podf(每个字母用下一个字母取代)。

凯撒密码是最经典的替代法,据传由古罗马帝国的皇帝凯撒发明。

用在与远方将领的通讯上,每个字母被往后位移三格字母所取代。

下面讲一下密码在近代以前的种种记载:

早期基督徒使用密码学模糊他们写作的部份观点以避免遭受迫害。

666或部分更早期的手稿上的616是新约基督经启示录所指的野兽的数字

常用来暗指专迫害基督徒的古罗马皇帝尼禄(Nero)。

古印度《爱经》(少儿勿读)中也提及爱侣可利用密码来通信。

还有隐写术,希罗多德记载将讯息刺青在奴隶的头皮上

中国兵书《六韬.龙韬》也记载过密码学。

原文奉上:

太公曰:「主与将,有阴符,凡八等。有大胜克敌之符,长一尺。破军擒将之符,长九寸。降城得邑之符,长八寸。却敌报远之符,长七寸。警众坚守之符,长六寸。请粮益兵之符,长五寸。败军亡将之符,长四寸。失利亡士之符,长三寸。诸奉使行符,稽留,若符事闻,泄告者,皆诛之。八符者,主将秘闻,所以阴通言语,不泄中外相知之术。敌虽圣智,莫之能识。」

武王问太公曰:「… 符不能明;相去辽远,言语不通。为之奈何?」

太公曰:「诸有阴事大虑,当用书,不用符。主以书遗将,将以书问主。书皆一合而再离,三发而一知。再离者,分书为三部。三发而一知者,言三人,人操一分,相参而不相知情也。此谓阴书。敌虽圣智,莫之能识。」

古文不好的请自行撞墙

姜太公提到的阴符是以八等长度的符来表达不同的消息和指令。

可算是密码学中的替代法(en:substitution)。

阴书则运用了移位法,把书一分为三,分三人传递。

要把三份书重新拼合才能获得还原的资讯。

鉴于吧里XE的孩子比较多,我详细讲一下那个《爱经》里的秘密书信:

书中第45项是秘密书信 (en:mlecchita-vikalpa)

用以帮助妇女隐瞒她们与爱郞之间的关系。

其中一种方法是把字母随意配对互换,如套用在罗马字母中,可有得出下表:

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

经典加密法产生的密码文以现代观点其实很容易被破解。

津帝便提及到如果要破解加密资讯,可在一篇至少一页长的文章中数算出每个字母出现的频率,在加密信件中也数算出每个符号的频率,然后互相对换,这是频率分析的前身,此后几乎所有此类的密码都马上被破解。

但经典密码学现在仍未消失,经常出现在谜语之中。这种分析法除了被用在破解密码法外,也常用於考古学上。在破解古埃及象形文字时便运用了这种解密法。

nero=666这个。

首先要说一下希伯来字母代码。

英语是Gematria,是一种基于希伯来语及希伯来字母的数秘术(numerology),将希伯来字母与数字相互替换,是卡巴拉派用来解经的方式之一。

而尼禄的全名是Nero Caesar,和希伯来字母对应:

希伯来字母代码中,每个字母对应一定的数量,对应关系如下:

1 Aleph א

2 Bet ב

3 Gimel ג

4 Dalet ד

5 He ה

6 vav ו

7 Zayin ז

8 Het ח

9 Tet ט

10 Yod י

20 or 500 Kaph כ, ך

30 Lamed ל

40 or 600 Mem מ, ם

50 or 700 Nun נ, ן

60 Samech ס

70 Ayin ע

80 or 800 Pe פ, ף

90 or 900 Tsadi צ, ץ

100 kuf ק

200 Resh ר

300 Shin ש

400 Tav ת

所以nero的全名用希伯来代码表示出来,再把对应的数值相加,结果就是666:

简单说来解释这么回事

中世纪至第二次世界大战这段时间的发展:

阿伯提约在1467年发明了多字元加密法(polyalphabetic cipher)。

他的创新在于对讯息的不同部分使用不同的代码。

多字元加密法最典型的例子是维琼内尔加密法(Vigenere cipher)

这种方法中加密重复使用到一个关键字(key word)

用哪个字母取代端视轮替到关键字的哪个字母而定。

尽管如此,多字元加密法仍然受到频率分析法的部分危害。

不过这直到十九世纪中期才被巴贝奇(Charles Babbage)发现。

著名的例子如中世纪苏格兰的玛丽女王、第一次世界大战德国的齐默尔曼电报(Zimmerman

Telegram)和第二次世界大战的「谜」(Enigma)。

安东尼和几个同党在密谋营救玛丽,并计划行刺伊莉莎白女王。

他们的信件被转成密码,并藏在啤酒桶的木塞以掩人耳目。

但却被英格兰大臣Walsingham的从中截获。

并由Philip van Marnix破解信件。

教训是由于脆弱的加密法会制造虚假的安全错觉。

安东尼对他们的通讯方式太过有信心,令他的加密方法过於简单,轻易被敌人破解。

齐默尔曼电报:

1914年德国的马格德堡巡洋舰在芬兰湾搁浅。

搜出多份德国的文件及两本电码本被送往英国的Room 40进行密码分析。

同年2月23日,密电内容揭开了。

德国将在1917年2月1日开始“无限制潜艇战”。

密电内容揭开后,美国在4月16日向德国宣战。

ENIGMA,恩尼格玛密码机:

德国汲取一战的教训,发展出以机械代替人手的加密方法。

Arthur Scherbius发明了“谜”。

主要由键盘、编码器和灯板组成。

成为德国在二次大战的重要工具。

“谜”一度难倒了Room 40,

直到波兰方Marian Rejewski解译,用了一年时间编纂目录。

并在1930年代制造了bomba,渐渐掌握了解它的技术。

1938年德国加强了“谜”的安全性,波兰失去情报。

“谜”也是希特勒(Hitler)闪电战略的核心。

为了破解,40号房间除了原有的语言和人文学家,还加入了数学家和科学家,后来更成立了Government code and Cipher School,5年内人数增至7000人。

1940至1942年是加密和解密的拉锯战,成功的解码提供了很多宝贵的情报。

但“谜”却并未被完全破解,加上网络很多,令德国一直在大西洋战役中占上风。

最后英国在在德国潜艇上俘获“谜”的密码簿。

才算真正将其破解。

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。

一般来说见到一堆字母没有空格,就应该想一想是不是栅栏。

比较常见的是2栏的棚栏密码。

比如明文:THERE IS A CIPHER

去掉空格后变为:THEREISACIPHER

两个一组,得到:TH ER EI SA CI PH ER

先取出第一个字母:TEESCPE

再取出第二个字母:HRIAIHR

连在一起就是:TEESCPEHRIAIHR

这样就得到我们需要的密码了!

而解密的时候,我们先把密文从中间分开,变为两行:

T E E S C P E

H R I A I H R

再按上下上下的顺序组合起来:

THEREISACIPHER

分出空格,就可以得到原文了:

THERE IS A CIPHER

不把密码作出2栏,比如:

明文:THERE IS A CIPHER

七个一组:THEREIS ACIPHER

抽取字母:TA HC EI RP EH IE SR

组合得到密码:TAHCEIRPEHIESR

那么这时候就无法再按照2栏的方法来解了...

不过棚栏密码本身有一个潜规则,就是组成棚栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)

这样,我们可以通过分析密码的字母数来解出密码...

比如:TAHCEIRPEHIESR

一共有14个字母,可能是2栏或者7栏...

尝试2栏 T A H C E I R

P E H I E S R

TPAEHHCIEEISRR

失败

尝试7栏

T A

H C

E I

R P

E H

I E

S R

THERE IS A CIPHER

成功

但是有的人出题时,题目中的字母个数是奇数,所以就有了下面的这种情况:

1,明文 you are beautiful

2,去空格

3,把它的字母一上一下地写:

y u r b a t f l

o a e e u i u

4,合并空格,然后把第二行移上来就成了:yurbatfloaeeuiu

比如可以试着解一下“OTOEOIOUYVL”这个是什么

拿到一组密码一般要分析。

比如看它的元音排列和字幕重复。

有经验的解码者会大概猜出来用的是哪种类型的密码。

不过很多时候要多次试验才能解开

对称密码算法。

有了加密密钥就可以推算出解密密钥,有了解密密钥就可以推算出加密密钥的的算法。

公式如下:

EK1(P) = C

DK2(C) = P

其中E为加密算法,D为解密算法,P为明文,C为密文,K1为加密密钥,K2为解密密钥。在对称密码算法中,有了K1,就可以推算出K2,而有了K2,也可以推算出K1。实际应用的大多数对称密码算法中,K1与K2相同。

因此对称密码算法的加密与解密关系如下:

EK(P) = C

DK(C) = P

加密与解密都使用密钥K。

之所以叫对称加密算法,就是加密与解密的密钥相同。

常见的对称密码算法有:

1) DES,数据加密标准。

IBM于1970年代开发。

DES算法使用的密钥长度表示为64位(bit),但每个第8为都用作奇偶校验,所以对于使用者而言,密钥长度是56位。

DES将消息分成64位长的分组,一次加密一个分组,最后一个分组如果不满64位,需要按照某种策略填满64位。

2) 三重DES,DES的增强版本。

加密过程为“加密-解密-加密”,

解密过程为“解密-加密-解密”。

用公式表示:

EK1(DK2(EK3(P))) = C //加密

DK1(EK2(DK3(C))) = P //解密

实际应用中,K1和K3是相同的,

也就是外层的两次加密和两次解密使用相同的密钥。

三重DES的密钥长度就相当于K1+K2的长度,即112位(DES的密钥长度为56位)。

采用“加密-解密-加密”模式的理由是为了与DES保持兼容,

只要设置K1=K2=K3,只是多了两道运算步骤而已。

三重DES只是DES的一个变种,还有其它变种,

例如DESX、CRYPT(3)、GDES、RDES、snDES等等。

还是接着栅栏说几个常见的密码吧

恺撒移位密码

《高卢战记》有记载的“恺撒密码”,

是一种替代密码,通过将字母按顺序推后起3位起到加密作用。

尽管苏托尼厄斯仅提到三个位置的恺撒移位,

但其实从1到25个位置的移位都可以使用,

为了使密码有更高的安全性,单字母替换密码就出现了。

明码表 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

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

明文 F O R E S T

密文 Y G K T L Z

重排密码表二十六个字母的顺序,

允许密码表是明码表的任意一种重排,

密钥就会增加到四千亿亿亿多种,

就有超过4×1027种密码表。

这样破解就变得很困难。

如何破解:

主要方法是字母频度分析。

具体来说,就是先找出同样的语言写的一篇其他文章

大约一页纸长,然后计算其中每个字母的出现频率。

将频率最高的字母标为1号,频率排第2的标为2号,第三标为3号,

依次类推,直到数完样品文章中所有字母。

然后观察需要破译的密文,同样分类出所有的字母,

找出频率最高的字母,

并全部用样本文章中最高频率的字母替换。

第二高频的字母用样本中2号代替,

第三则用3号替换,

直到密文中所有字母均已被样本中的字母替换。

局限性是,

短文可能严重偏离标准频率,

加入文章少于100个字母,

那么对它的解密就会比较困难。

而且不是所有文章都适用标准频度。

所以在单一恺撒密码的基础上扩展出多表密码,

称为“维吉尼亚”密码。

由16世纪法国亨利三世王朝的布莱瑟·维吉尼亚发明的,

其特点是将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

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

摩尔斯密码

又叫摩尔密码,这个你们很熟悉

这种密码非常简单,有两种"符号"用来表示字元:点和划,或叫滴(Dit)和答(Dah)。

-表示划,*表示点。

划一般是三个点的长度;点划之间的间隔是一个点的长度。

字元之间的间隔是三个点的长度;单词之间的间隔是七个点的长度。

数字

0 -----

1 *----

2 **---

3 ***--

4 ****-

5 *****

6 -****

7 --***

8 ---**

9 ----*

常用标点句号 *-*-*-

逗号 --**--

问号 **--**

长破折号 -***-

连字元 -****-

分数线 -**-*特殊符号(同一符号)

特殊意义的点划组合。

AR *-*-* 停止 (消息结束)

AS *-*** 等待

K -*- 邀请发射信号(一般跟随AR,表示“该你了”)

SK ***-*- 终止 (联络结束)

BT -***- 分隔符

还有比如

***-* (我将重新发送最后一个单词)

** ** (同样)

******** 错误

理解是,明文里第N个字由密钥的第N个字来决定转换表的行数吧

而密钥这里是重复的relation这个字如第三个明文是B,

第三个密钥是L(relation的第三个字),

所以从密表的L行里,找出对应B的是M。

因为每个字的行数不同,也就是等同每个字母的加密对应不同,

所以也许不能用频率来查出来…

维热纳尔方阵也说一下吧

毕竟不是所有人都像某某那么笨

法国外交官维热纳尔提出

是一种多表加密的替代密码,

可使阿尔—金迪和菲利普斯的频度分析法失效。

维热纳尔方阵加密法其实很简单,它只需要用一个双方约定的单词来加密一条明文。

方阵如下:

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世纪, 一个性情古怪的天才查尔斯·巴比奇将其破译了。

以LS的为例,说一下解密的过程:

关键词 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

破译的第一步就是寻找密文中出现超过一次的字母。

此例中to两次都是被加密为YC,

因为它两次都是用FO来进行加密,关键词正好轮回了两次,

这种重复正是征服维热纳尔密码的突破点。

分析一下,有两种情况可能导致这样的重复发生。

最有可能的是明文中同样的字母序列使用密钥中同样的字母加了密;

另外还有一种较小的可能性是明文中两个不同的字母序列通过密钥中不同部分加了

密,碰巧都变成了密文中完全一样的序列。

假如限制在长序列的范围内,那么第二种可能性可以很大程序地被排除。

破译的第二步是确定密钥的长度:

关键词 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 36 2 3 4 6 9 12 18 36

B G D L 93 3 31

S E E F U R Z F S W D P 45 3 5 15

J G G C 24 2 3 4 6 12 24

L K U Q Q A F J Q Y W H P J 18 2 3 6 9 18

很明显,每个重复间隔都能被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

《THE CODE BOOK》里面是用一篇也是169个字母的较标准的明文来数出各个字母的标准个数,本人觉得较麻烦,就用上面的方法代替了。

相应作出图表:

10 ┏ ┏┓

┃ ┃┃

8 ┣ ┃┃ ┏┓

┃┏┓ ┃┃ ┏┓ ┃┃

6 ┣┃┃ ┃┃ ┏┓ ┏┫┃ ┏┫┃

┃┃┃ ┃┃ ┏┫┃ ┃┃┃ ┏┫┃┃

4 ┣┃┃ ┏┫┃ ┃┃┃ ┏┓┃┃┃ ┃┃┃┃

┃┃┃┏┫┃┃ ┃┃┃ ┃┃┃┃┃ ┃┃┃┣┓

2 ┣┃┣┫┃┃┣┳┫┃┃ ┃┣┫┃┣┓┃┃┃┃┃┏┓┏┓

┃┃┃┃┃┃┃┃┃┃┃┏┫┃┃┃┃┃┃┃┃┃┣┫┃┃┃

0 ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻━

ABCDEFGHIJKLMNOPQRSTUVWXYZ

统计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的图表:

10 ┏┏┓

┃┃┃

8 ┣┃┃ ┏┓

┃┃┃ ┏┓ ┃┃ ┏┓ ┏┓

6 ┣┃┃ ┏┓┃┃ ┃┃ ┃┃ ┃┃

┃┃┃ ┏┳┳┓ ┏┓┃┃┃┃ ┃┃ ┃┃ ┃┃

4 ┣┃┃ ┃┃┃┣┓┃┃┃┃┃┃ ┃┃ ┃┃ ┃┃

┃┃┃ ┃┃┃┃┃┃┃┃┃┃┃ ┏┫┣┓┏┫┃ ┏┫┃

2 ┣┃┃ ┃┃┃┃┃┃┃┃┃┃┃ ┃┃┃┃┃┃┃ ┃┃┃

┃┃┣┓┃┃┃┃┣┫┃┃┃┃┃┏┫┃┃┣┫┃┣┳┳┫┃┃

0 ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻

ABCDEFGHIJKLMNOPQRSTUVWXYZ

标准频率和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个单位后:

10 ┏ ┏┓

┃ ┃┃

8 ┣ ┏┓ ┃┃

┃ ┃┃ ┃┃

┃┏┓ ┃┃ ┏┓ ┏┫┃

6 ┣┃┃ ┃┃ ┃┃ ┃┃┃ ┏┓

┃┃┃ ┃┃ ┃┃ ┃┃┃ ┏┳┳┓ ┏┓┃┃

4 ┣┃┃ ┃┃ ┃┃ ┃┃┃ ┃┃┃┣┓┃┃┃┃

┃┃┃ ┏┫┣┓┏┫┃ ┏┫┃┃ ┃┃┃┃┃┃┃┃┃

2 ┣┃┃ ┃┃┃┃┃┃┃ ┃┃┃┃ ┃┃┃┃┃┃┃┃┃

┃┃┃┏┫┃┃┣┫┃┣┳┳┫┃┃┣┓┃┃┃┃┣┫┃┃┃

0 ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻━

MNOPQRSTUVWXYZABCDEFGHIJK

由此可知,关键词的第一个字母是M。

注意,一些误差是在所难免的,如K替换Y,

两图表比较起来好像不很符合,

但整体来说是差不多的,可忽略过去。

继续下来,统计L2中169个字母出现的次数,有:

A:1 N:2

B:0 O:3

C:12 P:18

D:11 Q:3

E:14 R:5

F:7 S:13

G:1 T:5

H:6 U:1

I:0 V:2

J:12 W:7

K:0 X:5

L:10 Y:12

M:3 Z:16

图表如下:

10┏

┃ ┏┓

8┣ ┃┃ ┏┓

┃ ┏┓ ┃┃ ┏┓ ┃┃

6┣ ┏┓┃┃ ┏┓ ┃┃ ┃┃ ┏┫┃

┃ ┃┣┫┃ ┃┃┏┓ ┃┃ ┃┃ ┃┃┃

4┣ ┃┃┃┣┓ ┃┃┃┃ ┃┃ ┃┃ ┏┓┃┃┃

┃ ┃┃┃┃┃┏┓┃┃┃┃ ┃┃┏┫┃ ┃┣┫┃┃

2┣ ┃┃┃┃┃┃┃┃┃┃┣┓┏┫┣┫┃┣┓ ┃┃┃┃┃

┃┏┓┃┃┃┃┣┫┃┃┃┃┃┣┫┃┃┃┃┃┣┳┫┃┃┃┃

0┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻

ABCDEFGHIJKLMNOPQRSTUVWXYZ

留意到F-K,L-P,Z-A-E这些连续段的特征,考虑把图表左移11位,有:

10┏

┃ ┏┓

8┣ ┃┃ ┏┓

┃ ┃┃ ┏┓ ┃┃ ┏┓

6┣ ┃┃ ┃┃ ┏┫┃ ┏┓┃┃ ┏┓

┃┏┓ ┃┃ ┃┃ ┃┃┃ ┃┣┫┃ ┃┃

4┣┃┃ ┃┃ ┃┃ ┏┓┃┃┃ ┃┃┃┣┓ ┃┃

┃┃┃ ┃┃┏┫┃ ┃┣┫┃┃ ┃┃┃┃┃┏┓┃┃

2┣┃┣┓┏┫┣┫┃┣┓ ┃┃┃┃┃ ┃┃┃┃┃┃┃┃┃

┃┃┃┣┫┃┃┃┃┃┣┳┫┃┃┃┣┓┃┃┃┃┣┫┃┃┃

0┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻━

LMNOPQRSTUVWXYZABCDEFGHIJK

可以确定关键词的第二个字母是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

看懂了吗?

我出一道练习题。

PYMPSIZCMTVEEEOVSDAJNKSDPYMZVVABNHV

CAZANVVBLVGCYQYQGEEYZMGXXNVMVICARZG

MECNILGFJJQWIIAUTXMJQIMMLVUNIEOVZRZ

HYEZUQLGLOJQGKGDZTHWFLYGHVGWZVMMECG

WKXIWZBLSISFZDMECKPKSLCYBAIKDVWKMVO

FNZIFIVBKC

提示一下:A-E段,U-Z段以及O-T段的特征比较显著,可先从这些方面着手。

最后讲一个非对称密码算法。

之前茶也说过,对称密码算法存在一个固有的矛盾。

其主要特性就是加密解密密钥能互相推算,

而实际应用中绝大多数对称加密算法的加密密钥和解密密钥是相同的。

正因为如此,加密者指定一个密钥后,

必须得想方设法把密钥分发出去给解密者,

同时还得小心翼翼确保密钥不被泄露。

Diffie 和Helman1976年提出了一种全新的密码系统概念

就是非对称密码算法。

与对称密码算法相反,

非对称密码算法的加密密钥和解密密钥不相同,

而且从加密密钥推算出解密密钥极其困难。

1) EK1(P) = C //E:加密算法,K1:加密密钥,P:明文,C:密文,下同。

DK2(C) = P //D:解密算法,K2:解密密钥。

综合上面两个式子,可得:

DK2(EK1(P)) = P

2) 从K1 推断出K2极其困难。如果密钥长度足够长,银河系中的任何一种生物都应该不可能轻易从K1推出K2,或者从K2推算K1。

3) 某些优秀的非对称密码算法还具有如下特性,但不是所有的算法都具备:

EK1(DK2(P)) = P

也就是加密函数E与解密函数D互为反函数,

解密函数可以当成加密函数来用,

加密函数也可以当成解密函数来用。

由于非对称密码算法可以把加密密钥公开,

因此也叫做公开密钥密码算法,

简称公钥密码算法,或公钥算法。

公钥算法的确是非常优雅地解决了密钥既要保密又要公开的矛盾。

公钥密码算法虽然非常优雅,

但是几乎所有的公钥算法都有一个问题,

那就是速度太慢。

RSA算法的速度是DES的1000分之一,

并且密钥越长,速度会急剧变慢。

因此实际应用中密码系统都是把公钥密码算法与对称密码算法结合在一起使用。

密码学

👁️ 阅读量:0