ZC4

Тема в разделе "WASM.CRYPTO", создана пользователем LazyCat, 5 май 2007.

  1. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    z_x_spectrum
    Ну так я о том и говорю, что в программе не предусмотрена возможность задания IV, поэтому непонятно как LazyCat собирается его использовать.

    Нельзя. Но в данном алгоритме это меньшая проблема, т.к. у него есть обратная связь, т.е. состояние зависит не только от ключа, но и от плейнтекста, так что keystream для разных плейнтекстов будет разный.
     
  2. Dmit

    Dmit New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2004
    Сообщения:
    17
    Адрес:
    Russia
    Итак, приступаем. Шаг 1.

    Ссылки на скачивание (плюс аттач):
    http://slil.ru/25368127
    http://rapidshare.com/files/84438070/ZC4_plain.rar.html
    http://webfile.ru/1688943

    Информация о файле (для проверки целосности):
     
  3. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    692
    Раптор а скажи енрупт патоковый или блочный ? как скорость с рц4 сравнима ? и портирование на асм насколько сложно будет -)) а то у нас тут с профессором вапрос вазник -))
     
  4. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    sl0n
    Он и потоковый и блочный и хоть весь файл как один блок шифруй или хашируй если в память поместится. Только блоки до 32-бит надо выравнивать. Скорость RC4 - 7 тактов на байт, скорость EnRUPT - 4-6 тактов на байт, в зависимости от размера (это чистый С, я в ASM не оптимизировал). Портировать в ASM его очень легко и тривиально, даже в 8-битовый. Если хочешь, могу дать описание. Через неделю буду знать приняли или нет на SASC и тогда выложу на www.enrupt.com, хотя там на картинках все видно и должно быть понятно. На них нет только формул для количества кругов.
     
  5. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Раз уж тут поставили под вопрос мое умение ломать шифры, я все-таки решил взглянуть на ZC4... Убирать XOR и секретный аккумулятор было очень плохой идеей. Этот шифр теперь тривиально ломается с одним известным открытым текстом в котором есть достаточно длинная (от 40 до 256 байт, как повезет) непрерывная последовательность из одного и того же байта, любого байта. Внутреннее состояние шифра сразу после загрузки ключа легко восстанавливается вот таким простым алгоритмом, не зависимо от случайного IV добавленного в начале файла как автор предлагает. После этого любой другой файл зашифрованный тем же ключом легко расшифровывается. Вообще сломать такой шифр - это хорошая задача для школьников и первокурсников по криптологии. Ключ восстановить из известного внутреннего состояния тоже легко (как и для RC4).
     
  6. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    если в архиве ZC4_plain.rar, который выложил Dmit, была такая (байт на 80) последовательность, то турнир можно считать завершённым.

    in XOR we trust ;)

    .щааещз aka /offtop

    Ruptor
    из zc4_gd.c:
    Код (Text):
    1. For the sake of testing, the plaintext is a sequence of 73-byte wide repetitions.
    имелось в виду shake или сакэ? ;)
     
  7. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Имелось ввиду sake - "ради".
     
  8. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    :off:
    Ruptor
    Рад читать тебя не на транслите ) Еще со времен ренга и написания кейгена для армадиллы в закрытом разделе
     
  9. LazyCat

    LazyCat New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    40
    О-па ! Пока я был в коммандировке, тут без меня уже все решилось !

    Браво, Ruptor ! Вы абсолютно правы в своих замечаниях, но со времени первого поста прошло очень много времени и эти недостатки были устранены в шифрах, предложенных на турнир(ZC4full.zip на этом же криптодвижке), и которых Dmit, почему-то, очень сильно испугался. Мне искренне жаль Вашего драгоценного времени, потраченного на этот, действительно слабый шифр(по сути дела - просто скелет шифра).

    Несмотря на полное игнорирование моих условий, я согласился на этот поединок чисто с провокационной целью. Мне стало очень противно общаться с людьми из п.3(по классификации Ruptora) и я собирался и так покинуть этот форум, поэтому согласился на заведомо проигрышный вариант. Хотя, если бы не вмешательство Ruptora, еще неизвестно чем бы все закончилось, ведь Dmitу зачем-то понадобилась целая куча пар ТО/ТШ, а ведь достаточно всего одной ;)) Это о многом говорит...

    Но, как бы там ни было Вы победили, а я проиграл. И поэтому выполняю свои обязательства.
    Во-первых, приношу свои искренние извинения тем истинным профессионалам, коих я вольно или невольно обидел своим дилетанством(к настоящим хамам это не относится !!!).
    Во-вторых, я наконец-то с чистой совестью покидаю это форум, и обещаю, что меня Вы здесь больше не увидете(если у кого возникнут какие вопросы, то только в ЛС).
    Напоследок, убедительная просьба ко Всем - по предложению, ntldr удалите, пожалуйста, с Ваших компьютеров архив ZC4full.zip. Спасибо !!!
     
  10. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    LazyCat
    Какой турнир? Какой поединок? Кто проиграл? Я ни во что не играл и ZC4full.zip не видел. Я что-то не то сломал? Ну давай посмотрим на ZC4full тогда...

    А покидать форум из-за пары троллей или flamers - это честно говоря не серьезно. Их даже в моей классификации нет. Они не мафия. На меня они тоже нападают постоянно. Их везде хватает и они везде нападают на всех подряд ибо им больше нечего предложить миру, кроме их бесценной слюнобрызжащей критики - постоянно ищут к чему бы придраться. Как собаки лают на караван, так и они... Собаки лают, а караван идет и ни один верблюд даже не посмотрит в их сторону.

    Так что сильно не переживай и не сдавайся, продолжай творить. Шифры всегда чаще ломаются, чем выдерживают атаки. Такова уж их природа - пока сделаешь один криптостойкий шифр, приходится отказываться от многих десятков если не тысяч красивых но хрупких вариантов. Не сам сломаешь, так кто-то другой сломает, и это конечно же всегда обидно. Даже Брюс Шнайер признается что хотел быть первым, кто сломает Twofish, иначе бы очень расстроился. Не расстраивайся. Ты никого не обидел.
     
  11. Dmit

    Dmit New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2004
    Сообщения:
    17
    Адрес:
    Russia
    Неделя прошла, второй шаг Протокола выполнен не был. Так что, полагаю, дальнейшее рассмотрение атаки на 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 неподходящей для данного форума. Собственно, только это и вынудило меня выполнить сию циничную экзекуцию :dntknw: