AKE from KEM

参考文献:

  1. [CGH98] Ran Canetti, Oded Goldreich, Shai Halevi. The Random Oracle Methodology, Revisited (Preliminary Version). STOC 1998: 209-218.
  2. [CK02] Ran Canetti, Hugo Krawczyk. Security Analysis of IKE’s Signature-Based Key-Exchange Protocol. CRYPTO 2002: 143-161.
  3. [Kra03] Hugo Krawczyk. SIGMA: The ‘SIGn-and-MAc’ Approach to Authenticated Diffie-Hellman and Its Use in the IKE-Protocols. CRYPTO 2003: 400-425.
  4. [DGH+04] Yevgeniy Dodis, Rosario Gennaro, Johan Håstad, Hugo Krawczyk, Tal Rabin. Randomness Extraction and Key Derivation Using the CBC, Cascade and HMAC Modes. CRYPTO 2004: 494-510.
  5. [BCGNP08] Colin Boyd, Yvonne Cliff, Juan Manuel González Nieto, Kenneth G. Paterson. Efficient One-Round Key Exchange in the Standard Model. ACISP 2008: 69-83.
  6. [FSXY12] Atsushi Fujioka, Koutarou Suzuki, Keita Xagawa, Kazuki Yoneyama. Strongly Secure Authenticated Key Exchange from Factoring, Codes, and Lattices. Public Key Cryptography 2012: 467-484.
  7. [FSXY13] Atsushi Fujioka, Koutarou Suzuki, Keita Xagawa, Kazuki Yoneyama. Practical and post-quantum authenticated key exchange from one-way secure key encapsulation mechanism. AsiaCCS 2013: 83-94.
  8. [Pei14] Chris Peikert. Lattice Cryptography for the Internet. PQCrypto 2014: 197-219.
  9. [HHK17] Dennis Hofheinz, Kathrin Hövelmanns, Eike Kiltz. A Modular Analysis of the Fujisaki-Okamoto Transformation. TCC (1) 2017: 341-371.
  10. [JZC+18] Haodong Jiang, Zhenfeng Zhang, Long Chen, Hong Wang, Zhi Ma. IND-CCA-Secure Key Encapsulation Mechanism in the Quantum Random Oracle Model, Revisited. CRYPTO (3) 2018: 96-125.
  11. [SXY18] Tsunekazu Saito, Keita Xagawa, Takashi Yamakawa. Tightly-Secure Key-Encapsulation Mechanism in the Quantum Random Oracle Model. EUROCRYPT (3) 2018: 520-551.
  12. [XLL+18] Haiyang Xue, Xianhui Lu, Bao Li, Bei Liang, Jingnan He. Understanding and Constructing AKE via Double-Key Key Encapsulation Mechanism. ASIACRYPT (2) 2018: 158-189.
  13. [HKSU20] Kathrin Hövelmanns, Eike Kiltz, Sven Schäge, Dominique Unruh. Generic Authenticated Key Exchange in the Quantum Random Oracle Model. Public Key Cryptography (2) 2020: 389-422.
  14. [JKRS21] Tibor Jager, Eike Kiltz, Doreen Riepel, Sven Schäge. Tightly-Secure Authenticated Key Exchange, Revisited. EUROCRYPT (1) 2021: 117-146.
  15. [PWZ23] Jiaxin Pan, Benedikt Wagner, Runzhi Zeng. Lattice-Based Authenticated Key Exchange with Tight Security. CRYPTO (5) 2023: 616-647.
  16. FO-like Transformation in QROM & Oracle Cloning
  17. AKE 安全模型:CK, CK+, eCK

利用多种手段,可以把被动安全的 KE 协议增强为 AKE 协议,具体可分为 Explicit AKE 以及 Implicit AKE,前者使用额外的 Sign 和 MAC 针对 KE 的对话消息做认证,后者则是仅使用 KE 协议本身。

SIGn-and-MAc

Explicit AKE 具有明确的构造框架,特别是 [CK02] 给出的 “SIGn-and-MAc (SIGMA)” 提供了良好的开端。[Kra03] 基于 DH 协议设计了 SIGMA 协议族,[Pei14] 将其中的 DH 协议替换为抽象的 IND-CPA KEM 方案。

在这里插入图片描述

假设存在 IND-CPA 安全的 KEM 以及 EUF-CMA 安全的 SIGMAC,函数 F F F 是安全的 PRF,协议 Σ 0 ′ \Sigma_0' Σ0 定义如下:

  1. Setup:采用 Honest key registration 对各个参与方的 SIG 长期公钥做注册,TTP 运行 KEM.Setup 生成公开参数 pp
  2. Start message
    • 上层协议使用 ( I , R , s i d ) (I,R,sid) (I,R,sid) 激活 Initiator
    • 执行 ( p k I , s k I ) ← K E M . G e n ( p p ) (pk_I,sk_I) \gets KEM.Gen(pp) (pkI,skI)KEM.Gen(pp)
    • 发送 ( s i d , p k I ) (sid,pk_I) (sid,pkI) R R R
    • 状态为 ( p k I , s k I ) (pk_I,sk_I) (pkI,skI)
  3. Response message
    • 上层协议使用 ( R , I , s i d , p k I ) (R,I,sid,pk_I) (R,I,sid,pkI) 激活 Responder
    • 执行 ( c , k ) ← K E M . E n c a p s ( p p , p k I ) (c,k) \gets KEM.Encaps(pp,pk_I) (c,k)KEM.Encaps(pp,pkI),计算 k 0 = F k ( 0 ) , k 1 = F k ( 1 ) k_0=F_k(0),k_1=F_k(1) k0=Fk(0),k1=Fk(1)
    • 计算 σ R = S I G . S i g n R ( 1 , s i d , p k I , c ) \sigma_R=SIG.Sign_R(1,sid,pk_I,c) σR=SIG.SignR(1,sid,pkI,c) τ R = M A C . T a g k 1 ( 1 , s i d , I D R ) \tau_R=MAC.Tag_{k_1}(1,sid,ID_R) τR=MAC.Tagk1(1,sid,IDR)
    • 发送 ( s i d , c , I D R , σ R , τ R ) (sid,c,ID_R,\sigma_R,\tau_R) (sid,c,IDR,σR,τR) I I I
    • 状态为 ( k 0 , k 1 ) (k_0,k_1) (k0,k1)
  4. Finish message
    • 上层协议使用 ( s i d , c , I D R , σ R , τ R ) (sid,c,ID_R,\sigma_R,\tau_R) (sid,c,IDR,σR,τR) 激活 Initiator
    • 执行 k = K E M . D e c a p s ( s k I , c ) k=KEM.Decaps(sk_I,c) k=KEM.Decaps(skI,c),计算 k 0 = F k ( 0 ) , k 1 = F k ( 1 ) k_0=F_k(0),k_1=F_k(1) k0=Fk(0),k1=Fk(1)
    • 验证 σ R \sigma_R σR τ R \tau_R τR 是否有效,然后计算 σ I = S I G . S i g n R ( 0 , s i d , c , p k I ) \sigma_I=SIG.Sign_R(0,sid,c,pk_I) σI=SIG.SignR(0,sid,c,pkI) τ I = M A C . T a g k 1 ( 0 , s i d , I D I ) \tau_I=MAC.Tag_{k_1}(0,sid,ID_I) τI=MAC.Tagk1(0,sid,IDI)
    • 发送 ( s i d , I D I , σ I , τ I ) (sid,ID_I,\sigma_I,\tau_I) (sid,IDI,σI,τI) R R R
    • 擦除状态,输出 ( s i d , k 0 ) (sid,k_0) (sid,k0)
  5. Responder completion
    • 上层协议使用 ( s i d , I D I , σ I , τ I ) (sid,ID_I,\sigma_I,\tau_I) (sid,IDI,σI,τI) 激活 Responder
    • 验证 σ I \sigma_I σI τ I \tau_I τI 是否有效
    • 擦除状态,输出 ( s i d , k 0 ) (sid,k_0) (sid,k0)

[Pei14] 证明上述的协议 Σ 0 ′ \Sigma_0' Σ0,在所谓 post-specified peer model 下满足 CK 安全性

BCGNP construction

