Hoe werkt encryptie? – Gary legt uit

Hoe werkt encryptie? – Gary legt uit

u gebruikt waarschijnlijk elke dag encryptie, in een of andere vorm. Je weet misschien niet dat je dat bent, maar dat ben je wel. En ik denk dat je er geen seconde over nadenkt. Heeft u een op abonnement gebaseerde kabel-of satelliet-tv-dienst? Raad eens, een deel van die inhoud zal worden versleuteld. Maakt u verbinding met websites met behulp van https://? Dat is meer encryptie. Ooit een gemaakt .zip-bestand met een wachtwoord? Dat maakt gebruik van encryptie.,

Ik kan doorgaan en een lijst tientallen andere voorbeelden van elke dag encryptie, maar Ik zal niet. wat Android, Het ondersteunt ook encryptie, niet alleen voor het web met https://, maar ook voor uw bestanden en gegevens. Android 6.0 Marshmallow gebruikt volledige schijf encryptie, terwijl Android 7.0 Nougat heeft de optie voor per-file encryptie toegevoegd. Het idee is dat als uw telefoon in de handen van onvriendelijken moet vallen, dan is uw persoonlijke gegevens veilig.

Wat is versleuteling? Het is het proces van het nemen van gewone gegevens, inclusief tekst, en het omzetten in een onleesbaar (door mensen of computers) formulier., Het coderingsproces is gebaseerd op een sleutel, de analogie hier is een slot dat een sleutel nodig heeft, en alleen mensen met de sleutel kunnen ontgrendelen (decoderen) van de gegevens en zet het terug in zijn oorspronkelijke vorm. Dit betekent dat iedereen die bezit krijgt van uw versleutelde gegevens kan het niet lezen, tenzij ze de sleutel hebben.

zoals het personage Tom Jericho in de uitstekende film Enigma het formuleerde: “It turns plain-text messages into gobbledygook. Aan de andere kant is een andere machine, die het bericht terug naar de oorspronkelijke tekst vertaalt.”Encryptie en decryptie!,

het begon allemaal met Caesar

De kunst van het geheim schrijven, wat we versleuteling zouden noemen, bestaat al minstens 2500 jaar, maar het bekendste voorbeeld uit de oudheid is dat van de substitutiecode die Julius Caesar gebruikt om berichten naar Cicero te sturen., Een substitutiecode werkt als volgt, Je begint met het alfabet op één regel en voegt dan een tweede regel toe met het alfabet dat een beetje verschoven is:

A B C D E F G H I J K L M N O P Q R S T U V W X Y ZX Y Z A B C D E F G H I J K L M N O P Q R S T U V W

als je het woord” hallo ” wilt versleutelen, neem je de eerste letter, H, en kijk naar de letter eronder, die je E. Geeft dan geeft E B enzovoort. De gecodeerde vorm van HELLO is EBIIL. Om het te decoderen zoek je E op de onderste rij en zie je de H erboven, dan de B aan de onderkant om de E erboven te krijgen en ga zo maar door. Voltooi het proces om hallo te krijgen.,

in dit geval is de “sleutel” 3, omdat het alfabet drie naar rechts is verschoven (in plaats daarvan kunt u ook naar links schuiven). Als u naar Toets 5 gaat, dan krijgt u dit:

A B C D E F G H I J K L M N O P Q R S T U V W X Y ZV W X Y Z A B C D E F G H I J K L M N O P Q R S T U

nu is de versleutelde versie van HELLO CZGGJ. Heel anders dan EBIIL. In dit geval is de sleutel 5. Magie!

Er zijn echter enkele grote problemen met deze vorm van versleuteling. Allereerst zijn er slechts 26 sleutels. Je hebt misschien gehoord van mensen die praten over 128-bit sleutels of 256-bit sleutels, nou dit is een 5-bit sleutel (dat wil zeggen 26 in binair is 11010)., Het zou dus niet te lang duren om alle 26 variaties te proberen en te zien welke begrijpelijke tekst begint te produceren.

