z_x_spectrum Ну так я о том и говорю, что в программе не предусмотрена возможность задания IV, поэтому непонятно как LazyCat собирается его использовать. Нельзя. Но в данном алгоритме это меньшая проблема, т.к. у него есть обратная связь, т.е. состояние зависит не только от ключа, но и от плейнтекста, так что keystream для разных плейнтекстов будет разный.
Итак, приступаем. Шаг 1. Ссылки на скачивание (плюс аттач): http://slil.ru/25368127 http://rapidshare.com/files/84438070/ZC4_plain.rar.html http://webfile.ru/1688943 Информация о файле (для проверки целосности):
Раптор а скажи енрупт патоковый или блочный ? как скорость с рц4 сравнима ? и портирование на асм насколько сложно будет -)) а то у нас тут с профессором вапрос вазник -))
sl0n Он и потоковый и блочный и хоть весь файл как один блок шифруй или хашируй если в память поместится. Только блоки до 32-бит надо выравнивать. Скорость RC4 - 7 тактов на байт, скорость EnRUPT - 4-6 тактов на байт, в зависимости от размера (это чистый С, я в ASM не оптимизировал). Портировать в ASM его очень легко и тривиально, даже в 8-битовый. Если хочешь, могу дать описание. Через неделю буду знать приняли или нет на SASC и тогда выложу на www.enrupt.com, хотя там на картинках все видно и должно быть понятно. На них нет только формул для количества кругов.
Раз уж тут поставили под вопрос мое умение ломать шифры, я все-таки решил взглянуть на ZC4... Убирать XOR и секретный аккумулятор было очень плохой идеей. Этот шифр теперь тривиально ломается с одним известным открытым текстом в котором есть достаточно длинная (от 40 до 256 байт, как повезет) непрерывная последовательность из одного и того же байта, любого байта. Внутреннее состояние шифра сразу после загрузки ключа легко восстанавливается вот таким простым алгоритмом, не зависимо от случайного IV добавленного в начале файла как автор предлагает. После этого любой другой файл зашифрованный тем же ключом легко расшифровывается. Вообще сломать такой шифр - это хорошая задача для школьников и первокурсников по криптологии. Ключ восстановить из известного внутреннего состояния тоже легко (как и для RC4).
если в архиве ZC4_plain.rar, который выложил Dmit, была такая (байт на 80) последовательность, то турнир можно считать завершённым. in XOR we trust .щааещз aka /offtop Ruptor из zc4_gd.c: Код (Text): For the sake of testing, the plaintext is a sequence of 73-byte wide repetitions. имелось в виду shake или сакэ?
:off: Ruptor Рад читать тебя не на транслите ) Еще со времен ренга и написания кейгена для армадиллы в закрытом разделе
О-па ! Пока я был в коммандировке, тут без меня уже все решилось ! Браво, Ruptor ! Вы абсолютно правы в своих замечаниях, но со времени первого поста прошло очень много времени и эти недостатки были устранены в шифрах, предложенных на турнир(ZC4full.zip на этом же криптодвижке), и которых Dmit, почему-то, очень сильно испугался. Мне искренне жаль Вашего драгоценного времени, потраченного на этот, действительно слабый шифр(по сути дела - просто скелет шифра). Несмотря на полное игнорирование моих условий, я согласился на этот поединок чисто с провокационной целью. Мне стало очень противно общаться с людьми из п.3(по классификации Ruptora) и я собирался и так покинуть этот форум, поэтому согласился на заведомо проигрышный вариант. Хотя, если бы не вмешательство Ruptora, еще неизвестно чем бы все закончилось, ведь Dmitу зачем-то понадобилась целая куча пар ТО/ТШ, а ведь достаточно всего одной ) Это о многом говорит... Но, как бы там ни было Вы победили, а я проиграл. И поэтому выполняю свои обязательства. Во-первых, приношу свои искренние извинения тем истинным профессионалам, коих я вольно или невольно обидел своим дилетанством(к настоящим хамам это не относится !!!). Во-вторых, я наконец-то с чистой совестью покидаю это форум, и обещаю, что меня Вы здесь больше не увидете(если у кого возникнут какие вопросы, то только в ЛС). Напоследок, убедительная просьба ко Всем - по предложению, ntldr удалите, пожалуйста, с Ваших компьютеров архив ZC4full.zip. Спасибо !!!
LazyCat Какой турнир? Какой поединок? Кто проиграл? Я ни во что не играл и ZC4full.zip не видел. Я что-то не то сломал? Ну давай посмотрим на ZC4full тогда... А покидать форум из-за пары троллей или flamers - это честно говоря не серьезно. Их даже в моей классификации нет. Они не мафия. На меня они тоже нападают постоянно. Их везде хватает и они везде нападают на всех подряд ибо им больше нечего предложить миру, кроме их бесценной слюнобрызжащей критики - постоянно ищут к чему бы придраться. Как собаки лают на караван, так и они... Собаки лают, а караван идет и ни один верблюд даже не посмотрит в их сторону. Так что сильно не переживай и не сдавайся, продолжай творить. Шифры всегда чаще ломаются, чем выдерживают атаки. Такова уж их природа - пока сделаешь один криптостойкий шифр, приходится отказываться от многих десятков если не тысяч красивых но хрупких вариантов. Не сам сломаешь, так кто-то другой сломает, и это конечно же всегда обидно. Даже Брюс Шнайер признается что хотел быть первым, кто сломает Twofish, иначе бы очень расстроился. Не расстраивайся. Ты никого не обидел.
Неделя прошла, второй шаг Протокола выполнен не был. Так что, полагаю, дальнейшее рассмотрение атаки на ZC4 смысла не имеет. Тем не менее - для интересующихся. Пароль на архив из поста с первым шагом - "Let's_Go-With:ZC4" (без кавычек). В подкаталоге plain - открытые тексты (суммарно 640 байт). ZC4.C и ZC4.EXE - оригинальные файлы из аттача к стартовому посту. cryptAll.bat - автоматизация вычисления шифртекстов для всех открытых текстов. Достаточно запустить, указав в качестве параметра командной строки ключевую строку, и все шифртексты будут созданы в подкаталоге cipher. Для 64-битовых OS надо перекомпилировать ZC4.C, так как 16-битовый код под XP-64 у меня выполняться не захотел. В аттаче - код для восстановления начального состояния шифра ZC4 по шифртекстам из первого шага. Запускать из подкаталога, где лежат все шифртексты. Если в качестве параметра командной строки указать имя файла, зашифрованного на той же ключевой строке, что и все шифртексты, то файл будет расшифрован и выведен на stdout, или в файл, имя которого указано вторым параметром. Для атаки используется то, о чем писали Solo и flankerx, и за что были посланы топикстартером в довольно грубой форме - IMO неподходящей для данного форума. Собственно, только это и вынудило меня выполнить сию циничную экзекуцию