Imitationsinsättning (MAC, engelsk meddelandeautentiseringskod - meddelandeautentiseringskod) - ett sätt att tillhandahålla imitationsskydd i meddelandeautentiseringsprotokoll med deltagare som litar på varandra - en speciell uppsättning tecken som läggs till meddelandet och är utformad för att säkerställa dess integritet och autentisering av datakälla.
Imitation används vanligtvis för att säkerställa integriteten och skyddet mot förfalskning av överförd information.
För att kontrollera integriteten (men inte äktheten) för meddelandet på den sändande sidan, läggs värdet på hashfunktionen från detta meddelande till meddelandet, och hashen från det mottagna meddelandet genereras även på den mottagande sidan. Den genererade hashen och den mottagna hashen jämförs. Vid jämlikhet anses det mottagna meddelandet ha nått utan ändringar [1] .
För att skydda mot förfalskning (imitation) av ett meddelande används en imitationsinsättning, utvecklad med hjälp av ett hemligt element (nyckel) som endast är känd för avsändaren och mottagaren.
Ett enkelt sätt att konvertera en enkelriktad hashfunktion till imitationsinsättning (MAC) är att kryptera hashvärdet med en symmetrisk algoritm. En sådan MAC kan konverteras till en enkelriktad hashfunktion med hjälp av nyckelupptäckt.
Ett annat sätt är att generera imitationsinsättning (MAC) med hjälp av en specialiserad imitationsskyddsalgoritm baserad på en symmetrisk krypteringsalgoritm.
CBC-MAC: Det enklaste sättet att skapa en nyckelberoende personifiering är att kryptera meddelandet med en blockalgoritm i CBC- eller CFB -lägen . Insert-imitatorn är det sista krypterade blocket som krypteras i dessa lägen. Ett potentiellt säkerhetsproblem med denna metod är att mottagaren måste känna till nyckeln, och denna nyckel tillåter honom att generera meddelanden med samma imitationsvärde som det mottagna meddelandet, så en symmetrisk chifferbaserad imitation ger inte kunskap om vem (avsändare eller mottagare) genererade denna imitationsinsättning. Härav följer att en personifiering baserad på ett symmetriskt chiffer inte kan ersätta en elektronisk signatur.
GOST 28147-89 tillhandahåller produktion av en imitationsinsats i lämpligt läge. Längden på den simulerade infogningen är från 1 till 32 bitar. Dess utveckling sker enligt följande schema.
Klartexten är uppdelad i block om 64 bitar. Det sista blocket, om nödvändigt, är vadderat med nollor.
Det första blocket krypteras i ECB-läge med samma nyckel som meddelandet, men med 16 cykler istället för 32. Resultatet läggs till bitvis modulo 2 till det andra blocket och krypteras på samma sätt. Resultatet läggs till i det tredje blocket och så vidare.
De första 32 bitarna av det resulterande blocket utgör imitationsinsättningen. Specifikationen av chifferet ger möjlighet att använda färre bitar, men inte fler, som en imitationsinsättning, om så önskas.
Emulering skickas vanligtvis i slutet av meddelandet och kan beräknas antingen separat från krypteringen/dekrypteringen eller under den.
MAA (Message Authenticator Algorithm) är en algoritm för meddelandeautentisering.
Denna algoritm är en ISO-standard. Den producerar ett 32-bitars hashvärde och designades för stordatorer med snabba multiplikationsinstruktioner.
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
Dessa steg upprepas för varje meddelandeblock, Mi, och det resulterande hashvärdet erhålls genom att XORing x och y. Variablerna v och e beror på nyckeln. A, B, C och D är konstanter. Kanske är den här algoritmen mycket använd, men den är inte tillräckligt säker. Det har utvecklats under lång tid och är inte alltför komplicerat.
Först delas meddelandet upp i m-bitars block. Sedan:
, var är den hemliga nyckeln , där är ett primtal mindre än .Juneman föreslog värden för och . Han föreslog också att den skulle användas som en extra nyckel, och att själva meddelandet skulle börja med .
På grund av de många födelsedagsattackerna har det föreslagits att beräkna QCMDC 4 gånger, använda resultatet av en iteration som 4 för nästa iteration [ clarify ] och sedan sammanfoga resultaten till ett 128-bitars hashvärde. I framtiden stärktes denna idé genom parallell exekvering av 4 iterationer med tvärlänkar mellan dem.
Detta[ vad? ] schemat knäcktes av Don Coppersmith .
Det sista blocket i meddelandet krypterat med blockalgoritmen i CBC- eller CFB-lägen tas som MAC.
Nackdelen är det faktum att mottagaren måste känna till nyckeln, vilket gör att han kan generera ett meddelande med samma MAC.
Det uppfanns av Bart Prenel som en del av RIPE-projektet. Använder DES som en blockchifferfunktion. Det finns två modifieringar av denna algoritm:
Egenskaper:
Används även som en del av RIPE-projektet. Sannolikheten att öppna en IBC-MAC kan kvantifieras. Kärnan i funktionen är
Hej = ((Mi mod p) + v) mod 2nDen hemliga nyckeln är ett par siffror p och v:
Mi - erhålls med användning av tillsatsproceduren.
Varje meddelande måste hashas [3] med en ny nyckel.
Öppningssannolikhet, enkelriktad och motstånd mot kollisioner kan kvantifieras, genom att ändra dem kan du ställa in önskad säkerhetsnivå.
Nackdelen är att den valda säkerhetsnivån begränsar storleken på det hashade meddelandet.
Denna MAC producerar ett hashvärde som är två gånger längden på algoritmblocket.
Först beräknas CBC-MAC för meddelandet. CBC-MAC för meddelandet beräknas sedan med omvänd blockordning. Den dubbelriktade MAC är helt enkelt sammanlänkningen av dessa två värden.
Detta system är inte säkert. .
En enkelriktad hashfunktion kan också användas som en MAC.
Anta till exempel att användare A och B delar en nyckel K och A vill skicka meddelande M till MAC. A kombinerar K och M och beräknar en enkelriktad hashunionsfunktion: H(K, M). Detta hashvärde är MAC-koden. Eftersom B känner till K kan han återge A:s resultat, men en tredje användare, C, som inte kan nyckeln, kan inte göra det.
Med MD-förstärkningsmetoder[ förtydliga ] denna metod fungerar, men det finns allvarliga problem. Användare C kan alltid lägga till nya block i slutet av meddelandet och beräkna rätt MAC. Denna attack kan förhindras genom att ställa in längden på meddelandet, men det är också osäkert. Det är bättre att lägga till nyckeln i slutet av meddelandet, N(M,K), men det orsakar också problem. Om H är en enkelriktad funktion som inte är kollisionssäker[ förtydliga ] C kan förfalska meddelanden. Ännu bättre är H(K,M,K) eller H(K1,M,K2), där K1 och K2 är olika. De verkar säkra[ till vem? ] följande konstruktioner:
N(K1, N(K2, M))
N(K, N(K, M))
H(K, p, M, K)), där p slutför K för att slutföra meddelandeblocket.
Det bästa tillvägagångssättet [ klargör ] är att sammanfoga minst 64 bitar av nyckeln med varje meddelandeblock. Detta gör envägsfunktionen mindre effektiv eftersom meddelandeblocken är mindre, men det är mycket säkrare.
Eller så kan du använda en enkelriktad hashfunktion och en symmetrisk algoritm. Filen hashas först, sedan krypteras hashvärdet. Detta är säkrare än att först kryptera filen och sedan hasha den krypterade filen, men detta schema är känsligt för samma attack som H(M,K)-konstruktionen.
Detta MAC-schema använder strömchiffer. En kryptografiskt säker pseudoslump-bitgenerator demultiplexerar [4] meddelandeströmmen i två underströmmar. Om utsignalen från bitgeneratorn ki är ettor, så sänds den aktuella biten i meddelandet mi till den första delströmmen, om noll så sänds mi till den andra delströmmen. Varje delström skickas till sin egen LFSR. Utdata från MAC är helt enkelt sluttillståndet för båda registren.
Denna metod är inte säker för små ändringar i meddelandet. Till exempel, om du ändrar den sista biten i meddelandet, behöver bara 2 bitar av motsvarande MAC ändras för att skapa en falsk MAC; detta kan göras ganska enkelt.
Symmetriska kryptosystem | |
---|---|
Streama chiffer | |
Feistel nätverk | |
SP nätverk | |
Övrig |
Public key kryptosystem | |||||||||
---|---|---|---|---|---|---|---|---|---|
Algoritmer |
| ||||||||
Teori |
| ||||||||
Standarder |
| ||||||||
Ämnen |
|
Hash-funktioner | |
---|---|
generell mening | |
Kryptografisk | |
Nyckelgenereringsfunktioner | |
Kontrollnummer ( jämförelse ) | |
Hashes |
|