ten tweede heeft Engels (en andere talen) bepaalde kenmerken. Bijvoorbeeld, E is de meest populaire letter in het Engels, dus als je een goed stuk tekst had kon je zien welke letter het vaakst verschijnt en dan raden dat het E. Shift het onderste alfabet aan te passen aan E met de meest voorkomende teken en je hebt waarschijnlijk gekraakt de code. Ook zijn er slechts een paar letters die kunnen verdubbelen in het Engels, zoals OO, LL, SS, EE en ga zo maar door., Wanneer je een dubbel ziet zoals de II of GG (uit de voorbeelden hierboven) dan moet je proberen die op de alfabetten eerst te matchen.

De combinatie van de kleine sleutel en het feit dat dezelfde letter altijd versleutelt naar dezelfde corresponderende letter in het versleutelalabet betekent dat dit een zeer zwakke versleuteling is. En vandaag met computers die het harde werk doen, is dit meer dan zwak!,

meer alfabetten en onbreekbare encryptie

de zwakke punten van de Caesar-substitutiecode kunnen enigszins worden verlicht door meer dan één verschoven alfabet te gebruiken. Het voorbeeld hieronder kan worden uitgebreid tot 26 verschoven alfabetten waarvan er meerdere tegelijk worden gebruikt, maar niet allemaal.

A B C D E F G H I J K L M N O P Q R S T U V W X Y ZZ A B C D E F G H I J K L M N O P Q R S T U V W X YY Z A B C D E F G H I J K L M N O P Q R S T U V W XX Y Z A B C D E F G H I J K L M N O P Q R S T U V WW X Y Z A B C D E F G H I J K L M N O P Q R S T U VV W X Y Z A B C D E F G H I J K L M N O P Q R S T U

dus als we de sleutel op WVY zetten betekent dat we eerst het alfabet gebruiken dat begint met W, dan het alfabet dat begint met V en uiteindelijk het alfabet dat begint met Y. Dit wordt dan herhaald om het hele bericht te coderen. Dus Hallo zou DZJHJ worden., Merk op dat nu de dubbele L in Hallo niet is gecodeerd als hetzelfde teken, het is nu J en dan H. ook, de eerste J in de versleutelde tekst is de code voor L terwijl de tweede aan is de code voor O. dus J vertegenwoordigt nu niet altijd dezelfde platte tekst letter.

een versie van dit idee, met 26 alfabetten, is de basis van de Vigenère cipher die in de 16e eeuw werd gepubliceerd door Blaise de Vigenère. Een soortgelijk idee werd ook beschreven door Giovan Battista Bellaso in 1553., Het Vigenère-cijfer bleef 300 jaar onbreekbaar totdat het werd gekraakt door Charles Babbage en vervolgens door Friedrich Kasiski. Het geheim van het breken van de Vigenère cipher is begrijpen dat uiteindelijk dezelfde woorden kunnen worden gecodeerd met behulp van dezelfde letters, omdat dezelfde alfabetten worden gebruikt opnieuw en opnieuw. Dus het woord ” en ” kan worden gecodeerd anders de eerste paar keer dat het verschijnt, maar uiteindelijk zal worden gecodeerd met behulp van dezelfde letters opnieuw. Herhaling is over het algemeen de ondergang van een cipher.,

herhaling is de zwakte in de Caesar cipher, de Vigenère en alle varianten, maar er is een manier om een alfabet cipher te gebruiken om een onbreekbare geheime code te maken zonder herhalingen, het wordt de one-time pad genoemd. Het idee is dat in plaats van het gebruik van een verschoven alfabet dan een willekeurige opeenvolging van letters worden gebruikt. Deze volgorde moet echt willekeurig zijn en moet even lang zijn als het bericht.

I S T H I S U N B R E A K A B L EP S O V Y V U B M W S P A H Q T D

