Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
9 / 9 / 2
Регистрация: 07.05.2013
Сообщений: 227
1
RAD XE3+

Криптоанализ RSA (безключевое чтение). Ускорить алгоритм

10.02.2018, 21:41. Показов 838. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Ломаю голову над такой задачей, как ускорить текущий алгоритм? Работает вот так, если кто не знает.
C^(e^j) mod N = C. - находим j
C^(e^(j-1)) mod N = M. - расшифровываем сообщение

На маленьких числах работает замечательно, на больших - терпения не хватает ждать.
Вот код, посоветуйте плз, как мне быть.
Delphi
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
procedure TForm1.Button10Click(Sender: TObject);
var C1,i:Integer;
    str:string;
    j,e1:Integer;
begin
 
  i:=1;
  str:='';
  e1:=1;
  while M_Ctext.Text[i]<>' ' do
  begin
     str:=str+M_Ctext.Text[i];
     inc(i);
  end;
  C1:=StrToInt(str);
  C:=1;
 
  //найдем число j
  j:=0;
  str:='';
  while (True) do
  begin
    Inc(j);
    e1:=(e1*e);
    C:=1;
 
    for i := 1 to e1 do
      begin
        C:=C*C1 mod N;
      end;
 
    str:=str+'e = '+IntToStr(e1)+#10#13;
    if C = C1 then
    begin
      M_bezKey.Lines.Add('j = '+IntToStr(j));
      Dec(j);
      //str:='';
      e1:=1;
      Break;
    end;
  end;
  ShowMessage(str);
  str:='';
  //найдем новую степень
  for I := 1 to j do
    begin
      e1:=(e1*e);
    end;
    
   C1:=1; 
  //Расшифровываем
  for I := 1 to Length(M_Ctext.Text) do
    begin
      if M_Ctext.Text[i]<>' ' then str:=str+M_Ctext.Text[i]
      else
      begin
        C:=StrToInt(str);
 
        for j := 1 to e1 do
          begin
            C1:=(C1*C) mod N;
          end;
       M_bezKey.Text:=M_bezKey.Text+Chr(C1)+'('+IntToStr(C1)+')';
 
        str:='';
        C1:=1;
      end;
 
    end;
  
 
 
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2018, 21:41
Ответы с готовыми решениями:

Криптоанализ RSA
Объясните пожалуйста по коду: - что подаётся на вход функций Encryption, Decryption - откуда...

RSA алгоритм
можете объяснить как правильно использовать сие алгоритм в C# с использование встроенных классов....

Алгоритм RSA
Помогите плиз!!!! Как в VBA реализовать аглогритм RSA?????

Алгоритм RSA
Всем привет, нужна помощь с алгоритмом Есть серверное приложение и клиентские, нужно защитить...

1
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
11.02.2018, 09:48 2
Для нахождения степеней используй функцию IntPower из модуля Math. У неё сложность O(logN), то есть для возведения скажем в 256 степень потребуется всего 8 умножений.

Ну и вот - Возведение в степень по модулю. Большие числа
2
11.02.2018, 09:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2018, 09:48
Помогаю со студенческими работами здесь

Алгоритм RSA
Всем привет. Вот пытаюсь изобрести велосипед))) Короче почти все работает, сообщение шифруется,...

Алгоритм RSA
Кто чтото может сказать про алгоритм RSA? У ково есть сам алгоритм RSA? У ково есть хоть на...

Алгоритм RSA
В учебнике есть порядок выполнения действий для реализации алгоритма шифрования RSA: ...

Алгоритм RSA
я пыталась реализовать алгоритм RSA. все работает, кроме последнего M. . знаю, что ужасный код, но...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru