Miracl库学习

您所在的位置:网站首页 gmp库常用函数 Miracl库学习

Miracl库学习

2023-09-06 00:27| 来源: 网络整理| 查看: 265

一.MIRACL简介

  MIRACL(Multiprecision Integer and Rational Arithmetic C/c++ Library)是一套由Shamus Software Ltd.所开发的一套关于大数运算函数库,用来设计与大数运算相关的密码学之应用,包含了RSA 公开密码学、Diffie-Hellman密钥交换(Key Exchange)、AES、DSA数字签名,还包含了较新的椭圆曲线密码学(Elliptic Curve Cryptography)等等。运算速度快,并提供源代码。国外著名密码学函数库还有:GMP、NTL、Crypto++、LibTomCrypt(LibTomMath)、OpenSSL等。

 

二.MIRACL函数库调用举例

  所需文件:数运算静态库文件ms32.lib和头部文件miracl.h和mirdef.h。

  为项目添加如下头文件的包含,此处使用extern "C"是表示用C的方式编译,因为ms32.lib是C的库,不是C++的库。

  extern "C"

  {

      #include "miracl.h"

      #include "mirdef.h"

  }

  在_tmain函数中插入如下代码,以测试大数运算情况。

  miracl *mip = mirsys(400,10);   //初始化一个400位10进制的大数系统

  big x,y,z;

  x = mirvar(177);

      y = mirvar(79);

      z = mirvar(0);

      divide(x, y, z);  //x=x mod y, z=x/y

 

      cotnum(x,stdout); //x=19

      cotnum(y,stdout); //y=79

      cotnum(z,stdout); //z=2

 

      multiply(x, y, z);   //z=x*y

      mip->IOBASE=16;      //将原来的10进制改为16进制模式

      cotnum(z, stdout);   //5DD

 

/*  测试13^-1 mod 2436 = 937

     x = mirvar(13);

     y = mirvar(2436);

 

     xgcd(x, y, z, z, z);

     std::couty时返回+1, x=y时返回0, x属性中->配置属性->链接器->输入->在忽略特定库中写入打不开的文件的名称libc.lib

  无法解析的外部符号 __iob :

#ifdef __cplusplusextern "C" #endifFILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]};

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3