FO with Prefix Hashing & KEM Generalizations

参考文献:

  1. [Has88] Hastad J. Solving simultaneous modular equations of low degree[J]. siam Journal on Computing, 1988, 17(2): 336-341.
  2. [BBM00] Bellare M, Boldyreva A, Micali S. Public-key encryption in a multi-user setting: Security proofs and improvements[C]//Advances in Cryptology—EUROCRYPT 2000: International Conference on the Theory and Application of Cryptographic Techniques Bruges, Belgium, May 14–18, 2000 Proceedings 19. Springer Berlin Heidelberg, 2000: 259-274.
  3. [CS03] Cramer R, Shoup V. Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack[J]. SIAM Journal on Computing, 2003, 33(1): 167-226.
  4. [HHK17] Hofheinz D, Hövelmanns K, Kiltz E. A modular analysis of the Fujisaki-Okamoto transformation[C]//Theory of Cryptography Conference. Cham: Springer International Publishing, 2017: 341-371.
  5. [GHP18] Giacon F, Heuer F, Poettering B. KEM combiners[C]//Public-Key Cryptography–PKC 2018: 21st IACR International Conference on Practice and Theory of Public-Key Cryptography, Rio de Janeiro, Brazil, March 25-29, 2018, Proceedings, Part I 21. Springer International Publishing, 2018: 190-218.
  6. [BDG20] Bellare M, Davis H, Günther F. Separate your domains: NIST PQC KEMs, oracle cloning and read-only indifferentiability[C]//Advances in Cryptology–EUROCRYPT 2020: 39th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Zagreb, Croatia, May 10–14, 2020, Proceedings, Part II 30. Springer International Publishing, 2020: 3-32.
  7. [DHK+21] Duman J, Hövelmanns K, Kiltz E, et al. Faster lattice-based KEMs via a generic Fujisaki-Okamoto transform using prefix hashing[C]//Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security. 2021: 2722-2737.
  8. [PR23] Poettering B, Rastikian S. A study of KEM generalizations[C]//International Conference on Research in Security Standardisation. Cham: Springer Nature Switzerland, 2023: 53-77.
  9. 后量子 KEM 方案:Kyber
  10. FO-like Transformation in QROM

文章目录

  • Multi-user Setting
  • FO with Prefix Hashing
  • KEM Generalizations
    • VKEM
    • KDFEM
    • Key Transport
    • KEM Combiner

Multi-user Setting

通常的,PKE 的安全性定义都是针对 Single-user Setting 来说的:单个用户生成公私钥对,敌手试图区分密文、恢复明文、恢复私钥。然而 [Has88] 给出了 RSA 的一种攻击:三个用户分别生成公私钥对,另一个用户发送相同的消息给他们(不同密文的消息存在关联),敌手利用这些密文所加密的是同一个明文的关系,可以恢复出这个消息。这种场景称为 Multi-user Setting,敌手的攻击能力更强。一种解决办法是在明文后边 padding 一个随机串,从而相同消息被强行设置为了部分随机的消息,这使得 RSA 从确定性加密(仅仅是 OW 的)转化为了随机加密(具备 IND 的性质)。

Single-user Setting 下的 IND 安全性,就是常规的那种 IND-CPA/CCA,

FO with Prefix Hashing & KEM Generalizations_第1张图片

[BBM00] 给出了 Multi-user Setting 下的 IND 安全性的定义,

FO with Prefix Hashing & KEM Generalizations_第2张图片

[BBM00] 证明了 IND-CPA/CCA in the Single-user Setting 直接导致了 IND-CPA/CCA in the Multi-user Setting,损失因子正比于用户数量。

FO with Prefix Hashing & KEM Generalizations_第3张图片

FO with Prefix Hashing

Multi-user Setting 的敌手能力比 Single-user Setting 的能力更强,虽然 [BBM00] 证明了在 Single-user 安全蕴含了 Multi-user 安全。但是为了增加信心,一种通用的设计范式是:域分离(domain separate),使得不同的 User 使用不同的随机函数。例如把公钥也作为 RO 的输入,额外的好处是让最终获得的 shared key 同时依赖双方的随机性。

