可以解密加密数据的碎片吗?

Can fragments of encrypted data be decrypted?

假设我加密字节数组 A,得到加密的字节数组 E。接下来我将 E 分成两个较小的数组,E1 和 E2。

如果我 ONLY 有 E1 和 E2,是否可以解密它们,或者 E1 A​​ND E2 都需要存在,以正确的顺序,以便成功解密数据?是否可以从 E1 或 E2 中独立提取任何有用的信息(即 A 的某个子集)?

我知道这可能取决于加密算法。我主要对常见的密钥对算法(如RSA)感到好奇。

这主要取决于加密所使用的模式,尽管它取决于关于可能的模式的算法。

使用流式传输模式(CTR 或 CFB 或 OFB)答案通常是 'yes' -- 您可以解密接收到的流的任何部分,但使用反馈模式时,有些部分可能会丢失。

使用块模式(ECB 或 CBC)答案是 'somewhat' -- 您可以解码您获得的任何完整块,但任何部分块都将无法恢复。

使用跨块模式(不是标准术语),答案将是 'no',因为这些模式是专门为此设计的 属性。

RSA 具有较大的块大小,通常以块模式用于加密单个块(其中包含一个对称会话密钥),因此只有一个块的一部分通常意味着您不会得到任何东西。