in plaats van een straight substitutie deze keer gebruiken we optellen, met een twist., Elke letter van het alfabet krijgt een nummer, A is 0, B is 1, C is 2 enzovoort. I is de 9e letter van het alfabet, wat betekent dat het een waarde heeft van 8. P (de letter eronder op ons one-time-cipher pad) 15. 8 + 15 = 25 wat betekent X. De tweede letter van ons bericht is S, die de waarde 18 heeft. Het gebeurt gewoon dat S is ook de letter op onze one-time pad (dat is geen probleem helemaal). 18 + 18 = 36. Hier is de twist, er is geen 36e letter van het alfabet. Dus we voeren een zogenaamde Modulus operatie uit., Wat dat eigenlijk betekent is dat we het resultaat delen door 26 (het aantal letters in het alfabet) en de rest gebruiken. 36/26 = 1 rest 10. De letter met de waarde 10 is K. Als u hiermee doorgaat is het laatste versleutelde bericht:

X K H C G N O O N N W P K H R E H

de reden dat deze code onbreekbaar is, is dat u de sleutel (de willekeurige tekenreeks) maar één keer gebruikt. Dit betekent dat iedereen die het bericht probeert te decoderen geen referentiepunt heeft en er geen herhaling is. Het volgende bericht dat wordt verzonden, zal een compleet andere willekeurige sleutel enzovoort gebruiken.,

het grootste probleem met eenmalige pads is om de sleutels bij de andere partij te krijgen zodat ze het bericht kunnen ontcijferen. Traditioneel werd dit gedaan met behulp van een boek in de vorm van een Kladblok, met de verschillende codes op elke pagina. Welke pagina ‘ s in gebruik waren zou elke dag veranderen en zodra een code werd gebruikt kon worden geript van het pad en weggegooid. Deze pads moeten echter op een veilige manier worden getransporteerd. Want als iemand anders de codes krijgt, kan de encryptie gekraakt worden., Dit betekende in principe dat je nodig had om te voldoen aan de andere partij voor de hand en het eens over welke codes zou worden gebruikt en wanneer. Het is de meest veilige methode, maar het is ook de meest omslachtige, en het is zeker geen werkbare oplossing voor de moderne digitale wereld van vandaag.

het digitale tijdperk

