私は疑問に思っていました:1) SHA-512 =>でいくつかのデータのダイジェストを計算すると64バイトのハッシュになります2)次にRSA-1024 =>でこのハッシュに署名すると、128バイトのブロックになりますダイジェストの64バイトよりも大きい
=>最終的に署名されたハッシュが正確に128バイトになるという意味ですか?
情報をありがとうございました。
私は疑問に思っていました:1) SHA-512 =>でいくつかのデータのダイジェストを計算すると64バイトのハッシュになります2)次にRSA-1024 =>でこのハッシュに署名すると、128バイトのブロックになりますダイジェストの64バイトよりも大きい
=>最終的に署名されたハッシュが正確に128バイトになるという意味ですか?
情報をありがとうございました。
RSA では、PKCS#1で指定されているように、署名されるデータが最初にハッシュ関数でハッシュされ、次に結果がパディングされ(ハッシュ結果をモジュラ整数に変換する多かれ少なかれ複雑な操作)、次に数学的RSA の操作はその番号に適用されます。結果はnビットの整数で、nは通常「RSA キー サイズ」と呼ばれる「モジュラス」のビット単位の長さです。基本的に、RSA-1024 の場合、nは 1024 です。1024 ビットの整数は、PKCS#1 で説明されているエンコード方法に従って、正確に 128 バイトとしてエンコードされます (PKCS#1 は非常に読みやすく、長すぎません)。
nビットの RSA キーを使用して、長さmの出力を生成するハッシュ関数でデータに署名できるかどうかは、パディングの詳細に依存します。名前が示すように、パディングには、ハッシュ出力の周囲に余分なデータを追加することが含まれます。したがって、nはmよりも大きくなければならず、余分なデータのための余地が残されます。1024 ビット キーは SHA-512 (512 ビット文字列を生成) で使用できます。SHA-512 で 640 ビットのキーを使用することはできませんでした (640 ビットの RSA キーは破られる可能性があるため、自明ではありませんが)。