在RSA中,消息長度不應超過(密鑰大小/ 8)字節。爲什麼會有這樣的限制?什麼是輸入(比如說「abcde」)在將其輸入到RSA算法之前轉換成什麼輸入字符串「abcde」的大小?RSA中的消息長度限制
-2
A
回答
3
RSA算法基本上是:
Ciphertext = (Plaintext e) mod n
和解密:
Plaintext = (Ciphertext d) mod n
e
和n
一起組成了你的公鑰和d
和n
讓你的私鑰。 e
通常是幾個常見值之一,例如65537,n
是兩個大素數p
和q
的乘積,它們應該是唯一的,並且定義了密鑰長度(例如1024位)。用於解密密文的d
的值使用e
,p
和q
來計算。維基百科有更多的細節,如果你有興趣:http://en.wikipedia.org/wiki/RSA_(algorithm)。在RSA算法中使用時,明文基本上被視爲一個大整數。
如果你不熟悉模運算符,它基本上是左邊除以右邊的餘數。例如。 17 mod 5 = 2
爲5完全除17三次(3 * 5 = 15
),剩下的餘數爲:17 - 15 = 2
)。
由於模運算符的定義,a mod b
的結果總是小於b
。鑑於此,並且解密值是執行mod n
操作的結果的事實意味着,當解密時,得到的明文值將總是小於n。因此,對於這是您最初加密的實際純文本,輸入必須小於n
。
爲了保證這一點,該消息被限制爲具有比n
更少的位(「數字」)。由於n
中的位數是密鑰大小,因此其必須少於keysize bits
或keysize/8 bytes
(因爲在一個字節中有8位)。
相關問題
- 1. 客戶端websocket限制消息長度
- 2. RSA消息太長Javascript JSBN
- 3. 具有特定填充的RSA最大消息長度
- 4. 限制長度值
- 5. mysql長度限制
- 6. NSString長度限制
- 7. AJAX長度限制
- 8. SSL,基於編碼消息獲得解碼消息的長度的上限
- 9. C++中protobuf消息的長度前綴
- 10. 吐司消息長度
- 11. FIX - 確定消息長度?
- 12. 限制令牌的長度
- 13. 限制TTPostController.textView的長度?
- 14. 如何限制WordPress中的傳記信息長度和內容?
- 15. 限制MSMQ消息/優先消息
- 16. 限制XSLT中的字符串長度
- 17. 限制FreeMarker中的字符串長度
- 18. Android限制長度到EditText的寬度
- 19. 如何限制MemoryStream長度?
- 20. 限制鈴聲長度Applescript
- 21. 限制URL查詢長度?
- 22. 對於XML長度限制
- 23. OData URL長度限制
- 24. Symfony路由長度限制
- 25. 限制表達長度
- 26. Java長度無限制AudioInputStream
- 27. 字符長度限制$ _GET?
- 28. Gmail HTML長度限制
- 29. 限制字符串長度
- 30. ODBC列長度限制
我想你沒有得到我的問題。我的問題是,如果有一個輸入字符串「abcde」,我想用公鑰進行加密,那麼帽子將如何完成。什麼將「ancde」轉換爲? – Ashwin 2012-04-08 09:57:23
它會被轉換成數字。你如何做到這一點取決於「ancde」代表什麼。 (例如,大寫字母是否合法?是數字嗎?是標點符號嗎?)輸入字符串如何轉換爲數字(或輸入是字符串)不是RSA算法的一部分,是它的一部分具體實施。如果你願意,例如,你可以用「01」,「b」和「02」等表示'a',然後用十進制表示。您可以在二進制文件中使用8位ASCII碼。 – 2012-04-08 09:58:40
@David Schwartz:所以你說的是「abcde」可以轉換成這樣的內容:「0102030405」,這對於公鑰是密文的權力? – Ashwin 2012-04-08 10:03:04