主题:求大数模幂乘运算 c语言代码
angueyuan
[专家分:0] 发布于 2010-06-03 11:36:00
我想搞一个密码,但要求a的b次方再对n求余的算法~~~~~
请高手帮忙~~~
感激不尽~~~~
或者把一下代码给我翻译成c语言代码:
c<-0;d<-1
for i<-k downto 0
do c<-2*c
d<-(d*d)mod n
if bi=1
then c<-c+1
d<-(d*a)mod n
return d
回复列表 (共6个回复)
沙发
bruceteen [专家分:42660] 发布于 2010-06-03 15:15:00
你的代码实在是看不懂什么意思
“求a的b次方再对n求余的算法”很简单
x = 1; // 0次方
x = (x*a)%n; // 1次方
x = (x*a)%n; // 2次方
x = (x*a)%n; // 3次方
………………
板凳
angueyuan [专家分:0] 发布于 2010-06-03 20:17:00
谢谢啦
我其实是想做那个RSA密码;里面有一个求很大指数的求余
如:80d12次方对125求余
3 楼
雪光风剑 [专家分:27190] 发布于 2010-06-03 20:39:00
RSA用软件实现的话算法要经过设计,而且不经过大量优化的话,1024位的密钥你的代码效率就比较让人难以忍受了,如果不是特别需要的话,建议还是选择简单一些的算法吧
至于那段伪代码,除了<-需要翻译成赋值号之外,没什么难理解的地方了, 自己可以试试看
4 楼
z9895512 [专家分:0] 发布于 2010-06-05 10:18:00
c函数库有求 a的b次方的算法啊
double pow(double x,double y)
5 楼
angueyuan [专家分:0] 发布于 2010-06-06 10:43:00
其实就是一个作业 加密一个数字就行咯
6 楼
雪光风剑 [专家分:27190] 发布于 2010-06-06 12:11:00
那段伪代码你为什么不自己翻译呢,汗
我来回复