1. 为什么要放宽完美保密
Lecture 3 证明了完美保密要求密钥空间至少与消息空间一样大。若希望短密钥保护长消息,需要允许密文在信息上存在差别,但让实际可行的攻击无法有效利用这种差别。
计算安全从两个方面放宽要求:只考虑高效攻击者,并允许其获得极小的攻击优势。它不保证攻击在数学上完全不可能,也不放宽合法解密的正确性要求。
1.1 具体安全性与渐近安全性
要把“高效”和“极小”数学化,可以直接规定数值界,也可以研究它们随参数增大的变化。
- 具体方法:给定时间界 和概率或优势界 ,要求运行时间至多 的攻击者无法超过该界。在区分游戏中,界限通常针对超过随机猜测的优势。
- 渐近方法:引入安全参数 ,将高效规定为关于 的多项式时间,将极小规定为关于 的可忽略函数。
较大的密钥空间只能说明穷举困难,不能排除结构性攻击。渐近安全性也不自动保证某个具体参数值足够安全,实际选参仍需要具体分析。
2. 高效攻击者与可忽略函数
先分别定义计算资源与优势的增长尺度,随后才能写出完整的计算安全定义。
2.1 概率多项式时间(PPT)
高效攻击者可以使用随机性,但总计算时间受到多项式界的限制。
定义:PPT 算法
概率多项式时间(Probabilistic Polynomial-Time,PPT)算法是随机算法,其运行时间关于输入长度多项式有界。在密码学实验中,攻击者通常接收 ,因此可运行 时间。
是由 个 1 组成的一元编码,长度为 ;若只输入 的二进制编码,长度是 ,关于输入长度的多项式界就成了 。
2.2 可忽略函数(Negligible Function)
趋近于 0 还不够,因为攻击者可能执行多项式次尝试。需要比任意固定多项式倒数衰减得都快。
定义:可忽略函数
非负函数 是可忽略的,如果对任意正多项式 ,都存在阈值 ,使
阈值 可以依赖于 。等价地,对任意常数 ,最终都有 。
例题:小概率与可忽略函数的区别
和 都可忽略; 虽然趋于 0,却不可忽略,因为它最终不能小于 。
固定常数 也不是关于 的可忽略函数:它不随 下降。这不妨碍它在某项具体安全分析中是很小的数值。
2.3 常用闭包性质
归约可能损失一个多项式因子,或将几个失败事件相加。以下性质保证这些操作不会破坏可忽略性。
定理:可忽略函数的闭包性质
若 可忽略, 为正多项式,则 、 和 都可忽略。
因而若非负函数 不可忽略,则 也不可忽略。
证明:对任意正多项式 ,最终有 ,所以 。又因为 最终成立, 最终成立,故乘积可忽略。要使 ,只需使用 。
最后一条取逆否命题:若 可忽略,则 可忽略,矛盾。这解释了为什么不可忽略的优势除以 2 或某个多项式后仍不可忽略。
3. 带安全参数的加密方案
有了效率的定义,需要同时要求合法参与者也能高效运行,并明确每个参数下允许加密的消息。
定义:私钥加密方案的语法与正确性
方案 的算法均在相应输入长度下多项式时间运行:
- 输出密钥 。
- 对合法消息 输出密文 。
- 输出消息或错误符号 。
对每个 、每个可能生成的密钥 和每条合法消息 ,要求
概率取自算法内部随机性。若消息空间为 ,其中 为多项式,则称为消息长度 的定长加密方案。
一般加密方案可以处理可变长度消息;定长方案只承诺处理规定长度的消息。密钥长度和消息长度都可以依赖安全参数,不能默认两者相同。
4. 窃听攻击下的计算不可区分性
沿用完美保密的挑战游戏,将攻击者限制为 PPT,并把“恰好无法区分”放宽为“只能获得可忽略优势”。
4.1 单消息窃听实验
实验使用一个随机挑战位选择两条消息之一,并检验攻击者是否猜中。
定义:单消息窃听不可区分性(IND-EAV)
实验 :
- 输出两条合法、等长的消息 ,并保留内部状态。
- 挑战者独立生成 、均匀比特 ,返回 。
- 根据 和保留的状态输出 。若 ,实验输出 1;否则输出 0。
若对任意 PPT 攻击者 ,都存在可忽略函数 ,使对所有 ,
则称方案满足单消息窃听不可区分性。概率包含所有参与者的随机性。
交互过程与 Lecture 2 的完美不可区分实验相同,区别只在攻击者为 PPT、获胜概率允许超出 一个可忽略量:
sequenceDiagram participant A as PPT 攻击者 A participant C as 挑战者 Note over A: 输入 1ⁿ A->>C: 两条等长消息 m₀, m₁ Note over C: 生成 k ← Gen(1ⁿ),抽均匀比特 b C-->>A: c ← Enc_k(m_b) A->>C: 猜测 b′ Note over A,C: 要求 Pr[b′ = b] ≤ 1/2 + negl(n)
要求候选消息等长,是因为这一安全定义通常允许泄露消息长度。攻击者随机猜测就能以 获胜,可忽略的应是额外优势,而不是整个成功概率。这里还没有加密或解密 oracle。
4.2 固定挑战位的两世界表述
为了便于归约,也可以固定 或 ,直接比较攻击者在两种实验中输出同一个比特的概率。
记
等价的安全条件是,对每个 PPT 攻击者,
两种表述的联系为
允许攻击者翻转输出后,最有利方向的获胜优势就是 ,常数因子不影响可忽略性。
Remark:固定比特实验应比较什么
两世界条件比较的是相同输出事件 。不能改成比较两个世界各自的“猜对”概率;例如总猜 0 的攻击者在世界 0 中必胜、在世界 1 中必败,但它根本没有利用密文。
5. 伪随机生成器(PRG)
如果能够把短的均匀种子扩展成高效攻击者无法与均匀串区分的长串,就可以尝试用它代替 OTP 的长密钥。先明确随机性是分布的性质,再定义这种生成器。
5.1 均匀与伪随机都是分布的性质
表示 上的均匀分布,每个具体串的概率都是 。因此均匀采样时,全零串与任何“看起来杂乱”的具体串出现概率相同。
不能单凭某个串的外观判断来源是否均匀或伪随机。伪随机性要求整个输出分布与同长度均匀分布在计算上不可区分。
5.2 PRG 的正式定义
生成器本身是确定性的;随机性来自随机种子。相同种子始终得到相同输出。
定义:伪随机生成器(Pseudorandom Generator)
设 为多项式, 是确定性多项式时间算法。若满足以下条件,则称 为 PRG:
- 扩展性:。
- 伪随机性:对任意 PPT 区分器 ,存在可忽略函数 ,使对所有 ,
种子 不交给区分器;区分器知道算法 。概率也包含区分器的随机性。
定义中的概率差称为区分优势。要求输出比种子长,排除了直接输出均匀种子等没有扩展作用的做法。
5.3 等价的 PRG 游戏
同样可以让挑战者隐藏输出来自哪种分布,要求攻击者猜来源。
定义:PRG 的来源区分游戏
挑战者采样均匀比特 :若 ,返回 ,其中 ;若 ,返回 。PPT 攻击者收到 后输出 。
PRG 安全性等价于:对每个 PPT 攻击者,存在可忽略函数 ,使
sequenceDiagram participant A as PPT 攻击者 A participant C as 挑战者 Note over C: 抽均匀比特 b alt b = 0 Note over C: 抽种子 s ← Uₙ,令 X = G(s) else b = 1 Note over C: 直接抽 X ← U_ℓ(n) end C-->>A: (1ⁿ, X),种子不给看 A->>C: 猜测 b′:X 来自 G 还是均匀分布
输出标签可以互换,但定义与证明中必须保持一致。游戏获胜优势与两分布的区分优势相差一个常数因子 2。
6. PRG 的能力边界与存在性
PRG 的输出并不真正服从长串上的均匀分布。它依赖的是计算能力限制,而非信息论上的完全相同。
6.1 无界攻击者可以枚举种子
设 ,则 。无界区分器枚举所有种子,检查输入是否属于 ,于是
其区分优势至少为 ,因此不可忽略。若 ,这一优势至少为 。
真正均匀的串也可能恰好落入 ,因此不能说该方法每次都能确定来源。对 PPT 攻击者而言,枚举 个种子通常不被允许。
6.2 PRG 是否存在
目前没有无条件的 PRG 存在性证明。PRG 的存在蕴含 ;不能仅凭这个蕴含反过来断言 PRG 存在。
后续将假设某些算法满足 PRG 定义,再通过归约证明由它们构造的加密方案安全。Lecture 5 用这种方法构造伪 OTP。