现代密码学中的算法与密钥管理
1. 离散对数计算与密钥长度选择
在密码学中,离散对数问题是一个核心问题。对于离散对数的计算,选择合适的参数至关重要。以计算离散对数的算法为例,选择较大的 $B$ 值会使 $Z_p^ $ 中的均匀值更有可能是 $B$ - 平滑的,但这也意味着需要更努力地识别和分解 $B$ - 平滑数,并且需要找到更多这样的数。因为方程组会更大,求解方程组的时间也会更长。选择最优的 $B$ 值可以得到一个算法,该算法(至少在启发式意义下)能在 $2^{O(\sqrt{\log p \log \log p})}$ 时间内计算 $Z_p^ $ 中的离散对数,这是关于 $p$ 长度的次指数时间。
为了实现所需的安全级别,确定合适的密钥长度至关重要。美国国家标准与技术研究院(NIST)推荐了当前不同安全级别的密钥长度,如下表所示:
| 有效密钥长度 | RSA 模数 $N$ | $Z_p^*$ 的 $q$ 阶子群 | 椭圆曲线群阶 $q$ |
| ---- | ---- | ---- | ---- |
| 112 | 2048 | $p$: 2048, $q$: 224 | 224 |
| 128 | 3072 | $p$: 3072, $q$: 256 | 256 |
| 192 | 7680 | $p$: 7680, $q$: 384 | 384 |
| 256 | 15360 | $p$: 15360, $q$: 512 | 512 |
从表中可以看出,椭圆曲线群可以用比 RSA 或 $Z_p^ $ 子群更小的参数实现任何给定的安全级别。这是因为目前还没有已知的次指数算法来解决椭
订阅专栏 解锁全文
269



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



