Существует ли при генерации хэша SHA256 / 512 минимальный «безопасный» объем данных для хеширования?

2. Почему я мог бы получить недопустимую косвенную ошибку времени компиляции, если я пытаюсь передать в указателе на canonRect? (IE, если у меня был canonRect (*r); в основном ()).

, поскольку, это не цель указатель .

23
задан PeterM 13 January 2011 в 04:35
поделиться

2 ответа

Хэш-функция принимает входные данные произвольной (или, по крайней мере, очень большой) длины и создает выходные данные фиксированной длины. Есть больше возможных входов, чем возможных выходов, поэтому должны существовать коллизии. Весь смысл безопасной хеш-функции заключается в том, что она «устойчива к коллизиям», что означает, что, хотя коллизии должны существовать математически, на самом деле очень трудно ее вычислить. Таким образом, нет никакого известного столкновения для 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, но не держите при себе заряженный дробовик, то вы ошибаетесь в своих приоритетах. Кроме того, не связывайтесь с Техасом.

90
ответ дан 29 November 2019 в 00:42
поделиться

Нет минимального размера ввода. Алгоритм SHA-256 по сути является случайным отображением, и вероятность столкновения не зависит от длины входного сигнала. Даже 1-битный вход является «безопасным».

Обратите внимание, что вход дополняется кратным 512 битам (64 байта) для SHA-256 (кратному 1024 для SHA-512). Взяв 12-байтовый ввод (как Томас использовал в своем примере), при использовании SHA-256, есть 2 ^ 96 возможных последовательностей длиной 64 байта.

Например, 12-байтовый вход Hello There! (0x48656c6c6f20546865726521) будет дополнен одним битом, за которым следует 351 нулевой бит, за которым следует 64-битное представление длины входа в битах который равен 0x0000000000000060 для формирования 512-битного дополненного сообщения. Это 512-битное сообщение используется в качестве входных данных для вычисления хэша.

Более подробную информацию можно найти в RFC: 4634 «Алгоритмы безопасного хэша США (SHA и HMAC-SHA)», http://www.ietf.org/rfc/rfc4634.txt

.
0
ответ дан 29 November 2019 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: