美文网首页
RSA C语言实现

RSA C语言实现

作者: porridgechen890 | 来源:发表于2019-10-04 22:51 被阅读0次
#include <iostream>
using namespace std;

//判断互质,返回值为1则互质
int mgcd(int a,int b)
{
    int t;
    if(a<b)
    {
        t=a;a=b;b=t;
    }
    while(a%b)
    {
        t=b;
        b=a%b;
        a=t;
    }
    return b;
}

//加密和解密
int jiami(int m, int e, int n)
{
    int r = 1;
    e = e + 1;
    while (e != 1)
    {
        r = r * m;
        r = r % n;
        e--;
    }
    return r;
}

int main(int argc, const char * argv[]) {
    
    int p,q;
    cout << "input p:";
    cin >> p;
    cout << "input q:";
    cin >> q;
    while (mgcd(p, q) != 1){
        cout << "input p:";
        cin >> p;
        cout << "input q:";
        cin >> q;
    };
    
    
    //n
    int n = p * q;
    cout << "(1) n = " << n << endl;
    
    //l
    int l = (p - 1) * (q - 1);
    cout << "(2) l = " << l << endl;
    
    //e
    int e = 0;
    for (int i = 2; i < l; i++)
    {
        if (1 == mgcd(l, i))
        {
            e = i;
            break;
        }
    }
    cout << "(3) e = " << e << endl;
    
    //d
    int d = 1;
    while (((e * d) % l) != 1){
        d++;
    };
    cout << "(4) d = " << d << endl;
    
    //public(e,n) private(d,n)
    int m = 0;
    cout << "input MingWen(m,MingWen < n):";
    cin >> m;
    while (m >= n)
    {
        cout << "input MingWen(m,MingWen < n):";
        cin >> m;
    };
    
    int miwen = jiami(m, e, n);
    cout << "mi wen:" << miwen << endl;
    
    int mingwen = jiami(miwen, d, n);
    cout << "ming wen:" << mingwen << endl;
    
    return 0;
}

相关文章

  • RSA C语言实现

  • RSA算法原理(作者: 阮一峰)

    RSA算法原理(一) RSA算法原理(二) RSA C算法实现【 看雪安全论坛】

  • RSA算法C语言实现

    一、源文件三个rsa.h , rsa.c, main.c //rsa.h #include #define MAX...

  • Java 实现 RSA 加密

    本文介绍 RSA 加密的原理、示例、安全性分析及 Java 语言实现。 目录 RSA 简介原理示例安全性常见用途 ...

  • JAVA加解密16-非对称加密算法-RSA算法

    一、概述1.RSA是基于大数因子分解难题。目前各种主流计算机语言都支持RSA算法的实现2.java6支持RSA算法...

  • RSA算法C实现说明

    RSA算法它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命...

  • C++ 实现RSA加密

    背景: 因项目需要,要做一个调用短信接口发送短信的功能。需要实现一个功能是,给定一个字符串,给定一个密钥对。实现R...

  • Java实现简单的链表-面向初学者

    很久之前用C语言实现过链表,现在已经太久没用C语言。就先用JAVA实现一个简单链表好了,还是使用最原始的C语言实现...

  • Foundation对象和Core Foundation对象有什

    Foundation对象是OC对象,使用OC语言实现;Core Foundation对象是C对象,使用C语言实现。...

  • 0x7e相关转义

    PPP数据成帧转义,C语言实现 PPP数据成帧转义,JAVA语言实现 串口数据成帧转义,C语言实现 串口数据成帧转...

网友评论

      本文标题:RSA C语言实现

      本文链接:https://www.haomeiwen.com/subject/xrzspctx.html