我本来打算用AES加密,但我注意到了欧洲央行模式对注册会计师不安全。因此,我想通过将输入文本填充到16个字节的倍数来防止CPA。
首先,执行自定义填充系统: pad输入文本和16字节的秘密文本“每个”都是这样,因此输入文本将是16个字节的倍数。
例如,pad 8字节,pad文本是ASCII中"12345678“的一部分:
AAAAA -> AAAAA123
A -> A1234567
AAAAAAAA-> AAAAAAAA12345678在此之后,pad与PKCS#7兼容的填充在此填充输入+填充秘密文本。
最后,用ECB 128/ECB加密填充文本。
然后,将秘密文本与输入文本分开加密。所以..。也许这能阻止注册会计师。
我认为在其他攻击中还是不安全的。但它似乎完全防止获得秘密文本与注册会计师是。
有什么办法可以得到秘密短信吗?还是安全?
换句话说,这种升级的欧洲央行模式是否存在其他可能的攻击或注册会计师?
发布于 2023-02-12 03:31:59
填充只影响密码文本的最后一部分。因此,从定义上看,前一个区块之前的其他区块仍然是欧洲央行编码的,没有任何特殊的改动。因此--几乎从定义上看--在让欧洲央行成为印度注册会计师的问题上,它什么也不做。如果所有块包含以前遇到的明文/密文组合,则仍然可以很清楚地区分它们。
您提到的方案只不过是一个额外的确定性填充。它不会增加算法的安全性。
大多数其他模式对于欧洲央行所遭受的CPA攻击是无懈可击的,因此,如果你选择其他任何一种方式,你应该没事。现在,我们通常采用一种认证方案,如AES-GCM。
备注:
https://crypto.stackexchange.com/questions/104177
复制相似问题