Inleiding tot symmetrische algoritmen

Symmetrische algoritmen ook bekend als geheime sleutelalgoritmen worden veel gebruikt bij de codering van bulkgegevens of gegevensstromen. Dit is een type cryptografisch algoritme dat de gegevens codeert en decodeert met dezelfde sleutel (waardoor dit algoritme symmetrisch wordt). Het wordt een geheime sleutel genoemd omdat de gebruikte sleutel geheim wordt gehouden door de systemen die betrokken zijn bij het coderings- en decoderingsproces. De codering die door dit algoritme wordt uitgevoerd, is niet gemakkelijk te breken als de persoon die probeert te decoderen niet de geheime sleutel heeft, dan zou hij geavanceerde technieken moeten gebruiken om deze te breken. Deze algoritmen zijn over het algemeen erg snel van aard, wat des te meer reden is dat ze worden gebruikt wanneer er grote hoeveelheden gegevens moeten worden versleuteld. Fig1.a geeft de basis symmetrische sleutelversleuteling weer:

Figuur1.a Versleuteling met symmetrische sleutel

Soorten symmetrische algoritmen

Breed symmetrische algoritmen zijn in tweeën ingedeeld

  • Blok
  • Stroom

Blokkeer algoritmen

Blokalgoritmen coderen het gegevensblok per blok (veel bytes). Blok verwijst naar de opgegeven set bits en deze bits worden gewijzigd / gecodeerd met een geheime sleutel. Er is een nadeel met de blokalgoritmen, laten we aannemen dat we netwerkstroomgegevens gaan coderen, deze gegevens worden door het coderingssysteem in zijn geheugencomponenten bewaard. Dit bewaren van gegevens gebeurt wanneer het systeem daadwerkelijk wacht op volledige gegevensblokken. Deze wachttijd kan leiden tot een beveiligingslek die de beveiliging en integriteit van de gegevens in gevaar kan brengen. Om deze bedreiging te voorkomen, kunnen we het blok verkleinen en de gegevens samenvoegen met eerder gecodeerd gegevensblok totdat er meer blokken worden ontvangen, in eenvoudige bewoordingen wordt deze techniek feedback genoemd. Dit algoritme codeert alleen als het volledige blok is ontvangen.

Streamalgoritmen

In-Stream-algoritmen, de gegevens worden byte voor byte en soms zelfs beetje bij beetje gecodeerd. In het geval van een stroomalgoritme worden de gegevens niet door het systeem in het geheugen bewaard, vandaar dat men kan zeggen dat dit veel veiliger is in vergelijking met het blokalgoritme omdat gegevens niet zonder versleuteling in het systeem worden bewaard.

Bovendien zijn er verschillende soorten coderingsalgoritmen, waarvan er enkele hieronder worden vermeld

  • DES & Triple DES
  • RC2
  • Blowfish

DES & Triple DES

DES staat voor een coderingsstandaard voor gegevens die een 64-bits platte tekst gebruikt en codeert in een 64-bits codetekst en decodeert met behulp van een 56-bits sleutel. In DES begint het coderingsproces met een initiële permutatiefase waarin het de invoer als 64-bits gegevens neemt en op een vooraf gedefinieerde manier permuteert. Gevolgd door de initiële permutatie is dat 16 Feistel-coderingsronden (een Feistel-codering neemt de invoer en verdeelt deze in twee delen en voert de codering uit op slechts één deel) waarbij elke ronde een andere 48bit-coderingssleutel gebruikt. Voor codering en decodering gebruikt het een codering en keert het coderingsalgoritme om. Uiteindelijk gaan de gegevens door de laatste permutatiefase om de cijfertekst terug te krijgen. Vergelijkbaar met DES Triple DES is niets anders dan DES-cijfer 3 keer herhaald. Figuur 2.a toont de generieke architectuur van het DES-algoritme.

Generieke architectuur van DES-algoritme

RC2

