加载中…
个人资料
elecs
elecs
  • 博客等级:
  • 博客积分:0
  • 博客访问:53,097
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

VisualStudio下编译和使用Miracl

(2018-12-28 10:39:44)
标签:

杂谈

分类: 信息安全

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

         下面说明怎样在windows32平台下使用MIRACL 

一、 编译生成miracl.lib

1.       github获取miracl的源码MIRACL-master.zip   https://github.com/miracl/MIRACL

2.       Visual Studio 2005中进行编译。

——新建项目miracl,选择“静态库”,不使用预编译头。

——点击“头文件”选项夹,除了选择miracl.hmirdef.h外,还要加上big.h, ec2.h, ecn.h, flash.h, zzn.h

VisualStudio下编译和使用Miracl

——点击“源文件”选项夹,添加现有项。从下载的MIRACL-master.zip中添加源码文件。

此处需要注意,在添加source file的时候请参照ms32doit.bat 里面的C 文件列表。

mrcore.c

mrarth0.c

mrarth1.c

mrarth2.c

mralloc.c

mrsmall.c

mrio1.c

mrio2.c

mrgcd.c

mrjack.c

mrxgcd.c

mrarth3.c

mrbits.c

mrrand.c

mrprime.c

mrcrt.c

mrscrt.c

mrmonty.c

mrpower.c

mrsroot.c

mrcurve.c

mrfast.c

mrlucas.c

mrzzn2.c

mrzzn2b.c

mrzzn3.c

mrzzn4.c

mrshs.c

mrshs256.c

mrshs512.c

mrsha3.c

mrfpe.c

mraes.c

mrgcm.c

mrstrong.c

mrbrick.c

mrebrick.c

mrgf2m.c

mrec2m.c

mrecn2.c

mrflash.c

mrfrnd.c

mrdouble.c

mrround.c

mrbuild.c

mrflsh1.c

mrpi.c

mrflsh2.c

mrflsh3.c

mrflsh4.c

mrmuldv.c

big.cpp

zzn.cpp

ecn.cpp

ec2.cpp

brute.cpp

brent.cpp

pk-demo.cpp

bmark.c

flash.cpp

——点击“生成”,编译生成了miracl.lib

VisualStudio下编译和使用Miracl

二、使用miracl

1.  打开VS 2005,创建一个新的win32控制台应用,不使用预编译头

2.  添加miracl文件夹下include文件夹路径及生成miracl.lib文件的路径

VisualStudio下编译和使用Miracl

VisualStudio下编译和使用Miracl

之后在“附加依赖项”输入miracl.lib;隔开

VisualStudio下编译和使用Miracl

之后,添加MIRACL-master.zip中的示例文件:brent.c

VisualStudio下编译和使用Miracl

运行结果

VisualStudio下编译和使用Miracl

也可以自己输入如下代码进行测试

#include "miracl.h"

#include

int _tmain(int argc, _TCHAR* argv[])

{

    int i;

    big x,y,z;

 

    miracl *mip = mirsys(1000, 16);

    x = mirvar(0);

    y = mirvar(0);

    z = mirvar(0);

 

    bigbits(100, x);

    bigbits(100, y);

    bigbits(100, z);

    add(x, y, z);

    cotnum(z, stdout);

 

    return 0;

}

运行结果如下,每次生成的不一定一样,因为三个大数是随机生成的。

VisualStudio下编译和使用Miracl

备注:如果使用的为Vistual Studio 2017等编译器,则指定include路径和miracl.lib文件路径的界面会不一样。

VisualStudio下编译和使用Miracl

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有