Реализация ENRUPT и RC4 на фасме -)

Тема в разделе "WASM.CRYPTO", создана пользователем sl0n, 30 мар 2008.

  1. sl0n

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

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    Ну вот как и обещал партировали мы с URI енрупт =)
    За шифр спасибо Раптор большое

    Все пользуют и радуются и не плодят дебильных топиков в стиле "я придумал супер шифр"

    http://sl0n.dzena.net/t/crypto_.rar
     
  2. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Реализация - это хорошее дело и спасибо за доверие ко всё-таки новому пока шифру, но...

    1) для сравнения с RC4 желательно использовать RUPT/aeRUPT - поточный шифр, он в 3 раза быстрее

    2) умножать на 9 не нужно, сдвиг влево на 3 бита и сложение гораздо быстрее и не на много больше по размеру

    3) в принципе EnRUPT не предназначался для поддержки всех размеров в одном коде (все блоки и особенно ключи рекомендуется ограничивать до 2^n размеров для скорости)... но делить в нём всё равно ни на что не надо - можно просто цикл уменьшить до xw-2 и добавить два круга для xw-1 и 0; то же самое с индексом ключа - гораздо быстрее отдельный регистр увеличивать на 1 на каждом шагу или просто использовать r & (kw-1)

    Надеюсь тут есть специалисты по оптимизации ассемблерного кода...
     
  3. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Ну собсно div и imul нужно оптимизировать.
    div в mul превращать, а mul R,9 либо в сдвиги и сложение, либо в lea R,[R + R*8]
     
  4. sl0n

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

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    Ну собственно меня больше размер интересует чем скорость =)
     
  5. Joes

    Joes New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    98
    Кстати, коль тема пошла о enRupt, мировая общественность - как, восприняла аль нет?
     
  6. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    asmfan
    div и mul можно вообще убрать :)
     
  7. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Сперва оригинальный Си код не видел, смотрел только асм. имеется ввиду если делитель степерь двойки? То остаток and'ом берётся. Умножение не на константу в алгоритме видел - его чем заменить?
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Переписал на макросах, т.к. нередко надо закриптовать чего-нить налету при компиляции. Пока что только enRUPT, реализацию поточного шифра сделаю под настроение.

    Скорость компиляции довольно высокая, шифрование и дешифрование 1 мб данных 128битным ключом занимает всего 7 сек, а для более практичного объёма (64 кб) аналогичные операции отнимают 0.4 сек.
     
  9. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Joes

    Сейчас новым шифром конечно же никого не удивишь. Подавляющее большинство тех, кто умеет их ломать, их не делают, просто потому что слишком большой риск опозориться когда кто-то сломает. Ломают всеми правдами и неправдами, поэтому так мало новых дизайнов – бумаг с атаками в сотни раз больше и далеко не все из них имеют какую-то ценность и вообще работают, а автору шифра – позор. Да и шифров хороших хватает. Зачем что-то новое изобретать, если старое работает и не ломается? Даже 2^217 криптостойкость какого-то шифра против какой-то атаки которой нужны 2^209 выбранных блоков – это разве кого-то волнует? Но если ключ оказался размером в 256 бит, то “сломавшему” поздравления, а автору шифра – позор, хотя пользы от такой “атаки” никому никакой. Так большинство шифров на самом деле не ломаются, за исключением гигантских дыр типа первых двух байтов в RC4, использования TEA как хаш, классов слабых ключей как в DES или IDEA и т.д.

    Академикам интересно ломать интересные шифры - либо слишком быстрые, либо слишком простые, либо слишком гибкие, а в этом совмещены и гибкость, и скорость, и простота. Ещё людей заинтриговала потенциальная возможность соединить теорию Luby и Rackoff с практическими шифрами, тогда можно будет делать теоретически доказуемо неломаемые шифры. Это первый шаг в этом направлении.

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

    Некоторые детали моего собственного анализа были показаны только в слайдах из-за нехватки места в бумаге. Хотя конечно же основной анализ будет всей толпой во время SHA-3 соревнования, если я успею к концу июня сделать очень быстрые варианты на C для MSVC 2005 соптимизированные под Intel Core 2 Duo. У меня тут есть кое-какие идеи как блочное хаширование можно ускорить в 3 раза по сравнению с обычным MD режимом ничего при этом не усложняя, но надо проверять... Но менять round function я точно не собираюсь.

    А что думает мировая общественность – это у вас надо спросить.
     
  10. sl0n

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

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    общественность настроенна пазитивно =) хоть можеть и не мировая

    кодес соптимизируем как время будеть ...
     
  11. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    IceStudent Поточный просто - вместо k там переменная, сперва в ней 0, а потом накапливается XOR всех результатов после *9 на каждом круге и всех x[i+xw/2] к ним. Возвращается по 32 бита на каждом втором круге.
     
  12. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    asmfan
    Не, не видел. Если речь о enrupt
     
  13. sl0n

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

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    К стать раптора вот мысль паявилось тваю реализацию улучшенную ТЕА сделоть или ну нафик ?
    Нужна она каму то ?
     
  14. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    sl0n А это и есть улучшенный TEA, точнее XXTEA. Упрощённый, укреплённый и ускоренный.
     
  15. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    asmfan Там нет умножения на переменные, только на 9 через lea eax,[eax+eax*8].
     
  16. sl0n

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

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    А ну раз так то гут =) бойцы невидимого фронта рады стараться =)
     
  17. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    sl0n А реализации людям всякие понадобятся, особенно если реакция мировой общественности будет настолько положительная, что он в SHA-3 хотя бы до финала дойдёт...
     
  18. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    Ruptor
    и когда будет получена чёткая граница надёжности твоего шифра??
     
  19. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Обычный срок появления доверия общественности к шифру – 4 года после публикации. Хотя есть надежда что SHA-3 competition этот процесс ускорит.

    У кого есть опыт анализа и инструменты как мои, те конечно же сразу за пару часов анализа могут определить сколько кругов не ломается и какие потенциальные дырки могут быть. Я могу привести пару десятков примеров как малейшие структурные изменения в шифре (например убрать сдвиг влево на 1 бит или прибавление номера круга или заменить все операции на арифметическое сложение) сделают его ломаемым даже не зависимо от количества кругов. Остальным наверное придётся ждать. Доверять доказательствам автора смысла не имеет.
     
  20. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    Ruptor
    просвяти - ка, пожалуйста: так тесты идут просто относительно определённого ряда методик или есть попытка док-ва, что реальной методики слома нет вообще???