使用 1 字节密钥解码 1 字节

Decoding 1 byte with a 1 byte key

我开发了一个应用程序,可以从服务器接收信息,自动读取数据包并将其作为浮点数保存在数据库中。

示例: 收到数据(00 00 D0 41) -> 倒序(41 D0 00 00) -> 转换为浮点数(26.0)

最近该信息略有变化,服务器现在发送 5 个字节,而不是发送 4 个字节。

示例: 0A 0C 0C C0 0F

我发现第一个字节是某种密钥,当这个密钥是06时,数据没有加密。

示例: 06 00 00 D0 41

到目前为止我看到的唯一键是 00 06 08 和 0A。

同义样本:
06 00 00 D0 41(原始,密钥 06)
08 32 32 12 B4(用键 08 编码)
00 EF EF 1B BF(使用密钥 00 编码)
0A 0C 0C C0 0F(用键 0A 编码)

看起来,它只是逐字节编码,我得出这个结论是因为在几个数据包上,我知道原始字节是什么,加密字节保持不变。

示例:每个数据包中的 00(密钥 06)= 32(密钥 08)= EF(密钥 00)= 0C(密钥 0A)。

我在相差 4 的数字中发现了一些逻辑,

密钥 0A

00=>0C
04=>1C
08=>6C
0C=>7C
10=>CB
14=>DB
18=>2C
1C=>3C
20=>8B
24=>9B
28=>EB
2C=>FB
30=>4D
34=>5D
38=>AD
3C=>BD

我的问题是,找出加密算法的最佳方法是什么?

我会依次回答两个相关的问题。

  • 是的,我会使用通常的嫌疑人暴力破解算法。不要忘记加法(模 256)。
  • 这不是我知道的算法,好像不是编码也不是加密,更像是混淆的问题。

现代加密算法不处理已知的单字节密钥,生成的数据与随机数据难以区分。它也没有编码,那里至少有一些字节似乎超出了字符编码的预期范围,或者例如BCD编码。