博客專欄

EEPW首頁 > 博客 > RSA加密長度限制問題

RSA加密長度限制問題

發(fā)布人:電子禪石 時間:2023-02-13 來源:工程師 發(fā)布文章
RSA加密長度限制問題

RSA加解密中必須考慮到的密鑰長度、明文長度和密文長度問題。明文長度需要小于密鑰長度,而密文長度則等于密鑰長度。因此當加密內(nèi)容長度大于密鑰長度時,有效的RSA加解密就需要對內(nèi)容進行分段。

這是因為,RSA算法本身要求加密內(nèi)容也就是明文長度m必須0<m<密鑰長度n。如果小于這個長度就需要進行padding,因為如果沒有padding,就無法確定解密后內(nèi)容的真實長度,字符串之類的內(nèi)容問題還不大,以0作為結(jié)束符,但對二進制數(shù)據(jù)就很難,因為不確定后面的0是內(nèi)容還是內(nèi)容結(jié)束符。而只要用到padding,那么就要占用實際的明文長度,于是實際明文長度需要減去padding字節(jié)長度。我們一般使用的padding標準有NoPPadding、OAEPPadding、PKCS1Padding等,其中PKCS#1建議的padding就占用了11個字節(jié)。

這樣,對于1024長度的密鑰。128字節(jié)(1024bits)-減去11字節(jié)正好是117字節(jié),但對于RSA加密來講,padding也是參與加密的,所以,依然按照1024bits去理解,但實際的明文只有117字節(jié)了。

所以如果要對任意長度的數(shù)據(jù)進行加密,就需要將數(shù)據(jù)分段后進行逐一加密,并將結(jié)果進行拼接。同樣,解碼也需要分段解碼,并將結(jié)果進行拼接。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: rsa

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