Úvod do klasických a moderních metod šifrování Jaro 2011, 10. přednáška.

Slides:



Advertisements
Podobné prezentace
Vestavné mikropočítačové systémy
Advertisements

CIT Paměti Díl X.
Stodůlky 1977 a 2007 foto Václav Vančura, 1977 foto Jan Vančura, 2007.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Dynamické systémy.
MARKOVSKÉ ŘETĚZCE.
*Zdroj: Průzkum spotřebitelů Komise EU, ukazatel GfK. Ekonomická očekávání v Evropě Březen.
Úvod do klasických a moderních metod šifrování Jaro 2008, 7. přednáška.
Asymetrická kryptografie
19.1 Odčítání v oboru do 100 s přechodem přes desítku
Diskrétní matematika Opakování - příklady.
PROGRAM PRO VÝUKU T ČLÁNKU
9 CELÁ ČÍSLA
Tato prezentace byla vytvořena
Téma 3 ODM, analýza prutové soustavy, řešení nosníků
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Elektrický obvod a jeho části
Výzkumy volebních preferencí za ČR a kraje od
NÁSOBENÍ ČÍSLEM 10 ZÁVĚREČNÉ SHRNUTÍ
Střední škola Oselce Škola: SŠ Oselce, Oselce 1, Nepomuk, Projekt: Registrační číslo: CZ.1.07/1.5.00/ Název: Modernizace.
Vzdělávací materiál / DUMVY_32_INOVACE_02B14 Příkazový řádek: obsah souborů PŘÍKLADY AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
VY_32_INOVACE_INF_RO_12 Digitální učební materiál
Lineární rovnice Běloun 91/1 a
MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA reg. č.: CZ.1.07/1.4.00/ Základní škola, Šlapanice, okres Brno-venkov, příspěvková organizace Masarykovo nám.
VY_32_INOVACE_ 14_ sčítání a odčítání do 100 (SADA ČÍSLO 5)
Základní číselné množiny
Anotace Prezentace, která se zabývá prvočísly a čísly složenými AutorPavel Pavlas JazykČeština Očekávaný výstup Žáci rozliší prvočíslo a číslo složené.
Zábavná matematika.
Dělení se zbytkem 6 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Dělení se zbytkem 5 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Název školyIntegrovaná střední škola technická, Vysoké Mýto, Mládežnická 380 Číslo a název projektuCZ.1.07/1.5.00/ Inovace vzdělávacích metod EU.
Název Číselné výrazy Předmět, ročník
Radek Horáček IZI425 – Teorie kódování a šifrování
Jazyk vývojových diagramů
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Čtení myšlenek Je to až neuvěřitelné, ale skutečně je to tak. Dokážu číst myšlenky.Pokud mne chceš vyzkoušet – prosím.
Posloupnosti, řady Posloupnost je každá funkce daná nějakým předpisem, jejímž definičním oborem je množina všech přirozených čísel n=1,2,3,… Zapisujeme.
52_INOVACE_ZBO2_1364HO Výukový materiál v rámci projektu OPVK 1.5 Peníze středním školám Číslo projektu:CZ.1.07/1.5.00/ Název projektu:Rozvoj vzdělanosti.
Gaussova eliminační metoda
Dělení se zbytkem 8 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Náhoda, generátory náhodných čísel
Zásady pozorování a vyjednávání Soustředění – zaznamenat (podívat se) – udržet (zobrazit) v povědomí – představit si – (opakovat, pokud se nezdaří /doma/)
Název materiálu: OPAKOVÁNÍ 1.POLOLETÍ - OTÁZKY
Tento Digitální učební materiál vznikl díky finanční podpoře EU- Operačního programu Vzdělávání pro konkurenceschopnost Není –li uvedeno jinak, je tento.
TRUHLÁŘ II.ročník Výrobní zařízení Střední škola stavební Teplice
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
IV. ELEKTRONOVÁ KONFI- GURACE a PSP
DĚLENÍ ČÍSLEM 7 HLAVOLAM DOPLŇOVAČKA PROCVIČOVÁNÍ
Fyzika 2 – ZS_4 OPTIKA.
FRÉZOVÁNÍ DĚLÍCÍM ZPŮSOBEM
Output regulation problem Branislav Rehák ÚTIA AV ČR, Odd. teorie řízení.
Téma: ABSOLUTNÍ HODNOTA CELÝCH ČÍSEL 2
VII. Neutronová interferometrie II. cvičení KOTLÁŘSKÁ 7. DUBNA 2010 F4110 Kvantová fyzika atomárních soustav letní semestr
1 Celostátní konference ředitelů gymnázií ČR AŘG ČR P ř e r o v Mezikrajová komparace ekonomiky gymnázií.
Technické kreslení.
Úkoly nejen pro holky.
Název materiálu: OPAKOVÁNÍ 1.POLOLETÍ - OTÁZKY
Radim Farana Podklady pro výuku
Přednost početních operací
DĚLENÍ ČÍSLEM 5 HLAVOLAM DOPLŇOVAČKA PROCVIČOVÁNÍ Zpracovala: Mgr. Jana Francová, výukový materiál EU-OP VK-III/2 ICT DUM 50.
Slovní úlohy řešené soustavou rovnic
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
KONTROLNÍ PRÁCE.
Autor: Ondřej Šimeček Verze: 1.1.3
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Informační bezpečnost VY_32_INOVACE _BEZP_16. SYMETRICKÉ ŠIFRY  Používající stejný šifrovací klíč jak pro zašifrování, tak pro dešifrování.  Výhoda.
Složitost algoritmu Vybrané problémy: Při analýze složitosti jednotlivých algoritmů často narazíme na problém, jakým způsobem vzít v úvahu velikost vstupu.
Úvod do klasických a moderních metod šifrování
Úvod do klasických a moderních metod šifrování
Transkript prezentace:

