Чем уникален SHA? - PullRequest
       83

Чем уникален SHA?

0 голосов
/ 15 февраля 2020

Я пытаюсь понять уникальность SHA простыми словами. Например, предположим, что во всем мире есть только сообщения с максимальной длиной 4 бита (binery). Количество возможных сообщений разной длины:

  • 2 для длины одного бита
  • 2 ^ 2 для длины двух битов
  • 2 ^ 3 для длины 3 бита
  • 2 ^ 4 для длины 4 бита

, что будет 2 + 4 + 8 + 16 = 30 (31, если мы рассмотрим пустое сообщение 2 ^ 0 = 1)

Давайте рассмотрим SHA3 (например) с выходной длиной 3 бита (binery), поэтому максимально возможное количество дайджестов равно 8. Как дайджест может быть уникальным, если нам нужно сопоставить 30 сообщений с 8, или почему трудно найти Дайджест коллизии для 2 уникальных сообщений

Ответы [ 3 ]

1 голос
/ 15 февраля 2020

Я не уверен, что вы подразумеваете под "уникальностью SHA". Значение SHA (любая версия) не является уникальным, оно не может быть, потому что оно отображает бесконечное количество входов (вход любой длины) на конечное число выходов.

Криптография c га * Функция 1015 * имеет три важных свойства (которые делают ее крипто-га sh, по сравнению с обычной га sh):

  • сильное сопротивление столкновению: это очень сложно (вычислительно невозможно, ie. "практически невозможно") найти два входа, которые производят один и тот же выход (даже если вы можете выбрать оба)
  • слабое сопротивление столкновению: для данного входа в вычислительном отношении невозможно найти другой вход, который дает то же значение ha sh (вы можете выбрать один вход для соответствия выходу данного входа)
  • сопротивление прообразу: для значения ha sh невозможно найти вход, который производит этот вывод (это «односторонний»)

Единственная проблема в вашем примере - размер. С такими маленькими числами это не имеет смысла, конечно. Но если значение ha sh составляет, скажем, 512 битов, оно внезапно становится действительно трудоемким и, следовательно, практически не может использовать грубую силу.

0 голосов
/ 16 февраля 2020

"SHA3 с длиной дайджеста в 3 бита"

Я думаю, что этот вопрос основан на недоразумении. SHA-3 - это семейство хэшей , которое имеет тот же размер выходного бита, что и SHA-2. SHA-2 имеет размеры битов 224, 256, 384 или 512 для SHA-224, SHA-256, SHA-384 и SHA-512 соответственно.

Конечно, SHA-2 уже взяла эти идентификаторы, поэтому SHA -3 будет иметь SHA3-224, SHA3-256, SHA3-384 и SHA3-512. Было несколько предложений использовать другую аббревиатуру, но они не сработали.

Тем не менее, хэши SHA-3 имеют почти бесконечный ввод, поэтому будет много хэшей, которые будут соответствовать одному значению. Однако, поскольку невозможно изменить любой алгоритм SHA-3, найти коллизию невозможно. То есть, если SHA-3 не сломан, поскольку он не доказуемо безопасен.

0 голосов
/ 15 февраля 2020

Любой вариант SHA3 будет иметь дайджесты с более чем 100 битами. Терминология, вероятно, смутила вас, потому что SHA256 имеет 256 бит, а SHA3 считается алгоритмом SHA третьего поколения (и НЕ имеет 3 бита длины).

Вообще говоря, нетрудно найти коллизию ha sh путем грубого принуждения (увы, это отнимает много времени), что является трудным для создания коллизии, которая также имеет смысл в ее контексте. Например, предположим, что у вас есть исходный файл для важного приложения, который хэширует дайджест. Если злоумышленник попытается изменить исходный файл таким образом, чтобы создать уязвимость, а также хэшировать тот же дайджест, ему пришлось бы ввести много случайных гиббери sh, чтобы атака была очевидной.

...