Wprowadzenie do szyfrowania ElGamal

Kryptosystem ElGamal można zdefiniować jako algorytm kryptograficzny wykorzystujący koncepcję klucza publicznego i prywatnego do zabezpieczenia komunikacji między dwoma systemami. Można go uznać za algorytm asymetryczny, w którym szyfrowanie i deszyfrowanie odbywa się przy użyciu kluczy publicznych i prywatnych. W celu zaszyfrowania wiadomości klient używa klucza publicznego, a wiadomość można odszyfrować przy użyciu klucza prywatnego po stronie serwera. Jest to uważane za jeden z wydajnych algorytmów do przeprowadzania szyfrowania i deszyfrowania, ponieważ klucze są bardzo trudne do przewidzenia. Jedynym celem wprowadzenia podpisu w transakcji wiadomości jest ochrona go przed MITM, który ten algorytm mógłby bardzo skutecznie osiągnąć.

Algorytm szyfrowania ElGamal z przykładem

Koncepcja duszy tej metody algorytmu polega na tym, że prawie niemożliwe jest obliczenie metody szyfrowania, nawet jeśli atakujący zna pewne ważne informacje. Dotyczy to głównie trudności z wykorzystaniem grupy cyklicznej w celu znalezienia logarytmu dyskretnego.

Łatwo to zrozumieć na prostym przykładzie. Załóżmy, że nawet jeśli wartości takie jak g a i g b są wartościami znanymi atakującemu, atakujący będzie bardzo trudny do znalezienia wartości g ab, która jest niczym innym jak wartością spękaną.

Aby zrozumieć cały scenariusz, musimy krok po kroku, w jaki sposób faktycznie odbywa się szyfrowanie i deszyfrowanie wiadomości. Rozważymy przykład dwóch rówieśników, którzy chcą wymieniać dane w bezpieczny sposób, wykorzystując algorytm ElGamal. Załóżmy, że użytkownik1 i użytkownik2 chcą potajemnie wymieniać informacje, w takim przypadku zastosowana zostanie następująca procedura.

Krok 1: Generowanie klucza publicznego i prywatnego.

  • Użytkownik1 spróbuje wybrać bardzo długą lub dużą liczbę x, a tymczasem wybierze także cykliczną grupę Fx. Z tej grupy cyklicznej będzie dalej wybierał inny składnik b i jeszcze jeden element c. Wartości zostaną wybrane w taki sposób, że jeśli zostaną przekazane przez określoną funkcję, wynik będzie równoważny 1.
  • Po zakończeniu fazy wyboru wartości zostanie obliczona wartość, która zostanie następnie wykorzystana do wygenerowania klucza prywatnego. Stosując wzór fm = b c, wartość zostanie obliczona. W bieżącym scenariuszu użytkownik1 wybierze F, fm = b c, a, b jako swój klucz publiczny, podczas gdy wartości a zostaną zapisane jako klucz prywatny, który będzie dalej używany jako klucz prywatny.

Krok 2: Użytkownik 2 zaszyfruje dane przy użyciu klucza publicznego użytkownika 1.

  • Aby rozpocząć szyfrowanie wiadomości, użytkownik musi wybrać pewne wartości. Użytkownik2 będzie również musiał wybrać jedną z wartości p z grupy cyklicznej. Grupa cykliczna będzie taka sama jak dla użytkownika 1. Wartość należy wybrać w taki sposób, aby Inc podany z funkcją w określonej funkcji wygenerował wynik 1.
  • Wiedz, że użytkownik2 wygeneruje inne wartości, które zostaną użyte do zaszyfrowania wiadomości przy użyciu klucza publicznego. Generowana wartość to Pm = b p. Druga wartość ponownej wartości b c będzie równa b ap. Wynik tego obliczenia zostanie pomnożony przez drugą wartość Z, aby zbliżyć się do metody szyfrowania. Ostatecznie wartość zostanie wysłana na podstawie wyników obliczeń na b p, Z * b ap.

Krok 3: Deszyfrowanie wiadomości na końcu użytkownika 1.

  • Użytkownik 1 użyje następnie obliczeń wartości wybranych w pierwszej i drugiej fazie, aby zidentyfikować odpowiednią liczbę, która zostanie użyta do odszyfrowania zaszyfrowanej wiadomości. Użytkownik1 będzie przetwarzał b ap, a następnie wynik zostanie użyty do podzielenia przez Z w celu uzyskania odszyfrowanej wartości. Odszyfrowana wartość to coś, co zostało zaszyfrowane w drugiej fazie.
  • W powyższym scenariuszu użytkownik1 zainicjował proces obliczając klucz prywatny i publiczny, który jest duszą algorytmu. Klucz jest następnie wykorzystywany przez użytkownika2 w drugim etapie w celu zaszyfrowania metody.
  • Wiadomość jest szyfrowana w taki sposób, aby można było wykorzystać wartość obliczoną w tej początkowej fazie również do odszyfrowania wiadomości. W trzecim kroku można zaobserwować, że po zanurkowaniu całej wartości z liczbą obliczoną w samym trzecim kroku całkowicie odszyfrowuje wiadomość, czyniąc ją czytelną dla użytkownika końcowego. To samo podejście jest stosowane za każdym razem, gdy pojawia się potrzeba bezpiecznego przekazania wiadomości.

Wniosek - szyfrowanie ElGamal

Algorytm ElGamal jest wykorzystywany do szyfrowania i deszyfrowania, który jest głównie brany pod uwagę ze względu na jego zdolność do bardzo trudnych prognoz. Będąc algorytmem asymetrycznym, wykorzystuje mechanizm klucza prywatnego i publicznego, dzięki czemu przewidywania kluczy są jeszcze trudniejsze. Wszystkie aplikacje, które chcą nie polegać tylko na szyfrowaniu kanałów w celu ochrony swoich danych, mogą uznać za przydatne zaimplementowanie tego algorytmu w programie. Oprócz bezpieczeństwa na poziomie aplikacji algorytm ten jest również uważany za bardzo optymalny do obsługi transmisji danych w sieci prywatnej lub publicznej.

Polecane artykuły

Jest to przewodnik po szyfrowaniu EIGamal. Tutaj omawiamy również wprowadzenie i algorytm szyfrowania EIGamal na przykładzie. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej -

  1. Szyfrowanie asymetryczne
  2. Szyfrowanie klucza symetrycznego
  3. Zaawansowany Standard Szyfrowania
  4. Algorytm szyfrowania