《信息安全工程》这本书里提到的一个协议,怎样攻击
把这个问题搁置了很久,主要是卡在对开锁条件的理解上。今天感谢匿名用户的回答,让我又重新读了一遍描述,整理出了一个思路。
正常情况是没问题的,锁只有当接收到小于等于16+当前nonce值的时候才会开。
关键在于,这句中的open on a second press上。
To cope with cases where the token has been used more than sixteen times elsewhere (or gnawed by a family pet), the lock will open on a second press provided that the counter value has been incremented between 17 and 32,767 times
一开始想岔了,把press理解为第二段刻印之类的东西(我以为计数器有两段),其实,这个词在这里仍旧是“按压”的意思。
这句话是说:
为了应对当令牌(token)在其他地方被使用了16次以上的情况(或者钥匙被宠物啃了的情况),这个锁会在第二次按钥匙的时候被打开,只要计数器值是从上次开锁时的数值被增加了17至32767次的结果。
换句话说,如果我得到一个token
,其内部被加密的counter值N‘是正好是上次counter值N加上17至32767中的任何一个数,那么当我把t发送给锁之后,只要再按一次钥匙,锁就会开!这里的攻击方式应该就是重放攻击(replay attack)
结合后文说到的六个数和计数器的表数范围再次考虑。
0, 1, 20000, 20001, 40000 40001
表示为以a为上界,b为下界的区间。
设i为上述六数字之一,a= (i-17) mod 65536, b=(i-32767) mod 65536,依次计算得到可以用重放攻击攻破的、上次正确的N值范围:
, ,
, , (注)
,
以上区间覆盖了整个N的范围0-65535。所以这时候,只要攻击者重发这几个token,就有
... a thief who can get six well-chosen access codes — say for values 0, 1, 20,000, 20,001, 40,000 and 40,001 — can break the system completely.
注:
由于模运算表示的实际上是 【《信息安全工程》这本书里提到的一个协议,怎样攻击】
■网友
我感觉跟对称加密方案有关,如果是分组加密,也许能拿到初始向量。密码学里面有个概念,叫选择明文攻击,也即敌手只有加密能力。一般的对称密码方案都只有这种安全性。如果拿到题主所说的明密文对,理论上确实可以攻破该密码方案。因为没具体看索引章节,论述仅供参考。望提供一个分析方向。
推荐阅读
- 绝密原型档案 这本书咋样
- 有看过写乔帮主【疯狂的简洁】这本书的,说说自己的感受吧
- 咋评价《从0到1》这本书
- 健康|@扬州人 健康生活如何养成?这本78字“口袋书”学起来
- 海鲜■赞!连岛渔家海鲜面入选中宣部宣教局编写的这本书
- 学习Photoshop,想深入了解一下其中的算法,是否可以看数字图像处理这本书
- 绘本|如何让孩子“看见”?这本绘本画风太可爱!“看不见”的病毒
- UX/UD 交互设计 用户体验 入门书籍
- 为啥苹果新书里的 iPhone 上面不是 9:41 而是 9:42
- 有啥关于马化腾其人的书值得推荐为啥想想要了解马化腾的人推荐这本书
