Надежность zip 2.0 шифрования


В одном ПО для бекапирования (backup4all) предлагается 2 варианта шифрации архива:
– zip 2.0
– AES (128, 256)
Понятно, что второй вариант лучше, но он неудобен т.к. потом zip файлы невозможно открыть стандартным архиватором, а только этим.
Также известно, что сила алгоритма не в нем самом, а в длине ключа.
Вопрос: если использовать достаточно длнный ключ (напр. 12+ символов), то можно ли говорить о силе 2.0 шифрования аналогичной AES, или алгоритм настолько старый, что взламывается на раз-два простыми хакерскими програмками?

Комментарии
— serzh (19/09/2007 21:05)   
Также известно, что сила алгоритма не в нем самом, а в длине ключа.

Сильное заявление =)
— SATtva (19/09/2007 22:02, исправлен 19/09/2007 22:13)   
Афтар жжот. Мда... И это:

если использовать достаточно длнный ключ (напр. 12+ символов), то можно ли говорить о силе 2.0 шифрования аналогичной AES

Учите-ка матчасть[link1], уважаемый.

Может в тему "Юмор" перенести?
— cooshoo (20/09/2007 06:59)   
На самом деле можно перевести на русский так, что будет близко к истине: "Если использован 12-символьный пароль из словарных слов, стойкость к взлому полным перебором будет одинакова, что для AES256, что для большинства самопальных алгоритмов." Если не приняты спецмеры по типу RAR.
Гость (20/09/2007 22:15)   
А вот к взлому неполным перебором стойкость будет разная :-D
— cooshoo (21/09/2007 07:02)   
"Прочность цепи равна прочности самого слабого звена"©
Но в данном конкретном случае я бы предложил алгоритм zip, обработав поверх RAR-ом без сжатия, но с AES. И стойкость удовлетворит, и извлечь отдельные файлы можно будет тем же самым RAR.
— serzh (21/09/2007 08:58)   
Но в данном конкретном случае я бы предложил алгоритм zip, обработав поверх RAR-ом без сжатия, но с AES.

Если идти по пути дополнительной обработки архива, то я лучше бы использовал (в порядке приоритета):
1. gpg
2. PGP
2. 7-zip (без сжатия)
3. RAR
— cooshoo (21/09/2007 11:09)   
Понимаю предпочтение бесплатного 7-zip ворованному RAR, но ни pgp, ни gpg не могут извлекать отдельные файлы из двухуровневых архивов. Так что серьезно расплачиваемся эффективностью работы с обмен на сомнительное повышение стойкости (сомнительное, потому что для извлечения одного файла нужно вывалить куда-то содержимое всего бэкапа в открытом виде).
Гость (21/09/2007 12:58)   
AES (128, 256)
Понятно, что второй вариант лучше, но он неудобен т.к. потом zip файлы невозможно открыть стандартным архиватором, а только этим.

Чем вам плох самораспаковывающийся архив? В крайнем случае (при пересылке через почту странных провайдеров) поменяйте расширение.
— sentaus (21/09/2007 13:21)   
Чем вам плох самораспаковывающийся архив?

Он зависит от ОС. Плюс мало кто запустит у себя на системе недоверенный код.
Гость (21/09/2007 17:56)   
О чём вообще речь? Просто указываете в имени архива адрес, откуда можно скачать архиватор, использовавшийся вами при создании этого архива. ;)
— sentaus (21/09/2007 18:32)   
Да что мелочиться? Лучше уж сразу присылайте бинарники для всех возможных типов операционных систем. :)
— SFS (21/09/2007 20:21)   
2. 7-zip (без сжатия)

А почему без сжатия, если не секрет?

