BEZ Flashcards
šifra RSA
asymetrická šifra, modulárne umocňovanie, verejný a súkromný kľúč
Dvojice (e,n) je VK klíče; e - exponent n - modul. n → součin dvou prvočísel p a q, tj. n=pq a gcd(e,Φ(n)) = 1. Dvojice (d,n) je dešifrovací klíč
E(m) = m^e = c D(c) = c^d = m^ed = m
V prípade, kdy nepoznáme hodnoty p a q, je nalezení
Φ(n) podobne složité jako faktorizace celého čísla n.
Ak ja chcem poslať súkromnú správu, tak na to aplikujem jeho verejný kľúč
digitálny podpis RSA
Digitálnym podpisom sa zaručuje autenticita správy, skombinovanie so šifrovaním RSA zaručí autenticitu aj súkromie.
Správu odosielateľ zašifruje svojim súkromným kľúčom, príjemca overí dešiforvaním pomocou verejného kľúča.
Prípadne odosielateľ môže zašifrovať verejným kľúčom príjmateľa ak je správa určená len jednému konkrétnemu príjemcovi. Ten ju najskôr dešifruje svojim súkromným kľúčom a následne overí autenticitu verejným kľučom odosielateľa
Diffie-Hellman
Zriadenie spoločného kľúča pre k subjektov
Subjekt A zvolí verejné časti kľúča:
m - modul (veľké prvočíslo)
a - základ (gcd(m,a) =1) 0<a></a>
Hešovacie funkcie
Mějme přirozená čísla d a množinu X všech binárních řetězcú délky 0 až d (prázdný řetězec je platným vstupem a má délku 0). Funkci h:X→ {0,1}^n nazveme hašovací, jestliže je jednosměrná 1. typu a bezkolizní. Říkáme, že každému binárnímuřetězci z množiny X přiřadí binární hašovací kód (haš, hash) délky n bitú.
asymetrické kryptosystémy
- Pro šifrování a dešifrování se používají rozdílné klíče.
- Používají se soukromé klíče (SK) a veřejné klíče (VK, dostupný všem).
- Šifrujeme pomocí VK, dešifrujeme pomocí SK (viz obr.)
- SK se nedá z VK vypočíst v rozumném čase.
Základné princípy:
- diskrétny logaritmus
- faktorizace
Solenie hashu a padding
- Při vytváření a kontrole hash hesla se přidávají k heslu náhodná data (ukládá se sůl, osolený hash)
- Přidává odolnost vůči „rainbow tables“ (databáze předpočítaných hashí)
- Zarovnání (na bity) musí být takové, aby umožňovalo jednoznačné odejmutí, jinak by vznikaly jednoduché kolize
- Zarovnání u nových hashovacích funkcí se definuje jako doplnění bitem 1 a poté potřebným počtem 0 =>
jednoznačné odejmutí doplňku
funkcia SHA-2 (Secure Hash Algorithm)
Základní vlastnosti hašovacích funkcí SHA-x
SHA-1 SHA-256 SHA-384 SHA-512
Délka h. kódu 160 256 384 512
Délka zprávy <2^64 <2^64 <2^128 2^128
Velikost bloku 512 512 1024 1024
Velikost slova 32 32 64 84
# rundf 80 80 80 80 Bezpečnost v bit 80 128 192 256
- Doplň do zprávy padding, dna celistvý počet blokov
- Doplň délku jednotlivých bloků.
- Zpracuj zprávu v 1024-bit blocích.
- 80 rund
Nejvýznamnější rozdíly jsou v délce hash kódu, který určuje odolnost vůči nalezení kolizí 1. a 2. řádu.
HMAC
HMAC (M) = H((K + ⊕ o_pad) || H((K + ⊕ i_pad) || M))
- I_pad a o_pad jsou definované konstanty
Šifrovacím klíčem zašifrujeme zprávu a k ní připojíme
autentizační kód (Message Atuhentication Code – MAC)
jako klíčovaný hash.
Slouží k ověření integrity a autentizaci zprávy (prokazování znalosti tajného klíče K)
- Tzn. Nepadělatelné zabezpečení zpráv
Symetrické šifry
Pro šifrování a dešifrování používají stejné nebo vzájemně snadno převoditelné klíče.
- klasické
- produdové - RC4
- blokové - Rijndael (AES), DES
Proudové šifry
Proudové šifry nejprve z klíče K vygenerují posloupnost h1 , h2 , . . . hn (keystream) a každý znak otevřeného textu šifrují jinou transformací Ehi a dešifrují Dhi.
Synchonní:
- Proud hesla nezávisí na OT ani ŠT.
- Příjemce a odesílatel je přesně synchronizován.
- Výpadek jednoho znaku ŠT naruší veškerý následující OT
Asynchronní (Samosynchronizující):
- Šifry eliminující chyby výpadku - v krátké době dojde k synchronizaci a správnému dešifrování zbývajícího OT.
Vernamova šifra - náhodné heslo rovnako dlhé ako správa => heslo na jedno použitie - absolútne bezpečná šifra
RC4
šifra RC4
Šifra RC4 generuje pseudonáhodný proud bajtů (keystream). Stejně jako všechny proudové šifry, používá k šifrování spojení náhodných bajtů spolu s čistým textem (operací XOR) a dešifrování probíhá podobným způsobem, ale inverzně. Ke generování keystreamu používá šifra vnitřní stav, který tvoří: pole bajtů o délce 256 (S) a dvě celočíselné
proměnné (i a j)
- Nevyužíva IV
- 40b a 128b jsou nejpoužívanější délky klíče
- Šifrovací klíč se používá pouze k vygenerování tajné substituce{0, …, 255}→{0, …, 255}, tedy substituci bajtu za bajt
- inicializace permutace S
- h(index) = |S( S(i) + S(j))| mod256
Bloková šifra
- Šifrují najednou řetězce znaků délky t - bloky.
- Všechny bloky OT jsou šifrovány toutéž transformací a všechny bloky ŠT jsou dešifrovány toutéž transformací
- Blokové šifry využívají principy algoritmů Feistelova typu umožňující postupnou aplikací (iterací) relativně
jednoduchých transformací na bázi nelineárních posuvných registrů (viz předmět BI-SAP) vytvořit složitý
kryptografický algoritmus
principy algoritmú Feistelova typu
mi+1 = mi−1+fi(mi), pro i=1,2,…,h
Tk(m) = (mh mh+1),
kde m= (m0m1)∈M, definuje Feisteluv kryptosystém.
Pro m=1001 1101 dostáváme postupne m = (m0 m1):
c1=(m1 m2)= (1101 1110), kde m2=1001⊕f1(1101) =1001⊕0111=1110
c2=(m2 m3)= (1110 0000), kde m3=1101⊕f2(1110) =1101⊕1101=0000
Dešifrovanie opačným spôsobom
šifra DES (Data Encryprion Standard) a 3DES
- Bloková šifra
- Zesílení DES, který používal příliš slabé klíče (56b)
- I přes to, že jde o platný standard je nahrazován AES, který nabízí podstatně vyšší výkonnost
- teoretické negativní vlastnosti jako: tzv. slabé a poloslabé klíče, komplementárnost a teoreticky úspěšná lineární a diferenciální kryptoanalýza
- v praxi jedinou zásadní nevýhodou je pouze krátký klíč (56b)
DES je iterovaná šifra typu Ek16 (Ek15(…(Ek1 (m i )…)))
používá 16 rund (iterací) a 64b bloky OT a ŠT
DES v módu CTR je sychronní proudová šifra
3DES - EDE:
Prodlužuje klíč originální DES tím, že používá DES jako stavební prvek celkem 3 x s dvěma (112b) nebo
třemi (168b) různými klíči
Je spolehlivý - klíč již dostatečně dlouhý a teoretickým slabinám (slabé klíče, komplementárnost) se dá
předcházet
šifra AES (Advanced Encryption Standard)
- bloková šifra s délkou bloku 128 bitú
- tri délky klíče: 128, 192 a 256 bitu
- počet rund (iterací) je v závislosti na délce klíče 10,12,14 ( r = počet 32b slov + 6)
- AES nemá slabé klíče, je odolný proti známým útokum a metodám lineární a diferenciální kryptoanalýzy.
- má malé nároky na pamet’ i velikost kódu a je vhodný i pro paralelní zpracování
- Expanze klíče - z klíče se odvodí round keys
- Inicializační část - každý byte stavu je zXORován s podklíčem
- Iterace:
a) SubBytes - každý byte se nahradí jiným podle fixní tabulky SubBytes (substit.)
b) ShiftRows - řádky matice se cyklicky posunou postupně o 0-3 bajty doleva
c) MixColumns - v každém řádku zkombinuje 4 bajty
d) AddRoundKey - na sloupce matice se zleva doprava naxorují 4 odpovídající rundovní klíče, tím je runda poslána a začíná další - Poslední iterace s vynecháním MixColumns