0

愚蠢的老我的另一个简单问题。

我们不断听到大量数字被抛出,例如关键:

234234-234WEF-ER334AS-3535FWF 

任何人都需要 200 亿年才能破解。

有人能解释一下你是怎么知道你什么时候破解的吗?如果你排列了一万亿个组合,你怎么知道你是否通过了正确的组合?当然,您必须在无法如此快速地处理这么多请求的实时系统上对其进行测试,并且半脑筋的系统管理员会注意到攻击。

我经常看到“破解关键############”的比赛,你怎么知道什么时候有解决方案?你神奇地遇到了英文短语“ Ha you wont find me!”之类的吗?

我错过了什么?

4

3 回答 3

4

如果您正在谈论公钥加密,您可以知道您何时破解了密钥,如果您可以访问公钥(并且您经常这样做 - 它通常是公开的,因此它的名字)。decrypt(encrypt(message))这意味着您可以离线进行攻击,并且您可以通过执行您选择的消息轻松验证您是否找到了私钥,并检查您是否获得了正确的结果。

您还可以经常以数学方式验证结果。例如,使用RSA 算法,如果您可以分解公钥中的数字,那么您可以证明您找到了正确的私钥,因为在生成私钥时使用了质因数。

于 2010-08-25T16:47:06.177 回答
2

关键挑选过程有两个步骤:

  1. 选择下一个键(蛮力或字典)
  2. 验证,如果失败转到 1

如果您正在破解远程应用程序所有者可以通过某种方式限制验证来防止选择。(例如 3 次尝试,然后暂停)。如果你正在破解本地的东西,比如加密的 rar 文件,那么所有者可以通过进行繁重的验证操作来进行艰难的挑选,比如对其进行多次编码。

于 2010-08-25T16:52:12.483 回答
1

您如何知道何时有解决方案?

当程序/算法/系统/验证密钥的任何东西接受它时。

根据他们试图破解的内容,攻击者可以自己进行验证。

于 2010-08-25T16:46:21.367 回答