1

Python M2CryptoのRSAを使用して、外部サイトから提供された公開鍵を使用してメッセージをエンコードしようとしています。基本的に、私は次のようなことをしています。

from M2Crypto import RSA
import os
rsa = RSA.load_pub_key(os.path.join(BASE_PATH, 'external_site.pem'))
rsa_result = rsa.public_encrypt(message, 3).encode('base64')

暗号化時にパディングを使用しないと、次のエラーが発生します。

RSAError: data too small for key size

メッセージの長さ(RSA暗号化のモジュラス)に上限がある理由は理解できますが、下限がある理由はわかりません。誰かがこれを説明したり、それを理解するために正しい方向に私を向けたりできますか?

4

2 に答える 2

0

(コメントからの回答を繰り返し、「閉じる」だけです)

おそらく、OAEP パディングを使用するように API に指示する必要があります。パディングを使用すると、エラーはおそらく消えます。パディングがなければ、メッセージの長さはおそらくモジュラスの長さと等しくなる必要があります。ただし、パディングを使用しないと深刻なセキュリティ上の問題が発生するため、何をしているのか本当によくわかっていない限り、そうしないでください。

于 2012-09-01T16:41:55.143 に答える