Ну вот как и обещал партировали мы с URI енрупт =) За шифр спасибо Раптор большое Все пользуют и радуются и не плодят дебильных топиков в стиле "я придумал супер шифр" http://sl0n.dzena.net/t/crypto_.rar
Реализация - это хорошее дело и спасибо за доверие ко всё-таки новому пока шифру, но... 1) для сравнения с RC4 желательно использовать RUPT/aeRUPT - поточный шифр, он в 3 раза быстрее 2) умножать на 9 не нужно, сдвиг влево на 3 бита и сложение гораздо быстрее и не на много больше по размеру 3) в принципе EnRUPT не предназначался для поддержки всех размеров в одном коде (все блоки и особенно ключи рекомендуется ограничивать до 2^n размеров для скорости)... но делить в нём всё равно ни на что не надо - можно просто цикл уменьшить до xw-2 и добавить два круга для xw-1 и 0; то же самое с индексом ключа - гораздо быстрее отдельный регистр увеличивать на 1 на каждом шагу или просто использовать r & (kw-1) Надеюсь тут есть специалисты по оптимизации ассемблерного кода...
Ну собсно div и imul нужно оптимизировать. div в mul превращать, а mul R,9 либо в сдвиги и сложение, либо в lea R,[R + R*8]
Сперва оригинальный Си код не видел, смотрел только асм. имеется ввиду если делитель степерь двойки? То остаток and'ом берётся. Умножение не на константу в алгоритме видел - его чем заменить?
Переписал на макросах, т.к. нередко надо закриптовать чего-нить налету при компиляции. Пока что только enRUPT, реализацию поточного шифра сделаю под настроение. Скорость компиляции довольно высокая, шифрование и дешифрование 1 мб данных 128битным ключом занимает всего 7 сек, а для более практичного объёма (64 кб) аналогичные операции отнимают 0.4 сек.
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 я точно не собираюсь. А что думает мировая общественность – это у вас надо спросить.
общественность настроенна пазитивно =) хоть можеть и не мировая кодес соптимизируем как время будеть ...
IceStudent Поточный просто - вместо k там переменная, сперва в ней 0, а потом накапливается XOR всех результатов после *9 на каждом круге и всех x[i+xw/2] к ним. Возвращается по 32 бита на каждом втором круге.
К стать раптора вот мысль паявилось тваю реализацию улучшенную ТЕА сделоть или ну нафик ? Нужна она каму то ?
sl0n А реализации людям всякие понадобятся, особенно если реакция мировой общественности будет настолько положительная, что он в SHA-3 хотя бы до финала дойдёт...
Обычный срок появления доверия общественности к шифру – 4 года после публикации. Хотя есть надежда что SHA-3 competition этот процесс ускорит. У кого есть опыт анализа и инструменты как мои, те конечно же сразу за пару часов анализа могут определить сколько кругов не ломается и какие потенциальные дырки могут быть. Я могу привести пару десятков примеров как малейшие структурные изменения в шифре (например убрать сдвиг влево на 1 бит или прибавление номера круга или заменить все операции на арифметическое сложение) сделают его ломаемым даже не зависимо от количества кругов. Остальным наверное придётся ждать. Доверять доказательствам автора смысла не имеет.
Ruptor просвяти - ка, пожалуйста: так тесты идут просто относительно определённого ряда методик или есть попытка док-ва, что реальной методики слома нет вообще???