We leven in een wereld waar computers en internet bijna overal zijn. Daarmee komt het feit dat individuen en bedrijven geconfronteerd worden met een snel toenemende online dreiging: cybercriminaliteit.
De markt is groter dan ooit tevoren, waardoor internet de nieuwe (en winstgevende) grens is voor (cyber) criminelen. Dat betekent dat het beschermen van onze digitale aanwezigheid van het allergrootste belang is, en codering is een belangrijke beveiligingsmaatregel.
E-mailsoftware, internetbankieren, webwinkels, hotelwebsites en nieuwswebsites zijn slechts enkele voorbeelden van de enorme hoeveelheid platforms die codering gebruiken om gegevens te beschermen.
De methode om informatie te beschermen door deze te coderen is geen recente oplossing. De Grieken en Egyptenaren hebben duizenden jaren geleden cryptografie gebruikt om belangrijke berichten tegen ongewenste ogen te beschermen.
Dat gezegd hebbende, de technieken en methoden zijn heel anders en geavanceerder in de hedendaagse digitale wereld om onze gegevens te beschermen en te beveiligen.
Versleuteling wordt gebruikt om ervoor te zorgen dat belangrijke gegevens niet kunnen worden gestolen of misbruikt voor frauduleuze activiteiten van hackers.
Voordat we ingaan op de manier waarop de codering werkt, laten we eerst kijken naar de geschiedenis van de codering.
Geschiedenis van encryptie
Voordat de meeste mensen zelfs konden schrijven of lezen, waren reeds versleutelingsschema’s ontwikkeld om berichten en informatie om te zetten in een onleesbaar stukje tekst.
Het woord codering komt van “kryptos.” De Grieken gebruikten “krypto” om iets te beschrijven dat verborgen of geheim was.
De eerste gedocumenteerde voorbeelden van geschreven cryptografie dateren uit 1900 voor Christus, toen Egyptenaren eenvoudige versleutelingsmethoden, zoals niet-standaard hiërogliefen, in inscripties gebruikten.
In 700 voor Christus schreven de Spartanen belangrijke boodschappen over leer, dat rond stokken was gewikkeld. Een bericht kon alleen gelezen worden door iemand met een stok van exact dezelfde diameter. Zonder de exacte diameter te kennen, zou een persoon de boodschap niet kunnen ontcijferen (code in geschreven tekst converteren).
Later ontwikkelden Hebreeuwse schrijvers een versleutelingsmodel met de naam “ATBASH”. Dit type codering gebruikte een omgekeerde alfabetische eenvoudige substitutiecode. Dat betekent dat een “A” een “Z” wordt, “B” een “Y” wordt, enz.
“Hallo” zou bijvoorbeeld gecodeerd zijn als “Svool.”
In de tijd van Julius Caesar (100-44 voor Christus), gebruikten de Romeinen een soortgelijke vervanging. In plaats van het alfabet om te draaien, gebruikten de Romeinen een vooraf overeengekomen verschuiving van de letters – alleen de persoon die wist van de overeengekomen letterverschuiving kon de boodschap ontcijferen.
Als de overeengekomen dienst bijvoorbeeld 5 was, dan zou de zin “Dit is super interessant!” Worden gecodeerd in “YMNX NX XZUJW NSYJWJXYNSL!”
Gedurende de Middeleeuwen was er een snelle ontwikkeling van versleutelingsmodellen met poly-alfabetische substitutie (meerdere substitutie alfabetten die worden gebruikt om het succes van decodering te minimaliseren).
Toen vond er een andere belangrijke ontwikkeling in encryptie plaats rond 1933 tot 1945, toen Duitse cryptologen de wereldberoemde Enigma-machine creëerden.
Tot deze periode werden alle versleutelingsmodellen ontworpen met behulp van een symmetrische sleutel – ik zal dit later in het artikel uitleggen.
In 1976 creëerde IBM een versleutelingsmodel dat later werd besloten de Amerikaanse Data Encryption Standard (DES) te zijn. Het had wereldwijde acceptatie bereikt, grotendeels omdat het 20 jaar aan aanvallen had doorstaan. Het werd later vervangen door AES-codering, die later zal worden besproken.
In hetzelfde jaar publiceerden Whitfield Diffie en Martin Hellman “New Directions in Cryptography.” Ze legden de basis om een van de belangrijkste fundamentele problemen (op dat moment) van encryptieschema’s op te lossen: hoe de encryptiesleutel naar de bedoelde persoon te distribueren ( s) op een veilige en beveiligde manier.
Nieuwe routebeschrijvingen in cryptografie werden beschouwd als een doorbraak en zorgden voor een tijdperk van nieuwe cryptografieschema’s, met behulp van een openbare sleutel met asymmetrische algoritmen en nieuwe authenticatiemethoden – die ik in de asymmetrische sectie van ‘Typen sleutelalgoritmen’ uitvoerig zal toelichten.
Wat is encryptie precies?
Encryptie is een moderne variant van oude cryptografieschema’s. Het is gebaseerd op een complex algoritme dat een ‘cipher’ wordt genoemd.
Het doel hiervan is om belangrijke informatie voor anderen te verbergen door gewone tekst in een reeks willekeurige cijfertekst te veranderen, waardoor het niet mogelijk is de leesbare tekst te lezen zonder de gegevens te decoderen met een speciale decoderingssleutel.
In cryptografie is platte tekst (niet-versleutelde informatie) de gegevens die zich voordoen in leesbaar materiaal, bijvoorbeeld die e-mail die u aan uw baas hebt geschreven.
Het tegenovergestelde van gewone tekst wordt cijfertekst genoemd. Cijfertekst (versleutelde informatie) is die informatie die een vorm van de originele en gecodeerde leesbare tekst bevat, maar die onleesbaar is voor mens en computer.
Eenvoudig gezegd, encryptie is het proces waarbij gevoelige gegevens of informatie worden omgezet in onbegrijpelijke gegevens.
Versleutelingssleutels zijn ontworpen om absoluut uniek te zijn, met behulp van een reeks verschillende algoritmen. De coderingssleutel wordt gebruikt om gegevens te coderen of te decoderen.
Dat betekent in feite dat een coderingssleutel in staat is om de gegevens te vermengen tot onleesbare tekens, en het kan die onleesbare tekens terugzetten naar gewone tekst.
Wanneer ik bijvoorbeeld een set gegevens codeer en een unieke sleutel maak om mijn gegevens te vergrendelen, kan ik de gecodeerde gegevens delen met mijn vrienden of collega’s. Om de gegevens te bekijken, is alles wat ze nodig hebben de coderingssleutel die ik heb.
Eén unieke sleutel die wordt gebruikt om gegevens te coderen en te decoderen, is alleen van toepassing op symmetrische codering, terwijl asymmetrische codering anders werkt, wat ik later zal bespreken.
Door hen de sleutel te geven, krijgen ze toegang tot de gegevens. Een andere term voor dit proces is ‘public-key cryptography’.
Machine-cryptografie – of rotormachine – werd bekend bij de meerderheid van het publiek tijdens de Tweede Wereldoorlog, toen de Duitsers de Enigma-code (machine) gebruikten om al hun communicatie te versleutelen.
Machinematige cryptografie bestaat uit een elektromechanisch systeem dat wordt gebruikt om geheime informatie te versleutelen en decoderen.
De Duitsers versleutelden al hun communicatiekanalen, van aanvalscoördinatie en strategieplanning tot rapportage. Het werd een van Groot-Brittannië’s belangrijkste en geheime taken om de Enigma-machine te ontsleutelen om te weten wat de Duitsers van plan waren te doen.
De Britse wiskundige Alan Turing vertrok – onder andere in een groep van Groot-Brittannië’s grootste wiskundigen – om de Enigma-code te decoderen, op een toen geheime locatie in Bletchley Park in Engeland.
In Bletchley Park slaagden Alan Turing en Gordon Welchman erin de code-brekende machine genaamd “Colossus” te bouwen.
Colossus werd de eerste programmeerbare digitale computer die unieke en krachtige encryptie- en decoderingssleutels kon genereren, wat een enorm keerpunt was in zowel de Tweede Wereldoorlog als de ontwikkeling van codering en decodering.
1. Waar wordt het versleutelingsalgoritme voor gebruikt?
Zoals te zien is in de geschiedenissectie, werden coderingsschema’s door belangrijke mensen gebruikt in oorlogstijd of om politieke redenen.
Hoewel encryptie vooral werd gebruikt door overheden en grote bedrijven voor de jaren 1970, veranderde de baanbrekende introductie van Whitfield Diffie en Martin Hellman’s “New Directions in Cryptography” dat in 1976.
Hun werk leidde tot de introductie van het RSA-algoritme op personal computers. Uiteindelijk werd codering op grote schaal geïmplementeerd in webbrowsers en dataservers om gegevens te beschermen.
In de wereld van vandaag wordt encryptie universeel gebruikt om gegevens te beschermen, bijvoorbeeld voor e-commerce, online betalen en bankieren, e-mailsoftware, cryptocurrency, opslag van klantgegevens en nog veel meer.
Bovendien maken SIM-kaarten, top-up boxen en Wi-Fi-modems allemaal gebruik van encryptie-algoritme-protocollen om gevoelige gegevens te coderen en te beschermen.
Versleuteling beschermt ook gegevens die tussen twee partijen worden gecommuniceerd, bijvoorbeeld de creditcardgegevens van een klant wanneer deze een online aankoop doet.
Hoewel de gegevens nog steeds kunnen worden onderschept, is deze onbegrijpelijk en daarom nutteloos voor spionnen of hackers.
Allerlei apparaten op een groot aantal verschillende netwerken coderen de communicatie tijdens het transport. Versleuteling wordt niet alleen gebruikt voor internettransits, maar ook voor ATM-transacties of mobiele telefoongesprekken.
Versleutelingsalgoritmen beschermen alle gegevens die worden verzonden.
2. Voorbeelden van een pre-modern gecodeerd bericht
Zoals eerder vermeld, zijn er eenvoudige coderingsschema’s en zijn er zeer geavanceerde coderingen. Denk aan het ATBASH- of Roman-versleutelingsschema? Een voorbeeld daarvan lijkt op het volgende.
Zoals je kunt zien in de afbeelding hierboven, heb ik “Sleutel: 2” geselecteerd, wat betekent dat “A” “C” is, enzovoort.
Als ik de instellingen wijzig, kan ik ook nummers toevoegen. Als ik de waarde “Sleutel” wijzig, neemt de complexiteit toe.
Als u het zelf wilt uitproberen, bezoekt u de website Crypto Corner.
3. Voorbeeld van een modern gecodeerd bericht
Ik heb nog niet alle concepten van moderne versleutelingsmethoden geïntroduceerd, maar ik heb dit voorbeeld toegevoegd om u een idee te geven van waar ik het later over zal hebben.
Laten we een zeer geavanceerde vorm van codering bekijken. Dit is een voorbeeld van de huidige versleutelingsmethoden, die volledig zullen worden uitgelegd in het gedeelte “Typen sleutelalgoritmen”.
Voor dit voorbeeld gebruik ik het codeprogramma “Pretty Good Privacy” (PGP).
Stel je voor dat je een e-mailprovider gebruikte met coderingsbeveiligingsbeveiliging. Over het algemeen zou een e-mail alleen leesbare tekst tonen, maar als u de decoderingssleutel niet bij een gecodeerde e-mail hebt, kan deze er als volgt uitzien.
Stap # 1: maak een private en publieke sleutel.
Stap # 2: Klik op ‘PGP-sleutels genereren’.
Het resultaat zou kunnen zijn zoals de afbeelding hieronder.
Stap # 3: Ga naar de coderings pagina.
Stap # 4: Schrijf vervolgens een voorbeeld van een e-mailbericht en klik op “Bericht versleutelen”.
Voor het volledige effect, hier is een kopie van de laatste reeks ciphertext (versleutelde e-mail):
hQEMAzfgieoHtIH5AQf/YVNmilR2WcFy26XyQElKi8fFcaA3GvM2RwC+u7tvKBB+PqUGW1sNE1t4t9FP+I42YrA/FhWle1Iw4QeB/f6SPBsvHWIXkcWcC3fymqfTUjH5kXoUfOZtbOVYEjrVNVoffG0J9BI3MoAe9DprwyTDeUbBUJGN7ftRnoMJZD2TWfBk4E/Qdfto5jPkB3UxHDQQAukWOCGVhEdz8EhnogL04YHmEUhFttCbGoL4lfCQ8liCBclkLTgDvkcWrq4CsQ+VzCrWESoIptaTDptV0X2owZ7C+q6aAlGKVaZmeFUH4izv/Q0C3CncGT2BSvNDw+sPbpsuv1JQ18Qolx1VnuoYcnAHbHtwp3pjROcGx11dqreMI9uOIpoI7WaA9we92kgd782MggGVWrs0G2idxJYwIBVx42yOQiRKumH/S/OxolFavk5ewoaro/MqUFZHERx2PDM38sX03G3aDK6VyoBhWTHDUvBzt5oPLDxFOvM7foDFS6MBga/2frrk+V/ud9CrNXa82l5GCzjY3gZ6q8n901iuUmqT3e5pJF5XgeIdxhIxOynRa6Mk9YzWWmCpZ27rmpm2hF11vG7z22vRt8EoBVPvn+9nptYO5N+f+3E1WjWItaUBme=LTfL
Zoals u kunt zien, veranderde het e-mailbericht in platte tekst dat ik schreef plotseling in een stukje onverstaanbare tekst. Dit slaat nergens op en is nutteloos voor iedereen die mijn e-mailbericht onderschept (voor degenen die de openbare coderingssleutel niet hebben).
Als je het zelf wilt testen, bezoek dan de iGolder-website (klik eerst op “PGP Key Generator”).
4. Wat betekent “coderingsalgoritme”?
In de meest eenvoudige vorm voert het coderingsprogramma een formule uit om uw gegevens (leesbare tekst) om te zetten in cijfertekst – geheime en onleesbare gegevens.
Dit proces werkt ook omgekeerd. Dus, cijfertekst kan worden teruggedraaid naar leesbare tekst (die u kunt lezen).
In het eerste voorbeeld in de vorige sectie, werd er slechts één berekening uitgevoerd, die elke letter van het alfabet met 2 vooruit bewoog.
Het tweede getoonde versleutelingsvoorbeeld heeft een veel groter aantal bits, wat betekent dat er een ongelooflijk aantal potentiële berekeningspatronen is.
Door gegevens of leesbare tekst in cijfertekst om te zetten, zouden de ongewenste ogen van hackers of anderen waarschijnlijk de informatie niet kunnen lezen.
Elk versleutelingsalgoritme maakt gebruik van een reeks bits – algemeen bekend als de “sleutel” – om de berekeningen uit te voeren. Hoe langer de coderingssleutel (hoe meer bits), hoe meer mogelijke berekeningspatronen kunnen worden gemaakt en hoe moeilijker het zal zijn om de cijfertekst zonder sleutel te decoderen.
De meeste coderingsalgoritmen gebruiken de “block cipher-methode”. Deze methode past een willekeurig algoritme toe in combinatie met een symmetrische sleutel om een tekstblok te coderen.
Met deze methode worden de vaste invoerblokken gecodeerd, die over het algemeen variëren van 64 tot 128 of 256 bits lang.
Een minder populaire en soms gebruikte methode is de ‘streammethode’. Deze methode is van toepassing op leesbare cijfers die worden gecombineerd met een pseudowillekeurige cijfercijfersstroom – of ‘sleutelstroom’. Het algoritme is van toepassing op elk binair cijfer in een gegevensstroom, een bit per input.
Hoe werkt de codering en wat is de rol van de sleutel?
De coderings / decoderingssleutel is vergelijkbaar met een normaal wachtwoord, bijvoorbeeld degene die u gebruikt voor uw e-mail. De sleutel is een essentieel onderdeel van het proces voor het coderen en decoderen van gegevens.
Typisch is een sleutel een willekeurige binaire of een werkelijke wachtwoordzin. De sleutel “vertelt” het algoritme welke patronen het moet volgen om gewone tekst om te zetten naar cijfertekst (en andersom).
Het is bijna vanzelfsprekend, maar de sleutel is een fundamenteel onderdeel van de bescherming van de privacy van informatie, een bericht of een gegeven. Het coderings- en decoderingsproces kan alleen worden gestart met behulp van de sleutel.
Vanwege het feit dat algoritmen openbaar beschikbaar zijn en voor iedereen toegankelijk zijn, kunnen de gecodeerde gegevens, zodra een hacker de coderingssleutel heeft gepakt, eenvoudig worden gedecodeerd naar gewone tekst.
De hacker kan de willekeurige binaire of wachtwoordzin van de sleutel kraken, of de hacker kan in uw systeem hacken en de sleutel verkrijgen door hem van u te stelen.
Daarom is het ongelooflijk belangrijk om een zeer sterke combinatie van verschillende letters (hoofdletters en kleine letters), cijfers en speciale tekens te maken. Of, nog beter, regelmatig de combinatie van de sleutel wijzigen.
Gewoonlijk betekent een grotere sleutelgrootte (langere sleutel) dat de complexiteit groter is. Dus de beveiliging is beter. Wanneer u een nieuwe sleutelgrootte voor een specifieke gegevensset maakt, kunt u het beste een virtueel toetsenbord gebruiken bij het invoeren van de letters, cijfers en speciale tekens.
Een virtueel toetsenbord beschermt u tegen potentieel geïnstalleerde keyloggers (malware) in uw systeem, die alles wat u doet op uw pc registreren. Door een virtueel toetsenbord te gebruiken, gebruik je niet echt je tastbare toetsenbord, maar in plaats daarvan klik je op een secundair toetsenbord op je scherm (dat niet kan worden vastgelegd door een keylogger omdat het allemaal visueel is).
Chatdiensten zoals bijvoorbeeld Telegram en WhatsApp versleutelen elk bericht dat de gebruiker verzendt. De software is zo ontwikkeld dat elk leesbaar bericht wordt omgezet in cijfertekst en alleen door de ontvanger kan worden gedecodeerd – bekeken in leesbare vorm.
Bovendien is digitale codering zeer complex en wordt deze als aanzienlijk moeilijk te kraken beschouwd.
Om een extra laag van complexiteit (en veiligheid) aan smartphoneversleuteling toe te voegen, wordt elke keer dat een paar smartphones een communicatiekanaal vormen, een extra schaal van bescherming rond dat kanaal gebouwd. De shell is in feite een nieuwe set algoritmen die een veilige verbinding tot stand brengen.
Veel op beveiliging en privacy gerichte e-mailproviders en chatdiensten beschermen de gegevens van hun gebruikers door end-to-end-codering te implementeren. Net als de andere typen codering worden berichten in cijfertekst gecombineerd.
Hoewel andere coderingsmethoden in paren werken, versleutelt één sleutel de gegevens, terwijl de andere sleutel kan worden gebruikt en gedistribueerd naar andere partijen om de gegevens te ontsleutelen. End-to-end-codering werkt anders.
End-to-end encryptie betekent in feite dat alleen degene die het bericht verzendt en degene die het ontvangt het kan lezen.
Eenvoudig gezegd, wanneer u een e-mail verzendt met end-to-end coderingsbeveiliging, kan zelfs de e-mailserviceprovider uw bericht niet lezen, omdat het al op hun server is gecodeerd.
1. Typen algoritmen sleutel
Een fundamentele pijler om een veilige communicatie tot stand te brengen, is gebaseerd op het belang van de sleutel.
Er zijn twee methoden voor codering:
Symmetrische sleutelalgoritmen: symmetrische algoritmen gebruiken dezelfde of exact dezelfde coderingssleutels voor zowel de codering van leesbare tekst als de decodering van cijfertekst.
Asymmetrische sleutelalgoritmen: Asymmetrische algoritmen gebruiken verschillende (unieke) sleutels voor de codering van leesbare tekst en de decodering van cijfertekst.
De asymmetrische algoritme-methode wordt vaak “Public-key Cryptography” genoemd.
Hoewel ik hier kort in het artikel kort op heb ingegaan, zal ik hieronder een meer gedetailleerde beschrijving geven.
Symmetrische sleutelalgoritmen
Symmetrische algoritmen gebruiken exact dezelfde sleutel voor het coderen van leesbare tekst en het decoderen van cijfertekst. Symmetrische sleutelalgoritmen worden vaak vastgesteld zoals in het volgende voorbeeld:
Wanneer twee partijen bepaalde gegevens of informatie op een veilige en geheime manier willen communiceren, kunnen beide partijen de wachtwoordzin van de sleutel uitwisselen voordat ze de gegevens delen. Dit kan bijvoorbeeld telefonisch of persoonlijk worden afgesproken.
Vervolgens zijn de twee partijen het erover eens dat een specifieke sleutel (wachtwoord) zal worden gebruikt om alle informatie en berichten die in de toekomst worden uitgewisseld, te beveiligen.
Dit type codering is eenvoudig te gebruiken voor alle betrokken partijen omdat ze de coderings- en decoderingssleutel maar één keer hoeven uit te wisselen. Vanaf dat moment is alle communicatie veilig.
Daarentegen vereisen asymmetrische algoritmen een nieuwe sleutel voor elk nieuw exemplaar van communicatie tussen twee partijen.
Bovendien zijn symmetrische sleutelalgoritmen sneller dan asymmetrische sleutelalgoritmen, omdat er maar één sleutel is. Asymmetrische algoritmen gebruiken een paar sleutels die wiskundig verbonden zijn – waardoor de wiskundige complexiteit toeneemt.
Een groot nadeel van symmetrische sleutelalgoritmen is dat als iemand die niet bevoegd is om de gegevens of informatie te bekijken, de sleutel kan verkrijgen, die persoon het onderschepte bericht dat tussen beide partijen is verzonden, gemakkelijk kan decoderen.
Als je veel verschillende communicatiekanalen hebt met verschillende partijen, kan het een uitdaging zijn om elke unieke sleutel te beheren die hoort bij een bepaalde persoon met wie je communiceert.
Asymmetrische sleutelalgoritmen
In tegenstelling tot de symmetrische algoritmen met één sleutel gebruiken asymmetrische sleutelalgoritmen een paar van twee sleutels om het algoritme uit te voeren.
Eén sleutel wordt gebruikt voor de codering van leesbare tekst en de andere sleutel wordt gebruikt voor het decoderen van cijfertekst.
De twee sleutels zijn een combinatie van letters, cijfers en speciale tekens die willekeurig gegenereerde strings maken.
De asymmetrische coderingssleutel maakt gebruik van een privésleutel en een openbare sleutel. Dat betekent dat degene die een bericht verzendt het kan coderen met een privésleutel die niet met de ontvangende partij is gedeeld. In plaats daarvan is de openbare sleutel beschikbaar voor iedereen om te gebruiken, maar deze geeft alleen toegang tot een beperkt stuk informatie.
Laat me dat verder uitleggen.
Asymmetrische codering zorgt voor een authenticatie. Tijdens het verificatieproces is de functie van de openbare sleutel om te verifiëren dat het bericht wordt verzonden door de houder van het private sleutelpaar. In ruil daarvoor kan alleen de gepaarde private sleutelhouder het bericht versleuteld decoderen met de openbaar gepaarde sleutel.
Stel je bijvoorbeeld voor dat de e-mailconversaties tussen mijn vrienden en ik zijn gecodeerd. Maar helaas is mijn vriend onzorgvuldig met zijn sleutel en verkrijgt een hacker zijn privésleutel.
Als die hacker al mijn e-mailgegevens kon onderscheppen, zou hij nu de berichten tussen onzorgvuldige vriend en mij kunnen lezen. Maar de aangetaste privésleutel geeft geen toegang tot andere berichten die ik heb verzonden.
Het essentiële voordeel hier is dat mijn andere gegevens veilig zouden zijn, omdat de andere mensen die ik berichten heb gestuurd me verschillende sleutels hebben gegeven.
De privésleutel wordt gemaakt op basis van uiterst complexe wiskundige berekeningen, die zijn gekoppeld aan het openbare sleutelpaar. Eenvoudig gezegd, als een bericht of een set gegevens is gecodeerd met een openbare sleutel, kan alleen het private sleutelpaar het decoderen – en omgekeerd.
Het grootste voordeel van het gebruik van asymmetrische sleutelalgoritmen is dat u nooit uw coderingssleutel of wachtwoordzin over een onveilig kanaal hoeft te delen of verzenden. Dus dat vermindert drastisch de mogelijkheid om gehackt te worden.
De openbare sleutel kan met iedereen worden gedeeld zonder de beveiliging in het gedrang te brengen, aangezien iedereen een bericht kan coderen met de openbare sleutel van de ontvanger. Maar het gecodeerde bericht kan alleen door de private sleutelhouder worden gedecodeerd naar platte tekst.
Asymmetrische sleutelalgoritmen hebben drie nadelen:
- U moet het authenticatieproces met een openbare sleutel voltooien elke keer dat een bericht wordt verzonden.
- Als u de privésleutel kwijtraakt, is het onmogelijk om de cijfertekst te decoderen.
- Het verwerken van het asymmetrische algoritme is veel langzamer in vergelijking met het symmetrische algoritme vanwege de wiskundige complexiteit en het is daarom niet geschikt om grote hoeveelheden gegevens te berekenen.
2. Hoe werkt encryptie veilig online communiceren?
Het Secure Sockets Layer (SSL) -protocol is een versleutelingsmethode die een veilige verbinding tussen een webserver en uw browser tot stand brengt.
Dat betekent dat de gegevens die u naar de webserver verzendt, worden beschermd tegen ongewenste lui. U kunt een beveiligde webserver herkennen door in uw zoekbalk naar het volgende te zoeken:
Dit is hoe het proces werkt:
De webserver biedt uw webbrowser zijn certificaat met zijn openbare sleutel. Vervolgens controleert de browser of het certificaat is uitgegeven door een certificeringsinstantie (een vertrouwde provider van SSL-beveiliging).
Uw browser gebruikt vervolgens deze openbare sleutel om de gegevens die u naar de webserver verstuurt, te versleutelen.
Om de gecodeerde gegevens te kunnen lezen, gebruikt de webserver zijn persoonlijke sleutel om de cijfertekst te decoderen.
Met andere woorden, alleen de webserver kan uw gegevens lezen, omdat alleen de webserver de persoonlijke sleutel heeft om uw gegevens te decoderen. Dit proces zorgt ervoor dat uw gegevens worden beschermd tegen hackers.
Geavanceerde coderingsstandaard (AES)
De geavanceerde versleutelingsstandaard is een symmetrisch blokcijfer en een deelverzameling van het Rijndael-cijfer.
Deze methode van symmetrische codering werd door het Amerikaanse National Institute of Standards and Technology gekozen als de belangrijkste versleutelingsstandaard voor beveiliging. De Amerikaanse overheid heeft daarom de AES aangenomen, die nu wereldwijd wordt gebruikt om gerubriceerde informatie te beschermen en gevoelige gegevens in software en hardware te coderen.
1. Hoe werkt AES-versleuteling?
De AES gebruikt drie verschillende blokcijfers:
- AES-128
- AES-192
- AES-256
Elk individueel blokcijfer kan gegevens versleutelen en decoderen in een vaste blokgrootte van 128 bits. De sleutelgrootte is respectievelijk 128, 192 of 256 bits.
Het verschil tussen het Rijndael-cijfer en het AES-cijfer is dat het Rijndael-cijfer aanvullende blok- en sleutelgroottes heeft geaccepteerd, maar het AES-cijfer heeft die functies niet geïmplementeerd.
2. Wat is de betekenis van blokgrootte?
Elk algoritme verwerkt blokcijfers in een bepaalde grootte.
Met andere woorden, het algoritme “breekt” de gegevens of leesbare tekst in blokken en verwerkt de berekeningen blok voor blok.
Elk blok bevat een vaste bitgrootte: bijvoorbeeld (zoals hierboven weergegeven), 128, 192 of 256 bits. De volledige reeks invoertekst wordt opgesplitst in exact dezelfde blokken, terwijl het algoritme de codering of decodering van de gegevens verwerkt.
Elk blok gewone tekst heeft een overeenkomstig blok van cijfertekst voor een specifieke sleutel (en vice versa).
3. Wat is de betekenis van sleutelgrootte?
De sleutelgrootte staat voor het aantal bits in de sleutel. Voor de AES is de sleutelgrootte direct gekoppeld aan de sterkte van het algoritme. Hoe hoger het aantal bits, hoe sterker de beveiliging.
Dus, 256-bits biedt extra beveiliging in vergelijking met 128-bits.
Korte toetsen kunnen kwetsbaar zijn voor brute force-aanvallen. Dat gezegd hebbende, AES-codering is bijna onmogelijk om met brute kracht te kraken.
Laten we een interessante voorbeeldberekening bekijken die is overgenomen van het Seagate-technologiepapier “128-bits Versus 256-bits AES-versleuteling”.
Om het in perspectief te plaatsen, als:
- Elke persoon op de planeet bezit 10 computers
- Er zijn 7 miljard mensen op de planeet
- Elk van deze computers kan 1 miljard sleutels testen combinaties per seconde
- Gemiddeld kun je na het testen de sleutel laten kraken 50 procent van de mogelijkheden
Dan, gezien die omstandigheden, zou de bevolking van de aarde één encryptiesleutel kunnen kraken in 77.000.000.000.000.000.000.000.000 jaar! En dat is alleen voor 128-bits AES-codering!
Zwakke punten in versleuteling
Vooral na het zien van de bovenstaande berekening, zou je kunnen geloven dat encryptie-algoritmen absoluut onbreekbaar zijn.
Helaas is dat niet waar.
Naarmate nieuwe zwakheden worden misbruikt, worden nieuwe versleutelingsmethoden gecreëerd om deze exploits tegen te gaan om nieuwe beveiligingslagen te bouwen.
De grootste zwakte van versleutelingsalgoritmen is het feit dat sommige algoritmen geen schijnbaar willekeurige snaren cijfertekst genereren, maar in plaats daarvan herkenbare patronen genereren.
Wanneer een hacker bijvoorbeeld een patroon kan identificeren, helpt het hen enorm om de cijfertekst te kraken.
Dit probleem is ook van toepassing op algoritmen die patronen genereren die voorspelbaar zijn, als gevolg van repetitieve en bepaalde gegevensinvoertests.
Het is onwaarschijnlijk dat een hacker alle codeblokken kraakt, maar het blootstellen van slechts enkele blokken kan al leiden tot het lekken van cruciale, gevoelige gegevens – en de gevolgen kunnen rampzalig zijn.
De tijd, moeite en computationele kosten die nodig zijn om een algoritme zoals de AES te kraken, maken het echter een extreem dure onderneming en een poging is vrij zinloos.
De grootste bedreigingen voor de beveiliging van gecodeerde gegevens liggen meestal buiten de kracht van technologie. Denk aan keyloggers die loggen welke sleutel of wachtwoordzin u invoert, evenals backdoors en andere vormen van malware die worden gebruikt om coderingssleutels te verkrijgen.
Als u uw Windows- of Mac-apparaat tegen dergelijke bedreigingen wilt beschermen, lees dan mijn bericht over de beste antivirussoftware.
Wat we hebben geleerd
Geweldig! U bent aan het einde van deze uitgebreide gids met veel informatie gekomen om u een beter begrip te geven van wat codering is en hoe het werkt.
Het is veilig om te zeggen dat gegevensbescherming belangrijk is voor iedereen, niet alleen voor overheden en grote ondernemingen. Je eigen privacy staat op het spel!
Nu weet u dat codering leesbare tekst (leesbare tekst) omzet in ciphertext (onleesbare tekst).
In het algemeen werkt codering op die manier, maar er zijn verschillende methoden zoals symmetrische en asymmetrische codering, die beide een andere benadering hanteren voor de manier waarop de gegevens worden gecodeerd en hoe deze kunnen worden gedecodeerd.
Nu is het tijd om te genieten van een veilige manier om gevoelige gegevens en berichten te verzenden en ontvangen!