MMH-Badger MAC - MMH-Badger MAC - Wikipedia
![]() | Tento článek může vyžadovat vyčištění setkat se s Wikipedií standardy kvality. Specifický problém je: příliš mnoho (konkrétního) obsahu, vhodně se rozdělteBřezen 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Jezevec je Ověřovací kód zprávy (MAC) na základě myšlenky univerzální hash a byl vyvinut společnostmi Boesgaard, Scavenius, Pedersen, Christensen a Zenner.[1] Je konstruována posílením ∆-univerzální hash rodiny MMH pomocí ϵ-téměř silně univerzální (ASU) rodiny hash funkcí po aplikaci ENH (viz níže), kde hodnota ϵ je .[2] Vzhledem k tomu, Badger je funkce MAC na základě univerzální hash funkční přístup, podmínky potřebné pro bezpečnost Badgera jsou stejné jako u jiných univerzálních hash funkcí, jako je UMAC.
Úvod
Badger MAC zpracovává zprávu o délce až bity a vrací ověřování štítek délky bity, kde . Podle bezpečnostní potřeby, uživatel si může vybrat hodnotu , to je počet paralelních hash stromy v Badgerovi. Lze zvolit větší hodnoty u, ale tyto hodnoty dále neovlivňují bezpečnost MAC. The algoritmus používá 128bitový klíč a omezená délka zprávy, která má být zpracována pod tímto klíčem, je .[3]
Nastavení klíče musí být spuštěno pouze jednou na klíč, aby bylo možné spustit Badger algoritmus pod daným klíčem, protože výsledný vnitřní stav MAC lze uložit pro použití s jakoukoli další zprávou, která bude zpracována později.
ENH
Hash rodiny lze kombinovat za účelem získání nových hashovacích rodin. Pro rodiny ϵ-AU, ϵ-A∆U a ϵ-ASU jsou tyto rodiny obsaženy v první. Například rodina A∆U je také rodina AU, ASU je také rodina A∆U atd. Na druhou stranu lze silnější rodinu snížit na slabší, pokud lze dosáhnout zvýšení výkonu. Metoda pro snížení ∆-univerzální hashovací funkce na univerzální hash funkce budou popsány dále.
Věta 2[1]
Nechat být hash rodinou ϵ-AΔU ze sady A do sady B. Zvažte zprávu . Pak rodina H skládající se z funkcí je ϵ-AU.
Li , pak pravděpodobnost že je nanejvýš ϵ, protože je rodina ϵ-A∆U. Li ale , pak pravděpodobnost je triviálně 0. Důkaz pro Větu 2 byl popsán v [1]
Rodina ENH je postavena na základě univerzální hash skupina NH (která se také používá v UMAC ):
Kde„Znamená„ přidání modulo ', a . Je to -A∆U hash rodina.
Lemma 1[1]
Následující verze NH je -A∆U:
Volbou w = 32 a použitím věty 1 lze získat -AU funkční rodina ENH, která bude základním stavebním kamenem jezevce MAC:
kde jsou všechny argumenty dlouhé 32 bitů a výstup má 64 bitů.
Konstrukce
Badger je konstruován pomocí silně univerzální hashovací rodiny a lze jej popsat jako
kde -UU univerzální funkční rodina H * se používá k hašování zpráv jakékoli velikosti na pevnou velikost a Rodina funkcí ASU F slouží k zajištění silné univerzálnosti celkové konstrukce. NH a ENH se používají ke konstrukci H *. Maximální velikost vstupu rodiny funkcí H * je a velikost výstupu je 128 bitů, rozdělená na 64 bitů pro zprávu a hash. Pravděpodobnost kolize pro H *-funkce se pohybuje od na . Vybudovat silně univerzální funkční skupinu F, ∆-univerzální hash rodina MMH * se transformuje do silně univerzální hash rodiny přidáním dalšího klíče.
Dva kroky na Badgera
U každé zprávy je třeba provést dva kroky: fázi zpracování a fázi finalizace.
Fáze zpracování[3]V této fázi jsou data hašována na 64bitový řetězec. Základní funkce : se používá v této fázi zpracování, která hashuje 128bitový řetězec na 64bitový řetězec jak následuje:
pro všechny n, znamená přidání modulo . Vzhledem k 2n-bitový řetězec X, L (x) znamená nejméně významný n bity a U (x) znamená nejvýznamnější n bity.
Pomocí této funkce lze zpracovat zprávu. Označte level_key [j] [i] podle .
Pseudokód fáze zpracování je následující.
L = | M | if L = 0M ^ 1 = ⋯ = M ^ u = 0 Přejít na finalizaci r = L mod 64if r ≠ 0: M = 0 ^ (64-r) ∥M for i = 1 to u: M ^ i = Mv ^ '= max {1, ⌈log_2 L⌉-6} pro j = 1 až v ^': rozdělte M ^ i na 64bitové bloky, M ^ i = m_t ^ i∥ ⋯ ∥m_1 ^ i t je sudé : M ^ i = h (k_j ^ i, m_t ^ i, m_ (t-1) ^ i) ∥ ⋯ ∥ h (k_j ^ i, m_2 ^ i, m_1 ^ i) elseM ^ i = m_t ^ i∥h (k_j ^ i, m_ (t-1) ^ i, m_ (t-2) ^ i) ∥ ⋯ ∥ h (k_j ^ i, m_2 ^ i, m_1 ^ i)
Dokončit fáze[3]V této fázi je řetězec 64, který je výsledkem fáze zpracování, transformován na požadovanou značku MAC. Tato fáze finalizace používá Králičí proudová šifra a používá jak nastavení klíče, tak nastavení IV tím, že finalizační klíč final_key [j] [i] vezme jako .
Pseudokód fáze finalizace
RabbitKeySetup (K) RabbitIVSetup (N) pro i = 1 až u: Q ^ i = 0 ^ 7∥L∥M ^ identifikuje Q ^ i do 27bitových bloků, Q ^ i = q_5 ^ i∥ ⋯ ∥q_1 ^ iS ^ i = (∑_ (j = 1) ^ 5 (q_j ^ i K_j ^ i)) + K_6 ^ i mod pS = S ^ u∥ ⋯ ∥S ^ 1S = S ⨁ RabbitNextbit (u ∙ 32) návrat S
Notace:
Z výše uvedeného pseudokódu, k označuje klíč v Rabbit Key Setup (K), který inicializuje Rabbit pomocí 128bitového klíče k. M označuje hashovanou zprávu a |M| označuje délku zprávy v bitech. q_i označuje zprávu M který je rozdělen na i bloky. Za dané 2n-bitový řetězec X pak L (X) a U (X) označil jeho nejméně významné n bitů a nejvýznamnější n bity.
Výkon
Boesgard, Christensen a Zenner uvádějí výkon Badgeru měřený na 1,0 GHz Pentium III a na 1,7 GHz Pentium 4 procesor.[1] Rychlostně optimalizované verze byly naprogramovány v assembleru inline v C a kompilovány pomocí Intel C ++ Překladač 7.1.
V následující tabulce jsou uvedeny Badgerovy vlastnosti pro různé délky zpráv s omezeným přístupem. "Požadavek na paměť." označuje množství paměti potřebné k uložení vnitřního stavu včetně klíčového materiálu a vnitřního stavu souboru Králičí proudová šifra . „Setup“ označuje klíčové nastavení a „Fin“. označuje finalizaci pomocí IV-nastavení.
Max. Velikost zprávy | Padělání vázáno | Regulace paměti | Nastavit Pentium III | Ploutev. Pentium III | Nastavit Pentium III | Ploutev. Pentium III |
---|---|---|---|---|---|---|
bajtů (např. IPsec) | 400 bajtů | 1133 cyklů | 409 cyklů | 1774 cyklů | 776 cyklů | |
bajtů (např. TLS) | 528 bajtů | 1370 cyklů | 421 cyklů | 2100 cyklů | 778 cyklů | |
bajtů | 1072 bajtů | 2376 cyklů | 421 cyklů | 3488 cyklů | 778 cyklů | |
bajtů | 2 000 bytů | 4093 cyklů | 433 cyklů | 5854 cyklů | 800 cyklů |
MMH (multilineární modulární hash)
Název MMH znamená Multilinear-Modular-Hashing. Aplikace v Multimédia jsou například k ověření integrita online multimediálního titulu. Výkon MMH je založen na vylepšené podpoře celého čísla skalární produkty v moderních mikroprocesorech.
MMH používá jako svou nejzákladnější operaci jednoduché skalární produkty. Skládá se z (upraveného) vnitřní produkt mezi zprávou a klíčem modulo A primární . Stavba MMH funguje v konečné pole pro nějaké hlavní celé číslo .
MMH *
MMH * zahrnuje konstrukci rodiny hashovací funkce skládající se z multilineární funkce zapnuty pro nějaké kladné celé číslo . Rodina MMH * funkcí z na je definována následovně.
kde x, m jsou vektory a funkce jsou definovány následovně.
- = =
V případě MAC je zpráva a je klíč, kde a .
MMH * by měl splňovat bezpečnostní požadavky MAC, umožňující říkat Ana a Bob komunikovat autentizovaným způsobem. Mají tajný klíč . Řekněme, že Charles poslouchá rozhovor mezi Ana a Bobem a chce změnit zprávu na svou vlastní zprávu Bobovi, která by měla předat jako zprávu od Ana. Takže jeho zpráva a Ana zpráva se bude lišit alespoň v jednom bitu (např. ).
Předpokládejme, že Charles ví, že funkce má formu a zná Aninu zprávu ale nezná klíč X potom pravděpodobnost, že Charles může změnit zprávu nebo poslat vlastní zprávu, lze vysvětlit následující větou.
Věta 1[4]: Rodina MMH * je ∆-univerzální.
Důkaz:
Vzít a nechte být dvě různé zprávy. Převzít bez ztráty obecnosti že . Pak pro jakoukoli volbu , tady je
Chcete-li vysvětlit větu výše, vezměte pro prvočíslo představuje pole jako . Pokud někdo vezme prvek dovnitř , řekněme pak pravděpodobnost, že je
To, co člověk vlastně potřebuje k výpočtu, je
Ale,
Z výše uvedeného dokladu je srážka pravděpodobnost útočníka v 1 kole, tedy v průměru k přijetí jedné zprávy stačí ověřovací dotazy. Chcete-li snížit srážka pravděpodobnost, je nutné zvolit velký p nebo zřetězit takové MAC pomocí nezávislé klíče tak, aby srážka pravděpodobnost se stává . V tomto případě se počet klíčů zvýší o faktor a výstup se také zvýší o .
MMH * 32
Halevi a Krawczyk[4] zkonstruujte variantu nazvanou . Konstrukce funguje s 32bitovou verzí celá čísla a s primární celé číslo . Vlastně primární p může být zvolen jakýkoli prime, který uspokojí . Tato myšlenka je převzata z návrhu Cartera a Wegmana používat prvočísla nebo .
- je definována takto:
kde prostředek (tj. binární reprezentace)
Funkce jsou definovány následovně.
kde
- ,
Podle věty 1 se srážka pravděpodobnost je asi ϵ = a rodina lze definovat jako ϵ - téměř ∆ univerzální s ϵ = .
Hodnota k
Hodnota k který popisuje délku zprávy a klíč vektory má několik efektů:
- Protože nákladná modulární redukce skončila k se operace násobení a přidávání zvyšují k by měla snížit rychlost.
- Od klíče X skládá se z k 32bitová celá čísla se zvyšují k bude mít za následek delší klíč.
- Pravděpodobnost rozbití systému je a tak roste k ztěžuje rozbití systému.
Výkon
Níže jsou uvedeny výsledky časování pro různé implementace MMH[4] v roce 1997, navrhli Halevi a Krawczyk.
- 150 MHz PowerPC 604 RISC stroj se systémem AIX
150 MHz PowerPC 604 | Zpráva v paměti | Zpráva v mezipaměti |
---|---|---|
64-bit | 390 Mbit / s | 417 Mbit / s |
32bitový výstup | 597 Mbit / s | 820 Mbit / s |
- Stroj 150 MHz Pentium-Pro běží Windows NT
150 MHz PowerPC 604 | Zpráva v paměti | Zpráva v mezipaměti |
---|---|---|
64-bit | 296 Mbit / s | 356 Mbit / s |
32bitový výstup | 556 Mbit / s | 813 Mbit / s |
- Stroj 200 MHz Pentium-Pro běží Linux
150 MHz PowerPC 604 | Zpráva v paměti | Zpráva v mezipaměti |
---|---|---|
64-bit | 380 Mbit / s | 500 Mbit / s |
32bitový výstup | 645 Mbit / s | 1080 Mbit / s |
Viz také
Reference
- ^ A b C d E F Boesgaard, Martin; Scavenius, Ove; Pedersen, Thomas; Christensen, Thomas; Zenner, Erik (2005). „Badger - rychlý a prokazatelně bezpečný MAC“ (PDF).
- ^ Štěstí, Stefane; Rijmen, Vincent (2005). „Hodnocení jezevce“ (PDF).
- ^ A b C „Ověřovací kód zprávy Badger, specifikace algoritmu“ (PDF). 2005.
- ^ A b C Halevi, Shai; Krawczyk, Hugo (1997). "MMH: Softwarové ověřování zpráv v rychlostech Gbit / sekundu". MMH: Softwarové ověřování zpráv v rychlostech Gbit / s. Přednášky z informatiky. 1267. str. 172–189. doi:10.1007 / BFb0052345. ISBN 978-3-540-63247-4.