2

RSA 暗号化を使用して暗号化されたデータを暗号化したい。しかし、別の公開鍵を使用して暗号化されたデータを暗号化すると。エラーは「不明なエラー」です

キーサイズの問題だと思います。

私の鍵のサイズは 1024 ビットです。

簡単なソースコード:

  1. 最初のステップ: キー サイズ 1024 ビットの RSA 公開キーを使用してデータを暗号化する

    byte[] encryptedData = RSAalg.Encrypt(dataToEncrypt, false);
    
  2. 2 番目のステップ: キー サイズが 1024 ビットの別の RSA 公開キーを使用してデータを暗号化します。

    byte[] encryptedData1 = RSAalg1.Encrypt(encryptedData, false);
    

エラーは2番目のステップで表示されます。どうすればこれを修正できますか?

4

1 に答える 1

0

encryptedDataパディングが原因で、1024ビットのキーで1024ビットのデータ(本来あるべきもの)を暗号化することはできません。

.NETとC#を使用している場合、[暗号化]とfalseはPKCS#1パディングを使用することを意味します。これにより、(メモリから)117バイト(128バイトではなく)を暗号化できます。

注:結果を得るために2番目の暗号化を繰り返す必要はありませんが、このデータを2つのキー(同じキー長)で2回暗号化する理由を自問する必要があります。より高いセキュリティが必要な場合は、より大きなキーを使用する必要があります(1回)。OTOHデータを復号化するために複数のキーが必要な場合は、別の戦略が必要です。

于 2012-04-09T15:08:03.150 に答える