当前位置: 首页 > news >正文

如何在未知iv值情况下如何进行手工破译ROT密文?

事件

在阅读到关于密码学加解密的时候,突然间想到是否在未知iv值的情况下手工破译ROT密文。
于是觉得利用频率分析来破解也许可行,以下是我的思路。

示例 “FRQJUDWXODWLRQVBRXJRWLW”

1.绘制索引表格

1234567891011121314151617181920212223242526
ABCDEFGHIJKLMNOPQRSTUVWXYZ

2.频率分析

在英文中 E,T,A,O,N,R,I,S,H 这些字母使用频率是最高的

123456789 1011121314151617181920212223242526
ABCDEFGHIJKLMNOPQRSTUVWXYZ

1.统计字符串中出现的最高次数频率的字符
"FRQJUDWXODWLRQVBRXJRWLW"

字母出现次数
B1
D2
F1
J2
L2
O1
Q2
R4
U1
V1
W4
X2

3.假定向量iv

定义一个iv向量,X为加密字符串中出现的最高次数频率的字符的索引

i v = [ X − 5 X − 20 X − 1 X − 15 X − 14 X − 18 X − 9 X − 19 X − 18 ] \mathbf{iv} = \begin{bmatrix} X - 5 \\ X - 20 \\ X - 1 \\ X - 15 \\ X - 14 \\ X - 18 \\ X - 9 \\ X - 19 \\ X - 18 \end{bmatrix} iv= X5X20X1X15X14X18X9X19X18

本次示例中R的索引(18)作为X
带入计算得
iv=[13,−2,17,3,4,0,9,−1,0]

4.连贯性猜解

密文:"FRQJUDWXODWLRQVBRXJRWLW"

FRQJUDWXODWLRQVBXJRWLW
6181710214232415423121817222241018231223

将密文索引逐一带入Pi,并且每一个索引值都要减去假定iv

S i , j = ( ( ( P i − i v j ) m o d    26 ) + 26 ) m o d    26 S_{i,j} = (((P_i - iv_j) \mod 26) + 26) \mod 26 Si,j=(((Piivj)mod26)+26)mod26


先获取前三个字母

P_i (F=6)666666666
iv_j13-2173409-10
S_{0,j}198153262376
对应字母SHOCBFWGF

P_i (R=18)181818181818181818
iv_j13-2173409-10
S_{1,j}520115141891918
对应字母ETBONSITS

P_i (Q=17)171717171717171717
iv_j13-2173409-10
S_{2,j}419014131781817
对应字母DSANMRISR

根据相同的 iv_j 进行整理,我们按照 iv_j 的顺序 逐列组合 得到最终字符串(寻找具有单词连贯性的字符):

iv_j第 1 行 (F=6)第 2 行 (R=18)第 3 行 (Q=17)
13SED
-2HTS
17OBA
3CON
4BNM
0FSR
9WII
-1GTS
0FSR

5.解密

仅仅取iv_j=3继续依次计算解密

在这里插入图片描述

明文:CONGRATULATIONSYUGOTIT

"CONGRATULATIONS YOU GOT IT"

最终iv=3

http://www.dtcms.com/a/112001.html

相关文章:

  • 【python中级】解压whl文件内容
  • Muduo网络库实现 [十三] - HttpRequest模块
  • 【AI论文】AnimeGamer:基于下一游戏状态预测的无限动漫人生模拟
  • 解锁工业通信:Profibus DP到ModbusTCP网关指南!
  • 第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:3.数字诗意
  • 基于 jQuery 实现二级下拉框选择功能
  • 技巧:使用 ssh 设置隧道代理访问 github
  • 【C语言】字符串处理函数:strtok和strerror
  • Linux网络基础三
  • wireshark抓包分析数据怎么看 wireshark使用教程_wireshark怎么看(1)
  • 33--当网络变成“主题公园“:Portal认证的奇幻之旅
  • 根据时间自动切换深色和浅色主题 程序占用检测
  • R 列表:深入解析及其在数据分析中的应用
  • dify中配置使用Ktransformer模型
  • Python 字典
  • FreeRTOS:嵌入式实时操作系统的轻量化解决方案
  • WPF设计学习记录滴滴滴5
  • KMP 算法全解析:高效实现字符串匹配与模板题详解
  • golang 的encoding/json包
  • python爬虫:小程序逆向(需要的工具前期准备)
  • 蓝桥杯---最短路径问题bfs
  • 【数据结构】邻接表 vs 邻接矩阵:5大核心优势解析与稀疏图存储优化指南
  • 三部门新政力推智能家居 居然智家数智化转型迎利好东风
  • YUV转RGBA的操作
  • 图解AUTOSAR_SWS_LINTransceiverDriver
  • 【嵌入式学习5】PyQt5模块介绍、创建第一个窗口
  • Linux安装启动ssh服务器以及ssh的配置
  • Leetcode 15 -- 双指针
  • Mysql 中的 MyISAM 引擎
  • 第十五届蓝桥杯单片机省赛程序设计试题