Articles

Symmetriska krypteringsalgoritmer: Live Long & Kryptera

Mycket som tribbles i Star Trek, symmetrisk kryptering är överallt. Vi utforskar symmetriska nyckelalgoritmer och tar dig till platser som ingen icke-IT-person har gått före

symmetriska krypteringsalgoritmer är de underliggande processerna som möjliggör säker kommunikation. Om du skulle lägga det i Star Trek-relaterade termer är symmetriska algoritmer warpdriften för ditt stjärnskepps framdrivningssystem., De är integrerade i informationssäkerhet och är det som hjälper ditt företag att gå vidare med datakryptering säkert och med snabbare än ljushastigheter.

(Ja, jag vet, jag flyger verkligen min nörd flagga högt Idag. Medan fascinerande, symmetriska nyckelalgoritmer är inte exakt ”ljus” eller lätt läsning — Så jag måste ha lite kul när du skriver. Jag är cybersäkerhetsförfattare, inte kryptograf.)

se till att uppdatera ditt kaffe (eller earl grey tea, om det är mer din hastighet)., Vi är på väg att ta en djupdykning till att utforska vilka symmetriska krypteringsalgoritmer som är, varför de är viktiga och vilka de vanligaste symmetriska krypteringsalgoritmtyperna är.

gör det så.

låt oss hash det ut.

Redaktörens anmärkning: Den här artikeln är den första i en serie artiklar om symmetrisk kryptering., Var noga med att kolla in de relaterade artiklarna nedan:

  • symmetrisk kryptering 101: Definition, hur det fungerar & när det används
  • Asymmetrisk vs symmetrisk kryptering: definitioner & skillnader
  • Block chiffer vs Stream Cipher: vad de är & hur de fungerar&

