Важная информация
Показано с 1 по 3 из 3

Тема: Шифр ДиффиХельмана цыклицца как исправить?

  1. #1 Шифр ДиффиХельмана цыклицца как исправить? 
    Новичок
    Регистрация
    13.12.2018
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    C# Code:
    1. using System;
    2.  
    3. namespace ConsoleApp4
    4. {
    5. class Program
    6. {
    7. public const int i = 2, i1 = 100;
    8. static int _n2()
    9. {
    10. int n2 = 0;
    11. Random ran = [Ссылки могут видеть только зарегистрированные пользователи. ] Random();
    12. return n2 = ran.Next(i, i1);
    13. }
    14. static int _n1()
    15. {
    16. int n1 = 0;
    17. Random ran1 = [Ссылки могут видеть только зарегистрированные пользователи. ] Random();
    18. return n1 = ran1.Next(i, i1);
    19. }
    20. static int _n3()
    21. {
    22. int n3 = 0;
    23. Random ran2 = [Ссылки могут видеть только зарегистрированные пользователи. ] Random();
    24. return n3 = ran2.Next(i, i1);
    25. }
    26. static void Main(string[] args)
    27. {
    28. Console.WriteLine("формула для шифрования\nY1=A^x1 mod P\nY2=A^x2 mod P\nZ=Y2^X1 mod P\nZ=Y1^x2 mod P");
    29.  
    30.  
    31. int n1 = 0, n2 = 0, n3 = 0, o = 0, ty = 0;
    32. Console.WriteLine("введите число для шифрования");
    33. int t = 0;
    34. t = Convert.ToInt32(Console.ReadLine());
    35. m123:
    36.  
    37. n2 = _n2();
    38. m5:
    39. n1 = _n1();
    40. n3 = _n3();
    41.  
    42. u: if (n2 >= n3) { n2 = _n2(); goto u; }
    43. if (n1 >= n3) { goto m5; }
    44.  
    45. p1: if (n3 != 2 * n2 + 1) { n3 = _n3(); goto p1; }
    46. double y12 = Math.Pow(n1, n2) % n3;
    47. o = _n3();
    48. double y13 = Math.Pow(n1, o) % n3;
    49. if (y12 == 1 | y13 == 1) { goto m123; }
    50.  
    51. double h = Math.Pow(y13, n2) % n3;
    52. double h1 = Math.Pow(y12, o) % n3;
    53. Console.WriteLine(ty = ty + 1);
    54. if (t != h) { goto m123; }
    55.  
    56. Console.WriteLine("Пользователь 1:коэффициенты для шифрования числа " + t + " это " + n1 + "^" + n2 + " mod " + n3);
    57. }
    58. }
    59. }
    Последний раз редактировалось >Quiet Snow<; 14.12.2018 в 05:46.
    Ответить с цитированием  
     

  2. #2  
    Admin
    Регистрация
    09.04.2014
    Сообщений
    1,220
    Сказал(а) спасибо
    781
    Поблагодарили 493 раз(а) в 405 сообщениях
    вставьте код
    так трудней читать, уважайте тех кого просите помочь!
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    >Quiet Snow< (14.12.2018)

  4. #3  
    Профи
    Регистрация
    09.11.2013
    Сообщений
    295
    Сказал(а) спасибо
    17
    Поблагодарили 81 раз(а) в 55 сообщениях
    патмушта утя n2 равно n3 хоть ты и саздайош разные генераторы они генерируют одно чесло от потесть свой код с дебажными вставками
    C# Code:
    1. using System;
    2.  
    3. namespace ConsoleApp4 {
    4.  
    5.     class Program {
    6.  
    7. public const int i = 2, i1 = 100;
    8.  
    9. static int _n2() {
    10.     int n2 = 0;
    11.     Random ran = [Ссылки могут видеть только зарегистрированные пользователи. ] Random();
    12.     return n2 = ran.Next(i, i1);
    13. }
    14.  
    15. static int _n1() {
    16.     int n1 = 0;
    17.     Random ran1 = [Ссылки могут видеть только зарегистрированные пользователи. ] Random();
    18.     return n1 = ran1.Next(i, i1);
    19. }
    20.  
    21. static int _n3()
    22. {
    23.     int n3 = 0;
    24.     Random ran2 = [Ссылки могут видеть только зарегистрированные пользователи. ] Random();
    25.     return n3 = ran2.Next(i, i1);
    26. }
    27.  
    28. static void Main(string[] args) {
    29.     Console.WriteLine("формула для шифрования\nY1=A^x1 mod P\nY2=A^x2 mod P\nZ=Y2^X1 mod P\nZ=Y1^x2 mod P");
    30.  
    31.  
    32.     int n1 = 0, n2 = 0, n3 = 0, o = 0, ty = 0;
    33.     Console.WriteLine("введите число для шифрования");
    34.     int t = Convert.ToInt32(Console.ReadLine());
    35.  
    36.     m123:
    37. n2 = _n2();
    38. Console.WriteLine("\nn2 = ");
    39. Console.WriteLine(n2);
    40.  
    41.     m5:
    42. n1 = _n1();
    43. n3 = _n3();
    44.  
    45. Console.WriteLine("\nn3 = ");
    46. Console.WriteLine(n3);
    47.  
    48. int _catch = Convert.ToInt32(Console.ReadLine());
    49.               
    50.  
    51.     u:
    52. if (n2 >= n3) {
    53.     n2 = _n2();
    54.     Console.WriteLine("\nReturn to u:");
    55.     goto u;
    56. }
    57. if (n1 >= n3) { goto m5; }
    58.  
    59.     p1:
    60.         if (n3 != 2 * n2 + 1) { n3 = _n3(); goto p1; }
    61.  
    62. double y12 = Math.Pow(n1, n2) % n3;
    63. o = _n3();
    64. double y13 = Math.Pow(n1, o) % n3;
    65. if (y12 == 1 | y13 == 1) { goto m123; }
    66.  
    67. double h = Math.Pow(y13, n2) % n3;
    68. double h1 = Math.Pow(y12, o) % n3;
    69. Console.WriteLine(ty = ty + 1);
    70. if (t != h) { goto m123; }
    71.  
    72.     Console.WriteLine("Пользователь 1:коэффициенты для шифрования числа " + t + " это " + n1 + "^" + n2 + " mod " + n3);
    73. }
    74.     }
    75. }
    Ответить с цитированием  
     

  5. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (14.12.2018), Free Admin (17.12.2018)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Помогите исправить button
    от АлександрDev в разделе HTML, CSS
    Ответов: 4
    Последнее сообщение: 13.04.2018, 12:39
  2. Помогите исправить
    от FreeWoT в разделе PHP
    Ответов: 3
    Последнее сообщение: 08.10.2014, 11:00
  3. Надо бы исправить ресайз
    от >Quiet Snow< в разделе FreeBasic
    Ответов: 2
    Последнее сообщение: 31.10.2013, 08:46
  4. Помогите исправить код программы
    от azalivin в разделе QBasic
    Ответов: 3
    Последнее сообщение: 10.05.2011, 18:52
  5. Ответов: 3
    Последнее сообщение: 05.03.2011, 23:46
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •