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

RSA - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
fawr
2 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 45
01.05.2011, 23:06     RSA #1
бьюсь головой об стол с перерывами на обед...
вот код:
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
55
56
57
bool prost(int z)
{
    for(int i=2; i<=sqrt((float)z); i++)
        if(z%i == 0)
            return false;
    return true;
}
 
int NOD(int a,int b)
{
    if(a==b)
        return a;
    else
        if(a>b)
            return NOD(a-b,b);
        else
            return NOD(b-a,a);
}
void __fastcall TForm2::FormCreate(TObject *Sender)
{
    int eler,proverka;
    bool flag=false;
    srand((unsigned)time(NULL));
    do
        p = rand()%99+2;
    while(!prost(p));
    do
        q = rand()%99+2;
    while(!prost(q));
    Label2->Caption = "p = "+IntToStr(p)+"; q = "+IntToStr(q)+"; ";
    n = p*q;
    eler = (p-1)*(q-1);
    do
    {
        do
            e = rand()%99+2;
        while(e>eler);
        if(NOD(e,eler)==1)
            flag=true;
    }
    while(flag==false);
    Label2->Caption = Label2->Caption + "e = "+IntToStr(e)+"; ";
    flag=false;
    do
    {
        do
        {
            d = rand()%99+2;
            proverka = (e*d)%((p-1)*(q-1));
        }
        while(proverka!=1);
        if(NOD(e,d)==1)
            flag=true;
    }
    while(flag==false);
    Label2->Caption = Label2->Caption + "d = "+IntToStr(d)+";";
}
функция прост проверяет простое ли число
функция нод проверяет взаимнопростые числа или нет
и вот то ли я тупой, то ли не правильно понимаю описание этого алгоритма с википедии...
доходит до генерации Д и уходит в бесконечный цикл.
прошу помощи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2011, 23:06     RSA
Посмотрите здесь:

C++ Ключи RSA
RSA шифрование C++
C++ шифрование RSA
C++ шифр RSA
Шифрование RSA C++
C++ RSA - иероглифы
Криптография, RSA метод C++
PolarSSL RSA C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
01.05.2011, 23:09
  #2

Не по теме:

Цитата Сообщение от fawr Посмотреть сообщение
for(int i=2; i<=sqrt((float)z); i++)
круто на каждой итерации вычислять корень

fawr
2 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 45
02.05.2011, 13:53  [ТС]     RSA #3
целую руки за столь полезное замечание!!!!
однако от исправления этой нерациональности работать не начнёт...
жду помощи дальше

Добавлено через 4 часа 6 минут


Добавлено через 10 часов 22 минуты
Yandex
Объявления
02.05.2011, 13:53     RSA
Ответ Создать тему
Опции темы

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