然而,可以证明域分离确实可以增加数字签名的安全性,但是对于 PKE 人们并没有给出形式化证明。[DHK+21] 证明在 FO 转换中把公钥作为 KDF 的一部分,可以使得在 Multi-user Setting 下从 IND-CCA 到 IND-CPA 的归约更紧

FO with Prefix Hashing & KEM Generalizations_第4张图片

确切地说,对于 [HHK17] 中的 F O m ⊥̸ FO_m^{\not \perp} FOm 转换,将原始的
r ← G ( m ) , K ← H ( m ) r \gets G(m), K \gets H(m) rG(m),KH(m)
改变为(使用了 [BDG20] 的 output-splitting functor)
( K , r ) ← F ( p k , m ) (K,r) \gets F(pk,m) (K,r)F(pk,m)
另外 [DHK+21] 发现将 pk 完全输入到 RO 中是不必要的。事实上,格密码的基本运算很快,同时公钥的规模却很大,这导致 Hash 的运算占据主导开销。我们只需要将 pk 不可预测的一小部分输入到 Hash 函数中即可。令 I D : p k → { 0 , 1 } 256 ID:pk \to \{0,1\}^{256} ID:pk{0,1}256 是某个简单的变换函数,现在的 KDF 变为了
( K , r ) ← F ( I D ( p k ) , m ) (K,r) \gets F(ID(pk),m) (K,r)F(ID(pk),m)
将这个 FO 变换记为 F O I D ( p k ) , m ⊥̸ FO_{ID(pk),m}^{\not\perp} FOID(pk),m,它采用了 implicit rejection

以及 prefix hashing(将 pk 作为前缀)

