RSA Crypto: требуется ли хранить пару ключей после первого создания - PullRequest
0 голосов
/ 11 декабря 2018

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

  using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
        {
            var pu = rsa.ToXmlString(false);               
            var pr = rsa.ToXmlString(true);               
        }

1 Ответ

0 голосов
/ 11 декабря 2018

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

Обратите внимание, что вы также можете создать пару ключей, в которой закрытый ключ остается в контейнере key * 1004.* например, хранилище ключей.Например, большинство смарт-карт были разработаны таким образом, что закрытый ключ никогда не покидает устройство;просто используется при необходимости.Ключ автоматически сохраняется после создания.Таким образом, вы не сможете получить их значения и преобразовать их в XML.

Хранение ключей в проприетарном формате XML Microsoft без какой-либо защиты - как показано в коде вопроса - не очень хорошая идея.

...