Tudd Intuíció, egy előadás, egy hash függvény
Message Authentication Code
Vegye fontolóra üzenet sértetlenségét a használata megosztott titkot. Emlékezzünk, hogy az üzenet sértetlenségét biztonság - a képtelen változtatni az üzenetet, hogy a címzett nem található. A Hitelesítés utal, hogy a megerősítése, hogy az in-ződést úgy kaptuk, egy megbízható forrásból, és a vevő az, aki szüksége van rá. Az egyik módja annak, hogy a integritás - A számítás a MAC (Message Authentication Code). Ebben az esetben, bizonyos fiókhitelesítő MAC értetődő, milyen módon bizonyos számítások-lennym adatblokk, amellyel integritásának igazolására üzenetek. Bizonyos mértékig szimmetrikus titkosítási a teljes üzenet működhet a hitelesítést az üzenetet. De ebben az esetben tartalmaznia kell elegendő redundanciát, ami lehetővé tenné, hogy ellenőrizze, hogy az üzenet nem lett megváltoztatva. A redundancia lehet egy bizonyos módon a formázott szöveges üzenet egy adott nyelven, stb Ha az üzenet elismeri bánja bitszekvenciát (például a titkosított session key), a szimmetrikus titkosítás a teljes üzenet nem biztosítják annak sértetlenségét, mert a dekódoló minden esetben kapunk egy bitsorozatot, ami nem lehet ellenőrizni rendesen. Ezért gyakrabban használják kritograficheski létrehozott egy kis blokk rögzített méretű adatok, az úgynevezett hitelesítő vagy hitelesítési kódot, amellyel ellenőrizni integritását-ség üzeneteket. Ez az adat blokk alkalmazásával lehet a titkos kulcs megosztott a feladó és a címzett. MAC kiszámolása etsya amikor köztudott, hogy az üzenet helyes. Ezt követően, a MAC az üzenethez csatolt és továbbítani a címzettnek. A vevő kiszámítja a MAC, ugyanazt a titkos kulcsot, és összehasonlítja a kiszámított érték kapunk. Ha ezek az értékek egybeesnek, hiszen, akkor feltételezhető, nagy a valószínűsége, hogy egy e-mail üzenetet változások történtek.
Tekintsük a tulajdonságok kell egy MAC funkció. Ha a kulcs hosszát kiszámítására használt MAC. egyenlő k. azt, amennyiben erős funkciója a MAC ellenfél kell töltenie 2 k kísérletek végighaladni az összes kulcsot. Ha a hossz érték generált MAC. egyenlő n-nel. 2 csak a különböző értékeket n MAC.
Tegyük fel, hogy a közlések titkossága nem, azaz, ellenfél hozzáfér a nyílt üzenetet, és a megfelelő érték a MAC. Mi határozza meg a szükséges erőfeszítéseket talál ellenfelet MAC gombot.
Tegyük fel, hogy k> n. azaz kulcs hossza nagyobb, mint a hossza a MAC. Ezután tudván az M1 és MAC1 = CK (M1). ellenfél lehet számítani MAC1 = SKi (M1) az összes lehetséges kulcsot Ki. Ebben az esetben legalább az egyik kulcs kerül elő egybeesés MACI = MAC1. Az ellenfél kiszámítja a k értékeket 2 MAC. míg ha a hossza a MAC n bit, már csak 2 n érték MSS. Azt feltételeztük, hogy a K> n. azaz 2 k> 2, n. Így a helyes értékének MSS szerezhető több érték a kulcsokat. Az átlagos Match fog történni 2 K / 2 n = 2 (k-n) gombokat. Ebben, és a számításhoz egyetlen kulcs ellenfél kell ismernie néhány pár üzenetet és a megfelelő MAC.
Így egy egyszerű keresés az összes kulcsot igényel nem kevesebb, hanem több erőfeszítést, mint keresni szimmetrikus titkosítási kulcsot az azonos hosszúságú.
MAC számítási funkció kell a következő tulajdonságokkal rendelkezik:
- Meg kell számítási nehéz tudva CK M és (M). Ha egy olyan üzenetet M”. oly módon, hogy CK (M) = CK (M „).
- Az értékek CK (M) egyenletesen kell elosztani, abban az értelemben, hogy minden üzenet M és M „a valószínűségét, hogy CK (M) = CK (M”). Meg kell egyenlő 2 -n. ahol n - hossza MAC értékek.
HMAC szabvány
Egy hash függvény szerezni MAC, hogy adjunk egy bizonyos módon titkos értéket az üzenet, amely bemenetet egy hash függvény. Egy ilyen algoritmust nevezzük HMAC. és az RFC 2104.
A fejlődő HMAC algoritmus a következő célkitűzéseket:
1. Az a képesség, hogy használni módosítatlan meglévő hash függvény;
2. Az a képesség, hogy könnyen helyettesíti a beépített hash gyorsabb és stabilabb.
3. Saving algoritmus sebessége közel a sebesség a megfelelő hash függvény.
4. Lehetőség alkalmazás gombok és könnyű velük dolgozni.
A HMAC algoritmust a hash függvény egy „fekete doboz”. Ez egyrészt lehetővé teszi a meglévő megvalósítások hash függvények, másrészt lehetővé teszi, hogy könnyen cserélhető a meglévő hash függvény az új.
Bemutatjuk a következő jelöléseket:
N - beépített hash függvény.