Kryptografické protokoly kryptografické nástroje

doc. RNDr. Jozef Jirásek, PhD.

2020/2021 Bezpečnostné ciele informačnej bezpečnosti bezpečnostné ciele, dosahované použitím kryptografických systémov a bezpečnostných mechanizmov (ISO/IEC 27000) • utajenie (data confidentiality) = šifrovanie (asymetrická, symetrická kryptografia, blokové, prúdové šifry) • dôvernosť spojenia, jednotlivého bloku, časti správy, toku dát • celistvosť (data integrity) = integritné schémy (MDC funkcie) • možnosť opravy, integrita časti správ, detekcia zámeny (replay) • pôvodnosť (data authentication) = autentifikačné postupy (MAC funkcie) • pôvodnosť zdroja, identita tvorcu správy • nepopierateľosť (nonrepudiation) = digitálne podpisovacie schémy (asymetrická, symetrická kryptografia, MAC, MDC) • nepopierateľnosť odosielateľa, príjemcu

Zimný semester 2020 Kryptografické primitíva 2 Bezpečnostné ciele informačnej bezpečnosti

• dostupnosť (availability) = prístupové práva, riadenie prístupu • ochrana pred neoprávnenými zmenami a odstránením dát, odmietnutie služieb zahltením • overenie identity (entity authentication) = autentifikačné protokoly, overenie identity • komunikujúca entita (používateľ – principal) je ten, za ktorého sa vydáva • evidencia (accountability) = logovanie, transakcie • schopnosť identifikovať zodpovednosť za minulé akcie, logovanie, sledovanie transakcií • dôvera (trust) = schémy zdieľania a prenášania dôvery • spoľahlivosť služieb

Zimný semester 2020 Kryptografické primitíva 3 Utajenie (dôvernosť komunikácie) klasické symetrické šifry

Zimný semester 2020 Kryptografické primitíva 4 Utajenie komunikácie so zdieľaným tajomstvom zdieľanie spoločného tajomstva – kľúč k (secret )

šifrovacia a dešifrovacia funkcia – ek a dk Kryptografický systém je bezpečný, ak útočník nie je schopný dešifrovať text ani vtedy, keď dokonale pozná postup šifrovania (Auguste Kerckhoffs 1883)

Zimný semester 2020 Kryptografické primitíva 5 Kryptografický systém (symetrický)

Alica Decryption Bob

x1 x2 ... xn y1 y2 ... yn x1 x2 ... xn ∈ y ∈ Σ x ∈ Σ xi ΣP k i C k i P

Kryptografický systém je pätica (P, C, K, E, D), kde • P je konečná množina otvorených textov (plain texts) nad * abecedou ΣP P ⊆ ΣP • C je konečná množina šifrových textov ( texts) nad * abecedou ΣC C ⊆ ΣC • K je konečná množina kľúčov (keys)

• pre každé k ∈ K existuje šifrovacia funkcia ek ∈ E a dešifrovacia funkcia dk ∈ D také, že pre každý otvorený text x1 x2 ... xn ∈ P platí dk (ek (xi)) = xi ∀i ∈ {1, 2, …, n}

Zimný semester 2020 Kryptografické primitíva 6 Posuvná šifra – formálny zápis

• textovú abecedu reprezentujme číslami 0, 1, ..., 25 (šifrovacie a dešifrovacie funkcie bude možné jednoduchšie zapísať)

• ΣP = ΣC = K = {0, 1, ..., 25}

• ∀ 푥 ∈ ΣP ∀ 푘 ∈ K 푒푘 푥 = (푥 + 푘) mod 26

• ∀ y ∈ ΣC ∀ 푘 ∈ K 푑푘 푦 = (푦 − 푘) mod 26 • výpočty v aditívnej grupe ℤ26

Zimný semester 2020 Kryptografické primitíva 7 Monoalfabetická substitúcia

• ΣP = ΣC = {0, 1, ..., 25}

• K = {휋 ∶ ΣP → ΣC} permutácie množiny {0, 1, ..., 25}

• 푒휋 푥 = 휋(푥) −1 −1 • 푑휋 푦 = 휋 (푦) 휋 je inverzná permutácia k 휋

|K| = 26! Ako si zapamätať kľúč ?

Zimný semester 2020 Kryptografické primitíva 8 Možnosti kryptoanalýzy monoalfabetickej substitúcie

• jazyk otvoreného textu • medzery, predložky, spojky ... • opakované sekvencie, známe časti textu (začiatok, koniec) • frekvencia výskytu znakov  frekvenčná analýza

Zimný semester 2020 Kryptografické primitíva 9 Frekvencia výskytov znakov v anglickom texte

zdroj: wikipedia.org

Zimný semester 2020 Kryptografické primitíva 10 Frekvenčná analýza - príklad

• Macbeth Act 1, Scene 1 Frekvencia v texte Frekvencia v AJ C 64 E 0.12702 E ↔ C OWLPVNLG MV RVWWO; V 44 T 0.09056 T ↔ V DR VQW RTCEV RQMSSCIR VADV OW JGMEX VWXCVACI D 41 A 0.08167 A ↔ D DEO JAWYC VACMI DIV. VAC SCIJMGCRR SDJOWEQDGO QWIVAU VW PC D ICPCG NWI VW VADV W 41 O 0.07507 O ↔ W VAC SLGVMTGUMEX FMGGDEMCR WN EDVLIC R 40 I 0.06966 I ↔ R ? OW RQDIS LTWE AMS NIWS VAC QCRVCIE MRGCR A 37 N 0.06749 WN YCIER DEO XDGGWQXGDRRCR MR RLTTGMCO M 37 0.06327 DEO NWIVLEC WE AMR ODSECO BLDIICG RSMGMEX S RAWQO GMYC D ICPCGR QAWIC PLV DGG VWW QCDY G 34 H 0.06094 NWI PIDFC SDJPCVA QCGG AC OCRCIFCR VADV EDSC E 32 R 0.05987 OMRODMEMEX NWIVLEC QMVA AMR PIDEOMRAO RVCCG I 30 D 0.04253 QAMJA RSWYCO QMVA PGWWOU CHCJLVMWE GMYC FDGWLIR SMEMWE JDIFCO WLV AMR TDRRDXC O 28 L 0.04025 VMGG AC NDJCO VAC RGDFC S 19 C 0.02782 QAMJA ECCI RAWWY ADEOR EWI PDOC NDICQCGG VW AMS Q 16 U 0.02758 VMGG AC LERCDSO AMS NIWS VAC EDFC VW VAC JADTR DEO NMHO AMR ACDO LTWE WLI PDVVGCSCEVR. L 16 M 0.02406 N 12 W 0.02360 P 11 F 0.02228 J 11 G 0.02015 X 8 Y 0.01974 T 8 P 0.01929 Y 7 B 0.01492 F 7 V 0.00978 U 3 K 0.00772 H 2 J 0.00153 B 1 X 0.00150 Q 0.00095 Z 0.00074

