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

Я не могу ничего сказать о более поздних версиях, но если не было сделано никаких заявлений об обратном, можно считать с большой вероятностью, что алгоритм не изменился . Алгоритм использует три 32-битовых переменных, инициализированных следующим образом :
Функция сгс32 берет свое предыдущее значение и байт, выполняет их XOR и вычисляет следующее значение с помощью многочлена CRC, определенного Oxedb88320. На практике 256-элементная таблица может быть рассчитана заранее, и вычисление сгс32 превращается в:

Таблица рассчитывается в соответствии с первоначальным определением сгс32:

Для шифрования потока открытого текста сначала для обновления ключей зациклим байты ключа в алгоритме шифрования. Полученный шифротекст на этом этапе игнорируется. Затем побайтно зашифруем открытый текст. Открытому тексту предшествуют двенадцать случайных байтов, но это на самом деле неважно . Дешифрирование похоже на шифрование за исключением того, что во втором действии алгоритма вместоиспользуется
Безопасность PKZIP
К сожалению она не слишком велика. Для вскрытия нужно от 40 до 2000 байтов известного открытого текста, временная сложность вскрытия составит около 227. На вашем персональном компьютере это можно сделать за несколько часов. Если в сжатом файле используются какие-нибудь стандартные заголовки, получение известного открытого текста не представляет собой проблемы . Не используйте встроенное в PKZIP шифрование.