0

RSAでは、メッセージの長さは(keysize / 8)バイトを超えてはなりません。なぜそのような制限があるのですか?RSAアルゴリズムに入力する前に、入力(「abcde」など)は何に変換されますか。また、入力文字列「abcde」のサイズはどこで考慮されますか?

4

1 に答える 1

4

RSAアルゴリズムは基本的に次のとおりです。

暗号文=(平文e)mod n

復号化するには:

平文=(暗号文d)mod n

eそしてn一緒にあなたの公開鍵を作り、そしてdあなたnの秘密鍵を作ります。e通常、はいくつかの一般的な値の1つであり、たとえば65537nは、2つの大きな素数の積であり、一意pqある必要があり、キーの長さ(たとえば、1024ビット)を定義します。暗号文の復号化に使用されるの値は、、およびdを使用して計算されます。興味がある場合は、ウィキペディアに詳細があります:http: //en.wikipedia.org/wiki/RSA_(algorithm)。平文は、RSAアルゴリズムで使用される場合、基本的に大きな整数として扱われます。epq

モジュロ演算子に慣れていない場合は、基本的に左側を右側で割った余りです。たとえば17 mod 5 = 2、5は17を3回正確に除算し(3 * 5 = 15)、余りは:)になります17 - 15 = 2

モジュロ演算子の定義の結果として、の結果a mod bは常に。より小さくなりbます。これを考えると、復号化された値がmod n操作を実行した結果であるという事実は、復号化されたときに、結果のプレーンテキスト値が常にn未満になることを意味します。したがって、これが最初に暗号化した実際の平文であるためには、入力が。未満である必要がありますn

これを保証するために、メッセージはより少ないビット(「桁」)を持つように制限されていますn。のビット数はキーサイズであるため、、、または(1バイトに8ビットがあるため)n未満である必要があります。keysize bitskeysize / 8 bytes

于 2012-04-08T09:25:55.613 に答える