Zimný semester 2020 Kryptografické primitíva 11 Polyalfabetické šifry

využívajú viacero abecied – šifrovacia a dešifrovacia funkcia závisí aj od pozície znaku v texte sťaží sa tak možnosť využitia frekvenčnej analýzy

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 Z G X D U N Y I V Z P B S F C J M L O T W H A K Q E R Abecedy H Q U Y E R J G L I M D Z K W V X A B S C T N O P F

PT K R Y P T O G R A F I A N A U P J S J E S U P E R !

B O E M W J I O G Y Z G C G H M P T P N T H M N O M A P V S W J A H R L H K H C V I B I E B C V E A

CT B A Y V W O G A G F Z H C H H V P B P E T C M E O

Zimný semester 2020 Kryptografické primitíva 12 Vigenèrova šifra

• 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 Z Giovan Battista Bellaso A 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 Z B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A (1553) C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D • F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F (Trithemius 1508) H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I • neskôr omylom pripísaná K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K Blaise de Vigenèrovi M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q posuvná šifra s posunom, S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S závislým od pozície znaku U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V 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 W 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 V v texte X X 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 Y 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 X posun určuje kľúčové slovo Z Z 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 (expandované na dĺžku otvoreného textu)

Zimný semester 2020 Kryptografické primitíva 13 Vigenèrova šifra - šifrovanie

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 Z PT K R Y P T O G R A F I A A 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 Z B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A K U P J S U P J S U P J S C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D CT E G H H F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H PT N A U P J S J E J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K U P J S U P J S K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P PT S U P E R R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R K U P J S U T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T ↓ ↓ ↓ ↓ ↓ V V 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 W 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 V X X 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 Y 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 X Z Z 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

Zimný semester 2020 Kryptografické primitíva 14 Šifrovacie stroje

Zariadenia na uľahčenie šifrovania • Albertiho disk (1467)

• Jeffersonov disk – 10 otáčacích valcov kľúčom je ich usporiadanie (v riadku sa nastaví otvorený text, iný riadok potom bude šifrový text) https://en.wikipedia.org/wiki/Jefferson_disk

• Hillov polygrafický šifrátor

Zimný semester 2020 Kryptografické primitíva 15 Enigma

• elektromechanický rotorový šifrátor • Arthur Scherbius (1918) komerčne dostupný (cca 100000 kusov) • vojenské modely s rôznymi vylepšeniami • šifra prelomená tesne pred začiatkom vojny (30 rokov v utajení)

Zimný semester 2020 Kryptografické primitíva 16 Enigma

• 3 rotory s vymeniteľným poradím ( 5 ) • 1 rotor sa otáčal po napísaní každého písmena • 2 rotor sa otáčal po 26 písmenách • 3 rotor sa otáčal po 26*26 písmenách • postupnosť 263 = 17576 rôznych substitúcií

Zimný semester 2020 Kryptografické primitíva 17 Enigma – Turingove bomby eliminácia prepojovacej dosky – prepojenie všetkých 26 pozícií priamo na doske (L1 odpovedá L1 v druhom stroji, L2 v druhom L2 v treťom) všetko 60 x pre všetky možné kombinácie rotorov

Zimný semester 2020 Kryptografické primitíva 18 Možnosti kryptoanalýzy

• poznám len šifrovaný text, algoritmus šifrovania a charakteristiku otvoreného textu - COA – only attack • poznám aspoň jednu dvojicu otvoreného a šifrovaného textu KPA – known-plaintext attack • môžem si nechať niečo zašifrovať CPA – chosen-plaintext attack • môžem si nechať niečo dešifrovať CCA – chosen-ciphertext attack • adaptívne varianty CPA a CCA

Zimný semester 2020 Kryptografické primitíva 19 Ďalšie možnosti kryptoanalytických útokov

• postranné kanály (side channels attack) • chyby v implementácii • malware, spyware, • sociálne inžinierstvo, phishing • korupčná kryptoanalýza • pendreková (rubber-hose) kryptoanalýza

Zimný semester 2020 Kryptografické primitíva 20 Vernamova šifra

Vernam (1917) PT K R Y P T O G R A F I A N A U P J S J E S U P E R K U P J S R W Y B D A G X D U N Y I V Z P B S C J L CT E G H H K K E S D F O X Q U H N R N I T T M R N C pre náhodný kľúč rovnakej dĺžky ako správa k CT existuje pre každý PT taký K, že DK(CT)=PT COA nie je možný CT E G H H K K E S D F O X Q U H N R N I T T M R N C K U P J S R W Y B D A G X D U N Y I V Z P B S C J L PT K R Y P T O G R A F I A N A U P J S J E S U P E R

CT E G H H K K E S D F O X Q U H N R N I T T M R N C K B S Y E C P K Z P O A N C C O S A U V T B T T W U PT D O J D I V U T O R O K O S T V R T N A S T Y R I ak použijem ako kľúč EN text s H(P) < 3,2 tak by to teoreticky bolo možné

Zimný semester 2020 Kryptografické primitíva 21 OTP – One-time pad jediná známa nerozlúštiteľná (perfect secrecy) šifra * * pre binárne reťazce x = x1 x2 ... xn ∈ {0,1} s = s1 s2 ... sn ∈ {0,1}

E(x) = y = y1 y2 ... yn = (x1 xor s1) (x2 xor s2) ... (xn xor sn)

D(y) = (y1 xor s1) (y2 xor s2) ... (yn xor sn) = (x1 xor s1 xor s1) (x2 xor s2 xor s2) ... (xn xor sn xor sn) = x1 x2 ... xn = x a xor b = a b = (a + b) mod 2 reťazec s (stream) musí byť • náhodne vygenerovaný • utajený (známy len odosielateľovi a príjemcovi) • nesmie sa použiť viackrát

Zimný semester 2020 Kryptografické primitíva 22 Utajenie (dôvernosť komunikácie) prúdové symetrické šifry

Zimný semester 2020 Kryptografické primitíva 23 Šifrátor Lorenz

• zariadenie na generovanie dvoch reťazcov bitov • 2x 5 ozubených kolies s rôznymi počtami „pinov“ v stave 0 resp. 1, druhých 5 kolies sa otáča len ak je prvých 5 kolies v stave 1 ( spolu cca 6 x 1017 pozícií + ovplyvňovanie plaintextom) • xor s telegrafickou správou (v 5 bitovom kóde - Baudot) vysielané telegraficky – Vernamova šifra • Colossus – elektronické zariadenie na kryptoanalýzu

