4

C# アプリケーションとマイクロ コントローラー (pic32mx795) の間で暗号化を実装する必要があります。私が抱えている問題は、RSACryptoServiceProvider を使用している公開鍵と秘密鍵のペアを生成することですが、完全な公開鍵ではなく鍵属性しか取得できません。

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAKeyInfo = RSA.ExportParameters(false);

マイクロコントローラーはキーのみを (バイトとして) 受け取るため、キーパラメーターをマイクロコントローラーに提供することはできません。これを実行できるライブラリがありますが、2012 年 11 月にのみ利用可能になります ( SW300055 )。SW300052 ライブラリを使用して、マイクロコントローラーで暗号化を実行しています (キー サイズは 256 ビットに制限されています)。

また、このスレッドで bouncycastle の提案を試みました (キーを生成し、テキスト ボックスに表示します)。キーは PEM 形式で保存されます。私が理解していることから、キーはbase64形式で保存されています。キーの長さを 256 ビットに指定しましたが、公開キーをバイトに戻すと、62 バイトになります。

byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString);

Microsoft の Strong Name ツール (sn.exe) も調べましたが、サポートされる最小キー サイズは 384 ビットです。

公開秘密鍵ペアを生成し、c# を使用して (または他のツールを使用して) プレーン テキスト/バイトで公開鍵を取得する方法はありますか? セッションキーを暗号化するために対称キー暗号化を使用した方がよいのでしょうか?

4

1 に答える 1

0

Windows ボックスに証明書サーバーをセットアップして、直接要求することができます。MS 証明書サービスをインストールする必要があります。makecertを使用して、 c#でキーにアクセスすることもできます。

または、キーペアをプログラムで生成することもできます。

于 2012-09-13T22:27:19.267 に答える