資源簡介
RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。
RSA的算法涉及三個參數,n、e1、e2。
其中,n是兩個大質數p、q的積,n的二進制表示時所占用的位數,就是所謂的密鑰長度。
e1和e2是一對相關的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質;再選擇e2,要求(e2×e1)≡1(mod(p-1)×(q-1))。
(n,e1),(n,e2)就是密鑰對。其中(n,e1)為公鑰,(n,e2)為私鑰。
RSA加解密的算法完全相同,設A為明文,B為密文,則:A≡B^e2( mod n);B≡A^e1 (mod n);(公鑰加密體制中,一般用公鑰加密,私鑰解密)
e1和e2可以互換使用,即:
A≡B^e1 (mod n);B≡A^e2( mod n);
代碼片段和文件信息
#include
int?cs(int?aint?bint?c)
?{?
int?r=1;
b=b+1;
while(b!=1)
{
r=r*a;
r=r%c;
b--;
}
printf(“%d\n“r);
return?r;
?}
int?main()
{
?int?pqmcr;
?printf(“請輸入pq\n“);
?scanf(“%d%d“&p&q);
?int?N=p*q;
?int?L;
?L=(p-1)*(q-1);
?int?E;
?printf(“請輸入E\n“);
?scanf(“%d“&E);
?if(1>E||E>L)
?{
??printf(“請從新輸入E“);
?}
?int?D=1;
while(((E*D)%L)!=1)???
D++;
printf(“then?caculate?out?that?the?Dis?%d\n“D);
bool?flag?=?fals
- 上一篇:主存資源的分配與回收
- 下一篇:黃金礦工c語言代碼
評論
共有 條評論