Я пишу систему VPN, которая шифрует (AES256) ее трафик через сеть (Почему запись мое собственное, когда уже существует 1 000 001 другий там? Ну, мой - специальный для определенной задачи что ни один из других соответствие).
В основном я хочу выполнить свои взгляды мимо Вас, чтобы удостовериться, что я делаю это в правильном порядке.
В данный момент пакеты просто шифруются прежде чем быть отосланным, но я хочу добавить некоторый уровень сжатия им для оптимизации передачи данных немного. Не тяжелое сжатие - я не хочу истратить ЦП все время, но я хочу удостовериться, что сжатие будет максимально эффективным.
Так, мои взгляды, я должен сжать пакеты прежде, чем зашифровать, как незашифрованный пакет сожмется лучше, чем зашифрованный? Или наоборот?
Я буду, вероятно, использовать zlib для сжатия.
Читайте больше на блоге Суперпользователя.
Если шифрование сделано правильно затем, результатом являются в основном случайные данные. Большинство схем сжатия работает путем нахождения шаблонов в данных, которые могут быть в некотором роде факторизованы, и благодаря шифрованию теперь нет ни одного; данные абсолютно несжимаемы.
Сжатие перед шифрованием.
Сжатие перед шифрованием. Сжатые данные могут значительно варьироваться для небольших изменений в исходных данных, поэтому делая очень трудным выполнить дифференциальный криптоанализ.
Кроме того, как г-н Alpha указывает, если Вы шифруете сначала, результат очень трудно сжать.