Dit is een blokcoderingsalgoritme waarbij eerst de gegevens worden verdeeld in een blokgrootte van 8 bytes en deze blokken afzonderlijk worden verwerkt. Dit algoritme werd in de jaren 90 veel gebruikt. Rc2-codering gebruikt een geheime gebruikerssleutel waarvan de grootte kan variëren van één byte tot 128 bytes. Het neemt deze geheime gebruikerssleutel en gebruikt een sleuteluitbreidingsalgoritme en codeert de gegevens. Dit algoritme is zo ontworpen dat het eenvoudig kan worden geïmplementeerd in 16-bit microprocessors. Hier zijn geen Feistel-ronden, maar de gegevens ondergaan 18 ronden van mixen en stampen. Figuur 2.b toont de generieke architectuur van het RC2-algoritme.

Generieke architectuur van RC2-algoritme

Blowfish

Dit is een asymmetrisch algoritme dat DES vervangt. Hier is de gebruikte blokgrootte 64 bits en sleutelgroottes variërend van 32 tot 448 bits. Versleuteling met blaasvissen bestaat hoofdzakelijk uit twee fasen

  • Ronde functie
  • Uitgang operatie

De ronde-functie voert de volgende stappen uit

  1. Key whitening, waarbij het linkergedeelte van de invoergegevens wordt genomen en er exclusieve OF-bewerking op wordt uitgevoerd.
  2. In de tweede stap gebruikt het S-boxes, deze S-boxes mappen een 8-bit data naar 32 bit en de output wordt genomen om te combineren met een combinatie van optellen en XOR-bewerkingen
  3. De bovengenoemde twee stappen samen worden de F-functie genoemd. Met de uitvoer van de F-functie en de rechterkant van de invoergegevens wordt de XOR-bewerking uitgevoerd.
  4. De laatste stap omvat het verwisselen van de output.

De uitvoerfunctie draait de laatste omwisseling en voert het witter maken van de uitvoer uit. De output van deze functie is een blaasviscodetekst. Decryptie met blowfish omvat het gebruik van dezelfde structuur als encryptie aangezien het een Feistel-cijfer gebruikt, maar de ronde sleutels moeten in omgekeerde volgorde worden gebruikt. Het grote voordeel van dit algoritme is dat het beschikbaar is in het publieke domein, zodat het gemakkelijk toegankelijk is. De nadelen zijn in feite dat het een beetje tijdrovend is bij het genereren van de sleutels en als het blok klein is, is het kwetsbaar voor aanvallen.

Toepassingen van symmetrische algoritmen

Sommige plaatsen waar het symmetrische coderingsalgoritme wordt gebruikt, zijn

  • Kaarttransacties worden gebruikt om identiteitsdiefstal en frauduleuze transacties te voorkomen.
  • Om de identiteit van de boodschapper te bevestigen.
  • Hashing en het genereren van willekeurige getallen
  • Database encryptie

Conclusie - symmetrische algoritmen

Symmetrische algoritmen zijn veel sneller en efficiënter in vergelijking met asymmetrische algoritmen. Dit is des te meer reden waarom ze worden gebruikt voor bulkcodering. Maar het nadeel is dat het sleutelbeheer zeer uitgebreid is, dus onderhoud op grote schaal is een vervelende taak, waar we hoogwaardige beveiliging nodig hebben, om dit te bereiken moeten we de levenscyclus van de sleutel hebben gegenereerd die met behulp van het afzonderlijke systeem is gegenereerd . Daarom moeten we altijd de juiste codering gebruiken om aanvallen op onze gegevens te voorkomen.

Aanbevolen artikelen

Dit is een handleiding voor symmetrische algoritmen. Hier bespreken we de introductie en soorten symmetrische algoritmen samen met DES & Triple DES. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Wat is WebSocket?
  2. Beveiliging van webapplicaties
  3. Carrière in webontwikkeling
  4. Carrières in webdesign
  5. Blokcoderingsmodus
  6. Voorbeelden van C ++ algoritme