АлгоритмМД5

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

  1. Black_sun

    Black_sun New Member

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

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Описание MD5, там приведены исходники на FORTH с выводом промежуточных результатов. А самому что, трудно дописать вывод переменных?
     
  3. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Я полохо программирую(паскаль) а все исходники даны как юнит. А там непонятно от куда ведется ввод.
    А что он только через сеть идет? И не копируется от туда ничего :'(( ?
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Кто он и что откуда не копируется? Если ты про текст в документа, то всё нормально копируется.
     
  5. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Странно ну да ладно сам буду мучить алгоритм
     
  6. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    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
     
  7. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Воспользовался обычным wacth- и мудрить ничего не надо.
    Спасибо за ссылки.
     
  8. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Наткнулся вот на токаое:
    вот ссылка http://ru.wikipedia.org/wiki/MD5
    Вопрос: что означает: MD5(X1||S) ?
     
  9. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Black_sun
    объединение строк.
    "уязвимость" не только в MD5, но и во всех итеративных хэш-функциях: MD4, MD5, SHA-0, SHA-1, SHA-2, RIPEMD(-160) и т.д.
     
  10. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Скажите для подбора пароля в МД5 - 2^32 операций это много ? (относительно стандартного брут форса)
     
  11. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Вопроса не понял.
    2^32 операций MD5 -- это примерно 1 час 10 мин при скорости в 1 млн в секунду.
     
  12. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Сидел - эксперемнтировал с мд5 и что-то в голову ударило(кажеться пиво ;) ), так что я увидел одну странную особнность, с помощью можно вычислить любой мд5(независимо от длинны и символов пароля), но для етого нужно произвести 2 в 32 степени операций.
    Есть одно соображение для подборапароля в мд5
    Я правильно понял требуется всего 1 час 10 минут для вычисления 2^32 хэш функий мд5?
    А зная еще и точую длинну можно еще и уменьшить время вичислений.
    Какой компьютер может выполнять 1 млн операций в секунду ?
    Если так, то получается следующее:
    Справедливо утверждение: для каждой хэш функции мд5 существует такая хеш функция мд5, после операции хеширования которой они будут равны. Для этого нам и надо произвести 2 в 32 степени операций.
    Если я изобретаю велосипед, скажите.
     
  13. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Файл содержащий все эти значения будет весить 124 гб+ еще благодоря любимым в данном случае мы подчистим повторяющиеся значения (после хеширования) ам у нас "уйдет" около 10% значений как минимум уйти может до 50 и более % , может и больше - теперь у нас остается около 120 гб значений хеш функций.
    Далее переводим в 16-ричный код и меняя по 1-4 бита пытаемся получить нужный пароль -т.е. опять же используем коллизии.
    Хотя если сервер поодерживает все символы то можно просто перевести в двоичный код - разбить на блоки и там уже по таблице сиволов составить строку, вот пример:
    Хеш 7318EFC576D8C24B47540D5ACFD58E5A
    В двоичном: 01110011000110001110111111000101011101101101100011000010010010110100011101010100000011010101101011001111110101011000111001011010
    Текст соответствующий ему:
    sФ—е~®±[*]де+fR
     
  14. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    слишком сумбурно.
    откуда взялось значение 2^32? почему не 2^64 или, например, 2^128?
     
  15. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    )) я сам толком непонял но так получается.
    мы будем использовать не как делаю сандарные брутфорсы: работают побитно, или же с буквами- при аком подборе очень много получается одинаковых хеш функций в следствии того что мд5 имеет коллизии, а работать с другим хеше(о)м.
    7318EFC576D8C24B47540D5ACFD58E5A - это хэш - в 16ричном виде всего сиволов(по сути) 32 - т.е. 128 битный хэш.
    Нужно "составить 128битный хеш" т.е кол-во символов в алфавите 16 кол.-во позиций 32: 2^(4*8)
    Ошибка есть ?
     
  16. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    тогда получается 32^16 = (2)^(5*16)=2^128.
     
  17. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    .............
    тогда 2^80=1208925819614629174706176
    32^16=1208925819614629174706176
    так сказал калькудятор
     
  18. flankerx

    flankerx New Member

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

    должно быть 16^32 == 2^128.
     
  19. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    Взаимно.
    Shame on me.
    А идея была хорошая была - если бы не математика ))
    Пойду отвлекус.
     
  20. Black_sun

    Black_sun New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    84
    В продолжении темы
    Код (Text):
    1. 87
    2. 86
    3. 85
    4. 83
    5. 82
    6. 81
    7.  
    8. 79
    9.  
    10. 76
    11.  
    12. 74
    13.  
    14. 73
    15.  
    16. 71
    17.  
    18. 69
    19. 68
    20. 67
    21.  
    22. 62
    23. 61
    24.  
    25. 59
    26. 58
    27. 57
    28.  
    29. 53
    30.  
    31. 51
    32.  
    33. 47
    34. 46
    35.  
    36. 43
    37.  
    38. 41
    39.  
    40. 38
    41. 37
    42.  
    43. 34
    44.  
    45. 31
    46.  
    47. 29
    48.  
    49. 23
    50.  
    51. 19
    52.  
    53. 17
    От этих битов значение хеш функции не зависит, проверил по отдельности каждый, в совокупности первые 4, проверка заключалась в следующем - замена данного бита на противоположный-> вычисление хэш функции-> сравнение с хеш функцией немодернизированой последовательности битов. Проверялось по 64 раза с разными последовательностями битов.
    Всего таких битов 33 (прям магия чисел )) )
    И так, если я не ошибаюсь (во второй раз), то мы можем снизить кол-во операций до 2^(128-33)=2^95. - счас правельно надеюсь вычислил колличество возможных комбинаций.
    Код (Text):
    1. 3,4028236692093846346337460743177e+38 было операций
    2. 39614081257132168796771975168  стало .
    Далее можно будет так же проверить попарно другие числа, т.е так же как и в предыдущем случае, но брать по 2 или можно 3 символа- таким образом мы сможем понять как один бит зависит от другого(похоже на бредятину ?;), но вроде пока сандартными методами еще не нашли быстрого взлома мд5)
    Таким образом можно будет дойти до 69 позиций.