Meteen naar de inhoud

webinar: Meld je aan voor ons aankomende webinar.

Aanmelden

Beveilig de gegevens van uw organisatie met deze encryptie-algoritmen

Gegevensbeveiliging is een van de essentiële onderdelen van een organisatie en kan op verschillende manieren worden bereikt. Encryptiesleutels spelen een belangrijke rol in het gehele gegevensverwerkingsproces. Gegevensversleuteling zet de platte tekst om in een gecodeerde vorm (onleesbaar), zodat alleen geautoriseerde personen/partijen er toegang toe hebben.

Gegevensbeveiliging is een van de essentiële onderdelen van een organisatie; het kan op verschillende manieren worden bereikt. encryptie De sleutel speelt een belangrijke rol in het totale dataproces. Data-encryptie zet de platte tekst om in een gecodeerde vorm (niet-leesbaar), zodat alleen geautoriseerde personen/partijen er toegang toe hebben.

Er zijn veel algoritmen beschikbaar om dergelijke gegevens te versleutelen. De versleutelde gegevens zijn al een tijdje veilig, maar we denken nooit dat ze permanent veilig zijn. Na verloop van tijd bestaat de kans dat iemand de gegevens hackt.

symmetrisch encryptiealgoritme
Afb.: Encryptie- en decryptieproces

In dit artikel hebben we verschillende encryptie-algoritmen en -technieken besproken om de beveiliging van gegevens en informatie te verbeteren. We vergelijken encryptie-algoritmen op basis van hun prestaties, hardware- en software-efficiëntie, sleutelgrootte, beschikbaarheid, implementatietechnieken en snelheid.

Samenvatting van de algoritmen

We vergelijken de gemeten snelheid van encryptie-algoritmen met diverse andere algoritmen die standaard beschikbaar zijn in Oracle JDK, met behulp van Eclipse IDE, en vatten vervolgens diverse andere kenmerken van die algoritmen samen. De encryptie-algoritmen die hier worden besproken, zijn: AES (met 128- en 256-bits sleutels), DES, Triple DES, IDEA en Kogelvis (met een 256-bits sleutel).

Prestaties van de algoritmen

De onderstaande afbeelding toont de tijd die nodig is om verschillende aantallen gegevensblokken van 16 bytes te versleutelen met behulp van de hierboven genoemde algoritmen.

Het is essentieel om vanaf het begin te benadrukken dat het, voorbij een belachelijk punt, niet de moeite waard is om snelheid op te offeren voor veiligheid. De verkregen metingen zullen ons echter nog steeds helpen om weloverwogen beslissingen te nemen.

Kenmerken van algoritmen

prestatie CBC-grafiek

Tabel 1 vat de belangrijkste kenmerken van elk encryptie-algoritme samen, met wat wij geloven dat een eerlijk overzicht is van de huidige beveiligingsstatus van het algoritme.

FactorenRSADES3DESAES
Gemaakt doorIn 1978 door Ron Rivest, Adi Shamir en Leonard AdlemanIn 1975 door IBMIn 1978 door IBMIn 2001 door Vincent Rijmen en Joan Daemen
SleutellengteHet hangt af van het aantal bits in modulus n, waarbij n = p*q56 beetjes168 bits (k1, k2 en k3)
112 bits (k1 en k2)
128, 192 of 256 bits
Ronden1164810-128 bits sleutel,
12-192 bits sleutel,
14-256 bits sleutel
BlokgrootteVeranderlijk64 beetjes64 beetjes128 beetjes
Coderingstype:Asymmetrische blokcijferSymmetrisch blokcijferSymmetrisch blokcijferSymmetrisch blokcijfer
SnelheidTraagstLangzaamZeer langzaamSnel
SecurityMinst veiligNiet veilig genoegAdequate beveiligingUitstekende beveiliging

Tabel 1: Kenmerken van veelgebruikte encryptie-algoritmen

Vergelijk

De technieken zijn vergeleken op basis van de mate waarin:

  • CPU-verwerkingssnelheid voor het versleutelen en ontsleutelen van gegevens.
  • Snelheid van sleutelgeneratie.
  • Sleutelgrootte.
  • Veiligheidsoverwegingen.
  • Efficiënt in de hardware en software bij implementatie.
  • De hoeveelheid geheugen die nodig is om de gegevens tijdens het versleutelingsproces vast te houden.
  • Aantal gebruikers dat door het model wordt gehuisvest.
  • De tijd die het model nodig heeft om de gegevens te herstellen in geval van een sleutelstoring.
  • De tijd die de hacker tot zijn beschikking heeft om verschillende soorten aanvallen uit te voeren.
  • De complexiteit van de algoritmetechniek.
Vergelijking van encryptiealgoritmen op basis van percentage-efficiëntie
Figuur: Vergelijking van encryptie-algoritmen op basis van percentage-efficiëntie

Op maat gemaakte encryptiediensten

Wij beoordelen, ontwikkelen strategieën en implementeren encryptiestrategieën en -oplossingen.

Formulering en casestudy

Case Study

Symmetrische cijfers gebruiken dezelfde sleutel voor encryptie en decryptie, dus zowel de verzender als de ontvanger moeten dezelfde geheime sleutel kennen en gebruiken. Alle sleutellengtes worden voldoende geacht om vertrouwelijke informatie tot het niveau 'Geheim' te beschermen, waarbij 'Top Secret'-informatie een sleutellengte van 192 of 256 bits vereist. Er zijn 10 rondes voor 128-bits sleutels, 12 rondes voor 192-bits sleutels en 14 rondes voor 256-bits sleutels. Een ronde bestaat uit verschillende verwerkingsstappen, waaronder substitutie, transpositie en het mixen van de invoertekst en het omzetten ervan in de uiteindelijke uitvoer. cijfertekst.

