RSA 暗号化は限られたデータ ペイロードしか処理できないというのは本当ですか? ... 理論がわかりません... 理論的にはこれに関する注記はありません...
ベストアンサー1
RSAは、モジュラスよりやや短い長さの単一のメッセージを暗号化します。具体的には、メッセージは最初に「パディング」され、その結果、0から12の間の大きな整数として解釈されるバイトシーケンスが生成されます。1-1 です、 どこんはモジュラス(公開鍵の一部)であるため、パディングされたメッセージはモジュラスより長くすることはできません。これは、生のメッセージの最大長が厳密であることを意味します。
具体的には、最も一般的なパディング方式(PKCS#1「旧スタイル」、別名「v1.5」では、パディングによってメッセージに少なくとも 11 バイトが追加され、パディングされたメッセージの合計長はモジュラス長と等しくなければなりません (例: 1024 ビット RSA キーの場合は 128 バイト)。したがって、最大メッセージ長は 117 バイトです。暗号化されたメッセージの長さはモジュラスと同じサイズであるため、暗号化によってメッセージ サイズが少なくとも 11 バイト拡張されることに注意してください。
大きなメッセージ(電子メールなど)を暗号化するために RSA を使用する一般的な方法は、ハイブリッド スキームを使用することです。
- ランダムな対称鍵けが選択されます(たとえば、128〜256 ビットのランダムな生のシーケンス)。
- 大きなメッセージは対称的に暗号化され、けAES などの適切かつ効率的な対称暗号化方式を使用します。
- けRSA で非対称暗号化されます。
大きなメッセージを多数の 117 バイトのブロックに「分割」し、それぞれを RSA で暗号化することは、さまざまな理由から通常は行われません。追加の脆弱性を追加せずに正しく行うことは困難です。各ブロックは 11 バイト拡張されるため、合計メッセージ サイズが無視できないほど増加します (ネットワーク帯域幅は希少なリソースになる場合があります)。対称暗号化の方がはるかに高速です。