Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.80
Nastyik
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 16
17.04.2013, 10:06     RSA, Расширенный алгоритм Евклида. Код на С++ #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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2013, 10:06     RSA, Расширенный алгоритм Евклида. Код на С++
Посмотрите здесь:

необычный алгоритм евклида C++
Алгоритм Евклида с использованием рекурсии C++
C++ Алгоритм Евклида
Алгоритм Евклида + системы счисления C++
C++ алгоритм евклида
Алгоритм Евклида C++
Расширенный алгоритм Евклида C++
Алгоритм Евклида. Переведите с Паскаля на С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
21.11.2013, 19:37     RSA, Расширенный алгоритм Евклида. Код на С++ #2
расширенный алгоритм Евклида дает на выходе НОД и коэффициенты x, y, а простой только НОД))
Yandex
Объявления
21.11.2013, 19:37     RSA, Расширенный алгоритм Евклида. Код на С++
Ответ Создать тему
Опции темы

Текущее время: 23:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru