Ověřovací kód zprávy - Message authentication code

V kryptografii je ověřovací kód zprávy ( MAC ), někdy známý jako tag , krátká informace používaná k ověření zprávy. Jinými slovy, potvrzení, že zpráva přišla od uvedeného odesílatele (její pravost) a nebyla změněna. Hodnota MAC chrání integritu dat zprávy a její autenticitu tím , že umožňuje ověřovatelům (kteří také vlastní tajný klíč) detekovat jakékoli změny obsahu zprávy.

Terminologie

Pojem kód integrity zprávy (MIC) je často nahrazován termínem MAC , zejména v komunikacích, aby se odlišil od jeho použití jako adresy pro řízení přístupu k médiím ( MAC adresa ). Někteří autoři však používají MIC k označení souhrnu zpráv , jehož cílem je pouze jednoznačně, ale neprůhledně identifikovat jednu zprávu. RFC 4949 doporučuje vyhnout se výrazu kód integrity zprávy (MIC) a místo toho použít kontrolní součet , kód pro detekci chyb , hash , klíčovaný hash , ověřovací kód zprávy nebo chráněný kontrolní součet .

Definice

Neformálně se systém kódů pro ověřování zpráv skládá ze tří algoritmů:

  • Algoritmus generování klíčů vybírá klíč z prostoru klíčů rovnoměrně náhodně.
  • Podpisový algoritmus efektivně vrací tag daný klíčem a zprávou.
  • Ověřovací algoritmus efektivně ověřuje autenticitu zprávy dané klíče a značky. To znamená, že návrat je přijat, pokud nejsou se zprávou a značkou manipulováno nebo padělány, a v opačném případě je odmítnuto .

Bezpečné autentizační kód zprávy musí odolávat pokusům protivníkem kovářských značek, za svévolné, vyberte, nebo všechny zprávy , jakož i na základě podmínek known- nebo zvoleného-zprávy . Mělo by být výpočetně neproveditelné vypočítat platnou značku dané zprávy bez znalosti klíče, i když v nejhorším případě předpokládáme, že protivník zná značku jakékoli zprávy kromě té, o které jde.

Formálně je systém ověřovacího kódu zprávy ( MAC ) trojicí efektivních algoritmů ( G , S , V ), které splňují:

  • G (generátor klíčů) udává klíč k na vstupu 1 n , kde n je bezpečnostní parametr.
  • S (podepisování) vydá tag t na klíč k a vstupní řetězec x .
  • V (ověřování) výstupy přijaty nebo odmítnuty na vstupech: klíč k , řetězec x a tag t .

S a V musí splňovat následující:

Pr [ kG (1 n ), V ( k , x , S ( k , x )) = přijato ] = 1.

MAC je neodpustitelný, pokud pro každého efektivního protivníka A

Pr [ kG (1 n ), ( x , t ) ← A S ( k , ·) (1 n ), x ∉ Dotaz ( A S ( k , ·) , 1 n ), V ( k , x , t ) = přijato ] <negl ( n ),

kde A S ( k , ·) označuje, že A má přístup k věštci S ( k , ·), a dotaz ( A S ( k , ·) , 1 n ) označuje množinu dotazů na S vytvořených A , která ví n . Je jasné, že požadujeme, aby jakýkoli protivník nemohl přímo dotazovat řetězec x na S , protože jinak může tento protivník snadno získat platnou značku.

Bezpečnostní

Zatímco funkce MAC jsou podobné kryptografickým hashovacím funkcím , mají různé požadavky na zabezpečení. Aby byla funkce MAC považována za zabezpečenou, musí odolávat existenciálnímu padělání při útocích vybraných zpráv . To znamená, že i když má útočník přístup k věštci, která vlastní tajný klíč a generuje adresy MAC pro zprávy podle výběru útočníka, nemůže útočník uhodnout adresu MAC pro jiné zprávy (které nebyly použity k dotazování věštce), aniž by provedl neproveditelné částky výpočtu.

MAC se liší od digitálních podpisů, protože hodnoty MAC jsou generovány a ověřovány pomocí stejného tajného klíče. To znamená, že odesílatel a příjemce zprávy se musí před zahájením komunikace shodnout na stejném klíči, jako je tomu v případě symetrického šifrování . Ze stejného důvodu MAC neposkytují vlastnost neodmítnutí nabízenou podpisy konkrétně v případě sdíleného tajného klíče v celé síti : každý uživatel, který může ověřit MAC, je také schopen generovat MAC pro jiné zprávy. Naproti tomu digitální podpis je generován pomocí soukromého klíče dvojice klíčů, což je kryptografie veřejného klíče. Protože je tento soukromý klíč přístupný pouze jeho držiteli, digitální podpis dokazuje, že dokument nebyl podepsán nikým jiným než tímto držitelem. Digitální podpisy tedy nabízejí neodmítnutí. Neodmítnutí však mohou zajistit systémy, které bezpečně vážou informace o využití klíče s klíčem MAC; stejný klíč je v držení dvou lidí, ale jeden má kopii klíče, který lze použít pro generování MAC, zatímco druhý má kopii klíče v modulu zabezpečení hardwaru, který umožňuje pouze ověření MAC. To se běžně děje ve finančním průmyslu.

