Wat is een cipher?

Briefjes in geheimschrift doorgeven aan medeleerlingen: op school heb je het vast wel eens gedaan. Letters werden vervangen door tekens, cijfers of andere letters zodat de leraar de boodschap niet kon lezen. Wat je toen nog niet wist, is dat het schrijven en ontcijferen van deze briefjes verdacht veel leek op een eenvoudige cipher, vandaag de dag een belangrijk aspect van je online veiligheid!

Een cipher wordt gebruikt om data te coderen en weer decoderen. Hierdoor kan de data – net als vroeger op school – niet gelezen worden door andere partijen waar het bericht niet voor bedoeld is. In de moderne wereld wordt al onze persoonlijke informatie digitaal opgeslagen, wat dit des te belangrijk maakt. Voor het waarborgen van je online security is een cipher dan ook een zeer belangrijke schakel.

Inhoudsopgave

Cipher uitgelegd

Om cybercriminelen tegen te houden moeten, digitale gegevens en verbindingen goed beveiligd worden. Dit beveiligen gebeurt middels encryptie (coderen), wat inhoudt dat data onleesbaar of ontoegankelijk wordt gemaakt. De leesbare tekst, ook wel platte tekst genoemd, wordt omgezet naar een versleutelde of cijfertekst. Via decryptie (decoderen) wordt de data weer leesbaar gemaakt. Een cipher gebruikt een algoritme en een sleutel om een tekst te (de)coderen.

Er bestaan verschillende soorten ciphers die voorgegaan worden door een lange geschiedenis. Welke zijn dit, hoe werken ze en hoe kun je ze gebruiken om je data te beveiligen? Je leest het hier.

Bekende toepassingen van ciphers

Hoewel jouw eerste gebruik van een cipher misschien dat briefje in geheimtaal op school was, bestaan ciphers al veel langer. De eerste beschaving die gebruikmaakte van ciphers was het oude Rome, waar de overheid ciphers gebruikte om gevoelige informatie zoals militaire gesprekken te verzenden.

Tegenwoordig hebben ciphers veel verschillende toepassingen. Je gebruikt ze dagelijks, misschien zelfs zonder dat je het weet. Zo worden ciphers gebruikt voor:

  • Een authenticiteitscheck om te bevestigen dat een bericht of document ongewijzigd is vanaf het moment dat dit door de afzender werd verzonden. Dit wordt ook wel message authentication code (MAC) genoemd.
  • Berichten beveiligen die gedeeld worden via bijvoorbeeld Whatsapp. De telefoon van de zender codeert het bericht en de telefoon van de ontvanger decodeert dit weer.
  • Veilige communicatie tussen computers via het internet. Bekende ciphers die hiervoor zorgen zijn het Transport Layer Security (TLS) en voorheen het Secure Sockets Layer (SSL) protocol. Hierdoor wordt een beveiligde verbinding opgezet tussen jouw apparaat en een website, zonder dat iemand anders kan meekijken met wat je op de website doet. Dit is met name belangrijk bij bijvoorbeeld internetbankieren en online shoppen.
  • Pinautomaten die ciphers gebruiken om de ingevoerde pincode onleesbaar te maken.
  • Virtuele Persoonlijke Netwerken (VPN) die gebruikmaken van algoritmes om de verbinding van gebruikers te beveiligen, zodat andere partijen hier geen toegang tot hebben. Een VPN kan er ook voor zorgen dat medewerkers van een bedrijf op afstand toegang krijgen tot het beveiligde netwerk.
Score9.759.318.638.818.68
Prijs premiumversieVanaf €2.99 per maandVanaf €1.99 per maandVanaf €1.59 per maandVanaf €2.03 per maandVanaf $6.67 per maand
Korting63% 84% 85% 82% 35%
WebsiteBezoekBezoekBezoekBezoekBezoek

