Üzenetek hitelesítési kódjai

A hash függvényekre vonatkozó követelmények

A hasítófüggvény egy egyirányú függvény, amely egy fájl, üzenet vagy adatblokk emissziójának vagy ujjlenyomatának a lekérésére szolgál.

A hash-kódot a H függvény adja meg: h = H (M)

Ahol M egy tetszőleges hosszúságú üzenet, és h egy rögzített hosszúságú hash-kód.

A H hash függvény, amelyet az üzenetek hitelesítésére használnak, a következő tulajdonságokkal kell rendelkeznie:

1. A H hash függvényt bármely hosszúságú adatblokkra kell alkalmazni.

2. A H hash függvény határozott hosszúságú kimenetet hoz létre.

3. H (M) viszonylag könnyű (polinomidőben) kiszámítani az M. bármely értékére.

4. A hash-kód bármely h értékére vonatkozóan számításszerűen lehetetlen olyan M-t találni, hogy H (M) = h.

5. Minden adott X esetében számítással lehetetlen megállapítani, hogy y x olyan, hogy H (y) = H (x).

Számítással lehetetlen tetszőleges párt találni (x, y), hogy H (y) = H (x).

Az első három tulajdonság megköveteli, hogy a hash függvény minden üzenethez hash-kódot generáljon.

A negyedik tulajdonság határozza meg a hash függvény egyoldalúságának követelményét: könnyű létrehozni egy hasító kódot az üzenethez, de lehetetlen visszaállítani az üzenetet a hash-kódból. Ez a tulajdonság akkor fontos, ha a hash függvény segítségével történő hitelesítés titkos értéket tartalmaz. Maga a titkos érték nem küldhető el, azonban ha a hash függvény nem egyoldalú, az ellenfél könnyen felfedheti a titkos értéket.

Az első öt tulajdonságnak megfelelő hash függvényt egyszerű vagy gyenge hash függvénynek nevezik. Ha a hatodik tulajdonság is végrehajtásra kerül, ezt a funkciót erős hash függvénynek nevezik. A hatodik tulajdon védve van a "születésnapi" támadásnak nevezett támadásokkal szemben.

Az összes hasítófunkciót az alábbiak szerint végezzük. A bemeneti érték (üzenet, fájl stb.) N-bites blokkok sorozata. A bemeneti érték soronként blokkolva történik, és n-bites hash-kódot generál.

A hashfunkció egyik legegyszerűbb példája az egyes blokkok bitenkénti XOR értéke:

Ha Ci a hash-kód i-edik bitje, 1 i n,

k az n-bites bemeneti blokkok száma.

bij - az i-dik bit a j-os mondatban.

Az eredmény az n hosszúságú hash-kód, amelyet longitudinális felesleges kontrollként ismerünk. Ez az adatok sértetlenségének esetleges meghibásodása esetén hatékony.

Gyakran előfordul, hogy ilyen longitudinális túlcsordulás-szabályozást használunk, minden egyes blokkhoz egy bites ciklikus eltolódást hajtunk végre a hash-kód kiszámítása után. Ez megadja a beavatkozás "véletlenszerű" hatását és megsemmisíti a bemeneti értékekben jelen lévő bármely szabályosságot.

Míg a második lehetőséget az adatintegritás és a véletlen hibák megelőzése szempontjából előnyösebbnek tekintik, nem használható a továbbított üzenetek szándékos módosításának kimutatására. Az üzenet ismeretében a támadó könnyen létrehozhat egy új üzenetet, amelynek ugyanaz a hasisszáma van. Ehhez elő kell készíteni egy alternatív üzenetet, majd csatolnia kell az új üzenet hash-kódjához tartozó n-bites blokkot, és a blokkot, amely a régi üzenet hash-kódja.

Tekintsük az algoritmust az MD5 (RFC 1321) üzenet emésztésére, amelyet Ron Rivest az MIT fejlesztett ki. Az algoritmus tetszőleges hosszúságú üzenetet kap a bemeneten, és 128 bites üzenetemésztést hoz létre kimenetként.

Az ABCD inicializáló vektor, amely négy hexadecimális számjegyű (4 bájtos) hosszúságú alvektorból áll. Yi - i - th blokk forrás szöveg, HMD5 - modul, amely 4 ciklikus feldolgozás.

SHA hash funkciók

Az algoritmus a bemeneten maximum 64 bites hosszúságú üzenetet kap, és kimenetként 160 bites üzenetemésztést generál.

Az SHA-1 és az MD5 összehasonlítása

Az üzenet hossza (bitben)

A blokk hossza (bitben)

A biztonság itt azt jelenti, hogy ellenáll a "születésnap" osztály támadásainak.

A GOST 3411 hash funkciója

A GOST 3411 algoritmus a hash függvények hazai szabványa. Az MD4 algoritmus alapján nagyon eltérő az SHA-1,2 vagy MD5 algoritmusok struktúrájától.

A GOST 3411 algoritmus által létrehozott hash-kód hossza 256 bit. Az algoritmus az üzeneteket olyan mondatokba bontja, amelyek hossza szintén 256 bit. Ezenkívül az algoritmus paramétere a H induló hasítóvektor - a tetszőleges rögzített hosszúsági érték is 256 bit.

Az üzenetet 256 bites blokkokból kell feldolgozni jobbról balra.

Üzenet hitelesítési kódok - MAC

Ebben az esetben, egy MAC (Message Authentication Code) utal egyes Authenticator, amelynek kiszámítása egy bizonyos módon adatblokkot, amellyel integritásának igazolására üzenetek. Bizonyos mértékig az egész üzenet szimmetrikus titkosítása elvégezheti az üzenet hitelesítésének funkcióját. 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 speciálisan formázott üzenet formája, egy adott nyelven írt szöveg és így tovább. Ha az üzenet lehetővé tetszőleges bitsorozat (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 a integritását az üzenetet. Ez az adatblokk egy titkos kulcs használatával hozható létre, amelyet a feladó és a vevő fogad. A MAC-t abban a pillanatban számolják ki, amikor ismert, hogy az üzenet helyes. Ezután a MAS csatlakozik az üzenethez, és elküldik a címzetthez. A vevő ugyanazt a titkos kulcsot használva kiszámolja az MSS-t, és összehasonlítja a számított értéket a kapott értékkel. Ha ezek az értékek egyeznek, akkor feltételezhető, nagy a valószínűsége, hogy egy e-mail üzenetet változások történtek.

Kapcsolódó cikkek