详解密钥封装协议(KEM)

密钥封装机制 文章目录一、密钥封装机制是什么二、密钥封装机制模型三、KEM的安全性定义 一、密钥封装机制是什么 绝大多数密钥封装机制采用非对称的加密方法。在密钥封装机制中,发起方运行一个封装算法产生一个会话密钥以及与之对应的密文,也称为会话密钥的封装,随后将会话密钥封装发送给接收方;接收方运行解封装算法得到与发起方相同的会话密钥。在这个过程中,要保证双方获得的会话密钥必须是一致和新鲜的,同时不会泄露会话密钥的相关信息。 二、密钥封装机制模型 设 n=n(λ)n=n( \lambda )n=n(λ) 是一个多项式,引入发 阅读详情
AI摘要

本文介绍了密钥封装机制(KEM)和混合加密方案。KEM包含密钥生成、封装和解封装算法,具有随机性。混合加密将公钥与私钥加密方案级联,当明文足够长时,其开销接近私钥加密。还分析了混合加密的效率和安全性,如CPA安全和CCA安全。

目录

一. 写在前面

二. 引入

三.密钥封装机制 

3.1 密钥生成算法

3.2 封装算法

3.3 解封装算法

3.4 小结

四. 混合加密

4.1 方案介绍

4.2 效率分析

4.3 参数实例化

五. 安全性分析

5.1 CPA安全

5.2 CCA安全


一. 写在前面

本文会用到的几个缩写:

KEM: key-encapsulation mechanism 密钥封装机制

DEM: data-encapsulation mechanism 数据封装机制

CPA: Chosen plaintext attack 选择性明文攻击安全

CCA: Chosen-Ciphertext Attack 选择性密文攻击安全

PPT: Probabilistic polynomial time 概率多项式时间算法

二. 引入

对于加密方案,名称上的一点说明:

公钥加密方案=非对称加密方案;

私钥加密方案=对称加密方案

在一般意义上,我们会认为私钥加密方案比公钥加密方案效率更高(不外加优化条件)。这是由于公钥加密方案会使密文扩张(ciphertext expanision)。

为了进一步优化算法,还可以将公钥加密方案与私钥加密方案进行级联,来形成混合加密方案(hybrid encryption)。如下图:

左边图:pk代表公钥,Enc代表公钥加密方案,k代表密钥,c是k的密文;

右边图:m是明文,Enc'是私钥加密方案,利用k对m进行加密形成c';

在如上图的混合方案中,相当于利用公钥加密方案来形成共享密钥k,接着在私钥加密方案中,利用密钥k对明文m进行加密。

在接收端,利用非对称的私钥解密c得到公钥密钥k,接着使用k来解密恢复出原始信息m(message)。

由于发送端和接收端不需要提前共享密钥(secret key),所以这个方案其实更接近一个公钥加密方案(full-fledged public-key encryption)。

三.密钥封装机制 

在刚才的方案中,简单总结密钥k的作用:

(1)发送端一般均匀且随机的选取k

(2)发送端使用公钥加密方案来对k进行加密

那么这个过程其实就是密钥封装机制(key-encapsulation mechanism,KEM)。

与公钥加密方案类似,密钥封装机制也有三个PPT时间算法(Gen, Encaps, Decaps)。

3.1 密钥生成算法

Gen算法

输入:安全参数1^n

输出:公私钥对(pk,sk)

一般认为n的具体取值由公钥pk决定(也就是由发送者决定)。通常情况下,公钥pk与私钥sk的比特长度都大于n。来看看官方表达:

3.2 封装算法

Encaps算法,总结为表达式:

输入:公钥pk

输出:密钥k\in\lbrace0,1\rbrace^{l(n)},对应的密文c。其中l(n)代表k的比特长度。

同时看看官方表达:

3.3 解封装算法

解封装算法Decaps是一个确定性算法,可总结为:

输入:私钥sk,密文c

输出:密钥k

需要注意的是,如果解封装失败的话,则会输出特殊的终止符号⊥。算法的官方表达:

3.4 小结

需要注意的是Gen算法与Encaps算法都具有随机性。

正确性要求:Encaps算法输出(c,k),Decaps输入c,输出k。

在以上算法中,有的时候会做一点点修改,比如可以认为输出的密钥k是固定长度l的.

