Beskedgodkendelseskode - Message authentication code

I kryptografi er en meddelelsesgodkendelseskode ( MAC ), undertiden kendt som et tag , et kort stykke information, der bruges til at godkende en besked. Med andre ord for at bekræfte, at meddelelsen kom fra den angivne afsender (dens ægthed) og ikke er blevet ændret. MAC -værdien beskytter en meddelelses dataintegritet såvel som dens ægthed ved at tillade verifikatorer (som også besidder den hemmelige nøgle) at registrere eventuelle ændringer i meddelelsesindholdet.

Terminologi

Udtrykket meddelelsesintegritetskode (MIC) erstattes ofte med udtrykket MAC , især i kommunikation for at skelne det fra brugen af ​​sidstnævnte som medieadgangskontroladresse ( MAC -adresse ). Nogle forfattere bruger imidlertid MIC til at henvise til en meddelelsesfordeling , der kun har til formål at identificere en enkelt besked entydigt, men uigennemsigtigt. RFC 4949 anbefaler at undgå udtrykket meddelelsesintegritetskode (MIC), og i stedet bruge kontrolsum , fejlregistreringskode , hash , tastet hash , beskedgodkendelseskode eller beskyttet kontrolsum .

Definitioner

Uformelt består et meddelelsesgodkendelseskodesystem af tre algoritmer:

  • En nøglegenerationsalgoritme vælger en nøgle fra nøglerummet ensartet tilfældigt.
  • En signeringsalgoritme returnerer effektivt et tag givet nøglen og beskeden.
  • En verificeringsalgoritme verificerer effektivt ægtheden af ​​meddelelsen givet nøglen og mærket. Det vil sige, at return accepteres, når meddelelsen og mærket ikke er manipuleret med eller forfalsket, og på anden måde returneret afvist .

En sikker beskedgodkendelseskode skal modstå en modstanders forsøg på at smede tags, for vilkårlige, udvalgte eller alle meddelelser , herunder under betingelser for kendt eller valgt besked . Det bør være beregningsmæssigt umuligt at beregne et gyldigt mærke for den givne meddelelse uden kendskab til nøglen, selvom vi i værste fald antager, at modstanderen kender mærket på enhver meddelelse, bortset fra den pågældende.

Formelt set er et meddelelsesgodkendelseskode ( MAC ) -system en tredobling af effektive algoritmer ( G , S , V ), der opfylder:

  • G (nøglegenerator) giver nøglen k på input 1 n , hvor n er sikkerhedsparameteren.
  • S (signering) udsender et mærke t på nøglen k og inputstrengen x .
  • V (verificerende) output godkendt eller afvist på input: nøglen k , strengen x og mærket t .

S og V skal opfylde følgende:

Pr [ kG (1 n ), V ( k , x , S ( k , x )) = accepteret ] = 1.

En MAC er uforglemmelig, hvis for hver effektiv modstander A

Pr [ kG (1 n ), ( x , t ) ← A S ( k , ·) (1 n ), x ∉ Forespørgsel ( A S ( k , ·) , 1 n ), V ( k , x , t ) = accepteret ] <negl ( n ),

hvor A S ( k , ·) betegner, at A har adgang til oraklet S ( k , ·), og forespørgsel ( A S ( k , ·) , 1 n ) angiver mængden af ​​forespørgsler på S foretaget af A , som ved n . Det er klart, at vi kræver, at enhver modstander ikke direkte kan forespørge strengen xS , da en modstander ellers let kan få et gyldigt tag.

Sikkerhed

Mens MAC -funktioner ligner kryptografiske hashfunktioner , har de forskellige sikkerhedskrav. For at blive betragtet som sikker skal en MAC-funktion modstå eksistentiel forfalskning under angreb med valgt besked . Det betyder, at selvom en angriber har adgang til et orakel, der besidder den hemmelige nøgle og genererer MAC'er til meddelelser, som angriberen vælger, kan angriberen ikke gætte MAC for andre meddelelser (som ikke blev brugt til at forespørge oraklet) uden at foretage umulige mængder af beregning.

MAC'er adskiller sig fra digitale signaturer, da MAC -værdier både genereres og verificeres ved hjælp af den samme hemmelige nøgle. Dette indebærer, at afsender og modtager af en meddelelse skal være enige om den samme nøgle, før kommunikation påbegyndes, som det er tilfældet med symmetrisk kryptering . Af samme årsag tilvejebringer MAC'er ikke ejendommen til ikke-afvisning, der tilbydes af signaturer specifikt i tilfælde af en netværksbaseret delt hemmelig nøgle: enhver bruger, der kan verificere en MAC, er også i stand til at generere MAC'er til andre meddelelser. I modsætning hertil genereres en digital signatur ved hjælp af den private nøgle til et nøglepar, som er offentlig nøgle-kryptografi. Da denne private nøgle kun er tilgængelig for indehaveren, beviser en digital signatur, at et dokument er underskrevet af ingen ringere end denne indehaver. Således tilbyder digitale signaturer ikke-afvisning. Imidlertid kan ikke-afvisning tilvejebringes af systemer, der sikkert binder nøglebrugsinformation til MAC-nøglen; den samme nøgle er i besiddelse af to personer, men den ene har en kopi af nøglen, der kan bruges til MAC -generering, mens den anden har en kopi af nøglen i et hardwaresikkerhedsmodul, der kun tillader MAC -verifikation. Dette gøres normalt i finansbranchen.

