Skip to content

安全参数

Security parameter

共同索引密码算法族、资源规模与失败概率的渐近尺度。

形式陈述

安全参数是一个自然数 λN,用来共同索引密码算法、密钥空间、问题实例和攻击资源组成的族。密钥生成等算法通常写成

(sk,pk)Gen(1λ),

其中 1λ 是长度为 λ 的一元字符串。这样,一个在输入长度上多项式时间的算法拥有 poly(λ) 的运行预算,而不是只有 poly(logλ)。一元输入是一种复杂度记账约定,不提供随机性,也不是困难性假设。

实际系统参数可以是 λ 的函数:密钥长度 (λ)、群或模数大小、格维数、噪声分布参数与重复次数都可能按构造分别增长。它们无须在数值上等于 λ。关于概率与运行时间的结论用渐近记号λ 表达;概率多项式时间对手和可忽略优势的完整量词由下游安全定义给出。

直觉

固定一把密钥只能回答“这个实例目前有多难”,难以支持对所有规模统一成立的理论结论。安全参数把单个系统扩展为一列系统:尺度增大时,诚实算法花费多少资源、攻击者可使用多少资源、失败概率怎样下降,都沿同一根坐标轴比较。于是安全不再是某次测试中的经验判断,而可以成为算法族之间的渐近陈述。

这根坐标轴并不直接等于任何物理尺寸。一个方案可能让对称密钥长度近似线性增长,另一个方案同时调整模数位数和噪声维数;两者仍可用同一个 λ 编排证明。把“安全参数”保留为抽象索引,才能区分证明中的尺度与实现选择出的具体参数表。

例子与边界

Gen(1λ) 使用随机性输出长度为 (λ) 的密钥,其中 是某个明确给出的函数。加密、解密与攻击实验都接收或隐含同一 λ,所以运行时间与事件概率可以写成关于 λ 的函数。若方案后来为满足正确性把密文重复次数设为 t(λ),这是另一个派生参数,不会把 t 变成新的安全参数。

部署中写下“使用 128-bit 密钥”只是选择了算法族的一个固定实例。常数 128 本身不会趋向无穷,因而该实例的攻击成功率不是自动意义下“关于 λ 的可忽略函数”;工程安全还需估计具体成本与攻击面。反过来,把参数从 128 增到 256 也不自动意味着攻击成本精确平方或指数翻倍,增长规律取决于方案、已知算法和底层假设。

1λ 只让输入长度与尺度一致。它没有声明密钥长度、没有保证生成器安全,也不能阻止算法忽略输入后输出固定常量。任何安全性质都必须在明确的实验和对手模型中另行陈述。

推论与应用

可忽略函数λ 为自变量描述最终比任意逆多项式更小的概率;计算安全则把对手资源与优势都参数化后量化。单向函数、伪随机生成器、加密、认证码与数字签名都依赖同一结构:先定义随 λ 变化的对象族,再对所有足够大的参数讨论高效对手。

实现标准通常把抽象安全级别映射到若干具体参数组合。这种映射需要考虑算法进展、归约损失与平台成本,不能从 λ 的符号机械读出。安全参数提供统一语言,但不会替代具体安全估算、密钥生命周期或侧信道防护。

参考资料
  • Dan Boneh and Victor Shoup, A Graduate Course in Applied Cryptography, version 0.6, 2023,§2.3, security parameters and asymptotic security。
  • Oded Goldreich, Foundations of Cryptography, Volume 1: Basic Tools, Cambridge University Press, 2001,§1.2, computational difficulty and security parameters。