Implementace

Algoritmy MAC mohou být vytvořeny z jiných kryptografických primitiv, jako jsou kryptografické hashovací funkce (jako v případě HMAC ) nebo z blokových šifrovacích algoritmů ( OMAC , CCM , GCM a PMAC ). Mnoho z nejrychlejších algoritmů MAC, jako je UMAC - VMAC a Poly1305 -AES, je však konstruováno na základě univerzálního hašování .

Algoritmy hash s vnitřním klíčem, jako je SipHash, jsou podle definice také MAC; mohou být dokonce rychlejší než MAC založené na univerzálním hašování.

Algoritmus MAC navíc může záměrně kombinovat dvě nebo více kryptografických primitiv, aby byla zachována ochrana, i když se později zjistí, že jeden z nich je zranitelný. Například v TLS ( Transport Layer Security ) jsou vstupní data rozdělena na poloviny, z nichž každá je zpracována s jiným hashovacím primitivem ( SHA-1 a SHA-2 ), a poté XORed společně pro výstup MAC.

Jednorázový MAC

Univerzální hašovací a zejména párově nezávislé hashovací funkce poskytují bezpečný ověřovací kód zprávy, pokud je klíč použit maximálně jednou. To lze považovat za jednorázovou podložku pro ověřování.

Nejjednodušší taková párově nezávislá hashovací funkce je definována náhodným klíčem key = ( a , b ) a MAC tag pro zprávu m je vypočítán jako tag = ( am + b ) mod p , kde p je prime.

Obecněji řečeno, k -independentní hash funkce poskytují bezpečné autentizační kód zprávy, dokud je klávesa se používá méně než k- dobách pro K -ways nezávislých hashovací funkce.

V rámci kvantové kryptografie byly diskutovány také ověřovací kódy zpráv a autentizace původu dat. Na rozdíl od jiných kryptografických úkolů, jako je distribuce klíčů, u poměrně široké třídy kvantových MAC bylo ukázáno, že kvantové zdroje neposkytují žádnou výhodu oproti bezpodmínečně zabezpečeným jednorázovým klasickým MAC.

Standardy

Existují různé standardy, které definují algoritmy MAC. Tyto zahrnují:

  • Ověření počítačových dat FIPS PUB 113 , stažené v roce 2002, definuje algoritmus založený na DES .
  • FIPS PUB 198-1 ověřovací kód zprávy s klíčem hash (HMAC)
  • ISO/IEC 9797-1 Mechanismy využívající blokovou šifru
  • ISO /IEC 9797-2 Mechanismy využívající vyhrazenou hashovací funkci
  • ISO /IEC 9797-3 Mechanismy využívající univerzální hashovací funkci
  • ISO /IEC 29192-6 Lehká kryptografie - ověřovací kódy zpráv

ISO/IEC 9797-1 a -2 definují generické modely a algoritmy, které lze použít s jakoukoli funkcí blokové šifry nebo hash, a řadou různých parametrů. Tyto modely a parametry umožňují definovat konkrétnější algoritmy jmenováním parametrů. Například algoritmus FIPS PUB 113 je funkčně ekvivalentní algoritmu MAC ISO/IEC 9797-1 1 s metodou odsazení 1 a algoritmem blokové šifry DES.

Příklad použití MAC

MAC.svg

V tomto případě odesílatel zprávy spustí zprávu pomocí algoritmu MAC a vytvoří značku dat MAC. Zpráva a MAC tag jsou poté odeslány příjemci. Přijímač zase spouští část zprávy přenosu prostřednictvím stejného algoritmu MAC pomocí stejného klíče a vytváří druhý tag dat MAC. Přijímač poté porovnává první MAC tag přijatý při přenosu s druhým generovaným MAC tagem. Pokud jsou totožné, může příjemce bezpečně předpokládat, že zpráva nebyla během přenosu změněna nebo s ní nebylo manipulováno ( integrita dat ).

Aby však příjemce mohl detekovat opakované útoky , musí samotná zpráva obsahovat data, která zajišťují, že stejnou zprávu lze odeslat pouze jednou (např. Časové razítko, pořadové číslo nebo použití jednorázové MAC). Jinak by mohl útočník - aniž by porozuměl jeho obsahu - tuto zprávu nahrát a přehrát později, což by mělo stejný výsledek jako původní odesílatel.

Viz také

Poznámky

Reference

  • Goldreich, Oded (2001), Foundations of cryptography I: Basic Tools , Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
  • Goldreich, Oded (2004), Foundations of cryptography II: Basic Applications (1. publ. Ed.), Cambridge [ua]: Cambridge Univ. Tisk, ISBN 978-0-521-83084-3
  • Pass, Rafael, A Course in Cryptography (PDF) , vyvolány 31. prosince 2015

externí odkazy

  1. ^ 11-12-20C8