Давно хотел спросить про надежность 7-zip шифрования, чтобы не начинать новую тему спрошу здесь.
Интересует прежде всего как берется хэш из пароля (сколько раз, соль и т.д.), к сожалению описания нигде найти не смог.
Также замитил, что в одной из недавних версий "- Encryption strength for .7z format was increased. Now it uses random initialization vectors." Снижается ли криптостойкость в предыдущих версиях использующих постоянный IV? Если да, то как можно это использовать?
— SATtva (21/09/2007 20:37, исправлен 21/09/2007 20:41)   
С постоянным ВИ идентичный открытый текст шифруется в идентичный шифртекст. При случайном ВИ шифртекст всегда случаен, независимо от входных данных. (Разумеется, всё это с учётом фиксированного ключа. Если ВИ одинаковый, но ключи разные, шифртекст, разумеется, тоже будет разным.) Причём если при идентичном ВИ различается только часть открытых текстов (допустим, одинаковое начало и разная концовка), то шифртекст будет также одинаковым до места расхождения. Это даёт атакующему большой простор для атак на систему.
— serzh (21/09/2007 20:52)   
А почему без сжатия, если не секрет?

Это будет уже сжатый файл утилитой backup4all, т.е. повторное сжатие только замедлит работу.
P. S. К RAR тоже нужно приписать "без сжатия".
— cooshoo (23/09/2007 11:26)   
Давно хотел спросить про надежность 7-zip шифрования, чтобы не начинать новую тему спрошу здесь.
Интересует прежде всего как берется хэш из пароля (сколько раз, соль и т.д.), к сожалению описания нигде найти не смог.
Описание, как всегда в сырцах, сиплюсплюсным по синему. Как и в RAR обрабатывается строка из многократных повторений соли, пароля и счетчика. Отличия – в RAR соль 8 байт, в 7-zip 16 (вообще длина соли определена как половина от длины ключа). Пароль тоже наверное в Unicode, я не разбирался подробно. Счетчик 8 байт вместо 3 байт в RAR. Формат заголовка и программный код предусматривают число циклов хэширования до 262 (для будущих суперкомпьютеров наверное), сейчас используется 218. Хэш SHA256 (в RAR SHA-1). Ну и алгоритм AES256 вместо AES128 в RAR. Режим счетчика (в RAR не помню какой).
Есть там еще один вариант, когда ключ примитивно образуется объединением соли с паролем, но это наверное для совместимости с какими-то старыми версиями.
Снижается ли криптостойкость в предыдущих версиях использующих постоянный IV?
С учетом 16-байтовой соли рандомный IV скорее рюшечка, чем реальная необходимость.
Гость (23/09/2007 11:59)   
А что, у RAR уже доступны исходники?
— cooshoo (23/09/2007 13:25)   
[InternetShortcut]
URL=http://www.rarlab.com

Исходные тексты UnRAR, библиотеку UnRAR.dll и несжатые версии SFX-модулей
(только английские) можно загрузить с сайта WinRAR по адресу
http://www.rarlab.com из раздела "RAR Extras".
Файл UnRarDLL.url из стандартной поставки.
Гость (23/09/2007 14:01)   
Открытый UnRAR это конечно хорошо, но можно ли по нему сказать, что в самом RAR нет backdoor'ов?
— cooshoo (23/09/2007 16:07)   
Нет конечно. Но вопрос вообще был про алгоритм работы 7-zip, с RAR я сравнивал просто для примера.
Гость (23/09/2007 16:34)   
Нет конечно.

Для меня это не столь очевидно. Не исключено что, проанализировав алгоритм расшифрования (особенно если он сообщает как об ошибках о различных "неформатных" данных в исходном файле), можно будет сделать заключение, что бэкдоров нет.
— cooshoo (23/09/2007 16:48)   
Только что собрался написать дополнение :)
Открытый UnRAR безусловно резко сокращает число возможных каналов утечки, процедуры генерации ключа и шифрования не могут содержать лазеек (иначе ничего бы не работало), а "лишние байты" в коротком и задокументированном нешифрованном заголовке сразу были бы обнаружены. Так что под подозрением остается разве что соль – в качестве нее можно использовать зашифрованные коротким случайным ключом первые 8 байт пароля. Но единственный канал гораздо проще отследить, а уж умельцы код ковыряли (правда больше на предмет взлома). Так что гарантировать отсутствие бэкдоров UnRAR все-таки не может, но делает их наличие куда менее вероятным.
Гость (23/09/2007 17:16)   
подозрением остается разве что соль – в качестве нее можно использовать зашифрованные коротким случайным ключом первые 8 байт пароля

