Сжатие, кодирование и шифрование

Использовать алгоритм сжатия данных вместе с алгоритмом шифрования имеет смысл по следующим двум причинам:

  • Криптоанализ опирается на избыточность открытого текста, сжатие файла перед шифрованием снижает эту избыточность.

  • Шифрование - процесс длительный, за счет сжатия файла перед шифрованием процесс в целом ускоряется.

Важно сжимать данные именно перед шифрованием - если алгоритм шифрования хоть сколько-нибудь хорош, сжать шифротекст уже не удастся, он выглядит как набор случайных данных. (Это позволяет проверить алгоритм шифрования - если шифротекст сжимается, то алгоритм, скорее всего, недостаточно хорош.)

Если вы собираетесь использовать кодирование передачи или обнаружение и восстановление ошибок, не забывайте добавлять кодирование после шифрования. Если в канале связи присутствуют шумы, распространение ошибки при дешифрировании только усилит шум. Рекомендуемая последовательность операций показана на Рис. -3.

[image]

Рис. -3. Шифрование с сжатием и контролем ошибок.