tijdens de 20e eeuw werd versleuteling gemechaniseerd, het beroemdste voorbeeld was de Enigma-machine die door de Nazi ‘ s tijdens de Tweede Wereldoorlog werd gebruikt. , Computer cryptografie heeft drie grote voordelen: Computers zijn flexibel, in tegenstelling tot mechanische kasten kunnen computers worden geprogrammeerd om veel verschillende bewerkingen op een bericht uit te voeren en het aantal en de complexiteit van deze bewerkingen kunnen relatief snel worden gewijzigd.

  • snelheid.
  • Computers behandelen binaire getallen en niet alleen letters.
  • De punten 1 en 2 zijn zeer belangrijk, vooral wanneer computers worden vergeleken met mechanische versleutelingsmethoden. Maar de paradigma verandering is dat computers omgaan met cijfers en niet letters., Dit betekent dat versleuteling kan worden toegepast op elk type gegevens. Een sms, een foto, een audiobestand, een film, een database, bestanden op een smartphone enzovoort.

    met de overgang van letters naar binair kwam er een verandering in de manier waarop versleuteling wordt uitgevoerd. Hele letters hoeven niet langer versleuteld te worden, maar in plaats daarvan kunnen de enen en nullen worden gemanipuleerd om nieuwe sequenties op te leveren. Het woord hallo in 8-bit ASCII is 0100100001000101010011000100110001001111. Vanaf hier kan het Binair worden gemanipuleerd op een groot aantal verschillende manieren. Het kan worden gesplitst, verschoven, toegevoegd, vermenigvuldigd, wat dan ook.,

    de methode die wordt gebruikt om de enen en nullen te verwerken staat bekend als een cryptografisch algoritme en er zijn veel verschillende soorten algoritmen. De belangrijkste kenmerken van een encryptie-algoritme zijn de veiligheid (kan het worden gekraakt) en de prestaties (hoe lang duurt het coderen of decoderen van gegevens).

    in het algemeen zijn er twee hoofdtypen van digitale versleutelingscodes, streamcodes en blokcodes. Met een stream cipher worden de gegevens versleuteld door byte op een moment. De gegevens worden verwerkt van het begin tot het einde en wordt gestreamd via de encryptie-algoritme., RC4 is een beroemd voorbeeld van een stream cipher. Het werd gebruikt in WEP en was een optionele encryptie methode voor verschillende andere protocollen en producten.

    stream cijfers zijn als eenmalige pads in die zin dat de gegevens niet alleen versleuteld tegen een enkele sleutel, maar eerder een opeenvolging van pseudo-willekeurige getallen die is gebaseerd op de sleutel. Het verschil tussen een eenmalige pad en een stroom cipher is dat met een eenmalige pad de sleutel moet echt willekeurig zijn. Met stream cijfers met behulp van dezelfde sleutel betekent dat je dezelfde volgorde van nummers, dat is wat het mogelijk maakt om het bericht te decoderen., Zonder de toets ziet de volgorde er echter willekeurig uit en is daarom moeilijk te breken.

    de zwakte van RC4 was dat onder bepaalde omstandigheden en onder bepaalde omstandigheden (vooral wanneer dezelfde gegevens herhaaldelijk werden versleuteld) het mogelijk is om te raden welke getallen de volgende keer in de reeks zouden kunnen komen. Deze gok vermindert het aantal mogelijke combinaties en maakt het mogelijk om een brute force attack (waarbij elke combinatie wordt geprobeerd) te gebruiken. Om de aanval te laten werken is veel data nodig. De RC4 NO MORE attack moet 75 uur aan versleutelde gegevens verzamelen, gebaseerd op 4450 verzoeken per seconde.,

    het andere belangrijke type cipher is het blok cipher. Dit werkt door de gegevens te verdelen in meer beheersbare blokken, zeg 64-bit. Elk blok wordt meerdere malen verwerkt, bekend als rondes (zoals in het boksen). Voor elke ronde wordt het blok verdeeld in twee gelijke delen, de linker en de rechter. Het rechterdeel blijft onaangeroerd terwijl het linkerdeel versleuteld is met een speciale functie, een ronde functie genaamd. De ronde functie neemt twee ingangen, de sleutel en het rechterdeel (het deel dat onaangeroerd is gebleven). Het resultaat van de ronde functie wordt dan “toegevoegd” aan het linkerdeel met behulp van XOR.,

    Dit model staat bekend als een Feistel Cipher, genoemd naar de uitvinder Horst Feistel die bij IBM aan encryptie werkte. Zijn werk leidde uiteindelijk tot de ontwikkeling van de Data Encryption Standard (DES). In 1977 werd DES de officiële encryptie standaard voor de Verenigde Staten en werd wereldwijd aangenomen. DES gebruikt 16 rondes die werken op 64-bit blokken. Het probleem met DES is dat de NSA de sleutelgrootte beperkt tot 56-bits. Hoewel dit in 1977 voldoende was, werd het eind jaren negentig mogelijk voor niet-gouvernementele organisaties om versleutelde berichten te breken.,

    JARGON BUSTER
    Exclusive OR (XOR) – dit is een logische bewerking op bitniveau die wordt toegepast op 2 invoerbits A en B. De Exclusive OR geeft true of false (1 of 0) terug op de vraag “A of B, maar niet, A en B”. Je kunt het zien als,”het een of het ander, maar niet allebei”. Dus, als A 1 is en B 0 dan is dat het een of het ander, dus het resultaat is 1 (waar). Hetzelfde resultaat geldt voor A is 0 en B is 1. Maar als A 0 is en B 0 dan is het resultaat 0 (onwaar), omdat beide dezelfde waarde hebben. Onwaar wordt ook gegeven voor A is 1 en B is 1.,

    maar de echte magie van XOR is dat het omkeerbaar is. Als een XOR B = C dan B XOR C = A, en een XOR C = B. Dit is erg belangrijk voor encryptie omdat het betekent dat gegevens kunnen worden versleuteld (waarbij A de gegevens is) met behulp van een sleutel (B) om de versleutelde gegevens (C) te krijgen. Later de versleutelde gegevens kunnen worden gedecodeerd door XOR het met de sleutel opnieuw om de originele gegevens te krijgen. De reden dat XOR wordt gebruikt in combinatie met ingewikkelde ronde functies en bit shifting operaties is omdat op zichzelf XOR kan worden verbroken met behulp van frequentieanalyse (vanwege de voortdurend herhalende toets).,

    In reactie op de zwakke punten van DES, werd een nieuwe standaard voorgesteld genaamd Triple DES (3DES). Die de gegevens drie keer versleutelde met DES, maar met drie verschillende sleutels. 3DES bood een manier om de sleutelgrootte te verhogen van 56-bits naar 168-bits zonder de noodzaak om een volledig nieuw blok cipher algoritme te ontwerpen. Vanwege enkele technische details is de effectieve sleutel 112 bits, maar als je een machine had die DES in 1 minuut kon kraken, zou het dezelfde machine ongeveer 260.658 jaar kosten om een Triple-DES-sleutel te kraken.,

    hoewel DES al bijna 25 jaar zijn doel had gediend, betekende de beperkte sleutellengte dat het tijd was voor een andere versleutelingsstandaard. In 2001 publiceerde het Amerikaanse National Institute of Standards and Technology (NIST) de Advanced Encryption Standard (AES). Het is geen Feistel cipher, maar eerder een substitutie-permutatie netwerk. Het gebruikt nog steeds blokken en rondes net als DES, maar tijdens elke ronde wordt de volgorde van de bits in het blok omgewisseld en wordt het resultaat gecombineerd met de sleutel met behulp van XOR.

    AES gebruikt 128, 192 of 256 bits toetsen en werkt op blokken van 128-bits., Het aantal gebruikte rondes is afhankelijk van de grootte van de sleutel. Het minimum is 10, wat wordt gebruikt voor 128-bit sleutels en het maximum is 14, wat wordt gebruikt voor 256-bit sleutels.

    AES, Android en de ARMv8-architectuur

    AES is de kern van de encryptie-subsystemen in Android. Voor Android 5.0 en Android 6.0 heeft Google het gebruik van AES met ten minste een 128-bits sleutel verplicht gesteld voor apparaten die volledige schijfversleuteling ondersteunen., Met Android 7, Google is verhuisd naar file based encryption (FBE)die het mogelijk maakt verschillende bestanden te versleutelen met verschillende sleutels, terwijl bestanden onafhankelijk worden gedecodeerd. Het lijkt erop dat FBE in Android 7 maakt gebruik van 256-bit AES.

    toen ARM de overstap maakte van 32-bit naar 64-bit definieerde het een nieuwe revisie van zijn instructiesetarchitectuur genaamd ARMv8. Naast het definiëren van de instructieset voor 64-bit ARM-chips, voegde het ook nieuwe instructies toe om delen van het AES-algoritme in hardware te implementeren. Tijdens elke ronde worden verschillende bits omgeruild en vervangen., Hoe de bits worden gemanipuleerd is goed gedefinieerd (en onderdeel van de standaard) zodat de AES-extensies in ARMv8 toestaan dat die delen van de encryptie gebeuren in hardware in plaats van software.

    het resultaat is bliksemsnelle encryptie, wat een verwaarloosbare invloed zou moeten hebben op de algehele prestaties van het systeem. De AOSP implementatie van file-based encryptie maakt gebruik van AES-256 en vereist een performance van minstens 50MB/s.

    public key cryptography and wrap-up

    het grootste deel van wat we tot nu toe hebben besproken is bekend als symmetrische encryptie., Om een bericht te versleutelen en te decoderen moeten zowel de afzender als de ontvanger de geheime sleutel kennen. Er is een vorm van versleuteling genaamd asymmetrische versleuteling waarbij er twee sleutels zijn, een voor het versleutelen van berichten en een andere voor het decoderen ervan. De encryptiesleutel kan vrij worden gepubliceerd voor iedereen die de ontvanger een bericht wil sturen, maar de decryptie sleutel moet geheim blijven, maar moet alleen bekend zijn bij de ontvanger. Dit betekent dat er een publieke sleutel en een private sleutel is. Dit systeem is de basis van hoe beveiliging op het Internet werkt, hoe het HTTPS: / / protocol werkt., Maar dat is een verhaal voor een andere dag!

    bij het afsluiten wil ik een waarschuwing toevoegen. Encryptie is een complex onderwerp en er is veel meer aan encryptie dan ik hier heb geschreven.

    Geef een reactie

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