可证明安全理论总结

总述

现代密码学中的安全标准有3个:
(1) 计算安全: 考虑攻破一个密码算法所需的计算开销. 若攻破一个密码算法的最优算法所做操作是n次, 则称该密码算法是计算安全的. 但实际上没有一个实例属于计算安全, 目前仅是一个理论概念.

(2) 可证明安全: 基本思想基于数学中的反证法, 通过"规约"的方式将密码算法安全性规约到某个公认的数学难题, 比如大数分解, 素数域离散对数分解问题. 若存在攻破密码算法的攻击方式, 则可以利用该方式构造出攻破数学难题的方法.
实现一个密码算法的可证明安全, 大致步骤有

  • 给出密码算法的形式化定义
  • 给出密码算法的安全目标
  • 给出密码算法的安全模型, 包括攻击者的目标和攻击者的攻击能力
  • 对攻击者的攻击过程进行规约, 利用攻击方法解决数学难题

(3) 无条件安全: 假设攻击者拥有无限计算能力, 无限计算资源, 仍然不能攻破密码算法, 则密码算法是无条件安全的. 显然这是一种理想化的概念, 实际中基本不存在.

安全模型

可证明安全中需要证明攻击者采取最强的攻击能力, 依然不能实现最弱的攻击目标, 则称密码算法是可证明安全的.

安全目标

主要分为3类
(1) 不可区分性 (IND)
需要攻击者成功攻破算法的优势是多项式时间内不可区分的函数, 攻击者提交等长明文消息 M 0 , M 1 M_0 , M_1 M0,M1, 挑战者随机选择 M β , β ∈ { 0 , 1 } M_\beta, \beta \in \{0,1\} Mβ,β{0,1}, 加密后得到密文 C C C, 发送给攻击者, 攻击者对 C C C进行判断, 是 M 0 M_0 M0或者 M 1 M_1 M1加密后的结果, 即判断 β ′ ∈ { 0 , 1 } \beta' \in \{0,1\} β{0,1}, 定义攻击者攻破密码算法的优势为
A d v ( A ) = ∣ 2 P r [ β ′ = β ] − 1 ∣ Adv(\mathcal{A}) = | 2 Pr[\beta' = \beta] - 1| Adv(A)=2Pr[β=β]1
如果优势是可以忽略的, 则称密码算法实现了多项式时间内的不可区分性安全.
解释: 如果单纯随机猜测 β ′ \beta' β显然概率是50%, 则攻击者的优势为0, 可忽略, 所以单纯猜测是不能攻破密码算法的, 需要某种方式(或许不存在)把攻破密码算法的优势提升到不可忽略的地步, 才能算攻破算法.

(2) 非延展性安全 (NM)
得到明文M对应的密文C, 要求攻击者 A \mathcal{A} A无法构造不同的密文C’, 使C’对应的明文M’和M存在某种关联, 且 A \mathcal{A} A可以得知这种关联关系.

(3) 单向安全性 (OW)
要求公钥密码方案实现单向安全性, 即攻击者从公开参数不能解密密文.

小结:
通常OW要求比IND和NM低, NM的安全性证明最困难, 所以大部分安全性证明是基于IND.


攻击能力

攻击者的攻击能力分为4类
(1) 唯密文攻击 (COA)
攻击者只知道密文.

(2) 已知明文攻击 (KPA)
攻击者知道一些明文-密文对

(3) 选择明文攻击 (CPA)
攻击者可以选择特定明文-密文对, 如果还可以在攻击过程中, 调整明文选择, 且得到对应密文, 称为适应性CPA.

(4) 选择密文攻击 (CCA)
攻击者可以选择特定密文-明文对, 如果还可以在攻击过程中, 调整密文选择, 且得到对应明文, 称为适应性CCA. 普通CCA称为CCA1, 适应性CCA称为CCA2.

总结

同时考虑安全目标和攻击能力两个方面, 主要的安全组合有6类

  • IND-CPA
  • IND-CCA1
  • IND-CCA2
  • NM-CPA
  • NM-CCA1
  • NM-CCA2

IND-CCA2, NM-CCA2安全性最强. IND-CPA又称为语义安全, 主要的CP-ABE问题都是基于IND-CPA安全. 另外IND-CPA下安全方案有某种通用方法转换为IND-CCA.

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值