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.

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

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.
| Factoren | RSA | DES | 3DES | AES |
|---|---|---|---|---|
| Gemaakt door | In 1978 door Ron Rivest, Adi Shamir en Leonard Adleman | In 1975 door IBM | In 1978 door IBM | In 2001 door Vincent Rijmen en Joan Daemen |
| Sleutellengte | Het hangt af van het aantal bits in modulus n, waarbij n = p*q | 56 beetjes | 168 bits (k1, k2 en k3) 112 bits (k1 en k2) | 128, 192 of 256 bits |
| Ronden | 1 | 16 | 48 | 10-128 bits sleutel, 12-192 bits sleutel, 14-256 bits sleutel |
| Blokgrootte | Veranderlijk | 64 beetjes | 64 beetjes | 128 beetjes |
| Coderingstype: | Asymmetrische blokcijfer | Symmetrisch blokcijfer | Symmetrisch blokcijfer | Symmetrisch blokcijfer |
| Snelheid | Traagst | Langzaam | Zeer langzaam | Snel |
| Security | Minst veilig | Niet veilig genoeg | Adequate beveiliging | Uitstekende 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.

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

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. | Sleutelgrootte | Aantal rondes |
|---|---|---|
| 1 | 128 beetjes | 10 |
| 2 | 192 beetjes | 12 |
| 3 | 256 beetjes | 14 |
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.
- Vervang bytes
- Rijen verschuiven
- Meng kolommen
- Ronde sleutel toevoegen
De onderstaande afbeelding geeft alle encryptiestappen weer, van platte tekst tot versleutelde tekst.

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:
- Eerste rondeRonde sleutel toevoegen
- Hoofdronde
- Subbytes
- Rijen verschuiven
- Meng kolommen
- Ronde sleutel toevoegen
- Laatste ronde:
- Subbytes
- Rijen verschuiven
- Ronde sleutel toevoegen
- 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.
- 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.
- 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.
- 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:
- Omgekeerde finaleronde
- Ronde sleutel toevoegen
- Rijen verschuiven
- Subbytes
- Omgekeerde hoofdronde
- Ronde sleutel toevoegen
- Meng kolommen
- Rijen verschuiven
- Subbytes
- 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.
