eXeL@B —› Программирование —› Обратить функцию |
Посл.ответ | Сообщение |
|
Создано: 02 декабря 2011 14:01 · Поправил: PE_Kill · Личное сообщение · #1 Подскажите как обратить функцию дешифрования слова, чтобы можно было слово зашифровать: Code:
----- Yann Tiersen best and do not fuck |
|
Создано: 02 декабря 2011 15:33 · Личное сообщение · #2 Код какой-то странный, точно не компиляторный. Перевел на си. Code:
----- PGP key | Сообщение посчитали полезным: PE_Kill |
|
Создано: 02 декабря 2011 16:33 · Поправил: PE_Kill · Личное сообщение · #3 |
|
Создано: 03 декабря 2011 15:51 · Личное сообщение · #4 Немного поэкспериментировал с различными значениями data и key. Думаю, что для прямого и обратного преобразований используется одна и та же функция, только с разными ключами. Если один ключ известен, то второй легко находится подбором, благо разрядность данных небольшая. Наверняка есть формула получения одного ключа из другого, но с этим лучше к специалистам по криптографии, у меня знаний не хватило этот алгоритм опознать. |
|
Создано: 03 декабря 2011 17:48 · Поправил: PE_Kill · Личное сообщение · #5 По крипто, насколько я понимаю, ntldr шарит, но он тоже не увидел что то знакомое. Prober пишет: Если один ключ известен, то второй легко находится подбором Data и Key постоянно меняются, это что то вроде RC4, где вместо Code:
используется эта функция Code:
Т.е. при бруте ключа шифрования скорость упадет в разы, а оно же как то шифруется, значит алгоритм дешифрования или генерации пары ключей обратим. ----- Yann Tiersen best and do not fuck |
|
Создано: 03 декабря 2011 17:59 · Поправил: reversecode · Личное сообщение · #6 да это какая то работа с множествами аля дискретная математика упростить до Code:
видно что первая разница и в зависимости от значений там либо +0 либо +1 да еще и вместе с Code:
помнил бы матан помог бы) по типу остатка отделения попадающий в диапазон |
|
Создано: 03 декабря 2011 19:30 · Личное сообщение · #7 PE_Kill пишет: Т.е. при бруте ключа шифрования скорость упадет в разы Можно заранее пробрутить все варианты и держать наготове массив 64К вордов (индекс - прямой ключ, значение - обратный). Будет даже быстрее, чем по формуле считать (а ее еще найти надо). Кстати, несколько пар ключей, может, эти значения кого-нибудь наведут на мысль: 0000 0000 0001 0001 0002 8001 0003 5556 0004 C001 0005 6667 0006 2AAB . . . . FFFC 999A FFFD 4000 FFFE AAAB FFFF 8000 |
|
Создано: 03 декабря 2011 20:01 · Личное сообщение · #8 |
|
Создано: 03 декабря 2011 20:18 · Личное сообщение · #9 это умножение по модулю (2^16 +1) - используется в шифре IDEA, например | Сообщение посчитали полезным: PE_Kill |
|
Создано: 03 декабря 2011 21:32 · Личное сообщение · #10 agrep ты абсолютно прав! Это действительно IDEA, даже исходник нашел, который тут применялся: Code:
А ключи используются так: Метод вычисления, использующийся для расшифровки текста по существу такой же, как и при его шифровании. Единственное отличие состоит в том, что для расшифровки используются другие подключи. В процессе расшифровки подключи должны использоваться в обратном порядке. Первый и четвёртый подключи i-го раунда расшифровки получаются из первого и четвёртого подключа (10-i)-го раунда шифрования мультипликативной инверсией. Для 1-го и 9-го раундов второй и третий подключи расшифровки получаются из второго и третьего подключей 9-го и 1-го раундов шифрования аддитивной инверсией. Для раундов со 2-го по 8-й второй и третий подключи расшифровки получаются из третьего и второго подключей с 8-го по 2-й раундов шифрования аддитивной инверсией. Последние два подключа i-го раунда расшифровки равны последним двум подключам (9-i)-го раунда шифрования. ----- Yann Tiersen best and do not fuck |
|
Создано: 05 декабря 2011 09:28 · Личное сообщение · #11 Посмотрел реализацию IDEA ключи действительно брутфорсятся оптимизированным алгоритмом: Code:
Спасибо всем за помощь. ----- Yann Tiersen best and do not fuck |
eXeL@B —› Программирование —› Обратить функцию |