Хеш-функция принимает входные данные произвольной (или, по крайней мере, очень большой) длины и выдает выходные данные фиксированной длины.Есть больше возможных входов, чем возможных выходов, поэтому должны существовать коллизии.Весь смысл безопасной хеш-функции заключается в том, что она «устойчива к коллизиям», что означает, что, хотя коллизии должны существовать математически, на самом деле очень трудно ее вычислить.Таким образом, для SHA-256 и SHA-512 не существует известных коллизий, а наиболее известные методы для их вычисления (делая это с целью ) настолько нелепо дороги, что скоро их не применят (весь федеральный бюджет США за столетие купит только смехотворно небольшую часть задачи).
Таким образом, если это невозможно реально сделать с целью , вы можете ожидать, что не столкнетесь с столкновениемиз (неудачной) удачи.
Более того, если вы ограничиваете себя очень короткими входами, есть вероятность, что столкновения не будет вообще .Например, если вы рассматриваете 12-байтовые входы: есть 2 96 возможных последовательностей по 12 байтов.Это огромно (больше, чем можно перечислить в современных технологиях).Тем не менее, SHA-256 отобразит каждый вход в 256-битное значение, то есть значения в гораздо более широком пространстве (размером 2 256 ).Мы не можем доказать это формально, но есть вероятность, что все эти 2 96 хеш-значения отличаются друг от друга.Обратите внимание, что это не имеет практического значения: нет никакой измеримой разницы между не обнаружением столкновения, потому что его нет, и не обнаружением столкновения, потому что крайне маловероятно попасть в него.
Просто чтобы показать, насколько низки рискистолкновение с SHA-256: подумайте о том, рискуете ли вы получить травму от гориллы, сбежавшей из местного зоопарка или частного владельца.Навряд ли?Да, но это все еще может произойти: кажется, что горилла сбежала из зоопарка Далласа в 2004 году и получила ранения четырех человек;другая горилла сбежала из того же зоопарка в 2010 .Если предположить, что каждые 6 лет на всей Земле есть только одна неистовая горилла (не только в районе Далласа), и вы оказались несчастливым парнем, который находится на его пути из 6,5 миллиардов человек, а затем рискует стать печальным- телесный вред от гориллы может быть оценен примерно в 1 к 2 43,7 в день.Теперь возьмите 10 тысяч ПК и попросите их найти коллизию для SHA-256.Вероятность попадания в столкновение близка к 1 в 2 75 в день - более чем на млрд. менее вероятно, чем у злой обезьяны.Вывод таков: если вы боитесь столкновений SHA-256, но не держите при себе заряженный дробовик, то вы ошибаетесь в своих приоритетах.Кроме того, не связывайтесь с Техасом.