RSAencryption问题

RSAencryption只能处理有限的数据载荷是真的吗? …我与理论混淆…理论上没有关于这个…

在不太安全的基本RSAalgorithm(没有填充)中,消息的大小被限制为小于模数。

为了增强RSA的安全性,您应该使用PKCS1中定义的填充scheme。 根据您select的scheme,消息的大小可以显着小于模数。 http://en.wikipedia.org/wiki/PKCS1

RSAencryption长度稍小于模数的单个消息。 具体来说,消息首先被“填充”,产生一个字节序列,然后将其解释为0到n-1之间的大整数,其中n是模数(公钥的一部分) – 所以填充的消息不能超过模数,这意味着在原始信息上有一个严格的最大长度。

具体来说,使用最常见的填充scheme( PKCS#1 “旧式”,又名“v1.5”),填充至less为消息增加了11个字节,并且总的填充消息长度必须等于模数长度例如,对于1024位RSA密钥是128字节。 因此,最大消息长度是117字节。 请注意,生成的encryption消息长度的大小与模数相同,因此encryption必须将消息大小扩展至less11个字节。

使用RSAencryption大邮件(比如电子邮件)的正常方式是使用混合scheme:

  • select随机对称密钥K (原始序列,例如128到256个随机位)。
  • 大消息用K对称encryption,使用适当和高效的对称encryptionscheme,如AES。
  • K用RSA进行不对称encryption。

将大量信息“分割”成117个字节的块,每个块都要用RSA进行encryption,但由于各种各样的原因,通常不会这么做:在不增加额外的缺点的情况下很难做到这一点。 每个块将被扩展11个字节,这意味着不可忽略的总的消息大小增加(networking带宽可能是稀缺的资源); 对称encryption要快得多。