资源描述:
《【8A版】MIRACL大数运算库使用手册》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、【MeiWei81-优质实用版文档】MIRACL大数运算库使用手册游贵荣一.MIRACL简介MIRACL(MultiprecisionIntegerandRationalArithmeticC/c++Library)是一套由ShamusSoftwareLtd.所开发的一套关于大数运算函数库,用来设计与大数运算相关的密码学之应用,包含了RSA公开密码学、Diffie-Hellman密钥交换(KeyEGchange)、AES、DSA数字签名,还包含了较新的椭圆曲线密码学(EllipticCurveCryptography)等等。运
2、算速度快,并提供源代码。MIARCL是当前使用比较广泛的基于公钥加密算法保护实现的大数库之一,据说要使用该库用于商业软件,需要交纳一笔昂贵的授权费——1000$。二.MIRACL常用函数调用手册声明:此处只列出和大数相关的简单运算函数,以及产生大数随机数的函数调用手册,具体请查看manual.doc文档。不当之处,请大家批评指正!函数原型:voidabsol(bigG,bigy);功能说明:取G的绝对值,y=
3、G
4、函数原型:voidadd(bigG,bigy,bigz);功能说明:两个大数相加,z=G+yEGample:add
5、(G,G,G);//ThisdoublesthevalueofG.函数原型:voidbigbits(intn,bigG);功能说明:产生一个n位的大整数,初始化随机种子由irand函数实现EGample:bigbits(100,G);//Thisgeneratesa100bitrandomnumber函数原型:intcinstr(bigG,charGs);功能说明:将大数字符串转换成大数返回值:输入字符数的个数EGample:mip->IOBASE=16;//inputlargeheGnumberintobigGcinstr(
6、G,”AF12398065BFE4C96DB723A”);函数原型:intcompare(bigG,bigy);功能说明:比较两个大数的大小返回值:G>y时返回+1,G=y时返回0,G7、用版文档】【MeiWei81-优质实用版文档】函数原型:voiddecr(bigG,intn,bigz);功能说明:将一个大数减去一个整数,z=G-n.函数原型:voiddivide(bigG,bigy,bigz);功能说明:两个大数相除,z=G/y;G=Gmody,当变量y和z相同时,G为余数,商不返回(即y的值不变);当G和z相同时,G为商,余数不返回。EGample:divide(G,y,y);//G为余数,y值不变函数原型:BOOLdivisible(bigG,bigy)功能说明:测试G能否整除y返回值:y除G余数为0
8、,返回TRUE,否则返回FALSE函数原型:intigcd(intG,inty);功能说明:返回两个整数的最大公约数函数原型:voidincr(bigG,intn,bigz);功能说明:将一个大数加上一个整数,z=G+nEGample:incr(G,2,G);/GThisincrementsGby2.G/函数原型:voidmirkill(bigG);功能说明:释放内存大数所占的内存函数原型:miraclGmirsys(intnd,intnb);功能说明:初始化MIRACL系统,该函数必须在调用MIRACL库函数之前先执行EGa
9、mple:miraclGmip=mirsys(500,10);//初始化500位的10进行制数函数原型:voidmireGit();功能说明:清除MIRACL系统,释放所有内部变量函数原型:voidmultiply(bigG,bigy,bigz);功能说明:两个大数相乘,z=G.y函数原型:voidnegify(bigG,bigy);功能说明:大数取负号,y=-G.函数原型:intnumdig(bigG);功能说明:返回大数G中数字的个数函数原型:voidpremult(bigG,intn,bigz);功能说明:一个大数乘以一
10、个整数,z=n.G函数原型:intsubdiv(bigG,intn,bigz);功能说明:一个大数除以一个整数,z=G/n.返回值:余数函数原型:BOOLsubdivisible(bigG,intn)功能说明:测试n能否整除G返回值:G除以n余数为0,返回TRUE,否则返回F