データベース内の「機密」データを暗号化する単純な暗号化アプリケーションがあります。アクセス権を持つ人だけが、これらのデータを復号化された形式で見ることができます。私はそれを行う方法に関する詳細情報を探し回っていますが、これが私のプロジェクトアプローチです:
- AES 暗号化アルゴリズムを使用しています。
- RNGCryptoServiceProvider で AES キーを生成します。AES キーで情報を暗号化します。
- AES キーを RSA 公開キーで暗号化します。
- 秘密鍵を USB ファイルに保存し、アクセス権を持つことができる人だけに渡します。
- 正当な人が復号化された情報を見る必要がある場合、彼らは秘密鍵を提供します。アプリは秘密鍵を使用して AES キーを復号化し、それによって情報が復号化されます。
さて、私の質問は、その秘密鍵を安全に保管するにはどうすればよいですか? 私が読んでいることから、FromXMLString を使用して秘密鍵を取得できます。でも、どうにかして USB ファイルと XMLFile を手に入れたら、同じように FromXMLString を使って秘密鍵を見つけられるのではないかと考えていました。では、たとえばパスフレーズを使用して、そのファイルを保護するにはどうすればよいでしょうか? そのために使用できるc#の関数はありますか?
また、キー ペアを変更した場合は、公開キーを変更し、新しい公開キーで AES キーを再度暗号化する必要があります。そのために、この記事「RSA を介して一意の公開鍵と秘密鍵を生成する方法」が非常に役立つことがわかりました。しかし、作者がそれをどのように実装したかはわかりません。彼は秘密鍵ファイルにも鍵コンテナー名を保管しますか? または、ToXMLString が自動的にそれを行いますか?
ありがとう〜