Úvod do klasických a moderních metod šifrování Jaro 2011, 10. přednáška

Generátory pseudonáhodných čísel V mnoha kryptografických aplikacích je třeba umět generovat náhodně čísla, proud bitů, atd. Například vybíráme-li náhodně klíč z prostoru všech možných klíčů v případě blokové šifry. Nebo když generujeme proud klíče pro proudovou šifru. Nebo když generujeme veřejný klíč pro šifru RSA. Používat fyzikální generátory (např. házení mincí) je pomalé a nákladné. V praxi se proto místo generátorů náhodných čísel používají generátory pseudonáhodných čísel – algoritmy, které produkují posloupnosti čísel (bitů), které „vypadají náhodně“, nelze je rozlišit od posloupnosti náhodných čísel (bitů). Špatný je takový generátor pseudonáhodných čísel, který umožňuje ze znalosti k po sobě jdoucích čísel předpovědět s nenulovou pravděpodobností následující číslo. V příběhu Enigmy jsme viděli, co může způsobit špatný generátor.

Lineární rekurentní posloupnosti V kryptografických aplikacích jsou jako generátory pseudonáhodných čísel často využívány blokové šifry v CTR nebo OFB módu. Jiné konstrukce využívají šifru RSA. Další konstrukce jsou založené na hašovacích funkcích. Zdaleka nejpopulárnější jsou konstrukce založené na lineárních rekurentních posloupnostech. Lineární rekurentní posloupnost bitů řádu n dostaneme tak, že zvolíme inicializační vektor (s 0,s 1,…,s n-1 ) a pro každé nezáporné k definujeme s n+k = L(s k,s k+1,…,s n+k-1 ) = a 0 s k +a 1 s k+1 +a 2 s k+2 ….+a n-1 s n+k-1 (mod 2), kde a 0,a 1,…,a n-1 jsou bity, a 0 různé od 0. Lineární rekurentní posloupnost je periodická. Délka periody je menší nebo rovná 2 n -1. Polynom f(x) = a 0 x n-1 + a 1 x n-2 + …. a n-2 x + a n-1 se nazývá generující polynom této posloupnosti. Délka periody závisí na inicializačním vektoru a algebraických vlastnostech generujícího polynomu.

Lineární posuvné registry s0s0 s1s1 s2s2 …s n-1 snsn s n+1 s n+2 Často se lze také setkat s termínem lineární posuvný registr. Ten odkazuje na hardwarovou implementaci lineární rekurentní posloupnosti. s0s0 s1s1 s2s2 ……s n-2 s n-1 s1s1 s2s2 s3s3 ……s n-1 snsn s2s2 s3s3 s4s4 ……snsn s n+1 s n = L(s 0,s 1,…,s n-1 ) s n+1 = L(s 1,s 2,…,s n )

Nevýhody lineárních rekurentních posloupností Známe-li 2n po sobě jdoucích bitů LRP řádu n, umíme spočítat koeficienty a 0,a 1,…,a n-1 zpětné vazby L, a tedy celou funkci L a celý generující polynom pomocí jednoduché soustavy n lineárních rovnic o n neznámých. Umíme tak předpovědět všechny další bity této posloupnosti. Pokud neznáme řád n, ale známe aspoň 2n po sobě jdoucích bitů, lze rovněž zjistit řád a celou funkci L. Pomocí Berlekampova-Masseyho algoritmu z počátku 70. let minulého století. Proto se od té doby nepoužívají lineární posuvné registry jako generátory pseudonáhodných posloupností bitů samostatně, ale přidává se k nim ještě nelineární filtr.

