Imitační vkládání (MAC, anglicky message authentication code - message authentication code) - prostředek poskytující ochranu proti imitaci v protokolech pro ověřování zpráv s účastníky, kteří si navzájem důvěřují - speciální sada znaků , která je přidána do zprávy a je navržena tak, aby zajistila její integritu a ověřování zdroje dat.
Imitace se obvykle používá k zajištění integrity a ochrany před falšováním přenášených informací.
Pro kontrolu integrity (ale ne pravosti) zprávy na odesílající straně se ke zprávě přičte hodnota hashovací funkce z této zprávy a hash z přijaté zprávy se vygeneruje také na přijímací straně. Vygenerovaný hash a přijatý hash jsou porovnány. V případě rovnosti se má za to, že přijatá zpráva dosáhla beze změn [1] .
K ochraně před falšováním (imitací) zprávy se používá imitační vložení, vyvinuté pomocí tajného prvku (klíče), který zná pouze odesílatel a příjemce.
Snadný způsob, jak převést jednosměrnou hashovací funkci na imitaci vkládání (MAC), je zašifrovat hodnotu hash pomocí symetrického algoritmu. Takovou MAC lze převést na jednosměrnou hashovací funkci pomocí zjišťování klíčů.
Dalším způsobem je generování imitace vkládání (MAC) pomocí specializovaného algoritmu ochrany imitace založeného na symetrickém šifrovacím algoritmu.
CBC-MAC: Nejjednodušší způsob, jak vytvořit zosobnění závislé na klíči, je zašifrovat zprávu pomocí blokového algoritmu v režimech CBC nebo CFB . Impersonátor vložení je poslední zašifrovaný blok zašifrovaný v těchto režimech. Potenciální bezpečnostní problém u této metody spočívá v tom, že příjemce musí znát klíč a tento klíč mu umožňuje generovat zprávy se stejnou hodnotou imitace jako přijatá zpráva, takže symetrická imitace založená na šifrách neposkytuje znalosti o tom, kdo (odesílatel resp. příjemce) vygeneroval tuto napodobeninu. Z toho vyplývá, že zosobnění založené na symetrické šifře nemůže nahradit elektronický podpis.
GOST 28147-89 zajišťuje výrobu imitace vložky v příslušném režimu. Délka simulovaného vkládání je od 1 do 32 bitů. Jeho vývoj probíhá podle následujícího schématu.
Otevřený text je rozdělen do bloků po 64 bitech. Poslední blok je v případě potřeby doplněn nulami.
První blok je zašifrován v režimu ECB stejným klíčem jako zpráva, ale s použitím 16 cyklů místo 32. Výsledek je přidán bitově modulo 2 do druhého bloku a zašifrován stejným způsobem. Výsledek je přidán do třetího bloku a tak dále.
Prvních 32 bitů výsledného bloku tvoří imitaci vložky. Specifikace šifry umožňuje použití méně bitů, ale ne více, jako imitace vložení, je-li to žádoucí.
Emulace se obvykle odesílá na konci zprávy a lze ji vypočítat buď odděleně od šifrování/dešifrování, nebo během něj.
MAA (Message Authenticator Algorithm) je algoritmus ověřování zpráv.
Tento algoritmus je standardem ISO. Vytváří 32bitovou hodnotu hash a byl navržen pro sálové počítače s rychlými instrukcemi násobení.
v=v<<1
e=v xor w
x=(((e+y) mod 2^32)۷A۸C)*(x xor Mi))mod 2^32-1
y=(((e+x) mod 2^32)۷B۸D)*(y xor Mi))mod 2^32-1
Tyto kroky se opakují pro každý blok zpráv, Mi, a výsledná hash hodnota se získá XORingem x a y. Proměnné v a e závisí na klíči. A, B, C a D jsou konstanty. Možná je tento algoritmus široce používán, ale není dostatečně bezpečný. Vyvíjí se dlouhou dobu a není příliš složitý.
Nejprve je zpráva rozdělena na m-bitové bloky. Pak:
, kde je tajný klíč , kde je prvočíslo menší než .Juneman navrhl hodnoty pro a . Také navrhl, že by měl být použit jako další klíč a že skutečná zpráva by začínala .
Kvůli mnoha narozeninovým útokům bylo navrženo vypočítat QCMDC 4krát, přičemž výsledek jedné iterace se použije jako 4 pro další iteraci [ objasnit ] a poté výsledky zřetězit do 128bitové hašovací hodnoty. V budoucnu byla tato myšlenka posílena paralelním prováděním 4 iterací s křížovými vazbami mezi nimi.
Tento[ co? ] schéma rozlouskl Don Coppersmith .
Poslední blok zprávy zašifrovaný blokovým algoritmem v režimech CBC nebo CFB je považován za MAC.
Nevýhodou je fakt, že příjemce musí znát klíč, který mu umožní vygenerovat zprávu se stejnou MAC.
Vynalezl jej Bart Prenel v rámci projektu RIPE. Používá DES jako funkci blokové šifry. Existují dvě modifikace tohoto algoritmu:
Vlastnosti:
Používá se také jako součást projektu RIPE. Pravděpodobnost otevření IBC-MAC lze kvantifikovat. Jádrem funkce je
Ahoj = ((Mi mod p) + v) mod 2nTajný klíč je dvojice čísel p a v:
Mi - se získá za použití adičního postupu.
Každá zpráva musí být hašována [3] s novým klíčem.
Pravděpodobnost otevření, jednosměrnost a odolnost proti kolizím lze kvantifikovat, jejich změnou lze nastavit požadovanou úroveň zabezpečení.
Nevýhodou je, že zvolená úroveň zabezpečení omezuje velikost hashované zprávy.
Tato MAC vytváří hodnotu hash, která je dvakrát delší než délka bloku algoritmu.
Nejprve se pro zprávu vypočítá CBC-MAC. CBC-MAC zprávy je pak vypočítán v obráceném pořadí bloků. Obousměrná MAC je jednoduše zřetězením těchto dvou hodnot.
Toto schéma není bezpečné. .
Jako MAC lze také použít jednosměrnou hashovací funkci.
Předpokládejme například, že uživatelé A a B sdílejí klíč K a A chce poslat MAC zprávu M. A kombinuje K a M a vypočítá jednosměrnou hashovací funkci: H(K, M). Tato hash hodnota je MAC kód. Protože B zná K, může reprodukovat výsledek A, ale třetí uživatel C, který nezná klíč, to udělat nemůže.
S MD amplifikačními metodami[ objasnit ] tato metoda funguje, ale existují vážné problémy. Uživatel C může vždy přidat nové bloky na konec zprávy a vypočítat správnou MAC. Tomuto útoku lze zabránit přidáním délky zprávy na začátek, ale to také není bezpečné. Je lepší přidat klíč na konec zprávy, N(M,K), ale to také způsobuje problémy. Pokud H je jednosměrná funkce, která není odolná proti kolizi[ objasnit ] C může falšovat zprávy. Ještě lepší je H(K,M,K) nebo H(K1,M,K2), kde jsou K1 a K2 různé. Zdá se, že jsou bezpečné[ komu? ] následující konstrukce:
N(K1, N(K2, M))
N(K, N(K, M))
H(K, p, M, K)), kde p dokončí K pro dokončení bloku zpráv.
Nejlepší [ upřesnit ] přístup je zřetězit alespoň 64 bitů klíče s každým blokem zprávy. Díky tomu je jednosměrná funkce méně efektivní, protože bloky zpráv jsou menší, ale je mnohem bezpečnější.
Nebo můžete použít jednosměrnou hašovací funkci a symetrický algoritmus. Soubor je nejprve zahašován, poté je zašifrována hodnota hash. To je bezpečnější než první zašifrování souboru a následné hašování zašifrovaného souboru, ale toto schéma je náchylné ke stejnému útoku jako konstrukce H(M,K).
Toto schéma MAC používá proudové šifry. Kryptograficky bezpečný generátor pseudonáhodných bitů demultiplexuje [4] tok zpráv na dva dílčí toky. Pokud je výstup bitového generátoru ki jedničky, pak je aktuální bit zprávy mi poslán do prvního dílčího toku, pokud je nula, pak se mi posílá do druhého dílčího toku. Každý dílčí proud je odeslán do svého vlastního LFSR. Výstup MAC je jednoduše konečný stav obou registrů.
Tato metoda není bezpečná pro malé změny zprávy. Pokud například změníte poslední bit zprávy, pak je k vytvoření falešné MAC potřeba změnit pouze 2 bity příslušné MAC; to lze udělat poměrně snadno.
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |
Hashovací funkce | |
---|---|
obecný účel | |
Kryptografický | |
Funkce generování klíčů | |
Kontrolní číslo ( srovnání ) | |
Hashe |
|