现代密码学3.4--CPA安全,多次加密

本文介绍了密码学中的CPA安全概念,通过"left-or-right" oracle阐述了多次加密的CPA安全定义,对比了单次加密与多次加密在选择明文攻击下的安全性,并提供了相关实验过程和安全标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主正在学习INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些笔记供自己回忆,如有错误请指正。整理成一个系列现代密码学,方便检索。

  • 第二章定义的完美安全是一种理论上的讨论,而第三章需要定义的计算安全是一种更偏向实际需求的讨论。
  • 3.1节讨论了定义计算安全的两种方法,3.2节讨论了什么是计算安全,3.3节给出了基于PRG构造的计算安全的密码方案
  • 以上3.1-3.3节都在讨论计算安全,这是一种抵御唯密文攻击的安全,根据1.4节的四种攻击模型可知,这是对敌手能力的一种最弱描述。现在,我们考虑敌手具有选择明文攻击的攻击能力,来定义一种更强的安全性:CPA安全,以及考虑多次加密的计算安全和多次加密的CPA安全

CPA安全

oracle

攻击者可以选择明文 m m m传给加密者,加密者用加密算法 E n c k ( m ) Enc_k(m) Enck(m)得到 c c c……返回给攻击者。把这个过程看作一次查询,由攻击者来确定查什么,可以进行任意多次,且每次都用同样的密钥 k k k

例子

美军vs日军,中途岛海战:美军监听到日军要攻击“AF”,但是无法破解“AF”是什么地方。美军猜测是“中途岛”,于是让中途岛发假信息说缺水,日本截获了这个信息并立即报告给总部:“AF”缺水,这就让美军知道了在日军的加密方案中“AF”就是“中途岛”。这就是选择明文攻击,美军选择了明文“中途岛”,日军加密得到“AF”,虽然不是日军自愿参与的,但美军仍达到了他们的需要。

含oracle的实验过程

  • 敌手 A \mathcal{A} A已知安全参数 1 n 1^n 1n,有一个连接 E n c k ( ⋅ ) Enc_k(\cdot) Enck()的oracle(可以询问 E n c k ( ⋅ ) Enc_k(\cdot) Enck()任意多次),输出等长明文 m 0 , m 1 m_0,m_1 m0,m1给加密者;
  • 加密者任选 b ∈ { 0 , 1 } b\in\{0,1\} b{ 0,1},输出密文 c ← E n c k ( m b ) c\leftarrow Enc_k(m_b) cEnck(mb)给敌手 A \mathcal{A} A
  • 敌手 A \mathcal{A} A在获得 c c c后,仍有一个连接 E n c k ( ⋅ ) Enc_k(\cdot) Enck()的oracle(可以根据 c c c调整,继续查询),输出猜测的 b ′ b' b
  • 如果 b ′ = b b'=b b=b输出1,否则输出0。

CPA安全定义

私钥加密方案 Π = ( G e n , E n c , D e c ) \Pi=(Gen,Enc,Dec) Π=(Gen,Enc,Dec)如果对于任意PPT敌手 A \mathcal{A} A,都有一个可忽略函数negl满足 P r [ P r i v K A , Π c p a ( n ) = 1 ] ≤ 1 2 + Pr[PrivK_{\mathcal{A},\Pi}^{cpa}(n)=1]\le \frac{1}{2}+ Pr[PrivKA,Πcpa(n)=1]21+negl ( n ) (n) (n),则称该方案 Π \Pi Π在选择明文攻击下有不可区分的加密,是满足CPA安全的。

多次加密的CPA安全

“left-or-right” oracle L R k , b ( ⋅ , ⋅ ) LR_{k,b}(\cdot,\cdot)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值