Nelineární filtr Nelineární filtr je nějaká booleovská funkce f(x 0,x 1,…,x n-1 ), která přiřazuje n-tici bitů jeden bit. Je to libovolné zobrazení z množiny 2 n do množiny 2. LR posloupnost pak generuje proud klíče k 0,k 1,…,k m, … pomocí předpisu k 0 =f(s 0,s 1,…,s n-1 ), k 1 =f(s 1,s 2,…,s n ), …….., k m =f(s m,s m+1,…,s m+n-1 ), …. Vlastnosti a bezpečnost takového proudu klíče pak závisí především na vlastnostech booleovské funkce f. Špatně navržená nelineární funkce může mít pro bezpečnost příslušné proudové šifry fatální důsledky.

Lineární posuvné registry s nelineárním filtrem s0s0 s1s1 s2s2 ……s n-2 s n-1 s1s1 s2s2 s3s3 ……s n-1 snsn s2s2 s3s3 s4s4 ……snsn s n+1 s n = L(s 0,s 1,…,s n-1 ) s n+1 = L(s 1,s 2,…,s n ) k 0 =f(s 0,s 1,…,s n-1 ), k0k0 k1k1 k2k2 k 1 =f(s 1,s 2,…,s n ), k 2 =f(s 2,s 2,…,s n+1 ),

Karta Mifare Classic Karta Mifare Classic je paměťové médium s omezenou možností provádět kryptografické operace. Je rozdělená do sektorů, každý sektor je tvořen několika bloky, každý blok má kapacitu 16 bytů. klíč A podmínky přístupuklíč B datový blok klíč A podmínky přístupuklíč B datový blok UID Typ kartyData výrobce

Začátek komunikace Přiložíme-li kartu ke čtečce, karta se napřed nabije z elektromagnetického pole čtečky. Poté proběhne antikolizní protokol, ze všech karet, které jsou v dosahu čtečky, si čtečka jednu vybere. Během antikolizního protokolu karta pošle čtečce své identifikační číslo u = UID velikosti 4 bytů. Poté, co si čtečka vybrala kartu s číslem u, zahájí autentizační protokol tím, že požádá o přístup k jednomu ze sektorů. Na to karta reaguje tím, že pošle čtečce náhodnou výzvu n T velikosti 4 bytů. Tato výzva je generována lineárním posuvným registrem délky 16 se zpětnou vazbou L(x 0,x 1,…,x 15 ) = x 0 +x 2 +x 3 +x 5 (mod 2). Inicializační vektor je na kartě pevně nahrán. Protože nabití karty a autentizační protokol trvají vždy stejnou dobu, karta pošle pokaždé za stejných podmínek stejnou výzvu.

Šifrovaná část autentizace Další část autentizačního protokolu již probíhá šifrovaně. Na kartě je použita proudová šifra CRYPTO1. Ta je tvořena lineárním posuvným registrem délky 48 se zpětnou vazbou L(x 0,x 1,…,x 47 )=x 0 +x 5 +x 9 +x 10 +x 12 +x 14 +x 17 +x 19 +x 24 +x 25 +x 27 + x 29 +x 35 +x 39 +x 41 +x 42 +x 43 (mod 2). Inicializační vektor je tvořený klíčem pro příslušný sektor. Ten je známý kartě i čtečce. Daleko zajímavější je nelineární filtr. Ten je definovaný předpisem f(x 0,x 1,…,x 47 )=f c (f a (x 9,x 11,x 13,x 15 ), f b (x 17,x 19,x 21,x 23 ), f b (x 25,x 27,x 29,x 31 ), f a (x 33,x 35,x 37,x 39 ), f b (x 41,x 43,x 45,x 47 )). Všimněte si, že nelineární filtr závisí pouze na 20 bitech stavového vektoru. Tyto bity jsou navíc vybrané pravidelně, takže ob jeden krok se hodnota nelineární funkce počítá prakticky ze stejných hodnot stavu, pouze první a poslední bit se liší.

