Appearance
第1章:安全目标与攻击模型
正确性与安全性
加密方案包含密钥生成、加密和解密算法。正确性要求合法加密得到的密文能恢复原消息;安全性则问攻击者在指定能力下还能学到什么或伪造什么。把消息还原正确,不代表攻击者看不到内容。
机密性保护内容,完整性防止未经授权的修改被接受,认证关联消息与某种身份或密钥。可用性、终端被攻陷后的行为、流量大小和时序通常不由一个加密算法自动解决。
| 功能 | 持有什么密钥 | 主要结果 |
|---|---|---|
| 对称加密 | 通信双方共享秘密 | 对不持密钥者隐藏内容 |
| 消息认证码 | 生成与验证共享秘密 | 拒绝没有合法认证的消息 |
| 公钥加密 | 加密用公钥,解密用私钥 | 让不持共享秘密的人发送机密消息 |
| 数字签名 | 签名用私钥,验证用公钥 | 让第三方验证消息与签名密钥的关系 |
| 密钥交换 | 长期或临时秘密及公开交换材料 | 建立供后续协议使用的共享密钥 |
协议组合这些功能。例如安全连接先认证身份并建立密钥,再用认证加密保护后续记录。证书解决公钥与身份的绑定,序列号解决消息顺序和重放;不能把这些责任全部交给一个分组密码。
不可区分实验
选择明文攻击下的常见实验允许攻击者请求加密,然后提交两个等长消息 。挑战者随机选择 ,返回 ;攻击者输出猜测 。其优势可定义为
等长要求承认方案可能泄露长度。若长度不同,攻击者只看密文长度就可能获胜,这不是实验想排除的长度泄露。
计算安全要求有效攻击者的优势随安全参数增长可忽略。可忽略函数最终小于任意多项式倒数;固定很小常数与渐近可忽略并非同一概念。
攻击能力决定定义
CPA 允许选择明文,CCA 进一步允许请求解密其他密文,并禁止直接请求解密挑战密文等平凡行为。现实服务若把解密失败类型暴露给攻击者,可能形成解密预言机。
安全定义不是越强越无需条件。nonce 型方案还要求同一密钥下遵守 nonce 使用规则;多用户、多消息和密钥泄露场景也需要对应模型。
归约怎样使用攻击者
若能把任何成功攻击方案 A 的程序转成攻击假设 B 的程序,就把 A 的安全性归约到 B。证明要给出模拟过程、回答查询的方法及成功概率损失,不能仅说“依赖某个难题”。
若归约只保证 B 的攻击优势至少为 A 的优势除以 ,实际参数就要考虑 的大小。渐近多项式损失在具体安全估计中可能非常昂贵。
练习
- 确定性加密为何通常不能满足允许加密查询的标准多消息 CPA 安全?
- 一个方案保密但允许攻击者翻转明文某一位,违反了什么目标?
- 为什么挑战消息需要限制为等长?