本章着重介绍“伪随机性”,并基于完善保密加密的约束条件,给出用短密钥加密很长消息的方案,实现牺牲部分计算安全但已经足够的安全性。
3.1 密码学的计算方法
第二章的方案叫做“信息理论安全”,其安全性基于敌手没有足够的信息来成功完成这些攻击,而不管敌手的能力。而现代密码学构造方法大多是基于计算安全,即给定足够的时间间和计算能力,他们会被攻破。 之所以放弃实现完美安全是因为需要密钥长度与加密的消息长度相同。
3.1.1 计算安全的基本思想
基于计算的方法包含了2种放宽的完美安全概念:
具体方法:
渐进方法:
该方法来自复杂性理论,将敌手运行时间以及成功的概率视为某个参数的函数,而不是具体的值。特别的,一个密码方案包含一个安全参数。
一个技术注释:
松弛的必要性:
计算安全在完美安全的概念中引入了两个松弛:
- 安全性仅仅抵抗有效的(多项式时间的)敌手
- 允许小的(可忽略的)成功概率
为了证明某方案是安全的,需要证明攻破该方案所需要的时间的下界。特别的,需要证明该方案不被任何多项式算法攻破。
但是目前这是遥不可及的,所以我们只能考虑换掉思路。取而代之的是,假设某个低层次难题是难以解决的,那么基于此,我们构造方案是安全的。
即陈述一个显式规约,说明如何将任何方案不可忽略的且成功“攻破”该方案的有效敌手A,转换为成功解决该难题的有效算法A’。
具体的算法流程如下:
3.2 定义计算安全的加密
首先定义对称加密的语法:
3.2.1 安全的基本定义
定义对称密钥加密的安全性的标准方式有很多种,主要不同在于对攻击中敌手的能力的假设,目前针对弱安全:抵抗唯密文攻击进行分析,后面会进行加强处理
定义的动机:
任何的安全定义由不同的两部分组成:
- 对假定敌手能力的详细说明
- 对什么是“攻破”方案的描述
相比完善保密的实验,我们对于定义做出两个关键的改变:
基于此,我们给出其真正的定义:
下面给出其具体的定义:
我们考虑上述定义的等价公式: