It's our wits that make us men.

2019/6/21 可证明安全性理论(1-3)

Posted on By LuLu

可证明安全性理论(1-3)

前言

可证明安全性理论主要使用计算复杂性理论:规约

密码算法(要抵抗攻击者的攻击)的安全性需要证明

不是所有算法都能用可证明安全性理论来证明,比如RSA,但是RSA—OAEP可用该理论证明

可证明安全性理论将密码算法和基于的困难问题进行挂钩

安全证明需要考虑攻击强度

  • 攻击者收集数据(交互)的方法:

    窃听网络数据

    利用密文获得明文

    ……

    攻击者收集数据方式越灵活,获得信息就越多,攻击成功率就越高,攻击能力就越强

  • 公钥加密的主要攻击类型

    选择明文攻击CPA(chosen plaintext attack)

    • 攻击者自己选择明文,通过某种手段,获得相应密文,进行分析,实施攻击

    选择密文攻击CCA(chosen ciphertext attack)

    • 攻击者自己选择密文,通过某种手段,获得相应明文

    自适应选择密文攻击CCA2(adaptive chosen ciphertext attack)

安全证明需要考虑攻击目的

最常见的攻击目的:区分(密文是由哪条明文产生的)

  • 不可区分性:IND(indistinguishability)

    攻击者成功找到密文对应哪条明文的概率是可忽略的,则公钥加密方案满足不可区分性

公钥加密抵抗的最常见的攻击目的:IND

公钥加密三种安全性

IND-CPA:攻击者发动选择明文攻击是白搭的

IND-CCA:攻击者发动选择密文攻击是白搭的

IND-CCA2

强度:IND-CCA2>IND-CCA>IND-CPA

如何证明一个公钥机密方案满足哪种安全性

  • 建立安全模型:攻击者能干那些事,攻击者的攻击目的
    • 每个安全模型都会包含几个阶段,在不同的阶段,攻击者A和挑战者C都可以干不同的事情
    • 一般都包含setup阶段:挑战者把公钥等一些参数发送给攻击者
    • 例:IND-CPA安全模型:
      • 挑战者将参数传给攻击者
      • 攻击者向挑战者发送两条消息
      • 挑战者选择一条进行加密后发送给攻击者
      • 攻击者找出是哪一条消息对应的密文,将编号发送给挑战者