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,

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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 的归约更紧

在这里插入图片描述

确切地说,对于 [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 也是安全的。不过他们建议最好还是给出常数时间的实现。

在这里插入图片描述

安全归约:

在这里插入图片描述

效率测试:

在这里插入图片描述

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 定义:

在这里插入图片描述

VKEM

首先是 versatile key encapsulation mechanism 概念,

在这里插入图片描述

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

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

在这里插入图片描述

KDFEM

其次是 key derivation function encapsulation mechanism 概念,

在这里插入图片描述

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

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

在这里插入图片描述

Key Transport

KT 的定义为:

在这里插入图片描述

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

在这里插入图片描述

KEM Combiner

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

在这里插入图片描述

基于两个 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)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/286320.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux命令行实战指南:快速上手常用命令大全!

Linux 常见目录说明 /bin:存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;/sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等&#xff…

【Apache-StreamPark】Flink 开发利器 StreamPark 的介绍、安装、使用

【Apache-StreamPark】Flink 开发利器 StreamPark 的介绍、安装、使用 1)框架介绍与引入1.1.🚀 什么是 StreamPark1.2.🎉 Features1.3.🏳‍🌈 组成部分1.4.引入 StreamPark 2)安装部署2.1.环境要求2.2.Hado…

Java代码解析:初学者的编程入门指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 Java作为一门强大而广泛应用的编程语言&#x…

2023年12月最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况,在这过程中要展现出自信,对工作有激情,上进,好学) 面试官您好,我叫###,今年26岁,来自江西九江,就读专业是电子商务,毕…

Axure之交互与情节与一些实例

目录 一.交互与情节简介 二.ERP登录页到主页的跳转 三.ERP的菜单跳转到各个页面的跳转 四.省市联动 五.手机下拉加载 今天就到这里了,希望帮到你哦!!! 一.交互与情节简介 "交互"通常指的是人与人、人与计算机或物体…

SecureCRT for Mac/win强大安全的终端SSH工具,SecureCRT助您网络连接无忧

在当今数字化时代,网络连接已成为生活和工作中不可或缺的一部分。而对于需要进行远程访问和管理的用户来说,一个稳定、安全的终端SSH工具是至关重要的。SecureCRT作为一款强大的终端SSH工具,为用户提供了安全、高效的远程连接解决方案。 首先…

内网离线搭建之----nginx高可用

1.系统版本 虚拟机192.168.9.184 虚拟机192.168.9.185 2.nginx以及依赖下载地址 nginx:nginx: download pcre:PCRE - Browse /pcre/8.45 at SourceForge.net zlib:zlib Home Site 基本都在置顶的资源里 3.检查环境安装依赖的依赖&#xf…

记录一次云服务器被攻击事件

今天去登录华为云平台的时候,发现服务器的cpu涨到了百分之九十九,这个也太不正常了,我自己就只部署了一个页面,怎么会飚这么高呢? 然后,我就去找原因,使用top命令,去查看到底是谁占用…

JAVA分库分表

1.1为什么需要分库分表 随着平台的发展,平台的数据会越来越多。当表中的数据量过多时,数据库的性能会下降严重,很有可能会把系统给拖垮。类似于分而治之的思想,将大的问题拆分成小的问题,从而提高效率。通过将数据分散…

基于STM32,TB6612,TCRT5000的简易红外循迹小车

提醒:本文章只叙述此小车相关大概内容(如模块的设置,C语言基础实现等),单片机详细教学不涉及。 摘要 循迹小车是学习单片机的“地基”,它能够让初学者认识单片机内部硬件结构及其功能,熟悉单片机…

Python 面向对象(1)

软件编程的实质是将我们的思维转变成计算机能够识别语言的一个过程。 目录 面向过程 面向对象 理解面向对象 面向过程: 面向对象: 面向对象的特点 完成需求时: 类的设计 类与对象的关系 创建类 设计类 类的介绍 格式 创建类实例…

三勾点餐 | 开源点餐系统、扫码点餐系统、收银台点餐系统

项目介绍 三勾点餐系统基于thinkphp8element-plusuniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 简单实用…