设为首页 加入收藏

TOP

C语言:rsa算法原理 (三)
2014-11-24 00:40:23 来源: 作者: 【 】 浏览:123
Tags:语言 :rsa 算法 原理
-失败,1-成功。

N. 大数的乘法

gChar gMul(gBigInt *a, gBigInt *b);//乘

功能:对大数a和大数b进行乘法运算,考虑它们的符号。

参数:

a:传入一个大数,传出相乘的结果。

b:传入另一个大数。

返回值:0-失败,1-成功。

gChar gMulInt(gBigInt *a, gSInt b);

功能:对大数a和整数b进行乘法运算,考虑它们的符号。

参数:

a:传入一个大数,传出相乘的结果。

b:传入一个一般整数。

返回值:0-失败,1-成功。

O. 大数的除法

gChar gDiv(gBigInt *a, gBigInt *b);//除

功能:对大数a和大数b进行除法运算,考虑它们的符号。

参数:

a:传入一个大数,传出相除的结果。

b:传入另一个大数。

返回值:0-失败,1-成功。

gChar gDivInt(gBigInt *a, gSInt b);

功能:对大数a和整数b进行除法运算,考虑它们的符号。

参数:

a:传入一个大数,传出相除的结果。

b:传入一个一般整数。

返回值:0-失败,1-成功。

P. 大数的取余

gChar gMod(gBigInt *a, gBigInt *b);//取余

功能:对大数a和大数b进行取余运算,考虑它们的符号。

参数:

a:传入一个大数,传出取余的结果。

b:传入另一个大数。

返回值:0-失败,1-成功。

gChar gModInt(gBigInt *a, gSInt b);

功能:对大数a和整数b进行取余运算,考虑它们的符号。

参数:

a:传入一个大数,传出取余的结果。

b:传入一个一般整数。

返回值:0-失败,1-成功。

Q. 欧几里德算法

gChar gEuc(gBigInt *a,gBigInt *b);//欧几里德算法

功能:对大数a和大数b执行欧几里德算法,结果放到a中。即用辗转相除的思想,求满足aX≡1 MOD b的X的值,也即求满足aX-bY=1的较小的大数X和Y的值。

其中用到了递归的思想,运算后,大数a和大数b,都改变了。

参数:

a:传入一个大数,传出满足aX-bY=1的X的值。

b:传入另一个大数,传出满足aX-bY=1的Y的值

返回值:0-失败,1-成功。

R. 蒙格马利算法

gChar gMon(gBigInt *a, gBigInt *b, gBigInt *c);//蒙格马利算法

功能:对大数a,大数b和大数c执行蒙格马利算法,结果放到a中。

即用指数降阶的思想,求算式a^b MOD c的值。至于降阶的原理,请参考相关书籍。

参数:

a:传入一个大数,传出运算的结果。

b:传入另一个大数。

c:传入第三个大数。

返回值:0-失败,1-成功。

S. 最大公约数

gChar gGcd(gBigInt *a, gBigInt *b);//最大公约数

功能:用辗转相除法,求大数a和大数b的最大公约数。

参数:

a:传入一个大数,传出a和b的最大公约数

b:传入另一个大数。

返回值:0-失败,1-成功。


摘自 脉凌网络
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇信号究竟发给谁 下一篇数字转换成指定进制的数字字符串

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: