现代密码学3.2--计算安全/Computationally security

本文介绍了计算安全的概念,重点在唯密文攻击下的不可区分性和语义安全性。不可区分性定义了在有限计算资源下,攻击者无法通过密文区分不同明文的概率。同时,探讨了不可区分性与完美不可区分性的区别,并指出在明文长度一致时,敌手无法通过密文长度判断加密内容。语义安全则强调密文不泄露明文的任何信息。文章通过定理和证明展示了不可区分性与语义安全的等价性。
摘要由CSDN通过智能技术生成

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

  • 第二章定义的完美安全是一种理论上的讨论,而第三章需要定义的计算安全是一种更偏向实际需求的讨论。
  • 3.1节讨论了如何定义计算安全的两种方法:具体方法和渐进方法
  • 3.2节:
    • 对计算安全做出了定义:在唯密文攻击下满足不可区分性,介绍了此处的不可区分与第二章定义的“完美不可区分”的区别;
    • 并通过与不可区分等价来引入语义安全的定义。

计算安全

基本语法

  • 生成密钥算法/Gen:输入 1 n 1^n 1n,输出密钥 k k k,写作 k ← G e n ( 1 n ) k\leftarrow Gen(1^n) kGen(1n)。通常 ∣ k ∣ ≥ n |k|\ge n kn,对于安全参数 n n n,我们至少可以抵御 2 n 2^n 2n的攻击,也就是说如果我们用穷举搜索,遍历所有的 k k k,最多是 2 ∣ k ∣ 2^{|k|} 2k种密钥,我们要求 ∣ k ∣ ≥ n |k|\ge n kn,否则穷举搜索即可攻破。
  • 加密算法/Enc:输入密钥 k k k和明文 m ∈ { 0 , 1 } ∗ m\in \{0,1\}^* m{ 0,1},输出密文 c c c,是概率性算法(有随机数,同一明文每次加密可能得到不同密文)。
  • 解密算法/Dec:输入密钥 k k k和密文 c c c,输出明文 m m m,是确定性算法(解密同一个密文,只可能得到同一明文)。

定义安全的两部分:攻击模型和安全条件

根据1.4节介绍的现代密码学的三大原则,安全定义包括两部分:安全条件和攻击模型,在此处需要对计算安全的定义需要考虑到这两部分。

攻击模型

根据1.4节中阐述的四个攻击模型,我们这里先考虑最弱的敌手能力:唯密文攻击

安全条件

根据1.4节中介绍的正确的安全条件定义,敌手不能从密文中获取任何额外的信息,也被称为语义安全与不可区分等价,下面介绍不可区分与语义安全的概念。

不可区分

本部分介绍计算安全中的不可区分完美不可区分的两个不同,以及不可区分加密方案的定义。

与完美不可区分的两个不同

引入安全参数 n n n

算力

  • 完美不可区分:敌手拥有无限算力
  • 计算安全中的不可区分:敌手拥有有限算力,只能在 n n n的多项式时间内运行

攻破概率

  • 完美不可区分: P r [ P r i K A , Π e a v = 1 ] = 1 2 Pr[PriK_{\mathcal{A},\Pi}^{eav}=1]=\frac{1}{2} Pr[PriKA,Πeav=1]=21
  • 计算安全中的不可区分: P r [ P r i K A , Π e a v ( n ) = 1 ] ≤ 1 2 + n e g l ( n ) Pr[PriK_{\mathcal{A},\Pi}^{eav}(n)=1]\le \frac{1}{2}+negl(n) Pr[PriKA,Πeav(n)=1]21+negl(n)

明文 m 0 m_0 m0 m 1 m_1 m1长度一致,即 ∣ m 0 ∣ = ∣ m 1 ∣ |m_0|=|m_1| m0=m1

因为隐藏明文长度会使得会不能支持任意长度的明文,所以不能隐藏明文长度。那在暴露明文长度的情况下,如果有 ∣ m 0 ∣ = ∣ m 1 ∣ |m_0|=|m_1| m0=m1,则 A \mathcal{A} A不能通过密文长度来判断加密的是 m 0 m_0 m0还是 m 1 m_1 m1

定义不可区分

  • 一个私钥加密方案 Π = ( G e n , E n c , D e c ) \Pi=(Gen,Enc,Dec) Π=(Gen,Enc,Dec)在有窃听者的情况下(EAV-secure),如果对于任意PPT敌手 A \mathcal{A} A,对于任意 n n n,有一个可忽略函数 n e g l negl negl,使得
    P r [ P r i K A , Π e a v ( n ) = 1 ] ≤ 1 2 + n e g l ( n ) Pr[PriK_{\mathcal{A},\Pi}^{eav}(n)=1]\le \frac{1}{2}+negl(n) Pr[PriKA,Πeav(n)=1]21+negl(n)
    则称这个加密方案 Π \Pi Π不可区分的。
  • 一个私钥加密方案 Π = ( G e n , E n c , D e c ) \Pi=(Gen,Enc,Dec) Π=(Gen,Enc,Dec)在有窃听者的情况下(EAV-secure),如果对于任意PPT敌手 A \mathcal{A} A,对于任意 n n n,有一个可忽略函数 n e g l negl negl,使得
    ∣ P r [ o u t A ( P r i K A , Π e a v ( n , 0 ) ) = 1 ] − P r [ o u t A ( P r i K A , Π e a v ( n , 1 ) ) = 1 ] ∣ ≤ n e g l ( n ) |Pr[out_{\mathcal{A}}(PriK_{\mathcal{A},\Pi}^{eav}(n,0))=1]-Pr[out_{\mathcal{A}}(PriK_{\mathcal{A},\Pi}^{eav}(n,1))=1]|\le negl(n) Pr[outA(PriKA,Πeav(n,0))=1]Pr[outA(PriKA,Πeav(n,1))=1]negl(n)
    则称这个加密方案 Π \Pi Π不可区分的。

以上这两种定义方式等价,证明:
P r [ P r i K A , Π e a v ( n ) = 1 ] − 1 2 Pr[PriK_{\mathcal{A},\Pi}^{eav}(n)=1]-\frac{1}{2} Pr[PriKA,Πeav(

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值