密码学(二)之代换密码

(一)代换密码(替换密码)**

上一讲中,我们讲移位密码其实是将字母表中的字母一一对应到各数字,然后通过数字平移来进行加密,古典密码学中还有一种比较有名的加密方法,就是将明文中的字母表对应到一套密文的字母表,这种加密方法我们叫代换密码(substiution cipher)或叫替换密码,下图就是一个简单的代换密码对应表

image

(二)代换密码的加密

上面所说,代换密码其实就是将明文里的字母按照字母表替换成密文里的字母,还是举一个例子,假设现在有一个字符“welcome to china”,根据上面的密码替换表,将明文里面的每个字母依次换成对应的密文,如下:

w->C

e->X

l->G

c->H

o->B

m->E

e->X

t->Q

o->B

c->H

h->T

i->J

n->N

a->W

这样就可以得到密文CXGHBEXQBHTJNW

(三)代换密码的解密

代换密码的解密非常简单,只要将加密的替换表进行反向操作,这里不再操作

这里可以发现,代换密码主要是要建立起一套明文与密文之间的加密对应的替换关系,只要有这套密码替换表,加、解密就变得很容易

(四)代换密码的破解

上一讲我们知道,移位密码其实是很好破解的,因为密钥总量一共就26位,只要我们试26次,就一定能试出一个正解的,那么代换密码是也可以通过穷举的方式来破解呢?

我们知道代换密码是把明文的26个字母随机对应密文的26个字母上,也就意味着明文中第一个字母a可以对应到密文中A,B,C,D…Z 26个字母中的任一个,以此类推,我们就可以计算出代换密码的密钥总数为:

26 x 25 x 24 x 23 x22 x 21 x … x 1 = 403291461126605635584000000

像这种一种密码能够使用的所有密钥的集合,叫做密钥空间(keyspace)

上面的密钥的量非常大,用穷举法来破译几乎是不可能的。

使用穷举法不能破译,但并不能说明就是安全的,我们可以使用频率分析来破译代换密码,频率分析就是利用明文中的字母出现频率与密文中的字母的出现频率一致这一特性,

下面是【密码学原理与实践】书中的一个例子,可以参考一下

现假设有一段密文如下,现需将其解密出明文

YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ

NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ

NXUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ

XZWGCHSMRNMDHNCMFQCHZJMXJXWIFJYUCFWDJNZDIR

这种密文的频率分析如下图:

image

根据英文字母出现的频率排序统计,一般的排序是这样的e,t,a,o,I,n,s,h,r,d,l,u,c,m,f,w,y,p,v,b,g,k,j,q,x,z 而且一般英语文章中出现频率最高的的字母是e,这一点基本不会错的。

根据上图所示,字母Z出现的次数是20,远远高于其它密文字母,所以我们可以假设Z->e。其它出现至少10余次的官方字母是C,D,F,J,M,R,Y,我们希望这些字母对应的是

e t a o l n s h r中的一个子集,

我们现在假设了Z->e,现注意一下形如-Z, Z-的两字母组,我们发现出现这种类型的最一般的两字母组是DZ和ZW,各都出现了4次;NZ和ZU出现3次,RZ HZ XZ FZ ZR ZV ZC ZD ZJ各出现2次;又因ZW出现4次,而WZ一次也未出现,同时W比许多其它字母出现的次娄少,所以我们可以假设W->d,又因为DZ出现4次而ZD出现2次,故可猜测D是{r,s,t}中的任一个,具体是哪个还不清楚。

如上面猜测, Z->, D->d,再看看密文并注意到ZRW出现在密文的开始部分,RW后面也出现过,因为R在密文频繁地出现,而nd是一个常见的两字母组,所以我们可以假设R->n作为可能的情况,这样我们便有了如下的形式

------end---------e-----ned--e------------
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
--------e----e---------n-d----en----e----e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
-e---n------n------ed-----e-e--ne-nd-e-e--
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
-ed-----n-----------e----ed-------d---e--n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIFJYUCFWDJNZDIR

接下来我们可以试试N->h,因为NZ是一个常见的两字组而ZN不是一个常见的两字母组,如果这个猜测是正确的,则明文ne-ndhe很可能说明C->a,结合这些收市,我们又进一步有:

------end-----a---e-a--nedh--e------a-----
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
h-------ea---e-a---a----ehad-a-en-a-e-h--e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
he-a-n------n------ed---e---e--neandhe-e--
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
-ed-a---nh---ha---a-e----ed-----a-d--he--n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIFJYUCFWDJNZDIR

现在考虑出现次数高的密文字母M,由前面分析,密文段RNM密钥成nh-,这说明h-是一个词的开头,所以M很可能是一个元音,因为已经使用了a和e,所以猜测M->{i或o},因为ai是一个比ao出现次数更高的明文组,所以首先猜测M->I,这样就有:

-----iend-----a-i-e-a-inedh--e------a---i-
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
h-----i-ea-i-e-a---a-i-nhad-a-en--a-e-hi-e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
he-a-n-----in-i----ed---e---e-ineandhe--e-
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
-ed-a--inhi--hai--a-e-i---ed----a--d-he--n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIFJYUCFWDJNZDIR

下面需要确定明文o对应的密文,因为为是一个经常出现的字母,所以我们猜测相应的密文字母是D F J Y 中的一个,Y似乎最有可能,否则将得到长元音,即从CFM或CJM中得到aoi,因此假设Y->o。

剩下密文字母中三个最高频率的字母是D F J,我们猜测他们以某种次序解密成r s t, 三字母NMD两次出现说明很可能D->s,对应的明文三字母组为his,HNCMF可能是chair的加密,说明F->r,H->c,同时排除J->t,于是我们有了:

o-r-riend-ro--arise-a-inedhise--t---ass-it
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
hs-r-riseasi-e-a-orationhadta-en--ace-hi-e
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
he-asnt-oo-in-i-o-redso-e-ore-ineandhesett
NZUCDRJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
-ed-ac-inhischair-acet-i-ted-to-ardsthes-n
XZWGCHSMRNMDHNCMFQCHZJMXJZWIFJYUCFWDJNZDIR

有了上面的提示,就很容易确定出明文,解密明文如下

Our friend from paris examined his empty glass with surprise, as ifevaporation has taken place while he wasn’t looking, I poured some more wine and hesettled back in his chair,face tilted up towards the sun.

参考资料

【密码学原理与实践(第三版)】

【图解密码技术】

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容