Въведение в ElGamal Encryption

Криптосистемата ElGamal може да бъде определена като алгоритъм за криптография, който използва концепцията за публичен и частен ключ, за да осигури комуникацията, осъществяваща се между две системи. Може да се разглежда като асиметричен алгоритъм, при който криптирането и декриптирането се случват чрез използването на публични и частни ключове. За да се криптира съобщението, публичният ключ се използва от клиента, докато съобщението може да бъде дешифрирано с помощта на частния ключ на края на сървъра. Това се счита за един от ефективните алгоритми за извършване на криптиране и декриптиране, тъй като ключовете са изключително трудни за предсказване. Единствената цел на въвеждането на подписа в транзакцията със съобщения е да го защити срещу MITM, което би могло да бъде много ефективно постигнато от този алгоритъм.

Алгоритъм за криптиране на ElGamal с пример

Основната концепция на този метод на алгоритъм е да направи почти невъзможно изчисляването на подхода за криптиране, дори ако известна важна информация е известна на нападателя. Основно е загрижен за трудността да се използва цикличната група, за да се намери дискретният логаритъм.

Ще бъде много лесно да се разбере, използвайки прост пример. Да предположим, че дори ако стойностите като g a и g b са стойностите, които са известни на атакуващия, нападателят ще бъде изключително трудно да открие стойността на g ab, която не е нищо друго освен спуканата стойност.

За да разберем целия сценарий, трябва да преминем поетапно върху това как всъщност се случват криптирането и декриптирането на съобщенията. Ще разгледаме примера на двама връстници, които са готови да обменят данни по сигурен начин, използвайки алгоритъма на ElGamal. Да предположим, че user1 и user2 искат да обменят информацията тайно, в такъв случай ще се следва следната процедура.

Стъпка 1: Генериране на публични и частни ключове.

  • Потребителят1 ще се опита да избере много дълго или голямо число х, а междувременно ще избере и циклична група Fx. От тази циклична група той ще избере допълнително друг компонент b и още един елемент c. Стойностите ще бъдат избрани по начин, че ако се премине през определена функция, резултатът ще бъде еквивалентен на 1.
  • След като фазата на избор на стойност приключи, ще бъде изчислена стойност, която ще бъде използвана допълнително за генериране на частния ключ. Прилагайки формулата fm = b c, стойността ще бъде изчислена. В текущия сценарий, потребител1 ще избере F, fm = b c, a, b за свой публичен ключ, докато стойностите на a ще бъдат записани като частен ключ, който ще бъде използван по-нататък като частен ключ.

Стъпка 2: User2 ще криптира данните, като използва публичния ключ на User1.

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

Стъпка 3: Дешифриране на съобщението в user1 края.

  • След това потребителят1 ще използва изчисляването на стойностите, избрани през първата и втората фаза, за да идентифицира подходящото число, което ще бъде използвано за декриптиране на криптираното съобщение. User1 ще обработва b ap и тогава резултатът ще бъде използван за разделяне на Z, за да получи декриптираната стойност. Декриптираната стойност е нещо, което е криптирано във втората фаза.
  • В горния сценарий, user1 е стартирал процеса чрез изчисляване на частния и публичния ключ, който е душата на алгоритъма. Ключът се използва по-нататък от user2 във втората стъпка, за да шифрира метода.
  • Съобщението се криптира по начин, така че стойността им, изчислена в тази начална фаза, да може да се използва за декриптиране на съобщението. На третата стъпка може да се види, че след гмуркането цялата стойност с числото, което се изчислява в самата трета стъпка, напълно дешифрира съобщението, правейки го четим за крайния потребител. Един и същ подход се следва всеки, когато се появи желание за сигурно предаване на съобщението.

Заключение - Шифроване на ElGamal

Алгоритъмът ElGamal се използва при криптиране и декриптиране, което се счита главно за способността му да направи ключовите прогнози изключително трудни. Като асиметричен алгоритъм, той използва механизма на частния и публичния ключ, като прави ключовите прогнози още по-строги. Цялото приложение, което търси не просто да разчита на криптиране на канала, за да защити своите данни, може да го намери за полезно да приложи този алгоритъм в програмата. В допълнение към сигурността на приложно ниво, този алгоритъм също се счита за много оптимален за справяне с предаването на данни през частната или публичната мрежа.

Препоръчителни статии

Това е ръководство за EIGamal Encryption. Тук също обсъждаме въвеждането и алгоритъма на EIGamal Encryption с пример. Можете също така да разгледате следните статии, за да научите повече -

  1. Асиметрично криптиране
  2. Симетрично шифроване на ключове
  3. Разширен стандарт за шифроване
  4. Алгоритъм за криптиране