skillnader

  • Block Cipher vs Stream cipher: vad de är &

    vad är en symmetrisk algoritm och hur fungerar den?

    symmetriska algoritmer är de kryptografiska funktioner som är centrala för symmetrisk nyckelkryptering., De är en uppsättning instruktioner eller steg som datorer följer för att utföra specifika uppgifter som rör kryptering och dekryptering av data.

    Känns som om du behöver en universell översättare? Okej, låt oss bryta ner det här lite mer.

    symmetriska krypteringsalgoritmer används (kombinerat med en krypteringsnyckel) för att göra två huvud saker:

    1. kryptera. Konvertera läsbar text (plaintext) till oläsbar, krypterad text (ciphertext).
    2. dekryptera. Konvertera ciphertext tillbaka till plaintext.

    symmetriska krypteringsalgoritmer använder samma krypteringsnyckel för både kryptering och dekryptering., (Till skillnad från asymmetriska krypteringsalgoritmer, som använder två olika nycklar.)

    krypteringsalgoritmer är i allmänhet baserade i matematik och kan variera från mycket enkla till mycket komplexa processer beroende på deras design. När det gäller symmetriska krypteringsalgoritmer paras de ihop med en enda nyckel för att konvertera läsbar (plaintext) data till obegriplig gibberish (ciphertext). De använder sedan samma nyckel för att sedan dekryptera ciphertext tillbaka till plaintext. Och allt detta görs på ett sätt som säkerställer datasekretess och integritet. Ganska coolt, va?,

    symmetriska krypteringsalgoritmer är faktiskt kända av några olika namn:

    • symmetriska nyckelalgoritmer,
    • symmetriska chiffer,
    • hemliga nyckelalgoritmer och
    • Bulk chiffer. (Vi pratar mer om bulkchiffer lite senare.)

    i allmänhet är syftet eller målet med kryptering att göra det så att endast någon med nyckeln kan dekryptera och läsa det hemliga meddelandet., Om du behöver en snabb påminnelse om hur symmetrisk kryptering fungerar, här är en snabb överblick:

    det här exemplet meddelandet krypterades med AES 128 symmetrisk krypteringsalgoritm. Målet här är bara att visa dig hur en symmetrisk kryptografi fungerar.

    i den här bilden ovan, flyttar från vänster till höger, ser du att du börjar med klartext, läsbar data. När den symmetriska krypteringsalgoritmen och nyckeln tillämpas på dessa data blir den oläsbar ciphertext., Sättet att dekryptera det meddelandet för att dechiffrera dess mening är att använda en dekrypteringsnyckel. Vid symmetrisk kryptering är dekrypteringsnyckeln identisk med nyckeln som användes för att kryptera data. I grund och botten använder du samma nyckel två gånger.

    Vad gör symmetriska krypteringsalgoritmer egentligen?

    i ett nötskal är en symmetrisk algoritm en uppsättning instruktioner i kryptografi som använder en nyckel för att kryptera och dekryptera data. Dessa krypteringsalgoritmer och nycklar är lätta i den meningen att de är utformade för hastighet vid bearbetning av stora block eller strömmar av data., (Det är därför symmetriska krypteringsalgoritmer kallas bulk chiffer.)

    asymmetriska nyckelalgoritmer och nycklar är å andra sidan resursätare. Nycklarna är massiva och är dyra att använda i skala. Vad jag menar är att de suger upp mycket av dina CPU-bearbetningsresurser och tid, batterikraft och bandbredd att utföra.

    Kom ihåg hur vi beskrev symmetriska algoritmer som en nyckelkomponent i din warpdrift? Låt oss fortsätta med den analogi., Så, om du skulle tänka på vilka asymmetriska krypteringsalgoritmer som är, skulle de vara som motsvarigheten till styrraketerna i framdrivningssystemet. Visst, de kommer att få dig dit så småningom, men de är inte lämpliga för snabb kryptering i skala.

    de är dock bra för att kryptera mindre datamängder i offentliga kanaler. Och asymmetriska nyckelutbyten (som vi kommer att prata mer om inom kort) är ett bra sätt att distribuera nycklar i de osäkra offentliga kanalerna.

    det är därför människor ofta vänder sig till symmetrisk kryptering för kodning av stora mängder data.,

    Vad bestämmer styrkan hos en symmetrisk krypteringsalgoritm?

    som du snart kommer att upptäcka skapas inte alla symmetriska algoritmer lika. De varierar när det gäller styrka – men vad exakt betyder styrka i kryptografi? Det korta svaret är att kryptografisk styrka handlar om hur svårt det är för en hacker att bryta krypteringen för att få tillgång till data. Det längre svaret kan naturligtvis variera beroende på vilken typ av algoritm du utvärderar., Men i allmänhet kokar kryptografisk styrka vanligtvis ner till några viktiga egenskaper:

    • längden, slumpmässigheten och oförutsägbarheten hos den symmetriska nyckeln,
    • algoritmens förmåga att motstå eller vara resistent mot kända attacker och
    • brist på bakdörrar eller andra avsiktliga sårbarheter.

    symmetrisk kryptering kan vara lite av en balansakt eftersom du behöver algoritmer och nycklar som är beräkningsmässigt svårt men praktiskt nog att använda med acceptabel prestanda.,

    symmetriska krypteringsalgoritmer kan inte stå på egen hand i offentliga kanaler

    medan symmetriska krypteringsalgoritmer kanske låter som de mest logiska verktygen för alla typer av online-datakryptering är det inte så enkelt. Precis som den ständigt logiska spocken och den karismatiska kaptenen Kirk har symmetrisk kryptering också svagheter-särskilt när de används på egen hand i offentliga kanaler., Dessa svagheter kommer i form av nyckelfördelning och nyckelhanteringsproblem:

    • du behöver en säker anslutning för att distribuera symmetriska nycklar och
    • att försöka hålla jämna steg med alla som har en kopia av nyckeln kan vara en smärta om du gav ut det till många människor.

    När du använder symmetrisk kryptering, helst, du och den person du kommunicerar med sortera ut din hemliga nyckel i förväg (innan du använder den för alla datautbyten). Detta innebär att för att kunna dela en symmetrisk nyckel säkert med någon, skulle du behöva möta upp med dem personligen för att ge det till dem., Men vad händer om du är över hela landet från den andra parten? Eller, värre, vad händer om du är på andra sidan världen från dem?

    Även om detta inte skulle vara ett problem i Star Trek universum, där du helt enkelt kan transportera från en plats till en annan inom några sekunder, är detta inte möjligt i vår 21: a århundradet transportlös Värld. Här, människor utbyta information med webbservrar över hela världen varje ögonblick av varje dag. Detta innebär att människor inte kan träffas i förväg för att dela ut eller ta emot nycklar. Så vi måste lita på andra sätt att säkert byta nycklar med andra parter.,

    det är här asymmetriska algoritmer — eller, mer specifikt, viktiga utbytesprotokoll — kommer in i bilden. Asymmetriska nyckelutbyten gör det möjligt att byta symmetriska nycklar i annars osäkra offentliga kanaler. Vad du kanske eller kanske inte inser är att du faktiskt använder denna kombination av symmetriska och asymmetriska krypteringstekniker just nu.

    asymmetriska tekniker gör säker symmetrisk kryptering möjlig via Internet

    låt oss betrakta din anslutning till vår webbplats som ett exempel. Ser du hänglåsikonen i din webbläsare?, Det betyder att du är ansluten till en säker webbplats.

    så, när du ursprungligen anslutit till TheSSLstore.com, din webbläsare var tvungen att utföra en process med vår server som är känd som en TLS handslag. Detta handslag är ett sätt för servern att bevisa för din webbläsare att det är legitimt och är inte en bedragare. (Du vet, för cyberbrottslingar älskar att låtsas vara andra människor att lura människor i kontakt med dem. De är ungefär som romulaner på det sättet — alltid ägnar sig åt undanflykter.,) Handskakningsprocessen använder asymmetrisk kryptering och asymmetriska nyckelutbytesprocesser för att göra detta.

    • den asymmetriska krypteringsprocessen verifierar de digitala signaturerna.
    • den asymmetriska nyckelutbytesprocessen krypterar Pre-master-hemligheten som din webbläsare och webbservern använder för att skapa en symmetrisk sessionsnyckel.

    det finns naturligtvis några versioner av handslaget — TLS 1.0, TLS 1.2, TLS 1.3 — och det finns specifika skillnader i hur de fungerar. (Till exempel driver Internet Engineering Task Force för strikt användning av framåthemligheter-endast chiffer i TLS 1.,3 – men det är ett ämne för en annan gång.) Vet bara att endast TLS 1.2 handskakning ska vara det minsta som används. Från och med oktober 2020 rapporterar Qualys SSL Labs att 99% av webbplatserna stöder TLS 1.2-protokollet och 39.8% stöder TLS 1.3-protokollet.

    Vi kommer inte att komma in i detaljerna om hur TLS handskakning fungerar här, men vet att det innebär användning av chiffer sviter., Dessa grupper av chiffer är vad som hjälper till att göra det möjligt att upprätta en säker, HTTPS-anslutning genom att bestämma vilken av följande som ska användas:

    • ett protokoll (TLS)
    • en asymmetrisk nyckelutbytesalgoritm (som Diffie-Hellman)
    • en bulkkryptering chiffer
    • en digital signatur
    • en hashfunktion (som SHA2-2)
    • en meddelandeautentiseringskod (MAC) funktion

    Du kan läsa mer om processen i denna explainer blogg om hur TLS handslag fungerar. Men för nu, låt oss stanna med ämnet till hands av symmetriska krypteringsalgoritmer.,

    de två typerna av symmetriska algoritmer (Ciphers)

    under den symmetriska krypteringen som sker när du ansluter säkert till en webbplats använder du en bulkchiffer för att få det att hända. Det finns två underkategorier av bulkchiffer: block ciphers och stream ciphers.

    blockera chiffer

    i denna typ av chiffer bryter plaintext data ner i fasta grupper av bitar som kallas block (som vanligtvis är anslutna via en process som kallas kedja). Varje block blir sedan krypterad som en enhet, vilket gör denna process lite långsam., Och om det inte finns tillräckligt med data för att helt fylla ett block, används ”padding” (vanligtvis ett överenskommet antal 0s) för att säkerställa att blocken uppfyller kraven på fast längd.

    den ideala blockchiffret har en massiv nyckellängd som inte är praktisk, så många moderna chiffer måste skala tillbaka nyckelstorlekar för att göra dem användbara. Men bara som en snabb anteckning: till skillnad från med asymmetrisk kryptering bestämmer symmetriska krypteringsnyckelstorlekar inte storleken på datablocken.,

    majoriteten av moderna symmetriska krypteringsalgoritmer faller inom block chiffer camp, och dessa typer av chiffer har bredare användnings-och applikationsmöjligheter. Så vi kommer främst att fokusera på dem här. Men om du undrar vad de mest populära eller vanliga stream chiffer är, oroa dig inte, vi har dig täckt.

    Stream Ciphers

    med denna typ av chiffer krypterar den plaintext-data en bit i taget. Som sådan behandlas data i en ström snarare än i bitar som i block ciphers. Detta gör processen mindre resurskrävande och snabbare att uppnå.,

    nu kommer vi inte att komma in i alla specifika block ciphers och stream ciphers — det är ett helt annat ämne. Men den goda nyheten är att vi redan har skrivit en artikel som täcker block ciphers vs stream ciphers. Så, se till att kontrollera att en ut för en mer djupgående titt på vad de är och hur de fungerar.

    Okej, nu är det här saker börjar bli spännande (eller mer komplicerat, beroende på ditt perspektiv). Med delad nyckelkryptering finns det flera välkända symmetriska nyckelalgoritmer att veta., Låt oss bryta ner dem alla för att förstå vad de är och hur de fungerar.

    symmetrisk Algoritmlista: de 3 Vanligaste symmetriska Algoritmtyperna

    För det här avsnittet har vi sammanställt en symmetrisk algoritmlista som hjälper oss att navigera i de vanligaste symmetriska ciferna. Vi börjar med en av de äldsta och arbetar oss fram till den ”senaste och bästa” — vilket betyder den algoritm som vi vanligtvis använder idag för modern symmetrisk kryptering.

    Data Encryption Standard (DES)

    först upp på vår lista är data encryption standard., DES, även känd som DEA (kort för datakrypteringsalgoritm), är en av de tidigaste symmetriska krypteringsalgoritmer som sedan har föråldrats. Den är baserad på Feistel-chiffret (ungefär som många andra sorter av blockchiffrar) och ansågs faktiskt vara en av de första symmetriska algoritmerna som antogs som en Federal Information Processing Standard (FIPS) i 1976.

    DES går tillbaka till början av 1970-talet när dess ursprungliga form (”Lucifer”) utvecklades av IBM cryptographer Horst Feistel., IBM rapporterar att krypteringsmetoden ursprungligen skapades på uppdrag av Lloyds Bank of the United Kingdom. National Bureau of Standards (numera känt som National Institute of Standards, eller NIST för kort) slutade söka förslag till en kommersiell ansökan om kryptering, och IBM lämnade in en variation av det. Det var till och med önskvärt för användning av National Security Agency (NSA) för att skydda sina uppgifter.

    denna typ av symmetrisk kryptering kartor ingångar av en viss längd till utgångar av en viss längd., Som sådan fungerar den på 64-bitars block-vilket innebär att den kan kryptera data i grupper på upp till 64 block samtidigt — och har en nyckelstorlek på 56 bitar. Det finns också 8 ytterligare paritetsbitar till nyckeln, som fungerar som ett sätt att kontrollera dataöverföringsfel. Det är dock viktigt att notera att paritetsbitar inte är något du någonsin skulle använda för kryptering.

    denna storleksnyckel är faktiskt mycket liten enligt dagens standarder, vilket gör den mycket mottaglig för brute force-attacker., Nyckeln och blocklängderna skiljer sig också från den ursprungliga Lucifer-nyckeln och blocklängderna, vilka båda reducerades från 128 bitar.

    om du vill veta mer om hur DES kryptering och Feistel nätverk fungerar, kolla in denna stora video från Coursera och Stanford University.

    Data Encryption Standard (DES) dokument (FIPS PUB 46-3) var officiellt tillbaka den 19 Maj, 2005, tillsammans med de handlingar som FIPS 74 och FIPS 81., National institute of Standards and Technology: s handelssekreterare publicerade följande i det federala registret:

    ”dessa FIPS dras tillbaka eftersom FIPS 46-3, DES, inte längre ger den säkerhet som behövs för att skydda Federal government information. FIP 74 och 81 är tillhörande standarder som föreskriver genomförande och drift av DES.”

    DES-kryptering efterträddes av triple data encryption algorithm (TDEA) för vissa program, men inte alla., DES ersattes dock främst som en rekommendation av advanced encryption standard, eller vad som kallas AES-kryptering, i 2000. Detta är vad vi oftast använder idag för symmetrisk kryptering.

    nu, låt oss utforska dessa två andra typer av symmetriska krypteringsalgoritmer.

    Triple Data Encryption Algorithm (TDEA)

    triple data encryption algorithm, som skapades i slutet av 1990-talet, är lite knepigt eftersom det faktiskt går under flera benämningar: TDEA, TDES, och 3DES., Men som du förmodligen kan gissa från sitt namn är 3DES baserat på begreppet DES men med en vridning.

    Till skillnad från sin föregångare använder TDEA flera separata nycklar för att kryptera data — en variant av TDEA använder två nycklar och den andra varianten använder tre nycklar (därav ”trippeln” i sitt namn). Den starkare av de två är den som använder tre nycklar.,

    här är en illustration av hur tdea-processen med tre nycklar fungerar:

    detta är en förenklad bild av processen för att visa hur tdea fungerar för att kryptera klartext till obestämbar chiffertext.

    användningen av flera nycklar gör behandlingen av data långsam och ökar beräknings overhead, vilket är anledningen till att organisationer ofta hoppade över 3DES och flyttade rakt på att använda AES.

    tdea använder en anständig 168-bitars nyckelstorlek., Men som DES, 3DES fungerar också på små 64 – bitars block. Dess lilla blockstorlek gjorde den mottaglig för sweet32-sårbarheten (CVE-2016-2183 och CVE-2016-6329), eller vad som kallas sweet32 birthday attack. Detta utnyttjande utnyttjar en sårbarhet som gör det möjligt för oavsiktliga parter att komma åt delar av DES/TDEA-krypterade data.

    tdea symmetrisk nyckelkrypteringsalgoritmen är inställd på att försämras när det gäller att vara användbar för kryptografiskt skydd i 2023. Men under tiden, NIST sp 800-76 Rev., 2 anger att 3DES kan användas av federala statliga organisationer för att skydda känsliga oklassificerade data så länge den används ” inom ramen för ett totalt säkerhetsprogram.”Ett sådant program skulle omfatta:

    • God informationssäkerhetspraxis,
    • starka fysiska säkerhetsrutiner och
    • datornätverk eller systemåtkomstkontroller.

    Advanced Encryption Standard (AES)

    AES är den vanligaste typen av symmetrisk krypteringsalgoritm som vi använder idag. Faktum är att även NSA använder AES-kryptering för att skydda sina känsliga data.,

    AES är en variant av Rijndael-familjen med symmetriska krypteringsalgoritmer. Till skillnad från dess DES eller tdea motsvarigheter, det är baserat på en substitution-permutation nätverk. Så, den använder detta som sin grund i stället för Feistel chiffer. Du hittar den avancerade krypteringsstandarden som används för allt från SSL / TLS-kryptering till trådlös och processorsäkerhet. Det är snabbt, säkert och ökar inte märkbart din bearbetning overhead (åtminstone när du använder rätt nyckel).,

    AES arbetar med blockstorlekar på 128 bitar, oavsett vilken nyckelstorlek som används, och utför krypteringsoperationer i flera omgångar.

    det finns totalt fyra AES-krypteringsunderprocesser:

    1. AddRoundKey
    2. SubBytes
    3. ShiftRows
    4. MixColumns

    rundorna, som utförs på plaintext-data, använder substitutioner från en söktabell. Så, en av rundorna ser liknande ut:

    detta är ett illustrativt exempel på ShiftRows-operationen.,

    AES, som blev den nya FIPS-godkända krypteringsstandarden efter byte av DES och superseding 3DES, har en maximal nyckelstorlek på upp till 256 bitar. Detta är ungefär 4,5 gånger större än en DES-nyckel. Alla större, och det skulle inte vara praktiskt för applikationer i skala. Nu bestämmer storleken på nyckeln hur många rundor av operationer som ska utföras — till exempel kommer en 128-bitars nyckel att ha 10 rundor, medan en 256-bitars nyckel kommer att ha 14.

    naturligtvis är AES-kryptering otroligt stark., Så, alla försök att knäcka AES via brute force med modern datateknik är” meningslöst”, som ett visst kollektiv av cybernetiska individer älskar att säga. Till och med löjtnant Commander Data skulle troligen kämpa med en sådan beräkningsinsats. Jag säger Det eftersom även kvantdatorer inte förväntas ha så stor effekt på symmetrisk krypteringsalgoritm som den kommer på, säg, moderna asymmetriska krypteringsmetoder. (Symmetriska krypteringsmetoder skulle kräva att större nycklar är kvantbeständiga, medan offentliga nyckelmetoder inte längre är säkra.,)

    för en mer djupgående titt på den avancerade krypteringsstandarden, var noga med att kolla in vår andra artikel om ämnet. Där får du en mycket teknisk titt på hur AES fungerar.

    naturligtvis är dessa inte de enda tre symmetriska algoritmerna som används…

    det finns många andra typer av symmetriska krypteringsalgoritmer som är användbara för olika ändamål och kryptografiska funktioner. Bara för att ge dig en snabb smak, listan över några av dessa algoritmer inkluderar:

    naturligtvis finns det andra chiffer också — men vi kommer inte att inkludera dem alla här., Men det här ger dig åtminstone några exempel på vad som finns där ute när det gäller AES-algoritmer.

    där du hittar symmetriska algoritmer på jobbet

    symmetriska krypteringsalgoritmer, när de används på egen hand, är bäst lämpade för kryptering av data i vila eller i icke-offentliga kanaler. Jag säger Det eftersom de ofta finns att skydda rest-data i olika situationer, inklusive databaser, onlinetjänster och bankrelaterade transaktioner. (Det senare beror på att Betalkortsindustrin datasäkerhetsstandarder, eller PCI DSS för kort, kräver det.,)

    men de är inte de enda platserna de är användbara. Åh, nej-du hittar också symmetriska algoritmer som används över internet., När du använder dem i samband med asymmetrisk kryptering för nyckelutbyte — till exempel när du ansluter till en säker webbplats — kommer symmetrisk kryptering in i spel med tjänster som:

    • webbplatsdatautbyten
    • Googles G Suite av onlinetjänster
    • CodeGuard webbplats backup verktyg
    • SalesForce-plattform

    vad vi hashade ut på symmetriska krypteringsalgoritmer (TL;DR)

    kände inte för dykning i alla tekniska mumbo-jumbo? (Eller kände du inte för att läsa igenom mina nerdy Star Trek-jämförelser av symmetriska krypteringsalgoritmer?,) Inga problem. Här är några av de viktigaste hämtningarna från den här artikeln om symmetriska nyckelalgoritmer:

    • krypteringsalgoritmer är i grunden steg-för-steg-anvisningar för att utföra kryptografiska funktioner (till exempel kryptering, dekryptering, hashing etc.). Algoritmer finns i asymmetriska och symmetriska sorter. I den första krypterar en nyckel data och en annan dekrypterar data. I det senare utför en nyckel både krypterings-och dekrypteringsfunktionerna.
    • symmetriska algoritmer är effektiva processer som är utformade för att kryptera data i säkra, icke-offentliga kanaler.,
    • en process som kallas TLS handslag gör det möjligt för dig att använda en form av symmetrisk kryptering i offentliga kanaler.
    • Det finns många olika typer av symmetriska nyckelalgoritmer som har använts under de senaste åren. Tre av de vanligaste är DES, TDEA/3DES och AES.

    var noga med att hålla ögonen öppna för vårt nästa kapitel i den här bloggserien om symmetrisk kryptering under de kommande veckorna. Och till nästa gång… lev länge och riktigt.

    • #krypteringsalgoritmer
    • #Symmetric