Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
md5
 
когда то / давненько / была зааннонсина инфа, что у сабжа есть некоторая уязвимость в алгоритме, что позволяет брать хеш примерно в четыри раза быстрее!
кто нить в курсе? есть ли у когото подробное описание?
 
Не так уж давно это было.  Вот например...
Пока до готовой приктической реализации(на сколько мне известно) дело не дошло.
 
Вот тут описана концепция - http://www.doxpara.com/md5_someday.pdf. А вот тут вроде как реализация - http://www.doxpara.com/stripwire-1.1.tar.gz. Сам я правда не проверял.
Еще полезно почитать в багтреке дискуссию с сабжектом "MD5 To Be Considered Harmful Someday". Вышеприведенные ссылки собственно из этой дискуссии и взяты.
 
Ознакомится с  http://www.doxpara.com/md5_someday.pdf,
посмотрел  http://www.doxpara.com/md5_someday.pdf

В документе много не понял так как там много воды, и непонятный английский.

Вот как я понял эту идею.
1) MD5 блочный, с размером блока данных 16 4-байтных слова = 64 байта.
Т.е. алгоритм выглядит так

state = INITIAL

result = MD5o((MD5o(state, block0), block1) ....
т.е. результат "пережёвываения" одного блока данных - это новое начальное состояние для следующего "пережёвываения"
MD5o - алгоритм "пережёвываения" блока данных

2) Очевидно, что если мы для каких то 2х разных блоков данных, получили одно и тоже знаеничени MD5o то мы может в сообщении заменить эти блоки, без изменнения MD5 этого сообщения.

3) Очевидно, что коллизии хэша есть.

Я всё понял правильно?

Мое мнение по этому поводу:
Все это понятно сразу после знакомства с RFC 1321, нового ничего нет.

Автор нашёл (как - это уже др. дело) два блока данных, для которых существует коллизия. Все знаю, что коллизии есть!

Ввиду того, что они отличаются 6 битами, он сделал вывод, что стойкость алгоритма упала до 2 в 45.

IMHO - это частный случай, кто знает может быть существуют блоки, различающиеся только один битом, но какова верятность, что такой блок присутсвует именно в вашем сообщении?

Чтобы найти эту вероятность, нужно определить мощности всех классов блоков.
Имея сложности расчёта коллизии на каждом класса мы получим в конечном итоге стойкость алгоритма.

Практически же важно научится выявлять уязвимые классы блоков, возможно Joux, Wang или Kaminsky поделятся с нами  

Вот тогда можно будет по сообщению сказать, что его можно изменить без ущерба для MD5 вот в такое сообщение.

Увы, обычно нужно менять сообщение так, чтобы оно удовляворяло опр. условиям, а не просто 6 бит  

Так что пока практического применения не вижу.
Как и повода для волнений.



Теперь собственно о быстрее:
Очевидно, что вычислять MD5o (один блок) всё равно придётся.

Как сделать это быстрее?
1) Если часть входных данных заранее известна, производится сокращение/предварительное вычисление

2) Хвост алгоритма можно размернуть, т.к. там просто 4 сложения с константой.

3) На совр. процах задействовать SIMD
4) Оптимизировать на конкретные процессоры, например с помошью Vtune

Кроме того, можно считать на специализорованных устройствах, это по прикидкам даёт ускорение в 10^6 раз.
Но этого не достаточно для  полного перебора в течении вашей жизни
 
смотреть это

и вот это

по - моему тут больше интересного... хотя ознакомился очень бегло... праздник все-таки ;)
 
Цитата
xPow пишет:
смотреть это
Это более или менее по теме.
Но опять частные случаи


Цитата
xPow пишет:

и вот это

Дело не в скорости другой, отличной от MD5 функции, а в скорости обсчёта именно MD5 (как широко используемого метода) и его уязвимостях.

CRC32 считается быстро, но подобрать нужноЕ сообщение раз плюнуть.
 
Цитата
less пишет:

Дело не в скорости другой, отличной от MD5 функции, а в скорости обсчёта именно MD5 (как широко используемого метода) и его уязвимостях.
что то я не понимаю тебя.
так ведь смысл в том, что бы найти алгоритм, который помогал бы находить хешь быстрее чем сам md5 или нет? :-\

Цитата
less пишет:

CRC32 считается быстро, но подобрать нужно сообщение раз плюнуть.

а вот смысл этой фразы вообще не понял :(
/ зачем там "НО"? /
 
2 xPow - угу, я понял что ты ничего не понял.
Страницы: 1
Читают тему