密码学中的安全与归约
1. 密码系统安全概述
在密码学领域,当已知针对布尔密码系统的通用攻击方法后,密码学家需设计能抵御这些攻击的系统。有一种不同的安全方法——安全归约,其核心思想是先假定某个计算问题 X 难以解决,然后证明破解某个密码系统 S 就意味着要解决问题 X。由于假定“X 是困难的”,所以密码系统 S 是安全的,这被称为公理安全,它补充了经验安全,能排除任意攻击,包括当前未知的攻击。
历史上,许多自信于自己密码系统安全的人,在系统被破解时遭受了沉重打击。例如,苏格兰玛丽女王因秘书的密码疏忽和伊丽莎白一世手下密码学家的技能,于 1587 年被斩首;1917 年德国外交部的密码和外交失误加速了一战的结束;德国军方的密码疏忽可能使二战缩短了一两年。
为避免此类情况,需要对系统的安全性进行严格的数学证明。1976 年的迪菲 - 赫尔曼革命让密码学的核心问题——给定系统是否安全,即是否没有概率多项式时间算法能破解它,得以用数学精确表述。然而,这个问题的答案难以捉摸,它涉及计算复杂性理论,该理论的核心目标之一是证明问题复杂性的下界。
在缺乏“绝对”界限的情况下,“相对”界限是一个非常成功的工具。库克在 1971 年将归约的概念引入,从问题 X 到问题 Y 的归约是一个解决 X 的高效算法,它可能调用一个未指定的 Y 的子程序。这意味着如果 Y 容易解决,那么 X 也容易;如果 X 困难,那么 Y 也困难。
现在的目标是找到安全的密码系统,通过假定某个计算问题(如整数分解)是困难的,将整数分解归约到破解所考虑的密码系统,从而实现公理安全。
2. 密码系统的基本区分
密码系统有三个基本区分,如下表所示: