LINUX.ORG.RU

crc32 и хэш-функции.

 


0

1

crc32 вообще не для хеширования придумывалась, а для хоть какой-то проверки целостности данных. Для хеширования её использовать несколько дебильно, хотя некоторые юзают. Сам юзал, пока не накрылся тазом.

А как вообще серьёзные хеш-функции люди придумывают? Какое надо иметь мышление?

Т.е. вот чтобы придумать crc32 надо мыслить так: надо свернуть поток слов (байтов и т.п.) произвольной длины так, чтобы:

1) изменение хотя-бы одного бита в этом потоке меняло контрольную сумму, причём так, чтобы это изменение не совпадало с изменением бита в другом месте потока. Т.е. если какой-то бит меняет контр. сумму на 1, то такое же изменение в другой месте потока не должно давать тот же эффект.

А для хеширования надо думать так:

1) изменение 1 бита в ключе (потоке данных) должно менять результат максимально несвязанно с изменением результата от изменения других битов. В crc32 такого требования нет: там допустимо, чтобы в результатах образовывались «близкие области значений» для некоторых близких входных ключей. Это никого не волнует, пока crc32 вообще отличает разные потоки друг от друга.

А как придумывается алгоритм хеширования? Так же интуитивно, как прочие алгоритмы? Надо просто погрузиться в тему и пытаться что-то сделать, это творческий процесс, как придумывание хитрого замка?

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

изменение 1 бита в ключе (потоке данных) должно менять результат максимально несвязанно с изменением результата от изменения других битов

man лавинный эффект

SZT ★★★★★ ()

Для начала следует ответить на вопрос, для чего тебе хеш функция. Если для всяких там хеш-таблиц, то требования несколько другие, чем для проверки, тот ли и без ошибок ли ты файл скачал.

Waterlaz ★★★★★ ()

А как придумывается алгоритм хеширования? Так же интуитивно, как прочие алгоритмы?

проще пареной репы.

вот смотри: если хочешь (пере)открыть закон тяготения - садишься под яблоней и наблюдаешь падения яблок. Если лень даже смотреть то просто ждёшь пока само упадёт. Алгоритмы на графах придумываются путём гуляния по Питеру и прохождения мостов или подработки посыльным. Для создания метода шифрования и хеш-функций достаточно чтобы жена и две любовницы были КТН в теории информации.

MKuznetsov ★★★★★ ()

Чем больше схем хешей придумывается, тем лучше.

Пока дальше mdN особо не продвинулись как мне кажется ... Этот пробел нужно восполнять, иначе это приведен к «узурпированию» естественных монополий

Нужен капитальный математический аппарат, в частности базирующийся на теории чисел и полях Галуа, Абеля ... и не только

anonymous ()
Ответ на: комментарий от MKuznetsov

на одной оптимизации сортировки моих носков можно диссертацию защитить

dilmah ★★★★★ ()
Ответ на: комментарий от MKuznetsov

жена и две любовницы

Только хардкор? 😀

Stil ★★★★★ ()

Т.е. вот чтобы придумать crc32 надо мыслить так: надо свернуть поток слов (байтов и т.п.) произвольной длины так, чтобы:
1) изменение хотя-бы одного бита в этом потоке меняло контрольную сумму, причём так, чтобы это изменение не совпадало с изменением бита в другом месте потока. Т.е. если какой-то бит меняет контр. сумму на 1, то такое же изменение в другой месте потока не должно давать тот же эффект.

Horseshit.

Manhunt ★★★★★ ()

Т.е. вот чтобы придумать crc32 надо мыслить так

Надо знать теорию конечных полей и линейную алгебру.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.