0

Архивация с шифрованием

Здравствуйте читатели блога. Сегодня мы с вами разберём зашифровку архивов.

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

ZIP
Свойства алгоритма шифрования, использованного в архивном формате
ZIP, уже многократно обсуждались в этой книге.
Не повторяя детали, вспомним, что алгоритм шифрования уязвим к атаке на основе открытого текста и достаточно знать 12 не зашифрованных байт (после компрессии), чтобы расшифровать весь файл за приемлемое время. Для архивов, содержащих 5 и более файлов и созданных архиваторами, основанными на библиотеке InfoZIP, возможна атака, использующая в качестве открытого текста данные из заголовков зашифрованных файлов. Этой атаке были подвержены файлы, созданные при помощи WinZIP, но в последних версиях этого архиватора проблема была исправлена.
Еще в июле 2002 года компания PKWARE, Inc. выпустила версию архиватора PKZIP, поддерживающего более стойкие алгоритмы шифрования. Но, видимо, по той причине, что PKZIP позиционируется как продукт для корпоративных пользователей, новое шифрование не получило широкого распространения.

ARJ
Популярный во времена DOS, но довольно редко используемый в настоящее время архиватор, разработанный Робертом Янгом (Robert Jung), использовал следующий алгоритм шифрования.
Из пароля по очень простому обратимому алгоритму получалась гамма, равная по длине паролю. Эта гамма накладывалась на шифруемые данные путем сложения по модулю 2 (операция XOR). Таким образом, наличие открытого текста, равного по длине паролю, позволяло моментально определить гамму и использованный пароль.
Более того, в самом начале упакованных данных содержалась информация компрессора, такая как таблицы Хаффмана (Huffman tables), и часть этой информации могла быть предсказана, что позволяло значительно повысить скорость поиска пароля перебором.

RAR
Архиватор, разработанный Евгением Рошалем (Eugene Roshal), является
неплохим примером того, как можно подходить к шифрованию данных.
В алгоритме шифрования, используемом в RAR версии 1.5, есть некоторые недочеты. Так эффективная длина ключа шифрования составляет всего 64 бита, т. е. перебором 264
вариантов ключа можно гарантированно рас-шифровать пароль. Более того, наличие открытого текста позволяет уменьшить множество перебираемых вариантов до 240. Следовательно, атака может быть успешно выполнена даже на одном компьютере. Скорость
перебора на компьютере с процессором Intel Pentium 3  333 МГц составляет примерно 600 000 паролей в секунду.
При переходе к версии 2.0, видимо, была проведена серьезная работа над
ошибками. Во всяком случае, взлом нового алгоритма шифрования перебором требует примерно 21023
операций, что намного больше, чем может быть
выполнено на современной технике. Об эффективных атаках, использующих открытый текст, ничего не известно. Скорость перебора паролей снизилась примерно до 2000 штук в секунду (в 300 раз).
Но разработчики RAR решили не останавливаться на достигнутом. В версии 3.0, появившейся в мае 2002 года, для шифрования стал использоваться алгоритм AES (Rijndael) с ключом длиной 128 бит. Такое решение выглядит вполне разумным как минимум по двум причинам. Во-первых, безопаснее использовать проверенный и хорошо зарекомендовавший себя алгоритм, чем нечто самодельное, и у AES здесь нет конкурентов. А во-вторых, у AES скорость шифрования выше, чем у алгоритма, использованного в RAR 2.O.
Кроме замены алгоритма шифрования, в RAR 3.0 используется и другая
процедура получения ключа шифрования из пароля. Эта процедура требует вычисления хэш-функции SHA1 262 144 раза, что позволяет перебирать около 3-х паролей в секунду, т. е. в 600 раз меньше, чем для RAR 2.O.

На этом у нас всё. Хорошенько зашифруйте свои данные и подписывайтесь на нашу RSS-ленту. До скорых встреч!

Подписка
Понравился пост? Так введи Email адрес и жми "Подписаться":


Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *