25、密码认证密钥交换:协议与安全模型解析

密码认证密钥交换解析

密码认证密钥交换:协议与安全模型解析

隐式认证与显式认证

在密码认证密钥交换(PAKE)中,通常假定其目标是让会话 $P_i$ 和 $P_j’$ 输出新的密钥 $sk_i$ 和 $sk_j$,当这些会话使用匹配的密码(即 $pw_i = pw_j$)时,$sk_i = sk_j$。不过,若 $P_i$ 未与匹配的对端交互,其输出并无限制,这样的会话也能输出新的会话密钥 $sk_i$。

PAKE 协议具有隐式认证属性:会话 $P_i$ 并不知晓其对端是否能计算出相同的密钥 $sk_i$,但如果可以,那么对端必定知道 $P_i$ 的密码 $pw_i$,并且在与 $P_i$ 交互时使用了该密码。需要注意的是,BPR 模型是否能正式推导出上述结论并不明确,这与 BMP 模型形成了对比。

更强的概念是 PAKE - EA,即带有显式认证或实体认证的 PAKE。在这种情况下,只有当 $P_i$ 验证对端确实存在时,才会输出 $sk_i \neq \perp$。若 $P_i$ 的对端未按照相同密码遵循协议,$P_i$ 应输出特殊的拒绝符号 $sk_i = \perp$,而非不与任何其他方共享的“悬空”会话密钥。

Bellare 等人(2000)对 PAKE - EA 的处理稍显非正式,但他们认为隐式认证的 PAKE 是更基础的概念。实际上,一个简单的编译器(如图 10.2 所示)可以将任何(隐式认证的)PAKE 转换为 PAKE - EA。图 10.2 中的值 $\tau$ 和 $\gamma$ 被称为密钥确认消息或认证符,其中 $\tau$ 向 B 证明 A 计算出了相同的密钥 $sk_A = sk_B$,$\gamma$ 向 A 证明相应的陈述。为简化表示,这里省略了标识符 $sid_i$ 和 $pid_i$ 的处理,但这些可以从 PAKE 的输出传递到 PAKE - EA 的输出。

在图 10.2 中,值 $sk’$、$\tau$ 和 $\gamma$ 是使用任何具有 $\kappa$ 位密钥和输出的伪随机函数(PRF)从 PAKE 的会话密钥 $sk$ 派生而来的。在密钥交换(KE)文献中,这种对 PRF 的使用被称为密钥派生函数(KDF)。由于 PRF 仅在域 ${0, 1, 2}$ 上求值,它可以实现为 $(sk’||\tau||\gamma) \leftarrow PRG(sk)$。Bellare 等人(2000)使用的 KDF 实现是 $PRF(k, c) = H(k, c)$,其中 $H$ 被建模为随机预言机(RO)。

以下是从隐式认证的 PAKE 转换为 PAKE - EA 的编译器流程:
| 参与方 | 操作步骤 |
| ---- | ---- |
| 参与方 A(输入 $pw_A$) | 1. 执行隐式认证的 PAKE 协议得到 $sk_A$
2. $\tau \leftarrow PRF(sk_A, 1)$
3. 接收 $\gamma$
4. 若 $\gamma \neq PRF(sk_A, 2)$,输出 $\perp$;否则,$sk_A’ \leftarrow PRF(sk_A, 0)$ 并输出 $sk_A’$ |
| 参与方 B(输入 $pw_B$) | 1. 执行隐式认证的 PAKE 协议得到 $sk_B$
2. $\gamma \leftarrow PRF(sk_B, 2)$
3. 接收 $\tau$
4. 若 $\tau \neq PRF(sk_B, 1)$,输出 $\perp$;否则,$sk_B’ \leftarrow PRF(sk_B, 0)$ 并输出 $sk_B’$ |

BPR 模型的局限性

在 BPR 模型中,每对参与方从相同集合 $D$ 上的均匀分布中选择密码,这与现实世界中参与方根据自身语言从不同分布中选择密码的行为相去甚远。虽然定义 10.2 可以通过将基线优势 $\frac{q_{ses}}{|D|}$ 替换为分布中 $q_{ses}$ 个最高概率的总和来处理任意密码分布,但 BPR 模型仍存在其他难以克服的局限性。

  • 缺乏对相关密码分布和动态信息泄露的支持 :将 BPR 安全游戏推广到常见的现实世界相关密码分布情况较为困难。例如,计算机用户选择的新密码可能依赖于之前与不同对端建立的密码,常见的应用场景如密码输入错误。一个诚实的用户可能会使用与正确密码密切相关的密码运行协议,但 BPR 概念并不能保证在这种相关密码上执行协议的安全性。此外,BPR 概念也难以捕捉密码信息的动态泄露,比如在安全游戏中途向对手泄露部分密码信息的影响。

  • BPR 模型的其他非自适应方面 :在讨论前向安全性(PFS)时,我们注意到 BPR 安全模型允许自适应会话状态泄露。然而,BPR 模型的一些定义选择存在微妙的非自适应方面。例如,对手必须事先决定是进行被动攻击还是主动攻击,即对手分别调用允许被动观察会话的预言机和允许与活跃会话交互的预言机。只有第二种查询会计入对手优势的 $\frac{q_{ses}}{|D|}$ 界限,但对手能否先观察会话发送的消息,然后再决定是否主动攻击呢?此外,如果对手只能测试一个会话,那么对于多个会话的同时安全性就不明确了。因为标准的混合论证表明,如果挑战位决定 $q_{ses}$ 个测试会话的真实或随机状态,而不是一个,对手优势的界限仅为 $\frac{(q_{ses})^2}{|D|}$,这是次优的。Abdalla 等人(2005b)扩展了 BPR 模型,使对手可以测试任意数量的会话,解决了后一个问题。前一个问题也可以解决,但会进一步使模型复杂化。

EKE 与 Diffie - Hellman 密钥交换的实例化

Bellare 等人(2000)在 EKE 协议(如图 10.1 所示)中使用 Diffie - Hellman 密钥交换(DH KE)进行实例化,得到的协议被命名为“EKE2”(如图 10.3 所示)。该协议以顺序形式展示,但无论哪一方先发送消息,安全证明似乎都能成立。

Party A on input pw A
Party B on input pw B
x ←$ Zq, cA ←E(pw A, gx)
y ←$ Zq, cB ←E(pw B, gy)
-
A, cA
B, cB
Y ←D(pw A, cB)
X ←D(pw B, cA)
sk A ←H(A, B, gx, Y, Y x)
sk B ←H(A, B, X, gy, Xy)
sidA ←H(A, cA, B, cB)
sidB ←H(A, cA, B, cB)
pidA ←B
pidB ←A
output (sk A, sidA, pidA)
output (sk b, sidB, pidB)
g generates group ⟨g⟩of order q; (E, D): an ideal cipher on ⟨g⟩; H: RO hash

在 EKE 中使用的加密方案 $(E, D)$ 必须在密钥交换消息空间上具有均匀的密文。在 EKE2 的情况下,这个空间是 DH KE 中使用的群 $\langle g \rangle$。在 Bellare 等人(2000)的分析中,该加密被假定为理想密码(IC),即它是消息空间 $M = \langle g \rangle$ 和密文空间 $C$ 之间的随机双射集合 ${E_k}$。Bellare 等人提出了以下安全声明:

定理 10.1 :如果 $(E, D)$ 是理想密码且 $H$ 是随机预言机,那么图 10.3 所示的 EKE2 方案在 BPR 模型(具有自适应破坏)下,在群 $\langle g \rangle$ 上的计算 Diffie - Hellman 假设下是安全的 PAKE。

需要注意的是,由于使用理想密码很容易实现随机预言机(例如,$H(x) = E(0^{\kappa}, x)$),上述结论仅意味着 EKE2 在理想密码模型下的安全性。在 Bellare 等人(2000)中,这个界限仅针对“弱破坏模型”提出,但该模型似乎对应于上述描述的自适应安全概念。

