"Возможно ли это вообще?" - да, если общий размер контрольных сумм меньше, чем общий размер файла, невозможно избежать коллизий.
"возможно ли это в действительности с текущим оборудованием / программным обеспечением?" - если возможно построить текст, соответствующий заданной контрольной сумме для каждой из используемых контрольных сумм, тогда да.
См. wikipedia о конкатенации криптографических хэш-функций , что также является полезным термином для google для.
С той страницы:
"Однако для хеша Меркла-Дамгарда функции, объединенная функция настолько силен, насколько лучше компонент, не сильнее. Жу отметил что 2-столкновения приводят к n-коллизии: если это возможно найти два сообщения с одинаковым MD5 хеш, его фактически больше нет трудно найти столько сообщений, сколько злоумышленник желает идентичного MD5 хеши. Среди n сообщений с тот же хеш MD5, скорее всего быть коллизией в SHA-1. В дополнительная работа, необходимая для поиска Коллизия SHA-1 (за пределами экспоненциальный поиск дня рождения) полином. Этот аргумент резюмировал Финни. "
Я спросил себя, будет ли можно создать файл A ', который имеет тот же размер, та же сумма md5 и та же сумма sha1, что и в исходном файле A.
Да, сделайте копию файла.
Кроме этого, не обошлось бы без большого количества вычислительных ресурсов для проверки множества перестановок (при условии, что размер файла нетривиальный).
Вы можете подумать примерно так:
Если размер файла увеличивается на n, вероятность возможной подделки увеличивается, но вычислительные затраты, необходимые для проверки комбинаций, возрастают экспоненциально на 2 ^ n.
Таким образом, чем больше ваш файл, тем более вероятно, что там обман, но тем менее вероятно, что вы его найдете.
Хэши группируются, они более чувствительны к изменениям одних данных, чем другие, и, другими словами, не идеальны. С другой стороны, идеальный алгоритм хеширования без сбоев будет обладать вышеуказанными свойствами, и именно это затрудняет обнаружение коллизий. Они случайны.
Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
более чувствительны к изменениям одних данных, чем другие, и, другими словами, не идеальны. С другой стороны, идеальный алгоритм хеширования без сбоев будет обладать вышеуказанными свойствами, и именно это затрудняет обнаружение коллизий. Они случайны.Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
более чувствительны к изменениям одних данных, чем другие, и, другими словами, не идеальны. С другой стороны, идеальный алгоритм хеширования без сбоев будет обладать вышеуказанными свойствами, и именно это затрудняет обнаружение коллизий. Они случайны.Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
С другой стороны, идеальный алгоритм хеширования без сбоев будет обладать вышеуказанными свойствами, и именно это затрудняет обнаружение коллизий. Они случайны.Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
С другой стороны, идеальный алгоритм хеширования без сбоев будет обладать указанными выше свойствами, и именно это затрудняет обнаружение коллизий. Они случайны.Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
Вероятность по своей сути зависит от свойств алгоритма - в основном, поскольку наши предположения неверны, мы не можем «легко» определить, насколько это сложно. Фактически, сложность поиска совпадающих входных данных, вероятно, очень сильно зависит от характеристик самой входной строки. Некоторые из них могут быть относительно простыми (но все же, вероятно, непрактичными на сегодняшнем оборудовании), а из-за разной природы двух алгоритмов некоторые могут быть фактически невозможны.
Теоретически вы могли бы это сделать. На практике, если вы начали с двух контрольных сумм, предоставленных MD5 и SHA1, и попытались создать файл, который произвел те же две контрольные суммы, это было бы очень сложно (во много раз сложнее, чем создание файла, который произвел бы ту же контрольную сумму MD5, или Контрольная сумма SHA1 изолирована).
Теоретически да, вы можете получить это, на практике это адский сговор. На практике никто даже не может создать сговор SHA1, не говоря уже о MD5 + SHA1 + Size одновременно. Эта комбинация просто невозможна прямо сейчас, если не задействовать всю компьютерную мощь мира и не запустить ее на некоторое время.
Хотя в ближайшем будущем мы можем увидеть больше уязвимостей в SHA1 и MD5. А с поддержкой лучшего оборудования (особенно GPU) почему бы и нет.