DES算法破解需要时间的解析

1.运用场景

首先题目的描述是这个样子的:

这里写图片描述

用DES算法加密一个64位的明文,其中秘钥的长度是56位。攻击者是知道明文和密文的,但是不知道秘钥是什么。假设攻击者每一秒中能做10的10次方个加密或者解密算法,现在给了攻击者一个密文,要找出其配对的明文平均需要花费的时间是多少?


这道题目我在批改的过程中发现基本上没有学生能够答对的,能写出正确的解题过程的学生我到现在还没有发现。

没有把这道提做出来的主要原因,第一是真的不会做,第二没有理解题目的意思,概念不清楚。

我们要花费的时间其实就是我们需要找出秘钥的时间。

现在知道的就是一秒钟可以计算的可能性是10的10次方,现在我们要破解秘钥,总共是56位的二进制数,要找到这个秘钥我们平均需要尝试的次数是多少是解决这个问题的关键。

下面我们就来详细的描述一下这道题目要怎么来解决。

说明:如果你不幸也要做这道题,请你先自行尝试,不能得到正确答案再来参看解析,谢谢合作~



2.解题思路

这题要求解的是平均需要花费的时间。我们要算的是要找到这个秘钥平均需要花费的时间。现在秘钥总共是56位,那么破解这56位平均需要花费的时间是多少。就是这道题我们需要求解的问题。因为我们找到这个秘钥之后是可以很快的通过密文得到我们的明文的。

我们先从简单的例子分析,然后来得到我们这道题的答案。

假设我们秘钥就只有两位,那么我们需要猜几次。

这里写图片描述

由于有两位那么这个秘钥的可能就有四种可能。

这里写图片描述

分别是 0 0,0 1,1 0,11 这四种可能。那么我们可能一次就猜中了,这个是最好的情况,或者第一次没有猜中,第二次猜中;或者前两次都没有猜中,第三次猜中,或者是前三次都没有猜中,那么我们也知道秘钥是什么,就是剩余的那个。也就是最坏的情况下我们需要猜测3次,最坏的情况我们需要尝试3次,注意注意是三次。不是四次。
我们需要猜测的次数:
1
2
3
那么平均数就是 (1+2+3)/3
后面的个数表示有3个数,所以说如果秘钥的长度2那么我们平均猜测的次数就是6/3=2 就是两次就可以

假设我们的秘钥是三个,那么秘钥的可能就有8种:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

假设我们就按照这个顺序来猜测,假设秘钥就是 0 0 0, 那么我们猜 0 0 0, 只用一次,这个是最好的情况。假设秘钥是 1 1 1, 我们按照我们刚才排列出来的顺序来猜测,发现猜了7次,你也没有猜中,那么我们也知道这个秘钥就是1 1 1,最后第8次是不需要尝试的,前7次尝试过后你也知道了秘钥的1 1 1.
所以我们猜测的次数可能是:
1
2
3
4
5
6
7
那么我们平均需要猜测的次数就是(1+2+3+4+5+6+7)/7=4


上面这个不就是个等差数列么,下面是需要猜测的次数的个数
总共的个数有 2n1

等差数列前 n 项和公式 :

Sn=n(a1+an)2

在这里 n 就是 2n1 ; a1=1 ; an=2n1

那么 a1+an=1+2n1=2n

那么: Sn=2n(2n1)2

刚好我们猜测的平均次数就是 2n1 所以分子分母可以约分,我们就可以得到平均猜测的次数: 2n1

其实这道题到这里我们就已经做完了,那我们再来看看有没有其他的分析方法,或者更加简单。


我们通过观察可以发现,最好的是一次,最差的情况是 2n1 次。 次好的情况是2次,比最差好一点的是 2n2

这个有一种“对称”的味道在里面,所以平均值就是最好次数和最差的情况的中值。 也就是 (1+2n1)2=2n2=2n1


3.解答过程

这里写图片描述

这道题的解答过程如上面这个图所示。那如果题目是最多要猜测几次这个题目的解答过程就完全不一样了,最多我们需要猜测 2n1 次我们一定是可以知道秘钥。所以在看题目的时候一定要注意关键字。


















这里写图片描述




这里写图片描述

你还是要幸福
你千万别招惹别人哭
明天开始这一切都结束




  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值