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$$ ## 示例 ![终端输出](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0567cabc53220204.png) ![曲线图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/729df52982220206.png) ## 快速开始 ### 前置条件 - 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, 交互式命令行, 代数几何, 信息安全教育, 切线法, 割线法, 奇异性检查, 密码学, 手动系统调用, 教育工具, 数学可视化, 无后门, 椭圆曲线, 点加倍, 点加法, 网络安全, 网络安全课程, 输入验证, 逆向工具, 隐私保护