Advertisement
Soverein

Untitled

Jan 7th, 2021
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. #include<iostream>;
  2. #include<math.h>;
  3. using namespace std;
  4. int main()
  5. {
  6. int q, p, n,f_n,e,d,m,c;
  7. cout << "Enter p and q";
  8. cout << "enter p" << endl;
  9. cin >> p;
  10. cout << "enter q" << endl;
  11. cin >> q;
  12. n = p * q;
  13. for (int i = q; i > 0; i--)
  14. {
  15. if (q % i == 0 && p % i == 0)
  16. cout << "nod = " << i;
  17. if (i =! 1)
  18. cout << "bed numbers, enter again please";
  19. break;
  20. }
  21. cout << "our mod n =" << n<<endl;
  22. f_n = (p - 1) * (q - 1);
  23. cout << "Euler`s is = " << f_n << endl;
  24. cout << "choose e : ";
  25. cin >> e; /*Вибирається довільне число e (e < n) таке, що 1 < e < φ(n) і e не
  26. має з числом φ(n) інших спільних дільників, крім 1 (тобто воно є взаємно простим з ним). */
  27. for (int i = f_n; i > 0; i--)
  28. {
  29. if (e % i == 0 && f_n % i == 0)
  30. cout << "nod = " << i;
  31. if (i = !1)
  32. cout << "bed numbers, enter again please";
  33. break;
  34. }
  35. cout << "now enter d :";
  36. cin >> d;
  37. //if ((d * e) % n == 1)
  38. cout << "our open key (e,n) (" << e << ", " << n <<")"<< endl;
  39. cout << " secret key (d,n) ("<< d << "," << n<< ")" << endl;
  40. cout << " now code our word" <<endl<< "enter message m" << endl;;
  41. // cin >> m;
  42. c = pow(m, e) ;
  43. c = c % n;
  44. cout << "c =" << c<<endl;
  45. cout << "encode :"<<endl;
  46. m = pow(c, d);
  47. m = m % n;
  48. cout << "our real message is :" << m << endl;;
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement