Inleiding tot openbare sleutelversleuteling

Codering met openbare sleutels wordt ook asymmetrische codering genoemd. Omdat de naam zelf een asymmetrische sleutel zegt, worden twee verschillende sleutels gebruikt voor de codering van de openbare sleutel. Eén sleutel wordt gebruikt voor het coderingsproces en een andere sleutel wordt gebruikt voor het decoderingsproces. Zodra de sleutel is bepaald voor codering en decodering, wordt geen andere sleutel gebruikt. Van deze twee sleutels wordt een sleutel een openbare sleutel genoemd en een andere een privésleutel.

Laten we aannemen dat u via internet met vrienden wilt communiceren. Om de communicatie veilig te starten, hebt u zowel een openbare als een private sleutel nodig. De privésleutel is een geheime sleutel, u moet deze geheim houden. Als de privésleutel wordt overgedragen aan een andere partij, is er kans op aanvallen via de derde partij.

Stel dat X veilig met Y wil communiceren, dan moeten zowel X als Y een publieke sleutel en een private sleutel hebben.

  • X moet haar persoonlijke sleutel geheim houden.
  • X zou haar openbare sleutel aan Y moeten meedelen.
  • Y moet haar persoonlijke sleutel geheim houden.
  • Y moet haar openbare sleutel voor X meedelen.

Hoe werkt Public Key Encryption?

De werking van Public Key Encryption wordt hieronder uitgelegd:

Zaak 1

Wanneer X met Y wil communiceren, gebruikt X de openbare sleutel van Y om het bericht te coderen. Dit is mogelijk omdat Y haar openbare sleutel deelt met X.

  • X verzendt het gecodeerde bericht naar Y.
  • Y ontvangt het bericht van X.
  • Y decodeert het bericht met behulp van de privésleutel van Y.

Opmerking: alleen Y kent haar privésleutel en bericht kan worden gedecodeerd met de privésleutel van Y. Het voordeel hiervan is dat de partij het bericht niet kan decoderen omdat hij / zij de privésleutel van Y niet kent. Alleen de privésleutel van Y kan het bericht decoderen.

Geval 2

Wanneer Y met X wil communiceren, gebruikt Y de openbare sleutel van X om het bericht te coderen. Dit is mogelijk omdat X haar openbare sleutel tot Y deelt.

  • Y verzendt het gecodeerde bericht naar X.
  • X ontvangt het bericht van Y
  • X decodeert het bericht met behulp van haar privésleutel X.

Components

Hier volgen de componenten van de codering van de openbare sleutel:

  • Tekst zonder opmaak : tekst die leesbaar is en door iedereen kan worden begrepen, wordt tekst zonder opmaak genoemd. De platte tekst wordt gebruikt als invoer voor het coderingsproces.
  • Cijfertekst: het is de tekst die wordt geconverteerd naar een leesbaar formaat in een niet-leesbaar formaat met behulp van het coderingsalgoritme dat een cijfertekst wordt genoemd. De cijfertekst is een uitvoer van het coderingsproces. Het is in een niet-leesbaar formaat en door niemand te begrijpen.
  • Publieke sleutel: de sleutel die bij iedereen bekend is, wordt de openbare sleutel genoemd. Een openbare sleutel wordt meestal gebruikt voor het coderingsproces aan de zijde van de afzender.
  • Privésleutel: de sleutel die niet bij iedereen bekend is en die geheim wordt gehouden, wordt een privésleutel genoemd. De privésleutel wordt gebruikt voor het decoderingsproces aan de ontvangerzijde.
  • Versleutelingsalgoritme: het algoritme dat wordt gebruikt om gewone tekst om te zetten in versleutelde tekst staat bekend als een versleutelingsalgoritme.
  • Decryptie-algoritme: het algoritme dat wordt gebruikt om gecodeerde tekst naar gewone tekst om te zetten, staat bekend als een decryptie-algoritme.

Algoritmen voor codering met openbare sleutel

Hierna volgen de algoritmen van de codering met openbare sleutels.

RSA-algoritme

RSA is het populairste coderingsalgoritme met openbare sleutel. RSA-algoritme is gebaseerd op de wiskundige berekening waarbij het identificeren en vermenigvuldigen van een groot priemgetal gemakkelijk is, maar moeilijk om hun factor te factoreren. De privé- en openbare sleutels die in de RSA worden gebruikt, zijn grote priemgetallen.

Stappen voor RSA-algoritmen:

  • Selecteer twee grote priemgetallen X en Y.
  • Bereken het product N = X * Y.
  • Kies de openbare sleutel E zodanig dat deze geen factor is van (X - 1) en (Y - 1).
  • Kies de persoonlijke sleutel D zodat de volgende vergelijking waar wordt.
  • (D * E) mod (X - 1) * (Y - 1) = 1
  • Bereken voor codering CT als CT = PT E mod N.
  • Stuur de CT naar de ontvanger.
  • Bereken voor de decodering PT als PT = CT D mod N.
Opmerking: In het RSA-algoritme is het selecteren en genereren van een openbare sleutel en de privésleutel een kritieke taak.

ElGamal Cryptography Algorithm

ElGamal is een ander populair coderingsalgoritme met openbare sleutel.

ElGamal Key Generation:

  • Selecteer groot priemgetal P als openbare sleutel en Q als privésleutel.
  • Selecteer de tweede coderingssleutel als E1.
  • Selecteer de derde coderingssleutel als E2 zodat E2 = E Q mod P ElGamal Key-codering.
  • Selecteer willekeurig nummer R.
  • Bereken cijfertekst als CT = E1 R mod P.
  • Bereken tweede coderingstekst CT2 = (PT * E2 R) mod P ElGamal-sleuteldecodering
  • Bereken platte tekst als PT = (CT2 * (CT Q) - 1) mod P.

Aanbevolen artikelen

Dit is een gids voor Public Key Encryption. Hier bespreken we openbare sleutelversleuteling, de componenten en hoe werkt het samen met voorbeelden. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Wat kunt u doen met symmetrische sleutelversleuteling?
  2. Cryptografie versus codering
  3. Soorten symmetrische algoritmen
  4. De belangrijkste kenmerken van Dropbox