Сжатие, кодирование и шифрование
Использовать алгоритм сжатия данных вместе с алгоритмом шифрования имеет смысл по следующим двум причинам:
-
Криптоанализ опирается на избыточность открытого текста, сжатие файла перед шифрованием снижает эту избыточность.
-
Шифрование - процесс длительный, за счет сжатия файла перед шифрованием процесс в целом ускоряется.
Важно сжимать данные именно перед шифрованием - если алгоритм шифрования хоть сколько-нибудь хорош, сжать шифротекст уже не удастся, он выглядит как набор случайных данных. (Это позволяет проверить алгоритм шифрования - если шифротекст сжимается, то алгоритм, скорее всего, недостаточно хорош.)
Если вы собираетесь использовать кодирование передачи или обнаружение и восстановление ошибок, не забывайте добавлять кодирование после шифрования. Если в канале связи присутствуют шумы, распространение ошибки при дешифрировании только усилит шум. Рекомендуемая последовательность операций показана на Рис. -3.
Рис. -3. Шифрование с сжатием и контролем ошибок.