如果不知道加密方式和参数,加密强度是多少?

What is the encryption strength if I don't know the encryption method and parameters?

如果我使用不同的加密方法但在密文输出中没有提供我使用哪种方法的指示(例如,将未加密的 header 附加到密文)是否会使密文更难解密例如,密钥长度隐含的难度?缺乏关于使用什么加密协议和参数的信息应该增加难度,因为要求潜在的解密者尝试一些或所有不同的加密方法和参数。

嗯,一般来说你不应该依赖算法/协议本身的信息。此类信息对于您使用的任何密钥都是通用的,因此您 should consider it public knowledge。好的,就这样吧。

现在假设你使用了 16 种方法,并且你以某种方式创建了一个协议来保持所使用的加密方法的机密性(假设通过加密一个半填充随机和魔法的块,在接收方解密块直到你找到正确一个)。现在,如果您想暴力破解所使用的密钥,则需要再尝试 16 次。换句话说,您只是将密钥长度增加了 4 位,如 2 ^ 4 = 16。所以说你会有 AES-256 等效密码。您现在将拥有 256 + 4 = 260 位的等效加密。这几乎没有注册,特别是因为 AES-256 已经被认为可以安全地抵御使用量子计算机的攻击。

现在这 4 位的价格非常高。使用多个密码的高度复杂的协议。这些密码中的每一个都有其弱点。 None 其中的 None 将受到与 AES 一样多的审查,如果 一个 中断,您就有麻烦了(至少 16 条加密消息中有 1 条)。速度会有所不同,参数和块大小会有所不同,平台可能不会全部支持它们...

总而言之,如果您不愿意接受AES-128,请使用AES-256。如果必须,请使用 AES 和 SERPENT 加密两次。不过,在 IV 和密文上添加身份验证标签可能会产生更大的不同。 See this answer by Thomas over at the security site

尝试GCM或EAX操作模式。更有用。