Hoewel ciphers onmisbaar zijn voor de ‘gewone’ internetgebruiker, kunnen ze binnen bepaalde sectoren zelfs van levensbelang zijn. Dit zijn sectoren die zeer gevoelige informatie opslaan, zoals de financiële sector, de gezondheidszorg en de militaire sector. Binnen zulke professionele gebieden worden ciphers vaak ingezet in moderne technieken, zoals:

  • Blockchain: een netwerk van gebruikers dat een database van transacties bijhoudt.
  • Kwantumcomputing: een computer die gebruikmaakt van kwantummechanische verschijnselen met behulp van gespecialiseerde hardware.

Geschiedenis van ciphers

Tegenwoordig kennen we ciphers als een techniek die vooral in de moderne technologie wordt toegepast, maar de discipline van cryptografie bestaat al eeuwen. De oude Grieken en Romeinen codeerden al teksten zodat mogelijke vijanden deze niet konden lezen. Sindsdien zijn cryptografie en ciphers steeds verder ontwikkeld.

Grieken en Romeinen

Teksten kunnen worden ge(de)codeerd door cipher apparaten. Het allereerste apparaat is waarschijnlijk rond 400 v.Chr. uitgevonden door de oude Grieken, zodat militaire commandanten in het geheim met elkaar konden communiceren.

Deze zogeheten ‘scytale’ bestond uit een bericht op een stuk papier dat als een spiraal rondom een cilinder werd gerold. Zonder deze cilinder leek het bericht te bestaan uit een willekeurige verzameling letters, maar door het rondom een cilinder met dezelfde afmetingen te rollen werd het leesbaar.

Ook de Romeinse politicus en generaal Julius Caesar gebruikte cryptografie om zijn berichten te coderen. Hier hield hij zo van, dat er zelfs een cipher naar hem is vernoemd: de Caesar Cipher. Iedere letter in een bericht wordt vervangen door de letter die een specifiek aantal plekken verderop in het alfabet staat.

Waarschijnlijk gebruikte Caesar hiervoor drie plekken, dus een A werd een D, een B werd een E etc. De tekst werd hierdoor onleesbaar, maar was makkelijk te ontcijferen wanneer je de techniek eenmaal in de gaten had.

Middeleeuwen

Aan het begin van de Middeleeuwen was cryptologie met name populair bij de Arabieren. Rond het jaar 800 ontwikkelde wiskundige Al-Kindi de frequentieanalysetechniek, dat de belangrijkste cryptanalytische vooruitgang bleek te zijn tot aan de Tweede Wereldoorlog.

Cryptanalyse is de wetenschap van het vinden van zwakheden in cryptosystemen, waardoor deze ontcijferd konden worden zonder de cipher. De frequentieanalysetechniek is gebaseerd op het idee dat bepaalde letters in een taal vaker voorkomen dan andere.

In het Nederlands komen bijvoorbeeld de e, n en a het vaakst voor. Wanneer in een gecodeerde Nederlandse tekst een letter vaak voorkomt, bijvoorbeeld de x, dan is het waarschijnlijk dat deze in plaats van de e staat. Zo kan een gecodeerde tekst met wat gepuzzel worden omgezet in de originele tekst.

In dezelfde periode werd in Engeland veel gebruikgemaakt van substitutieversleuteling, waarbij elke letter wordt vervangen door een andere letter, cijfer, symbool of een combinatie hiervan. De meest eenvoudige versie hiervan is monoalfabetische substitutie: iedere letter wordt vervangen door één ander teken.

Door de ontdekking van de frequentieanalyse was dit echter makkelijk te ontcijferen. Daarom werden ook andere vormen ontwikkeld:

  • Polygrafische substitutie: in plaats van enkele letters vervangen door andere tekens, worden combinaties van letters vervangen.
  • Homofone substitutie: het versleutelingsalfabet gebruikt meer symbolen dan het alfabet van de originele tekst. Veelvoorkomende letters krijgen meer substituten, zodat de frequentieanalysetechniek niet langer werkt.

