RSA加密中,什么决定了加密后字符串的长度?

4

我知道一些小的加密字符串长度如:160,196等。

是什么决定了大小?


块填充?(http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Padding) - user166390
通常,加密字符串的长度是明文字符串的长度向上舍入到“块”边界。 - Hot Licks
在我的Android项目中,它始终是160个字符长度,但在我的iPhone项目中,它始终是196个字符长度。谢谢您的回答。 - Ngo Ky
@ Hot Licks:我的模数字符串长度为289,指数为65537,但我不知道如何将任何文本转换为180个加密字符串长度。你有什么建议吗? - Ngo Ky
你正在使用哪种加密算法?DES,AES等等? - Pratyusha Terli
@ Pratyusha Terli:我实现了RSA加密。 - Ngo Ky
1个回答

2
一个“块”加密的字节数与密钥大小相同,与模数大小相同。私有指数通常与密钥大小相同,但可能会更小。公共指数可以达到密钥大小,但通常要小得多以实现更高效的加密或验证。大多数情况下,它是费马第四个数字65537。
请注意,这是加密数据的位数。明文数据必须进行填充。PKCS#1 v1.5对于纯文本使用最多密钥大小-11字节的填充。不过最好保持更高的余量,例如至少19字节填充(用16字节的随机值代替8字节的随机值进行填充)。
由于执行RSA加密/解密的成本很高,因此通常将RSA与对称原语(如AES)结合使用——在AES的情况下,随机AES对称密钥被加密,而不是明文。然后使用该密钥来加密明文。

欢迎您,Ngo Ky。如果您认为这个回答解决了您的问题,请不要忘记点击接受(答案旁边的V标志)。 - Maarten Bodewes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接