littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于C语言的Falcon签名算法实现

项目简介

本项目运用C语言实现Falcon签名算法,Falcon作为后量子签名算法,已提交给NIST的后量子密码学项目。该算法依托NTRU格结构,采用哈希签名模式与基于傅里叶的采样方法,能高效生成和验证签名,同时生成和使用的签名及公钥相对紧凑。

项目的主要特性和功能

  • 支持多种浮点运算模式,可使用C语言的double类型进行浮点运算(FALCON_FPNATIVE),也能采用64位整数和自定义的IEEE - 754浮点运算模拟(FALCON_FPEMU)。
  • 性能优化,启用AVX2指令集(FALCON_AVX2)和FMA(融合乘加)指令集(FALCON_FMA)可显著提升算法性能。
  • 支持ARM Cortex M系列,提供针对ARM Cortex M3、M4等处理器的内联汇编优化(FALCON_ASM_CORTEXM4),实现更高效运算。
  • 配置灵活,通过config.h文件中的宏定义,用户可按需启用或禁用不同功能和优化选项。
  • 提供单元测试与性能测试,项目有test_falconspeed两个可执行文件,分别用于运行单元测试和性能基准测试,确保算法正确性和性能。

安装使用步骤

  1. 确保已下载本项目的源码文件。
  2. 根据需求修改config.h文件中的宏定义,启用或禁用所需功能和优化选项。
  3. 在项目根目录下运行make命令进行编译,编译完成后会生成test_falconspeed两个可执行文件。
  4. 运行测试:
    • 使用test_falcon运行单元测试,验证算法的正确性。
    • 使用speed运行性能基准测试,评估算法在不同参数下的性能表现。
  5. 若要在应用中使用Falcon签名算法,只需包含falcon.h头文件,并调用其中定义的API即可。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】