2

メッセージは

attempt to process message to long for cipher

完全なコールスタックは

Org.BouncyCastle.Crypto.DataLengthException was unhandled by user code
  HResult=-2146233088
  Message=attempt to process message to long for cipher
  Source=BouncyCastle.Crypto
  StackTrace:
       at Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher.ProcessBytes(Byte[] input, Int32 inOff, Int32 length)
       at Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher.DoFinal(Byte[] input, Int32 inOff, Int32 length)
       at Org.BouncyCastle.Crypto.BufferedCipherBase.DoFinal(Byte[] input)
       at MyCode.Bouncy.PublicEncrypt(String value, String pubKey) in c:\MyCode\Helpers\Bouncy.cs:line 80
  InnerException: 

公開鍵を使用して長さ 360 の文字列を暗号化しようとすると、鍵の長さは 1024 ビットです

エラーは、このキーを使用して暗号化できる文字列の長さに制限があることを示唆しているようです

これは正しいです ?

4

1 に答える 1

1

はい、非対称暗号を使用して暗号化できるメッセージのサイズには制限があります。対称暗号にはこれらの制限がありません。

非対称暗号でメッセージを直接暗号化することは想定されていません。非対称暗号を使用して対称キー (セッション キーまたはコンテンツ暗号化キー) を暗号化し、そのキーを使用してメッセージを暗号化することになっています。次に、暗号化されたセッション キーと暗号化されたメッセージを送信します。

次に、受信者は秘密鍵を使用してセッション キーを復号化し、復号化されたセッション キーを使用してメッセージを復号化します。

于 2013-04-22T11:22:47.143 に答える