密钥封装和公钥加密的联系和区别?

密钥,封装,加密,联系,区别 · 浏览次数 : 395

小编点评

**密钥封装与公钥加密的联系和区别:** **密钥封装机制**是一种面向的互联网应用,最大的用处是网络连接时建立双方的临时会话密钥。密钥封装可以用于任何一个公钥加密方案,但需要满足特定的安全性条件。 **公钥加密方案**是一种用于加密消息的算法,它需要密钥来实现安全性。公钥加密方案可以用于多种应用场景,例如: * **密码学通信** * **数字签名** * **数据加密** **区别:** | 特征 | 密钥封装 | 公钥加密 | |---|---|---| | 目的 | 建立双方的临时会话密钥 | 加密消息 | | 安全性要求 | 相对高 | 相对低 | | 效率 | 低 | 高 | | 可扩展性 | 高 | 低 | | 应用场景 | 网络连接 | 密码学通信 | **结论:** 密钥封装是一种用于构建安全密钥封装机制的机制,可以用于任何一个公钥加密方案。但是,密钥封装的效率低,因此在某些情况下可能不如使用公钥加密方案更合适。

正文

密钥封装和公钥加密的联系和区别?

转载&学习:https://www.zhihu.com/question/443779639

先理解下面这句话:

密钥封装机制是面向的互联网应用,最大的用处是网络连接时建立双方的临时会话密钥。既然是应用就要考虑到网络传输的协议,协议支持的包大小是有限制的,如果公钥加密方案的密文较大,不便于网络传输,就不能应用于实际的协议中。

可以看出密钥封装

  • 密文较小
  • 应用广泛

简易理解

问题1:是不是一个公钥加密方案就可以实现一个密钥封装机制?

回答1:是的,可以用任何一个公钥加密方案构建一个密钥封装机制,且可以保证相同的安全性。

问题2:既然如此,为何还要单独提出所谓密钥封装机制的概念?

回答2:因为专门构建得到的密钥封装机制\(Enc\)可以变得更加高效,例如密文的长度可以更短。

问题3:是不是一个密钥封装机制就可以实现一个公钥加密方案?

回答3:是的,可以用任何一个密钥封装机制构建一个公钥加密方案,但在一定条件下可以保证相同的安全性。

常见的安全性定义:

  • CPA安全性(Chosen-Plaintext Security,选择明文攻击),简单来说就是,攻击者可以访问加密预言机,获得任意消息(包括挑战消息)所对应的密文。

  • CCA安全性(Chosen-Ciphertext Security),即考虑多个密文的不可取分性(indistinguishable multiple encryptions),简单来说就是,攻击者可以访问解密预言机,获得除挑战密文外任意密文所对应的明文。

    • CCA1:选择密文攻击,有攻击时间要求【午餐攻击】
    • CCA2:自适应选择密文攻击,任意时间攻击

深入探究

效率

下面内容来自:Jonathan Katz和Yehuda Lindell著作《Introduction to Modern Cryptography, Second Edition》的第11.3节:混合加密与KEM/DEM范式(Hybrid Encryption and the KEM/DEM Paradigm):

img

img

其中:PKE(公钥加密)、SKE(对称加密)、KEM(密钥封装)、DEM(数据封装,可以看成私钥加密方案)

以上两种混合方法的共性都是首先生成对称密钥, 再利用对称密钥加密明文, 因此效率的区别体现在第一部分。

第一种方法先选择一个随机的密钥k, 再使用PKE对其加密得到c, 而第二种方法是两步并做一步完成. 好处在哪里呢?

如果使用PKE的方法, 第一部分密文c一定会存在密文扩张, 这是由概率加密的本质决定的, 而如果使用KEM的方法, 第一部分密文c相比k可能不存在扩张, 原因是此时c是对k的封装, 而非加密。

综上, 使用KEM代替PKE, 不仅能够缩减整体密文尺寸, 也能够提升效率(通常封装算法要比加密算法简单很多, 为什么会简单呢? KEM是功能受限的PKE,即KEM只允许加密随机的消息)。

关于封装算法(KEM)通常要比加密算法(PKE)要简单,下面举例分析:

image-20230127145825862

安全性

KEM+DEM范式极大简化了PKE的可证明安全

img

img

对比安全模型即可发现, 对于PKE有CPA/CCA1/CCA三个依次增强的安全性, 而KEM只有CPA/CCA两个依次增强的安全性

最关键的是:在PKE中敌手A对挑战密文c有一定的控制能力, 而KEM中c完全由挑战者控制, 这一区别使得KEM安全证明中的归约算法更容易设计。

与密钥封装和公钥加密的联系和区别?相似的内容:

密钥封装和公钥加密的联系和区别?

密钥封装和公钥加密的联系和区别? 转载&学习:https://www.zhihu.com/question/443779639 先理解下面这句话: 密钥封装机制是面向的互联网应用,最大的用处是网络连接时建立双方的临时会话密钥。既然是应用就要考虑到网络传输的协议,协议支持的包大小是有限制的,如果公钥加

[转帖]lsyncd —— 多机器实时同步文件神器

lsyncd —— 多机器实时同步文件神器 https://shockerli.net/post/linux-tool-lsyncd/ 文章目录 安装 配置 忽略规则 免密登录 启动 参考 lsyncd 是一个支持实时、双向、多机器的多模式文件同步工具。 使用 Lua 语言封装了 inotify 和

[转帖]自动化配置SSH免密登录和取消SSH免密配置脚本

1. 前文 搭建了一套有多台主机的局域网环境,不完全考虑安全性的情况下,为方便管理局域网内主机,配置SSH免密登录,因主机较多,前阵子针对配置ssh免密和取消ssh免密功能单独写了脚本来自动化批量部署,现把两个功能封装在一起做成交互式程序 2.实现代码 #!/bin/bash #Author:cos

用python用户注册和短信验证码逻辑实现案例

一.写代码前分析(逻辑分析OK了才可以顺利成章的敲代码): A、用户发送请求 1、注册账号(用户名不能重复)--按照需求进行判断 2、短信验证码(有效期5分钟)--对短信验证码进行保存 B、用户注册、短信验证用不同得函数封装实现 d_user={} #存放用户名和密码的数据字典 verificati

开源.NetCore通用工具库Xmtool使用连载 - 加密解密篇

【Github源码】 《上一篇》详细介绍了Xmtool工具库中的正则表达式类库,今天我们继续为大家介绍其中的加密解密类库。 在开发过程中我们经常会遇到需要对数据进行加密和解密的需求,例如密码的加密、接口传输数据的加密等;当前类库中只封装了Base64、AES两种加密解密方法,因为C#提供了几乎我们能

[转帖]QSFP-DD封装有何优势?800G光模块是否会沿用QSFP-DD封装?

https://baijiahao.baidu.com/s?id=1715831828043988994&wfr=spider&for=pc QSFP-DD作为400G光学器件最小尺寸的封装,可提供较高的端口密度,且可向后兼容QSFP+/QSFP28封装,备受供应商热捧。如今,不少供应商纷纷都推出了

[转帖]QSFP-DD封装有何优势?800G光模块是否会沿用QSFP-DD封装?

https://baijiahao.baidu.com/s?id=1715831828043988994&wfr=spider&for=pc QSFP-DD作为400G光学器件最小尺寸的封装,可提供较高的端口密度,且可向后兼容QSFP+/QSFP28封装,备受供应商热捧。如今,不少供应商纷纷都推出了

通用密钥,无需密码,在无密码元年实现Passkeys通用密钥登录(基于Django4.2/Python3.10)

毋庸讳言,密码是极其伟大的发明,但拜病毒和黑客所赐,一旦密码泄露,我们就得绞尽脑汁再想另外一个密码,但记忆力并不是一个靠谱的东西,一旦遗忘密码,也会造成严重的后果,2023年业界巨头Google已经率先支持了Passkeys登录方式,只须在设备上利用PIN码解锁、指纹或面部辨识等生物识别方式,即可验

FIDO 密钥登录

FIDO 密匙登录 [1]介绍了一些基础密码知识,科普性较好,在此摘抄一下: 说起密码,你会想起什么? 密码太多,记不住? 图省事所有网站用同一个密码,一个泄露了,手忙脚乱地去改密码? 网站被脱库,数据库信息泄露,密码丢失? 这一切都的根本原因就是:服务器保存了我们的密码(不管是明文的还是Hash过

【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)

问题描述 在Azure Kubernetes 服务中,创建一个Internal Load Balancer服务,使用以下yaml内容: internallb.yaml apiVersion: v1 kind: Service metadata: name: ilb-myapp annotations