安全定义与对手模型
精确的安全定义和对手模型明确规定了密码方案必须防范什么,以及攻击者被假定拥有哪些能力,从而将模糊的“安全”概念转化为可测试的主张。
Definition
安全定义正式阐述了方案必须实现的目标,以及它必须对抗的对手模型,通常表现为一场博弈或理想功能比较,其中对手的成功概率必须可以忽略不计。
Scope
本主题涵盖了安全目标和威胁如何形式化:目标定义(语义安全、不可区分性、不可伪造性)和赋予对手越来越大能力的攻击模型(选择明文攻击、选择密文攻击、自适应攻击),理想/真实和基于博弈的框架,以及模型化对手与现实世界对手之间的差距(侧信道)。它不包括用于满足这些定义的归约和困难性假设,这些内容将在相关主题中讨论。
Core questions
- 为什么安全目标必须精确定义而非凭直觉定义?
- 保密性目标(语义安全)与完整性目标(不可伪造性)有何区别?
- 攻击模型(CPA、CCA、自适应)如何捕捉对手的能力?
- 基于博弈的定义和理想/真实定义如何表达安全性?
- 为什么在模型中被证明安全的方案仍然可能在现实世界的攻击(如侧信道)中失败?
Key concepts
- 语义安全
- 密文不可区分性 (IND)
- 选择明文攻击 (CPA)
- 选择密文攻击 (CCA)
- 存在性不可伪造性
- 自适应对手
- 基于博弈的定义
- 理想/真实范式
- 侧信道差距
Key theories
- 语义安全与不可区分性
- 保密性被定义为密文不泄露任何有用信息:对手无法区分两个选定消息的加密,这是Goldwasser和Micali引入的定义,它构成了所有现代加密安全的基础。
- 攻击模型与对手能力
- 安全性是相对于对手能做什么来陈述的——被动观察、发起选择明文攻击或自适应选择密文攻击——在对抗性、交互式环境中使用的方案需要更强的模型(CCA安全)。
Mechanisms
基于博弈的定义让挑战者与对手对抗:对于IND-CPA安全,对手提交两条消息,挑战者随机加密其中一条,安全性要求对手猜测哪一条的概率不能超过偶然。更强的CCA定义还为对手提供解密预言机。理想/真实范式则认为,如果与方案的交互与与理想化可信功能的交互不可区分,则该方案是安全的。现实世界的对手可能会利用这些模型之外的时间或功率泄漏,这促使了侧信道感知定义的出现。
Clinical relevance
选择正确的定义至关重要:交互式协议中使用的加密需要CCA安全,而不仅仅是CPA安全;对真实系统(如早期TLS)的填充预言机攻击直接源于部署了满足过于弱的定义的方案。对手模型也阐明了部署不能防范什么——例如,忽略侧信道的模型解释了为什么时间攻击和功率攻击能成功对抗原本“安全”的实现。
Evidence & guidelines
现代标准要求方案满足强定义:认证加密(IND-CCA加完整性)是保密性的默认选择,签名必须在自适应选择消息攻击下具有存在性不可伪造性。通用可组合性框架提供了在任意组合下仍保持安全的定义。实现还需要在形式模型之外进行抗侧信道(常数时间)编码。
History
在20世纪80年代之前,安全性是凭经验判断的。Goldwasser和Micali的语义安全(1982-1984)引入了严格的、基于不可区分性的定义,很快扩展到选择密文模型以及签名的不可伪造性和MAC。理想/真实模拟范式和Canetti的通用可组合性框架(2001)解决了组合下的安全性问题,完善了现在所有严肃密码分析所遵循的定义基础。
Key figures
- Shafi Goldwasser
- Silvio Micali
- Oded Goldreich
- Ran Canetti
- Mihir Bellare
Related topics
Seminal works
- goldwasser1984
- katz2020
- goldreich2004
Frequently asked questions
- CPA和CCA安全有什么区别?
- 选择明文攻击(CPA)安全假设对手可以获得其选择的消息的加密。选择密文攻击(CCA)安全则额外允许对手获得其选择的密文的解密,这是一种更强的模型,只要攻击者可以提交密文并观察系统如何反应,就需要这种模型。
- 如果一个方案被证明是安全的,为什么侧信道攻击仍然有效?
- 安全定义建模的对手只能看到输入和输出,而看不到物理泄漏,如时间、功耗或电磁辐射。即使抽象方案满足其定义,真实的实现也可能通过这些信道泄露秘密,这就是为什么还需要常数时间、抗泄漏的实现。