Можно ли исходя из этого считать, что шифрование RAR имеет гарантированную стойкость как у AES128 c длиной пароля равной (длина_RAR_пароля-8) байт ?
Гость (23/09/2007 17:20)   
умельцы код ковыряли

Так это надо каждую новую версию опять ковырять...
— cooshoo (23/09/2007 17:45)   
что шифрование RAR имеет гарантированную стойкость как у AES128 c длиной пароля равной (длина_RAR_пароля-8) байт ?
Ну пароль и заархивировать можно... К тому же по первым 8 байтам легко опознать цитатную парольную фразу или определить типичные используемые "рандомизаторы" (типа чередования больших и маленьких букв).
Гарантировать можно только невозможность утечки ключа через соль.
Так это надо каждую новую версию опять ковырять...
Недаром многие предпочитают ПО с открытым кодом. И хотя я в первую очередь предложил RAR, того кто предпочтет открытый 7-zip понимаю и одобряю.
Гость (23/09/2007 18:29)   
пароль и заархивировать можно... К тому же по первым 8 байтам легко опознать

То есть можно сказать, что RAR'у гарантированную стойкость даст достаточно длинный случайный пароль.
— cooshoo (23/09/2007 19:13)   
Можно. Но возвращаясь к нашим баранам, через полгода длинный случайный пароль можно и не вспомнить. Так что стоит или разумно ограничить требования к безопасности и спокойно пользоваться RAR-ом, или использовать специальные средства – например хранить все бэкапы в ТруКриптовских контейнерах.
Гость (23/09/2007 21:03)   
длинный случайный пароль можно и не вспомнить.

А его можно получать из легкозапоминаемого короткого с помощью средств вроде Javascript password generator[link2] ;)
— cooshoo (24/09/2007 19:03)   
Здравое зерно без сомнения есть, но уж не по интернету генерировать пароль. Накроется завтра этот сайт, а с ним вся информация? А свою такую програмку можно написать.
Гость (24/09/2007 19:37)   
Накроется завтра этот сайт, а с ним вся информация?

Что касается конкретно указанной страницы, то она легко сохраняется локально. Кроме того, там использован стандартный алгоритм SHA-1.

Кстати, как RAR обращается с паролем? Есть ли смысл расширять набор используемых в нём символов, или можно просто в достаточной степени увеличить его длину?
Гость (24/09/2007 23:21)   
Для получения SHA-1 хэша выделите нижеследующий текст, вставьте его в поле адреса браузера и перейдите по этому "адресу" ;-). Можно даже сохранить в закладках и ни от кого не зависеть!
— SFS (25/09/2007 00:59)   
cooshoo, огромное спасибо за разъяснение про 7-zip.
— cooshoo (25/09/2007 19:53)   
Мне вот еще что особо понравилось – если кому-то не нужна защита от словарного подбора (256К итераций), а нужна высокая скорость шифрования и он переделает программу так, чтобы хэш вычислялся только 1 раз – получившийся вариант абсолютно нормально откроется любой версией 7-zip. Число повторов записывается в заголовок.
— serzh (25/09/2007 20:12)   
При больших массивах информации время на генерацию ключа пренебрежительно мало в сравнении с самим процессом шифрования. Поэтому сокращать количество циклов не вижу смысла.
— cooshoo (26/09/2007 07:11)   
Я имел ввиду ситуацию, когда каждый из нескольких тысяч файлов упаковывается в самостоятельный архив (хотя согласен, сам делал это только в тестовых целях и не представляю кому бы это было нужно на практике). Но верно и обратное – если кто-то решит увеличить число циклов в 64-256 раз, такая модификация тоже откроется стандартной программой.

Ссылки
[link1] https://www.pgpru.com/biblioteka/osnovy/vvedenievkripto

[link2] http://motdepasse.site.voila.fr/long.html