Pull to refresh
222
0
Алексей @NeverWalkAloner

Пользователь

Send message
Упс, оказывается это хабр пробелы перед запятыми глотает. В общем там пробелы не после запятых а перед должны стоять.
С первой строкой согласен, а во второй у вас ошибочка с запятыми)
Вот так она должна выглядеть:
ыверогИ ыкълп яырбарх ан ималертс яром с ътюев, ицунв ижобиртС, иртев еС
Указал. Я правильно понимаю, что это ваша реализация и вы являетесь одним из авторов алгоритма?
Добавил следующий текст:
В случае, если длина сообщения больше 512 бит, то происходит разбиение сообщения на блоки. В случае же, если длина меньше 512 бит, то производится дополнение сообщения.

Думаю, так станет понятнее.
Спасибо за замечание)
Вы совершенно правы. Вычисления х{е, э}ш-функции возможно для сообщений любой длины. Однако, на каждой итерации обрабатывается блок длиной именно в 512 бит.
Что касается вашего замечания касательно правильности написания слова х{е, э}ш, то тема эта не нова и в интернете уже давно ведется обсуждение этого вопроса. Например вот в этой ветке. однако к какому то определенному решению так никто и не пришел, кому то ближе слово хеш, а кому то хэш. Я из числа первых, поэтому всегда использовал вариант с буквой е. Может быть он и неправильный, что спорно, но более привычный. Поэтому я все таки оставлю текущий вариант, и надеюсь на ваше понимание:)
2^42 тоже не мало. В общем, ждем 1 августа и раскрытия подробностей.
Честно говоря все равно не очень понятно. В новости говорится, что требуется пара минут. А по твоей ссылке написано, что нужно минимум 253 шифрований для взлома. И это для 5 раундов всего.
А в чем сама атака заключается? Опишите, пожалуйста, хотя бы кратко как это работает.
Но тут то фишка в том, что никаких прогенерированных таблиц не нужно. Корреляционная атака работает без предвычислений.
Хотя вы знаете, я сейчас начал читать «Conditional Estimators: An Effective Attack on A5/1» так вот там говорится что 2000 фреймов вполне реально собрать из разговора длиной 3-4 минуты, поэтому забираю свои слова обратно. Корреляционные атаки применимы таки на практике.
Понимаете мы же вскрываем не постоянный ключ, а сессионный. А собрать 2000 известных фреймов в течении одного разговора весьма затруднительно, одних только системных сообщений не хватит.
Понятно, просто сам недавно решал похожую задачу именно с этим PRNG, подумал а вдруг я не один во вселенной)
Не Вихрь Мерсенна случайно?)
Почему это XOR не стойкий? А как же одноразовый шифроблокнот?
Согласен, время стойкость не доказывает, но вероятность потенциального взлома значительно уменьшает.
Вы имеете в виду, что всевозможные стандатры типа ГОСТ, 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/

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Senior
Python
Docker
PostgreSQL
Git
OOP
English
Django
RabbitMQ
Fastapi
asyncio