md5 -- чо опять не так?

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: md5 -- чо опять не так?

Сообщение vitaly_l » 08.03.2018 08:23:56

azsx писал(а):что Вы Виталий не прав.

Я не прав???????????????? Вы серьёзно?????????????????????????!
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: md5 -- чо опять не так?

Сообщение azsx » 08.03.2018 08:27:44

ага. Я же вам писал почему.
Расчётов по трудоёмкости больше, результат тот же. Няшек нет.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: md5 -- чо опять не так?

Сообщение vitaly_l » 08.03.2018 08:35:36

Код: Выделить всё
setLength(md5Array, md5max * 2 );
for i := 0 to md5max * 2 - 1 do begin
     if in_array(md5(i), md5Array) then ShowMessage('Это уже '+IntToStr(i)+' совпадение хэша!');
     md5Array[i] := md5(i);
end;

У Вас будет size(md5max) (точнее 128-битное число) - совпадений, т.к. прогоняется 256 битный цикл, в который 128 битное число умещается как раз ровно два раза. И совпадений хэша будет 128 - битное число раз, т.к. иначе технически не возможно. Это всё равно что байт, прогнать 512 раз и утверждать что, число 255, при 512 инкрементных итерациях повторится только 1 раз.

И я неправ?????

Я ещё могу понять и поверить, что в МВД, СК, прокуратурах и судах не знают, что такое камертон и балалайка.
Я ещё могу понять и поверить, что в МВД, СК, прокуратурах и судах не знают, что такое камертон и гитара.
Но чтобы программист утверждал, что у 256 битного числа не будет 128 битное число повторов 128-битных хэшей в 256-битном цикле... это нонсенс!
Это всё потому что, Вы слушаете иронизирующих диверсантов, а не умных и логичных художников.
И благодаря этому происходят аварии т.к. программистов вводят в заблуждение.
И никакого юмора! Всё серьёзно!!!

Вот проверочный код попробуйте и убедитесь, что ТЕХНИЧЕСКИ невозможно сделать уникальный 128-битный хэш даже для 256 битных чисел, т.к. это невозможно также и для байтовых чисел из нижеприведённого примера:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
b,c:byte;
i:integer;
begin
  b:=0;
  c:=0;
  for i:= 0 to 1024 do begin
    inc(b);
    if (b = 255) then begin
      inc(c);
      ShowMessage('Это число 255 повторяется уже '+IntToStr(c)+' раз');
    end;
  end;
end;


Добавлено спустя 11 минут 11 секунд:
azsx писал(а):результат тот же

:roll: И результат НОВОГО-ЖЭШ-ИНДЕКСА - ДАЛЕКО не тот же, а на 100% более устойчивый и надёжный. И тройной хэш, можно применять в качестве УНИКАЛЬНОГО ИНДЕКСА, т.к. он для этого придуман. А просто хэш позволяет сверить лишь целостность слова, но просто ХЭШ - не может быть УНИКАЛЬНЫМ ИНДЕКСОМ. И я Вас не принуждаю использовать НОВЫЙ-ХЭШ-ИНДЕКС, если Вам достаточно 128-битного хэша, который Вы с Ваших слов используете или предлагаете использовать, в качестве УНИКАЛЬНОГО ИНДЕКСА, то :arrow: флаг Вам в руки, т.к. возможно для Ваших задач его хватит с избытком!

Добавлено спустя 111 часов 111 минут 111 секунд:
azsx писал(а):я знаю, что Вы Виталий не прав

1 марта 2005 года Арьен Ленстра, Ван Сяоюнь и Бенне де Вегер продемонстрировали построение двух документов X.509 с различными открытыми ключами и одинаковым хешем MD5.
https://ru.wikipedia.org/wiki/MD5

Добавлено спустя 77 секунд:
azsx писал(а):я знаю, что Вы Виталий не прав

18 марта 2006 года исследователь Властимил Клима (Vlastimil Klima) опубликовал алгоритм, который может найти коллизии за одну минуту на обычном компьютере, метод получил название «туннелирование»
https://ru.wikipedia.org/wiki/MD5

Добавлено спустя 77 секунд:
azsx писал(а):я знаю, что Вы Виталий не прав

