密码学:经典加密法

基础

所谓经典加密法,就是以单个字母或字符组为作用对象的加密法。

前者被称为单图加密法(monographic cipher),又分为单码加密法和多码加密法:单码加密法的特征是每个明文的字母唯一映射到一个密文字母,多码加密法的特征是一个明文字母可能会映射到多个密文字母,一个密文字母也能映射到多个明文字母。单码加密法的致命缺点是无法抵抗频率分析,因此出现了多码加密法。

后者被称为多图加密法(polygraphic cipher)。

基本方法

  • 替换加密法:每个明文字母被其他字母替换生成密文。
  • 换位加密法:明文中的每个字母都没有改变,只是换了位置便可生成密文。

恺撒加密法(单码替换)

算法描述

把明文中的每个字母用其右边的第三个字母替换,如用 d 替换 a。

示例

明文:this
密文:wklv

破解

此种加密法只有25种可能的移位数,穷举即可。

关键词加密法(单码替换)

算法描述

选择一个关键词,如果其有重复的字母,则去重,如 success -> suce。将该关键词写在字母表的下方,其他位置补全,这样每个明文字母就可唯一映射到一个密文字母。

示例

在这里插入图片描述
在这里插入图片描述

破解

假设Eve已知通信双方使用了关键词加密法,明文是标准英语。

频率信息:根据这种加密算法的特点可以推出:所有的明文字母都已被唯一的密文替代。而在标准英语中,出现频率最高的字母是 e,那么在截获的密文中,必定也会有类似特征。

多联字母:标准英语中,有常常出现在一起的字母对,如 th he er。

通过这些手段可能获取密钥。

Vigenere加密法(多码替换)

示例

如明文为:“thisistheplaintext”,选取密钥为“hold”,设置其关联如图
在这里插入图片描述
然后借助Vigenere表,如下:

在这里插入图片描述
在关联对中,以密钥字母作为行下标,以明文字母作为列下标,在表中查找对应字母。

如第一对为“ht”,则可查找到表中的 h 行 t 列,对应字母为 “a”,此即为明文字母 t 对应的密文,其余同理。

最终生成的密文如下:

在这里插入图片描述
可以看到密文 v 既可对应明文 o,又能对应 s,从根本上抵御了频率分析。

破解

直接进行频率分析失效
在这里插入图片描述
Kasiski法:如果明文中包含重复的字母串,则密文中也可能会包含重复的字符串。如:
在这里插入图片描述
明文tobe密钥RUNR两次生成了密文KIOV,明文th密钥UN两次生成了密文NU,其间距分别为9个字符与6个字符,则这些间距必然为密钥长度的倍数,计算其最大公约数即可。

确定出密钥长度之后,多码加密法的破解就变成了多个不同单码加密法的破解,如图:

在这里插入图片描述
如图,ljkfoxusjk都是用同一字母a加密的,可继续使用频率分析方法进行破解。

Playfair加密法(双图替换)

示例

选取一个密钥,如“telegram”,将其扩展为一个5x5的正方形(去重、去掉字母 j后填充),如下图:
在这里插入图片描述
根据以下规则生成密文:若两明文字符

  • 出现在正方形的同一行,则选取右边的字符作为密文。
  • 出现在正方形的同一列,则选取下方的字母作为密文。
  • 出现在不同的行和列,则其可构成一个正方形,选取另外两个顶点的字母作为明文。

置换加密法(单图换位)

算法描述

首先将明文分成固定长度的块,记为 d,选取一个置换函数 f,f 的作用是从 1~d 内选取一个整数。例如,假设 d 为4,f 为(2,4, 1, 3),即:第一个字符移到位置2,第二个字符移到位置4…以此类推生成密文,注意最后一个块应当使用空字符补齐。

破解

使用已知明文攻击是最简单的方式。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值