С первой строкой согласен, а во второй у вас ошибочка с запятыми)
Вот так она должна выглядеть:
ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
В случае, если длина сообщения больше 512 бит, то происходит разбиение сообщения на блоки. В случае же, если длина меньше 512 бит, то производится дополнение сообщения.
Вы совершенно правы. Вычисления х{е, э}ш-функции возможно для сообщений любой длины. Однако, на каждой итерации обрабатывается блок длиной именно в 512 бит.
Что касается вашего замечания касательно правильности написания слова х{е, э}ш, то тема эта не нова и в интернете уже давно ведется обсуждение этого вопроса. Например вот в этой ветке. однако к какому то определенному решению так никто и не пришел, кому то ближе слово хеш, а кому то хэш. Я из числа первых, поэтому всегда использовал вариант с буквой е. Может быть он и неправильный, что спорно, но более привычный. Поэтому я все таки оставлю текущий вариант, и надеюсь на ваше понимание:)
Честно говоря все равно не очень понятно. В новости говорится, что требуется пара минут. А по твоей ссылке написано, что нужно минимум 253 шифрований для взлома. И это для 5 раундов всего.
Хотя вы знаете, я сейчас начал читать «Conditional Estimators: An Effective Attack on A5/1» так вот там говорится что 2000 фреймов вполне реально собрать из разговора длиной 3-4 минуты, поэтому забираю свои слова обратно. Корреляционные атаки применимы таки на практике.
Понимаете мы же вскрываем не постоянный ключ, а сессионный. А собрать 2000 известных фреймов в течении одного разговора весьма затруднительно, одних только системных сообщений не хватит.
Вы имеете в виду, что всевозможные стандатры типа ГОСТ, AES, DSA имеют неизвестную стойкость? Или что зачастую в программах используются какие то свои проприетарные алгоритмы? Если второе, то я с вами согласен более, чем на 100%. Ну а стандартам я все-таки доверяю. Вспомнить хоть отбор на конкурсе sha3. После стольких лет исследований алгоритму думаю можно верить.
Да, вы некорректно назвали это «chosen prefix», т.к. это классический пример preimage взлома. Создать пару для message, такую что H(message)=H(message2). Это уже не коллизия, это именно второй прообраз. Мне кажется вы не улавливаете разницу.
Во-первых, есть так называемая collision resistance, а есть preimage resistance. И хотя эти понятия легко перепутать, отличия весьма существенны.
Так, collision resistance это способность хэш-функции противостоять случайным коллизиям, т.е. применительно к MD5 ни о какой collision resistance говорить не приходится.
А вот preimage resistance это уже как раз то, о чем мы с вами в данный момент спорим, т.е. способность найти по данному x такое x`, что x`!=x, но H(x`)=H(x). Так вот такие атаки на MD5 известны, конечно но они очень затратны. По той же ссылки, которую вы любезно привели выше, написано:
In April 2009, a preimage attack against MD5 was published that breaks MD5's preimage resistance. This attack is only theoretical, with a computational complexity of 2123.4 for full preimage.
Сами понимаете, тут никакой кластер не спасет.
Во-вторых, атаки на collision resistance подразделяются в свою очередь на два вида Classical collision attack и Chosen-prefix collision attack. Так вот, атаки первого типа на MD5 не требуют практически никаких усилий. Коллизии находятся даже на не самом сильном ПК за считанные секунды. К сожалению они неприменимы для подделки SSL-сертификатов, в силу особой структуры файлов.
Но к счастью или несчастью, как посмотреть, есть еще Chosen-prefix collision attack, сложность которой для MD5 составляет примерно 250.
Так что нет, я не думаю что им просто захотелось погонять кластер.) Просто, продемонстрировали практическую реализацию Chosen-prefix collision attack.
То о чем вы говорите элементарно сделать, имея два блока, порождающих коллизию. Я просто когда то интересовался этим вопросом. Если интересно, вот мой давний пост о том как это можно сделать самостоятельно habrahabr.ru/post/113127/
Вот так она должна выглядеть:
ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
Думаю, так станет понятнее.
Спасибо за замечание)
Что касается вашего замечания касательно правильности написания слова х{е, э}ш, то тема эта не нова и в интернете уже давно ведется обсуждение этого вопроса. Например вот в этой ветке. однако к какому то определенному решению так никто и не пришел, кому то ближе слово хеш, а кому то хэш. Я из числа первых, поэтому всегда использовал вариант с буквой е. Может быть он и неправильный, что спорно, но более привычный. Поэтому я все таки оставлю текущий вариант, и надеюсь на ваше понимание:)
Во-первых, есть так называемая collision resistance, а есть preimage resistance. И хотя эти понятия легко перепутать, отличия весьма существенны.
Так, collision resistance это способность хэш-функции противостоять случайным коллизиям, т.е. применительно к MD5 ни о какой collision resistance говорить не приходится.
А вот preimage resistance это уже как раз то, о чем мы с вами в данный момент спорим, т.е. способность найти по данному x такое x`, что x`!=x, но H(x`)=H(x). Так вот такие атаки на MD5 известны, конечно но они очень затратны. По той же ссылки, которую вы любезно привели выше, написано:
Сами понимаете, тут никакой кластер не спасет.
Во-вторых, атаки на collision resistance подразделяются в свою очередь на два вида Classical collision attack и Chosen-prefix collision attack. Так вот, атаки первого типа на MD5 не требуют практически никаких усилий. Коллизии находятся даже на не самом сильном ПК за считанные секунды. К сожалению они неприменимы для подделки SSL-сертификатов, в силу особой структуры файлов.
Но к счастью или несчастью, как посмотреть, есть еще Chosen-prefix collision attack, сложность которой для MD5 составляет примерно 250.
Так что нет, я не думаю что им просто захотелось погонять кластер.) Просто, продемонстрировали практическую реализацию Chosen-prefix collision attack.