Inleiding tot ElGamal-codering

ElGamal cryptosysteem kan worden gedefinieerd als het cryptografie-algoritme dat het concept van de publieke en private sleutel gebruikt om de communicatie tussen twee systemen te beveiligen. Het kan worden beschouwd als het asymmetrische algoritme waar de codering en decodering plaatsvinden door het gebruik van openbare en privésleutels. Om het bericht te coderen, wordt de openbare sleutel gebruikt door de client, terwijl het bericht kan worden gedecodeerd met de privésleutel op het servereinde. Dit wordt beschouwd als een van de efficiënte algoritmen om de codering en decodering uit te voeren, omdat de sleutels extreem moeilijk te voorspellen zijn. Het enige doel van het introduceren van de handtekening in berichttransacties is deze te beschermen tegen MITM, wat zeer effectief zou kunnen worden bereikt door dit algoritme.

ElGamal-coderingsalgoritme met voorbeeld

Het zielsconcept van deze algoritmemethode is het bijna onmogelijk maken om de coderingsbenadering te berekenen, zelfs als bepaalde aanvallers bekend zijn bij de aanvaller. Het maakt zich vooral zorgen over de moeilijkheid om de cyclische groep te benutten om het discrete logaritme te vinden.

Het zal heel gemakkelijk te begrijpen zijn met behulp van een eenvoudig voorbeeld. Stel dat zelfs als de waarde zoals g a en g b de waarden zijn die bekend zijn bij de aanvaller, de aanvaller het uiterst moeilijk zal vinden om de waarde van g ab te achterhalen die niets anders is dan de gekraakte waarde.

Om het hele scenario te begrijpen, moeten we stapsgewijs gaan over hoe de codering en decodering van berichten daadwerkelijk gebeuren. We zullen het voorbeeld overwegen van twee peers die bereid zijn om gegevens op een veilige manier uit te wisselen door gebruik te maken van het ElGamal-algoritme. Laten we aannemen dat user1 en user2 de informatie in het geheim willen uitwisselen. In dat geval wordt de volgende procedure gevolgd.

Stap 1: Genereren van de publieke en private sleutels.

  • De gebruiker1 zal proberen een zeer lang of groot aantal x te selecteren en ondertussen zal hij ook een cyclische groep Fx kiezen. Uit deze cyclische groep zal hij verder een andere component b en nog een element c kiezen. De waarden worden geselecteerd op de manier dat als deze door een bepaalde functie wordt doorgegeven, de uitkomst gelijk is aan 1.
  • Zodra de fase van de waardeselectie voorbij is, wordt een waarde berekend die verder zal worden gebruikt om de privésleutel te genereren. Door de formule fm = b c toe te passen, wordt de waarde berekend. In het huidige scenario selecteert de gebruiker1 F, fm = b c, a, b als hun openbare sleutel, terwijl de waarden van a worden opgeslagen als de privésleutel die verder zal worden gebruikt als de privésleutel.

Stap 2: Gebruiker2 codeert de gegevens met de openbare sleutel van Gebruiker1.

  • Om de codering van het bericht te starten, zijn er bepaalde waarden die user2 moet kiezen. De gebruiker2 moet ook een van de waarden p uit de cyclische groep kiezen. De cyclische groep zal hetzelfde zijn als voor gebruiker1. De waarde moet zo worden gekozen dat Inc met een in de betreffende functie doorgeven de uitkomst 1 genereert.
  • Weet dat de gebruiker2 andere waarden zal genereren die zullen worden gebruikt om het bericht met de openbare sleutel te coderen. De gegenereerde waarde is Pm = b p. De andere revalue b c zal gelijk zijn aan b ap. De uitkomst van deze berekening wordt vermenigvuldigd met de andere waarde Z om dichter bij de coderingsmethode te komen. Uiteindelijk wordt de waarde verzonden met behulp van de uitkomst van berekeningen op b p, Z * b ap.

Stap 3: Decodering van het bericht aan het einde van user1.

  • De gebruiker1 zal vervolgens de berekening gebruiken van de waarden die zijn gekozen in de eerste en tweede fase om het juiste nummer te identificeren dat zal worden gebruikt om het gecodeerde bericht te decoderen. De Gebruiker1 zal b ap verwerken en dan zal de uitkomst worden gebruikt om de door Z te delen om de gedecodeerde waarde te krijgen. De gedecodeerde waarde is iets dat is gecodeerd in de tweede fase.
  • In het bovenstaande scenario heeft de gebruiker1 het proces geïnitieerd door de private en publieke sleutel te berekenen die de ziel van het algoritme is. De sleutel wordt verder gebruikt door de gebruiker2 in de tweede stap om de methode te coderen.
  • Het bericht wordt zodanig gecodeerd dat de waarde die in die beginfase wordt berekend, kan worden gebruikt om het bericht ook te decoderen. In de derde stap kon worden vastgesteld dat na het duiken met de gehele waarde met het getal dat in de derde stap wordt berekend, het bericht volledig wordt ontsleuteld, waardoor het leesbaar wordt voor de eindgebruiker. Dezelfde aanpak wordt gevolgd wanneer de drang om het bericht veilig door te geven optreedt.

Conclusie - ElGamal-codering

ElGamal-algoritme wordt gebruikt in codering en decodering, wat vooral wordt overwogen vanwege zijn vermogen om de belangrijkste voorspellingen uiterst moeilijk te maken. Als het asymmetrische algoritme, maakt het gebruik van het mechanisme van private en public key waardoor de voorspellingen van de sleutel nog moeilijker worden. Alle toepassingen die niet alleen op kanaalversleuteling willen vertrouwen om hun gegevens te beschermen, kunnen het heel nuttig vinden om dit algoritme in het programma te implementeren. Naast de beveiliging op applicatieniveau wordt dit algoritme ook als zeer optimaal beschouwd om de datatransmissie via het private of publieke netwerk aan te kunnen.

Aanbevolen artikelen

Dit is een gids voor EIGamal Encryption. Hier bespreken we ook de introductie en het EIGamal Encryption-algoritme met een voorbeeld. U kunt ook de volgende artikelen bekijken voor meer informatie–

  1. Asymmetrische codering
  2. Symmetrische sleutelversleuteling
  3. Geavanceerde coderingsstandaard
  4. Encryptie algoritme