Пластичность МД5 ?

Тема в разделе "WASM.CRYPTO", создана пользователем Black_sun, 12 сен 2006.

  1. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    МД 5 является самым распространенным алгоритмом хэширования и поэтому многие ищут коллизии или просто пытаются провести крипто-анализ, но ведь в алгоритме есть 4 константы которые легко поменять на свои собственные, написав собственную фукцию хэширования МД5 , но уже с этими данными. И поэтому даже если взломщик узнает хэш и пароль к нему (но где стандартные константы), он не сможет этим воспользоваться.
    Имеет ли право на жизнь эта идея или нет ?
     
  2. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    если ты математически докажешь, что при изменении начальных констант стойкость хеша не уменьшиться - вперед
     
  3. kyprizel

    kyprizel New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    232
    Адрес:
    TSK
    не проще ли использовать md5(md5()) ?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    kyprizel
    Проще. Но помойму при данном способе стойкость хеша только уменьшается.
     
  5. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Black_sun
    ну поменяешь, и что? ты думаешь это усложнит поиск коллизий? нет, просто в программах-генераторах коллизий тоже нужно будет эти константы изменить. а дифференциалы и прочая муть от значения этих констант не зависят.
     
  6. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Стойкось не измениться если эти числа не поменяют свою разрядность.
    но ведь если "пользователь" не будет знать этих канстант, то тогда вся его работа пойдет на смарку а брутом брать еще эти константы- вообще - страшная вещь(по колличеству потраченного времени).
     
  7. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Black_sun
    если пользователь не будет знать этих констант -- то это уже не хе-функция, а MAC :)
    Вообще, в криптографии принято считать что подобные константы известны. Пусть они не совпадают с константами из RFC, но они известны.
     
  8. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Ну даже если и будет знать то райнбоу таблицы состовлять заново долговато
     
  9. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    определись уже с тем, что тебя беспокоит :)

    имеет, но ИМХО смысла в ней -- ноль.
     
  10. ezhfan

    ezhfan New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2004
    Сообщения:
    4
    Адрес:
    Russia
    Не помню уже авторов, пару лет задат промелькнула буржуйская статья на тему "дырявого МД5". Внутри можно было как раз вычитать, как бы изменилась криптостойкость МД5, имей константы другие значения.
    В-общем, если бы да кабы, криптостойкость МД5 упала бы. Так что менять можно на свой страх и риск.
     
  11. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    от начальных констант стойкость не зависит.
    ИМХО в той статье речь шла про константы в раундах.
     
  12. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Поискав в сети, нашел - зависит: были бы другие начальные А.Б.С.Д то алгоритм бы потерял свою криптостойкость. Были даже разработанны математические модели взлома мд5 по измененным данным.
    Но и от раундов тоже зависит, недаром же добавили 4-ый раунд.
    Спасибо за помощь.
     
  13. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Ты делай как все нормальные люди. Во время хеширования подмешивай свои константы в данные, особенно в начале и конце. Не обязательно сам алгоритм калечить)))
     
  14. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    Поясни, пожалуйста, что ты имеешь ввиду? Я тут занимаюсь одним протектором, который использует МД5. Но в новой версии автор что-то изменил в алгоритме МД5, так что одинаковые входные данные приводять к разным результатам.
    И пока не могу понять, в чем суть изменений.
     
  15. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Суть не изменится, если злоумышленник узнает способ кодировния информации, тоько разве что не сможет использовать те же райнбоу табле.
    Но может помочь если злоумышленнику кажеться что достаточно знать только что это мд5, а сам алгоритм ето не интересует, вот тут то и придется ему поломать голову ))
    "Но в новой версии автор что-то изменил в алгоритме МД5, так что одинаковые входные данные приводять к разным результатам." - если твкое сделанно, то зачем вообще шифровать? надо же сравнивать с чем то а если оно разно как ты можешь сказить что входные данные были одинаковыми? Прально, никак))) Следовательно фся работа идет на смарку
     
  16. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    Black_sun
    Дважды прочитал 2-ю часть твоего поста и, извини, ничего не понял, что ты хотел сказать.
     
  17. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Спасиб что сказал (я тогда был болен и пьян ;)))
    "Но в новой версии автор что-то изменил в алгоритме МД5, так что одинаковые входные данные приводять к разным результатам."
    Вообще МД5 - это хеш пароля служащий для авторизации пользователя и сравнивается не пароль, а хеш пароля(это понятно).
    Т.е. если у тебя при одинаковых входных данных будут разные значения мд5, то как пользователь авторизуется? Если такое возможно, то напиши.
     
  18. tar4

    tar4 New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2006
    Сообщения:
    43
    Не много не так. Если кратко, то в исследуемом протекторе введенное имя+пароль преобразуются в конечном счете в число (dword, это условно входные данные) и вот это число уже подвергается обработке хэш-функцией МД5 и получается на выходе 12-байтное число (3 dworda). Так вот только об этом идет речь. В разных билдах протектора при одном и том же входном числе (dword), на выходе - разные (3 dwordа). Вот я и думаю, не внес ли автор изменения в алгоритм?
     
  19. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    "Вот я и думаю, не внес ли автор изменения в алгоритм?"- сравни промежуточные резулбтаты - где будут отличия начинаться там и копай
     
  20. Guest

    Guest Guest

    Публикаций:
    0
    Попробуй добавить в код 4 раунда по хешированию хеша, примерно так:

    __round:
    hash = md5(hash);
    i++;
    if (i < 5) __goto: __round;

    Это намного надежнее чем менять константы, если найти колизию то хеш 3 раунда уже найти неудастся, а 2 и 1 вообще без шансов.

    P.S. хешировать лучше хеш в текстовом виде, так даже перебор затянется на долгое время (нужно будет преобразовать в строку, хешировать, повторить это по числу раундов - а скорость выполнения преобразования в строку идет очень долго).
    P.S.S. Форумные движки тоже издеваются над md5, примерно так: hash = md5(md5(hash)+md5(hash)) и пр.