# 9.1
![]()
证明不可能设计出一个安全的基于随机挑战的仅含有两个消息流的身份识别方案
证明:若基于随机挑战的仅含有两个消息流的身份识别方案仅基于随机挑战r 加密,敌手可以主动通过并行会话攻击来攻破
若基于随机挑战的仅含有两个消息流的身份识别方案同时对身份信息ID 加密,敌手可以被动通过中转通话双方的信息来收集信息修改信息
# 9.7
![]()
该方案流程如下:
- Bob 发送x 给 Alice,x 是随机选择的模n 的二次剩余
- Alice 计算y=x2modn,并把Cert(A),y 发送给 Bob
- Bob 验证y2≡x(modn) 是否成立,若成立,Bob 接受;否则,Bob 拒绝
| graph LR; |
| Bob -- x --> Alice; |
| Alice -- y = x^2 mod n, Cert --> Bob |
如果此时有一个攻击者 Carol 在中间监听 Alice 和 Bob 的通话
| graph LR; |
| Bob -- x --> Carol -- x --> Alice; |
| Alice -- y = x^2 mod n, Cert --> Carol; |
| Carol -- y' = x^2 mod n, Cert --> Bob |
如果 Carol 可以构造出y′,让 Bob 验证y′≡x(modn) 是正确的,即 Carol 冒充 Alice 攻击成功
根据欧拉准则可以验证a2p−1≡1(modp) 算出x2≡a(modn) 的a,则y′=a
# 10.1
![]()
(a) 根据 Diffie-Hellman KPS 定义可以得到
bUbVbW=αaUmodp=36138=αaVmodp=106355=αaWmodp=93325
(b)
KU,V=bVaUmodp=75452KU,W=bWaUmodp=119360
(c)
KU,V=bUaVmodp=75452=bVaUmodp
(d) 已知bU,α,p,要计算出αaU≡bU(modp) 的aU,是离散对数问题
因为p−1 本身极容易分解,可以利用 Shanks 算法或者 Pohlig-Hellman 算法迅速得到答案
# 11.1
![]()
bUbVKU,V=αaUmodp=7580=αaVmodp=22181=bUaVmodp=bVaUmodp=10141
# 11.3
![]()
bUbVSUSVK=αaUmodp=19392=αaVmodp=7592=αrUmodp=18143=αrVmodp=12=SUaVbUaVmodp=SVaUbVaUmodp=αrUaV+rVaU=7841