欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

文本解码器工具包破解经典密码词频分析

最编程 2024-04-11 16:13:40
...

Text Decoder Toolkit
官网 http://www.kahusecurity.com/tools/
Requirements
Microsoft .NET Framework 4.5
Summary
Text Decoder Toolkit is used to decode text using XOR and character shift methods.

暴力枚举法

把密文放入input框
【Decoder】选项卡 - 点击action中的单选框Enumerate to File(枚举并保存为文件)
点击operators中的单选框Character Shift
点击Decode就在程序目录生成一个枚举结果textdecodertoolkit_CS.txt

搜索“the”发现第50行就是明文。

相同差值法

利用明文字符间的ascii差值 =密文字符间的ascii差值

打开Text Decoder Toolkit
statistics(统计)选项卡
在Difference内的 Value1 Value2 分别填入值
点击Calculate计算出差值difference = value2 - value1

h-e-l-l-o的差值为
-3 7 0 3


h - e得到差值-3
l - e得到差值7
...

如果hello的ascii码都增加10得到密文rovvy

hello、rovvy字母间ascii码差值相同: -3 7 0 3

操作:
点击statistics(统计)选项卡,在Distance中的Match String(匹配字符串)中填入“the”(或任何可能大量出现的单词)
工具箱会试图帮你找到密文中相同差值(Distance,间距)的字符串的位置。
比如返回
Found first match at position: 14
Shift value: 50

得到ascii码增加值(Shift value):50 在Custom Substitution Table中填入50可得到明文。

词频分析法

实例:

T{4 G=C 9<=E B63 3<3;G /<2 9<=E G=C@A3:4^ G=C <332 <=B 43/@ B63 @3AC:B =4 / 6C<2@32 0/BB:3A` {4 G=C 9<=E G=C@A3:4 0CB <=B B63 3<3;G^ 4=@ 3D3@G D71B=@G 5/7<32 G=C E7:: /:A= AC443@ / 2343/B` {4 G=C 9<=E <37B63@ B63 3<3;G <=@ G=C@A3:4^ G=C E7:: AC11C;0 7< 3D3@G 0/BB:3`T _ !C< "HC^ "63 s@B =4 %/@
  • 得到全文中出现频率最高的符号
    打开Text Decoder Toolkit,把密文放入Input,选择statistics(统计)选项卡 点击 Get Stats

  • 计算Ascii码差值
    符号“3”出现频率最高(除了空格以外)
    在statistics(统计)选项卡的 Difference内
    Value1填入3 Value2填入e(英文中出现频率最高的字母)
    点击Calculate计算出其 ascii码差值为50 差值difference = value2 - value1

  • Decoder解码器
    在Arithmetic(算法)选项卡默认选择Single Decimal,填入Value:50
    在Operator(操作)中选择Character Shift点击Decode,输出框中得到明文

  • 修正、验证
    输出框中第三个字符是“f”,因此前面的字符【可能】是“I”(If)我们可以验证一下

回到“Statistics”选项中,我在输出框(明文)【选中】了一个可能是“I”的字符,点击“Get Hightlighted Char”(突出显示字符)
程序将提取并显示输入相应的字符value1 和输出框相应的字符value2
value1:{ value2:�
本例中我认为“{”对应的明文应该是大写“I”,所以把value2的“�”改为“I”
value1:{ value2:I

点击“Calculate Difference” 得到差值“-50”
差值difference = value2 - value1
得到了两个不同的差值(字符替换值)

我们再次【映射字符】进行解码:打开选项卡“Custom Substitution Table”(自定义替换表,很直观,类似ASCII表映射)

对任一字符进行映射(替换)的方法:ascii码为032的是空格“ ”字符,如果在032-SPC处的【增量框】填入17再点convert
【output输出框】内的“ ”都变为字符“1”(因为032+17=049 49是字符“1”的ascii码)

如果密文中的空格就是明文的空格,那么空格这个字符是不用转换的,在032-SPC【ascii码增量框】填0 字符不变。

为了填入方便,这种表在第一行某个增量框输入一个值,这1列都赋值为这个值,但我们要注意修改,比如明文密文中空格不用转换,增量框填0

字母相对频率

wikipedia

频率从大到小:
E T A O I N S H R
然后是 D L C U M W F G Y P B V K J X Q Z

Letter Relative frequency in the English language
字母 在英语中的相对频率(从高到低)
e 12.702%
t 9.056%
a 8.167%
o 7.507%
i 6.966%
n 6.749%
s 6.327%
h 6.094%
r 5.987%
d 4.253%
l 4.025%
c 2.782%
u 2.758%
m 2.406%
w 2.361%
f 2.228%
g 2.015%
y 1.974%
p 1.929%
b 1.492%
v 0.978%
k 0.772%
j 0.153%
x 0.150%
q 0.095%
z 0.074%

(字母abc顺序表)
字母 在英语中的相对频率
a 8.167%
b 1.492%
c 2.782%
d 4.253%
e 12.702%
f 2.228%
g 2.015%
h 6.094%
i 6.966%
j 0.153%
k 0.772%
l 4.025%
m 2.406%
n 6.749%
o 7.507%
p 1.929%
q 0.095%
r 5.987%
s 6.327%
t 9.056%
u 2.758%
v 0.978%
w 2.361%
x 0.150%
y 1.974%
z 0.074%

首字母相对频率

英文单词 一个单词的首字母相对频率,从最常见到不常见一般是:
The first letter of an English word, from most to least common

 s a c m p r t b f g d l h i e n o w u v j k q y z x

Letter Relative frequency as the first letter of an English word
字母 相对频率(某英文单词首字母)
a 11.602%
b 4.702%
c 3.511%
d 2.670%
e 2.007%
f 3.779%
g 1.950%
h 7.232%
i 6.286%
j 0.597%
k 0.590%
l 2.705%
m 4.383%
n 2.365%
o 6.264%
p 2.545%
q 0.173%
r 1.653%
s 7.755%
t 16.671%
u 1.487%
v 0.649%
w 6.753%
x 0.017%
y 1.620%
z 0.034%