Обнаружение шифрования

Как Ева может обнаружить зашифрованный файл? Ева - профессионал в шпионском бизнесе, поэтому это важный вопрос. Представьте себе, что ей удалось вклиниться в сеть, в которой во всех направлениях с большой скоростью летают сообщения, и Еве нужно выбрать те, которые ее интересуют. Шифрованные файлы всегда интересны, но как узнать какие файлы шифрованы?

Обычно можно воспользоваться тем фактом, что наиболее популярные программы шифрования создают хорошо известные заголовки. Сообщения электронной почты, зашифрованные PEM или PGP (см. разделы 24.10 и 24.12), легко обнаружить именно по этой причине.

Другие шифраторы файлов выдают только файл шифротекста, состоящий из похожих на случайные битов. Как отличить этот файл от любого другого файла битов, похожих на случайные? Универсального способа не существует, но кое-что Ева может проверить:

  • Исследует файл. Текст ASCII легко идентифицировать. Другие форматы файлов, такие как TIFF, TeX, C, Postscript, факс G3 или Microsoft Excel обладают рядом стандартных характеристик. Определяем также и исполняемый код. Файлы UNIX часто содержат "магические числа", которые могут быть обнаружены.

  • Попробует разархивировать файл, используя основные алгоритмы сжатия. Если файл сжат (но не зашифрован), она получит оригинальный файл.

  • Попробует сжать файл. Если файл представляет собой шифротекст (полученный с помощью хорошего алгоритма), то вероятность того, что файл может быть заметно сжат универсальной утилитой сжатия, невелика. (По моим оценкам 1-2 процента.) Если файл является чем-то другим (например, бинарное изображение или бинарный файл данных), он, скорее всего, сожмется.

Любой файл, который нельзя сжать и который еще не был сжат, возможно является шифротекстом. (Конечно, можно специально создать шифротекст, который будет сжиматься.) Определить алгоритм намного труднее. Для хорошего алгоритма это невозможно. Если у алгоритма есть незначительные особенности, то эти особенности можно распознать в файле. Однако, эти особенности должны быть достаточно заметными, или для выполнения этой работы потребуется достаточно большой файл.