10.7 检测加密

    Eve怎样检测到一个加密的文件呢?Eve从事间谍行业,所以这是一个重要的问题,设想一下她在网络上偷听向四方高速传播的信息,她必须挑选出有意义的那些。加密文件确实是有趣的,但她是怎样知道它们是被加密的呢?

    通常地讲,她依赖于这个事实:大多数流行的加密程序都有定义良好的报头。由于这个原因,用PEM和PGP(参见24.10和24.12节)加密的电子邮件消息可以很容易地被辨别出来。

    其它加密器(包括软件)也只产生貌似随机比特流的密文文件。她是怎样从其它貌似随机的比特流中将其区分出来的呢?没有确定的方法,但Eve可以试着做大量的事情:

        ——检查文件。ASCII文本很容易认出。其它的文件格式如,TIFF,TeX,C,信末附言,G3 传真,微软Excel等都有标准的辨别特性。执行代码同样也是可以检测到的。UNIX文件通常有“幻数”可供检测。

        ——用大多数压缩算法试着对文件进行解压。如果文件被压缩(并没有加密),她就可以恢复出原始文件。

        ——试着压缩文件。如果文件是密文(且算法良好),那么文件被通用压缩程序有效压缩的可能性会很小。(“有效”是指超过1-2%)如果是别的文件(例如,二进制图象,二进制数据文件等),都可能被压缩。

    任何不能被压缩且没被压缩过的文件很可能就是密文。(当然,也可以特别制造可被压缩的密文。)对算法进行识别更加困难。如果算法是好的,你不可能识别。如果算法有某种轻微的偏差,那就有可能在文件中辨别出这些偏差。然而,偏差必须有明显的意义,或文件必须足够大才能很好的进行。