转位式密码与替换式密码

转位式密码与替换式密码
转位式密码与替换式密码

转位式密码与替换式密码

第一节转位式密码

转位式密码就是将明文做移位和重排加密,借由重新安排字母的顺序来隐藏信息,是一种比较简单的加密方式。单纯的转位式密码很容易被破解,因为频率分布与原始文字一样,所以这种加密方式很不安全。

第二节栅栏密码

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多(一般不超过30个,也就是一、两句话)。

例如加密information,先将其分行:

i f r a i n

n o m t o

之后再合并:

ifrainnomto

这样就得到了密文ifrainnomto

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

i f r a i n

n o m t o

再按上下上下的顺序组合起来得到information。若是英文长句再分出空格即可。

有些栅栏密码并非只有2栏,这时需先观察字母数,如有30个字母,30可写成2×3×5、3×10、2×15的乘积,则可以依次尝试2栏、3栏、5栏……即可找出明文。

第三节列置换加密法

列置换加密法是一种比较复杂的加密方法,它是在行数固定的情况下,将明文一列一列地写成矩阵的结构,然后再一列一列写出之前,根据某种密钥将其重新排序。例如:

密钥:4 3 1 2 5 6 7

明文:a t t a c k p

o s t p o n e

d u n t i l t

w o a m x y z

密文:TTNAAPTMTSUOAODWCOIXKNLYPETZ

第四节替换式密码

替换式密码,又名取代加密法,是密码学中按规律把文字加密的一种方式。替换式密码中可以用不同的字母数为单元,例如每一个或两个字母为一单元。密文接收者解密时需用原加密方式解码才能获得原文本。由于英语中替换式密码会把26个字母拆开,使用替换式密码较为容易;相反,中文需要建立密码本,然后遂字替换。然而由于中文字极多,完全替换不合经济效益。而且中文中每个字由不同大小的字根来组字,较难转换,因此使用替换式密码的示例比较少。当以替换式密码与转位式密码相比较时,会发现转位式密码只是把明文中的单元的位置改变,而单元本身没有作出改变;相反,替换式密码只是把单元转换,但密文中单元的位置没有改变。

替换式密码亦有许多不同类型。如果每一个字母为一单元(或称元素)进行加密操作,就可以称之为“简易替换密码”(英语:simplesubstitution cipher)或“单表加密”(英

语:monoalphabeticcipher)又称为单字母替换加密;字母群体为单元的加密则称为“多表加密”(英语:polyalphabeticcipher)或“表格式加密”(英语:polygraphic)。单表加密只可在一个单元中使用同一种替换加密,而多表加密则可在一个单元使用不同的加密方式,明文单元映射到密文上可以有好几种可能性,反之亦然。

第五节凯撒密码

将替换密码用于军事用途的第一个文件记载是恺撒著的《高卢战记》。恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗。其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息。

苏托尼厄斯在公元二世纪写的《恺撒传》中对恺撒用过的其中一种替换密码作了详细的描写。恺撒只是简单地把信息中的每一个字母用字母表中的该字母后的第三个字母代替。这种密码替换通常叫做恺撒移位密码,或简单的说,恺撒密码。

尽管苏托尼厄斯仅提到三个位置的恺撒移位,但显然从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种密码表,破解就变得很困难。

但是,我们可以通过分析字母频度的差异暴力破解凯撒密码等单字母替换密码。9世纪

的科学家阿尔?金迪在《关于破译加密信息的手稿》对该技术做了最早的描述。

“如果我们知道一条加密信息所使用的语言,那么破译这条加密信息的方法就是找出同样的语言写的一篇其他文章,大约一页纸长,然后我们计算其中每个字母的出现频率。我们将频率最高的字母标为1号,频率排第2的标为2号,第三标为3号,依次类推,直到数完样品文章中所有字母。然后我们观察需要破译的密文,同样分类出所有的字母,找出频率最高的字母,并全部用样本文章中最高频率的字母替换。第二高频的字母用样本中2号代替,第三则用3号替换,直到密文中所有字母均已被样本中的字母替换。”

以英文为例,首先我们以一篇或几篇一定长度的普通文章,建立字母表中每个字母的频度表。例如下文:

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ

VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX

EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ

统计该文中每个字母出现的频率。

图2-1 文中每个字母出现的频率

将其对照通常情况下每个字母出现的频率即可破解。

图2-2 英文字母出现频率统计

经由两章表的对照,猜测P与Z就是e与t,猜测ZW就是th,而ZWP就是the,以此类推,边试边该,最后可得明文如下:

it was disclosed yesterday that several informal

but direct contacts have been made with political

