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

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

转载&学习: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安全证明中的归约算法更容易设计。

posted @ 2023-01-27 15:15  PamShao  阅读(1563)  评论(0编辑  收藏  举报