RSA 公钥加密算法C++模拟

RSA密钥设置算法:

  1. 随机选择两个大素数p,q,计算其乘积n,n就是加密和解密时的模
  2. 计算n的欧拉函数值 Ω(n)
  3. 选择与n互素的加密密钥e,e满足1 < e < Ω(n) 且 gcd(e,Ω(n)) =1
  4. 公钥:{e,n}
  5. 计算e关于Ω(n)的乘法逆元d
  6. 私钥:{d,n}
  7. 公布公钥,保留私钥。

代码实现(不现实,只是体现思想)

#include 
#include 
using namespace std;

struct RSAKey {
    int key,mod;
    RSAKey(int a,int b): key(a),mod(b) {}
    void show() {
        cout << "{" << key << "," << mod <<"}" <> a;
    while(!isPrime(a)) {
        cout << "您输入的不是质数,请再重新输入:";
        cin >> a;
    }
    cout << "请您再输入1个质数:" ;
    cin >> b;
    while(!isPrime(b)) {
        cout << "您输入的不是质数,请再重新输入:";
        cin >> b;
    }
    if(a > b) swap(a,b);
    cout << "正在计算:Loading..." <

RSA 公钥加密算法C++模拟_第1张图片

进一步解释RSA:
RSA 公钥加密算法C++模拟_第2张图片
RSA 公钥加密算法C++模拟_第3张图片
RSA 公钥加密算法C++模拟_第4张图片
RSA 公钥加密算法C++模拟_第5张图片

你可能感兴趣的:(大一/大二程序设计题收录,(已停更))