密码协议经典攻击分析
1. MTI密钥协商协议攻击
在MTI密钥协商协议的两阶段攻击中,涉及到三个角色:参与者A、参与者B和攻击者I。
- 前提条件 :
- A选择一个随机整数“a (1 ⩽ a ⩽ p - 2)”作为长期私钥,并注册公钥“α^a mod p”。
- B选择一个随机整数“b (1 ⩽ b ⩽ p - 2)”作为长期私钥,并注册公钥“α^b mod p”。
- 攻击者I选择一个整数e,计算“α^ae mod p”,并注册公钥“α^ae mod p”。
- 协议操作流程 :
1. 在消息1中,A随机选择一个秘密“x, 1 ⩽ x ⩽ p - 2”,并向B发送消息“α^x mod p”。
2. 在消息1′中,攻击者I通过将A的指数α^x转发给B,在I和B之间发起一个新的协议运行。
3. B收到α^x后,计算I和B之间的共享密钥为“k = (α^x)^b(α^ae)^y = α^(bx + aey) mod p”。
4. 在消息2′中,攻击者I拦截B的指数α^y,将“α^y修改为α^ey”并发送给A。
5. A收到α^ey后,计算与B的共享密钥为“k = (α^ey)^a(α^b)^x = α^(aey + bx) mod p = α^(bx + aey) mod p”。
在协议运行结束时,A认为与B共享密钥“α^(bx + aey)”,而B认为与I共享该密钥。攻击者I实际上无法计算出k,但会使B产生错误的信念。这种攻击可以通过密钥确认来检测,并通过修改协议使指数或预期实体的身份得到认证,例如通过数字签名来防止。 </