古典密码体制|密码学

古典密码体制|密码学

image-20221104160738303

过一两周《密码学》就要结课考试了,为了避免结课考试翻车先来提前复习一下了。

置换加密体制

置换密码

明文字符集保持不变, 根据一定规则重新排列明文, 以便打破密文的结构特性

  1. 列置换密码(明文按照一定格式排列, 然后再按不同顺序进行列读出序列得到密文)
  2. 周期置换密码(将明文按照固定长度分组, 然后对每个组分别按照一定规则组内重排列得到密文)

替换密码

根据预先建立的替换表, 对明文依次进行查表替换

  1. 单表替换密码(单字母代替)

    凯撒密码(加同余密码, 移位密码) C = K1+m mod 26

    乘数密码(采样密码) C = K1*m mod 26

    仿射密码(位移密码+乘数密码的组合) C = K1*m+K2 mod 26

    Playfair 双字母替换

    image-20221104115711253

    ADFGX密码:

    1. ADFGX组成一个5*5矩阵对应25个字母(i和j同处理)
    2. 将25个字母随机放入5x5矩阵中得到置换表
    3. 通过矩阵查表对应获得第一次查表后的密文(1个明文替换为2个密文)
    4. 选一个关键字符串(纯英文), 然后以关键字母数作为每行字符数, 对第一次的密文进行填充排列
    5. 对排列结果以列为单位重排列, 排列顺序按照关键字的字母从小到大排列
    6. 逐行读出字母得到最终密文

    ADFGVX密码(和上面一样, 不过i和j不再同处理且能加密数字)

  2. 多表替换

  3. 一次一密

    Vername密码

  4. 周期多表替换

    维吉尼亚密码(多表的周期凯撒)

    希尔(Hill)密码:

    1. 定义一个n*n的初始矩阵并求出它的逆矩阵(相乘的矩阵只要对26取模后为1即可,不需要全为1)
    2. 加密过程就是将明文按位填充矩阵然后将获得的矩阵与1初始矩阵相乘后分别对26取模得到密文
    3. 解密就是将密文矩阵乘逆矩阵后再次对26取模获得明文

    转轮加密算法:每加密一个字母快轮子就转动一次(快轮转26次中轮转1次, 中轮转26次慢轮转1次,所以一共有26^3张替换表)

    image-20221104123602465

古典密码体制分析

词频分析

根据各字母频率可将英文字母分为几组。不仅单字母以相当稳定的频率出现,双字母组和三字母组同样如此

image-20221104131638817

image-20221104131654450

破译单表替代密码的大致过程:

  1. 统计密文的各种统计特征,如果密文量比较多,则完成这步后便可确定出大部分密文字母
  2. 分析双字母、三字母密文组,以区分元音和辅音字母
  3. 分析字母较多的密文,在这一过程中大胆使用猜测的方法,如果猜对一个或几个词,就会大大加快破译过程

多表替换密码分析

多表替换对于一个明文字母使用了多个不同的密文字母来进行替换所以密文的字母分布比较平坦, 在一定程度上隐藏了明文消息的一些统计特性所以多表替换的保密性比单标替换要更高。

多表替换密码分析步骤

确定秘钥长度d -- 确定加密表个数

  1. Kasiski测试法

    • 给定d个密钥表周期地对明文字母加密, 当两个相同明文字母组的间隔间隔为d的倍数时, 这两组对应的密文相同

    • 两个相同密文段对应的明文段不一定相同, 但相同的可能性很大。所以将相同的字母组找出来, 并找出相同字母组距离的最大公因子就可能提取出秘钥长度d

      Demo示例::

      image-20221104133405475

      相同的明文组est恰好被经过循环后的XTE进行加密因此得到相同的密文TBL

      反映了一个事实: 两个相同的密文组TBL之间的间隔恰好就是秘钥长度的整数倍。

  2. 指数重合法(在维吉尼亚的解密分析脚本会使用到)

    1. 定义:

      设 X = X1X2X3...Xn是n个字母串, 所以X的重合指数是指x中两个随机元素相同的概率

      image-20221104134330681

      其中的fi表示X中字母A,B,C,...,Z各自出现的频率

      image-20221104135103375

      image-20221104135357492

      Demo

      image-20221104135542346

      image-20221104135759846

确定具体的密码字 -- 重合互指数法

嗯....这段公式比较多不好打字直接将课件截图贴上来吧

image-20221104143019084

image-20221104143247832

image-20221104160201664

image-20221104160145411
image-20221104160242521

2022_11_04 第11周星期五 16:00

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