Стандартный метод хранит ключ в ключевом контейнере, net имеет API для этого. См. How to: Store Asymmetric Keys in a Key Container Вы можете хранить контейнер ключей как закрытый, в этом случае только вы имеете доступ к ключу. Если вы хотите разделить ключ между разными пользователями или программой на своем компьютере, вы должны использовать контейнер ключа уровня машины. Для того, чтобы хранить в машинном уровне вам нужно только добавить в параметрах контейнера флага UseMachineKeyStore
CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;
cp.Flags = UseMachineKeyStore
Помните, что в любое время, что вы используете машину хранилища ключей, необходимо установить флаг. Эта конфигурация имеет определенный уровень безопасности, насколько надежна информация. Вы можете ограничить доступ к контейнеру создания, используя правила доступа.
Я надеюсь, что эта информация будет полезна вам.
Кто вы пытаетесь избежать чтения зашифрованных данных. Как вы решаете проблему, в зависимости от вашей модели угрозы (и для некоторых моделей угроз она не разрешима) –
Недостаточно информации для ответа - поскольку Скотт сказал, что требуется сценарий угроз. – CodesInChaos