[BCGNP08] 给出了 KEM 到 AKE 的两种转换,获得的 AKE 是 one-round(两条消息,但可以并发),其满足 CK 安全性并且抵御其他的若干攻击。

IB-KEM

[BCGNP08] 考虑将 PKI-based AKE,扩展为基于 ID-based KEM 构造(两者都需要 TTP)

在这里插入图片描述

其 IND-CCA 安全性,定义如下:

在这里插入图片描述

Generic 2×KEM Protocols

[BCGNP08] 的基本思路是,使用两个 ID-KEM,将双方的 ID 作为长期公钥,密钥交换时各自执行 KEM.Encaps 互相发送 ctxt,然后使用 Strong Randomness Extractor 从这两个 KEM-Key 提取出 PRF-Key,然后用 PRF 根据 state 来产生 Session-Key。

Strong Randomness Extractor 的用途是从任意高熵分布中提取出统计均匀分布,定义如下:

在这里插入图片描述

注意,Key Derivation Function 仅要求其输出和任意的高熵分布计算不可区分。[DGH+04] 证明了 CBC-MACCascade ChainingHMAC 都具有 Extraction Properties。

在这里插入图片描述

[BCGNP08] 证明该协议满足 CK 安全性,并且抵御 KCI 攻击。注意,上述协议还要求 KEM-Key 具有足够高的最小熵,但是 IND-CCA 安全性并不会导致它;不过,大多数的 KEM 都满足该性质。

为了进一步提供 weak PFS,[BCGNP08] 使用额外的 DH 协议产生(与长期私钥独立的)临时密钥,其构造如下:

在这里插入图片描述

FSXY Construction

std.

[FSXY12] 推广了 [BCGNP08] 的构造方法,不再使用 DH 协议作为短期密钥交换,而是使用 IND-CPA 安全的 KEM,从而满足 wPFS 并且抵御 MEX 攻击。此外,使用 KDF 替换了 Strong Randomness Extractor;标准模型下,计算安全的 KDF 可以从 PRF 构造出来。

在这里插入图片描述

