SageMath中Castryck-Decru密钥恢复攻击在SIDH上的实现教程
本教程旨在指导您了解并使用位于https://github.com/GiacomoPope/Castryck-Decru-SageMath.git 的开源项目。该项目提供了对SIDH(Supersingular Isogeny Diffie-Hellman)密码体制的一个关键恢复攻击的SageMath实现。下面是关于项目结构、启动文件以及配置文件的详细介绍。
1. 项目目录结构及介绍
项目遵循清晰的组织结构,便于理解和使用:
- SIKEp434/sage: 包含用于执行特定于SIKEp434参数集的攻击脚本。
- SIKEp610_variant/sage: 针对SIKEp610变体的实现。
- baby_SIDH/sage: 适用于baby SIDH协议的代码实现。
- castryck_decru_attack/sage, castryck_decru_shortcut/sage: 分别是Castryck-Decru攻击的主体实施和可能的优化路径。
- helpers/py: 辅助函数集合,用于支持主要脚本的功能。
- public_values_aux.py, ric heltot_aux.py: 提供公有值处理和辅助的Isogeny计算功能。
- Magma-Reference: 可能包含了原始Magma代码的参考或转换为SageMath的代码前体。
- LICENSE: 许可证文件,说明了项目的使用条款。
- README.md: 项目的基本简介和快速入门指南。
- gitignore: 指定了Git在版本控制中应忽略的文件类型或文件夹。
2. 项目的启动文件介绍
本项目并未明确指定一个单一的“启动”文件,但开发和研究用途的核心在于各**.sage文件,特别是位于SIKEp434/sage**或根据您的具体需求选择其他子目录中的文件。用户可以根据自己的实验目的,直接运行相应的.sage
脚本,例如通过SageMath命令行或界面打开这些文件并执行其中的代码。
为了开始工作,您可以使用以下命令行指令来运行特定的脚本(假设您已安装SageMath并且项目已经被克隆到本地):
sage path/to/SIKEp434/sage
替换path/to/
为您实际的项目路径。
3. 项目的配置文件介绍
项目并未直接提供典型的配置文件(如.ini
或.yaml
),配置主要是通过修改脚本内的变量或者利用SageMath的环境进行。这意味着,若需调整参数或设置,您应该直接在相关.sage
或.py
源文件内进行编辑。例如,如果您希望更改用于实验的参数集,可能需要在对应的脚本开头查找定义这些参数的地方并进行修改。
请注意,对于依赖特定SageMath版本的功能,确保您的环境中安装的是9.5或更高版本,因为该代码基于此版本开发,并且某些功能可能不兼容更早的版本。
总结,虽然该项目没有传统的配置文件系统,其灵活性体现在直接修改源码中的参数以适应不同场景和实验需求上。务必理解所修改代码的意义,以免引入错误或不必要的复杂性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考