2011-07-12 49 views
30

RSA署名の長さは何ですか?キーサイズが1024でRSAシグネチャが128バイト、鍵サイズが512ビット、RSAシグネチャが64バイトの場合は、常にRSAキーサイズと同じサイズですか? RSA係数は何ですか? また、RSA-sha1とは何ですか? すべてのポインターを大いに感謝します。RSA署名サイズ?

答えて

43

あなたが正しいです、RSA署名のサイズは鍵のサイズに依存します、RSA署名のサイズは、モジュラスの長さに等しいバイトです。つまり、「nビット鍵」の場合、結果の署名は正確にnビット長くなります。計算された署名値は必ずしもnビットではないが、結果は正確にnビットに一致するようにパディングされる。

ここで、この動作方法を示します。RSAアルゴリズムはmodular exponentiationに基づいています。そのような計算のために、最終結果は、「標準」結果の残りをモジュラスで割ったものである。モジュラ演算はNumber Theoryで大きな役割を果たします。合同(≡)の定義は

m is congruent to n mod k if k divides m - n 

簡単な例がある - せ、N = 2及びk次いで= 7、

2 ≡ 2 (mod 7) because: 7 divides 2 - 2 
9 ≡ 2 (mod 7) because: 7 divides 9 - 2 
16 ≡ 2 (mod 7) because: 7 divides 16 - 2 
... 

7は実際は、分割の定義は

除算0でありませんプロパティBを有する整数nがある場合にbは

整数aは

01 NA =整数を分割します

n = 0の場合、すべての整数が0を分けることを意味しますが、合同を負の数に拡張することもできます(RSAの場合は重要ではありません) )。

合理性の原則は、剰余の知識を私たちの素朴な理解にまで広げているということです。この例では、モジュラスは「mod後の数値」です。例では、7となります。私たちはこれを合同クラスと呼び、計算の「残りの部分」について直感的にやっているのと同じように、通常は1つの代表(最も小さな一致する整数> 0)を選択します。

m^d ≡ r (mod n) 

これは二つのことを意味するようにRSAで

は、メッセージMは、「プライベート指数」Dとべき乗を意味署名、結果rは、最小の整数> 0であり、モジュラスNよりも小さい

  • (ビット単位)nで囲まれている(ビット)のRの長さ(ビット単位)Mの
  • 長さでなければならない< = N(ビットでも)

シグネチャを正確にnビット長くするには、何らかの形のパディングが適用されます。 Cf。有効なオプションについてはPKCS#1を参照してください。

第2の事実は、複数のチャンクでmを打ち切って署名しなければならないことを暗示しています< = nしかし、これは実際には遅すぎるので(モジュール累乗は計算上高価です)したがって、メッセージをnより小さくするためにメッセージを圧縮する別の方法が必要です。この目的のために、あなたが言及したSHA-1のようなcryptographically secure hash functionsを使用します。任意の長さのメッセージmにSHA-1を適用すると、RSAモジュラスの典型的なサイズよりも小さい20バイトの「ハッシュ」が生成されます。一般的なサイズは1024ビットまたは2048ビット、つまり128または256バイトです。任意のメッセージに対して署名計算を適用することができます。

このようなハッシュ関数の暗号特性は、(理論上 - 署名偽造は研究コミュニティの大きな話題です)、ブルートフォース以外の署名を偽造することはできません。

+0

ありがとうございました!あなたの助けをよろしく – user839917

+0

...それはどれくらいですか? 1024ビットの鍵で1バイトを暗号化すると、署名が1024ビット長くなることがわかります。 – ixe013

+1

私は結果をもう少し明確に強調しました:)そうです、1024ビットの鍵は1024ビットの署名を生成します。 – emboss

関連する問題