将公钥加密方案的明文,替换成一个随机的密钥k,也就是直观的KEM方案。

四. 混合加密

4.1 方案介绍

发送者调用Encaps算法来获得密文c以及密钥k。接着在私钥加密方案中,利用密钥k来加密明文m。

在这个过程中,私钥加密方案也可以看成数据封装机制(Data encapsulation mechanism, DEM).

实际接收者可以得到两个密文c与c',具体过程如下图:

在整个方案中涉及到两个解密私钥sk与k,具体的方案如下:

4.2 效率分析

现在,我们尝试回答一个问题:这样的混合加密其中包含了KEM,有什么好处吗?

首先固定k的比特长度为n。

假定密钥封装后的c的长度为\alpha,那么可以认为密钥封装的开销(cost)为\alpha。

对于私钥加密方案Enc'的每比特明文所生成的密文长度为\beta,也就是cost per bit of plaintext。在私钥加密方案中可认为明文的长度大于密钥k的长度,也就是|m|>n(这样效率更高)。

在混合加密方案中,每比特明文所对应的密文长度有两部分c与c',由此可计算为:

可以观察到,当m的长度足够大时,该值趋近于\beta。换句话说,当明文长度足够大时,混合加密的开销与私钥加密的开销一致。那么,混合加密方案虽然披着公钥加密的框架,但是效率却可以接近私钥加密方案,这是混合加密方案的优势之一。

4.3 参数实例化

假定密钥k的长度为n,密文c的长度为L,密文c'的长度为n+|m|。那么,在混合加密方案中,密文总长度为:

如果我们直接使用公钥加密方案会怎么样?

加密n比特的消息,假定密文长度为L。

按照线性比列关系,加密|m|比特长度的消息,密文长度为:

考虑明文长度|m|足够大时,混合加密可以提升极大地效率。

举一个简单的例子。假定密钥k的长度n=128-bite。假设公钥加密之后的c的长度为256-bit。如果使用基础的公钥加密方案,当消息为1MB时,密文则为2MB。

接下来我们计算使用KEM的混合加密方案的效率。跟刚才一样,利用β代表私钥加密方案的每比特计算量,可以假设:

\beta\approx \frac{\alpha}{2^{11}}

利用之前的公式,当消息为1MB时,混合加密的计算消耗为:

原始的公钥加密方案计算消耗为:

\alpha\cdot \lceil 2^{20}/128\rceil\approx 8200\alpha

那么很明显计算效率提升16倍,密文长度优化了2倍。

备注:以上计算中使用到了1MB\approx 2^{20} \ Bit

五. 安全性分析

很显然,混合加密方案的安全性依赖于密钥封装机制与私钥加密方案的安全性。此处可简单给出两个密钥封装协议的CPA与CCA安全。

5.1 CPA安全

假定KEM是CPA安全的,私钥加密方案符合基本的安全性,那么混合加密方案则也是CPA安全的。

实际上,我们可以感受到密钥封装协议可以保证密钥k的安全,且足够随机,每次加密k只使用一次,所以只要KEM满足CPA安全即可。

进一步,可以将KEM方案看成一个伪随机生成器(pseudorandom generator),那么则可以形成流密码。

5.2 CCA安全

假定KEM是CCA安全的,私钥加密方案也是CCA安全,那么混合加密方案则也是CCA安全的。

密码学理论11:公钥加密 一方(接收方)生成一对密钥(pk,sk),分别称为公钥和私钥。发件人使用公钥加密消息;接收方使用私钥解密生成的密文。当 Alice 得知 Bob 想与她通信时,她可以生成 (pk, sk)(假设她还没有这样做),然后将 pk明文发送给 Bob。Alice 独立于任何特定的发送者预先生成 (pk, sk)。然后她公开发布pk。1. 公钥加密(在某种程度上)解决了密钥分发问题,因为通信双方不需要在通信之前秘密共享密钥。即使他们之间的所有通信都被监视,两方也可以秘密通信。 阅读详情

相关推荐

后量子密码ML-KEM(kyber)实战:如何在TLS 1.3中替换RSA密钥交换(附OpenSSL配置)

