02.古典密码学

1.换位加密

               关键点:明文顺序对换

Ex1:  比如要加密明文: see the light,假如我们按照3x4的矩阵排列这个明文,可以得到如下形式,最后一个x表示占位,并无实际意义

我们将其做转置变为4x3矩阵

这样一来接收方收到的密文为shgeehelttix,显然要破译这个密文要知道这个矩阵的大小,然后再填入即可

换位加密的缺点是很明显的,它的头和尾字母是一致的,如何改善呢?来看个新的例子!

Ex2: 明文为:crypto is fun ,按照之前换位的做法 我们要先将明文转为3x4的矩阵,也就是下图中横线上面的矩阵,其中x表示占位符,为了改变头尾顺序相同的缺点,我们引入顺序的概念,也就是我们加入一组数字或者字母这里以{1,2,3,4}为例(当然也可以引入{M,.R,Y,Q},为直观所以用数字),也就变为横线下面的样子

引入数字后,我们以数字的大小为转置的行数,这里是从小->大,也就说column1 转置后为row1=>ROU,column2转置后为row2=>YIN,依次类推

显然解密不仅要知道矩阵维度,还要知道加密的顺序才行

假如有12个字母要猜几次呢?

首先设置矩阵:可为1x12    2x6    3x4  4x3  6x2  12x1,然后对于每种情况我们分别讨论,比如1x12,那就12个字母的排列,如果是2x6矩阵,依次填入后尝试每一种矩阵

以2x6矩阵为例 如下图所示的两种情况 ....以此类推


这种方式就是穷举法,也叫穷举攻击

换位还可以玩的更高级些,比如双重换位:

明文:ATTACK&AT&DAWN ;&号这里表示分隔,也就占位的意思吧,中文翻译为凌晨发起总攻,显然如果这条明文被对方截获了,我方就完蛋啦,我们用更为复杂的双重加密来让保证我们的明文能正确传达到友军手中,按照我们之前的做法,弄一个矩阵,这里是4x3,为每一列打上编号,不同的是这里连行也打上了编号,设下面这个矩阵为A


设下面的矩阵的为B,显然B[行编号,列编号] = A[行编号,列编号]


小结:上述的算法仅仅涉及调换顺序,不改变字符,解密注意写入顺序对应明文即可

2.凯撒加密

凯撒加密的思想很简单,a替换为D,b替换为E,每个字母偏移3位

比如,明文为:RETURN TO ROME,经过加密:UHWXUA WR URPH,此时若我们还用换位加密中的说的穷举攻击,要耗时多久呢?

以a来举例,此时a有26种选择,而到b时因为a已经选走 了一种,而b所对应的密文肯定不和a一致所以b只有25种选择,以此类推c有24种,也就是26*25*24*.....*1=26! > 2的88次方

需要1000年才能破解完!这看似很好了 但其实有个致命的缺陷,我们来看张图

有人对英语单词出现字母的频率做了大量的统计发现,每个字母出现的概率不一样 ,其中e出现的频率最高,那我们就可以做出这样的破解,拿到密文后统计每个字母出现的频率,比对上表,比如密文中出现最多的可能是e! 这样我们就以一种被称为"统计攻击"的方式破解了密文

但是!这样做真的靠谱吗?靠统计字母的频率真的可以吗? 有一个人了用英语写了5W字的文章,其中不带一个e!(额..........虽然不稳定,但总归是一种攻破凯撒加密的方式总比用1000年好)

3.维吉尼亚密码(Vigenere Cipher)

同样举例说明,要加密的明文为:SECRETMESSAGE,我们设K={12,0,19,7},密文和秘钥对应的数字做加法,其中秘钥k是循环的,如下图

这样一来经过以上形式的加密,我们得到的密文为:EEVYQT.....(不一一列出),这样一来不同字母通过变换可能变为一样,这使得统计攻击无效了

对于Vigenere的解密,我们以第一个字母S->E为例进行说明,S经过K[0]的加密后变为E,也就是4,所以是 (4-K[0]) + 26) = 18,显然经过讨论E的解密过程我们知道,要解密就要知道秘钥K 就可以了

接下来我们分析一下倘若不知道K,穷举破解的效率:

K = 1,0~25,26 的 1次方

K = 2,0~25,0~25 ,26的2次方

....

K = 26, 26^1+26^2+^26^3+......+26^26 =6.4023643634154 * 10^36

4.希尔密码(Hill cipher)

hill cipher需要运用矩阵运算的一些基本概念:A*A逆=I,I为单位矩阵,其次将第一个字母A设为0,最后一个Z设为25,中间依次累加,比如明文设为:

MEETMEHERE={12,4,4,19,12,4,7,4,17,4}

设n=2,加密矩阵A设为

再将明文对应的字母串{12,4,4,19,12,4,7,4,17,4}化为列向量的形式,如下图

显然A是2x2矩阵,P是2*1矩阵,依次做个乘法我们得到2*1的四个向量,以第一个为例,如下

316 => 316-26*12 = 4,152 = > 152-26*5=22,把运算化为字母对应的数字,所以如下:

对于解密我们要算出逆矩阵即可

5.一次一密(one-time Pad)

这种方式是绝对安全的,每次加密的秘钥和明文长度是一样的,一般用在国家级的传输中,商业中一般不用这个

6.密码本加密

其实这种方式的加密我们在电影中也有看到过,比如二战中日本人就是用密码本的形式进行加密的,这种加密方式是这样运作的:用单词对应一组数字,比如说:

test:13732

is:10142

start:14512

每次要解密的时候就拿个密码本出来看看找到对应的数字就可以了,这种方式如果用久了,敌人多多少少也会猜到一些,所以要不定期更新,比较麻烦,而且假如密码本被对方截获了,那就全完蛋啦,所以一般战争打输了,密码本是一定要销毁的

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

推荐阅读更多精彩内容