Пусть Секрет Шамира (SSS) строится из конечного поля $K = \mathbb F_{p^m}$, т.е. $К$ является расширением конечного поля с $п^м$ элементы, $порядок(К) = p^m$.
Когда злоумышленник получает доступ к $к-1$ принадлежащий $к$ акции SSS, остальные все ценности от $К$ имеют одинаковую вероятность быть кандидатом на последнюю акцию. Это связано со свойством SSS; у него идеальная схема обмена секретами (т.е. совершенная секретность ). Следовательно; злоумышленник ничего не узнает, если он не владеет всеми акциями.
Нападавший, удерживая $к-1$ акции, имеет $п^м$ равные возможные кандидаты на последнюю долю. Единственная возможность для них — пытаться всех их отличить от настоящего, не более того.
Ну, вместо того, чтобы платить (или воровать) за $к-1$ акции они могут просто попробовать все $п^м$ элементы поля. Так как;
- У них нет преимущества в том, что $к-1$ акции или $1$ акции Они все одинаковые, у ССС идеальная секретность.
Теперь, поскольку пароль создается из общего секрета, существует ограничение на возможное количество паролей; $п^м$. Если предположить, что используется неверный метод хеширования пароля, например, чистый SHA-256, то размер поля должен быть больше, чем $2^{93}$ поскольку биткойн-майнеры могут достичь этого количества SHA-256D за год. Поэтому желательно иметь поле с порядком больше, чем $2^{128}$.
Нужен лучший алгоритм хеширования паролей, такой как Argon2id, чтобы ограничить возможности злоумышленника. Например, если вы используете PBKDF2 с количеством итераций, равным 1M (у Argon2 тоже есть итерации), то вы сокращаете поиск злоумышленника на $\приблизительно 2^{20}$. Если вы используете функции хеширования паролей, требующие жесткой памяти и подсчета потоков, такие как Argon2, вы уменьшаете возможности распараллеливания злоумышленника, особенно в случаях ASIC/GPU. Определите свои риски и цель безопасности, а затем настройте параметры хеш-функций паролей. И не забудьте добавить случайную соль в хеширование пароля.
Если доля также используется создать ключ шифрования, доля должна быть равна или больше размера ключа. Простая причина в том, что нельзя увеличить энтропию путем хеширования.
Возможно ли, что злоумышленник может выполнить грубую силу и найти пароль, учитывая, что есть способ проверить правильность угаданного пароля (например, несколько раз использовать логин на веб-сайте, пока вы не войдете)?
Ну, большинство хороших веб-сайтов/систем защищают от этих атак, ограничивая попытки ввода пароля или используя двухфакторную аутентификацию. Однако мы можем предположить, что злоумышленник получает доступ к БД, чтобы получить хэш паролей. Это обычная модель атаки в области защиты паролей. Итак, увеличьте порядок полей.
Делает заказ $n$ конечного поля в такой грубой силовой атаке? Будет ли увеличиваться значение $n$ дать дополнительную безопасность в таком сценарии?
Да и да, как указано выше.