我正在研究一个C程序,在该程序中我已获得91位AES密钥,并且需要遍历其他可能的37位密钥以获得完整密钥。在十六进制中,密钥看起来像这样,其中F是密钥的未知部分。
FF FF FF FF FC 00 00 00 00 00 00 00 00 00 00 00 03
[遍历未知部分时,显然,我需要将未知部分组合到已知部分。如果我有9个字节的奇数需要查找,那么如何将最后一个字节组合到“ C”以确保获得正确的长度密钥?
您可以通过多种方法来做到这一点,但是我会这样:
初始化四个128位值min
,max
,inc
和base
。将min
设置为零。将max
设置为FF FF FF FF F0 00 00 00 00 00 00 00 00 00 00 00 0000。将base
设置为给定键,在所有未知点中都为零。将inc
设置为00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00。
从min
到max
的循环,每次加inc
。对于每个条目,将当前循环索引与base
或。这就是您测试的值。