2009-12-04 72 views
3

我想知道: 1)如果我計算一些DATAS的摘要與SHA-512 =>導致的64個字節 2)的散列,然後我用RSA-1024 =>所以簽署該散列一個128字節的塊,它大於摘要的64個字節使用RSA-1024簽名SHA-256摘要:大小是多少?

=>這是否意味着我的簽名哈希將是,正好是 128字節?

非常感謝任何信息。

回答

6

使用RSA,如通過PKCS#1指定,要簽名的數據,首先用散列函數散列,然後將結果填充(或多或少的複雜的操作,其將所述散列結果到模塊化整數),然後在該數字上應用RSA的數學運算。其結果是一個Ñ比特整數,其中Ñ處於「模量」,通常稱爲「RSA密鑰大小」的位的長度。基本上,對於RSA-1024,n是1024.按照PKCS#1中所述的編碼方法(PKCS#1非常可讀且不太長),1024位整數被編碼爲128個字節。

無論Ñ位RSA密鑰可以用於註冊與產生長度的輸出依賴於填充的細節的散列函數數據。顧名思義,填充涉及添加周圍散列輸出一些額外的數據,因此Ñ必須大於,留下一些空間用於額外數據。一個1024位的密鑰可以與SHA-512(產生512位的字符串)一起使用。你不能在SHA-512上使用一個640位的密鑰(不管怎樣,你不會這麼做,因爲640位的RSA密鑰可能會被破壞 - 儘管不是很平常)。

相關問題