在任意群上实现理想密码

Bellare 等人(2000)对 EKE2 的安全分析假定在 DH KE 中使用的群 $\langle g \rangle$ 上存在理想密码 $E$。可以将随机化的理想密码 $E$ 在 $\langle g \rangle$ 上实现为 $E(k, m) = E’(k, \xi(m))$,其中 $E’$ 是 ${0, 1}^n$ 上的理想密码,$\xi : \langle g \rangle \to {0, 1}^n$ 是随机化的可逆编码,且 ${\xi(m)}_{m \leftarrow \$ \langle g \rangle}$ 在统计上接近均匀的 $n$ 位字符串。这样的随机化理想密码在 $\langle g \rangle$ 上足以用于定理 10.1 的证明。

  • 特殊情况:整数区间群 :当 $\langle g \rangle = Z_p^*$($p$ 为素数),即 $\langle g \rangle$ 是整数区间 $[1, \ldots, p - 1]$ 时,对于 $n \geq |p| + \kappa$,很容易构造这样的编码:$\xi(m)$ 随机选择 $r \leftarrow \$ [2^n/p]$ 并输出 $m’ = m + rp$(整数运算),$\xi^{-1}(m’)$ 输出 $m = (m’ \bmod p)$。

  • 椭圆曲线群 :对于椭圆曲线群,这样的编码并不直接可得。在椭圆曲线编码出现之前,Black 和 Rogaway(2002)展示了在任何在 ${0, 1}^n$ 上稠密的群 $G$ 上实现理想密码 $E’$ 的预期常数时间方法。在该构造中,对于 $m \in G$,$E’(k, m)$ 定义 $c_0 = E(k, m)$ 并对所有 $i \geq 0$ 计算 $c_{i + 1} = E(k, c_i)$,然后将 $E’(k, m)$ 设置为序列 $c_1, \ldots, c_i$ 中第一个属于 $G$ 的元素 $c_i$。解密过程则反向执行相同的过程。然而,这种方法的一个弱点是,计时信息会泄露加密器/解密器应用 $E(k, \cdot)$ 或 $D(k, \cdot)$ 的次数,如果 $k = pw$,这将泄露关于密码的信息。

Bernstein 等人(2013)为一类椭圆曲线群构造了均匀编码,称为 Elligator2,它适用于群中一半的元素。具体来说,Elligator2 将 $\xi : G’ \to [0, \ldots, (q - 1)/2]$ 映射,其中 $G’$ 是阶为 $q$ 的椭圆曲线群 $G$ 的子域,且 $|G’| = (q + 1)/2$。但由于 Elligator2 仅在一半的域上工作,每个参与方必须重新采样其 DH KE 贡献,直到找到属于 $G’$ 的元素,这需要预期 2 次迭代,效率较低。

Tibouchi(2014)和 Kim 与 Tibouchi(2015)展示了一种适用于更大类椭圆曲线群的均匀编码,称为 Elligator - squared,它适用于整个域 $\langle g \rangle$。其解码 $\xi^{-1}$ 的成本与 Elligator2 解码相似,但编码 $\xi$ 需要采样和测试原像点,成本约为 Elligator2 的三倍(取决于曲线)。此外,Elligator - squared 将椭圆曲线点编码为一对域元素,因此使用的带宽是 Elligator2 的两倍。

另一种方法是应用 Holenstein 等人(2011)、Dachman - Soled 等人(2016)和 Dai 与 Steinberger(2016)的结果,使用“混合”Feistel 构造在群 $\langle g \rangle$ 上实现随机化的理想密码。使用 Dachman - Soled 等人(2016)的 8 轮 Feistel 结构,加密和解密都需要进行四次群哈希操作。不过,McQuoid 等人(2020)对该设计进行了显著优化,表明两轮混合 Feistel(即单次群哈希)可以实现一种“一次性”理想密码,足以满足 EKE2 的需求。

