在老師講到rsa演算法時寫的,主要用於解題:
#include #includebool prime(int
t); \\判斷傳入的值是否是素數
void d(int &d, int &z); \\計算出d的值
void e(int &e, int d, int
z); \\計算出e的值
void k(int &k, int
n); \\計算出k的值
int squ(int
t); \\返回2的t次方
int main(void
)
n = p*q;
z = (p - 1)*(q-1
); printf(
"n=%d*%d=%d, z=(%d-1)*(%d-1)=%d\n
", p, q, n, p, q, z);
d(d, z);
printf(
"d=%d\n
", d);
e(e, d, z);
printf(
"e=%d\n
", e);
printf(
"公鑰:(%d,%d)\n私鑰:(%d,%d)\n
", e, n, d, n);
k(k, n);
printf(
"k=%d\n
", k);
printf(""
); system(
"pause");
return0;
}
其他的自己寫的函式:
bool prime(int t)} return true;
}void d(int &d, int &z)
if(t == z)
}d += 2; }}
void e(int &e, int d, int z)
} return;
}void k(int &k, int n)
} return;
}int squ(int t)
return sum;
}
RSA加密演算法
素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。例如,15 3 5,所以15不是素數 又如,12 6 2 4 3,所以12也不是素數。另一方面,13除了等於13 1以外,不能表示為其它任何兩個整數的乘積,所以13是乙個素數。素數也稱為 質數 二 什麼是 互質數...
RSA加密演算法
演算法的描述 1.選取兩個素數p,q 2.計算n p q,fn p 1 q 1 3.選擇乙個整數e,使得e與fn的最大公約數為1,e將會用於對資料進行加密。4.計算出乙個整數d,使得d e除fn的餘數為1。d用於對密文進行解密,還原出明文。5.假設明文為m,密文為c。如果需要對原文進行加密,則進行如...
RSA加密演算法
一 rsa是公鑰加密演算法之一,該演算法的數學基礎是 1 初等數論的euler定理,即 若整數a與整數n互素,則a n 1 mod n 其中,n 為尤拉函式。2 大整數分解很困難,即給定乙個大整數n,將其分解為n p q,兩個素數乘積十分困難。二 rsa基本原理 1 金鑰的生成。選擇大素數p,q,計...