Можно ли сломать хеш md5 с помощью генетических алгоритмов? - PullRequest
4 голосов
/ 02 мая 2011

Зная, как работает md5, можно ли будет использовать алгоритм на основе совокупности, такой как генетическое программирование, для взлома простых паролей?

В качестве примера приведен хэш md5 для строки между 5до 10 символов, мы должны попытаться вернуть строку обратно.

Если да, то что может быть

  • Хорошее представление для отдельного населения
  • Критерии отбора
  • Методы рекомбинации

Это делается для того, чтобы понять применение генетических алгоритмов и узнать, делал ли кто-нибудь что-либо в этом роде.

Ответы [ 4 ]

7 голосов
/ 02 мая 2011

Не совсем.

Имея всего 5 символов, вы можете грубо форсировать его за не слишком разумное время, но, вероятно, вы спрашиваете больше о GA, чем о взломе MD5. Проблема в том, что в хеше MD5 нет эксплуатируемой структуры. Строки, которые «близки друг к другу», не генерируют хэши, которые «близки друг к другу» при любых полезных отношениях расстояния. Фитнес-функция будет в основном случайной.

1 голос
/ 10 апреля 2014

Хотя ответ, вероятно, «нет», есть одна оговорка, которую следует учитывать: опубликованные коллизии - это строки, которые отличаются только несколькими ключевыми байтами: https://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities

Гадание на незашифрованном тексте с помощью генетического алгоритма не гарантируется, но может быть более эффективным обнаружить столкновение таким образом.

Или, если он в PHP и сравнивает хэш md5 с оператором == ... https://eval.in/108854

1 голос
/ 02 мая 2011

Нет, маловероятно.

Используется генетический алгоритм, напр. для нахождения локального / глобального максимума / минимума некоторой функции. В случае хеша md5, если вы измените значение, для которого вычисляете хеш md5, хеш md5 полностью изменится, поэтому сужение диапазона входных значений будет совершенно бесполезным. Алгоритм MD5 был разработан для хеширования сгенерированного значения, если входные данные изменяются каким-либо образом. Единственная возможность найти правильное значение - это когда вы применяете мутацию, но это приводит к проверке случайных входных значений на предмет того, генерируют ли они данный хэш (который, как сказал оксилумин, является просто атакой методом грубой силы).

Вы можете узнать больше о поиске значения, которое сгенерировало определенный хэш md5 здесь (радужные таблицы) .

1 голос
/ 02 мая 2011

Я думаю, что ответ "нет". Потому что вы не можете получить любую функцию кроссовера. И фитнес-функция будет булевой. GA только с оператором мутации и такой фитнес-функцией - грубая сила.

...