Renaissance

Vanwege politieke competitie en religieuze revoluties werd cryptografie in Europa steeds populairder. De ene na de andere cryptografische techniek volgde elkaar snel op, al waren de meesten niet sterk en eenvoudig te ontcijferen.

De cryptograaf van King Louis XIV van Frankrijk was Antoine Rossignol, die samen met zijn familie de Great Cipher ontwikkelde. Deze verdiende zijn naam door onopgelost te blijven vanaf het eerste gebruik tot 1890, toen de Franse militaire cryptanalyst Étienne Bazeries de cipher kon oplossen.

sleutel

Negentiende eeuw

Een jaar later ontwikkelde Bazeries een geavanceerd codeerapparaat. Deze cilindrische cryptograaf bestond uit maar liefst twintig genummerde roterende schrijven, met elk het alfabet op de rand. Door de schijven op een bepaalde volgorde te rangschikken en roteren werden de eerste 20 letters van de originele tekst zichtbaar. Vervolgens werd de cijfertekst gevormd door een willekeurige rij te verwijderen. Ditzelfde werd gedaan met de daaropvolgende 20 letters, en zo door tot de hele tekst gecodeerd was.

Het decoderen van berichten werd in de 19e eeuw verder ontwikkeld met systematische methoden. Schrijver Edgar Allan Poe gebruikte deze methoden om gecodeerde teksten te ontcijferen. In een krant plaatste hij een oproep waarin hij de lezers uitnodigde zulke teksten in te dienen. Hij slaagde erin de meeste cijferteksten op te lossen. Zijn essay over deze methoden bleek van meerwaarde voor het ontcijferen van Duitse codes en ciphers door Britse cryptanalytici tijdens de Eerste Wereldoorlog.

Twintigste eeuw

In 1917 leidde de uitvinding van een teleprintercipher tot de ontwikkeling van elektromechanische apparaten zoals codeermachines en de one time pad, die bekendstaat als de enige onbreekbare cipher. Deze voortuitgang in technologie veroorzaakte in de jaren 1920 een revolutie in crypto-apparaten en de ontwikkeling van de rotorciphermachine, die de tekens van een platte tekst verving met andere tekens om zo een tekst te coderen.

Toen de Tweede Wereldoorlog aanbrak werden mechanische en elektromechanische codeermachines op grote schaal gebruikt. Met behulp van zulke machines was het een stuk makkelijker en sneller om teksten te coderen en weer te decoderen. Sinds het begin van de jaren zeventig wordt computertechnologie gebruikt om nieuwe en zeer geavanceerde crypto-apparaten en -systemen te creëren. Een bekend voorbeeld hiervan is de Fibonacci-generator.

Bekende historische ciphers

De geschiedenis van ciphers is lang en heeft geleid tot de uitvinding van enkele zeer bekende historische ciphers. De Caesar Cipher werd hierboven al besproken, maar er zijn er meer:

  • Atbash: het originele alfabet wordt gecodeerd door het alfabet in omgekeerde volgorde te gebruiken. Dus de A wordt een Z, de B wordt een Y en zo verder.
  • Simpele substitutie: iedere letter wordt vervangen door een andere letter in het alfabet.
  • Vigenère: bij het vervangen van de originele tekst wordt een tabel gebruikt met 26 rijen en kolommen, met daarin het alfabet dat per rij en kolom telkens een letter wordt verschoven. Aan de hand van een sleutelwoord wordt de tekst gecodeerd en gedecodeerd.

Welke soorten ciphers zijn er?

Alle ciphers bevatten geheime informatie die ook wel de cryptografische sleutel wordt genoemd. Aan de hand van deze sleutel wordt een tekst gecodeerd (in feite op slot gedaan) en weer geopend, of gedecodeerd. We vergelijken dit even met de geheime briefjes die je op school uitwisselde. Alleen jij en de ontvangen kenden de sleutel van deze geheimtaal (bijvoorbeeld a = b, b = c etc.). Hierdoor konden alleen jullie de tekst ontcijferen.

De sleutel van ciphers kan verschillen in complexiteit. De moeilijkste kunnen een supercomputer jaren kosten om te ontcijferen, terwijl makkelijkere sleutels zo ontdekt zijn. De complexiteit is niet altijd afhankelijk van de lengte van de sleutel, al wordt aangeraden een sleutel van minstens 128 bits te gebruiken.

Ciphers kunnen opgedeeld worden in categorieën op basis van de manier waarop de sleutel wordt gebruikt voor het (de)coderen van de platte tekst:

  • Blokciphers zetten uniforme blokken aan originele tekst om naar blokken gecodeerde tekst.
  • Stream ciphers coderen – in tegenstelling tot blockciphers – de originele tekst bit-voor-bit of woord-voor-woord.
  • Substitutieciphers vervangen bepaalde (combinaties van) letters door andere letters, symbolen en/of cijfers.
  • Transpositieciphers mixen de letters van de originele tekst, zonder deze te vervangen met andere tekens.

versleutelde verbinding

Symmetrische en asymmetrische ciphers

Kijkende naar het aantal sleutels dat een cipher hanteert, kunnen ciphers ook verdeeld worden in twee andere categorieën:

  • Symmetrische ciphers gebruiken slechts één sleutel voor encryptie en decryptie.
  • Asymmetrische ciphers gebruiken verschillende sleutels voor encryptie en decryptie. Dit zijn een publieke sleutel, die met iedereen gedeeld kan worden, en een geheime sleutel.

Moderne ciphers: hoe werken ze?

Moderne ciphers gebruiken een algoritme en een geheime sleutel om een platte tekst om te zetten in een ciphertekst en weer terug. Er zijn tal van ciphers die dit elk op hun eigen manier doen. We noemen een paar bekende moderne ciphers:

  • Advanced Encryption Standard (AES) is de meest gebruikte methode en de opvolger van de Data Encryption Standard (DES). AES zou lastiger te kraken moeten zijn dan DES en werkt met een blokgrootte van 128 bits en een sleutellengte van 128, 192 of 256 bits.
  • Hypertext Transfer Protocol Secure (HTTPS) wordt door websites gebruikt om gegevens op een veilige manier uit te wisselen. De versleuteling wordt toegepast op basis van TLS en zorgt ervoor dat uitgewisselde data voor andere partijen onleesbaar is.
  • End-to-End Encryptie (E2EE) houdt in dat alleen de zender en ontvanger van een bericht dit kunnen lezen. Deze cipher wordt gebruikt door apps zoals WhatsApp en Signal. Veelal werkt dit door de apparaten van de twee partijen die met elkaar communiceren met elkaar te koppelen, waarbij een geheime sleutel wordt vastgelegd. Hierdoor wordt het bericht bij verzenden versleuteld en na ontvangen weer ontsleuteld. Een buitenstaander kan het bericht niet lezen, omdat op zijn apparaat niet de juiste sleutel staat.
  • Rivest-Shamir-Adleman (RSA) wordt onder andere gebruikt door internetbrowsers Explorer en Firefox om de communicatie via internet te beveiligen. RSA maakt gebruik van een publieke en een geheime sleutel. Het algoritme is een ingewikkeld wiskundig principe dat wordt gebaseerd op twee hele grote priemgetallen.
  • Elliptic curve cryptography (ECC) kan gebruikt worden als alternatief voor RSA. De sleutels van ECC zijn korter, maar moeilijker te kraken dan RSA-sleutels. Ook ECC maakt gebruik van twee sleutels, maar in het geval van ECC is de vermenigvuldigingsfactor niet te achterhalen. Deze cipher is gebaseerd op de vorm y2=x3+ax+b.

