MIRACL
MIRACL是爱尔兰都柏林城市大学在1988年开发的C语言大数运算与密码学软件开发库,全称「多精度整数与有理数算术密码库」(Multiprecision Integer and Rational Arithmetic Cryptographic Library),以椭圆曲线密码和配对密码的高效实现著称。该库经Shamus Software、CertiVox等公司接手维护,扩展为多语言版本的MIRACL Core;同名企业则以该库为基础,推出基于零知识证明的M-PIN协议与无密码多因素认证服务「MIRACL Trust」。
定义
MIRACL最初指一套用C语言编写的密码学开发工具包,正式名称为多精度整数与有理数算术密码库。它的核心能力是处理远超常规字长的多精度整数,并在此之上实现RSA公钥加密、Diffie-Hellman密钥交换、DSA数字签名等数论类密码算法[1]。该库在椭圆曲线密码(ECC)以及基于双线性配对的密码学方面支持尤为突出,并提供内联的C++封装与20余个示例程序[2]。
此外,「MIRACL」也是一家英国网络安全企业的名称,其产品线以该库为基础,主推无密码、单步完成的多因素身份认证服务MIRACL Trust[3]。企业名称与软件库名称同源,本词条以软件库为主线,兼及由其衍生的认证产品。
原理
密码学中的大量运算建立在超长整数的模乘、模幂之上。常规处理器一次只能处理32位或64位数据,MIRACL提供了一整套多精度算术例程,把大数拆分为若干机器字后逐段运算,例如模幂 $x^y \bmod n$ 是多数公钥协议的性能瓶颈[4]。在此基础上,RSA、Diffie-Hellman、DSA等算法只需若干次函数调用即可实现[5]。
为兼顾不同处理器,MIRACL采用专用宏汇编机制,由配置程序根据目标平台自动生成优化的汇编引擎;在资源受限环境中,内存可全部从栈上分配,以避免碎片化,并可裁剪代码体积[4]。后续的MIRACL Core则完全以高级语言实现,不含汇编与第三方代码,支持C、C++、Go、Rust、Python、Java、JavaScript、Swift等语言,并通过代码转换工具迁移到WebAssembly和C#[6]。
在认证产品一侧,原理是零知识证明。MIRACL Trust使用名为M-PIN的多因素协议:客户端从分布式信任机构取得密钥份额,与用户输入的PIN组合后,只在内存中重建客户端密钥;认证时用户提交承诺值,服务器返回挑战值,客户端据此计算响应,服务器仅凭响应判断身份真伪,全程不传输PIN或密钥本身[7]。
M-PIN可拆成多个同构因子,每个因子是椭圆曲线上的一个点,重新相加即可还原原始密钥,因此4位PIN与设备令牌可以各为一个因子[8]。协议所需数学结构为配对友好椭圆曲线上的双线性映射 $e: G_1 \times G_2 \to G_T$,密钥由信任机构的主密钥与用户身份哈希到曲线上的点相乘得到。
发展历程
MIRACL库由迈克尔·斯科特(Michael Scott)于1988年在都柏林城市大学计算机学院编写,他也是BLS、KSS等椭圆曲线族的命名者之一[9]。2003年,该库以Shamus Software公司名义发布并被广泛引用,早期即被微软、西门子、三星等百余家企业使用[10]。
2011年至2012年间,信息安全公司CertiVox收购Shamus Software,斯科特随之出任首席密码学家,并主持都柏林实验室,推动椭圆曲线与配对密码的研究[11]。2013年7月,CertiVox发布M-Pin强认证系统;2016年1月,公司更名为MIRACL,理由是从单一产品转向整体解决方案[9]。
2019年初,公司由以罗布·格里芬(Rob Griffin)为首的团队收购,此后重点转向受监管行业;截至2024年,控股权归属MIRACL Digital Services Limited[3]。在软件库方面,Apache Milagro密码库(AMCL)的原始代码经扩展后以MIRACL Core名义重新发布,加入阈值秘密分享、BLS签名、HPKE、确定性哈希到曲线等模块,并支持SM2、BN462、JUBJUB等曲线[6]。
应用
作为底层工具,MIRACL被用于在硬件、嵌入式系统、移动设备和SCADA等受限平台中实现数论密码,涉及的行业包括国防、嵌入式与移动系统[10]。MIRACL Core强调抗侧信道攻击设计,可在ARM Cortex-M0/M4、MIPS32、RISC-V、ESP32等低功耗物联网节点上运行[6]。
在工程接口层面,MIRACL Core自带文档生成配置,C版本可直接通过Doxygen生成文档,便于集成到自有密码接口设计之中[6]。
认证产品MIRACL Trust以软件开发工具包、OpenID Connect对接、单点登录服务器、RADIUS服务器以及面向微软ADFS的插件等形式交付,可接入网站、移动应用与企业身份体系[12]。该服务主要面向网络博彩与在线体育投注、金融科技等受监管领域,2024年10月与托管与网络安全服务商Continent 8达成合作,将其认证能力纳入后者的合规安全产品组合[13]。
局限
MIRACL作为算法库,本身不提供完整的身份管理或业务逻辑,使用者需要自行设计密码学接口与协议流程,文档也指出密码学是一门复杂而微妙的学科,把恰当的防护正确地嵌入具体产品往往并不容易[14]。其配对运算等操作计算开销较大,早期在512位参数下Tate配对运算耗时约20毫秒,需要预计算等手段提速[4]。
MIRACL Core对后量子密码仅有模块级支持,官方表述也承认后量子密码尚未真正进入实用阶段[15]。
在认证方案一侧,M-PIN依赖外部信任机构签发密钥,系统必须维护分布式信任机构这一角色。认证与设备绑定:令牌与特定设备唯一对应,设备被吊销后用户须重新完成身份核验才能再次注册,连续3次认证失败即自动吊销[16]。用户侧亦存在认知门槛,有使用方反馈其密码学原理较难向普通用户解释清楚,且用户需理解凭证与浏览器、设备组合相绑定的特点[17]。
参见
参考资料
- Contents of /head/math/miracl/pkg-descr [引用日期2026-10-29]
- * What Is Miracl [引用日期2026-10-29]
- A Brief History of MIRACL [引用日期2026-10-29]
- archive.org 上的网页 [引用日期2026-10-29]
- Contents of /tags/RELEASE_12_1_0/math/miracl/pkg-descr [引用日期2026-10-29]
- miracl [引用日期2026-10-29]
- M-PIN Authentication Protocol [引用日期2026-10-29]
- M-PIN Zero Knowledge Proof Protocol [引用日期2026-10-29]
- MIRACL (security firm) - Jump to content [引用日期2026-10-29]
- newelectronics.co.uk 上的网页 [引用日期2026-10-29]
- CertiVox Acquires Shamus Software [引用日期2026-10-29]
- Developer Resources [引用日期2026-10-29]
- continent8.com 上的网页 [引用日期2026-10-29]
- miracl.com 上的网页 [引用日期2026-10-29]
- Evolving the MIRACL Core library (4 min read) [引用日期2026-10-29]
- Authentication [引用日期2026-10-29]
- MIRACL Trust [引用日期2026-10-29]