Zimný semester 2020 Kryptografické primitíva 24 Colossus - rekonštrukcia

Zimný semester 2020 Kryptografické primitíva 25 Prúdové šifrovacie systémy

y1 y2 ... yn = Alica Bob x1 xor s1 x2 xor s2... xn xor sn x1 x2 ... xn y1 xor s1 y2 xor s2... yn xor sn = x1 x2 ... xn s1 s2 ... sn s1 s2 ... sn

RNG RNG

k k • stream (pseudo)náhodne generovaný • utajený kľúč (počiatočné nastavenie generátora – seed) • nesmie sa použiť viackrát • problémy s integritou ! (negáciou bitov šifrového textu je možné cielene zmeniť bity v dešifrovanom texte)

Zimný semester 2020 Kryptografické primitíva 26 Generátory náhodných (pseudonáhodných) čísel

• TRNG (True random number generator) hw riešenie (tepelný šum, kvantové javy, udalosti v PC) na dešifrovanie preniesť bezpečným kanálom ! • PRNG – generátory pseudonáhodných čísel – generovanie závisí len od počiatočného nastavenia - kľúča (seed) konečný počet stavov – po čase za začnú opakovať lineárne kongruenčné generátory 푠0 = 푠푒푒푑; 푠푖+1 = (푎 푠푖 + 푏) 푚표푑 푚 35 napr. 푠푖+1 = 84589 푠푖 + 45989 푚표푑 217728 s periódou 2 31 ANSI C random 푠푖+1 = (1103515245 푠푖 + 12345) 푚표푑 2

Zimný semester 2020 Kryptografické primitíva 27 Generátory náhodných (pseudonáhodných) čísel

• CSPRNG – kryptograficky bezpečné generátory pseudonáhodných čísel – výstup nie je možné predikovať (dokázateľne) Blum-Blum-Shub generátor pre prvočísla 푝, 푞 2 푏푖+1 = 푏푖 푚표푑 푝푞 푝 ≡ 푞 ≡ 3 (푚표푑 4) 푠푖+1 = 푏푖+1 푚표푑 2 predikcia nasledujúceho bitu streamu je ekvivalentná problému riešenia kvadratických rezíduí

Zimný semester 2020 Kryptografické primitíva 28 Lineárne posuvné registre so spätnou väzbou

• pre binárny vstup 푠푖, 푎푖 ∈ {0,1}; i ∈ {0, 1, … m-1} 푠푚 = (푠푚−1푎푚−1 + … + 푠1푎1 + 푠0푎0) mod 2 • pre 푛 > 푚 rekurentne 푠푛 = (푠푛−1푎푚−1 + … + 푠푛−푚+1푎1 + 푠푛−푚푎0) mod 2 • implementácia logickými obvodmi XOR AND • posuvné registre – posun synchronizovaný signálmi CLK

Zimný semester 2020 Kryptografické primitíva 29 analýza LFSR

• pre prvých 2m hodnôt – riešiť lineárne rovnice

푠0 ⋯ 푠푚−1 푎0 푠푚 ⋮ ⋱ ⋮ ⋮ = ⋮ 푠푚−1 ⋯ 푠2푚−2 푎푚−1 푠2푚−1 výpočty v ℤ2 • stačí poznať sekvenciu 2m hodnôt kdekoľvek • pokiaľ nevieme m ? • Berlekamp-Massey algoritmus

Zimný semester 2020 Kryptografické primitíva 30 A5/1

• prúdová šifra pre GSM • 3 LFSR registre 19, 22, 23 • posúvajú sa len tie, ktoré sa zhodnú na vyznačených pozíciách (oranžové) • 64 bitový kľúč – pri inicializácii sa pridá do každého registra • 22 bitové číslo rámca (frame number) podobne • 100 prázdnych krokov • 2x 114 bitov výstup (každých 4,615 ms)

Zimný semester 2020 Kryptografické primitíva 31 Utajenie (dôvernosť komunikácie) blokové symetrické šifry

Zimný semester 2020 Kryptografické primitíva 32 Jednoduchá mriežka (Cardan )

• Cardano (1550) znaky textu, ktorý chceme zašifrovať, nájdeme v obyčajnom texte (liste) a ich pozície vyznačíme v mriežke • dešifrovanie – opäť priložiť mriežku (kľúč) • skôr steganografia ...

Zimný semester 2020 Kryptografické primitíva 33 Transpozičné šifry

Šifrový text vznikne permutáciou (niektorých) znakov otvoreného textu (ak je text dlhý, možno ho rozdeliť na bloky podľa veľkosti permutácie) • zápis otvoreného textu odzadu • zápis textu do riadkov pevnej dĺžky a šifrovanie čítaním po stĺpcoch (scytale) • stĺpcová transpozícia – pred čítaním stĺpce zamiešame • permutačné mriežky (jednoduché zapamätanie permutácie – mechanické šifrovanie a dešifrovanie) expanzná permutácia - zobrazenie znakov otvoreného textu na viacero miest šifrového textu (eliminácia použitia frekvenčnej analýzy a hľadania anagramov)

Zimný semester 2020 Kryptografické primitíva 34 Šifra ADFGX

• používaná v 1. svetovej vojne v nemeckej armáde • kombinácia Polybiovho štvorca so stĺpcovou transpozíciou • znaky šifrového textu – A D F G X – odlišný Morseho kód (redukcia chýb) • heslo „VELMINAHODNEA BEZPECNEHESLO“ zapíšeme A D F G X do Polybiovho štvorca A V E L M I (ako v Playfair šifre) D N A H O D F B Z P C S G F G K Q R H T U W X Y

Zimný semester 2020 Kryptografické primitíva 35 Šifra ADFGX

• A D F G X znaky otvoreného textu šifrujeme A V E L M I/J dvojicou indexu riadku a indexu D N A H O D stĺpca F B Z P C S G F G K Q R K R Y P T O G R A F I A X T U W X Y GF GX XX FF XA DGGDGX DX GA AX DD

S U P E R E P R S U a pokračujeme stĺpcovou G F G X X X G X G F transpozíciou s heslom SUPER X F F X A X F A X F D G G D G D G G D G šifrový text (po stĺpcoch): X D X G A G X A X D XXDGD GFGXD XAGAX GXDXA FFGDX A X D D D D A X

Zimný semester 2020 Kryptografické primitíva 36 Iné možnosti utajenia informácie

