#一.MIRACL简介
MIRACL(Multiprecision Integer and RationalArithmetic C/c++ Library)是一套由Shamus Software Ltd.所开发的一套关于大数运算函数库,用来设计与大数运算相关的密码学之应用,包含了RSA 公开密码学、Diffie-Hellman密钥交换(Key Exchange)、AES、DSA数字签名,还包含了较新的椭圆曲线密码学(Elliptic CurveCryptography)等等。运算速度快,并提供源代码。
#二、配置
2.1 从GitHub上面down下来
git 链接:https://github.com/miracl/MIRACL.git
1 | git clone https://github.com/miracl/MIRACL.git |
2.2 按照指导,编译得到lib文件
编译我选用的是ms环境编译,然后从脚本中选择ms32doit.bat进行32位编译,得到下面的lib文件
##2.3 新建项目
①新建项目:Win32控制台项目
②将大数运算静态库文件ms32.lib和头部文件miracl.h和mirdef.h拷贝到项目所在文件夹
③对项目打开“属性页”对话框,单击“C/C++”配置属性,选择“预编译头”选项,设置为“不使用编译头”
④为项目添加如下头文件的包含,此处使用extern”C”是表示用C的方式编译,因为ms32.lib是C的库,不是C++的库,如图1-7所示;
1 | extern "C" |
#三 常用函数
来自项目中manual.doc,原文为英文,做了简单翻译。
1 | 函数原型: void absol(big x, big y); |
#四、架构理解
①miracl.h:所有的宏定义,外部定义的函数接口的结构①体定义。
②mirdef.h:根据不同环境和编译环境给出的定义。
③big.h:大整数文件的定义。
④大数文件中所有的函数依赖于其他的文件(比如:mraes.cmralloc.cmrarth0.c等等)
⑤znn.h:定义了运算功能。
⑥总之,功能很强大,有很多拓展,可以在项目中doc文档中看到。