密码学安全:概念、评估与实现
1. 密码安全性基础
在密码学中,我们常常会遇到不同的密码算法,它们的安全性和性能各有差异。假设有两个密码算法,都采用 128 位密钥和 128 位安全级别。要破解它们,都需要进行 $2^{128}$ 次评估。不过,第二个算法的速度比第一个慢 100 倍。这意味着,对第二个算法进行 $2^{128}$ 次评估所花费的时间,相当于对第一个算法进行 $100 \times 2^{128} \approx 2^{134.64}$ 次评估。
从这里我们可以看出,操作的定义并不一致,这在比较攻击效率时会带来困难。有些攻击声称通过执行 $2^{120}$ 次某种操作就能降低密码的安全性,而不是对密码进行 $2^{128}$ 次评估。但实际上,这种 $2^{120}$ 次操作的攻击并不一定比 $2^{128}$ 次的暴力攻击更快,因为攻击速度在分析中往往被忽略了。
不过,只要操作定义合理(即与密码评估速度相当),位安全仍然是一个有用的概念。在现实生活中,判断一个安全级别是否足够,通常只需要考虑数量级。
2. 全面攻击成本的影响因素
位安全通过估计攻击成功所需操作次数的数量级,来表示对密码进行最快攻击的成本。但实际上,攻击成本还受到其他因素的影响,主要包括以下四个方面:
2.1 并行性
并行性是指计算过程中可以同时执行多个操作的能力。例如,有两个攻击都需要进行 256 次操作。第一个攻击的操作是顺序依赖的,如 $x_{i + 1} = f_i(x_i)$(其中 $i$ 从 1 到 256);而第二个攻击的操作是独立的,如 $x_i = f_i(x)$(其中 $i$ 从 1 到 2
超级会员免费看
订阅专栏 解锁全文
3020

被折叠的 条评论
为什么被折叠?



