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# を使用して (または他のツールを使用して) プレーン テキスト/バイトで公開鍵を取得する方法はありますか? セッションキーを暗号化するために対称キー暗号化を使用した方がよいのでしょうか?