本文提供了一份详细的工程指南,指导如何在TLS 1.3协议中,将传统的RSA密钥交换替换为后量子密码标准ML-KEM(Kyber)。文章从编译支持ML-KEM的OpenSSL开始,逐步讲解如何生成混合证书、配置Nginx服务器,并分析了性能影响与部署策略,旨在帮助工程师为服务提前构建量子安全防护。

nokia的博客 1108

KEM(密钥封装机制)与混合加密的区别(附简单的公钥加密与私钥加密解释)

KEM(密钥封装机制)与混合加密的区别(附简单的公钥加密与私钥加密解释) 概念: 公钥加密方案(非对称加密方案): 密钥一与密钥二不同的加密方案,即加解密时要使用不同的密钥。 私钥加密方案(对称加密方案): 密钥一与密钥二相同的加密方案,即加解密时要使用相同的密钥。 KEM( key-encapsulation mechanism)密钥封装机制,一种同时公钥加密方案和私钥加密方案对消息进行加密的技术。 混合加密 因为单纯使用的公钥加密系统相对于对称加密来说传输信息效率不高。对称加密由于加解密时使用的密

CCCYYY090的博客 7316

JDK 27 抗量子密码学:从 RSA/ECC 到 ML-KEM、ML-DSA 的 Java 迁移指南

在量子计算逐渐从理论走向工程的今天,传统 RSA/ECC 公钥体系正面临 Shor 算法的根本性挑战。Java 作为企业级应用的中流砥柱,其安全体系也迎来新一轮升级——JDK 27 正在将 ML-KEM(密钥封装)与 ML-DSA(数字签名)从可选 API 推向默认协议栈与工具链。理解格密码原理、后量子算法特性以及混合过渡模式,成为 Java 开发者应对加密体系演进的必修课。本文从经典密钥交换的脆弱点切入,拆解 JDK 底层改造逻辑,并结合 TLS 握手、证书签发、代码签名等实际应用场景,提供从存量系统盘点

weixin_29325007的博客 259

SM9学习笔记与图解——第4章 密钥封装和加解密

A.4 第4部分——密钥封装和加解密 A.4.1 密钥封装(User A) K是用户A的生成密钥,C是封装信息,用于对方解封得到相同的密钥K。 A.4.2 密钥解封(User B) A.4.3 密钥封装原理 从以上推导可知,双方计算出来的w相等,C是一样的,所以KDF计算值相等 A.4.4 加密(User A)   流加密 ...

专注商用密码落地,方案与技术解析,分享密码技术与安全经验。 2万+

JavaScript后量子加密实战:基于Kyber与WASM的Web安全升级

随着量子计算的发展,传统非对称加密算法(如RSA、ECC)面临被破解的风险,后量子密码学(PQC)应运而生。PQC的核心原理是设计能够抵抗量子计算机攻击的数学难题,如基于格的加密方案。其技术价值在于为长期敏感数据(如金融交易、医疗档案)提供面向未来的安全保障。在应用场景上,现代Web应用(如端到端加密聊天、Web3钱包)的前端日益承担关键加密操作,因此在JavaScript环境中集成PQC成为必要。本文聚焦于**CRYSTALS-Kyber**这一NIST标准化算法,探讨如何通过**WebAssembly*

weixin_29325007的博客 276

密钥封装协议(KEM)原理与后量子密码实践:从混合加密到Kyber算法

密钥封装协议是现代密码学中用于安全传输对称密钥的核心原语,其设计原理在于将密钥封装过程标准化和形式化。该协议通过生成随机对称密钥并利用公钥算法进行封装,解决了传统公钥加密在加密大消息时效率低下的问题。KEM的技术价值在于其清晰的安全定义和高效性,特别是在后量子密码学时代,它成为构建抗量子攻击加密系统的基础组件。在应用场景上,KEM通常与数据封装机制结合形成混合加密方案,广泛应用于TLS、安全通信协议等领域。以CRYSTALS-Kyber为代表的基于格的KEM算法,通过模块化学习带错误问题保障安全性,其实现涉

weixin_30644369的博客 279

Java生态落地ML-KEM算法:从原理到迁移实战指南