BMP 安全模型概述

Boyko - MacKenzie - Patel(BMP)模型与 Bellare - Pointcheval - Rogaway(BPR)模型在同一年(2000 年)出现。BMP 安全模型从 Bellare - Canetti - Krawczyk 模型和 Shoup 的改进中获得灵感,遵循基于模拟的安全定义范式,该范式之前用于建模安全多方计算(MPC)。

基于模拟的范式考虑两个安全游戏,涉及两种类型的对手。第一个游戏是现实世界游戏,是对手 $A$ 与运行协议 $\Pi$ 的诚实参与方的交互。第二个游戏是理想世界游戏,是称为理想世界对手的算法 $A^ $ 与理想化系统(用功能 $F$ 表示)的交互,该系统按定义除了方案功能所需的信息外,不会向对手泄露任何信息。如果对于所有高效的现实世界对手 $A$,都存在高效的理想世界对手 $A^ $(也称为模拟器),使得两个游戏产生不可区分的视图,那么该方案被定义为安全的。这里的“视图”定义为对手的输出(包括其整个交互记录)和所有诚实参与方的输出的联合分布。

BMP 模型将这一通用范式应用于 PAKE 协议,意味着没有人(即没有高效的 $A$)能对现实世界的 PAKE 协议 $\Pi$ 做比能对“理想”PAKE 方案(由 $F$ 捕获)做的更多的事情。安全概念的本质在于理想化方案 $F$ 的规范。根据 MPC 范式,功能 $F$ 必须满足以下条件:
1. 让对手知道 $P_i$ 正在运行协议,但不泄露 $P_i$ 的输入信息(在 PAKE 中即 $P_i$ 的密码)。
2. 对于每个实例,$F$ 应接受 $A^ $ 可以为此实例贡献的单个明确定义的输入,在 PAKE 中这将是主动攻击者在与 $P_i$ 交互时使用的唯一密码猜测 $pw^ $。
3. $F$ 应以完美的方式选择 $P_i$ 的输出,即在 PAKE 中,如果 $pw^ \neq pw$,则 $P_i$ 输出随机会话密钥;如果 $pw^ = pw$,则 $P_i$ 输出应由对手决定的密钥。

下面我们将详细介绍 BMP 模型中的现实世界游戏和理想世界游戏。

密码认证密钥交换:协议与安全模型解析

BMP 模型中的现实世界游戏与理想世界游戏
现实世界游戏

在 BMP 模型的现实世界游戏中,对手 $A$ 与运行多项式数量 PAKE 协议实例的诚实参与方 $(P_1, \ldots, P_n)$ 进行交互。这与 BPR 安全游戏类似,对手 $A$ 完全控制所有诚实参与方之间的网络。但与 BPR 安全游戏不同的是,这里没有定义协议“破解”的事件,也没有对手需要预测的挑战位 $b$。

在这个游戏中,所有 $A$ 发送和接收的消息都会被记录为对手视图 $view_A$ 的一部分,所有诚实参与方的输出(会话密钥以及接受/拒绝位)构成诚实参与方视图 $view_{(P_1, \ldots, P_n)}$。这两个视图共同形成现实世界游戏的交互记录 $transcript_{real}[A, \Pi]$,其中 $view_A$ 的每个部分(即 $A$ 发送或接收的每条消息)和 $view_{(P_1, \ldots, P_n)}$ 的每个部分(即每个 $P_i$ 的输入和输出)都会按照创建顺序添加到 $transcript_{real}[A, \Pi]$ 中。

