Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>;
- #include<math.h>;
- using namespace std;
- int main()
- {
- int q, p, n,f_n,e,d,m,c;
- cout << "Enter p and q";
- cout << "enter p" << endl;
- cin >> p;
- cout << "enter q" << endl;
- cin >> q;
- n = p * q;
- for (int i = q; i > 0; i--)
- {
- if (q % i == 0 && p % i == 0)
- cout << "nod = " << i;
- if (i =! 1)
- cout << "bed numbers, enter again please";
- break;
- }
- cout << "our mod n =" << n<<endl;
- f_n = (p - 1) * (q - 1);
- cout << "Euler`s is = " << f_n << endl;
- cout << "choose e : ";
- cin >> e; /*Вибирається довільне число e (e < n) таке, що 1 < e < φ(n) і e не
- має з числом φ(n) інших спільних дільників, крім 1 (тобто воно є взаємно простим з ним). */
- for (int i = f_n; i > 0; i--)
- {
- if (e % i == 0 && f_n % i == 0)
- cout << "nod = " << i;
- if (i = !1)
- cout << "bed numbers, enter again please";
- break;
- }
- cout << "now enter d :";
- cin >> d;
- //if ((d * e) % n == 1)
- cout << "our open key (e,n) (" << e << ", " << n <<")"<< endl;
- cout << " secret key (d,n) ("<< d << "," << n<< ")" << endl;
- cout << " now code our word" <<endl<< "enter message m" << endl;;
- // cin >> m;
- c = pow(m, e) ;
- c = c % n;
- cout << "c =" << c<<endl;
- cout << "encode :"<<endl;
- m = pow(c, d);
- m = m % n;
- cout << "our real message is :" << m << endl;;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement