Введение в шифрование Эль-Гамаля

Криптосистема ElGamal может быть определена как криптографический алгоритм, который использует концепцию открытого и закрытого ключей для защиты связи между двумя системами. Его можно рассматривать как асимметричный алгоритм, в котором шифрование и дешифрование выполняются с использованием открытых и закрытых ключей. Чтобы зашифровать сообщение, клиент использует открытый ключ, в то время как сообщение может быть расшифровано с использованием закрытого ключа на стороне сервера. Это считается одним из эффективных алгоритмов для выполнения шифрования и дешифрования, так как ключи чрезвычайно сложно предсказать. Единственная цель введения подписи в транзакции сообщения - защитить ее от MITM, что может быть очень эффективно достигнуто этим алгоритмом.

Алгоритм шифрования Эль-Гамаля с примером

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

Это будет очень легко понять на простом примере. Предположим, что даже если такие значения, как g a и g b, являются значениями, известными злоумышленнику, злоумышленнику будет чрезвычайно трудно найти значение g ab, которое является ничем иным, как взломанным значением.

Чтобы понять весь сценарий, нам нужно пошагово понять, как на самом деле происходит шифрование и дешифрование сообщений. Мы рассмотрим пример двух пиров, которые готовы безопасно обмениваться данными, используя алгоритм Эль-Гамаля. Предположим, что user1 и user2 хотят тайно обмениваться информацией, в этом случае будет выполнена следующая процедура.

Шаг 1: Генерация открытого и закрытого ключей.

  • Пользователь 1 попытается выбрать очень длинное или большое число x, а между тем он также выберет циклическую группу Fx. Из этой циклической группы он будет дополнительно выбирать другой компонент b и еще один элемент c. Значения будут выбираться таким образом, чтобы при прохождении через определенную функцию результат был равен 1.
  • После завершения фазы выбора значения будет рассчитано значение, которое будет в дальнейшем использоваться для генерации закрытого ключа. Применяя формулу fm = b c, будет вычислено значение. В текущем сценарии пользователь 1 выберет F, fm = b c, a, b в качестве своего открытого ключа, а значения a будут сохранены как закрытый ключ, который в дальнейшем будет использоваться как закрытый ключ.

Шаг 2: Пользователь2 зашифрует данные с помощью открытого ключа Пользователя1.

  • Чтобы начать шифрование сообщения, есть определенные значения, которые нужно выбрать user2. Пользователь 2 также должен выбрать одно из значений p из циклической группы. Циклическая группа будет такой же, как и для user1. Значение должно быть выбрано таким образом, чтобы значения, передаваемые с помощью Inc в конкретной функции, сгенерировали результат 1.
  • Знайте, что user2 будет генерировать некоторые другие значения, которые будут использоваться для шифрования сообщения с использованием открытого ключа. Генерируемое значение будет Pm = b p. Другое переоценка b c будет равна b ap. Результат этого вычисления будет умножен на другое значение Z, чтобы приблизиться к методу шифрования. В конце концов, значение будет отправлено с использованием результатов вычислений на b p, Z * b ap.

Шаг 3: Расшифровка сообщения на конце user1.

  • Затем пользователь 1 будет использовать вычисление значений, которые были выбраны на первом и втором этапах, чтобы идентифицировать соответствующий номер, который будет использоваться для расшифровки зашифрованного сообщения. Пользователь 1 будет обрабатывать b ap, а затем результат будет использоваться для деления на Z, чтобы получить расшифрованное значение. Дешифрованное значение - это то, что было зашифровано на втором этапе.
  • В приведенном выше сценарии пользователь1 инициировал процесс, вычислив закрытый и открытый ключи, которые являются душой алгоритма. Ключ далее используется пользователем 2 на втором этапе для шифрования метода.
  • Сообщение зашифровано таким образом, чтобы их значение, вычисленное на этом начальном этапе, можно было использовать для расшифровки сообщения. На третьем шаге можно убедиться, что после погружения всего значения с числом, которое вычисляется на третьем шаге, он полностью дешифрует сообщение, делая его читаемым для конечного пользователя. Тот же самый подход применяется каждый раз, когда возникает желание безопасно передать сообщение.

Заключение - шифрование Эль-Гамаля

Алгоритм Эль-Гамаля используется в шифровании и дешифровании, что в основном рассматривается из-за его способности делать ключевые прогнозы чрезвычайно сложными. Будучи асимметричным алгоритмом, он использует механизм частного и открытого ключа, что делает ключевые прогнозы еще более жесткими. Все приложения, которые стремятся не просто полагаться на шифрование канала для защиты своих данных, могут найти полезным применение этого алгоритма в программе. В дополнение к безопасности на уровне приложений этот алгоритм также считается очень оптимальным для передачи данных по частной или общедоступной сети.

Рекомендуемые статьи

Это было руководство по шифрованию EIGamal. Здесь мы также обсудим введение и алгоритм шифрования EIGamal на примере. Вы также можете взглянуть на следующие статьи, чтобы узнать больше:

  1. Асимметричное шифрование
  2. Шифрование симметричного ключа
  3. Расширенный стандарт шифрования
  4. Алгоритм шифрования