现代密码学3.1--定义计算安全的两种方法

博客介绍了《现代密码学》中计算安全的定义,包括完美安全、计算安全和统计安全。计算安全定义涉及有限算力敌手和极小概率的明文信息泄露。定义方法分为具体方法和渐进方法,具体方法通过具体数值限定敌手的计算时间和成功概率,而渐进方法使用安全参数和概率多项式时间函数。此外,还解释了“高效/PPT”和“可忽略/negligible”的概念。

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

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

《现代密码学》第一章所介绍的古典密码,全都已经被破解了,由于没有严格的安全定义,无法证明安全性,第二章引入了完美安全的定义,是一种对于密码方案的安全性定义,但是满足这种安全性定义的密码方案具有一个共同缺点:密钥空间 ∣ K ∣ |\mathcal{K}| K>明文空间 ∣ M ∣ |\mathcal{M}| M,而且这种安全性往往是现实中难以达到的:无限算力的敌手+不能泄露丝毫明文信息。考虑实际需求,给出一种新的安全性定义:“计算安全/computational security”:有限算力的敌手+以极小概率泄漏明文信息

三种安全性定义

相比于完美安全,还有两种安全性定义:计算安全和统计安全。

完美安全满足:

  • 无限算力的敌手
  • 不泄露丝毫明文信息

统计安全满足:

  • 无限算力的敌手
  • 以极小概率泄露明文信息

计算安全满足:

  • 有限算力的敌手
  • 以极小概率泄漏明文信息

完美安全偏向理论,计算安全和统计安全往往是实际中的安全性定义。

定义计算安全的两种方法

我们可以把计算安全看作对完美安全的放缩,有2点放缩:敌手算力+泄露明文的概率。现在需要去定义这样的放缩,有两种方式:具体方法和渐进方法。

具体方法/concrete approach

用具体数值表示放缩

定义:如果任何敌手运行时间最长为 t t t,攻破密码方案的概率最多为 ϵ \epsilon ϵ,则称该方案是 ( t , ϵ ) − (t,\epsilon)- (t,ϵ)安全

但这种方式其实是很难提供的。比如我们给一个声明:“最长运行5年,敌手攻破密码方案的概率最多为 ϵ \epsilon ϵ”,这样的定义伴随着诸多问题:

  • 算力是多少?PC、超级电脑、网络都不同
  • 随着未来技术的发展,算力也会发展,有考虑进来吗?
  • 如果软件优化呢?
  • 运行2年,攻破概率是多少?
  • 运行10年,攻破概率是多少?

渐进方法/asyptotic approach

引入安全参数,用关于安全参数的函数来表示放缩

由于具体方法定义安全性是很难提供的,那我们考虑用函数来定义安全性。引入一个安全参数 n n n,用关于 n n n的函数来定义敌手算力以及攻破概率。

定义:如果运行时间为关于安全参数 n n n的概率多项式函数/PPT/probabilistic polynomial-time,攻破密码方案的概率是可忽略的/negligible,则称该方案是安全的

引入安全参数,主要是在语法定义和安全性定义中起作用:

  • 语法定义:生成密钥算法 G e n Gen Gen、加密算法 E n c Enc Enc、解密算法 D e c Dec Dec都是关于安全参数的多项式时间函数;
  • 安全性定义:敌手运行时间是关于安全参数的概率多项式函数,敌手攻破概率是关于安全参数的可忽略函数。

“高效/PPT”和“可忽略/negligible”

现在定义“概率多项式时间函数”和“可忽略函数”。

  • 概率多项式时间函数:对于所有任意长度的01串 x ∈ { 0 , 1 } ∗ x\in \{0,1\}^* x{ 0,1},总存在一个多项式 p p p,使得计算函数 A ( x ) A(x) A
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值