Конечно, реальный ключ это не двойка или даже не семерка. Это огромное число, настолько огромное, что ты не найдешь такую бутылку боярышника. Хотя тут есть сомнения. Но огромное число всегда можно делить много раз на какое-то число, например, твой день рождения. Например, родился ты 1.01.1970. И сидишь делишь свое большое число на 1011970 сколько-то раз, а шифруешь остаток. И вариантов придумать много можно.
Защита конечно не плохая, но в таком случае тебе нужно держать в голове: алгоритм разбивки секрета, ключевые точки.
Чем сложнее алгоритм, тем сложнее его запомнить, и придется где то записать. По сути, мы усложнили систему, но не решили вопрос сохранности ключа. Нужно для таких вещей вводить дополнительные условия: например сдать листочек с алгоритмом в банк.
Но если сдавать листочек, то сложный алгоритм вообще не нужен.
Конечно, если ты говорил о гипотетической возможности, то это так. Но на практике все сложнее.
А можно себе произвольно выбрать приватный ключ? А как потом получить по нему публичный (без онлайн сервисов разумеется)?
Думаю у многих найдутся любимые пароли из случайных символов, которые они вообще никогда не забудут. Можно к такому паролю прибавлять в конце цифру, а результат хэшировать. В конце концов если забудешь цифру, можно перебором прогнать.