Теоретично це можливо, але це ще не зроблено.
Те, що ви шукаєте, називається "хеш-зіткненням": два файли з однаковим хешем. Криптографічні хеш-коди типу SHA-1, як правило, розроблені для того, щоб ускладнити це. Оскільки SHA-1 - це 160-бітний код, в середньому знадобиться 2 ^ 159 грубої спроби знайти дублікат. Якщо буде знайдено алгоритм, який надійно робить краще, ніж алгоритм щодо криптографічного хешу, хеш вважається "зламаним".
MD-5 - приклад дуже зламаного хешу. Він повинен був мати міцність 128 біт, що вимагало в середньому 2 ^ 127 спроб. Таким чином, зловживаючи відомими вразливими місцями, реальна кількість необхідних спроб може бути не меншою, ніж 2 ^ 47. Це ЛОТ менше 2 ^ 127. Насправді це було зроблено за добу за сучасний обчислювальний кластер.
Я наводжу цей приклад, тому що це найближче до того, як ви шукаєте використовувати SHA-1. Однак це не найпоширеніший підхід використання криптоаналізу для того, щоб переконатися, що хеші не порушені. Зазвичай вони дозволяють зіткнутись між двома файлами, як обрав зловмисник, замість того, щоб вибрати один файл та зловмисника, який прагне його узгодити. Цей вид нападу має перевагу в тому, що він легше орієнтуватися. Якщо я вважаю, що "важко" зламати ваш файл, чи це означає, що ще один файл є таким же сильним? Ця атака, коли зловмисник отримує обидва файли, гарантує, що ми вловимо найгірше з найгірших.
Такий напад дозволяє цікавий трюк, відомий як " атака на день народження ". Короткий опис короткого оповідання: використання атаки на день народження вдвічі зменшує силу алгоритму, тому SHA-1 вимагає 2 ^ 80 спроб (в середньому), а MD5 вимагає 2 ^ 64 спроб (в середньому). Це половина 160 та 128 відповідно.
SHA-1 відомі напади, які знижують його силу з 2 ^ 80 до 2 ^ 69. Це для вас не матиме великого значення. 2 ^ 69 спроб - це тривалий час.
Однак з історії ми з’ясували, що алгоритми хешування не порушуються спонтанно, а з часом порушуються. Ніхто не зламає такий алгоритм, як MD-5, приймаючи його від 2 ^ 64 до 2 ^ 47 за ніч. Це трапляється з часом, оскільки багато людей публікують документи про математику, яку вони використовують проти цього. Зазвичай можна спостерігати, як складність атак повільно знижується з моменту створення алгоритму (де найкраща атака, як правило, є атакою на день народження).
Той факт, що ми спостерігаємо деякі зміни в зіткненнях, говорить про те, що SHA-1 бачить світло в кінці тунелю. Він все ще сильний, але може виникнути бажання перейти на найновіший SHA-3, який наразі набагато безпечніший.
Вам слід дійсно приймати такі рішення з точки зору моделі загрози. Скільки шкоди може нанести зловмисник, якщо отримає одне із цих зіткнень. Чи ваші діти-скрипти для зловмисників, які мають доступ до кількох ноутбуків, або уряди, що мають у своєму розпорядженні цілі кластери суперкомп'ютерів. Наскільки велике тимчасове вікно зловмисникові доводиться ламати хеш, перш ніж це не буде корисним (багато застосувань криптографії передбачають "зміну охорони", наприклад, обертання паролем). Все це вплине на те, наскільки серйозно вам доведеться розглянути зіткнення.