Будет ли взломать SHA1 проще, если я знаю часть ввода?
Предположим, что я знаю 80% ввода SHA1. Легче ли взломать оставшиеся 20% от хеш-значения SHA1, чем взломать весь ввод? Если это так, на какой процент?
Например: я знаю х на входе SHA1(xxxxxxxxyy)= значение хеша
1 ответ
Предположим, что на входе есть 10 байтов. Чтобы взломать весь вход, мы должны попробовать 2^(10*8) входов. Учитывая 80%, нам нужно только попробовать 2^(2*8) входных данных. Это примерно в пять раз меньше. Если входной размер увеличивается, соотношение становится еще больше.
Сегодня SHA1 является необратимым с около 100 неизвестными битами (12 байтов) на входе. Поскольку только 20% входных данных неизвестно, это означает, что для обеспечения безопасности размер входного файла должен быть около 500 бит или около 62 байт.
Это действительно имеет значение, находится ли неизвестная часть в начале или в конце. Каждые 32 бита известных данных в начале уменьшают количество необходимых операций на несколько больше, чем вы могли бы ожидать, потому что некоторые из вычислений могут быть использованы повторно.