du bruger sandsynligvis kryptering, i en eller anden form, hver dag. Du ved måske ikke, at du er, men du er. Og mit gæt er, at du ikke giver det en anden tanke. Har du et abonnement baseret kabel eller satellit-TV-tjeneste? Gæt hvad, noget af dette indhold vil blive krypteret. Opretter du forbindelse til websebsteder ved hjælp af https://? Det er mere kryptering. Nogensinde skabt en .zipip-fil med en adgangskode? Du fik det, der bruger kryptering.,
jeg kunne gå på og en liste snesevis af andre eksempler på hver dag kryptering, men jeg vil ikke. Som for Android, er det også understøtter kryptering, ikke kun for web med https://, men også for dine filer og data. Android 6.0 Marshmallo.brugte fuld disk kryptering, mens Android 7.0 Nougat har tilføjet muligheden for PER-fil kryptering. Ideen er, at hvis din telefon skal falde i hænderne på uvenlige, så er dine private data sikre.
Så hvad er kryptering? Det er processen med at tage almindelige data, inklusive tekst, og konvertere dem til en ulæselig (af mennesker eller computere) form., Krypteringsprocessen er baseret på en nøgle, analogien her er en lås, der har brug for en nøgle, og kun personer med nøglen kan låse op (dekryptere) dataene og sætte dem tilbage i sin oprindelige form. Det betyder, at alle, der får fat i dine krypterede data, ikke kan læse dem, medmindre de har nøglen.
Som Tom Jericho-karakteren i den fremragende film Enigma udtrykte det, “det bliver almindelige tekstbeskeder til gobbledygook. I den anden ende er en anden maskine, som oversætter meddelelsen tilbage til den oprindelige tekst.”Kryptering og dekryptering!,
det hele startede med Caesar
kunsten at hemmelig skrivning, hvad vi ville kalde kryptering, har eksisteret i mindst 2500 år, men det mest berømte eksempel fra antikken er den substitutionscipher, der bruges af Julius Caesar til at sende beskeder til Cicero., En substitutionscipher fungerer sådan, du starter med alfabetet på en linje og tilføjer derefter en anden linje med alfabetet skiftet lidt:
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
Hvis du vil kryptere ordet “hej”, tager du det første bogstav, H, og ser på brevet under det, der giver dig E. Så giver E B og så videre. Den krypterede form for HELLO er EBIIL. For at dekryptere det du opslag E på den nederste række og se H over det, så B på bunden for at få E over det og så videre. Gennemfør processen for at få Hej.,
i dette tilfælde er “nøglen” 3, fordi alfabetet er blevet flyttet tre til højre (Du kan også skifte til venstre i stedet). Hvis du skifter til nøgle for at sige 5, får du dette:
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 vil den krypterede version af HELLO være C .ggj. Meget forskellig fra EBIIL. I dette tilfælde er nøglen 5. Magi!
Der er dog nogle store problemer med denne form for kryptering. Først og fremmest er der kun 26 nøgler. Du har måske hørt om folk taler om 128-bit nøgler eller 256-bit nøgler, godt det er en 5 bit nøgle (dvs.26 i binær er 11010)., Så det ville ikke tage for lang tid at prøve alle 26 variationer og se, hvilken der begynder at producere forståelig tekst.
for det andet har engelsk (og andre sprog) visse egenskaber. For eksempel er E det mest populære bogstav på engelsk, så hvis du havde en god del tekst, kunne du se, hvilket bogstav der vises mest og derefter gætte, at det er E. skift det nederste alfabet for at matche E med det mest almindelige tegn, og du har sandsynligvis knækket koden. Der er også kun få bogstaver, der kan fordoble sig på engelsk, som OO, LL, SS, EE og så videre., Når du ser en dobbelt som II eller GG (fra eksemplerne ovenfor), skal du prøve at matche dem på alfabeterne først.
kombinationen af den lille nøgle og det faktum, at det samme bogstav altid krypterer til det samme tilsvarende bogstav på cipher-alfabetet betyder, at dette er meget svag kryptering. Og i dag med computere gør det hårde arbejde, dette er ud over svag!,
flere alfabeter og ubrydelig kryptering
svaghederne ved Caesar-substitutionscifferet kan let afhjælpes ved at bruge mere end et skiftet alfabet. Eksemplet nedenfor kan udvides til 26 skiftede alfabeter, hvoraf flere bruges på severaln gang, men ikke alle af dem.
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
Så hvis vi sætter nøglen til WVY det betyder, at vi bruger alfabetet begynder med W først, derefter den ene starter med V, og endelig den ene starter med Y. Dette gentages til at kode hele meddelelsen. Så hej ville blive D .jhj., Bemærk, at nu den dobbelte L i HELLO ikke er kodet som det samme tegn, det er nu J og derefter H. også, den første J i den krypterede tekst er koden for L, mens den anden er koden til O. Så J repræsenterer nu ikke altid det samme almindelige tekstbrev.
en version af denne ID.med 26 alfabeter er grundlaget for Vigen .re-chifferet, der blev offentliggjort i det 16. århundrede af Blaise de Vigen .re. En lignende ide blev også beskrevet af Giovan Battista Bellaso i 1553., Vigen .re-chifferet forblev ubrydeligt i 300 år, indtil det blev revnet af Charles Babbage og derefter af Friedrich Kasiski. Hemmeligheden bag at bryde Vigen .re-chifferet er at forstå, at de samme ord i sidste ende kan kodes ved hjælp af de samme bogstaver, fordi de samme alfabeter bruges igen og igen. Så ordet ” og ” kan være kodet anderledes de første par gange det vises, men i sidste ende vil det blive kodet ved hjælp af de samme bogstaver igen. Gentagelse er generelt en chiffers undergang.,
gentagelse er svagheden i Caesar-chifferet, Vigen .re og alle varianterne, men der er en måde at bruge en alfabet-cipher til at oprette en ubrydelig hemmelig kode uden gentagelser, det kaldes engangspuden. Ideen er, at i stedet for at bruge en forskudt alfabet derefter en tilfældig sekvens af bogstaver anvendes. Denne sekvens skal være virkelig tilfældig og skal være den samme længde som meddelelsen.
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
snarere end at gøre en lige substitution denne gang bruger vi tilføjelse, med et T .ist., Hvert bogstav i alfabetet er tildelt et tal, A er 0, B er 1, C er 2 og så videre. Jeg er det 9. bogstav i alfabetet, hvilket betyder, at det har en værdi på 8. P (brevet under det på vores engangs-cipher pad) 15. 8 + 15 = 25 hvilket betyder.. det andet bogstav i vores meddelelse er S, som har værdien 18. Det sker bare så, at S også er brevet på vores engangspude (hvilket slet ikke er et problem). 18 + 18 = 36. Nu her er T .ist, der er ikke noget 36.bogstav i alfabetet. Så vi udfører det, der kaldes en modulusoperation., Hvad det dybest set betyder er, at vi delte resultatet med 26 (antallet af bogstaver i alfabetet) og bruger resten. 36 / 26 = 1 resten 10. Brevet med værdien 10 er K. Hvis du fortsætter med at gøre dette, er den endelige krypterede meddelelse:
X K H C G N O O N N W P K H R E H
grunden til, at denne kode er ubrydelig, er, at du kun nogensinde bruger nøglen (den tilfældige streng) en gang. Dette betyder, at enhver, der prøver at afkode meddelelsen, ikke har noget referencepunkt, og at der ikke er nogen gentagelse. Den næste meddelelse, der skal sendes, bruger en helt anden tilfældig nøgle og så videre.,
det største problem med engangspuder er at få nøglerne til den anden part, så de kan dekryptere meddelelsen. Traditionelt blev dette gjort ved hjælp af en bog i form af et notesblok med de forskellige koder på hver side. Hvilke sider, der var i brug, ville ændre sig hver dag, og når en kode blev brugt, kunne den rippes fra puden og kasseres. Men disse puder skal transporteres i en sikker metode. Fordi hvis en anden får koderne, kan krypteringen blive knækket., Dette betød dybest set, at du var nødt til at mødes med den anden part før hånden og blive enige om, hvilke koder der ville blive brugt, og hvornår. Det er den mest sikre metode, men det er også den mest besværlige, og det er bestemt ikke en brugbar løsning til nutidens moderne digitale verden.
den digitale tidsalder
under det 20. århundrede kryptering blev mekaniseret, det mest berømte eksempel er Enigma maskine, der anvendes af Na .isterne under Anden Verdenskrig.men efter krigen kryptering blev edb., Der er tre store fordele ved computeriseret kryptografi:
- computere er fleksible, i modsætning til mekaniske kasser kan computere programmeres til at udføre mange forskellige operationer på en meddelelse, og antallet og kompleksiteten af disse operationer kan ændres relativt hurtigt.
- hastighed.
- computere beskæftiger sig med binære tal ikke kun bogstaver.
punkt 1 og 2 er meget vigtige, især når man sammenligner computere med mekaniske krypteringsmetoder. Paradigmeændringen er imidlertid, at computere beskæftiger sig med tal og ikke bogstaver., Dette betyder, at kryptering kan anvendes på enhver type data. En sms, et billede, en lydfil, en film, en database, filer på en smartphone og så videre.
med flytningen fra bogstaver til binær kom en ændring i, hvordan kryptering udføres. Hele bogstaver behøver ikke længere at blive krypteret, men i stedet kan dem og nuller manipuleres for at give nye sekvenser. Ordet HEJ i 8-bit ASCII er 0100100001000101010011000100110001001111. Herfra kan det binære manipuleres på et utal af forskellige måder. Det kan opdeles, forskydes, tilføjes, multipliceres, uanset hvad.,
den metode, der bruges til at behandle dem og nuller, er kendt som en kryptografisk algoritme, og der er mange forskellige typer algoritmer. De vigtigste egenskaber ved en krypteringsalgoritme er dens sikkerhed (kan det være revnet) og dens ydeevne (hvor lang tid tager det at kode eller afkode data).
meget bredt er der to hovedtyper af digitale kryptering ciphers, stream ciphers og blokere ciphers. Med en stream cipher krypteres dataene af byte ad gangen. Dataene behandles fra begyndelsen til slutningen og streames gennem krypteringsalgoritmen., RC4 er et berømt eksempel på en stream cipher. Det blev brugt iepep og var en valgfri krypteringsmetode for flere andre protokoller og produkter.
Stream-cifre er som engangspuder, idet dataene ikke kun er krypteret mod en enkelt tast, men snarere en sekvens af pseudo-tilfældige tal, der er baseret på nøglen. Forskellen mellem en engangs-pad og en stream cipher er, at med en engangs-pad nøglen skal være virkelig tilfældig. Med stream ciphers ved hjælp af den samme nøgle betyder, at du får den samme sekvens af tal, det er det, der gør det muligt at afkode meddelelsen., Men uden nøglen ser sekvensen tilfældig ud og er derfor svært at bryde.
svagheden ved RC4 var, at under nogle omstændigheder og under nogle forhold (hovedsageligt når de samme data gentagne gange blev krypteret), er det muligt at gætte, hvilke tal der måske kommer næste i sekvensen. Dette gæt reducerer antallet af mulige kombinationer og tillader en brute force angreb (hvor hver kombination er forsøgt), der skal anvendes. For at få angrebet til at arbejde masser af data er nødvendig. RC4 no MORE attack skal indsamle 75 timers værdi af krypterede data, baseret på 4450 anmodninger pr.,
den anden store type cipher er block cipher. Dette fungerer ved at opdele dataene i mere håndterbare blokke, siger 64-bit. Hver blok behandles flere gange, kendt som runder (som i boksning). For hver runde er blokken opdelt i to lige store dele, venstre og højre. Den højre del forbliver uberørt, mens den venstre del er krypteret ved hjælp af en speciel funktion, kaldet en rund funktion. Den runde funktion tager to indgange, nøglen og den højre del (den del, der gik uberørt). Resultatet fra den runde funktion “tilføjes” derefter til venstre ved hjælp af .or.,
denne model er kendt som en Feistel-Cipher, opkaldt efter dens opfinder Horst Feistel, der arbejdede med kryptering hos IBM. Hans arbejde i sidste ende førte til udviklingen af Data Encryption Standard (DES). I 1977 DES blev den officielle kryptering standard for USA og så verdensomspændende vedtagelse. DES bruger 16 runder arbejder på 64-bit blokke. Problemet med DES er, at NSA begrænsede nøglestørrelsen til 56-bit. Mens det i 1977 var tilstrækkeligt, blev det i slutningen af 1990 ‘ erne muligt for ikke-statslige organisationer at bryde DES-krypterede meddelelser.,
eksklusiv eller (Exclusiveor) – dette er en logisk handling på bitniveau, der anvendes på 2 input bits A og B. Den eksklusive eller returnerer true eller false (1 eller 0) til spørgsmålet, “A eller B, men ikke A og B”. Du kan tænke på det som “den ene eller den anden, men ikke begge”. Så hvis A er 1 og B er 0, så er det ene eller det andet, så resultatet er 1 (sandt). Det samme resultat gælder for a er 0 og B er 1. Men hvis A er 0 og B er 0 så resultatet er 0 (falsk), som begge har den samme værdi. Falsk er også givet for a er 1 og B er 1.,
men den virkelige magi VEDOROR er, at den er reversibel. Hvis A bor B = C derefter B .or C = A, og AOROR C = B. Dette er meget vigtigt for kryptering, da det betyder, at data kan krypteres (hvor A er dataene) ved hjælp af en nøgle (B) for at få de krypterede data (C). Senere de krypterede data kan dekrypteres af .or det med nøglen igen for at få de originale data. Årsagen til, at XOR bruges sammen med komplicerede runde funktioner og bitskifteoperationer, er, at itsor på egen hånd kan brydes ved hjælp af frekvensanalyse (på grund af den konstant gentagende nøgle).,
som svar på svaghederne ved DES blev der foreslået en ny standard kaldet Triple DES (3DES). Som dybest set krypterede dataene tre gange med DES, men med tre forskellige nøgler. 3DES tilbød en måde at øge nøglestørrelsen fra 56-bit til 168-bit uden at skulle designe en helt ny blokcipheralgoritme. På grund af nogle tekniske detaljer er den effektive nøgle 112 bits, men hvis du havde en maskine, der kunne knække DES om 1 minut, ville det tage den samme maskine omkring 260.658 år at knække en Triple-DES-nøgle.,mens DES havde tjent sit formål i næsten 25 år, betød den begrænsede nøglelængde, at det var tid til en anden krypteringsstandard. I 2001 offentliggjorde det amerikanske National Institute of Standards and Technology (NIST) Advanced Encryption Standard (AES). Det er ikke en Feistel cipher, men snarere en substitution-permutation netværk. Det bruger stadig blokke og runder ligesom DES, men i hver runde skiftes rækkefølgen af bitene i blokken rundt, og resultatet kombineres med nøglen ved hjælp af DESOR.
AES bruger 128, 192 eller 256 bits nøgler og arbejder på blokke af 128-bits., Antallet af anvendte runder afhænger af nøglestørrelsen. Minimum er 10, som bruges til 128-bit nøgler og maksimum er 14, som bruges til 256-bit nøgler.
AES, Android og ARMv8-arkitekturen
AES er kernen i krypteringsundersystemerne i Android. For Android 5.0 og Android 6.0 mandat Google brugen af AES med mindst en 128-bit nøgle til enheder, der understøtter fuld diskkryptering., Med Android 7 har Google flyttet over til file based encryption (FBE), som gør det muligt at kryptere forskellige filer med forskellige nøgler, samtidig med at filer dekrypteres uafhængigt. Det ser ud til, at FBE i Android 7 bruger 256-bit AES.
da ARM foretog overgangen fra 32-bit Til 64-bit, definerede den en ny revision af dens instruktionssætarkitektur kaldet ARMv8. Ud over at definere instruktionssættet til 64-bit ARMCHIPS tilføjede det også nye instruktioner til implementering af dele af AES-algoritmen i Hard .are. Under hver runde byttes forskellige bits rundt og erstattes., Hvordan bitene manipuleres er veldefineret (og en del af standarden), så AES-udvidelserne i ARMv8 tillader, at dele af krypteringen sker i Hard .are snarere end soft .are.
resultatet er lynhurtig kryptering, hvilket bør have en ubetydelig indflydelse på den samlede systemydelse. AOSP-implementeringen af filbaseret kryptering bruger AES-256 og kræver en ydelse på mindst 50 MB/s.
offentlig nøglekryptografi og wraprap-up
det meste af det, vi har diskuteret indtil nu, er kendt som symmetrisk kryptering., For at kryptere og dekryptere en besked skal både afsenderen og modtageren kende den hemmelige nøgle. Der er en form for kryptering kaldet asymmetrisk kryptering, hvor der er to nøgler, en til kryptering af meddelelser og en anden til dekryptering af dem. Krypteringsnøglen kan frit offentliggøres for alle, der ønsker at sende modtageren en besked, men dekrypteringsnøglen skal forblive hemmelig, men skal kun være kendt af modtageren. Det betyder, at der er en offentlig nøgle og en privat nøgle. Dette system er grundlaget for, hvordan sikkerhed på internettet fungerer, hvordan https:// – protokollen fungerer., Men det er en historie for en anden dag!
i Lukning vil jeg tilføje en advarsel. Kryptering er et komplekst emne, og der er meget mere ved kryptering, end jeg har skrevet her.