Shannon (1945) – zobrazenia, zvyšujúce entropiu : • konfúzne – zakrývajúce vzťah medzi kľúčom a šifrovým textom, zmena v kľúči spôsobí zmenu CT na viacerých miestach • zobrazenie je nelineárne – pre šifrovaciu funkciu nie je možné použiť aproximáciu lineárnymi resp. inými jednoduchými funkciami • difúzne – zakrývajúce vzťah medzi otvoreným a šifrovým textom tým, že zmena znaku v PT zmení znaky v CT na rôznych miestach (charakteristiky PT sa rozptýlia do celého CT resp. bloku CT) • lavínový efekt (the avalanche effect) – zmena bitu v otvorenom texte zmení každý bit výstupu s pravdep. 1/2

Zimný semester 2020 Kryptografické primitíva 37 Iné možnosti utajenia informácie

Shannon – zobrazenia, zvyšujúce entropiu : • konfúzne – zakrývajúce vzťah medzi kľúčom a šifrovým textom, zmena v kľúči spôsobí zmenu CT na viacerých miestach • difúzne – zakrývajúce vzťah medzi otvoreným a šifrovým textom tým, že zmena znaku v PT zmení znaky v CT na rôznych miestach • z teórie informácie neexistujú iné také zobrazenia • zloženie konfúzneho a difúzneho zobrazenia nie je komutatívne (záleží na poradí)

Zimný semester 2020 Kryptografické primitíva 38 Substitučno – permutačné siete utajenie zvýši len opakovaná kombinácia konfúzie (substitúcie) a difúzie (transpozície) substitučno-permutačné siete opakujú substitúciu (stále s iným kľúčom) a permutáciu v tzv. rundách (round) účinnosť závisí od kvality substitučných blokov (S-boxov) a veľkosti permutácie (P-boxy) dešifrovanie – obrátený postup (s inverznými S-boxmi)

Zimný semester 2020 Kryptografické primitíva 39 Blokové symetrické šifrovacie systémy

Alica Block encr. Block decr. Bob

x1 x2 ... xn y1 y2 ... yn x1 x2 ... xn ∈ m y ∈ {0,1}m x ∈ {0,1}m xi {0,1} k i k i otvorený text bloky bloky rozdelený na bloky šifrového textu otvoreného textu • delenie textu na bloky rovnakej veľkosti (aby sa dali urobiť difúzie) • šifrovanie rovnakých blokov tým istým kľúčom bude rovnaké – blok musí byť dostatočne veľký, aby sa nedali využiť štatistické metódy resp. kódovacie tabuľky pre každý kľúč • bloková substitúcia umožňuje |K| = 2m ! kľúčov – prakticky stačí menej, ale treba s nimi správne narábať

Zimný semester 2020 Kryptografické primitíva 40 Feistelova sieť

퐿0 푅0 퐾1 ⊕ F Feistel (1973) – SP sieť

퐿1 푅1 (pôvodne pre IBM šifru Lucifer) blok rozdelený na polovice 퐿 a 푅 퐾2 0 0 ⊕ F 퐿푖 = 푅푖−1 푅푖 = 퐿푖−1 ⊕ 퐹(푅푖−1, 퐾푖) 퐿2 푅 2 po n rundách je šifrový text 푅푛퐿푛

퐾3 ⊕ F • difúzia – zmiešanie s opačnou polovicou 퐿3 푅

3 bloku ...... • konfúzia – nelineárna funkcia F 퐿푛−1 푅푛−1 ovplyvnená rôznymi kľúčmi 퐾 ⊕ F 푛

퐿푛 푅푛

Zimný semester 2020 Kryptografické primitíva 41 Feistelova sieť - dešifrovanie

퐿0 푅0 푅푛 퐿푛 퐾1 퐾푛 퐿 = 푅 ⊕ F 푖 푖−1 푅푖 = 퐿푖−1 ⊕ 퐹(푅푖−1, 퐾푖) 퐿1 푅1 푅푛−1 퐿푛−1 začiatok 푅푛퐿푛 퐾2 퐾푛−1 ⊕ F po prvej runde bude 퐿 푅 ⊕ 퐹 퐿 , 퐾 퐿2 푅2 푅푛−2 퐿푛−2 푛 푛 푛 푛 퐿푛 = 푅푛−1 퐾3 퐾푛−2 ⊕ F 푅푛 ⊕ 퐹 퐿푛, 퐾푛 = 퐿3 푅3 = 퐿푛−1 ⊕ 퐹(푅푛−1, 퐾푛) ⊕

퐹 푅푛−1, 퐾푛 = 퐿푛−1

...

...

...... teda 푅푛−1 퐿푛−1 a ďalej až po 퐿푛−1 푅푛−1 푅1 퐿1 푅0퐿0 - dešifrujem 퐿0푅0 퐾 퐾 ⊕ F 푛 1 nie je potrebné poznať inverzné funkcie k F pri dešifrovaní len zmeniť poradie kľúčov 퐿푛 푅푛 푅0 퐿0

Zimný semester 2020 Kryptografické primitíva 42 DES – Digital Encryption Standard

IP • FIPS (1977-2005) podľa IBM Lucifer 퐾1 F • blok 64 bitov, 16 rúnd • kľúč 56 bitov –> 16 rundových 퐾2 48 bitových kľúčov F • inicializačná permutácia 58 50 42 34 26 18 10 2 (zapojenie vstupov) 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 퐾16 64 56 48 40 32 24 16 8 F 57 49 41 33 25 17 9 1 -1 IP 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

Zimný semester 2020 Kryptografické primitíva 43 DES – funkcia F

IP nelineárna funkcia F 퐾1 32 F • Expanzia expanzná permutácia E E • výstupná permutácia P 퐾 48 2 퐾 • 8 substitučných S-boxov F ⊕ 푖 48 zobrazenia {0,1}6 → {0,1}4 6 s s s s s s s s 1 2 3 4 5 6 7 8 14 4 13 1 2 15 11 8 4 32 3 10 6 12 5 9 0 7 퐾16 0 15 7 4 14 2 13 1 F P 10 6 12 11 9 5 3 8 -1 32 IP 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 S-box 푆1 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Zimný semester 2020 Kryptografické primitíva 44 DES – generovanie kľúčov

56 odstránenie paritných bitov

PC1 začiatočná kľúčová permutácia PC1