Implementering

MAC -algoritmer kan konstrueres ud fra andre kryptografiske primitiver, f.eks. Kryptografiske hashfunktioner (som i tilfælde af HMAC ) eller fra blokchifferalgoritmer ( OMAC , CCM , GCM og PMAC ). Men mange af de hurtigste MAC algoritmer som UMAC - VMac og Poly1305-AES er konstrueret baseret på universelle hashing .

Egensnøglede hash -algoritmer, såsom SipHash, er også pr. Definition MAC'er; de kan være endnu hurtigere end universal-hashing-baserede MAC'er.

Derudover kan MAC -algoritmen bevidst kombinere to eller flere kryptografiske primitiver for at bevare beskyttelsen, selvom en af ​​dem senere viser sig at være sårbar. For eksempel i Transport Layer Security (TLS) deles inputdataene i halvdele, der hver behandles med en anden hashing primitiv ( SHA-1 og SHA-2 ), derefter XORed sammen for at udsende MAC.

Engangs MAC

Universal hash og især parvis uafhængige hash -funktioner giver en sikker meddelelsesgodkendelseskode, så længe nøglen bruges højst én gang. Dette kan ses som en engangs pad til godkendelse.

Den enkleste sådan parvis uafhængige hash -funktion er defineret af tilfældig nøgle, key = ( a , b ) , og MAC -tag for en meddelelse m beregnes som tag = ( am + b ) mod p , hvor p er prim.

Mere generelt tilvejebringer k -uafhængige hashfunktioner en sikker meddelelsesautentificeringskode, så længe nøglen bruges mindre end k gange til k -veje uafhængige hashfunktioner.

Beskedgodkendelseskoder og datagodkendelse er også blevet diskuteret inden for rammerne af kvantekryptografi. I modsætning til andre kryptografiske opgaver, såsom nøgledistribution, for en temmelig bred klasse af kvante-MAC'er har det vist sig, at kvanteressourcer ikke giver nogen fordel i forhold til ubetinget sikre engangsklassiske MAC'er.

Standarder

Der findes forskellige standarder, der definerer MAC -algoritmer. Disse omfatter:

  • FIPS PUB 113 Computerdata -godkendelse , trukket tilbage i 2002, definerer en algoritme baseret på DES .
  • FIPS PUB 198-1 The Keyed-Hash Message Authentication Code (HMAC)
  • ISO/IEC 9797-1 Mekanismer ved hjælp af en blokchiffer
  • ISO /IEC 9797-2 Mekanismer ved hjælp af en dedikeret hash-funktion
  • ISO /IEC 9797-3 Mekanismer ved hjælp af en universel hash-funktion
  • ISO /IEC 29192-6 Let kryptering - Meddelelsesgodkendelseskoder

ISO/IEC 9797-1 og -2 definerer generiske modeller og algoritmer, der kan bruges med enhver blokchiffer eller hash -funktion og en række forskellige parametre. Disse modeller og parametre gør det muligt at definere mere specifikke algoritmer ved at nominere parametrene. For eksempel er FIPS PUB 113-algoritmen funktionelt ækvivalent med ISO/IEC 9797-1 MAC-algoritme 1 med polstringsmetode 1 og en blokchifferalgoritme til DES.

Et eksempel på MAC -brug

MAC.svg

I dette eksempel kører afsenderen af ​​en meddelelse den gennem en MAC -algoritme for at producere et MAC -datatag. Meddelelsen og MAC -mærket sendes derefter til modtageren. Modtageren kører på sin side meddelelsesdelen af ​​transmissionen gennem den samme MAC -algoritme ved hjælp af den samme nøgle og producerer et andet MAC -datatag. Modtageren sammenligner derefter det første MAC -tag, der modtages i transmissionen, med det andet genererede MAC -tag. Hvis de er identiske, kan modtageren sikkert antage, at meddelelsen ikke blev ændret eller manipuleret under transmission ( dataintegritet ).

For at modtageren skal være i stand til at registrere gentagelsesangreb , skal selve meddelelsen indeholde data, der sikrer, at den samme besked kun kan sendes én gang (f.eks. Tidsstempel, sekvensnummer eller brug af en engangs-MAC). Ellers kunne en angriber - uden selv at forstå dets indhold - optage denne besked og afspille den på et senere tidspunkt og frembringe det samme resultat som den originale afsender.

Se også

Noter

Referencer

  • 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. publik. Red.), Cambridge [ua]: Cambridge Univ. Tryk på, ISBN 978-0-521-83084-3
  • Pass, Rafael, A Course in Cryptography (PDF) , hentet 31. december 2015

eksterne links

  1. ^ 11-12-20C8