В конце 2008 года US-CERT призвал разработчиков программного обеспечения, владельцев веб-сайтов и пользователей прекратить использовать MD5 в любых целях, так как исследования продемонстрировали ненадёжность этого алгоритма
https://ru.wikipedia.org/wiki/MD5

Добавлено спустя 77 секунду:
azsx писал(а):я знаю, что Вы Виталий не прав

24 декабря 2010 года Тао Се (Tao Xie) и Фэн Дэнго (Feng Dengguo) впервые представили коллизию сообщений длиной в один блок (512 бит)[9]. Ранее коллизии были найдены для сообщений длиной в два блока и более. Позднее Марк Стивенс (Marc Stevens) повторил успех, опубликовав блоки с одинаковым хешем MD5, а также алгоритм для получения таких коллизий
https://ru.wikipedia.org/wiki/MD5

Добавлено спустя 77 секунд:
azsx писал(а):я знаю, что Вы Виталий не прав

В 2011 году был опубликован информационный документ RFC 6151. Он признаёт алгоритм хеширования MD5[2] небезопасным для некоторых целей и рекомендует отказаться от его использования.
https://ru.wikipedia.org/wiki/MD5

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

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: md5 -- чо опять не так?

Сообщение serbod » 08.03.2018 12:35:14

Для md5 есть способы быстро подобрать исходные данные, чтобы получить нужный хеш (создать коллизию). Это значит, что md5 не пригоден как электронная подпись, как защита от подделки.

Но как контрольная сумма для сравнения данных на совпадение он очень даже годится. Для структурированных данных (текст, html) достаточной длины вероятность коллизии настолько мала, что можно считать невозможной. Чтобы вызвать коллизию, нужно изменить содержимое так, что оно будет выглядеть как мусор.

Однако, полностью полагаться на вероятность не позволяет моя профессиональная паранойя. Я уже сталкивался по работе:
- со сбоями контроля целостности в TCP;
- с недостаточно равномерным распределением ключей в хеш-таблицах;
- с гарантированной повторяемостью генераторов случайных чисел;
- со сбоями алгоритмов поиска и конвертации данных;

и поэтому на всякий случай делаю дополнительные проверки, которые работе не мешают, но иногда спасают меня от неприятностей.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: md5 -- чо опять не так?

Сообщение vitaly_l » 08.03.2018 13:16:06

serbod писал(а):Для md5 есть способы быстро подобрать исходные данные, чтобы получить нужный хеш (создать коллизию). Это значит, что md5 не пригоден как электронная подпись, как защита от подделки.

Но как контрольная сумма для сравнения данных на совпадение он очень даже годится. Для структурированных данных (текст, html) достаточной длины вероятность коллизии настолько мала, что можно считать невозможной. Чтобы вызвать коллизию, нужно изменить содержимое так, что оно будет выглядеть как мусор.

Однако, полностью полагаться на вероятность не позволяет моя профессиональная паранойя. Я уже сталкивался по работе:
- со сбоями контроля целостности в TCP;
- с недостаточно равномерным распределением ключей в хеш-таблицах;
- с гарантированной повторяемостью генераторов случайных чисел;
- со сбоями алгоритмов поиска и конвертации данных;

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

++100500

serbod писал(а):Чтобы вызвать коллизию, нужно изменить содержимое так, что оно будет выглядеть как мусор.

Ну вот мне например, нужно отхешировать 512-байтный массив картинок для проверки, на отсутствие дублей. Если я как художник, смотрю на них в рисовалке, то они выглядят нормально как картинки. Но если я залезаю во внутрь картинки, то там программисты, хранят сплошной мусор, особнно в JPG. Там мусор, из которого потом как-то хитро получаются нормальные изображения. Так вот у меня получается: 512-байтный массив JPG файлов из "программистского мусора", который нужно проверить на уникальность и отсутствие в мусоре совпадений. Сделать это можно только хэшами, т.к. иначе сгорит процессор от перегрева. И все эти хэши (512-байтный массив) должны быть 100% уникальными, иначе не найти дубли в 512-байтном массиве разных картинок. md5 - быстро начнёт возвращать коллизии. sha - тоже начнёт возвращать коллизии. А вот тройной метод вышеописанного УНИКАЛЬНОГО ИНДЕКСА из двух разных хэшей и длинны слова, позволит найти все дубли в 512-байтном массиве картинок.

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

Рейтинг@Mail.ru