Итак, как мы знаем, а если не знаем, то, как известно, ключ к решению ухода от brute-force кроется в накоплении энтропии в размере от 32 байт (условно). Проблема в том, что обычному одебилевшему мимокащу запомнить 32 байта просто невозможно и я нафантазировал способ решения для условного публичного сервиса. Условия, в которых мы находимся:
- Алгоритм - открытый;
- Сервер (точка доступа) может участвовать, но не может знать ничего про энтропию;
- Итог - асинхронщина, пусть будет EC-256.
Делаем условия авторизации:
- Традиционно, логин и пароль. Уже тяжело и куча проблем, но это повсеместно, принимаем за аксиому, что кащ способен запомнить, что он натыкал на клавиатуре;
- Делаем революцию и «прыжок веры», вводим дополнительную сущность в виде pin кода: 5 байт, чтобы не вышло, что 99,99% кащей ввели свой год рождения. Да, спорно, я от сейфа-то пинкод забываю периодически, но там 6 байт не-мнемоничных.
Ограничения для логина, пусть будут 6 байт, для пароля - 8. Итого, имеем 6+8+5 = 19 байт энтропии. Как вырастить еще 13 байт, для достижения нирваны?
Предложение: собираем из 19 байт ascii символы, выводим кащу все слова, имеющие этот набор букв (розенталем по ебалу) из большого словаря. Кащ тыкает понравившееся слово, добавляем его к энтропии.
Вопрос: какие методы мнемоники позволяют запихнуть кащу в голову недостающую энторпию, чтобы он мог ее вспомнить 100500%.