peejerator/elliptic-curve-visualizer
GitHub: peejerator/elliptic-curve-visualizer
一个用于可视化椭圆曲线点加法运算的教学工具,通过交互式命令行和Matplotlib图形帮助理解ECC密码学的几何原理。
Stars: 0 | Forks: 0
# 📐 椭圆曲线点加法可视化工具
一个交互式命令行(CLI)工具,用于在椭圆曲线上执行点加法运算,并使用 Matplotlib 将结果可视化。支持标准的点加法和点加倍,并内置输入验证与非奇异检测。
专为 FAMU-FSU 工程学院 **EEL 4347 — 网络安全导论**(2025年春季学期)课程开发。
## 功能
- **交互式命令行** — 逐步提示输入曲线参数和点坐标,并在每个阶段进行确认
- **输入验证** — 验证曲线是非奇异的(4a³ + 27b² ≠ 0),并验证输入的点满足曲线方程
- **点加法** — 使用割线法计算 R = P + Q
- **点加倍** — 使用切线(基于导数的斜率)处理 P = Q 的情况
- **单位元** — 在适用时检测并返回无穷远点
- **可视化** — 使用 Matplotlib 绘制曲线、两个输入点、割线/切线以及结果点 R
## 工作原理
给定由以下方程定义的椭圆曲线:
$$y^2 = x^3 + ax + b$$
该工具计算曲线上两点 P 和 Q 的和:
| 情况 | 斜率 (m) | 描述 |
|---|---|---|
| P ≠ Q | (y₂ − y₁) / (x₂ − x₁) | 穿过 P 和 Q 的割线 |
| P = Q | (3x₁² + a) / (2y₁) | 在 P 处的切线(点加倍) |
| P = −Q | ∞ | 结果为无穷远点(单位元) |
第三个交点关于 x 轴反射,得到 R = P + Q:
$$x_R = m^2 - x_P - x_Q, \quad y_R = m(x_P - x_R) - y_P$$
## 示例


## 快速开始
### 前置条件
- Python 3.7+
- NumPy
- Matplotlib
### 安装与运行
```
git clone https://github.com/peejerator/elliptic-curve-visualizer.git
cd elliptic-curve-visualizer
pip install numpy matplotlib
python ecc_app.py
```
程序将提示您输入曲线系数和两个点。该工具会计算 R = P + Q,并显示包含这三个点及连接线的曲线图。
## 技术栈
| 组件 | 技术 |
|---|---|
| 语言 | Python 3 |
| 数学 | NumPy |
| 可视化 | Matplotlib |
## 许可证
本项目为学术目的开发。欢迎参考或 Fork 以供学习之用。
标签:API密钥检测, FAMU-FSU, Matplotlib, NumPy, Python, 交互式命令行, 代数几何, 信息安全教育, 切线法, 割线法, 奇异性检查, 密码学, 手动系统调用, 教育工具, 数学可视化, 无后门, 椭圆曲线, 点加倍, 点加法, 网络安全, 网络安全课程, 输入验证, 逆向工具, 隐私保护