鍵サイズが 1024 の RSA 暗号化システムには、暗号化に使用できるサイズの制限が 117 バイトあります。これは、オブジェクトを暗号化するためのものです。誰でも代替ソリューションを提案できますか??
3 に答える
通常、TripleDES、AES、Camellia などの対称暗号を使用してバルク データを暗号化および認証します。データが改ざんされていないことを確認したいので、可能であれば、CBC などのモードよりも GCM や EAX などのモードを選択してください (別の認証プリミティブとペアになっています)。次に、公開鍵と秘密鍵のペアを使用して対称鍵を暗号化します。
大きなメッセージを小さなメッセージに分割し、小さなメッセージを暗号化できます。この場合、非対称暗号 (RSA) を ECB モードで操作しています (私の記憶が正しければ)。Handbook of Applied Cryptography (HAC)は、この慣習に対して警告しています。
また、あまり詳しく説明するのではなく、セキュリティ レベルを一致させるようにしてください。したがって、AES-128 を使用している場合は、3072 ビットの RSA モジュライを使用してください。反対に、多くの人はそうする必要性を感じていません。
AES などの対称アルゴリズムを使用してオブジェクトを暗号化し、RSA を使用してオブジェクトの暗号化に使用したキーを暗号化します。これにより、RSA/Public Key Crypto の利点が得られますが、RSA キーのサイズよりも多くのデータを自由に暗号化できます。
これは、ほとんどの公開鍵暗号プロトコル (PGP/GPG など) が使用する一種のスキームです。
1024 はビット数であるため、その制限に達しています。それを 8 で割ると 128 になります。次に、PKCS#1 パディングが使用されているため、そこから 11 を引き、117 という数字を取得します。
とにかく、他の人が指摘したように、通常行われるのは、ランダムに生成された対称キーを暗号化し、それを使用して暗号化/復号化することです。