valószínűleg titkosítást használ, egyik vagy másik formában, minden nap. Lehet, hogy nem tudod, hogy te vagy, de te vagy. És az a gyanúm, hogy egy pillanatig sem gondolkozol rajta. Van előfizetésen alapuló kábel-vagy műholdas TV-szolgáltatás? Képzeld, A tartalom egy része titkosítva lesz. Csatlakozik a webhelyekhez a https://használatával? Ez több titkosítás. Valaha létrehozott egy .zip fájl jelszóval? Megvan, ez titkosítást használ.,
tudtam menni, és egy listát több tucat más példát minden nap titkosítás, de nem fogok. ami az Android, ez is támogatja a titkosítást, nem csak az interneten https:// hanem a fájlokat és az adatokat. Az Android 6.0 Marshmallow teljes lemez titkosítást használt, míg az Android 7.0 Nougat hozzáadta a fájlonkénti titkosítás lehetőségét. Az ötlet az, hogy ha a telefonnak barátságtalan kezekbe kell kerülnie, akkor a személyes adatai biztonságosak.
Tehát mi a titkosítás? Ez a folyamat egyszerű adatok, beleértve a szöveget is, olvashatatlan (emberek vagy számítógépek) formává alakítja., A titkosítási folyamat egy kulcson alapul, az analógia itt egy zár, amelynek kulcsra van szüksége, és csak a kulccsal rendelkező emberek tudják feloldani (visszafejteni) az adatokat, és visszahelyezni az eredeti formájába. Ez azt jelenti, hogy bárki, aki megszerzi a titkosított adatokat, nem tudja elolvasni, hacsak nincs kulcsa.
ahogy a Tom Jericho karakter a kiváló film Enigma fogalmazott, ” kiderül sima szöveges üzeneteket gobbledygook. A másik végén egy másik gép, amely lefordítja az üzenetet vissza az eredeti szöveget.”Titkosítás és dekódolás!,
az egész Caesarral kezdődött
a titkos írás művészete, amit titkosításnak neveznénk, legalább 2500 éve létezik, azonban az antikvitás leghíresebb példája a Julius Caesar által használt helyettesítési titkosítás, amely üzeneteket küld Cicerónak., A helyettesítő rejtjel így működik, az egyik sorban az ábécével kezdődik, majd egy második sort ad hozzá az ábécé mentén eltolt egy kicsit:
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
ha titkosítani szeretné a “HELLO” szót, akkor vegye be az első betűt, H, és nézze meg az alatta lévő betűt, amely E-t ad. A HELLO titkosított formája EBIIL. A dekódoláshoz keresse meg az E-t az alsó sorban, majd nézze meg a H-t felette, majd az alsó B-t, hogy az E-t felette stb. Végezze el a folyamatot, hogy HELLO.,
ebben az esetben a” kulcs ” 3, mert az ábécé három jobbra tolódott (ehelyett balra is válthat). Ha kulcsra vált, hogy azt mondja 5, akkor ezt kapja:
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
most a HELLO titkosított verziója CZGGJ lenne. Nagyon különbözik az EBIIL-től. Ebben az esetben a kulcs 5. Varázslat!
azonban van néhány nagy probléma ezzel a titkosítási formával. Először is csak 26 kulcs van. Lehet, hogy hallott már olyan emberekről, akik 128 bites kulcsokról vagy 256 bites kulcsokról beszélnek, nos, ez egy 5 bites kulcs(azaz 26 bináris 11010)., Tehát nem tartana túl sokáig, hogy kipróbáljuk mind a 26 variációt, és megnézzük, melyik kezd el érthető szöveget készíteni.
másodszor, az angol (és más nyelvek) bizonyos tulajdonságokkal rendelkezik. Például, e a legnépszerűbb betű angolul, így ha volt egy jó darab szöveget lehetett látni, hogy melyik betű jelenik meg a leggyakrabban, majd kitalálni, hogy ez E. Shift az alsó ábécé, hogy megfeleljen E a leggyakoribb karakter, és akkor valószínűleg repedt a kódot. Csak néhány betű van, amelyek angolul duplázhatnak, mint például OO, LL, SS, EE stb., Amikor megjelenik egy dupla, mint a II vagy GG (a fenti példákból), akkor meg kell próbálnia illő azok az ábécé első.
a kis kulcs kombinációja, valamint az a tény, hogy ugyanaz a betű mindig ugyanarra a megfelelő betűre titkosítja a rejtjel ábécét, azt jelenti, hogy ez nagyon gyenge titkosítás. És ma, amikor a számítógépek végzik a kemény munkát, ez túl gyenge!,
több ábécé és törhetetlen titkosítás
a Caesar helyettesítési titkosítás hiányosságai kissé enyhíthetők egynél több eltolt ábécé használatával. Az alábbi példa bővíthető 26 eltolt ábécére, amelyek közül többet egyszerre használnak, de nem mindegyiket.
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
tehát ha a kulcsot WVY-re állítjuk, ez azt jelenti, hogy először a W betűvel kezdődő ábécét használjuk, akkor a V-vel kezdődő, végül pedig az Y-vel kezdődő ábécét.ezt követően megismételjük a teljes üzenet kódolásához. Tehát Hello lesz DZJHJ., Figyeljük meg, hogy most a double L a HELLO nem kódolt, mint az azonos karakter, ez most J, majd H. is, az első J a titkosított szöveg a kódot L, míg a második a kódot O. tehát J most nem mindig ugyanazt a sima szöveges levelet.
ennek az ötletnek egy változata, 26 ábécével, a Vigenère rejtjelének alapja, amelyet a 16. században Blaise de Vigenère tett közzé. Hasonló ötletet Giovan Battista Bellaso is leírt 1553-ban., A Vigenère-rejtjel 300 évig törhetetlen maradt, amíg Charles Babbage, majd Friedrich Kasiski megrepedt. A Vigenère rejtjel megtörésének titka annak megértése, hogy végül ugyanazokat a szavakat lehet kódolni ugyanazzal a betűvel, mert ugyanazokat az ábécéket használják újra és újra. Tehát a “és” szó lehet kódolva különböző az első néhány alkalommal úgy tűnik,, de végül ez lesz kódolva ugyanazt a betűt újra. Az ismétlés általában egy rejtjel bukása.,
Az ismétlés a Caesar-kód, a Vigenère és az összes változat gyengesége, de van egy módja annak, hogy egy ábécé-rejtjelet használjunk egy törhetetlen titkos kód ismétlések nélküli létrehozásához, ezt egyszeri padnak nevezik. Az ötlet az, hogy ahelyett, hogy egy eltolt ábécé, majd egy véletlenszerű sorrendben betűk használnak. Ennek a szekvenciának valóban véletlenszerűnek kell lennie, ugyanolyan hosszúnak kell lennie, mint az üzenet.
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
ahelyett, hogy egyenes helyettesítést végeznénk, ezúttal kiegészítést használunk, csavarral., Az ábécé minden betűje egy számot kap, a 0, B 1, C 2 stb. Én az ábécé 9. betűje,ami azt jelenti, hogy értéke 8. P (az alatta lévő levél Az egyszeri rejtjeltáblán) 15. 8 + 15 = 25 ami azt jelenti, X. az üzenetünk második betűje S, amelynek értéke 18. Csak úgy történik, hogy S is a levél a mi egyszeri pad (ami nem kérdés egyáltalán). 18 + 18 = 36. Most itt van a csavar, nincs az ábécé 36. betűje. Tehát elvégezzük az úgynevezett modulus műveletet., Ez alapvetően azt jelenti, hogy az eredményt 26-tal osztottuk meg (az ábécé betűinek száma), és a maradékot használjuk. 36 / 26 = 1 maradék 10. Ha továbbra is ezt a végső titkosított üzenet:
X K H C G N O O N N W P K H R E H
ennek a kódnak az az oka, hogy csak egyszer használja a kulcsot (a véletlenszerű karakterláncot). Ez azt jelenti, hogy bárki, aki megpróbálja dekódolni az üzenetet, nincs referenciapontja, nincs ismétlés. A következő elküldendő üzenet egy teljesen más véletlenszerű kulcsot fog használni stb.,
Az egyszeri párnák legnagyobb problémája a másik fél kulcsainak megszerzése, hogy dekódolhassák az üzenetet. Hagyományosan ezt egy könyv formájában egy jegyzettömb, a különböző kódokat minden oldalon. Mely oldalak voltak használatban, minden nap megváltozna, és ha egyszer egy kódot használtak, ki lehet tépni a padból és eldobni. Ezeket a párnákat azonban biztonságos módon kell szállítani. Mert ha valaki más kapja meg a kódokat, akkor a titkosítás feltörhető., Ez alapvetően azt jelentette, hogy előbb találkoznia kell a másik féllel, és meg kell állapodnia arról, hogy mely kódokat fogják használni és mikor. Ez a legbiztonságosabb módszer, de egyben a legnehezebb is, és természetesen nem működőképes megoldás a mai modern digitális világ számára.
A digitális kor
a 20. század folyamán a titkosítás gépessé vált, a leghíresebb példa az Enigma gép, amelyet a nácik a második világháború alatt használtak.azonban a háború titkosítása számítógépes lett., Három nagy előnye van a számítógépes kriptográfiának:
- a számítógépek rugalmasak, ellentétben a mechanikus dobozokkal, a számítógépeket úgy lehet programozni, hogy sok különböző műveletet hajtsanak végre egy üzenetben, és ezeknek a műveleteknek a száma és összetettsége viszonylag gyorsan megváltoztatható.
- sebesség.
- a számítógépek bináris számokkal foglalkoznak, nem csak betűkkel.
az 1.és 2. pont nagyon fontos, különösen akkor, ha a számítógépeket mechanikus titkosítási módszerekkel hasonlítjuk össze. A paradigmaváltás azonban az, hogy a számítógépek számokkal foglalkoznak, nem betűkkel., Ez azt jelenti, hogy a titkosítás bármilyen típusú adatra alkalmazható. Szöveges üzenet, kép, hangfájl, film, adatbázis, fájlok okostelefonon stb.
a lépés a betűk bináris jött egy változás, hogyan titkosítás történik. Az egész betűket már nem kell titkosítani, hanem az egyeseket és a nullákat lehet manipulálni, hogy új szekvenciákat hozzanak létre. A HELLO szó a 8 bites ASCII-ben 0100100001000101010011000100110001001001111. Innen a bináris manipulálható számtalan különböző módon. Meg lehet osztani, eltolni, hozzáadni, megszorozni, bármi.,
az egyes és nullák feldolgozásához használt módszert kriptográfiai algoritmusnak nevezik, és sokféle algoritmus létezik. A titkosítási algoritmus fő jellemzői a biztonság (lehet repedt) és a teljesítmény (mennyi ideig tart az adatok kódolása vagy dekódolása).
a Stream-titkosítók olyanok, mint az egyszeri betétek, mivel az adatok nem csak egyetlen kulccsal vannak titkosítva, hanem inkább pszeudo-véletlen számok sorozata, amely a kulcson alapul. A különbség egy egyszeri pad és egy patak rejtjel, hogy egy egyszeri pad a kulcs kell igazán véletlenszerű. Az ugyanazon kulcsot használó adatfolyam-rejtjelekkel ugyanazt a számsorozatot kapja, ez teszi lehetővé az üzenet dekódolását., A kulcs nélkül azonban a sorozat véletlenszerűen néz ki, ezért nehéz megtörni.
az RC4 gyengesége az volt, hogy bizonyos körülmények között és bizonyos körülmények között (főleg amikor ugyanazokat az adatokat többször titkosították), akkor kitalálható, hogy mely számok jöhetnek a sorrendben. Ez a feltételezés csökkenti a lehetséges kombinációk számát, és lehetővé teszi a brute force attack (ahol minden kombinációt megpróbálnak) használatát. Ahhoz, hogy a támadás működjön, sok adatra van szükség. Az RC4 no MORE attacknek 75 órányi titkosított adatot kell gyűjtenie, másodpercenként 4450 kérés alapján.,
a másik fő típusú rejtjel a blokk rejtjel. Ez úgy működik, hogy az adatokat kezelhetőbb blokkokra osztja, mondjuk 64 bites. Minden blokk feldolgozása többször, úgynevezett fordulóban (mint a boksz). Minden körben a blokk két egyenlő részre oszlik, a bal és a jobb oldalon. A jobb oldali rész érintetlen marad, míg a bal oldali rész titkosítva van egy speciális funkcióval, amelyet kerek funkciónak neveznek. A kerek funkció két bemenetet, a kulcsot és a jobb oldali részt (az érintetlenül maradt részt) vesz igénybe. A kerek funkció eredménye ezután” hozzáadódik ” a bal oldali részhez a XOR használatával.,
Ez a modell Feistel Rejtjelként ismert, amelyet feltalálója, Horst Feistel után neveztek el, aki az IBM titkosításán dolgozott. Munkája végül az adattitkosítási szabvány (DES) kifejlesztéséhez vezetett. 1977-ben a DES az Egyesült Államok hivatalos titkosítási szabványává vált, és világszerte elfogadták. DES használ 16 fordulóban dolgozik 64 bites blokkok. A DES problémája az, hogy az NSA a kulcs méretét 56 bitre korlátozta. Míg 1977-ben ez elegendő volt, az 1990-es évek végére lehetővé vált, hogy a nem kormányzati szervezetek megszakítsák a titkosított üzeneteket.,
zsargon BUSTER
Exclusive vagy (XOR) – ez egy kicsit szintű logikai művelet, amelyet 2 A és B bemeneti bitre alkalmaznak. Azt gondolhatja, hogy “az egyik vagy a másik, de nem mindkettő”. Tehát, ha a 1, B pedig 0, akkor ez az egyik vagy a másik, tehát az eredmény 1 (igaz). Ugyanez az eredmény vonatkozik az a 0-ra, a B pedig az 1-re. De ha a 0, B pedig 0, akkor az eredmény 0 (hamis), mivel mindkettőnek azonos értéke van. Az a 1-re, a b-re pedig az 1-re is hamis.,
de a XOR igazi varázsa az, hogy visszafordítható. Ha a XOR B = C, akkor B XOR C = A, és a XOR C = B. Ez nagyon fontos a titkosítás, mivel ez azt jelenti, hogy az adatok titkosíthatók (ahol a az adatok) egy kulcs (B), hogy a titkosított adatok (C). Később a titkosított adatokat XOR újra visszafejtheti a kulccsal, hogy megkapja az eredeti adatokat. Az ok, XOR együtt használják bonyolult kerek funkciók kicsit változó műveletek, mert a saját XOR lehet eltört a frekvencia-elemzés (mert a folyamatosan ismétlődő kulcs).,
a DES gyengeségeire válaszul egy új szabványt javasoltak Triple DES (3DES) néven. Ami alapvetően háromszor titkosította az adatokat a DES-vel, de három különböző kulccsal. A 3DES felajánlotta a módját, hogy növelje a kulcs méretét 56 bitről 168 bitre anélkül, hogy teljesen új blokk rejtjelező algoritmust kellene terveznie. Néhány technikai részlet miatt az effektív kulcs 112 Bit, de ha lenne olyan gépe, amely 1 perc alatt feltörheti a DES-t, akkor ugyanaz a gép körülbelül 260,658 évig tartana, hogy feltörje a Triple-DES kulcsot.,
míg a DES majdnem 25 éve szolgálta a célját, a korlátozott kulcshossz azt jelentette, hogy ideje volt egy másik titkosítási szabványnak. 2001-ben az amerikai Nemzeti Szabványügyi és Technológiai Intézet (NIST) közzétette az Advanced Encryption Standard (AES) szabványt. Ez nem Feistel rejtjel, hanem helyettesítési permutációs hálózat. Még mindig blokkokat és köröket használ, mint a DES, azonban minden körben a blokk bitjeinek sorrendjét cserélik körül, az eredményt pedig a XOR segítségével kombinálják a kulccsal.
az AES 128, 192 vagy 256 bites kulcsokat használ, és 128 bites blokkokon működik., A használt körök száma a kulcs méretétől függ. A minimum 10, amelyet 128 bites kulcsokhoz használnak, a maximális pedig 14, amelyet 256 bites kulcsokhoz használnak.
AES, Android és az ARMv8 architektúra
AES középpontjában a titkosítási alrendszerek Android. Az Android 5.0 és az Android 6.0 esetében a Google kötelezte az AES használatát legalább egy 128 bites kulccsal a teljes lemez titkosítást támogató eszközökhöz., Az Android 7, a Google költözött át fájl alapú titkosítás (FBE), amely lehetővé teszi a különböző fájlok titkosítását különböző kulcsokkal, miközben lehetővé teszi a fájlok visszafejteni függetlenül. Úgy tűnik, hogy az FBE az Android 7-ben 256 bites AES-t használ.
amikor az ARM 32-bitről 64-bitre lépett, meghatározta az ARMv8 nevű utasításkészlet-architektúra új felülvizsgálatát. A 64 bites ARM chipek utasításkészletének meghatározása mellett új utasításokat is adott az AES algoritmus egyes részeinek hardverben történő megvalósításához. Minden kör során különböző biteket cserélnek körül, majd helyettesítik., A bitek manipulálásának módja jól definiált (és része a szabványnak), így az AES kiterjesztések az ARMv8-ban lehetővé teszik, hogy a titkosítás ezen részei hardverben történjenek, nem pedig szoftverben.
az eredmény villámgyors titkosítás, amelynek elhanyagolható hatással kell lennie a rendszer általános teljesítményére. A fájl alapú titkosítás AOSP implementációja AES-256-ot használ, és legalább 50MB/s teljesítményt igényel.
nyilvános kulcs kriptográfia és wrap-up
az eddig tárgyalt legtöbb szimmetrikus titkosítás., Az üzenet titkosításához és dekódolásához mind a feladónak, mind a címzettnek tudnia kell a titkos kulcsot. Van egy úgynevezett aszimmetrikus titkosítás, ahol két kulcs van, az egyik az üzenetek titkosításához, a másik pedig a dekódoláshoz. A titkosítási kulcs szabadon közzétehető mindenki számára, aki üzenetet szeretne küldeni a címzettnek, azonban a dekódolási kulcsnak titokban kell maradnia, de csak a címzettnek kell tudnia. Ez azt jelenti, hogy van egy nyilvános kulcs és egy privát kulcs. Ez a rendszer az alapja annak, hogyan működik az Internet biztonsága, hogyan működik a https:// protokoll., Ez azonban egy történet egy másik napra!
záró szeretnék hozzáadni egy kivétellel. A titkosítás összetett téma, sokkal több a Titkosítás, mint amit itt írtam.