Hvordan gjør kryptering arbeid? – Gary forklarer

Hvordan gjør kryptering arbeid? – Gary forklarer

Du sannsynligvis bruke kryptering, i en eller annen form, hver dag. Du vet kanskje ikke at du er, men du er. Og min gjetning er at du ikke gi det en tanke. Har du et abonnement basert kabel-eller satellitt-TV-tjenesten? Gjett hva, noen av innholdet vil være kryptert. Kobler du til nettsteder ved hjelp av https://? Det er mer kryptering. Noensinne er laget en .zip-fil med et passord? Du fikk det, som bruker kryptering.,

jeg kunne gå på og en liste dusinvis av andre eksempler på hver dag kryptering, men jeg vil ikke. Som for Android, er det også støtter kryptering, ikke bare for web med https://, men også for dine filer og data. Android 6.0 Marshmallow brukt full disk kryptering, mens Android-7.0 Nougat har lagt til et alternativ for per-fil kryptering. Tanken er at hvis du vil at telefonen skal falle i hendene på unfriendlies, så dine private data sikkert.

Så hva er kryptering? Det er en prosess som tar vanlig data, herunder tekst, og konvertere den til en uleselig (av mennesker eller maskiner) som form., Kryptering prosessen er basert på en tast, analogi her er en lås som trenger en nøkkel, og bare folk med tasten kan låse opp (dekryptere) data, og sett den tilbake i sin opprinnelige form. Dette betyr at alle som får tak i de krypterte dataene kan ikke lese den hvis de har nøkkelen.

Som Tom Jeriko karakter i den utmerkede filmen Enigma uttrykte det: «det blir ren tekst meldinger til gobbledygook. I den andre enden er en annen maskin, som kan oversettes meldingen tilbake til den opprinnelige teksten.»Kryptering og dekryptering!,

Det hele startet med Caesar ‘

The art of hemmelig skriving, hva vi ville kalle kryptering, har eksistert i minst 2500 år, men det mest kjente eksempel fra antikken er at av substitusjonschiffer brukes av Julius Cæsar for å sende meldinger til Cicero., En substitusjonschiffer virker som dette, begynner du med alfabetet på en linje, og deretter legge til en ny linje med alfabetet flyttet sammen litt:

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 «HEI» så kan du ta den første bokstaven, H, og se på brev under den, som gir deg E. E gir B og så videre. I kryptert form av HEI er EBIIL. For å dekryptere det du oppslag E på den nederste raden, og se H over det, deretter B på bunnen for å få det E over det-og så videre. Fullføre prosessen for å få HALLO.,

I dette tilfellet «nøkkel» er 3, fordi alfabetet har blitt flyttet tre til høyre (du kan også skifte til venstre i stedet). Hvis du vil endre tasten for å si 5, så 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

Nå er kryptert versjon av HEI ville være CZGGJ. Veldig annerledes EBIIL. I dette tilfellet er nøkkelen 5. Magi!

Men det er noen store problemer med denne formen for kryptering. Først av alt er det bare 26 nøkler. Du har kanskje hørt mennesker snakke om 128-bits nøkler eller 256-bit nøkler, dette er vel en 5-bits-nøkkel (dvs. 26 i binære er 11010)., Så det ikke ville ta altfor lang tid til å prøve alle de 26 variasjoner og se hvilken som begynner å produsere forståelig tekst.

for det Andre, engelsk (og andre språk) har visse egenskaper. For eksempel, E er den mest populære brev på engelsk, så hvis du hadde en god del av teksten du kunne se hvilken bokstav vises de mest vanlige og deretter gjette at det er E. Skift bunnen alfabetet for å matche E med de mest vanlige tegn og du har vel knekket koden. Det er også bare et par bokstaver som kan doble opp i engelsk, som OO, LL, SS, EE og så videre., Når du ser en dobbel liker II eller GG (fra eksemplene ovenfor), så du bør prøve å matche dem på alfabeter første.

kombinasjonen av liten nøkkel og det faktum at den samme bokstaven alltid krypterer til samme tilsvarende brev på cipher alfabetet betyr at dette er veldig svak kryptering. Og i dag med datamaskiner å gjøre det harde arbeidet, dette er hinsides svak!,

Mer alfabeter og uknuselige kryptering

svakheter i Cæsar substitusjonschiffer kan være litt lindres ved å bruke mer enn ett flyttet alfabetet. Eksemplet nedenfor kan utvides til 26 flyttet alfabeter, hvorav flere er brukt på en gang, men ikke alle av 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 setter nøkkelen til WVY som betyr at vi bruker alfabetet starter med W først, deretter den ene starter med V, og til slutt den ene starter med Y. Dette er så gjentatt til å kode hele meldingen. Så HEI ville bli DZJHJ., Legg merke til at nå dobbel L i HALLO er ikke kodet som har samme karakter, det er nå J og deretter H. Også den første J i den krypterte teksten er koden for L, mens den andre er koden for O. Så J nå ikke alltid er det samme som ren tekst brev.

En versjon av denne ideen, med 26 alfabeter, er grunnlaget for den Vigenère cipher, som ble publisert i det 16. århundre av Blaise de Vigenère. En lignende idé ble også beskrevet av Giovan Battista Bellaso i 1553., Den Vigenère cipher forble uknuselige for 300 år før det var sprukket ved Charles Babbage og deretter av Friedrich Kasiski. Hemmeligheten til å bryte Vigenère cipher er å forstå som til syvende og sist er de samme ordene som kan være kodet med samme bokstaver fordi de samme bokstaver er brukt igjen og igjen. Så ordet «OG» kan være kodet i ulike de første gangene det dukker opp, men til syvende og sist vil det være kodet med samme bokstaver igjen. Repetisjon er generelt fall i en cipher.,

Repetisjon er svakhet i Caesar ‘ cipher, den Vigenère og alle varianter, men det er en måte å bruke en alfabetet siffer for å skape en ubrytelig hemmelig kode uten repetisjoner, det er kalt one-time pad. Tanken er at i stedet for å bruke en forskjøvet alfabetet da en tilfeldig sekvens av bokstaver er brukt. Denne sekvensen må være helt tilfeldig, og må ha samme lengde som den meldingen.

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 enn å gjøre en rett substitusjon denne gangen bruker vi tillegg, med en vri., Hver bokstav i alfabetet er tildelt et nummer, En er 0, B 1, C 2 og så videre. Jeg er den 9. bokstav i alfabetet, noe som betyr at den har en verdi på 8. P (bokstaven som står nedenfor på våre en-gang-cipher pad) 15. 8 + 15 = 25 som betyr X. andre brev av vårt budskap er S, som har verdi 18. Det bare skjer, slik at S er også bokstaven på vår one-time pad (som ikke er et problem i det hele tatt). 18 + 18 = 36. Nå her er vri, det er ingen 36. bokstav i alfabetet. Så vi utfører det som kalles en modulus drift., Hva som i utgangspunktet betyr er at vi delt resultatet av 26 (antall bokstaver i alfabetet) og bruk resten. 36 / 26 = 1 resterende 10. Brevet med verdi på 10 K. Hvis du fortsetter å gjøre dette den endelige kryptert melding er:

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

grunnen til At denne koden er uknuselige er at du kun kan bruke tasten (tilfeldig streng) én gang. Dette betyr at alle som prøver å dekode meldingen har ingen referanse punkt, og det er ingen repetisjon. Den neste meldingen skal bli sendt, vil du bruke en helt annen tilfeldig nøkkel og så videre.,

Det største problemet med én gang, pads, er å få nøklene til den andre parten, slik at de kan dekryptere meldingen. Tradisjonelt har dette ble gjort ved hjelp av en reserve i form av en notisblokk, med de forskjellige kodene på hver side. Hvilke sider som er i bruk vil endres hver dag, og når en kode som ble brukt det kunne bli dratt fra puten og forkastet. Men disse putene må transporteres på en sikker metode. Fordi hvis noen andre får kodene så kryptering kan være sprukket., Dette utgangspunktet mente du behov for å snakke med den andre parten før hånd, og bli enige om hvilke koder skal brukes og når. Det er den sikreste metoden, men det er også den mest tungvint, og det absolutt ikke er en brukbar løsning for dagens moderne digitale verden.

Den digitale tidsalder

i Løpet av det 20. århundre kryptering ble mekanisert, det mest kjente eksempel på dette er Enigma-maskinen brukes av Nazi-tallet under andre Verdenskrig. Men etter krigen kryptering ble datastyrt., Det er tre store fordeler til datastyrte kryptografi:

  1. Datamaskiner er fleksible, i motsetning til mekanisk bokser, datamaskiner kan programmeres til å utføre mange forskjellige operasjoner på en melding, og antallet og kompleksiteten til disse operasjonene kan endres relativt raskt.
  2. Hastighet.
  3. Datamaskiner tilbyr med binære tall ikke kun bokstaver.

