本仓库包含与一系列持续发布的博客文章相对应的可运行 Rust 代码,这些文章以 BLS12-381 作为参考曲线,介绍基于配对的密码学中的优化。
请注意: 本代码仅供教学用途,未经安全审计,不适合用于生产环境。使用风险自负。
本文将从头到尾介绍模块化 Montgomery 算术,包括背景、替代方案、理论及 Rust 中的实用可运行代码,其运行速度比通用大整数实现快 9 倍。下一篇博客文章将进一步优化(相对)重量级的乘法例程,采用裸机 x86-64 汇编语言编写。
mont1 子目录中:https://github.com/nccgroup/pairing/tree/main/mont1这第二篇文章进一步推进了用 Rust 开发的 Montgomery 乘法算法,力求让现代 x86-64 机器从手工编写的汇编语言实现中获得最大性能。多项专用指令和先进的微架构特性带来了更高的并行度,使 Montgomery 乘法例程的运行速度比通用大整数实现快 15 倍以上。
mont2 子目录中:https://github.com/nccgroup/pairing/tree/main/mont2版权所有 2021 Eric Schorn;依据 3-Clause BSD 许可证授权。