На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Шифрование с помощью открытого и закрытого ключа. Метод Эль Гамаля С#

Задание

Написать программу зашифровки и дешифровки текста методом Эль Гамаля

Функционал программы

  • Шифрование текста(английский)
  • Дешифровка текста
  • Выдача используемых ключей для шифрования и дешифрования.

Содержание отчета к программе

Генерация ключей

  • 1. Генерируется случайное простое число p.
  • 2. Выбирается целое число — первообразный корень.
  • 3. Выбирается случайное целое число такое, что 1< x < p .
  • 4. Вычисляется y = (g^x)mod p .
  • 5. Открытым ключом является тройка (p, g, y), закрытым ключом — число .

Шифрование

Сообщение М должно быть меньше числа P. Сообщение шифруется следующим образом:

Выбирается сессионный ключ — случайное целое число, такое, что 1< k < p-1

Вычисляются числа a = (g^k)mod p и b = (y^k)M mod p.

Пара чисел (a, b) является шифротекстом.

Расшифровывание

Зная закрытый ключ x, исходное сообщение можно вычислить из шифротекста (a, b) по формуле:

M =b(ax )-1 mod p

И формуле:

b(a^x )^-1 =((y^k)M)g^(-kx) =(g^(xk)M)g(-xk) = M (mod p).

Фрагмент программного кода

  void crypt(int p, int g, int x, string strIn)
{
  int y = power(g, x, p);
  string s1 = "Open key(p,g,y) = (" + p + "," + g + "," + y + ")";
  string s2 = "Close key x = " + x;
  if (strIn.Length > 0)
  { 
    char[] temp = new char[strIn.Length - 1];
    temp = strIn.ToCharArray();
    for (int i = 0; i <= strIn.Length - 1; i++)
     { 
       int m = (int)temp[i];
       if (m > 0)
       { 
        int k = Rand() % (p - 2) + 1;
        int a = power(g, k, p);
        int b = mul(power(y, k, p), m, p); 
        string s3 = s3 + a + " " + b + " "; 
      }
     }
   }
}

Скриншот архива с проектом

Пояснения по запуску программы

Visual Studio 2022 (Windows Forms)

Купить 100,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

anna220699

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Похожие работы
Тип Название Рейтинг Категория Стоимость
Исходники Программа шифрования/дешифрования методом омофонической замены 6 .NET (C#) 750,00
Лабораторные работы Шифрование методами Цезаря и xor совместно (C# Net.Framework 4.5) 17 .NET (C#) 500,00
Исходники Шифрование/дешифрование данных личным методом C# 0 .NET (C#) 800,00
Лабораторные работы Вычисление экстремумов функций с помощью градиентного метода C# 0 .NET (C#) 100,00
Лабораторные работы Блокнот с графичиским ключом C#, WinForms 0 .NET (C#) 2 000,00
Купить

100,00 

Покупается впервые!
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

AlGamal.rar
67485
Оцени работу

рейтинг

Шифрование с помощью открытого и закрытого ключа. Метод Эль Гамаля С#
Метод Эль Гамаля. Исходник. Исходный код. Метод шифрования с открытым и закрытым ключом.
Категория: Образование
Стоимость: 100,00