Punktene 1 og 2 er svært viktig, spesielt når man sammenligner datamaskiner til mekanisk kryptering metoder. Men paradigmet endringen er at datamaskiner tilbyr med tall og ikke bokstaver., Dette betyr at kryptering kan brukes til alle typer data. En tekstmelding, et bilde, en lydfil, en film, en database, filer på en smarttelefon og så videre.

Med flyttingen fra brev til binære kom en endring i hvordan kryptering er utført. Hele bokstaver ikke lenger trenger å være kryptert, men i stedet enere og nuller kan bli manipulert til å gi nye sekvenser. Ordet HALLO i 8-bits ASCII er 0100100001000101010011000100110001001111. Fra her binære kan manipuleres i en myriade av ulike måter. Det kan være split, flyttet, lagt til, multiplisert, uansett.,

Den metoden som brukes til å behandle enere og nuller er kjent som en kryptografisk algoritme, og det finnes mange forskjellige typer av algoritmer. De viktigste egenskapene til en krypteringsalgoritme er dets sikkerhet (kan det være sprukket) og dets ytelse (hvor lang tid tar det for å kode eller avkode data).

Veldig grovt sett er det to hovedtyper av digital kryptering chiffer, stream-chiffer og blokk chiffer. Med en stream cipher data er kryptert ved byte av gangen. Dataene er behandlet fra begynnelsen til slutten, og streames gjennom krypteringsalgoritme., RC4 er et kjent eksempel på en stream cipher. Den ble brukt i WEP og var en valgfri kryptering metoden for flere andre protokoller og produkter.

Stream chiffer er som en gang pads i at data ikke bare er kryptert mot en enkelt tast, men snarere en sekvens av pseudo-tilfeldige tall som er basert på tasten. Forskjellen mellom en one-time pad og en stream cipher er at med en one-time pad nøkkelen må være helt tilfeldig. Med stream-chiffer ved å bruke samme tast som betyr at du får den samme sekvensen av tall, som er det som gjør det mulig å dekode meldingen., Men uten nøkkel sekvensen ser ut tilfeldig, og er derfor vanskelig å bryte.

svakhet av RC4 var at under noen omstendigheter og under noen forhold (hovedsakelig når de samme dataene ble gjentatte ganger kryptert) så er det mulig å gjette hvilke tall som kanskje kommer neste i rekken. Dette antar reduserer antall mulige kombinasjoner og gir et brute force-angrep (hvor hver kombinasjon er prøvd) å bli brukt. Å bli angrepet for å arbeide massevis av data er nødvendig. RC4-INGEN FLERE angrep behov for å samle 75 timer igjen av krypterte data, basert på 4450 forespørsler per sekund.,

Den andre store type cipher er block cipher. Dette fungerer ved å dele data i mer håndterbare blokker, sier 64-bit. Hver blokk er behandlet flere ganger, kjent som runder (som i boksing). For hver runde blokken er delt inn i to like store deler, venstre og høyre. Den høyre delen forblir uberørt mens den venstre delen er kryptert ved hjelp av en spesiell funksjon, som kalles en runde funksjon. Den runde funksjon som tar to innganger-tasten og høyre del (den delen som gikk urørt). Resultatet fra runde funksjon er da «lagt» til venstre delen ved hjelp av XOR.,

Denne modellen er kjent som en Feistel Cipher, oppkalt etter dens oppfinner Horst Feistel som jobbet på kryptering i IBM. Hans arbeid som til slutt førte til utvikling av Data Encryption Standard (DES). I 1977 DES ble den offisielle encryption standard for Usa og såg over hele verden adopsjon. DES bruker 16 runder arbeider på 64-bits blokker. Problemet med DES er at NSA begrenset nøkkelen størrelse 56-bits. Mens det i 1977 var dette tilstrekkelig, ved slutten av 1990-tallet ble det mulig for ikke-statlige organisasjoner til å bryte DES krypterte meldinger.,

SJARGONG BUSTER
Lite ELLER (XOR) – Dette er en bit nivå logisk drift som er brukt i 2-inngang bits A og B. Lite ELLER returnerer true eller false (1 eller 0) til spørsmålet, «A eller B, men ikke, A og B». Du kan tenke på det som, «det ene eller det andre, men ikke begge deler». Så, hvis En er 1 og B er 0, så er det ene eller det andre, så resultatet er 1 (sann). Det samme resultatet gjelder A er 0 og B er 1. Men hvis En er 0 og B er 0, så resultatet er 0 (usann), som begge har samme verdi. Forfalskning er også gitt for En er 1 og B er 1.,