随着NIST发布FIPS 203抗量子密码标准,传统RSA/ECC体系正面临逐步淘汰的压力。对于Java开发者而言,理解密钥封装机制(KEM)并掌握新一代格基密码的实现路径,已成为技术选型与架构改造的关键课题。ML-KEM基于模块格难题,具备抗量子计算攻击的能力,其核心操作包括密钥生成、封装与解封装。借助Bouncy Castle库,Java应用可快速集成ML-KEM-768等参数集,并通过混合协商模式与现有TLS体系平滑过渡。本文从算法原理出发,结合工程实践,拆解密钥存储、编码序列化、性能调优及灰度发布等

weixin_33646989的博客 324

从RSA到ML-KEM:密钥封装机制演进与后量子密码迁移实战

密钥封装机制是现代密码学中实现安全密钥协商的核心组件,它解决了在不可信信道上建立共享秘密的难题。其原理基于公钥密码学,发送方利用接收方的公钥对随机生成的共享秘密进行封装,生成密文;接收方则使用对应的私钥解封,恢复出相同的秘密。这一机制的技术价值在于提供了非交互式的密钥协商能力,并增强了前向安全性,是构建安全通信协议(如TLS、SSH)的基石。随着量子计算的发展,基于大整数分解和离散对数问题的经典算法(如RSA、ECC)面临被Shor算法破解的威胁,后量子密码学应运而生。应用场景广泛覆盖网络通信、数据加密和身

weixin_32736961的博客 331

高效认证密钥交换协议设计:从原理到工程实践

认证密钥交换是网络安全通信的基石,它确保两个实体在不安全的网络上安全协商出共享的会话密钥。其核心原理基于非对称密码学或对称密码学,通过数字签名、密钥交换等机制实现身份认证和密钥保密。这项技术的价值在于为各类应用建立安全信道,保障数据传输的机密性与完整性。在工程实践中,高效AKE协议需在安全、性能和功能间取得平衡,尤其适用于高并发、低延迟的物联网和移动支付等场景。通过优化椭圆曲线密码学、会话恢复机制等关键环节,并结合形式化验证与性能测试,可以构建出既安全又高效的通信方案,这正是现代TLS协议及各类安全应用的核

weixin_30740581的博客 300

【后量子密码】CRYSTALS-KYBER 算法(二):密钥封装 KEM(附源码分析)

Kyber 算法是一种满足 IND-CCA2 安全的密钥封装机制(key-encapsulation mechanism,KEM),其安全性依赖于MLWE 问题的困难性。Kyber 算法构建采用了两阶段的方法:首先引入了一种IND-CPA 安全的公钥加密方案,用于加密长度为32字节的消息,称之为;然后使用改进的 Fujisaki-Okamoto(FO)变换来构建满足 IND-CCA2 安全KEM,称之为。

听雨草堂 5214

8、密钥封装机制(KEM)泛化研究

本文研究了密钥封装机制(KEM)的泛化方法,提出VKEM和KDFEM两种新型KEM变体,旨在构建密钥传输(KT)方案和KEM组合器时无需依赖辅助对称原语。VKEM统一整合带标签、带句柄等KEM泛化特性,实现多功能性;KDFEM则利用KEM内部已有的密钥派生函数(KDF)功能,通过可多点评估的KDF机制直接构建安全方案。研究表明,多数现有KEM(如NIST竞赛入围者)可无缝转换为KDFEM,显著减少开销并提升通用性。文章还分析了安全性、性能及实际应用,展示了其在电子邮件加密、TLS等协议中的潜力,并展望了未来

y2z3a4b5c的博客 192

【国密SM9 Python实战权威指南】:20年密码学专家亲授,从零实现SM9密钥封装与签名验证全流程

手把手教你完成Python国密算法SM9实现,涵盖密钥封装、数字签名与验证全流程。适用于政务系统、金融信创等高安全场景,基于标准SM9规范,提供可运行代码与参数配置说明。权威方法+工程实践,值得收藏。

InstrIsle的博客 497

KEM (Key Encapsulation Mechanism) 密钥封装机制

KEM是现代密码系统中的重要组成部分,它提供了一种高效、安全的方式来传输对称密钥,是构建安全通信系统的基础。

tuxintai的博客 740

密码学——密钥封装机制(KEM)

发送方(Alice)用接收方(Bob)的公钥,把自己临时生成的 “会话密钥 K” 锁进一个 “只有 Bob 能打开的盒子(CT)”,同时自己留着 K 准备加密实际数据。

qq_55735520的博客 1267

后量子密码迁移实战:从RSA到ML-KEM的TLS混合握手与降级防御

密码学与网络安全前沿领域,RSA算法计算题是理解公钥加密的基础,但在实际工程中,直接使用RSA加密会话密钥存在结构攻击风险。随着量子计算发展,后量子密码迁移成为必然。ML-KEM作为NIST标准化的密钥封装机制,通过让接收方生成密钥对、发送方封装随机会话密钥的方式,提供更安全的密钥协商。本文基于liboqs库,演示从安装验证到生成密钥对、封装/解封的最小实现,并深入探讨在TLS 1.3混合握手中如何将ML-KEM与X25519组合,既保证后量子安全又兼容现有设备。同时分析降级攻击的检测方法、性能开销及自测方

weixin_29741447的博客 106

别再踩坑了!Win10下用阿狸狗V3.2.6安装Cadence SPB 17.4的保姆级避坑指南

本文提供了Win10系统下使用阿狸狗V3.2.6安装Cadence SPB 17.4的详细避坑指南,涵盖环境准备、安装失败清理、分步安装与问题诊断、授权配置及典型故障排除等内容,帮助用户顺利完成安装并避免常见错误。

weixin_32576389的博客 359

KEM密钥封装机制:现代密码协议的底层基建

密钥封装机制(KEM)是公钥密码学中实现安全密钥派生的核心抽象,它将不稳定的数学原语(如RSA、ECC、格密码)转化为确定性、均匀分布且长度固定的对称密钥流。其原理基于三元操作(KeyGen/Encapsulate/Decapsulate),通过解耦密钥生成与使用,支撑TLS 1.3、Signal、抗量子迁移等关键协议。技术价值在于提供IND-CCA2级安全性、恒定时间容错能力及跨算法接口统一性;典型应用场景包括CTF密码学挑战中的填充规避、国密SM2-KEM工程落地、以及NIST后量子标准Kyber的嵌入

weixin_31648507的博客 151

Arduino程序设计(十)8×8 共阴极LED点阵显示(MAX7219)

本文主要介绍8×8 LED点阵显示实验,分别是:1、介绍MAX7219点阵模块;2、点阵显示部分图形;3、点阵显示数字 0~9 及 26 个英文字母。1、通过上述两个点阵实验,了解了8*8点阵显示的基本原理;2、通过SPI通信控制点阵显示,学会了Arduino用SPI通信方式控制外设。

Alice的博客 1万+

为什么你的Java系统需要ML-KEM,密钥封装实现细节首次公开

提升Java系统抗量子攻击能力,详解ML-KEM密钥封装机制。涵盖Java ML-KEM 密钥封装实现的适用场景、核心算法集成与性能优化优势,助力开发者构建后量子安全架构。值得收藏

LogicPlex的博客 1008

基于单片机智能家居控制系统设计

*单片机设计介绍,基于单片机智能家居控制系统设计。

QQ2193276455的博客 1714

数学文化赏析MOOC笔记【2023】

深圳大学UOOC课程《数学文化赏析》课程笔记

simplenthpower的博客 1746

Java开发者必看:3步实现ML-KEM密钥封装抵御未来量子破解

掌握未来加密技术,3步实现Java ML-KEM密钥封装抵御量子攻击。适用于高安全通信场景,基于NIST标准算法,提供抗量子计算破解的密钥交换方案。代码简洁、集成方便,助力Java开发者提前布局后量子密码防护,值得收藏。

ByteVein的博客 878

LMI线性矩阵不等式之非线性变量处理

​ 如果一个LMI线性矩阵不等式中的某项存在两个矩阵变量相乘,那么称该类情形为非线性矩阵不等式,而要直接求解时很困难的,而且LMI工具箱也无法求解非线性矩阵,所以需要通过变量替换法进行处理。 ​...

Mr.邹的博客 4549
上一篇: 详解语义安全(semantically secure)
下一篇: 详解隐私放大(Privacy amplification)
唠嗑!
唠嗑! 优质创作者: 信息安全技术领域 优质创作者: 信息安全技术领域
博客等级 码龄5年 3万+粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值