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

Discussion in 'WASM.CRYPTO' started by Black_sun, Sep 12, 2006.

  1. Black_sun

    Black_sun New Member

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

    masquer wasm.ru

    Blog Posts:
    0
    Joined:
    Sep 13, 2002
    Messages:
    890
    Location:
    Николаев
    если ты математически докажешь, что при изменении начальных констант стойкость хеша не уменьшиться - вперед
     
  3. kyprizel

    kyprizel New Member

    Blog Posts:
    0
    Joined:
    Aug 1, 2003
    Messages:
    232
    Location:
    TSK
    не проще ли использовать md5(md5()) ?
     
  4. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
    kyprizel
    Проще. Но помойму при данном способе стойкость хеша только уменьшается.
     
  5. flankerx

    flankerx New Member

    Blog Posts:
    0
    Joined:
    Jul 2, 2004
    Messages:
    423
    Location:
    Moscow, Russia
    Black_sun
    ну поменяешь, и что? ты думаешь это усложнит поиск коллизий? нет, просто в программах-генераторах коллизий тоже нужно будет эти константы изменить. а дифференциалы и прочая муть от значения этих констант не зависят.
     
  6. Black_sun

    Black_sun New Member

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

    flankerx New Member

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

    Black_sun New Member

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    84
    Ну даже если и будет знать то райнбоу таблицы состовлять заново долговато
     
  9. flankerx

    flankerx New Member

    Blog Posts:
    0
    Joined:
    Jul 2, 2004
    Messages:
    423
    Location:
    Moscow, Russia
    определись уже с тем, что тебя беспокоит :)

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

    ezhfan New Member

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

    flankerx New Member

    Blog Posts:
    0
    Joined:
    Jul 2, 2004
    Messages:
    423
    Location:
    Moscow, Russia
    от начальных констант стойкость не зависит.
    ИМХО в той статье речь шла про константы в раундах.
     
  12. Black_sun

    Black_sun New Member

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

    Proteus Member

    Blog Posts:
    0
    Joined:
    Jun 19, 2004
    Messages:
    344
    Location:
    Russia
    Ты делай как все нормальные люди. Во время хеширования подмешивай свои константы в данные, особенно в начале и конце. Не обязательно сам алгоритм калечить)))
     
  14. tar4

    tar4 New Member

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

    Black_sun New Member

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

    tar4 New Member

    Blog Posts:
    0
    Joined:
    Sep 28, 2006
    Messages:
    43
    Black_sun
    Дважды прочитал 2-ю часть твоего поста и, извини, ничего не понял, что ты хотел сказать.
     
  17. Black_sun

    Black_sun New Member

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

    tar4 New Member

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

    Black_sun New Member

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    84
    "Вот я и думаю, не внес ли автор изменения в алгоритм?"- сравни промежуточные резулбтаты - где будут отличия начинаться там и копай
     
  20. Guest

    Guest Guest

    Blog Posts:
    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)) и пр.