Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Úvod do klasických a moderních metod šifrování Jaro 2011, 10. přednáška
2
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.
3
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.
4
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 )
5
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.
6
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.
7
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 ),
8
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
9
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.
10
Š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ší.
11
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.
12
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.
13
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.
14
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.
15
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.
16
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 0101. 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.
17
Č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.
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.