AES-ontwerp

aes design

Ronden

Padding is de methode om extra dummy-data toe te voegen. Tijdens het encryptieproces van een bericht wordt padding gebruikt als het bericht niet deelbaar is door de bloklengte. Bijvoorbeeld: als het bericht uit 426 bytes bestaat, hebben we zeven extra bytes padding nodig om het bericht 432 bytes lang te maken, omdat 432 deelbaar is door 16. Er kunnen drie sleutelgroottes worden gebruikt in AES, en afhankelijk van de sleutelgroottes verandert het aantal rondes in AES. De standaard sleutelgrootte in AES is 128 bits en het aantal rondes is 10. Voor AES-encryptie worden twee subsleutels gegenereerd en in de eerste ronde wordt een rondesleutel toegevoegd.

Nee.SleutelgrootteAantal rondes
1128 beetjes10
2192 beetjes12
3256 beetjes14

Voor 128 bits worden platte tekst en een 128-bits sleutel gebruikt, en er worden 10 rondes uitgevoerd om de cijfertekst te vinden. In de eerste stap worden voor elke ronde 10 rondesleutels gegenereerd, en er is een aparte rondesleutel. Maar in de eerste ronde wordt een extra rondesleutel, de initiële ronde, aan de ronde toegevoegd, waarna de transformatie wordt gestart. De transformatie bestaat uit vier stappen.

  1. Vervang bytes
  2. Rijen verschuiven
  3. Meng kolommen
  4. Ronde sleutel toevoegen

De onderstaande afbeelding geeft alle encryptiestappen weer, van platte tekst tot versleutelde tekst.

platte tekst naar
Figuur: Geeft de fasen van elke ronde weer

Op maat gemaakte encryptiediensten

Wij beoordelen, ontwikkelen strategieën en implementeren encryptiestrategieën en -oplossingen.

Encryptie met AES

De encryptiefase van AES kan worden opgedeeld in drie stappen: de eerste ronde, de hoofdrondes en de laatste ronde. Alle fasen gebruiken dezelfde subbewerkingen in verschillende combinaties, zoals hieronder:

  1. Eerste rondeRonde sleutel toevoegen
  2. Hoofdronde
    • Subbytes
    • Rijen verschuiven
    • Meng kolommen
    • Ronde sleutel toevoegen
  3. Laatste ronde:
    • Subbytes
    • Rijen verschuiven
    • Ronde sleutel toevoegen
  4. Ronde sleutel toevoegen

    Dit is de enige fase van AES-encryptie die direct werkt met de AES-rondesleutel. Bij deze bewerking is de invoer voor de ronde exclusief, of met de rondesleutel.

  5. Subbytes

    Hierbij wordt de invoer in bytes gesplitst en elk byte door een substitutiebox of S-box geleid. In tegenstelling tot DES gebruikt AES dezelfde S-box voor alle bytes. De AES S-box implementeert inverse vermenigvuldiging in Galoisveld 2.

  6. Rijen verschuiven

    Elke rij van de 128-bits interne status van de code wordt verschoven. De rijen in deze fase verwijzen naar de standaardweergave van de interne status in AES, een 4x4-matrix waarbij elke cel een byte bevat. Bytes van de interne status worden in de matrix over de rijen van links naar rechts en in de kolommen geplaatst.

  7. Meng kolommen

    Zorgt voor diffusie door de invoer te mengen. In tegenstelling tot Shift Rows voert Mix Columns bewerkingen uit waarbij de matrix wordt gesplitst in kolommen in plaats van rijen. In tegenstelling tot standaard matrixvermenigvuldiging voert Mix Columns matrixvermenigvuldiging uit over Galoisveld 2.

Decodering met AES

Om een ​​AES-gecodeerde cijfertekst te decoderen, is het noodzakelijk om elke fase van de codering ongedaan te maken in de omgekeerde volgorde waarin ze zijn toegepast. De drie fasen van decodering zijn als volgt:

  1. Omgekeerde finaleronde
    • Ronde sleutel toevoegen
    • Rijen verschuiven
    • Subbytes
  2. Omgekeerde hoofdronde
    • Ronde sleutel toevoegen
    • Meng kolommen
    • Rijen verschuiven
    • Subbytes
  3. Omgekeerde initiële ronde
    • Ronde sleutel toevoegen

Conclusie

Uit onderzoek naar verschillende algoritmen blijkt dat de sterkte van het model afhangt van de sleutelbeheer, soort van geheimschrift, het aantal sleutels en het aantal bits dat in een sleutel wordt gebruikt. Alle sleutels zijn gebaseerd op wiskundige eigenschappen. Sleutels met een groter aantal bits vereisen meer rekentijd, wat aangeeft dat het systeem meer tijd nodig heeft om de gegevens te versleutelen. AES-gegevensversleuteling is een wiskundig efficiënter en eleganter cryptografisch algoritme, maar de belangrijkste kracht is de mogelijkheid voor verschillende sleutellengtes. AES biedt u de keuze uit een 128-bits, 192-bits of 256-bits sleutel, waardoor het exponentieel sterker is. AES maakt gebruik van permutatie-substitutie, waarbij een reeks substitutie- en permutatiestappen nodig is om het versleutelde blok te creëren.

Referenties