Kryptograficke hasovaci funkce - MAC, MDC
kody
casto staci pouze autentizace puvodu
ci obsahu zpravy, pripadne
overeni integrity
ne vzdy staci k zajisteni
techto pozadavku vlastni sifrovaci
algoritmus
Pouziti
- symetricke systemy - slouzi k rozpoznani
pravosti desifrovane zpravy
- asymetricke systemy - rychlejsi
autentizace: spocita se hasovaci
funkce nad danou zpravou a elektronicky se podepise
az vysledny hashkod
- ochrana hesel a passphrases
Zavisi-li vypocet hasovaci
funkce na tajnem klici, oznacujeme
tuto funkci jako MAC (message authentization code). Pokud takovy
klic pouzit neni, jde o MDC (manipulation
detection code).
Formalni definice
MAC je funkce h splnujici
- zatimco argument X muze byt
libovolne delky, vysledek h(K,
X) ma pevnou velikost n ( n = 32 .. 64)
- pro dane h a X je tezke
urcit h(K, X) s pravdepodobnosti
uspechu vyrazneji prevysujici
1/2n.
- i se znalosti velkeho mnozstvi zvolenych
paru {Xi, h(K, Xi)} musi byt
tezke urcit K, nebo spocitat
h(K, X) pro X Xi .
MDC casto delime na dve skupiny -
OWHF, CRHF
Funkci h oznacime za OWHF (one-way hash function)
prave kdyz:
- zatimco argument X muze byt
libovolne delky, vysledek h(X)
ma pevnou velikost n ( n > 63)
- pro dane Y a h musi byt
tezke nalezt X aby Y =
h(X)
- pro dane X a h(X) musi
byt tezke najit X' aby
h(X) = h(X')
CRHF (collision resistant hash function) je takova funkce,
ktera splnuje:
- h je OWHF ( n > 127)
- musi byt tezke najit
par X', X'', tak, aby h(X') = h(X'')
Navrhy MDC funkci
prakticky vsechny zname hasovaci
funkce pracuji nad vstupem pevne delky
iterovane hasovaci funkce (iterated
hash f.) - delsi vstup X je zpracovavan
opakovanim vypoctu
H0 = IV
Hi = f(Xi, Hi-1) i = 1, 2, ..., t
h(X) = Ht
IV - inicializacni hodnota
casto delka vstupu neni nasobkem delky
vstupniho bloku -> nutne zarovnani
(padding)
zarovnani by melo byt jednoznacne
(unambiguous) - nesmi dve ruzne zpravy
doplnit na stejnou, je vhodne, aby na konec zpravy
zapisovalo delku
Tvrzeni
Pokud zarovnani obsahuje delku vstupni
zpravy a tato je dlouha alespon 2 bloky,
potom nalezeni kolidujiciho vzoru h
pri pevnem IV vyzaduje 2n operaci
prave kdyz nalezeni kolidujiciho
vzoru f pri libovolnem Hi-1 vyzaduje
2n operaci.
Tvrzeni
Predpokladejme jednoznacne zarovnani
obsahujici delku vstupni zpravy.
Je-li f odolna vuci kolizim (collision
resistant), je h CRHF.
Hasovaci funkce zalozene na blokovych
sifrach
vyhodne z hlediska navrhu a implementace
vetsina schemat ekvivalentni s jednim
z nasledujicich
Matyas, Meyer, Oseas
f = E(s(Hi-1), Xi)
delka hashkodu odpovida delce
vstupu,
E(K, X) = E(K, X) X.
ISO/IEC 10118 p. 2
Preneel, Govaerts, Vandenwalle
f = E(s(Hi-1), Xi) Hi-1
v obou pripadech E je libovolna blokova
sifra, s je funkce mapujici prostor
zasifrovanach bloku do prostoru klicu.
Tyto funkce mohou byt CRHF pokud delka bloku je
alespon 128 bitu. Bezpecnost umerna
hodnote min(k,r).
MDC-2
funkce dava hashkod dvojnasobne
delky vstupu, vhodna pro implementaci CRHF pomoci
DES.
Obcas pod nazvem Meyer-Schilling
T1i = E(H1i-1, Xi) = LT1i || RT1i
T2i = E(H2i-1, Xi) = LT2i || RT2i
H1i = LT1i || RT2i
H2i = LT2i || RT1i
H10 a H20 iniciovany hodnotami IV1
resp. IV2 , vysledek vznikne konkatenaci
H1t a H2t .
MDC-4
jeden krok se sklada ze dvou iteraci MDC-2,
jako vstup druhe iterace se pouzije H2i-1 a
H1i-1.
Dosud neni znama mira bezpecnosti
obou predchozich funkci, ani utok
proti nim. Vydrzi patrne 5 - 10 let.
Hasovaci funkce zalozene na modularni
aritmetice
nejlepsi schemata zalozena na umocnovani
na druhou modulo n
f = (Xi Hi-1)2 mod N Xi
pouzitim vetsiho mnozstvi
operaci lze jeste zvysit bezpecnost
f = (Hi-1 (Xi)2)2 mod N
Hasovaci funkce zalozene na problemu
batohu
zatim neni jasne, zda problem batohu
je tezky pouze v nejhorsim pripade,
nebo zda je tezky v prumernem
pripade
prakticky vsechny systemy zalozene na
problemu batohu byly prolomeny
Specialni MDC funkce
algoritmy navrhovane od pocatku jako vypocet
hasovacich funkci a potazmo MDC
obvykle vykonnejsi
MD4, MD5
MD4 navrzen Rivestem, produkuje 128 bitovy vystup,
iterace ve trech cyklech
publikovan utok proti prvnim dvoum cyklum
algoritmu
autor provedl vylepseni MD5
MD5 pracuje nad vstupnimi bloky delky 512 bitu,
128 bitovy vystup, pracuje ve ctyrech
cyklech
velmi komplikovany vypocet zahrnujici
bitove logicke operace, posuny, scitani
Navrhy MAC funkci
obecna struktura stejna jako MDC, funkce f
a pripadne i IV zavisi
navic na klici K
existuje velmi male mnozstvi algoritmu
nejcasteji pouzivanou metodou je pocitani
DES nebo podobneho algoritmu v modu CBC, resp CFB, konkretni
schemata se lisi volbou pripadne
kombinaci zminenych modu,
pouzitim ruznych zarovnani...;
Jinou moznosti je vypocet
f = E(K, Xi Hi-1) Xi
Stream MAC
potrebujeme kryptograficky bezpecny generator
pseudonahodnych sekvenci
podle vysledku generatoru je vstupni bit
presunut do prvniho nebo druheho posuvneho
registru, vysledek urcen konecnym
obsahem posuvnych registru
Generatory nahodnych sekvenci
Kongruencni generator
Linearni
Xi = (aXi-1+b) mod m
pri vhodne volbe a, b, m (napr.
m prvocislo) generuje neopakujici
se posloupnost delky m - generator s maximalni
delkou
Kvadraticky
Xi = (aX2i-1+bXi-1+c) mod m
Kubicky
Xi = (aX3i-1+bX2i-1+cXi-1+d) mod m
kongruencni generatory jsou velmi rychle,
avsak predikovatelne, byla vypracovana analyza
Posuvne registry s linearni zpetnou
vazbou
(linear feedback shift registers)
sestavaji z posuvneho registru a vypousteci
sekvence (tap sequence), coz je polynom stupne max.
delky posuvneho registru
v kazdem kroku je obsah registru posunut o bit doprava,
vystupem je nejpravejsi bit, registr
se zleva doplni o XOR tech bitu v registru,
ktere odpovidaji koeficientum vypousteciho
polynomu
pro generator s maximalni delkou je
nutno volit primitivni polynom stupne n
- ireducibilni polynom delici
x2n-1 + 1,
ktery nedeli
xd + 1
pro lib d delici 2n - 1
Blum-Micali
Xi = aXi-1
a, p prvocisla, bezpecnost plyne z
obtiznosti vypoctu diskretniho
logaritmu
Stridajici stop-and-go generator
pouziva tri posuvne registry
s linearni zpetnou vazbou
impuls hodin jsou v zavislosti na hodnote LFSR-1
priveden na LFSR-2 nebo LFSR3, vystup techto
registru je XORovan, cimz vznika
vysledna hodnota.
gnerator ma velmi dlouhou periodu
RSA generator
Xi = Xei-1 mod n
vysledkem nejnizsi bit Xi. Bezpecnost
ekvivalentni s bezpecnosti RSA
Blum Blum Shub
Xi = X2i-1 mod n
kde n je Blumovo cislo - soucin dvou
velkych prvocisel kongruentnich s
3 mod 4. Generator se inicializuje hodnotou
X0 = X2 mod n,
kde X je nahodne cislo nesoudelne
s n.
Vysledkem je nejnizsi bit Xi .
Bezpecnost vyplyva z obtiznosti
faktorizace velkych cisel. Generator
je nepredikovatelny vlevo i vpravo, ale je mozne
se znalosti faktoru p, q cisla
n spocitat primo libovolne prvek
generovane posloupnosti!
Xi = X0(2i) mod ((p-1)(q-1)) mod n
Dosud neni znama metoda zlomeni tohoto generatoru.
Nevyhodou je znacna pomalost.
© Tonda Benes, 1995
S prevodem tohoto dokumentu do HTML pomahal ©Dan Lukes, 1995
Toto je revision 1.1, 20.12.95
Tuto stranku shledlo jiz
zvedavcu ...