Возможности повторения основанного на пароле производного ключа?
Несколько месяцев назад я занялся криптографией, и у меня есть сомнения. Технически, PBKDF преобразует любой пароль (с любой длиной ключа) в один ключ с определенной длиной ключа. Я понимаю, что это может использовать любой пароль, введенный пользователем с алгоритмами шифрования, что не приводит к ошибкам длины ключа.
Например, если AES 128 принимает 128-битный размер ключа, у меня есть 2^128 возможностей найти правильный ключ (X) при расшифровке с использованием грубой силы. Но возможности пароля пользователя бесконечны (теоретически, на практике, дальние значения длины ключа ограничивают возможности). Таким образом, бесконечное количество пользовательских паролей, когда программа применяет PBKDF, превращается в один и тот же 128-битный производный ключ (X). В любом случае, минимальный 128-битный пароль пользователя, применяя PBKDF, приводит к правильному производному ключу (X). Это правда? Я только намерен применить логику к концепции.
В любом случае, я помню, что грубая сила 128-битной длины ключа требует очень много времени.
1 ответ
Да, конечно, есть гораздо больше возможных фраз, чем ключей. С другой стороны, предполагая, что хеш-функция хороша, нахождение коллизии потребует 2^64 работы, а нахождение прообраза - 2^128 работы. Так что это не проблема на практике.
Изменить в ответ на комментарий:
Похоже, вы говорите, что можете выбрать хороший длинный случайный пароль, но возможно, он сгенерирует тот же самый хэш, что и очень короткий? Ну, да, это возможно, но с такой вероятностью, что на практике беспокоиться не стоит.
Давайте рассмотрим все возможные 8-символьные пароли. 94 печатных символа, возведенных в восьмую степень, дают менее 2^53 возможностей. Из вселенной с 2 ^ 128 хэшами вероятность случайного попадания в один из них составляет менее 2 -75 или менее 1 в 10^22. Скорее всего, мы столкнемся с серьезным ударом по астероиду, и цивилизация закончится.