Hillova šifra Lester S. Hill (1929) Polygrafická šifra Φ: Amx K Bm Lineární polygrafická šifra y = Φ(x) = x.A, kde A je matice m x m v ZN Dešifrování x = y. A -1 Hillova šifra Matice A je involutorní, tedy A = A -1
Počet klíčů Počet matic m x m nad tělesem ZN Nm.m Involutorních matic je mnohem méně Involutorní matice 2x2 nad Z27 jsou dvě nad Z26 Je jich 7.
Kryptoanalýza Hillovy šifry Index koincidence Kasiského metoda určení délky klíče Rozdělení textu na skupiny nefunguje
Mechanický stroj realizující Hillovu šifru
Šifrování pomocí počítačů
Šifrování pomocí počítačů 1942-45 Colossus 1948 ENIAC
Šifrování pomocí počítačů Není třeba myslet na mechanickou realizaci stroje Rychlost Nešifruje se abeceda o 26 znacích, ale abeceda o 2 znacích.
Feistlovy kryptosystémy Horst Feistel 1915-1990 Německo, USA IBM Posuvné registry Lucifer DES, AES
Posuvné registry Blok bitů – délka 2n Klíč – posloupnost k funkcí f1, f2,…, fk {0,1}n → {0,1}n , k – hloubka klíče
Posuvné registry, šifrování (m0, m1) = X mi+1 = mi-1+fi(mi) Y = (mk,mk+1)
Posuvné registry, dešifrování (mk,mk+1) = Y mi-1 = mi+1+fi(mi) X = (m0, m1)
Příklad šifrování Délka bloku 2n=8, hloubka klíče k=2 f1: permutace (1234) → (2143) f2: funkce (1234) → (1124)
Příklad šifrování X = (01000001) m0 = (0100), m1 = (0001) m2= m0+ f1(m1)=(0100)+ f1(0001)=(0100)+(0010)=(0110) m3= m1+ f2(m2)=(0001)+ f2(0110)=(0001)+(0010)=(0011) Y = (01100011)
Dešifrování Y = (01100011) m2 = (0110), m3 = (0011) m1= m3+ f2(m2)=(0011)+ f2(0110)=(0011)+(0010)=(0001) m0= m2+ f1(m1)=(0110)+ f1(0001)=(0110)+(0010)=(0100) X = (01000001)
Počet klíčů Počet funkcí {0,1}n → {0,1}n je F = (2n) 2n Počet klíčů je Fk V našem případě n=4 , k=2, 2n=16, F=1616=18446744073709600000 Počet klíčů 184467440737096000002 = 340282366920938000000000000000000000000
Lucifer (1970) Délka bloku 2n=128, n=64 Hloubka klíče k=2 až 16 Funkce f1,…,f16 jsou odvozené z přičtení klíče K.
DES funkce f1,…, f16
Data Encryption Standard (1975) generování klíče
DES, šifrování a dešifrování Délka bloku 2n = 64, Hloubka klíče K = 16 Počet klíčů 256 = 72057594037927900 ~ 7*1016 Při 100 000 000 klíčích/sec: 7*108 sekund ~ 22 let Prolomeno v roce 1999
AES Počet klíčů 264 ~ 1.8*1019 Za stejných podmínek je pro vyluštění třeba 1,8*1011s ~ 5707 let
FEAL Fast Encipherment Algorithm Akihiro Shimizu Shoji Miyaguchi, 1987
FEAL Bloková šifra založená na Feistlově principu FEAL 4, délka bloku 64 bitů Hlouka klíče 4 funkce
Feistlovy funkce S0 (X,Y)= LR2 (X+Y) S1 (X,Y)= LR2 (X+Y+1)
Diferenciální kryptoanalýza Adi Shamir, 1987 T1, …, Tn vybrané texty S1,…, Sn zašifrovaná verze Si Sj diferenciál textů
Diferenciální kryptoanalýza, příklad Feistlův systém, délka bloku 4, 2 funkce 1234 → 1114 1234 → 2223 Text 0001 1110 m0 = 0001, m1 = 1110 m2 = m0 + f1(m1) = 0001 + 1110 = 1111 m3 = m1 + f2(m2) = 1110 + 1111 = 0001 Šifrovaný text 11110001 Diferenciál 1110 1111
Šifra DES Odolná vůči diferenciální kryptoanalýze (S-boxy)
FEAL FEAL 4 prolomen pomocí D.K. 1988 (100.000 dvojic textů) 1990: FEAL 4 prolomen pomocí 20ti párů textů 1988: FEAL 8. hloubka klíče 8 1990: Adi Shamir, útok na FEAL 8 pomocí cca 10.000 párů textů
FEAL 1990: 1992: Adi Shamir, popis útoku na FEAL N pro N<31, FEAL- N volitelná hloubka klíče FEAL – NX, volitelná hloubka klíče, délka bloku 128 bitů 1992: Adi Shamir, popis útoku na FEAL N pro N<31,