椭圆曲线与密码学:原理、算法及应用
1. 椭圆曲线基础与点数计算
椭圆曲线在密码学领域有着重要的应用。以方程 (E : Y^2 = X^3 + 4X + 6) 为例,我们可以将其视为不同有限域 (F_p) 上的椭圆曲线,并计算 (E(F_p)) 中的点数。以下是前几个素数对应的点数、(t_p) 值以及 (2\sqrt{p}) 的值:
| (p) | (#E(F_p)) | (t_p) | (2\sqrt{p}) |
| — | — | — | — |
| 3 | 4 | 0 | 3.46 |
| 5 | 8 | -2 | 4.47 |
| 7 | 11 | -3 | 5.29 |
| 11 | 16 | -4 | 6.63 |
| 13 | 14 | 0 | 7.21 |
| 17 | 15 | 3 | 8.25 |
虽然 Hasse 定理为 (#E(F_p)) 提供了一个界限,但并没有给出计算该数量的方法。理论上,可以将每个 (X) 值代入并检查 (X^3 + AX + B) 与模 (p) 的平方表,但这种方法的时间复杂度为 (O(p)),效率非常低。Schoof 找到了一种时间复杂度为 (O((\log p)^6)) 的算法,即多项式时间算法。该算法经 Elkies 和 Atkin 改进后,成为了现在的 SEA 算法。
2. 椭圆曲线离散对数问题(ECDLP)
2.1 问题定义
在有限域 (F_p^*) 中,离散对数问题(DLP)是指找到一个指数 (x),使得 (h \equiv g^x \pmod{p})。在椭圆曲线 (E) 上,Alice 选择并
超级会员免费看
订阅专栏 解锁全文
4019

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



