用于在运行时强制执行已知随机密钥的算法

时间:2013-06-04 05:55:38

标签: c++ algorithm encryption cryptography

假设我有这个字符串文字(用作键),例如:

'h''我'我'是''''''''''''''''

它被传递到这样的应用程序(随机):

't''我''''''我'是''''c''''

什么是解析这个(在for循环中)的算法,然后尝试解密数据,然后检查已知偏移的值,如果为false则开始循环。

  • 请注意,这将在运行时与256位AES密钥一起使用。

问题:算法平均需要多长时间 - 考虑到它是使用AES 256密钥? (时间不是问题,只是好奇)

谢谢大家。

重要编辑 - 由于我的应用程序不兼容,因此无法使用STD功能或任何CRT。

2 个答案:

答案 0 :(得分:3)

使用 n 项循环遍历集合的所有排列的算法具有O( n !)的复杂度。将算法应用于包含9个项目的示例集意味着9! = 362880次迭代,这可能是可行的。

加密密钥是如何从9个字符的字符串派生的?设计这个系统的人似乎对密码学一无所知。

关于置换迭代算法,参见例如这个:Stepping through all permutations one swap at a time

答案 1 :(得分:2)

如果你可以通过强力发现字符串,那么任何其他人都可以,因此加密就没有意义。