資源簡介
RSA數字簽名源程序,可直接使用,調試方法請看readme文件。適合課程實驗所用。

代碼片段和文件信息
#include
int?egcd(int?aint?b)
{
????if(b<0)?b=b%a+a;
????int?c=0;
????int?d=1;
????int?q=a/b;
????int?r=a%b;
????int?temp;
????int?mod=a;
????while(r!=0)
????{
??????????????temp=(c-q*d)%mod;
??????????????c=d;
??????????????d=temp;
??????????????a=b;
??????????????b=r;
??????????????q=a/b;
??????????????r=a%b;?????????
????}
????return?(d<0)?(d+mod):d;
}
int?main()
{
????int?depqngn;/*ne是公鑰,pq保密d是私鑰*/
????int?m;/*m是要進行簽名的明文*/
????printf(“請輸入素數p=“?);
????scanf(“%d“&p);
????printf(“請輸入素數q=“?);
????scanf(“%d“&q);
????n=p*q;
????gn=(p-1)*(q-1);
????printf(“取e=“?);
????scanf(“%d“&e);
????d=egcd(gne);
????long?sigm=1;/*sigx表示簽名對應的y值*/
????printf(“輸入明文m=“?);
????scanf(“%d“&m);
????for(int?i=1;i<=d;i++)?sigm=(sigm*m)%n;
????printf(“通過對明文進行簽名得到sigk(m)=%d\n“sigm);
????/*驗證簽名是否合法*/
????int?ct;
????printf(“請輸入要進行合法性驗證的RSA簽名:\n“);
?????printf(“s=“?);
?????scanf(“%d“&c);
?????printf(“m=“?);?
?????scanf(“%d“&t);
????int?verxy=1;
????for(i=1;i<=d;i++)?verxy=(verxy*t)%n;
????printf(“%d\n“verxy);
????if(verxy==c)
????{?
??????printf(“(%d%d)是合法的RSA簽名\n“ct);
????}
????else
????{?
??????printf(“(%d%d)不是合法的RSA簽名\n“ct);?
????}
????getchar();
????getchar();
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????270??2012-04-23?23:18??RSA數字簽名源程序\readme.txt
?????文件???????1351??2012-04-23?21:21??RSA數字簽名源程序\rsa數字簽名.cpp
?????目錄??????????0??2012-04-23?23:18??RSA數字簽名源程序
-----------?---------??----------?-----??----
?????????????????1621????????????????????3
- 上一篇:TM4C123GH6PM最常用例程
- 下一篇:clips應用的
評論
共有 條評論