1. 从伪随机性到加密

Lecture 4 定义了 PRG:用短的均匀种子生成较长的串,使 PPT 区分器无法有效分辨它与等长均匀串。现在先检查一种看似自然的 PRG 变换,再用 PRG 构造加密方案。

记 为 位串上的均匀分布, 表示拼接, 表示按位异或。后文的区分优势指两种输入分布下,区分器输出同一比特的概率差的绝对值。

2. 与种子相关的变换未必保持伪随机性

给 PRG 输出再做一次异或,是否仍然安全,取决于异或对象与输出之间的关系。不能把由同一个种子生成的两个量当成独立随机量。

3. 伪一次一密(Pseudo OTP)

OTP 需要与消息等长的均匀密钥。利用 PRG,可以只保存一个短种子,按需生成长的伪随机掩码。

构造:伪 OTP

设 为 PRG,消息空间为 。

  • :采样 。
  • :输出 。
  • :输出 。

秘密密钥是 位种子 , 是长度为 的掩码。

加密与解密都可以高效计算;正确性为

密钥长度从 缩短为 ,代价是安全性依赖 PRG 假设及攻击者计算能力限制。这并不违背完美保密的密钥长度下界,因为此处目标已改为计算安全。

4. 伪 OTP 的单消息安全性

要证明加密安全,需要把“区分两条明文的加密结果”转换成“区分伪随机掩码与均匀掩码”。当掩码真正均匀时,系统正好退化为已经证明安全的 OTP。

定理:伪 OTP 满足单消息窃听安全性

若 是 PRG,则上述方案 对长度固定为 的消息满足 IND-EAV 安全性:对任意 PPT 攻击者 ,存在可忽略函数 ,使

证明:给定任意 PPT 加密攻击者 ,构造 PRG 区分器 :

  1. 运行 ,得到候选消息 ,保留其状态。
  2. 独立采样均匀比特 ,将 交给 。
  3. 得到猜测 后,若 则输出 1,否则输出 0。

同时扮演两个角色:对 PRG 挑战者,它是区分器;对 ,它是加密实验的挑战者。

sequenceDiagram
    participant A as 加密攻击者 A
    participant B as 区分器 B
    participant P as PRG 挑战者
    P-->>B: 来源未知的串 x:G(k) 或均匀串
    A->>B: 候选消息 m₀, m₁
    Note over B: 自己抽均匀比特 b,用 x 当掩码
    B-->>A: c = x ⊕ m_b
    A->>B: 猜测 b′
    Note over B: b′ = b 则输出 1,即判断 x 来自 G
    B->>P: 输出的比特

不需要知道 的种子;它只使用收到的串完成一次模拟。设 为 在真实伪 OTP 游戏中的获胜概率,则

收到的输入为 模拟的分布 输出 1 的概率
,真实的伪 OTP 游戏
均匀掩码下的 OTP 游戏

因此

是 PPT,PRG 安全性保证右侧可忽略,于是 ,定理得证。

若改用“猜掩码来源”的游戏来计算,假设 ,则 将输出 1 解释为“来自 PRG”时,猜对来源的概率为

两分布区分优势是 ,来源游戏的获胜优势是 ;两者都在 不可忽略时不可忽略。

5. 同一密钥下的多消息安全

单消息实验只给出一条挑战密文。实际通信通常反复使用同一密钥,因此需要检验多条密文联合起来是否泄露关系。

5.1 多消息窃听实验

将单消息游戏中的两条候选消息扩展为两组候选消息,要求攻击者无法判断收到的是哪一整组的加密。

定义:多消息窃听安全性

实验 :

  1. 输出两组合法消息

其中 多项式有界,且对每个 都有 。

  1. 挑战者生成一个密钥 ,独立选择一个均匀比特 ,计算
  1. 收到 后输出 ;实验在 时输出 1,否则输出 0。

所有位置使用同一密钥和同一个挑战位;若加密本身随机化,每次加密使用独立的新随机性。

若对任意 PPT 攻击者 ,存在可忽略函数 ,使对所有 ,

则称方案满足多消息窃听安全性。

sequenceDiagram
    participant A as PPT 攻击者 A
    participant C as 挑战者
    A->>C: 两组消息 𝐦₀ = (m₀,₁, …, m₀,ₜ) 与 𝐦₁ = (m₁,₁, …, m₁,ₜ)
    Note over C: 生成一个 k ← Gen(1ⁿ),抽一个均匀比特 b
    Note over C: 用同一个 k 逐条加密第 b 组
    C-->>A: c₁, …, cₜ,其中 cᵢ ← Enc_k(m_b,ᵢ)
    A->>C: 猜测 b′

对应位置的两条候选消息必须等长,不同位置之间可以长度不同。同一个 选择整组,攻击者因此可以利用各条密文之间的关系。

令 就得到单消息实验,所以多消息安全蕴含单消息安全;反方向不成立。

5.2 伪 OTP 为什么不满足多消息安全

伪 OTP 对相同密钥始终生成同一个掩码,因而重新出现了 OTP 复用密钥的问题:

事实上,任何满足正确性的确定性加密方案,都可被相同的重复模式攻击:同一消息总产生相同密文,不同消息在同一密钥下必须产生不同密文。

伪 OTP 的证明只保证一次使用短密钥时的单消息安全。要用同一密钥保护多条消息,需要进一步改变加密构造,而不能仅将 PRG 输出当作固定掩码反复使用。