end to end encryptie

Conclusie

Een cipher kan privégegevens beveiligen door aan de hand van een algoritme en een sleutel data te coderen en weer decoderen. Moderne ciphers worden onder andere gebruikt voor veilige communicatie via het internet of apps, authenticiteitschecks, pinautomaten en VPN’s. In de moderne wereld zijn ciphers onmisbaar om je persoonlijke en financiële gegevens te beschermen en in sectoren zoals de medische en militaire sector zelfs van levensbelang.

Naar aanleiding van hoe de sleutel wordt gebruikt en hoeveel sleutels een cipher hanteert, kunnen ciphers in verschillende categorieën worden ingedeeld. De ene sleutel is eenvoudiger te kraken dan de andere, maar over het algemeen wordt geadviseerd een sleutel van minstens 128 bits te gebruiken. Ciphers worden al gebruikt sinds de oude Grieken en Romeinen, met de Caesar cipher als oudste bekende historische cipher.

Tegenwoordig zijn ze niet meer weg te denken uit ons dagelijkse leven, al heb je het zelf misschien niet eens door!


Veelgestelde vragen over ciphers

Het decoderen van een ciphertekst zonder sleutel wordt ook wel cryptoanalyse genoemd. Moderne ciphers zijn bijna onmogelijk te decoderen zonder de sleutel. Het is immers de bedoeling de platte tekst zo goed mogelijk te beveiligen. Deze ciphers zijn gebaseerd op wiskundige modellen en kunnen enkel door wiskundigen worden ontcijferd.

Eenvoudige ciphers, waarbij letters één op één worden vervangen door andere letters, cijfers of tekens, kunnen worden ontcijferd aan de hand van frequentieanalyse: het teken dat in de ciphertekst het vaakst wordt gebruikt staat voor de letter die in de taal van de platte tekst het vaakst voorkomt. Hieruit kan de sleutel worden herleid en de tekst worden gedecodeerd.

Ciphers worden wijdverspreid ingezet om data te beveiligen. Ze beveiligen de berichten die internetgebruikers met elkaar delen en de privégegevens die online staan opgeslagen. Zo zorgen ze bij online communicatie voor een beveiligde verbinding, zodat derden de gedeelde gegevens niet kunnen lezen.

Bekende voorbeelden in je dagelijkse gebruik van het internet zijn online shoppen, internetbankieren, VPN’s en zelfs pinautomaten. Ook de communicatie via apps zoals WhatsApp wordt middels een cipher beveiligd.

De sleutel van een cipher is vaak nog belangrijker dan het algoritme. Alleen aan de hand van deze (geheime) sleutel kan de tekst ontcijferd worden, omdat de sleutel verduidelijkt welke tekens in de platte tekst zijn vervangen door welke tekens in de geheimtekst. Het is dan ook heel belangrijk om deze sleutel veilig te bewaren.

De meeste programma’s die sleutels genereren en opslaan zorgen voor een goede beveiliging, maar er zijn ook een paar dingen die je zelf kunt doen. Deel een sleutel bijvoorbeeld nooit via een openbaar medium, zodat deze niet onderschept kan worden. Zorg daarnaast voor een goede beveiliging van het apparaat waarop de sleutel staat opgeslagen. Gebruik een sterke antivirus, firewall en VPN, en beveilig accounts altijd met een ingewikkeld wachtwoord.

Zwakke punten van een cipher kunnen ervoor zorgen dat de ciphertekst wordt gedecodeerd door iemand die de sleutel niet heeft. Een voorbeeld hiervan is een zwakke sleutel die eenvoudig achterhaald kan worden. Het wordt daarom aangeraden sleutels te gebruiken van minstens 128 bits. Dit helpt ook tegen een brute force aanval, waarbij een hacker alle mogelijke opties probeert totdat hij er één vindt die werkt.

Categorieën: Security

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *