Доброго времени суток! Я вот по какому вопросу: где можно най ти программу (можно и исходники) по вычислению хеш мд5, но так что бы в файл выводилаь не сама функция а значания 4-х пременных в бинарном и 10-ичном виде после каждой операции. (Тема двояка, поэтому прошу ее оставить в данной ветке форума).
Описание MD5, там приведены исходники на FORTH с выводом промежуточных результатов. А самому что, трудно дописать вывод переменных?
Я полохо программирую(паскаль) а все исходники даны как юнит. А там непонятно от куда ведется ввод. А что он только через сеть идет? И не копируется от туда ничего :'(( ?
h**p://www.ietf.org/rfc/rfc1321.txt Network Working Group R. Rivest Request for Comments: 1321 MIT Laboratory for Computer Science and RSA Data Security, Inc. April 1992 The MD5 Message-Digest Algorithm
Наткнулся вот на токаое: вот ссылка http://ru.wikipedia.org/wiki/MD5 Вопрос: что означает: MD5(X1||S) ?
Black_sun объединение строк. "уязвимость" не только в MD5, но и во всех итеративных хэш-функциях: MD4, MD5, SHA-0, SHA-1, SHA-2, RIPEMD(-160) и т.д.
Сидел - эксперемнтировал с мд5 и что-то в голову ударило(кажеться пиво ), так что я увидел одну странную особнность, с помощью можно вычислить любой мд5(независимо от длинны и символов пароля), но для етого нужно произвести 2 в 32 степени операций. Есть одно соображение для подборапароля в мд5 Я правильно понял требуется всего 1 час 10 минут для вычисления 2^32 хэш функий мд5? А зная еще и точую длинну можно еще и уменьшить время вичислений. Какой компьютер может выполнять 1 млн операций в секунду ? Если так, то получается следующее: Справедливо утверждение: для каждой хэш функции мд5 существует такая хеш функция мд5, после операции хеширования которой они будут равны. Для этого нам и надо произвести 2 в 32 степени операций. Если я изобретаю велосипед, скажите.
Файл содержащий все эти значения будет весить 124 гб+ еще благодоря любимым в данном случае мы подчистим повторяющиеся значения (после хеширования) ам у нас "уйдет" около 10% значений как минимум уйти может до 50 и более % , может и больше - теперь у нас остается около 120 гб значений хеш функций. Далее переводим в 16-ричный код и меняя по 1-4 бита пытаемся получить нужный пароль -т.е. опять же используем коллизии. Хотя если сервер поодерживает все символы то можно просто перевести в двоичный код - разбить на блоки и там уже по таблице сиволов составить строку, вот пример: Хеш 7318EFC576D8C24B47540D5ACFD58E5A В двоичном: 01110011000110001110111111000101011101101101100011000010010010110100011101010100000011010101101011001111110101011000111001011010 Текст соответствующий ему: sФ—е~®±[*]де+fR
)) я сам толком непонял но так получается. мы будем использовать не как делаю сандарные брутфорсы: работают побитно, или же с буквами- при аком подборе очень много получается одинаковых хеш функций в следствии того что мд5 имеет коллизии, а работать с другим хеше(о)м. 7318EFC576D8C24B47540D5ACFD58E5A - это хэш - в 16ричном виде всего сиволов(по сути) 32 - т.е. 128 битный хэш. Нужно "составить 128битный хеш" т.е кол-во символов в алфавите 16 кол.-во позиций 32: 2^(4*8) Ошибка есть ?
............. тогда 2^80=1208925819614629174706176 32^16=1208925819614629174706176 так сказал калькудятор
у да, калькулятор сказал правильно, это у меня от затянувщихся выходных крыша отъехала. должно быть 16^32 == 2^128.
В продолжении темы Код (Text): 87 86 85 83 82 81 79 76 74 73 71 69 68 67 62 61 59 58 57 53 51 47 46 43 41 38 37 34 31 29 23 19 17 От этих битов значение хеш функции не зависит, проверил по отдельности каждый, в совокупности первые 4, проверка заключалась в следующем - замена данного бита на противоположный-> вычисление хэш функции-> сравнение с хеш функцией немодернизированой последовательности битов. Проверялось по 64 раза с разными последовательностями битов. Всего таких битов 33 (прям магия чисел )) ) И так, если я не ошибаюсь (во второй раз), то мы можем снизить кол-во операций до 2^(128-33)=2^95. - счас правельно надеюсь вычислил колличество возможных комбинаций. Код (Text): 3,4028236692093846346337460743177e+38 было операций 39614081257132168796771975168 стало . Далее можно будет так же проверить попарно другие числа, т.е так же как и в предыдущем случае, но брать по 2 или можно 3 символа- таким образом мы сможем понять как один бит зависит от другого(похоже на бредятину ?, но вроде пока сандартными методами еще не нашли быстрого взлома мд5) Таким образом можно будет дойти до 69 позиций.