• 凯撒密码加解密过程与破解原理



    凯撒密码(英语:Caesar cipher),或称凯撒加密、凯撒变换、变换加密,是一种最简单且最广为人知的加密技术。 凯撒密码是一种替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 例如,当偏移量是3的时候,所有的字母被替换,比如A将被替换成D,B变成E,以此类推。

    无规律的加密过程

    使用密文字母表,这种表格的字母(可能)是无规律的、随机的。加解密双方都需要拿到密文字母表。

    举例:
    假设我们通信时只使用26个英文字母(不区分大小写)

    image

    (密文字母表的顺序可以随机摆放)

    当你需要加密的明文:I LOVE YOU
    拿着密文字母表,对照着密文字母表映射就可以了。
    变成的密文:       L ORYH BRX
    拿着密文字母表,对照着密文字母表解密就可以了。
    

    无规律的解密过程——破译

    原理:

    1. 考虑英文字母的使用频率规律,尝试用高频映射高频;
    2. 结合排除法。

    实际案例:
    TODO

    有规律的加密过程

    就是字母表向左或向右移动多少位,用一个图表示,方便理解:
    image
    用两个圆纸盘写好26个字母,相互叠起来,
    外面的圆盘代表明文,
    内部的圆盘代表密文,
    在初始阶段,外A —— 内A,外B —— 内B,...都要一一对应上。

    image
    比如,向右移动3位,外A —— 内D 。

    用表格表示:
    image

    比如说:

    当你需要加密的明文:I LOVE YOU
    你的加密方式,向右移动3位:
    变成的密文:       F IRYH BRX
    

    加密只需要注意两个点:

    • 偏移方向
    • 偏移量

    有规律的解密过程——破译

    我们知道明文就是通过偏移方向+偏移量进行加密,那么如果是破译者,怎么能知道加密时使用了什么偏移量?

    比如说给你一段使用凯撒加密过的文本,你怎么解密出来?
    Prqd Olvd Lq Iudqfh

    破译原理:

    1. 统计出现最高频的字母;
      用凯撒密码编写的密文,字数越多就越容易破译;
    2. 要猜出字母究竟位移了多少位,要考虑英文字母的使用频率规律,尝试用高频映射高频。
      当然还可以暴力破解,毕竟只能位移1-25次,那就1-25位移全部罗列出来,哪个结果最像人写的,就是正确的。

    练习:

    1. 统计
      我使用在线工具:https://uutool.cn/str-statistics/
      image

    2. 映射
      参考下面的字母高频使用表格:
      英文字母按使用频率从高到低排序,第一位是e、第二位是t,...
      image

      q——e ,自己用圆盘计算了一下,向右位移14次,尝试解密:Bdcp Axhp Xc Ugpcrt ,看着不对。
      ...
      d——e ,自己用圆盘算了一下,向右位移25次,尝试解密:Prqd Olvd Lq Iudqfh ,看着不对。
      d——t ,自己用圆盘算了一下,向右位移16次,尝试解密:Zban Yvfn Va Senapr ,看着不对。
      d——a ,自己用圆盘算了一下,向右位移3次,尝试解密:Mona Lisa In France ,恭喜!看着对了。
      过程可以使用在线工具:http://www.atoolbox.net/Tool.php?Id=778

    练习

    请破解:

    RD IJFW OJSSD
    QTANSL DTZ NX XT JFXD.
    YMJWJFWJXTRFSD YMNSLX YT QTAJ FGTZY DTZ!
    IT DTZ PSTB N QTAJ NY BMJS DTZ IFDIWJFR FSI DTZ YMNSP ST
    TSJ NX BFYHMNSL?
    IT DTZPSTB N QTAJ YMJ BFD DTZW JDJX XUFWPQJ BMJS DTZ
    YJQQ F KZSSD XYTWD?
    IT DTZ PSTB YMFY N QTAJ YMJ XMFUJ TK DTZW JFWX?
    IT DTZ PSTB N QTAJ YT BFYHM DTZ XQJJU?
    N HTZQI LT TS FSI TS.
    NFR YMJWJ BNYM DTZ, QTANSL DTZ.
    KWTR JIINJ
    
  • 相关阅读:
    un8.1:在nacos微服务已经被注册user-center和content-center
    70. 爬楼梯 --力扣 --JAVA
    微信小程序实现拍照并拿到图片对象功能
    CommonModule.dll动态链接库(DLL)文件丢失的处理方法
    可观测|时序数据降采样在Prometheus实践复盘
    python多文件打包.exe执行文件
    自动驾驶入门:感知
    牛客前端宝典——刷题 ##Day11
    CSP-J2022普及组题解T4:上升点列
    CSS属性: 过度效果属性transition
  • 原文地址:https://www.cnblogs.com/mysticbinary/p/18291199