对于 Kyber 方案的具体实现,

  1. 公钥是 ( ρ , t ) (\rho,t) (ρ,t),其中 ρ \rho ρ 是生成 A A A 的种子, t t t 是第二分量 b = A s + e b=As+e b=As+e 的 NTT 表示,打包为紧凑的比特串。根据简单的傅里叶分析,噪声 e e e 的频域的前若干个系数基本是均匀分布的,因此可以使用 t t t 的前缀 32 32 32 字节作为 I D ( p k ) ID(pk) ID(pk)。我们不使用种子 ρ \rho ρ,因为有些场景中它可能被复用。
  2. 封装:随机采样 m m m,计算 ( K , r ) ← F ( I D ( p k ) , m ) (K,r) \gets F(ID(pk),m) (K,r)F(ID(pk),m),加密 c ← E n c ( p k , m ; r ) c \gets Enc(pk,m;r) cEnc(pk,m;r),输出 ( K , c ) (K,c) (K,c)
  3. 解封装:解密 m ′ ← D e c ( s k , c ) m' \gets Dec(sk,c) mDec(sk,c),计算 ( K , r ) ← F ( I D ( p k ) , m ′ ) (K,r) \gets F(ID(pk),m') (K,r)F(ID(pk),m),检查 E n c ( p k , m ′ ; r ) Enc(pk,m';r) Enc(pk,m;r) 是否等于 c c c,输出 K K K 或者随机伪密钥 K ′ ← F 1 ( I D ( p k ) , s , c ) K'\gets F_1(ID(pk),s,c) KF1(ID(pk),s,c),这里 F 1 F_1 F1 就是 F F F 的前缀 K K K 的部分。

对于不受侧信道攻击的场景,可以仅当 E n c ( p k , m ′ ; r ) ≠ c Enc(pk,m';r) \neq c Enc(pk,m;r)=c 之后才计算 K ′ K' K,可以加快计算速度,同时它仅在计时攻击下泄露显式拒绝。事实上 [HHK17],在 ROM 下 FO with explicit rejection 也是安全的。不过他们建议最好还是给出常数时间的实现。

FO with Prefix Hashing & KEM Generalizations_第5张图片

安全归约:

FO with Prefix Hashing & KEM Generalizations_第6张图片

效率测试:

FO with Prefix Hashing & KEM Generalizations_第7张图片

KEM Generalizations

[CS03] 提出 KEM+DEM paradigm,它将 PKE 的构造划分为了两个原语,使得灵活性更好。人们关注如何构造 KEM 方案,然后将它转化为其他的原语。

Key Transport:KEM 可以视为只有单方验证的 KT 协议。为了构造主动攻击下安全的 KT 协议,我们可以用 KEM 协商出会话密钥 k k k,然后使用 IND-CCA DEM 传递秘密信息 c = D E M . E n c ( k , k ′ ; r ) c=DEM.Enc(k,k';r) c=DEM.Enc(k,k;r)。这里的 DEM 可以使用 AE 或者 AEAD 来实现。

KEM Combiner:人们可能信任不同的 KEM 方案,[GHP18] 提出了 KEM 组合器,只要其中一个 KEM 是安全的,那么它产生的 KEM 就是安全的。简单地异或 k ← k 1 ⊕ k 2 k \gets k_1 \oplus k_2 kk1k2 对于主动敌手是不安全的,需要使用 PRF,一种是 k ← F ( k 1 , c 2 ) ⊕ F ( k 2 , c 1 ) k \gets F(k_1,c_2) \oplus F(k_2,c_1) kF(k1,c2)F(k2,c1),另一种是 k ← H ( k 1 , k 2 , c 1 , c 2 ) k \gets H(k_1,k_2,c_1,c_2) kH(k1,k2,c1,c2)

然而,他们都需要额外的对称原语。[PR23] 指出这是由于 KEM 的抽象带来的限制。他们给出了 KEM 的适度增强,使得 KEM 可以直接构造出 KT 和 Combiner,而不再需要额外的对称原语。类似于之前的一些工作,[PR23] 使用 Label 和 Tag 去增强 KEM 概念,给出了两种新概念。

原始的 KEM 定义:

FO with Prefix Hashing & KEM Generalizations_第8张图片

VKEM

首先是 versatile key encapsulation mechanism 概念,

FO with Prefix Hashing & KEM Generalizations_第9张图片

要求它具有: handle freshness、history matching、key recovery、handle divergence 性质。为了 KEM Combiner 的归约,额外需要 label binding 性质。

[PR23] 给出了一种简单的方式将 KEM 转换为 VKEM:

FO with Prefix Hashing & KEM Generalizations_第10张图片

KDFEM

其次是 key derivation function encapsulation mechanism 概念,

FO with Prefix Hashing & KEM Generalizations_第11张图片

它的 KEM 并非封装 key 本身:而是封装一个 KDF,最后用 KDF 生成 key

[PR23] 证明只需对 NIST KEM(Kyber, McEliece, Saber, NTRU)做很小的修改,就能使他们变成 KDFEM

FO with Prefix Hashing & KEM Generalizations_第12张图片

Key Transport

KT 的定义为:

FO with Prefix Hashing & KEM Generalizations_第13张图片

基于 KDFEM 构造 KT,采取 encrypt-then-mac approach,其中的 One-time Pad 和 MAC 就直接使用所封装的 KDF,如图:

FO with Prefix Hashing & KEM Generalizations_第14张图片

KEM Combiner

基于两个 VKEM 的组合器:第一阶段输出的 h d 1 , h d 2 hd_1,hd_2 hd1,hd2 包含了一些信息,将它们交换到第二阶段中,

FO with Prefix Hashing & KEM Generalizations_第15张图片

基于两个 KDFEM 的组合器:它们分别封装了 f 1 , f 2 f_1,f_2 f1,f2,交叉混合为 k ← f 1 ( h d 2 ) + f 2 ( h d 1 ) k \gets f_1(hd_2)+f_2(hd_1) kf1(hd2)+f2(hd1)

FO with Prefix Hashing & KEM Generalizations_第16张图片

你可能感兴趣的:(基础密码学,算法,密码学,数学,同态加密)