为了实现 CK+ 安全,[FSXY12] 使用了两个关键技术,

  • twisted PRF trick
    • 如果自然地使用 KEM,即短期秘密 esk 直接作为 KEM.Encaps 的随机带,那么敌手发起 Session-State Reveal 可以立即恢复出 KEM-Key(公钥已知,仅由 esk 决定);因此,需要使用 NAXOS trick,将 esk 和 ssk 输入到 RO 中以生成随机带,从而抵御 MEX 攻击。
    • 在 std. 模型中,[FSXY12] 使用两个具有 “互反密钥” 的 PRFs,即计算 F σ ( r ) ⊕ F r ′ ′ ( σ ′ ) F_{\sigma}(r) \oplus F'_{r'}(\sigma') Fσ(r)Fr(σ),其中 r , r ′ r,r' r,r某参与方的两个 esk σ , σ ′ \sigma,\sigma' σ,σ同一个参与方的两个 ssk,只要这四个密钥没有同时泄露,那么 PRF 保证 KEM.Encaps 的随机性。
  • session-specific key generation
    • 由于 ctxt 是公开发送的,如果双方的 ssk 都泄露了,那么敌手可以轻易获得 Generic 2×KEM Protocols 生成的 Session-key;因此需要添加和双方 ssk 完全独立的临时密钥交换,从而具备 wPFS 性质。
    • [FSXY12] 使用额外的 IND-CPA KEM,从而获得 two-message AKE 协议(不再是 one-round,因为 KeyGen 和 Encaps 有先后)。

假设 IND-CCA KEM 和 IND-CPA KEM 以及 KDF 存在,令 F , F ′ , G F,F',G F,F,G 都是 PRF,GC 构造如下:

在这里插入图片描述

在 std. 模型下,上述的 PKI-based AKE 协议满足 CK+ 安全性。此外,[FSXY12] 也给出了相应的 ID-based AKE 构造方法。

ROM

为了改善通信效率,[FSXY13] 继续提出了 ROM 下的 AKE 构造,所需要的 KEM 被弱化为 OW-CCA,并且不再需要 PRF 和 KDF。

首先,给出 KEM 方案 OW 性质的定义,

在这里插入图片描述

采用 NAXOS 框架,令 H 1 , H 2 H_1,H_2 H1,H2 是建模为 ROs 的独立散列函数,GCwR 构造如下:

在这里插入图片描述

在 RO 模型下,上述的 two-message AKE 协议满足 CK+ 安全性。但是,[FSXY13] 未能给出 QROM 下的安全性证明。

AKE from 2-key KEM

上述的 HMQV、NAXOS、BCGNP 和 FSXY 都属于 Implicit AKE,其设计方法比较杂乱。[XLL+18] 抽象出了 “Double-Key KEM” 原语,然后基于该原语设计 AKE 协议。

所谓 Double-Key KEM 包含如下算法,

在这里插入图片描述

它所使用的两个公私钥对,具有不同的安全性,记为 [ IND/OW-ATK 1 , IND/OW-ATK 0 ] [\text{IND/OW-ATK}_1,\text{IND/OW-ATK}_0] [IND/OW-ATK1,IND/OW-ATK0],即:在泄露 ( p k 1 − b , s k 1 − b ) (pk_{1-b},sk_{1-b}) (pk1b,sk1b) 的情况下 ( p k b , s k b ) (pk_{b},sk_{b}) (pkb,skb) 的相应安全性。在后续的 AKE 协议构造中,位置 1 1 1 用作长期密钥,位置 0 0 0 用作短期密钥。

[XLL+18] 基于 [ OW-CCA , OW-CPA ] [\text{OW-CCA},\text{OW-CPA}] [OW-CCA,OW-CPA] 安全的 2-Key KEM,在 ROM 下构造 AKE 协议。使用两对长期公私钥对(位置 1 1 1)、一对放在 p p pp pp 里的公共密钥对(位置 0 0 0)、一对临时公私钥对(位置 0 0 0)。其流程和 [FSXY13] 基本一样,只不过从 Responder 到 Initiator 只需要发送单个密文(本来需要:一个长期 OW-CCA KEM 密文、一个临时 OW-CPA KEM 密文)。

相应的,基于 [ IND-CCA , IND-CPA ] [\text{IND-CCA},\text{IND-CPA}] [IND-CCA,IND-CPA] 安全的 2-Key KEM,也可以在 std. 模型下构造 AKE 协议。

AKE via FO

[HKSU20] 将 Fujisaki-Okamoto 转换推广,给出了 QROM 下任意 IND-CPA PKE 到 AKE 的通用转换。在该转换中,使用了 [HHK17] 的模块化 FO 转换,以及 [SXY18] 提出的 Disjoint Simulatability 属性。

IND-AA / StAA

Two-Message AKE 包含四个算法 ( K G , I n i t , D e r i n i t , D e r r e s p ) (KG,Init,Der_{init},Der_{resp}) (KG,Init,Derinit,Derresp),工作流程如下:

在这里插入图片描述

定义一些 session-specific 局部变量,它们由 s I D sID sID 索引,

在这里插入图片描述

此外,使用 sKey[sID] 记录相应的会话密钥(和是否完成会话),使用 holder, peer, sent, received, role 的匹配关系定义 match(两个已完成会话),使用 M[sID] 记录所有的匹配会话。

敌手的主动攻击能力,使用伪代码描述如下:

在这里插入图片描述

[HKSU20] 给出了 AKE 的两种安全性 IND-AA(更强,允许 test sessions 上面有 state attacks)和 IND-StAA(似乎就是 CK+ 安全性),并使用精准的伪代码来描述它们。安全游戏如下:

在这里插入图片描述

相应的安全性定义为:

在这里插入图片描述

在现实网络中,AKE 会话通常都具有超时终止功能,因此敌手实际无法任意延迟消息的递交,所以上述的 IND-AA / StAA 是相对较强的模型。

Punc & T

[HKSU20] 考虑了概率加密的 Disjoint Simulatability 安全性,

在这里插入图片描述

[HKSU20] 将 [SXY18] 中的 TPunc 拆分为了两部分:先 Punc 变换、再 T 变换,最终给出了 TPunc 的更紧归约。

  • 从 IND-CPA 获得 prob. DS:令 PKE 0 \text{PKE}_0 PKE0 是消息空间 M 0 M_0 M0 的 IND-CPA PKE,定义 M : = M 0 \ { m ^ } M:=M_0\backslash\{\hat m\} M:=M0\{m^}(穿孔),其中 m ^ ∈ M 0 \hat m \in M_0 m^M0 是特定的某个消息,用于模拟器生成 “假密文”。特别地,该转换得到的 DS 和 IND-CPA 都是紧的

在这里插入图片描述

  • 从 prob. DS 获得 det. DS:令 PKE \text{PKE} PKE 是同时满足 DS 和 IND-CPA 安全性的 PKE,在 RO 模型下将它转换为 DPKE,依然满足 DS 性质。

在这里插入图片描述

组合两者,可以获得 TPunc 变换,它将 IND-CPA 转换为 det. DS 安全性,

在这里插入图片描述

[JZC+18] 证明了 [HHK17] 中的 FO m ⊥̸ : = U m ⊥̸ [ T [ PKE , G ] , H ] \text{FO}_m^{\not\perp}:=\text{U}_m^{\not\perp}[\text{T}[\text{PKE},G],H] FOm:=Um[T[PKE,G],H] 本身就可以在 QROM 下工作。[HKSU20] 在前面添加 Punc 变换,使得归约更紧。

在这里插入图片描述

FO AKE \text{FO}_{\text{AKE}} FOAKE 转换

接下来,[HKSU20] 提出了 FO AKE \text{FO}_{\text{AKE}} FOAKE 转换,从同时满足 DSIND-CPA 安全性的 PKE 方案,获得 IND-StAA 安全的 AKE 协议。

在这里插入图片描述

该转换在 QROM 下的安全归约不紧,关于 IND-CPA 具有二次方损失;不过关于 QRO 的查询次数 q G , q H q_G,q_H qG,qH 也是二次方,比以前的更紧。此外,该转换无法抵御 State Attack,因此不满足 IND-AA 安全性

Lattice-based PKE 基本都自然地满足 prob. DS 性质;如果 PKE 不满足 DS,那么在它前面应用 Punc 变换即可,即 FO AKE ∘ Punc \text{FO}_{\text{AKE}} \circ \text{Punc} FOAKEPunc

Tightly Secure AKE

大多数 AKE 构造都是不紧的,其损失因子依赖于安全参数以外的其他参数。特别地,损失因子往往和参与者数量会话数量呈二次方;真实世界中,两者基本都是 2 32 2^{32} 232 级别,甚至会导致(安全归约中)接近 100 比特的安全强度损失。

OW-ChCCA

[PWZ23] 考虑增强 KEM 的安全性,从而获得紧归约的 AKE 协议。

  • 首先,在 RO 模型下 IND 通常是不必要的,因为 Session Key 是根据 KEM Key 经过 RO 计算出来的,所以后者的 OW 立即导致前者的 IND(紧的);
  • 为了得到 AKE 的紧归约,要求 KEM 敌手可以区分出正确的 key-ctxt pairs,从而归约算法不需要猜测 test session 并将问题实例嵌入它,这便需要 OW-PCA 安全性;
  • 但是 PCA 还不足以获得紧归约,因为 AKE 敌手可以主动攻击多个会话,并强行让归约算法猜测哪些是 test sessions。

因此 [PWZ23] 定义了 OW-PCA 的加强(最后两条没看懂),令 KEM 敌手具有 OW-PCA 和 OW-CCA 以及 CK 中的某些能力。他们定义了如下的 one-way security against checkable chosen-ciphertext attacks(OW-ChCCA)安全性,

在这里插入图片描述

基于 LWE 假设,[PWZ23] 使用 Naor-Yung Double Encryption 直接构造出了 OW-ChCCA 安全的 KEM 方案,但是将其中的 NIZK 替换为了 ROs 的仔细编程(没看懂)。

Construction

使用两个 OW-ChCCA 安全的 KEM 方案,AKE 构造如下:

在这里插入图片描述

上述协议满足 [JKRS21] 形式化的 IND-wFS-St 安全性(捕获 KCI, MEX 和 wPFS),其归约是紧的

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值