Men den virkelige magien av XOR er at det er reversibel. Hvis EN XOR B = C, B XOR C = A, og EN XOR C = B. Dette er svært viktig for kryptering som betyr at data kan være kryptert (der A er data) med en nøkkel (B) for å få den krypterte data (C). Senere kryptert data kan dekrypteres av XOR det med tasten igjen for å få de opprinnelige dataene. Grunnen til XOR brukes i forbindelse med kompliserte runde funksjoner og litt skiftende virksomhet er fordi på sin egen XOR kan brytes ved hjelp av frekvens analyse (på grunn av den stadig gjentatte tasten).,

I respons til svakheter i DES, en ny standard ble foreslått kalt Triple DES (3DES). Noe som i utgangspunktet er kryptert data tre ganger, DES, men med tre forskjellige nøkler. 3DES tilbys en måte å øke nøkkelen størrelse fra 56-bits 168-bits uten at du trenger å designe en helt ny block cipher-algoritmen. På grunn av noen tekniske detaljer, vil den effektive tast 112 bits, men hvis du hadde en maskin som kunne knekke DES i 1 minutt, og det ville ta samme maskin om 260,658 år å knekke en Triple-DES-tasten.,

Mens DES hadde tjent sin hensikt for nesten 25 år, begrenset lengde for wepkrypteringsnøkkelen betydde at det var tid for en annen encryption standard. I 2001, U.S. National Institute of Standards and Technology (NIST) utgitt Advanced Encryption Standard (AES). Det er ikke en Feistel cipher, men snarere en substitusjon-permutasjon nettverk. Bruker den fortsatt blokker og runder akkurat som DES, men i løpet av hver runde rekkefølgen av biter i blokken er byttet rundt og resultatet er kombinert med nøkkelen ved hjelp av XOR.

AES bruker 128, 192 eller 256 bits nøkler og fungerer på blokker av 128-bits., Antall runder som brukes, avhenger nøkkelen størrelse. Minimum er 10, som er brukt for 128-bits nøkler og maksimum 14, som er brukt for 256-bits nøkler.

AES, Android og ARMv8 arkitektur

AES ligger i hjertet av kryptering undersystemer i Android. For Android 5.0 og Android 6.0, Google-mandat for bruk av AES med minst en 128-biters nøkkel for enheter som har støtte for full disk kryptering., Med Android 7, Google har flyttet over til fil-basert kryptering (FBE) som gjør det mulig for ulike filer bli kryptert med forskjellige nøkler mens du lar-filer til å bli dekryptert uavhengig av hverandre. Det ser ut som FBE i Android-7 bruker 256-bit AES.

Når ARMEN gjorde flytte fra 32-biters og 64-biters det definert en ny versjon av sin instruksjonssett-arkitektur kalt ARMv8. Så vel som å definere instruksjonssett for 64-bit ARM chips, er det også lagt til nye instruksjoner å gjennomføre deler av AES-algoritmen i maskinvare. I hver runde ulike biter er byttet rundt og erstattes., Hvor biter er manipulert er godt definert (og en del av den standard) så AES-utvidelser i ARMv8 at de deler av kryptering skal skje i maskinvare, snarere enn programvare.

resultatet er lynrask kryptering, som bør ha en ubetydelig innvirkning på systemytelsen. Den AOSP gjennomføring av fil-basert kryptering bruker AES-256 og krever en ytelse på minst 50 MB/s.

Offentlig nøkkel kryptografi og wrap-up

de Fleste av hva vi har diskutert til nå er kjent som symmetrisk kryptering., For å kryptere og dekryptere en melding både avsenderen og mottakeren trenger å vite den hemmelige nøkkelen. Det er en form for kryptering kalles asymmetrisk kryptering der det er to nøkler, ett for å kryptere meldinger og en annen for å dekryptere dem. Krypteringsnøkkelen kan fritt bli publisert for alle som ønsker å sende mottakeren av en melding, men dekrypteringsnøkkelen må forbli hemmelig, men bare trenger å være kjent av mottaker. Dette betyr at det er en offentlig nøkkel og en privat nøkkel. Dette systemet er grunnlaget for hvordan sikkerhet på Internett fungerer, hvordan protokollen https:// funksjoner., Men det er en historie for en annen dag!

til slutt vil jeg legge til en påminnelse. Kryptering er et komplekst tema og det er mye mer til kryptering enn det jeg har skrevet her.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *