【问题标题】:What determine the length of encrypted String in RSA?什么决定了 RSA 中加密字符串的长度?
【发布时间】:2012-09-08 02:48:28
【问题描述】:

我知道一些小的加密字符串的长度为:160、196 ..

什么决定了大小?

【问题讨论】:

  • 一般情况下,加密字符串的长度就是明文字符串的长度,四舍五入到“块”边界。
  • 在我的项目 android 中,它总是 160 长度,但在我的 iphone 项目中它总是 196 长度。谢谢你的回答
  • @Hot Licks:我的模数字符串长度:289,指数:65537,但我不知道如何将任何文本设为 180 加密字符串长度对我有任何建议。
  • 您使用的是哪种加密算法? DES、AES ..等??

标签: iphone encryption rsa


【解决方案1】:

加密的单个“块”的字节大小与密钥大小相同,与模数的大小相同。私有指数通常大小相同,但可能更小。公共指数的大小可以达到密钥大小,但通常要小得多,以允许更有效的加密或验证。大多数时候它是费马的第四个数,65537。

请注意,这是加密数据的比特大小。纯数据必须被填充。 PKCS#1 v1.5 最多使用密钥大小 - 纯文本填充 11 个字节。不过,保持更高的边距当然是明智的,比如 19 字节的最小填充(16 字节随机而不是 8 字节随机填充)。

出于这个原因,并且由于执行 RSA 加密/解密的成本很高,RSA 主要与 AES 等对称原语结合使用 - 在 AES 的情况下,随机 AES 对称密钥被加密而不是普通密钥文本。然后使用该密钥对纯文本进行加密。

【讨论】:

  • 欢迎您 Ngo Ky。如果您认为它回答了您的问题,请不要忘记点击接受(答案旁边的 V 标记)。
猜你喜欢
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 2010-12-02
相关资源
最近更新 更多