Форум программистов, компьютерный форум, киберфорум
Наши страницы

RSA, Расширенный алгоритм Евклида. Код на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы. Получите третий массив по правилу, Найдите в новом массиве минимальное значение и сумму всех элементов http://www.cyberforum.ru/cpp-beginners/thread840276.html
Сформируйте два массива, по t элементов в каждом, с помощью датчика случайных чисел. Получите третий массив по правилу: каждый элемент нового массива равен абсолютному значению ...
C++ Найдите общее количество собранного картофеля Найдите общее количество собранного картофеля. Результаты сбора картофеля и названия бригад хранятся в соответствующих массивах. Определите названия бригад и количество ... http://www.cyberforum.ru/cpp-beginners/thread840274.html
Создать линейный список по уже имеющийся структуре "Записная книжка" C++
У меня довольно таки сложная последняя лабораторная.(для меня, по крайней мере) Нужно создать линейный список по уже имеющийся структуре(это у меня было в первой лабе) 1. Линейный список а)...
C++ В массив B[n] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному f
В массив B занесены натуральные числа. Найти сумму тех элементов, которые кратны данному f. Добавлено через 55 минут В массив B занесены натуральные числа. Найти сумму тех элементов, которые...
C++ разработать программу, позволяющую расшифровать файл по паролю, вводимому пользователем http://www.cyberforum.ru/cpp-beginners/thread840265.html
Здравствуйте! Задали лабу. НУЖНО зашифровать текстовый файл по произвольному паролю и разработать программу, позволяющую расшифровать файл по паролю, вводимому пользователем. В случае успешной...
C++ Какой unicode у коньюнкции? (wchar_t)0x2227 выводит квадрат. подробнее

Показать сообщение отдельно
Nastyik
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 16

RSA, Расширенный алгоритм Евклида. Код на С++ - C++

17.04.2013, 10:06. Просмотров 3562. Ответов 1
Метки (Все метки)

Доброго времени суток ,форумчане)

тут такой вопрос:
есть Расширенный алгоритм Евклида.
( кто сможет простым языком разъяснить ,как правильно пользоваться расширенным алгоритмом Евклида.Как им считать? )
Из этого вытекает следующий вопрос:

Есть RSA (необходимо реализовать алгоритм RSA. И опять же, для него нужен расширенный алгоритм Евклида. А так же стопор возникает на обратном элементе по модулю.)

Объясните ,как считать? а может программно получится.
Есть такая программка расширенного алгоритма+обычного(взятая с просторов интернет.
Может возможно в неё какую-нибудь функцию вписать для определения обратного элемента по модулю?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <cmath>
using namespace std;
 
int gcd(int a, int b) {
   int t;
   while (b) {
     t = a % b;
     a = b;
     b = t;        
   }
   return abs(a);
}
 
int ext_gcd(int a, int b, int& x, int& y)
{
   int q, r, x1, x2, y1, y2,d;
   if (b == 0) {
      d = a, x = 1, y = 0;
      return d;
   }
   x2 = 1, x1 = 0, y2 = 0, y1 = 1;
   while (b > 0) {
      q = a / b, r = a - q * b; 
      x = x2 - q * x1, y = y2 - q * y1; 
      a = b, b = r; 
      x2 = x1, x1 = x, y2 = y1, y1 = y;
   }
   d = a, x = x2, y = y2;
   return abs(d);
  
}
 
 
int main(){
    
    int a, b, x, y;
    char flag='y';
    cout << "Eta programma nahod NOD\n";
    while(flag=='y'||flag == 'Y'){
        cout << "Vvedite dannie\na = ";
        cin >> a;
        cout <<"b = ";
        cin >> b;
        cout << "NOD(" << a << "," << b << ")=" <<gcd(a,b) << " (algoritm Evklida)"<<endl;
        cout << "NOD(" << a << "," << b << ")=" <<ext_gcd(a,b,x,y) << " (rashirenniy algoritm Evklida)"<<endl;
        cout << "x = " << x << endl;
        cout << "y = " << y << endl;
        cout << "Obr po mod " << x <<endl;
        cout << "Najmite [y] dlya povtora\n";
        cin >> flag;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.