量子世界中的密钥分发协议研究
1. 密钥查询与模拟
等待攻击者 A 对函数 f 和 g 进行查询。当 A 查询 f(i)(i ∈ [N³])时,有两种情况:
- 若 h′(i) = (0, 0),则将 ˆf(i) 作为 f(i) 的值返回给 A;
- 否则,返回 yπ1(h′(i))。
当 A 查询 g(i, j)(i, j ∈ [N³])时,也有两种情况:
- 若 π2(h′(i)) = π2(h′(j)) ≠ 0,且 s 为真且 i < j 或者 s 为假且 i > j,则将 w 作为 g(i, j) 的值返回给 A;
- 否则,返回 ˆg(i, j)。
若 A 成功返回使得 g(i, j) = w 的 (i, j) 对,这实际上就是关于 h′ 的搜索问题的答案。除了极少量的 ˆg(i′, j′) = w 的情况外,g(i, j) = w 意味着 π2(h′(i)) = π2(h′(j)) ≠ 0。A 对 f 和 g 的查询回复方式与 f 和 g 是与 Alice 和 Bob 在真实协议执行中宣布的 Y 和 w 一致的随机函数时相同。模拟环境中,f 在 h′(i) = (0, 0) 时是随机的,其余 N 个输出值在 Y 中;g 除了一个输入对 (i, j)(i ≠ j)使得 g(i, j) = w 外,其余地方都是随机的。因此,A 在模拟环境中的行为与在真实世界中相同。每个 A 对 f 或 g 的新问题会转化为对 h′ 的一到两个问题。任何成功的密码分析策略若对 f 和 g 的总查询次数为 o(N⁵/³),则对 h′ 的查询次数也为 o(N⁵/³) 就能解决搜索问题,这几乎是不可能的,从而建立了破解密钥交换协议的密码分析难度