これは本当に2つの質問です:
- キーペアを生成するためにsn.exeを使用する必要がありますか?
- データの暗号化に秘密鍵を使用する必要がありますか?
最初の質問に対する答えは次のとおりです。いいえ、そうではありません。SN.exeのキーペアの生成は、実際には非常に小規模な開発環境でのみ有用であり、すべてのセキュリティを処理する必要があります。パスワード保護(PFX)などを含む証明書コンテナーを生成するためのはるかに優れた方法があります。たとえば、MakeCertツールを見てください。これを使用して、実行する可能性のあるほとんどすべての暗号化操作に使用できる自己署名X.509証明書を生成できます。
残念ながら、2番目の質問に対する答えも次のとおりです。いいえ、そうではありません。暗号化の観点からは、秘密鍵を使用して何かを暗号化する意味はあまりありません。結局のところ、公開鍵はまさにそれです:公開。誰かがそれを復号化できる場合(OSは公開鍵の保護を提供しないため、コピーを取得するのは簡単です)、暗号化してもあまり意味がありません。人々がそれがあなたからのものであることを証明できるようにすることが目的である場合は、デジタル署名がより良い方法です。そのような場合、あなたが説明することはまさにあなたがやりたいことです。秘密鍵で署名し、自由に利用できる公開鍵を使用して署名を確認します。
ここで、暗号化されたデータを複数の受信者に配布する方法を使用する場合は、PKCS#7/CMSエンベロープの使用を検討してください。sn.exeの使用について話しているので、.NETを使用していることがわかります。幸運です!EnvelopedCmsクラスは、必要なものを提供する必要があります。必要なのは、X.509証明書からの受信者の公開鍵だけです(makecertが助けになります!)。MSDNには、ここにウォークスルーがあります。