椭圆曲线与密码学:原理、算法及应用
1. 椭圆曲线基础与点数计算
1.1 椭圆曲线示例
考虑椭圆曲线 (E),其方程为 (E : Y^2 = X^3 + 4X + 6)。我们可以将 (E) 视为不同有限域 (F_p) 上的椭圆曲线,并计算 (E(F_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 |
1.2 点数计算算法
Hasse 定理给出了 (#E(F_p)) 的一个界,但没有提供计算该值的方法。原则上,可以将每个 (X) 值代入并与模 (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 选择并公布 (E(
超级会员免费看
订阅专栏 解锁全文
4011

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