Definice funkcí f a, f b a f c Vnější funkce f c je definována předpisem f c (y 0,y 1,y 2,y 3,y 4 ) = (y 0 or ((y 1 or y 4 ) and (y 3 xor y 4 ))) xor ((y 0 xor (y 1 and y 3 )) and ((y 2 xor y 3 ) or (y 1 and y 4 )). Vnitřní funkce f a a f b jsou definovány jako f a (y 0,y 1,y 2,y 3 ) = ((y 0 or y 1 ) xor (y 0 and y 3 )) xor (y 2 and ((y 0 xor y 1 ) or y 3 )), f b (y 0,y 1,y 2,y 3 ) = ((y 0 and y 1 ) or y 2 ) xor ((y 0 xor y 1 ) and (y 2 or y 3 )). Takto definovaný nelineární f filtr má řadu slabin. Například změna posledního bitu na vstupu f změní hodnotu f s pravděpodobností pouze 3/32. S pravděpodobností 5/8 hodnota f nezávisí na posledních 4 bitech. atd, atd.

Pokračování autentizačního protokolu Čtečka na výzvu karty odpoví svojí výzvou n R a odpovědí a R na výzvu karty. Obě odpovědi jsou poslané šifrovaně, tj. jako {n R } a {a R }. Nakonec karta odpoví na výzvu čtečky vlastní šifrovanou odpovědí {a R }. Současně s příslušnými 4bytovými výzvami a odpověďmi je po každém bytu posílán kontrolní paritní bit. Ten je spočítán z otevřeného textu. Odeslán je ale šifrovaně, což je zásadní chyba. Proč to je chyba si ukážeme později.

Změny stavového vektoru šifry Registr šifry se naplní klíčem b pro daný sektor: s i = b i pro i = 0,1,…,47. V dalších 32 krocích (taktech) se ke zpětné vazbě ještě xorují bity u i xor n T,i, tj. s 48+i = L(s i,s i+1,…,s 47+i ) xor u i xor n T,i pro i = 0,1,…,31. V dalších 32 krocích je ke zpětné vazbě xorována výzva čtečky n R, tj. s 80+i = L(s 32+i,s 33+i,…,s 79+i ) xor n R,i pro i = 0,1,…,31. Dále je už využívána pouze zpětná vazba: s 112+i = L(s 64+i,s 65+i,…,s 111+i ). Proud klíče šifry je generován pomocí nelineárního filtru f : k i = f(s i,…,s 47+i ) pro libovolné i. Šifrové texty {n R }, {a R } a {a T } jsou pak definovány jako {n R,i } = n R,i xor k 32+I, {a R,i } = a R,i xor k 64+I, {a T,i } = a T,i xor k 96+I, vše pro i = 0,1,…,31.

Zpětný posun Z uvedených formulek vyplývá, že známe-li vnitřní stav šifry (tj. 48 po sobě jdoucích bitů s i ) v jakémkoliv okamžiku, můžeme z této znalosti a 4bytových slov odposlechnutých během antikolizního a autentizačního protokolu zpětně dopočítat všechny ostatní hodnoty s i, a tím získat klíč b pro daný sektor. K tomu stačí prohlédnout si důkladněji formulky definující změny stavu v každém kroku. Cílem útoku na kartu je tedy získat nějakým způsobem stav šifry v jakémkoliv okamžiku.

Chyby protokolu Jde vlastně o postranní kanály. Již jsme se zmínili o kontrolních paritních bitech doprovázejících každý odeslaný byte. Zajímají nás paritní byty doprovázející n T, {n R } a {a R }. Ty jsou definovány následovně. p j = n T,8j xor n T,8j+1 xor … xor n T,8j +7 xor 1, p j+4 = n R,8j xor n R,8j+1 xor … xor n R,8j +7 xor 1, p j+8 = a R,8j xor a R,8j+1 xor … xor a R,8j +7 xor 1, vše pro j = 0,1,2,3. Paritní bity jsou sice počítány z otevřeného textu, posílány jsou ale šifrovaně: {p j } = p j xor k 8+8j pro j = 0,1,…,11. Tato skutečnost je významnou chybou protokolu.

Chybová hláška Poté, co karta obdrží výzvu čtečky {n R }, odpověď {a R } na vlastní výzvu n T a příslušné paritní bity, provede kontrolu. Nejdříve překontroluje správnost paritních bitů p 4,…,p 11.Nejsou-li správně, karta nereaguje. Tak tomu má také být. Jsou-li paritní bity správně, karta dále překontroluje správnost odpovědi a R.. Pokud je i ta správná, karta odpoví svojí vlastní odpovědí {a T } a autentizační protokol je dokončen, čtečka získala přístup k příslušnému sektoru na kartě. Je-li ale odpověď a R nesprávná, karta odpoví šifrovanou chybovou hláškou To je zásadní chyba protokolu, útočník tak získá informace o 4 bitech klíče. Kromě toho získá dalších 8 bitů informace, neboť také ví, že paritní bity {p 4 },…, {p 11 } jsou správně. Z takto získávaných informací lze nakonec zjistit stav šifry a tedy i klíč pro daný sektor.

Články ke kartě Mifare Classic Podrobnější informace lze získat z následujících tří článků. Flavio D. Garcia et al., Dismantling Mifare Classic. Obsahuje především popis algoritmů implementovaných na kartě, a některé jejich slabiny. Flavio D. Garcia et al., Wirelessly pickpocketing a Mifare Classic Card. V druhém článku jsou popsány další slabiny a jiné typy jejich využití v případě, kdy útočník má přístup pouze ke kartě, nikoiv ke čtečce. Nicolas T. Courtois, The dark side of security by obscurity. Poslední článek obsahuje podstatné vylepšení útoků z předchozího článku. Všechny články jsou přístupné z fakultní adresy.