28 28 kľúč sa rozdelí na 28 bitové polovice 퐶0 a 퐷0 for r := 1 to 16 do <<<1 <<<1 if r ∈ {1,2,9,16} then j := 1 else j := 2 endif; PC2 48 Cr ← 퐶푟−1 <<< j 퐾1 D푟 ← D푟−1 <<< j <<<1 <<<1 퐾푟 ← PC2(Cr, Dr) PC2 48 endfor; 퐾2 <<<2 <<<2 PC2 - výstupná výberová permutácia PC2 po 28 rotáciách bude 퐶 = 퐶 , 퐷 = 퐷 <<<2 <<<2 16 0 16 0 PC2 pre dešifrovanie sa použije ten istý postup s opačným smerom posunutia ...

Zimný semester 2020 Kryptografické primitíva 45 3DES a DESx

−1 3DES C = DES푘3(DES푘2 (DES푘1 M )) • −1 −1 dešifrovanie M = DES푘1 DES푘2(DES푘3 (퐶)) 168 bitový kľúč, ale bezpečnosť len na úrovni 2112 (MITM) • −1 stačí 푘1a 푘2 a C = DES푘1(DES푘2 (DES푘1 M )) 112 bitový kľúč

• pre 푘3 = 푘2 = 푘1, 3DES푘1푘2푘3 = DES푘1 (3DES funguje aj ako DES)

DES-X (Rivest, Killian) C = 푘3⊕DES푘1(M⊕푘2) • −1 M = 푘2 ⊕ DES푘1 (C⊕푘3)

• 푘1 56 bitový a 푘2, 푘3 64 bitové – spolu 184 bitový kľúč rýchlejší výpočet, bezpečnosť na úrovni 2119 • key whitening

Zimný semester 2020 Kryptografické primitíva 46 IDEA

• International Data Encryption Algorithm (1991) • náhrada za DES počas licenčných obmedzení • pre otvorené riešenia (PGP, ...) • 64 bitový blok, 128 bitový kľúč • 8 rúnd jednoduchých operácií (celočíselných 16-bitových) • Lai-Massey schéma – podobne ako Feistel – dešifruje sa šifrovacou funkciou s opačným poradím kľúčov

Zimný semester 2020 Kryptografické primitíva 47 AES (Advanced Encryption Standard) konkurz

• NIST – 1997-2000 – konkurz na novú blokovú šifru • 128 bitové bloky • 128, 192, 256 bitové kľúče • pre rôzne typy procesorov • „lepší“ ako 3DES • 1999 finalisti Mars, RC6, Rijndael, Serpent, Twofish • 2001 za AES bol vybratý Rijndael (Rijmen, Daemen)

Zimný semester 2020 Kryptografické primitíva 48 AES proces

• 128 bitové bloky • 128, 192, 256 bitové kľúče • SPN s 10, 12, 14 rundami (nie Feistelovho typu) pracuje s 4x4 8-bitovými blokmi (8b, 32b, 128b μP) 8-bitové substitúcie s jediným S-boxom len XOR a prehľadávanie tabuliek whitening

Zimný semester 2020 Kryptografické primitíva 49 AES štruktúra

• striedanie štyroch štádií AddRoundKey – jediná používa kľúč – XOR spôsobom SubBytes – S-box substitúcia po bajtoch (tabuľkou) ShiftRows -transpozícia MixColumns – kombinácia stĺpcov • pri dešifrovaní - inverzné funkcie a opačné poradie kľúčov • štádiá SR,SB a MC,ARK sú navzájom komutatívne

Zimný semester 2020 Kryptografické primitíva 50 AES SubBytes

• jednoduchá substitúcia po bajtoch • tabuľka 16x16 s permutáciou 256 rôznych bajtov (dá sa aj vypočítať) • 4 b riadok, 4 b stĺpec • inverzná tabuľka pre inverznú substitúciu jediná (dokázateľne) nelineárna operácia SB(x) + SB(y) ≠ SB(x+y)

Zimný semester 2020 Kryptografické primitíva 51 AES SubBytes

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf 0x 63 7c 77 7b f2 6b 6f c5 30 1 67 2b fe d7 ab 76 1x ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 6e = 6e 2x b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 3x 4 c7 23 c3 18 96 5 9a 7 12 80 e2 eb 27 b2 75 S(6e) = 9f 4x 9 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 5x 53 d1 0 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6x d0 ef aa fb 43 4d 33 85 45 f9 2 7f 50 3c 9f a8 7x 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 8x cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 9x 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db ax e0 32 3a 0a 49 6 24 5c c2 d3 ac 62 91 95 e4 79 bx e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 8 cx ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a dx 70 3e b5 66 48 3 f6 0e 61 35 57 b9 86 c1 1d 9e ex e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df fx 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

Zimný semester 2020 Kryptografické primitíva 52 AES SubBytes

S-box

inverse S-box

Zimný semester 2020 Kryptografické primitíva 53 AES ShiftRows

• rotácia (cyklický posun) vľavo 2. riadok o 1 bajt, 3. riadok o 2 bajty, 4. riadok o 3 bajty • inverzná funkcia – rotácia vpravo • permutácia bajtov v riadkoch • proti „Square attack“ a iným diferenciálnym útokom

Zimný semester 2020 Kryptografické primitíva 54 AES MixColumns

• permutácia a lineárna kombinácia v stĺpcoch • násobenie polynómov v GF(28) modulo 푥8 + 푥4 + 푥3 + 푥 + 1 (100011011) 01 ∘ 푎 = 푎 푠′ 02 ∘ 푎 = 푙푠ℎ 푎 ⊕ 02 03 01 01 푠0,푖 0,푖 ⨁(푚푠푏 푎 ∗ 100011011) 01 02 03 01 푠1,푖 푠′1,푖 푠 = 03 ∘ 푎 = (02 ∘ 푎) ⊕ 푎 01 01 02 03 2,푖 푠′2,푖 03 01 01 02 푠3,푖 푠′3,푖 푠′0,푖 = (02 ∘ 푠0,푖) ⊕ 03 ∘ 푠1,푖 ⊕ 01 ∘ 푠2,푖 ⊕ 01 ∘ 푠3,푖 =

= 푙푠ℎ 푠0,푖 ⨁ 푚푠푏 푠0,푖 ∗ 100011011 ⨁푙푠ℎ 푠1,푖 ⨁ 푚푠푏 푠1,푖 ∗ 100011011 ⊕ ⊕ 푠1,푖 ⊕ 푠2,푖 ⊕ 푠3,푖

Zimný semester 2020 Kryptografické primitíva 55 AES MixColumns

• lineárny kód s maximálnou vzdialenosťou medzi kódovými slovami • inverzná matica je zložitejšia – výpočet je dlhší

0퐸 0퐵 0퐷 09 09 0퐸 0퐵 0퐷 0퐷 09 0퐸 0퐵 0퐵 0퐷 09 0퐸

