Кіріспе

Хабардың шынайылығын және толықтығын тексеру үшін қолданылатын ақпарат. Криптографияда хабардың шынайылығын тексеру коды (MAC), кейде куәландыру таңы деп те аталады, – бұл хабардың шынайылығын және толықтығын тексеруге арналған қысқаша ақпарат. Яғни, хабарламаның белгіленген жіберушіден келгенін (оның шынайылығын) және өзгертілмегенін (оның толықтығын) растау. MAC мәні тексерушілерге (олар да құпия кілттің иесі болса) хабарлама мазмұнындағы кез келген өзгерістерді анықтауға мүмкіндік береді.

Терминология

Хабарламаның толықтығы коді (MIC) термині, әсіресе оны соңғысының медиаға қол жеткізуді басқару адресі (MAC адресі) ретінде қолданылуынан ажырату үшін, MAC терминіне жиі қолданылады. Дегенмен, кейбір авторлар MIC-ті тек бір хабарламаны бірегей, бірақ түсініксіз анықтауға бағытталған хабарламаның дайджестін білдіру үшін пайдаланады. RFC 4949 хабарламаның толықтығы коді (MIC) терминін қолданудан аулақ болуды және оның орнына тексеру сомасын, қателерді анықтау кодын, хэш, кілтті хэш, хабарламаны аутентификациялау кодын немесе қорғалған тексеру сомасын пайдалануды ұсынады.

Қауіпсіздік

MAC функциялары криптографиялық хэш-функцияларға ұқсас болғанымен, олардың қауіпсіздік талаптары әртүрлі. MAC функциясы қауіпсіз деп есептелуі үшін, таңдалған хабарларға жасалған шабуылдар кезінде экзистенциалдық жалған жасауға қарсы тұруы керек. Яғни, егер шабуылшы құпия кілтті иеленетін оракулға қол жеткізе алса және шабуылшы таңдаған хабарлар үшін MAC-ті жасайтын болса, ол оракулға сұрау жіберілмеген басқа хабарлар үшін MAC-ті есептеуге мүмкін емес көлемдегі еңбек жұмсамай болжап таба алмайды. MAC мәндері бірдей құпия кілтті пайдаланып жасалып, тексерілетіндіктен, олар цифрлық қолтаңбалардан өзгеше. Бұл хабарды жіберуші мен қабылдаушы симметриялық шифрлеудегідей, байланыс бастамас бұрын бір кілтке келісуі керек дегенді білдіреді. Осы себепті, MAC-тер желіде кең таралған құпия кілт болған жағдайда қолтаңбалар ұсынатын жауапкершіліктен қашу мүмкіндігін қамтамасыз етпейді: MAC-ті тексеруге қабілетті кез келген пайдаланушы басқа хабарлар үшін де MAC-терді жасай алады. Керісінше, цифрлық қолтаңба кілт жұбының жеке кілтін пайдаланып жасалады, бұл ашық кілттің криптографиясы болып табылады. SipHash сияқты кілттің ішкі бөлігі бар хэш алгоритмдері де MAC-тар болып табылады; олар тіпті әмбебап хэш негізіндегі MAC-тардан да жылдам болуы мүмкін. Сонымен қатар, MAC алгоритмі екі немесе одан да көп криптографиялық құралдарды қасақана біріктіре алады, осылайша олардың бірі кейіннен осал болып табылса да қорғанысын сақтайды. Мысалы, Transport Layer Security (TLS) нұсқаларының 1.2-ден бұрынғыларында кіріс деректері екі бөлікке бөлінеді, олардың әрқайсысы әртүрлі хэш құралын (SHA 1 және SHA 2) пайдаланып өңделеді, содан кейін MAC-ті шығару үшін XOR операциясы қолданылады.

Біржолғы MAC

Универсалды хэштеу, әсіресе жұптық тәуелсіз хэштеу функциялары кілтті бір реттен көп емес қолданғанда қауіпсіз хабарламаны аутентификациялау кодын қамтамасыз етеді. Бұл аутентификация үшін бір реттік жазба деп қарауға болады. Мұндай ең қарапайым жұптық тәуелсіз хэш-функция кездейсоқ кілтпен анықталады, ал m хабарламасы үшін MAC белгісі , мұндағы p – жай сан арқылы есептеледі. Жалпы алғанда, k тәуелсіз хэш функциялары кілтті k тәуелсіз хэш функциясы үшін k реттен кем пайдаланған жағдайда қауіпсіз хабарламаны аутентификациялау кодын қамтамасыз етеді. Хабарламаларды аутентификациялау кодтары және деректердің бастапқы тегінің аутентификациясы кванттық криптография шеңберінде де талқыланды. Басқа криптографиялық міндеттермен, мысалы кілт таратумен салыстырғанда, кванттық MAC-тің кең ауқымы үшін кванттық ресурстар шартты түрде қауіпсіз бір реттік классикалық MAC-ке қарағанда ешқандай артықшылық бермейтіні көрсетілді.

MAC пайдалану үлгісі

Бұл мысалда хабарламаны жіберуші оны MAC алгоритмі арқылы өңдеп, MAC дерек тегін жасайды. Хабарлама мен MAC тегі қабылдаушыға жіберіледі. Қабылдаушы өз кезегінде хабарламаның бөлігін сол MAC алгоритмі арқылы, сол кілтті пайдаланып өңдеп, екінші MAC дерек тегін жасайды. Содан кейін қабылдаушы берілісте алынған бірінші MAC тегін екінші жасалған MAC тегімен салыстырады. Егер олар сәйкес келсе, қабылдаушы хабарламаның берілу барысында өгертілмегенін немесе бұзылмағанын сенімді түрде болжауы мүмкін (деректердің толықтығы). Дегенмен, қабылдаушыға қайталау шабуылдарын анықтауға мүмкіндік беру үшін, хабарламаның өзінде осы хабарлама бір рет қана жіберілгенін растайтын деректер болуы керек (мысалы, уақыт белгісі, реттік нөмір немесе бір реттік MAC қолданылуы). Әйтпесе, шабуылшы оның мазмұнын түсінбестен, осы хабарламаны жазып алып, кейін қайта жіберіп, бастапқы жіберушінің нәтижесімен бірдей нәтижеге қол жеткізе алады.