与 BPR 安全游戏最显著的区别在于诚实参与方 $P_i$ 的密码输入由谁决定。在 BMP 模型中,诚实参与方的输入由一个称为“环主”的特殊实体决定,但在不损失一般性的情况下,环主可以遵循对手 $A$ 的指示。因此,看似违反直觉的是,实际上是对手 $A$ 决定所有密码。这与 BPR 安全游戏形成强烈对比,在 BPR 中,$P_i$ 的密码由游戏挑战者从某个字典中随机选择,而不是由对手决定。不过,这种看似违反直觉的选择不仅合理,还意味着对任意密码分布的安全性,并有助于克服 BPR 模型的其他一些局限性。与 BPR 模型一样,$A$ 可以揭示任何诚实参与方的会话密钥,并且由于不再有对手“测试”的会话,在不损失一般性的情况下,$A$ 可以获取所有 $P_i$ 输出的会话密钥。

理想世界游戏

我们从隐式认证的 PAKE 情况开始介绍理想世界游戏,这是 BPR 定义的基础情况,后来成为 PAKE 的标准概念。我们将在 10.4.4 节解释对显式认证(PAKE - EA)的扩展。

BMP 模型中的理想世界游戏是模拟器算法 $A^ $ 与 PAKE 方案的理想功能 $F_{PAKE}$ 之间的交互,具体过程如下:
1.
新会话启动 :当环主使用某个密码 $pw[P_i]$ 调用诚实参与方 $P_i$ 时,$F_{PAKE}$ 向 $A^ $ 发送 $(NewSession, P, i)$ 并为该会话创建内部状态,将其标记为“新鲜”。因此,理想世界对手知道某个 $P_i$ 正在运行协议,但不知道其密码输入。环主根据 $A^ $ 的信号启动 $P_i$,同时设置 $P_i$ 的角色位及其预期的对端标识符 $pid$。
2.
密码测试查询 :对于任何会话 $P_i$,对手 $A^ $ 可以向 $F_{PAKE}$ 发送消息 $(TestPwd, P, i, pw^ )$,这模拟了现实世界对手在与 $P_i$ 交互时使用密码猜测 $pw^ $ 遵循 PAKE 方案的主动攻击。如果 $pw^ = pw[P_i]$,则 $F_{PAKE}$ 将 $P_i$ 的会话标记为“已泄露”,否则标记为“已中断”。(这些标记将决定 $F_{PAKE}$ 对 $NewKey$ 查询的响应方式,见下文。)此外,$F_{PAKE}$ 会向 $A^ $ 揭示此标记,这意味着现实世界的 PAKE 协议可以揭示主动攻击是否成功。关键的是,$A^ $ 每个 $P_i$ 会话最多只能发送一个 $TestPwd$ 查询,这强制执行了对手在被攻击的会话上最多只能测试一个密码猜测的要求。此查询可以在新鲜会话或悬空终止会话上进行,见下文 $NewKey$ 处理。实际上,$A^ $ 进行终止后密码测试的能力(即使对于 PAKE - EA 也是如此)是基于模拟的 BMP 模型与 Canetti 等人(2005)的通用组合(UC)PAKE 模型的关键区别。
3. 新密钥查询 :对于任何会话 $P_i$,对手 $A^ $ 可以向 $F_{PAKE}$ 发送 $(NewKey, P, i, P_j’, sk^ )$,这模拟了 $P_i$ 接收到最后一个协议消息(假定来自 $P_j’$)并以某个输出终止。作为响应,$F_{PAKE}$ 终止该会话并按以下方式决定其输出 $sk_i$:
- 会话已泄露 :如果 $P_i$ 会话已泄露,则 $sk_i \leftarrow sk^ $。
-
双方匹配 :如果 $P_i$ 和 $P_j’$ 都是新鲜的,$pw[P_i] = pw[P_j’]$,$pid[P_i] = P’$ 且 $pid[P_j’] = P$,$P_j’$ 和 $P_i$ 的角色位将它们定义为第一个和最后一个完成的,并且 $P_j’$ 输出了 $sk_j$,则 $sk_i \leftarrow sk_j$。
-
其他情况 :否则,$sk_i \leftarrow \$ {0, 1}^{\kappa}$,并且如果 $A^ $ 请求,将 $P_i$ 标记为“悬空”。
4. 其他操作 :$A^ $ 还可以请求任何终止会话 $P_i$ 的输出 $sk_i$(因此在不损失一般性的情况下,可以假设所有 $sk_i$ 输出都发送给 $A^ $),并终止任何正在运行的会话 $P_i$ 以输出 $\perp$(这模拟了现实世界中对 $P_i$ 的拒绝服务攻击)。
5. 交互记录 :每个 $P_i$ 的输入 $pw_i$ 和输出 $sk_i$ 都记录在理想世界交互记录 $transcript_{ideal}[A^ , F_{PAKE}]$ 中,并且 $A^ $ 可以随时向记录中添加任何消息,模拟 $A$ 在现实世界协议中会接收和发送的消息。