0퐸 0퐵 0퐷 09 02 03 01 01 01 00 00 00 09 0퐸 0퐵 0퐷 01 02 03 01 = 00 01 00 00 0퐷 09 0퐸 0퐵 01 01 02 03 00 00 01 00 0퐵 0퐷 09 0퐸 03 01 01 02 00 00 00 01

Zimný semester 2020 Kryptografické primitíva 56 AES AddRoundKey

• XOR po stĺpcoch (Vernam) • inverzná operácia je identická

Zimný semester 2020 Kryptografické primitíva 57 AES runda pre 128 bitové spracovanie

Zimný semester 2020 Kryptografické primitíva 58 AES generovanie kľúčov

• generovanie po 32-bitových slovách • 44, 52, resp. 60 slov • prvé 4 sú 32-bitové slová podľa kľúča

• wi = wi-4 ⊕ wi-1 pre i mod 4 ≠ 0

• inak wi = wi-4 ⊕ SubWord(RotWord(wi-1)) ⊕ Rcon(i/4) Rcon = [1,2,4,8,10,20,40,80,1B,36]

Zimný semester 2020 Kryptografické primitíva 59 AES

• “related-key” útoky na 8-round AES-128 (248 pokusov, 232 bitov pamäte), 9-round AES-256 (239), 10-round AES-256 (245), 11- round AES-256 (270) • (2011-2015) AES-128 na 2126.1 pokusov a 256 b dát, AES-196 na 2189.7 pokusov a 248 b dát, AES-256 na 2254.3 pokusov a 240 b dát • side channels – timing attack, power consumption (smart cards), magnetic fields, RF emissions • implementácia AES-128-CBC sw 1 Gb/s AES-NI 6 Gb/s AES-128-CTR AES-NI 24 Gb/s ASIC, FPGA 40 Gb/s

Zimný semester 2020 Kryptografické primitíva 60 Režimy využívania blokových šifier

• pre vstupy dlhšie ako jeden blok • spôsob použitia blokového šifrovania môže viesť k zníženiu bezpečnosti • podľa požiadaviek na rýchlosť resp. bezpečnosť resp. paralelizáciu resp. použitie PRNG • neuchránia pred modifikáciou šifrovaného textu

Zimný semester 2020 Kryptografické primitíva 61 ECB Electronic Book

Cn = EK(Pn) Pn = DK(Cn) • každý blok sa šifruje samostatne, nie je potrebná synchronizácia • prenosová chyba sa prejaví len v jednom bloku • možno dobre paralelizovať • rovnaké bloky otvoreného textu sa šifrujú rovnako - štatistika • je možné zistiť opakované vyslanie správy, preusporiadať, vymeniť bloky

Zimný semester 2020 Kryptografické primitíva 62 CBC Cipher Block Chaining

C0 = IV Cn = EK(Cn-1 ⊕ Pn) Pn = Cn-1 ⊕ DK(Cn) • šifrovanie bloku závisí aj od šifrovania predchádzajúceho bloku • IV – inicializačný vektor – randomizuje šifrovanie – nie je možné použiť šifrované bloky opakujúceho sa otvoreného textu • IV nie je potrebné utajovať, má byť nepredikovateľné • zmena v otvorenom texte resp. IV sa prenáša do celého výstupu

• kľúč je potrebné po čase zmeniť (útok na rovnaké bloky Ci = Cj )

Zimný semester 2020 Kryptografické primitíva 63 CBC ciphertext stealing (CTS)

Zimný semester 2020 Kryptografické primitíva 64 porovnanie šifrovania v režime ECB a CBC

Plain ECB CBC

Zdroj: wikipedia.org

Zimný semester 2020 Kryptografické primitíva 65 CFB Cipher Feedback mode

C0 = IV Cn = Pn ⊕ EK(Cn-1) Pn = Cn ⊕ EK(Cn-1) • používa (posunutý) šifrovaný text ako stream v prúdovej šifre • IV spôsobuje nedeterministickosť (randomizuje výsledok) • nie je potrebná dešifrovacia funkcia !!!

Zimný semester 2020 Kryptografické primitíva 66 OFB Output Feedback mode

X0 = IV Xn = EK(Xn-1) Cn = Pn ⊕ Xn Pn = Cn ⊕ Xn • pomocou blokového šifrovania sa vytvorí prúd pre prúdovú šifru • prúd je možné generovať nezávisle • IV – randomizácia – nie je možné použiť viackrát! (riziká ako pri prúdovej šifre)

Zimný semester 2020 Kryptografické primitíva 67 CTR Counter mode

Cn = Pn ⊕ EK(IV | n) Pn = Cn ⊕ EK(IV | n) • prúd pre prúdovú šifru sa vytvorí po blokoch • je možné paralelizovať, priamy prístup (seek) • IV – nie je možné použiť viackrát • obmedzená dĺžka (ctr sa nesmú opakovať)

Zimný semester 2020 Kryptografické primitíva 68 XEX režim

n Xn = EK(I) ⊗ α Cn = EK(Pn ⊕ Xn) ⊕ Xn α = x {10} ⊗ násobenie v GF(2128) modulo x128 + x7 + x2 + x +1 {10...010000111} • XEX (xor-encrypt-xor) šifrovanie súborov na disku • tweak αj - ťahák pre prístup k j-temu bloku

Zimný semester 2020 Kryptografické primitíva 69 Celistvosť (neporušenosť) dát odtlačky správ (MDC - kryptografické hašovacie funkcie)

Zimný semester 2020 Kryptografické primitíva 70 MDC

MDC – modification detection code h: {0,1}* → {0,1}n • jednocestná (one-way) hašovacia funkcia x ↦ h(x) • odolná voči nájdeniu druhého vzoru (second preimage resistance) - pre dané x je ťažké nájsť iné x‘, aby h(x) = h(x‘) • odolná voči kolíziám (CRF - collision resistance - strong) je ťažké nájsť rôzne x, x‘, aby h(x) = h(x‘)

útok na nájdenie vzoru – 2n možností (šanca na ̴ 2n-1 pokus) útok na nájdenie druhého vzoru – testovanie 2n hodnôt pre x‘ útok na nájdenie kolízie – „narodeninový paradox“ CRF ⇒ second preimage

Zimný semester 2020 Kryptografické primitíva 71 Narodeninový útok

