RSA编码块是否被视为良好的随机分布?

时间:2016-03-09 22:46:20

标签: encryption cryptography aes rsa

我正在创建一个新的传输协议,我目前使用大量的RSA传输来发送AES密钥以保护数据。

我目前对数据包的设置是:

RSA_Block{
   AES key
   IV
   Other things
}
AES_Block{
   Data
}

问题是IV本身占用了安全RSA块内的空间。如果我将IV移出(从安全角度来看很好)在我的传输中需要一些额外的空间(按IV大小放大数据包)。 所以我在想....如果RSA块包含纯随机数据(AES密钥在每次传输时都是随机的)。我使用RSA编码块的第一部分作为IV。

但它安全吗?或者RSA块的第一个字节是否有一些非随机性?

1 个答案:

答案 0 :(得分:1)

RSA 将一个数据块加密为一个加密数据块。可以适合块的数据大小由密钥大小决定。加密块的大小不取决于您加密的数据量,而是密钥大小。因此,从 RSA 输入中删除 IV 不会使输出变小 - 假设输入可以放在一个块中。 RSA 块中存在 IV 不会对总加密时间产生影响。

从安全角度来看,您不需要保护 IV 。通常,您只需将数据与明确的数据一起传递即可。像这样:

RSA_Block{
   AES key
   Other things
}
AES_Block{
   IV
   Data
}

我知道这实际上会使数据更大一些。但它不会对处理时间产生太大影响。在谈论 RSA 加密时考虑memcpy的成本没有任何意义。差异超过1000因素(might even be in the millions - depending on key size etc.)