Kryptolgia II budinskasavba sk stav informatiky SAV Dbravsk
Kryptológia II. budinska@savba. sk Ústav informatiky SAV, Dúbravská cesta 9, Bratislava budinska. ui. sav. sk
Symetrické šifry - Blokové
Symetrické šifry - Blokové • Digital Encryption Standard (DES) • Triple DES • Advanced Encryption Standard (AES) • Twofish • Serpent • IDEA
Feistelova šifra (napr. DES, Triple DES, Blowfish) Blok sa rozdelí na L(left) a R(right) V každom kroku: R prechádza bez zmeny, na L sa požije funkcia závislá od R a kľúča K f(R, K) a urobí sa logický súčet s L Následne dôjde k permutácii a L a vymení s R Takto sa postupuje v niekoľkých cykloch Problém je ako nájsť funkciu f Čím viac cyklov, tým bezpečnejšia šifra, ale dlhší čas na šifrovanie a dešifrovanie.
DES n = 64 bit – otvorený text, k = 56 bitov - kľúč + 8 bitov – kontrolné 16 cyklov (iteračných krokov) Feistelovho algoritmu Jednotlivé bloky sú najskôr permutované pomocou inicializačnej permutácie IP. Bloky sa delia na dva 32 -bitové pod-bloky L a R. Na L sa aplikuje šifrovacia funkcia f(R, K). Tá pracuje s 32 -bitovými blokmi Rn a 48 -bitovými blokmi Kn. Bloky sa v závare cyklu vymenia. Matematicky sa dá jeden iteračný krok zapísať takto: Ln = Rn-1 Rn = Ln-1 XOR f(Rn-1, Kn) 48 -bitový kľúč Kn patriaci príslušnej iterácii vzniká pomocou tzv. KS (key schedule) funkcie, ktorá je určená na výber konkrétnych bitov z pôvodného kľúča: Kn = KS(n, kľúč) Podrobne algoritmus napr. v článku M. Sopko: Praktická kryptológia 5. , PC Revue
DES Základné vlastnosti: Lavnový efekt – malá zmena v otvorenom texte sa prejaví veľkou zmenou v šifrovanom texte Úplnosť – každý bit šifrovaného textu závisí na ďalších bitoch otvoreného textu. Slabiny DES – výber slabých kľúčov. Pri používaní silných kľúčo ide o veľmi dobrú šifrovaciu metódu. Patrí do štandartov NIST.
Triple DES a viacnásobné šifrovanie Kaskáda šifier, vychádza z DES Označme P a C otvorený a šifrovaný text E´a D´ šifrovacia a dešifrovacia fcia DES Potom pre Triple DES E(P) = E´K 3(D´K 2(E´K 1 (P))) = C D(C) = D´K 1(E´K 2(D´K 3 (C))) = P
https: //www. tutorialspoint. com/cryptography/tripl e_des. htm
Triple DES a viacnásobné šifrovanie Možnosti pre voľbu kľúčov: 1. Kľúče sú navzájom nezávislé – dĺžka kľúča je 3 x 56 = 168 bitov 2. K 1 = K 3, dĺžka kľúča je 2 x 56 = 112 (2 TDES) 3. Kľúče sú rovnaké – t. j. realizuje sa štandartná šifra DES, ale trikrát pomalšie. Viacnásobné šifrovanie – narastá zložitosť šifrovania aj dešifrovania.
AES Tri varianty – podľa dĺžky – počet cyklov AES 128 – 10 cyklov AES 192 – 12 cyklov AES 256 – 14 cyklov Základné operácie: - Pripočítanie podkľúča (Add. Round. Key) - Substitúcia bytov (Sub. Bytes) – každý byte je nahradený definovanou hodnotou podľa fixnej permutácie množin hodnôt (0, 1, . . . , 255) – s-box S, byte x je nahradený hodnotou S(x) - Posun riadkov (Shift. Rows) – riadky sa cyklicky posunú o rôzny počet bytov doľava (prvý riadok o 0, druhý o 1, tretí o 2 aštvrtý o 3 byty) - Miešanie stĺpcov (Mix. Ciolumns) – každý stĺpec stavu je transformovaný samostatne – prenásobený pevne danou maticou. Výsledkom je nová matica 16 bytov
https: //www. tutorialspoint. com/cryptography/adv anced_encryption_standard. htm
AES – decryption process Reverzný postup: Pripočítanie podkľúča, miešanie stĺpcov, posun riadkov, substitúcia bytov. Implementácia šifrovacieho a dešifrovacieho algoritmu sa musí implementovať osobitne (nie ako Feistelov algoritmus)
AES - zhodnotenie AES je široko podporovaná a implementovaná sw aj hw. Hw implementácia môže byť až 30 x rýchlejšia. Rôzny počet kôl pre jednotlivé viarianty AES má vplyv na rýchlosť šifry. (AES 256 je cca o 40% pomalší ako AES-128) Praktický útok na AES v súčasnosti nie je realizovateľný. Útok so znalosťou otvoreného textu vyžaduje veľké množstvo dvojíc otvoreného a zašifrovaného textu a je časovo náročný (napr. pre AES-128 je zložitosť 2126, 1 a potrebný počet dvojíc je 288 ) AES má zabudovanú flexibilitu dĺžky kľúčov, čo umožní v budúcnosti upraviť algoritmus a zabrániť tak možnému nájdeniu kľúčov. Podobne ako pre DES aj tu platí, že musí byť korektne implementovaný a musí byť aplikovaný dobrý manžment kľúčov.
Módy blokových šifier Definuje spôsob použitia šifry potenciálne aj na údaje dlhšie ako je dĺžka bloku ECB – Electronic Code. Book Vstupné údaje sa rozdelia na bloky dĺžky danej blokovou šifrou a zašifrujú sa samostatne Pre daný kľúč vieme vytvoriť knižnicu šifrovaných textov pre všetky možné otvorené texty. https: //www. tutorialspoint. com/cryptography/block_cipher_modes_of_operation. htm Výhody – jednoduchosť a paralelizmus Nevýhody – prepúšťa informáciu o otvorenom texte. ECB umožňuje uhádnuť otvorený text metódou pokus-omyl. V prípade rovnosti blokov šifrového textu vieme určiť zhodu zodpovedajpcich blokov v otvorenom texte.
Módy blokových šifier CBC Cipher Block Chaining -nedeterministické operácie Kroky: Inicializačný vektor IV – voliť ako náhodný reťazec napr. pomocou generátora náhodných čísel – nalodovať do vrchného registra Operácia XOR medzi n-bit otvoreným textom a hodnote top registra Výsledok sa enkryptuje pomocou kľúča K 3 ifrovaný text sa natiahne do rchného registra a pokračuje sa v šifrovaní, ažkým nie je celý otvorený text zašifrovaný
Módy blokových šifier CBC Cipher Block Chaining Aktuálny blok OT sa pridáva k predchádzajúcemu šifrovému bloku a výsledok sa encryptuje pomocou kľúča K. Decryption – dešifruje aktuálny šifrový text a potom pridá predchádzajúci šifrový text k výsledku Výhody – zmena IV znamená zmenu šifrového textu Nevýhody – propagácia chyby na ďalšie bloky počas dešifrovania - nemožnosť paralelizácie Použitie pre aplikácie, ktoré vyžadujú aj symetrické šifrovanie aj autentifikáciu pôvodu dát Správne implementovaný CBC mód je bezpečný pspôsob použitia blokovej šifry pre zabezpečenie dôvernosti dát.
Prúdové šifry Synchrónne – bežiaci kľúč generovaný nezávisle na otvorenom /šifrovanom texte a samosynchronizujúce – bežiaci kľúč je závislý na predchádzajúcom šifrovanom texte Výhoda oproti blokovým šifrám – nie je potrebný osobitný dešifrovací algoritmus. Dešifrovanie sa realizuje generovaním rovnakého bežiaceho kľúča a jeho odstránením zo šifrovaného textu. Sú rýchlejšie. Bezpečnosť prádových šifier sa opiera o neodlišiteľnosť bežiaceho kľúča od náhodnej postupnosti bitov
CTR Counter mod Pomocou voľby módu sa dá z blokovej šifry skonštruovať prúdová šifra CTR je synchrónna prádová šifra Umožňuje paralelizovať šifrovanie aj dešifrovanie
CTR - zhrnutie Šifrovaný text nezávisí na predchádzajúcich blokoch OT CTR mode používa blok šifry na generovanie prúdu kľúča, ktoré sa enkraptujú použitím XOR. Pri CTR sa nepropaguje prenosová chyba. Nevýhoda – vžaduje synchronizáciu počítadla vysielača a prijímača. Strata synchronizácie má za následok chyby pri dešifrovaní otvoreného textu
CFB – Cipher feedback Blocj Samosynchronizujúca prúdová šifra Generuje bežiaci kľúč pomocou transformácie predchádzajúceho bloku šifrového textu blokovou šifrou Samosynchoronizovanie znamená, že pri chybe bude nasledujúci blok dešifrovaný nesprávne, ale všetky ďalšie už budú správne Šifrovanie CFB nie je paralelizovateľné, ale dešifrovanie áno. Pre bezpečnosť CFB je dôležité, aby bol IV jedinečný pre každý OT šifrovaný rovnakým kľúčom a aby bol nepredikovateľný
Šifrovanie a dešifrovanie pomocou AES – v prostredí LINUX Gnu. PG, GPG (Privacy Guard) – skupina, štandart Open. PGP (Pretty Good Privacy) umožňuje aj šifrovanie celých diskových jednotiek, podporujú mnoho šifrovacích agoritmov, konštrukcia infraštruktúry verejných kľúčov, hašovacích funkcií a kompresiu dát Open SSL – robustný kryptografický balík implementujúci protokoly SSL a TLS. Podporuje symetrické aj asymetrické šifrovacie algoritmy a hašovacie funkcie
Mcrypt, ccrypt sym a asym šifrovanie súborov a prúdov Gnu. Emacs – textový editor – integruje Gnu. PG prostredníctvom zabudovaného balíčka Easy. PG – umožňuje podpisovať a overovať, šifrovať a dešifrovať súbory Encrypt. Pad – implementuje šifrovanie AES Úloha – zaheslovanie súborov, dokumentov, archívov
- Slides: 22