BMP 安全定义

基于上述现实世界游戏和理想世界游戏的规则,BMP 模型中 PAKE 安全的定义如下:

定义 10.3 :如果对于所有高效算法 $A$,都存在高效算法 $A^ $,使得 $transcript_{real}[A, \Pi] \stackrel{c}{\approx} transcript_{ideal}[A^ , F_{PAKE}]$,即由 $A$ 和 $\Pi$ 定义的现实世界游戏交互记录与由 $A^*$ 和 $F_{PAKE}$ 定义的理想世界游戏交互记录在计算上不可区分,那么我们称 PAKE 方案 $\Pi$ 在 BMP 模型中是安全的。

由于证明必须展示一个对任何 $A$ 都有效的算法 $A^ $,自然的构造是将 $A$ 用作预言机。由于 $A$ 期望与运行协议 $\Pi$ 的现实世界 $P_i$ 进行交互,$A^ $ 需要向 $A$ 模拟这些 $\Pi$ 实例,即创建与协议 $\Pi$ 中 $P_i$ 的消息不可区分的消息。

总结与对比

通过对 BPR 模型和 BMP 模型的详细分析,我们可以看到它们各自的特点和局限性。BPR 模型在密码选择的假设上与现实世界存在差距,并且在处理相关密码分布、动态信息泄露和多会话安全性等方面存在困难。而 BMP 模型通过独特的设计,在一定程度上克服了这些问题,特别是在处理任意密码分布和明确密码输入决定方方面表现出优势。

在实际应用中,选择合适的安全模型对于设计和评估 PAKE 协议至关重要。开发者需要根据具体的应用场景和安全需求,权衡不同模型的优缺点,以确保协议的安全性和可靠性。同时,随着密码学技术的不断发展,我们也期待未来出现更加完善和实用的安全模型,以应对日益复杂的安全挑战。

下面用 mermaid 流程图展示 BMP 模型中理想世界游戏的主要流程:

graph TD;
    A[环主启动会话] --> B[$F_{PAKE}$发送NewSession给$A^*$];
    B --> C{$A^*$发送TestPwd查询?};
    C -- 是 --> D{密码猜测正确?};
    D -- 是 --> E[标记会话为已泄露];
    D -- 否 --> F[标记会话为已中断];
    C -- 否 --> G{$A^*$发送NewKey查询?};
    E --> G;
    F --> G;
    G -- 是 --> H{会话状态};
    H -- 已泄露 --> I[$sk_i \leftarrow sk^*$];
    H -- 双方匹配 --> J[$sk_i \leftarrow sk_j$];
    H -- 其他 --> K[$sk_i \leftarrow \$ \{0, 1\}^{\kappa}$];
    I --> L[记录输出到交互记录];
    J --> L;
    K --> L;
    G -- 否 --> M{$A^*$请求输出或终止会话?};
    M -- 是 --> N[处理请求并记录];
    M -- 否 --> B;
    N --> B;
    L --> B;

通过这个流程图,我们可以更清晰地看到 BMP 模型中理想世界游戏的主要交互过程和决策点。

综上所述,密码认证密钥交换协议的安全模型研究是一个不断发展和完善的领域,不同的模型为我们提供了不同的视角和方法来保障通信的安全性。在实际应用中,我们需要深入理解这些模型的特点和适用范围,以便做出更加明智的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值