representatives of the viet cong in moscow

虽然设密者后来针对频率分析技术对以前的设密方法做了些改进,比如说引进空符号等,目的是为了打破正常的字母出现频率。但是小的改进已经无法掩盖单字母替换法的巨大缺陷了。到16世纪,最好的密码破译师已经能够破译当时大多数的加密信息。

第六节维吉尼亚密码

人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。它是由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

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

维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。维吉尼亚密码的密钥空间大小为26m,所以即使m的值很小,使用穷尽密钥搜索方法也需要很长的时间。例如,当m=5时,密钥空间大小超过1.1*107,这样的密钥量已经超出了使用手算进行穷尽搜索的能力范围。

假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密: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

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

第七节Playfair密码

Playfair密码(英文:Playfair cipher 或Playfair square)是一种替换密码,可以一次加密多个字母,1854年由查尔斯?惠斯通(Charles Wheatstone)的英国人发明,经莱昂?普莱费尔提倡在英国军地和政府使用。它有一些不太明显的特征:密文的字母数一定是偶数;任意两个同组的字母都不会相同,如果出现这种字符必是乱码和虚码。它使用方便而且可以让频度分析法变成瞎子,在1854到1855年的克里米亚战争和1899年的布尔战争中有广泛应用。但在1915年的一战中被破译了。

Playfair密码依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。

Playfair密码编写分三步:编制密码表、整理明文和编写密文。

第一步编制密码表。在这个5*5的密码表中,共有5行5列字母。第一列(或第一行)是密钥,其余按照字母顺序。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。当然也要把使用频率最少的字母去掉。如:密钥是Live and learn,去掉后则为liveandr。如果密钥过长可占用第二列或行。

如密钥crazy dog,可编制成

图2-3 密钥crazy dog编制成的密码表

第二步整理明文。将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X。

如,communist,应成为co,mx,mu,ni,st。

最后编写密文。对明文加密规则如下:

(1)若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应oc

(2)若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。

(3)若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如,按照前表,wh对应tk或kt。

如,依照上表,明文where there is life,there is hope.

可先整理为wh er et he re is li fe th er ei sh op ex

然后密文为:kt yg wo ok gy nl hj of cm yg kg lm mb wf

将密文变成大写,然后几个字母一组排列。

如5个一组就是KTYGW OOKGY NLHJO FCMYG KGLMM BWF

若要破译Playfair密码只需反其道行之即可。解密算法首先将密钥填写在一个5*5的矩阵中(去出重复字母和字母z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。

对密文解密规则如下:

(1)若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一

列被看做是第一列的左方。

(2)若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。

(3)若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。

第八节一次性密码本

一次性密码本是一种颇特别的替换密码。它由约瑟夫?马宾(英语:Joseph Mauborgne)于第一次世界大战后期建立。克劳德?夏农约在第二次世界大战期间,在数学上证明它的保密性牢不可破,其过程于1940年末首次出版。在常见的做法中,一次性密码本可以被称为一个单次替换密码。通常情况下,明文字母将以某种方式(通常为逻辑异或)与关键字组合(而不是替换掉)。

一次性密码本在大多数情况下都是不切实际或难以使用,因为它需要关键字跟明文一样(或更)长、“完全”随机、只能使用一次,更要保证除了发送者和接收者之外其它所有人都不知道。当这些条件有一项没有执行,甚至只是极其轻微的违反,一次性密码本便再也不是坚不可摧,甚至一触即溃。美国曾于第二次世界大战期间用非随机的一次性密码本加密讯息,再将其送往苏联。美国的密码学家于40年代开始就能破解极少数一次性密码本。

现在某些加密系统号称可以模拟一次性密码本,或许这类系统可以提供充分的安全性,但可能也是很容易被破解的系统。一般来说,一次性密码本并不适合用于高流量的网络环境。

第九节混合式密码与旋转机

因为语言特性的关系,采取单一的替换式密码或转位式密码并不安全,所以我们可以采

用多重的加密方法使破解变得复杂:转位两次比转位一次复杂;替换两次比替换一次复杂;替换之后在转位会更复杂。旋转机便是一种非常复杂,在当代加密法出现之前,最常用的混合式加密法。

旋转机在第二次世界大战时就已经被广泛的使用了,德军的Enigma、盟军的Hagelin 以及日军的Purple均使用了旋转机。它是使用一系列的转轴,每个转轴就是一个替换加密法,每个字母加密后,这个转轴都会旋转一个刻度来改变。三个转轴的旋转机就提供了263=17576种替换加密法。

图2-4 三个轴向旋转机:连接数字表示线路的接续方式

相关主题
相关文档
最新文档