Уважаемые гуру, помогите найти реализацию RTEA-256 от Ruptor

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

  1. alexanderwm

    alexanderwm New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2008
    Сообщения:
    43
    [DELETED]
     
  2. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    Эта, а зачаем тебе чей-то самопальный алго?
     
  3. alexanderwm

    alexanderwm New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2008
    Сообщения:
    43
    Просто знаю, что у Ruptora идеи намного надежнее, нежели у кого-либо другого. Взять, хотябы, его EnRupt.
    Интересуюсь алгоритмами, собираю, так сказать, коллекционирую реализации - не для внедрения в какой-либо коммерческий продукт и защиты информации с их помощью.
    А стойкость RTEA намного выше чем у TEA и даже XTEA, что подтверждают тесты.
     
  4. CreatorCray

    CreatorCray Member

    Публикаций:
    0
    Регистрация:
    5 авг 2006
    Сообщения:
    201
    alexanderwm
    Ruptor на этом форуме пробегал - поищи в списке пользователей и пошли ему личное сообщение или на мыло напиши если оно там указано. ИМХО, алгоритм, полученный от автора, будет самым лучшим для тебя вариантом.

    defectoscopy.com кстати это его сайт. Так что контакты можешь еще и там поискать.
    Там кстати про RTEA есть чуток: http://defectoscopy.com/forum/viewtopic.php?t=21

    Впрочем, основываться на тестах алгоритма, сделанных только его автором как то гхм... ненадежно. Кто нибудь еще проводил подобные исследования?
     
  5. z_x_spectrum

    z_x_spectrum New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    145
    Ты прям словами Руптора говоришь... Наверно и раунды кругами называешь?
    Strong в контексте криптографии переводится как "стойкий"

    И с чего ты взял про сойкость RTEA и EnRupt?
    Только на основании каких-то статистических тестов с http://defectoscopy.com лично я не стал бы делать далеко идущие выводы. Стойкость алгоритма доказывается годами его исследований крипто-коммунити.
     
  6. alexanderwm

    alexanderwm New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2008
    Сообщения:
    43
    Ну, мне ведь исключительно для познавательных целей , поэтому фактическая стойкость совсем некритична (даже если таковая вдруг окажется под вопросом)

    Спасибо, сообщение отправил (пока в личку).
     
  7. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    I must apologise for correcting this post incorrectly... I got confused by my own implementation of my own cipher. What a joke! :)

    for (r=0;r<kw*4+32;r++) c=b,b+=a+((b<<6)^(b>>8))+key[r%kw]+r,a=c;

    is the same as:

    for (r=0;r<kw*4+32;r++) a+=b+((b<<6)^(b>>8))+key[r%kw]+r,r++,b+=a+((a<<6)^(a>>8))+key[r%kw]+r;

    Therefore to decrypt:

    for (r=kw*4+31;r!=-1;r--) b-=a+((a<<6)^(a>>8))+key[r%kw]+r,r--,a-=b+((b<<6)^(b>>8))+key[r%kw]+r;

    which is the same as:

    for (r=kw*4+31;r!=-1;r--) c=a,a=b-=a+((a<<6)^(a>>8))+key[r%kw]+r,b=c;
     
  8. alexanderwm

    alexanderwm New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2008
    Сообщения:
    43
    Огромное спасибо!

    Корректен ли нижеуказанный код?

    Проверить вышеуказанный мне не удалось, но после небольшой перестановки получилось добиться дешифровки (CRC32 полностью совпадает):

    Видимо, в код закралась ошибочка при перепечатке.


    Код (Text):
    1. #define u32 unsigned long
    2.  
    3. u32 key[8] = {1,1,1,1,1,1,1,1};
    4.  
    5. int  __stdcall __export crypt (u32 *ap, u32 *bp)
    6. {
    7. u32 a=*ap;
    8. u32 b=*bp;
    9. u32 r;
    10.  
    11. for (r=0;r<64;r++)
    12. {
    13.  
    14.  b+=a+((a<<6)^(a>>8))+ (key[r%8]+r);
    15.  r++;
    16.  a+=b+((b<<6)^(b>>8))+ (key[r%8]+r);
    17. }
    18.  
    19. *ap= a;
    20. *bp= b;
    21.  
    22.  
    23. return 0;
    24. }
    25.  
    26.  
    27. int  __stdcall __export decrypt (u32 *ap, u32 *bp)
    28. {
    29. u32 a=*ap;
    30. u32 b=*bp;
    31. long r;
    32.  
    33. for (r=63;r>=0;r--)
    34. {
    35.  a-=b+((b<<6)^(b>>8))+ (key[r%8]+r);
    36.  r--;
    37.  b-=a+((a<<6)^(a>>8))+ (key[r%8]+r);
    38.  
    39. }
    40.  
    41. *ap= a;
    42. *bp= b;
    43.  
    44.  
    45. return 0;
    46. }
     
  9. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    The code in my previous post was incorrect. I have just fixed it, both variants, the half-round and the full round unrolled.
     
  10. alexanderwm

    alexanderwm New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2008
    Сообщения:
    43
    Yes, I had fixed and tested, it works ok, thanx.
     
  11. pronix

    pronix New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2008
    Сообщения:
    2
    Хотелось бы поднять такой вопрос. Насколько уместным придется RTEA (уж больно подкупает он своей простотой) для следующей задачи:
    Клиентам, использующим смарткарты с прошитыми в них ключами, передается некий информационный поток, зашифрованный на 64 битном ключе K (генерируется железкой и по идее должен быть действительно случайным). В этом потоке присутствует тот самый ключ K, зашифрованный на индивидуальных ключах абонентов. Клиент из всего потока шифрованных ключей выбирает по идентификатору свой и расшифровывает его, получая ключ K, которым расшифровывает информационный поток.
    Проблема состоит в выборе наиболее подходящего алгоритма шифрования.
    Алгоритм должен быть устойчив к атакам на основе открытого шифртекста, поскольку не исключена ситуация, что ключ смогут "достать" из смарткарты. В случае раскрытия одного или нескольких ключей, остальные не должны быть скомпрометированы.
    И еще, не понятно для чего в подобных системах ключ K меняется достаточно часто раз в 10-15 сек. Неужели его смена раз в несколько часов заметно увеличит возможность дешифровки?
     
  12. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    Меня попросили прокомментировать, но я должен воздержаться. Бесполезно спрашивать автора о криптостойкости его алгоритма. С 64-битовыми ключами в карточках особой криптостойкости не будет, даже самый стойкий алгоритм мало чем поможет – ломать его будут просто полным перебором. Поэтому я надеюсь что в карточках 128-256-битовые ключи, а 64-битовые используются только для самого потока... Тогда можете спать спокойно и RTEA не подведёт. А ключ меняется раз в несколько секунд чтобы затруднить его публикацию в интернете, иначе было бы очень легко каждые несколько часов новый ключ расшифрованный одним из известных ключей всем раздавать через сервер.
     
  13. pronix

    pronix New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2008
    Сообщения:
    2