机身很沉,摸上去冰凉。他按下电源键,屏幕亮起,需要虹膜和指纹双重认证。谭组长示意他看向摄像头,然后按下自己的拇指。
系统解锁。
桌面是纯黑色的,只有几个图标。纪玄快速扫了一眼——网络嗅探器、协议分析器、流量监控、加密破解工具包。都是顶级的工具,有些甚至是军方级别的。
他连接上车载的卫星网络,带宽足够大。
然后,他打开了加密破解工具包。
手指在键盘上飞舞。
代码在屏幕上滚动,一行又一行。纪玄的眼睛盯着那些字符,大脑在高速运转。他需要先破解直播流的第一层加密——AES-256。这需要密钥。密钥可能藏在信号流的某个字段里,可能通过暗网分发,可能……
他调出吴涛传来的频谱图。
信号特征很清晰:中心频率2.4GHz,带宽20MHz,调制方式QAM-64。这是标准的Wi-Fi信号,但加密方式不标准。纪玄启动协议分析器,捕捉信号流的包头信息。数据包像瀑布一样在屏幕上滚动,他快速过滤掉无关数据,只保留加密层的信息。
找到了。
在每一个数据包的尾部,都有一个32字节的字段,看起来像是随机数。但纪玄知道那不是随机数——那是AES加密的初始化向量。而初始化向量的生成方式,往往隐藏着密钥的线索。
他写了一个小程序,提取出最近一百个数据包的初始化向量,然后进行统计分析。
模式出现了。
每隔五个数据包,初始化向量的第三个字节就会按照一个固定的序列变化:0x3A,0x5F,0x21,0x7C,0x49……这是一个简单的循环序列。而循环序列的种子值,很可能就是密钥的一部分。
纪玄快速敲击键盘。
他写了一个暴力破解脚本,以循环序列为线索,尝试所有可能的密钥组合。屏幕上的进度条开始缓慢移动。百分之十,百分之二十,百分之三十……电脑风扇的转速加快,发出低沉的嗡鸣。车厢里的温度似乎升高了,纪玄能感觉到额头渗出细密的汗珠。
百分之五十。
百分之七十。
百分之九十。
叮。
进度条满格。
屏幕弹出一个提示框:“第一层加密破解成功。密钥:7E4A9C2B5F8D3016A2B4C6D8E0F1A3C5。”
纪玄没有停顿,立刻开始破解第二层加密——自定义的流加密算法。
这一层更难。
流加密算法的核心是一个伪随机数生成器,用密钥作为种子,生成一个无限长的随机数序列,与明文进行异或运算得到密文。要破解,必须知道伪随机数生成器的算法,或者找到算法的漏洞。
纪玄调出解密后的第一层数据。
看起来依然是一堆乱码,但有规律可循。他启动频率分析工具,统计每个字节出现的频率。在正常的加密数据中,字节频率应该是均匀分布的。但这段数据不是——某些字节出现的频率明显偏高。
这是流加密算法常见的漏洞:如果伪随机数生成器的周期不够长,或者算法有缺陷,就会导致密钥流出现重复模式。而重复模式,就是突破口。
纪玄写了一个自相关分析程序。