RSA加密问题[有效载荷数据的大小]

Sud*_*ha 19 cryptography rsa

RSA加密只能处理有限的数据有效载荷吗?......我和理论混淆了......理论上没有关于这个的说明......

Tho*_*nin 78

RSA加密单个消息,其长度略小于模数.具体来说,消息首先被"填充",产生一个字节序列,然后被解释为0和n-1之间的一个大整数,其中n是模数(公钥的一部分) - 所以填充消息不能超过模数,这意味着原始消息的严格最大长度.

具体来说,使用最常见的填充方案(PKCS#1 "old-style",又称"v1.5"),填充为消息添加至少11个字节,并且总填充消息长度必须等于模数长度例如,对于1024位RSA密钥,为128字节.因此,最大消息长度为117个字节.请注意,生成的加密消息长度与模数大小相同,因此加密必须将消息大小扩展至少11个字节.

使用RSA加密大邮件(比如电子邮件)的正常方法是使用混合方案:

  • 选择随机对称密钥K(例如,128到256个随机位的原始序列).
  • 使用适当且有效的对称加密方案(例如AES),使用K对称加密大消息.
  • K是用RSA非对称加密的.

由于各种原因,将一条大信息"拆分"成如此多的117字节块,每块都用RSA加密,通常不会这样做:如果不增加额外的弱点,很难做到正确; 每个块将扩展11个字节,这意味着不可忽略的总消息大小增加(网络带宽可能是稀缺资源); 对称加密要快得多.

  • 为了扩展这一点.如今,在RSA加密之前,OAEP(PKCS#1 v2.1)应该用于填充消息.填充使用内部哈希函数(MGF)两次和一些其他信息.假设`hlen`是散列函数的输出大小,那么开销是'2*hlen + 2`.SHA-1是最常用的哈希函数.这意味着**1024位RSA密钥**只能加密到SHA-1的**86字节**和SHA-256的**62字节**. (2认同)

mrk*_*rks 13

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

要增强RSA的安全性,您应该使用PKCS1中定义的填充方案.根据您选择的方案,消息的大小可以明显小于模数. http://en.wikipedia.org/wiki/PKCS1