通过明文打乱降低AES-CTR模式可塑性影响的方案是否可行?
AES-CTR模式下打乱字节顺序降低可塑性的方案有效性咨询
我需要对文本进行可随机访问的加解密,因此选择了AES-CTR模式——它是CBC与GCM之间的折中方案。但AES-CTR模式具有可塑性,不过由于我加密的文本无预设模式且无需认证,仅需防止攻击者读取明文,这不算大问题。不过我希望降低攻击者利用AES-CTR可塑性的能力,为此提出如下方案:
public static void main() { Key key = …; IVParameterSpec iv = …; int rSeed = …; byte[] plainText = …; byte[] shuffled = shuffle(plainText, rSeed); byte[] encrypted = encryptAES_CTR(shuffled, key, iv); … byte[] decrypted = decryptAES_CTR(encrypted, key, iv); byte[] unShuffled = unShuffle(decrypted, rSeed); // Here unShuffled content must be equal to plainText content. }
先通过shuffle(...)函数结合随机种子打乱明文字节顺序,再用AES-CTR加密;解密后通过unShuffle(...)恢复明文顺序。假设shuffle与unShuffle互为逆操作,该方案意图让攻击者篡改密文后,篡改影响在恢复阶段被分散,降低篡改内容的可利用性。
现咨询以下问题:
- 此方案是否真的有效,还是仅为无实际作用的表面步骤?
另外我了解GCM模式具备认证性且无可塑性,但它无法支持随机访问,尤其是无法仅修改并重新加密部分明文,因此不适用。
内容的提问来源于stack exchange,提问作者Callimard
相关产品推荐
相关产品推荐

