Хеширование?

программирование алгоритм md5 хеш

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

Примечание:
to Малёк,

хеш длиной с сообщение - это уже не хеш, это хухеш какой-то. :-)

to Елена Левина,

ты редиска, я скоро спать, а тебя в джаббо-сетях так и не поймала. Ну ничего, как-нибудь, поймаю, да на ухи-то "присяду". :-)

Примечание:
to srs2k,

думается что в таком случае вероятность коллизии только возрастет. Ааа, хотя типы ж разные. :-)

Примечание:
to srs2k,

уже можно подписаться на лицензионную копию? :-)
Ответы:
Куда же без коллизий. Без коллизий не выйдет. Или хеш будет длиной с сообщение.
нет, спасибо, не думали.
пока что устраивает имеющееся.
Я в математике плохо соображаю, мне интересно - если взять два разных типа хеша (md5 и sha2, к примеру) от одного и того же исходного набора данных, то на сколько уменьшится вероятность коллизии по сравнению с одним хешем?
srs2k, я математику уже забыл, но вроде суть в том, что вероятность получить коллизию случайно достаточно мала, чтобы ей пренебречь. Беда в том, что коллизию можно получить специально.
Когда персональные компьютеры станут достаточно мощными чтобы находить все коллизии для хешей за доли секунды, я напишу супер-мега-гипер-архиватор, который будет рекурсивно жать данные в хеши и распаковвывать их обратно перебором коллизий и сверкой CRC :))
Да, безусловно это будет лицензионная [1] софтинка, а всех нарушителей я засужу до разорения.
где-где ты меня не поймала?
тебя там нет, вот и не поймала.
просто так и говори, что поймать хочешь.
Хеш относится к классу сжимающих отображений, коллизии будут всегда. Преобразование потока, которое можно однозначно инвертировать обратно - это уже не хеш, при этом преобразовании нельзя терять информацию, и, соответственно, нельзя превратить поток неопределенной длины в фиксированное количество битов. К вопросам в комментариях: использованием нескольких типов хеша на одни данные вероятность коллизий снизить нельзя. К вопросу о "распаковывать их обратно перебором коллизий и сверкой CRC" - конкретному значению хеша соответствует бесконечное количество потоков, поэтому такой архиватор невозможен даже теоретически.
>crimaniak ..."конкретному значению хеша соответствует бесконечное количество потоков,..."
Вики: Хеширование (иногда хэширование, англ. hashing) — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины.
Фиксированной значит что коллизии будут.
Как это ты представляешь что в строке длинной N (то есть всего N^256 разных комбинаций (256-ASCI предположим)) может быть описано, любая из E(N^256), где N от 1 до сколько угодно большого числа.
Все варианты хэша включают, себя как варианты исходного текста + к этому все другие строки другой длинны.
Мне кажется ты немного не до конца понимаешь определение "коллизия".
http://ru.wikipedia.org/wiki/Коллизия_хеш-функции.
Конечно еще есть Квантовая криптография если вас так пугают коллизии и беспокоит защита информации...


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.