• aká je pravdepodobnosť, že v miestnosti majú dvaja narodeniny v ten istý deň v roku ? • pravdepodobnosť, že majú všetci v rôznych dňoch : pre dvoch 365 ∙ 364 / 3652 = 0,997 pre troch 365 ∙ 364 ∙ 363 / 3653 = 0,997 * 0,995 = 0,992 365! pre k 365 ∙ 364 ∙ ... ∙ (365-k+1) / 365k = 365푘∙ 365−푘 ! • rastie pravdepodobnosť, že aspoň dvaja majú tieto narodeniny rovnako (pre k = 366 - istota ) 365! • kedy bude (1 − ) > 0,5 ? 365푘∙ 365−푘 ! • pre k = 23 dostaneme 50,73 % pravdep. (pre k = 50 už 97 %)

Zimný semester 2020 Kryptografické primitíva 72 Útoky, využívajúce kolízie

• aby P(ꓱ x, x‘ ∈ {x1, x2, ..., xk}; h(x) = h(x‘)) > p 1 potrebujeme 푘 ≥ |ℎ 푋 | ∙ 2 푙푛1−푝 pre |h(X)| = 2n na útok s pravdep. 50 % k ≈ 1,177 ∙ 2n/2 90 % k ≈ 2,146 ∙ 2n/2 99 % k ≈ 3,035 ∙ 2n/2 • pripraviť dve správy, ktoré bude možné navzájom zameniť (budú mať rovnaký odtlačok) : v každej správe nájsť n/2 miest, ktoré je možné upraviť bez zmeny významu textu (medzery, synonymá, nezobrazované znaky ...) – z nich vyrobiť 2n/2 správ (a odtlačkov) každého druhu. S veľkou pravdepodobnosťou sa medzi nimi nájde dvojica rôzneho druhu s rovnakým odtlačkom

Zimný semester 2020 Kryptografické primitíva 73 Spôsob použitia blokové schémy • rozdelenie správy na bloky • štart s IV a sekvenčné spracovanie blokov • výplň posledného Merkle-Damgårdova konštrukcia (zachová odolnosť voči kolíziám) n+r n f : {0,1} → {0,1} x = x1x2 ... xk bloky veľkosti r bitov, posledný s výplňou 100... (resp. dĺžka) h0 = IV hi = f(hi-1|xi) pre i = 1,2,...,k H(x) = g(hk) = f(hk | |x|)

Zimný semester 2020 Kryptografické primitíva 74 MD5

(Rivest 1991) • 128 bitová MDC funkcia • 512 bitové bloky

• výplň 100..0(|m|)64 • 4 rundy po 16 operáciách • F(B,C,D)=(BꓥC)ꓦ(ꓶBꓥC) ... (4 rôzne pre každú rundu)

• Mi časť správy (32 bit) Ki konštanty (pre rundu) • ⊞ sčítanie mod 32 2008 - známe CRF kolízie

Zimný semester 2020 Kryptografické primitíva 75 SHA-1

• Secure Hash Algorithm 1 (NSA 1995 pre DSS) • 160 bitov 512 bitové bloky • padding ako MD5 (max 264 b) • 4 rundy po 20 operáciách • 32 bitové súčty • 2.2017 - známe kolízne útoky (263 výpočtov ̴ 110 rokov GPU)

Zimný semester 2020 Kryptografické primitíva 76 SHA-2

• (NSA 2001) SHA-224, SHA-256, SHA-384, SHA-512 • bloky 512 resp. 1024 bitov, výpočty 8x 32 B resp. 8x 64 B • Maj(a,b,c)=(aꓥb)⊕(aꓥc)⊕(bꓥc) Ch(e,f,g)=(eꓥf)⊕(ꓶeꓥg) • 64 (80) rúnd

• bitcoin (SHA-256) ≈ 80 núl v prefixe

Zimný semester 2020 Kryptografické primitíva 77 SHA-3 Secure Hash Algorithm

• 2006 NIST – súťaž o nový štandard (224,256,384,512,var) • 2012-2015 Keccak (Bertoni, Daemen, Peeters, van Assche) • SHA3-224, SHA3-256, SHA3-384, SHA3-512, stream, AE, AEAD • SHAKE128, SHAKE256 (XOF – extendable output function) • 1600 vnútorných stavových bitov – 5x5 64 b registrov (môže byť aj menší) • 24 rúnd – v každej 5 operácií – θ parita, ρ rotácia, π permutácia, χ kombinácia riadkov (nelineárna), ι xor s LFSR (láme symetriu) • špongiovitá (sponge) konštrukcia – nepoužíva MD schému

Zimný semester 2020 Kryptografické primitíva 78 SHA-3 špongiovitá konštrukcia

• c – kapacita (2x počet bitov hašu – stupeň bepečnosti)

• P – vstup, rozdelený na bloky P0, P1, ..., Pn-1 veľkosti r (rate) = 1600 – c, padding (x|p10*1) v poslednom bloku

• absorbcia – xor Pi blok k registru a výpočet f (24 rúnd Keccaku) • vyžmýkane (squeeze) výsledku po r bitoch – hlavne pre SHAKE režimy • proti útokom na zväčšovanie počtu blokov správy

Zimný semester 2020 Kryptografické primitíva 79 SHA 3

• 푏 = 1600 bitový stav môže byť vnímaný ako 3 dimenzionálne pole • kocka 5 x 5 x 64, v každej jednotkovej kocke je 1 bit

Zimný semester 2020 Kryptografické primitíva 80 SHA 3 – funkcia Θ

• každý bit (z 1600) je nahradený podľa susedných 10 bitov: (pôvodný bit) ⨁ (parita 5 bitového stĺpca „vľavo“ (v osi x)) ⨁ (parita 5 bitového stĺpca „vpravo“ (v osi x) a „dopredu“ (v osi z) • na okrajoch - rotácia modulo 5

Zdroj: http://www.crypto-textbook.com/

Zimný semester 2020 Kryptografické primitíva 81 SHA 3 – funkcia Θ iný pohľad: • operácie na 25 slovách dĺžky 64 bitov (súradnica z) • 퐴 푥, 푦 ; 푥, 푦 = 0, 1, 2, 3, 4 퐶 푥 = 퐴[푥, 0] ⨁ 퐴 푥, 1 ⨁ ⨁ 퐴[푥, 2] ⨁ 퐴[푥, 3] ⨁ 퐴[푥, 4]

퐷 푥 = 퐶[푥 − 1] ⨁ 푟표푡푧(퐶 푥 + 1 , 1) 퐴 푥, 푦 = 퐴[푥, 푦] ⨁ 퐷[푥]

Zdroj: http://www.crypto-textbook.com/

Zimný semester 2020 Kryptografické primitíva 82 SHA 3 – funkcia ρ

• 푇퐸푀푃 푥, 푦 = 푟표푡푧 퐴 푥, 푦 , 푟 푥, 푦 rotácia v smere z podľa tabuľky • 푟 푥, 푦 =

x=3 x=4 x=0 x=1 x=2 y=2 25 39 3 10 43 y=1 55 20 36 44 6 y=0 28 27 0 1 62 y=4 56 14 18 2 61 y=3 21 8 41 45 15

Zimný semester 2020 Kryptografické primitíva 83 SHA 3 – funkcia π

• permutácia zarotovaných slov

• B 푦, 2푥 + 3푦 = 푟표푡푧 퐴 푥, 푦 , 푟 푥, 푦 푥, 푦 = 0, 1, 2, 3, 4

Zimný semester 2020 Kryptografické primitíva 84 SHA 3 – funkcia χ

• 퐴 푥, 푦 = 퐵 푥, 푦 ⨁ (퐵ത 푥 + 1, 푦 ∧ 퐵 푥 + 2, 푦 ) (퐵ത 푥 + 1, 푦 je vektor negovaných bitov vektora 퐵 푥 + 1, 푦 ) • nelineárna operácia • negácia • and

Zdroj: http://www.crypto-textbook.com/

Zimný semester 2020 Kryptografické primitíva 85 SHA 3 – funkcia ι

• pripočítanie konštanty z tabuľky (dá sa použiť LFSR) k slovu 퐴[0,0] • 퐴 0,0 = 퐴 0,0 ⨁ RC[i] kde i je číslo rundy

Zdroj: http://www.crypto-textbook.com/

Zimný semester 2020 Kryptografické primitíva 86 SHA 3 – runda (Θ ρ π χ ι)

• 퐶 푥 = 퐴[푥, 0] ⨁ 퐴 푥, 1 ⨁ ⨁ 퐴[푥, 2] ⨁ 퐴[푥, 3] ⨁ 퐴[푥, 4] 푥 = 0, 1, 2, 3, 4

• B 푦, 2푥 + 3푦 = 푟표푡푧(퐴 푥, 푦 ⨁ 퐶 푥 − 1 ⨁ ⊕ 푟표푡푧 퐶 푥 + 1 , 1 , 푟 푥, 푦 ) 푥, 푦 = 0, 1, 2, 3, 4 • 퐴 푥, 푦 = 퐵 푥, 푦 ⨁ (퐵ത 푥 + 1, 푦 ∧ 퐵 푥 + 2, 푦 ) • 퐴 0,0 = 퐴 0,0 ⨁ RC[i]

Zimný semester 2020 Kryptografické primitíva 87 SHA-3 špongiovitá konštrukcia

• c – kapacita (2x počet bitov hašu – stupeň bepečnosti)

• P – vstup, rozdelený na bloky P0, P1, ..., Pn-1 veľkosti r (rate) = 1600 – c, padding (x|p10*1) v poslednom bloku

• absorbcia – xor Pi blok k registru a výpočet f (24 rúnd Keccaku) • vyžmýkane (squeeze) výsledku po r bitoch – hlavne pre SHAKE režimy • proti útokom na zväčšovanie počtu blokov správy

Zimný semester 2020 Kryptografické primitíva 88 Ekvivalentné dĺžky kľúčov

AES RSA DLP ECC MDC 48 480 480 96 96 56 640 640 112 112 64 816 816 128 128 80 1248 1248 160 160 112 2432 2432 224 224 128 3248 3248 256 256 160 5312 5312 320 320 192 7936 7936 384 384 256 15424 15424 512 512

Zimný semester 2020 Kryptografické primitíva 89 Pôvodnosť dát autentifikačné kódy správ - MAC

Zimný semester 2020 Kryptografické primitíva 90 MAC – message authentication code

• autentifikačné kódy správ • zabepečenie integrity a pôvodnosti (autenticity) správy • vyžaduje kľúč, ktorým je možné kontrolovať pôvodnosť (správu môže zmeniť len ten, kto pozná kľúč) • narodeninový útok sa nedá použiť – MAC môže byť kratšia ako MDC • (kryptografický kontrolný súčet) • neumožňuje jednoznačne určiť pôvodcu (kľúč poznajú viacerí) • kľúč + hašovacia funkcia alebo kľúč + symetrická šifra

Zimný semester 2020 Kryptografické primitíva 91 MAC z hašovacej funkcie

• MACk(m) = h(k|m) ak sa použije MD schéma – možno rozšíriť správu

• MACk(m) = h(m|k) ak sa nájdu kolízie v h je ohrozená bezpečnosť kľúča • ďalšie možnosti ?

• kombinácia MACk(m) = Ek(h(m)) kvôli veľkosti blokovej šifry môže byť ohrozená bezpečnosť h • KMAC – Keccak MAC vyrobený špongiovou technológiou

Zimný semester 2020 Kryptografické primitíva 92 HMAC

• HMACk(m) = h(k ⊕ opad | h(k ⊕ ipad | m)) • ipad = 0x363636… • opad = 0x5c5c5c…

• TLS, SSH, IPSec …

Zimný semester 2020 Kryptografické primitíva 93 MAC z blokovej šifry CBC-MAC

• konštrukcia MAC funkcie pomocou blokovej šifry • ako v CBC režime – výsledkom je len posledný blok (meniť IV ?) • výsledok je vhodné upraviť ďalším kľúčom CBC-MAC-ELB(m,(k1,k2)) = Ek2(CBC-MACk1(m))

Zimný semester 2020 Kryptografické primitíva 94 OMAC – one-key MAC

• podľa CMAC, XCBC

• z kľúča k sa vyrobia dva kľúče k1 a k2

• ak mn je úplný, mn‘ = k1 ⊕ mn inak mn‘ = k2 ⊕ (mn | 10…0)

Zimný semester 2020 Kryptografické primitíva 95 AE – authenticated encryption

• výhody spojenia dôvernosti, integrity a pôvodnosti • prístupy EtM (IPSec), MtE (TLS) a E&M (SSH)

• CAESAR – competition for authenticated encryption NIST 2007 - finále 15.12.2017

Zimný semester 2020 Kryptografické primitíva 96 GCM Galois Counter Mode

• CTR0 = IV , CTRn = CTRn-1 + 1

• Ci = EK (CTRi) ⊕ Pi autentifikácia správy

• H = Ek (0) g0 = AD ⊗ H ⊗ Galois field multiplication GF(2128) ako v XEX

• gi = (gi-1 ⊕ Ci) ⊗ H

• gn+1 = gn ⊕ (len(A) | len(C))

• T = (gn+1 ⊗ H) ⊕ Ek(CTR0)

Zimný semester 2020 Kryptografické primitíva 97 Ďakujem za pozornosť. [email protected]