Post
Topic
Board Новички
Re: 🔓 Шифруем приватные ключи своими силами €
by
LifeChain
on 23/05/2018, 11:36:42 UTC
Простой вариант. Порядок применения алгоритмов жестко прописан в программе, мы только выбираем количество алгоритмов которые будут использованы. Тогда количество вариантов равно n*(n+1)/2 что в вашем примере дает 21 вариант.

Нет, тут все-таки не так. У каждого чекбокса два положения "вкл" и "выкл". По сути 1 чекбокс - это бит информации. А 6 чекбоксов можно записать как 6-значное двоичное число. Вариантов получает 2n - 64. Но вариант "000000" в расчет не берем, поэтому 63.
Согласен, что то я не то насчитал первый раз. Правильно 2n-1

Сложный вариант. Порядок выбора чекбоксов определяет порядок их применения. Тогда количество вариантов равно сумме всех n! от 1 до n что дает 873 варианта, а если увеличить число чекбоксов до 9 то уже 409113 комбинаций.

Причем чтобы этот перебор делать, нужно иметь не только измененный приватный ключ, но и сам этот скрипт.

Тут всё верно. Зашифрованный ключ наверняка будет храниться рядом со скриптом, уж на одном компьютере точно (иначе будет жутко неудобно им пользоваться). Поэтому я и предположил теоретически, что у злоумышленника есть и то, и другое. Эта задача мне интересна именно в этом контексте. Так вот, даже 400к+ вариантов ничто для брутфорса. Злоумышленник может понять логику шифрования и написать скрипт для перебора всех вариантов.

Почему считаете будет жутко неудобно пользоваться? Если сейчас храните допустим на флешке, то надо всего лишь дополнительно запустить скрипт и несколько раз щелкнуть мышкой, меньше минуты на все. 
Хранить рядом со скриптом это слишком беспечно, а хранить на этом же компьютере в другом месте вполне допустимо имхо, можно заархивировать с паролем дополнительно, неудобства минимальны.

Дело в том, что чтобы злоумышленник получил скрипт нужно чтобы он о нем знал и целенаправленно искал на компьютере, причем наверно придется создавать специальный вирус под эту задачу. Все это сложно и далеко не каждому под силу.
Можно пойти еще дальше и у части алгоритмов сделать необходимость вводить переменные руками. Например на сколько частей делить и тому подобное, что дополнительно усложнит возможность перебора.