| Сейчас на форуме: zombi-vadim, zds (+4 невидимых) | 
| eXeL@B —› Программирование —› нужно опознать криптоалгоритм | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 21 сентября 2013 01:44  · Личное сообщение · #1 Доброго времени суток всем! Ковыряя ресурсы одной игрушки, наткнулся на расшифровку данных по какому-то алгоритму. На самопал слабо похоже - если разработчик и решает защитить ресурсы своим алго, то обычно дальше xor/rol/sub никто не заходит. А тут что-то хитрое, с расшифровкой по ключу (который намертво зашит в код). Поэтому мне и кажется, что тут был использован какой-то готовый алгоритм. Опознать его мне не удаётся - констант в коде нет, криптосёрчеры молчат, а я в криптографии не силён. Я рипнул и перевёл код, но понимания это не принесло. Сорец в аттаче. ЗЫ: нет, разворачивать принцип мне не нужно. Просто хочу узнать, что это за алго.   480f_21.09.2013_EXELAB.rU.tgz - algo.cpp
![]()  | 
| 
 | 
Создано: 21 сентября 2013 02:03  · Личное сообщение · #2  | 
| 
 | 
Создано: 21 сентября 2013 02:11 · Поправил: DimitarSerg  · Личное сообщение · #3 Очень похоже на IDEA (процедура mul, у тебя weirdproc )... нашёл в DcpCrypt (искал по and $FFFF) add reversecode А вы шутрее оказались ![]() add2: Ну и собственно у Шнейера на сайте: Code: 
 ----- ds   | Сообщение посчитали полезным: -=AkaBOSS=- | 
| 
 | 
Создано: 21 сентября 2013 05:07 · Поправил: -=AkaBOSS=-  · Личное сообщение · #4 reversecode, DimitarSerg - большое спасибо! Возник еще один вопрос: а можно ли трансформировать ключ обратно к 128-битному виду? я нашёл такое описание: Code: 
 Проблема в том, что в программе зашит уже расширенный ключ, и мне кажется, что в данном случае он не является трансформированным 128-битным, а представляет собой просто рандомный набор. Или я ошибаюсь? ADD мдя. проспался, почитал описание алгоритма повнимательнее... получается, что исходный ключ сначала расширяется по алгоритму, который описан выше, а потом ЕЩЕ РАЗ трансформируется для получения ключа для дешифровки... ладно, буду разбираться... ![]()  | 
| 
 | 
Создано: 21 сентября 2013 13:20 · Поправил: reversecode  · Личное сообщение · #5  | 
| 
 | 
Создано: 22 сентября 2013 02:07 · Поправил: -=AkaBOSS=-  · Личное сообщение · #6 reversecode пишет: такую тему с таким алго уже на лабе поднимали , видимо. Но я уже покопал исходники разных реализаций алгоритма, порипал код (в аттаче). Ключ всё-таки получилось вернуть к 128-битному виду, но возник неожиданный нюанс - при использовании во внешних приложениях результат расшифровки не совпадает. Code: 
 В общем, мне нужна помощь... опять.   97cc_22.09.2013_EXELAB.rU.tgz - algo.cpp/ADD Таки разобрался cо своим вопросом. Несовпадения возникали из-за несоответствия байтового порядка. Стандартные утилиты (CrypTool etc) при шифровании/расшифровке по-умолчанию преобразуют входящие данные и ключ в big-endian, а та реализация алгоритма, с которой я столкнулся и рипнул, работала с тем что дают и не выёживалась) Проблема решена - тему закрываю. ![]()  | 
| eXeL@B —› Программирование —› нужно опознать криптоалгоритм | 
| Эта тема закрыта. Ответы больше не принимаются. | 


 





 Для печати