#php #encoding #rsa #private-key #random-seed
Вопрос:
В настоящее время я создаю закрытый ключ следующим образом:
$config = array( "digest_alg" =gt; "sha256", "private_key_bits" =gt; 4096, "private_key_type" =gt; OPENSSL_KEYTYPE_RSA, ); $res = openssl_pkey_new($config);
Мне удалось отобразить его следующим образом:
openssl_pkey_export($res, $private_key);
Тем не менее, я хочу сохранить это в автономном режиме на бумаге, а затем иметь возможность использовать его позже. Проблема с длинной строкой текста заключается в том, что она:
- Трудно запомнить/работать с ними, так как все персонажи бессмысленны.
- Легко спутать похожие символы, такие как 1 и l или 0 и O.
- Совершенно очевидно, что это закрытый ключ (если его когда — нибудь найдут).
Я пытаюсь защитить информацию в базе данных таким образом, чтобы в случае взлома она была бесполезна для противника без закрытого ключа. Таким образом, такие сведения, как контактная и финансовая информация, могут храниться, а затем декодироваться в автономном режиме в течение короткого периода, когда их необходимо использовать. Я могу хранить базу данных и иметь множество ее резервных копий, а также иметь дополнительную защиту, если одна из этих копий попадет в чужие руки. Новые пользователи могут зарегистрироваться и зашифровать свою информацию с помощью открытого ключа и автоматически создать резервную копию, а закрытый ключ будет легко расшифровывать эти новые данные.
Начальные фразы, такие как BIP39, чрезвычайно удобны в работе, поскольку они удобочитаемы и специально разработаны для этой цели. Каждые 32 бита кодируются в слово. Таким образом, приведенный выше 4096 — битный закрытый ключ будет кодироваться в 128 слов-гораздо проще в управлении, чем весь случайный шум. Я мог бы даже написать рассказ или сделать фотографии, и никто не догадался бы, что это закрытый ключ, если бы они уже не знали, что они ищут. Таким образом, взлом частной информации будет зависеть от взлома базы данных и автономного закрытого ключа или перехвата во время очень узкого окна, когда используются данные.
Что я хотел бы знать, так это как я могу получить случайно сгенерированный закрытый ключ в/из более удобочитаемого формата, такого как BIP39? Прежде чем я попытаюсь что-то закодировать сам, возможно, уже есть какие-то решения или какие-то идеи о том, как это лучше закодировать?