Jäljitelmälisäys (MAC, englanninkielinen viestin todennuskoodi - viestin todennuskoodi) - keino tarjota jäljitelmäsuojaus viestien todennusprotokollassa , kun osallistujat luottavat toisiinsa - erityinen merkkijoukko , joka lisätään viestiin ja on suunniteltu varmistamaan sen eheys ja tietolähteen todennus.
Jäljitelmällä varmistetaan yleensä siirrettyjen tietojen eheys ja suojaus väärentämiseltä.
Lähettävän viestin eheyden (mutta ei aitouden) tarkistamiseksi viestiin lisätään tämän viestin hash-funktion arvo, ja vastaanotetun viestin tiiviste generoidaan myös vastaanottavalle puolelle. Luotua tiivistettä ja vastaanotettua tiivistettä verrataan. Tasa-arvossa katsotaan, että vastaanotettu viesti on saapunut ilman muutoksia [1] .
Viestin väärentämiseltä (jäljitelmältä) suojaamiseksi käytetään jäljitelmää, joka on kehitetty käyttämällä vain lähettäjän ja vastaanottajan tuntemaa salaista elementtiä (avainta).
Helppo tapa muuntaa yksisuuntainen hash-funktio jäljitelmäksi (MAC) on salata hash-arvo symmetrisellä algoritmilla. Tällainen MAC voidaan muuntaa yksisuuntaiseksi hajautusfunktioksi avainten etsinnällä.
Toinen tapa on luoda jäljitelmälisäys (MAC) käyttämällä erikoistunutta jäljitelmäsuojausalgoritmia, joka perustuu symmetriseen salausalgoritmiin.
CBC-MAC: Yksinkertaisin tapa luoda avaimesta riippuvainen esiintyminen on salata viesti lohkoalgoritmilla CBC- tai CFB -moodissa . Insert imitaattori on viimeinen näissä tiloissa salattu salattu lohko. Tämän menetelmän mahdollinen turvallisuusongelma on, että vastaanottajan on tiedettävä avain, ja tämän avaimen avulla hän voi luoda viestejä, joilla on sama jäljitelmäarvo kuin vastaanotetulla viestillä, joten symmetrinen salauspohjainen jäljitelmä ei anna tietoa kenestä (lähettäjästä tai vastaanottaja) loi tämän jäljitelmän lisäyksen. Tästä seuraa, että symmetriseen salaukseen perustuva toisena henkilönä esiintyminen ei voi korvata sähköistä allekirjoitusta.
GOST 28147-89 säätää jäljitelmän liitteen valmistamisesta sopivassa tilassa. Simuloidun lisäyksen pituus on 1 - 32 bittiä. Sen kehitys tapahtuu seuraavan kaavion mukaisesti.
Selvä teksti on jaettu 64 bitin lohkoihin. Viimeinen lohko on tarvittaessa pehmustettu nolilla.
Ensimmäinen lohko salataan ECB-moodissa samalla avaimella kuin viesti, mutta käyttämällä 16 jaksoa 32:n sijasta. Tulos lisätään bittikohtaisesti modulo 2 toiseen lohkoon ja salataan samalla tavalla. Tulos lisätään kolmanteen lohkoon ja niin edelleen.
Tuloksena olevan lohkon ensimmäiset 32 bittiä muodostavat jäljitelmälisäyksen. Salauksen spesifikaatiossa määrätään, että haluttaessa käytetään vähemmän bittejä, mutta ei enempää, jäljitelmälisäyksenä.
Emulointi lähetetään yleensä viestin lopussa ja se voidaan laskea joko salauksesta/salauksenpurkusta erikseen tai sen aikana.
MAA (Message Authenticator Algorithm) on viestien todennusalgoritmi.
Tämä algoritmi on ISO-standardi. Se tuottaa 32-bittisen hash-arvon ja on suunniteltu keskuskoneille , joissa on nopeat kertolaskuohjeet.
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
Nämä vaiheet toistetaan jokaiselle viestilohkolle, Mi, ja tuloksena oleva hash-arvo saadaan XOR-korjaamalla x ja y. Muuttujat v ja e riippuvat avaimesta. A, B, C ja D ovat vakioita. Ehkä tämä algoritmi on laajalti käytetty, mutta se ei ole tarpeeksi turvallinen. Sitä on kehitetty pitkään, eikä se ole liian monimutkaista.
Ensin viesti jaetaan m-bittisiin lohkoihin. Sitten:
, missä on salainen avain , missä on alkuluku pienempi kuin .Juneman ehdotti arvoja ja . Hän ehdotti myös, että sitä tulisi käyttää lisäavaimena ja että varsinainen viesti alkaisi kirjaimella .
Monien syntymäpäivähyökkäysten vuoksi on ehdotettu, että QCMDC lasketaan 4 kertaa käyttämällä yhden iteroinnin tulosta 4 :nä seuraavalle iteraatiolle [ selventää ] ja sitten ketjuttaa tulokset 128-bittiseksi hajautusarvoksi. Jatkossa tätä ajatusta vahvistettiin suorittamalla rinnakkain 4 iteraatiota, joiden välillä oli ristilinkkejä.
Tämä[ mitä? ] suunnitelman mursi Don Coppersmith .
Viestin viimeinen lohko, joka on salattu lohkoalgoritmilla CBC- tai CFB-moodissa, otetaan MAC:ksi.
Haittapuolena on se, että vastaanottajan on tiedettävä avain, jonka avulla hän voi luoda viestin samalla MAC:lla.
Sen keksi Bart Prenel osana RIPE-projektia. Käyttää DES:ää lohkosalauksena. Tästä algoritmista on kaksi muunnelmaa:
Ominaisuudet:
Käytetään myös osana RIPE-projektia. IBC-MAC:n avaamisen todennäköisyys voidaan kvantifioida. Toiminnan ydin on
Hi = ((Mi mod p) + v) mod 2nSalainen avain on numeropari p ja v:
Mi- saadaan käyttämällä lisäysmenettelyä.
Jokainen viesti on hajautettava [3] uudella avaimella.
Avautumistodennäköisyys, yksisuuntaisuus ja törmäyskestävyys voidaan kvantifioida, ja niitä muuttamalla voidaan asettaa haluttu turvallisuustaso.
Haittapuolena on, että valittu suojaustaso rajoittaa tiivistetyn viestin kokoa.
Tämä MAC tuottaa hajautusarvon, joka on kaksi kertaa algoritmilohkon pituus.
Ensin sanomalle lasketaan CBC-MAC. Viestin CBC-MAC lasketaan sitten käänteisessä lohkojärjestyksessä. Kaksisuuntainen MAC on yksinkertaisesti näiden kahden arvon ketjutus.
Tämä järjestelmä ei ole turvallinen. .
Yksisuuntaista hajautustoimintoa voidaan käyttää myös MAC:na.
Oletetaan esimerkiksi, että käyttäjillä A ja B on yhteinen avain K ja A haluaa lähettää MAC:lle viestin M. A yhdistää K:n ja M:n ja laskee yksisuuntaisen hajautusfunktion: H(K, M). Tämä hash-arvo on MAC-koodi. Koska B tuntee K:n, hän voi toistaa A:n tuloksen, mutta kolmas käyttäjä C, joka ei tunne avainta, ei voi tehdä niin.
MD-vahvistusmenetelmillä[ Selventää ] Tämä menetelmä toimii, mutta siinä on vakavia ongelmia. Käyttäjä C voi aina lisätä uusia lohkoja viestin loppuun ja laskea oikean MAC:n. Tämä hyökkäys voidaan estää lisäämällä viestin pituus, mutta tämä ei ole myöskään turvallista. On parempi lisätä avain viestin loppuun, N(M,K), mutta sekin aiheuttaa ongelmia. Jos H on yksisuuntainen funktio, joka ei ole törmäyssuojattu[ selventää ] C osaa väärentää viestejä. Vielä parempi on H(K,M,K) tai H(K1,M,K2), joissa K1 ja K2 ovat erilaisia. Ne näyttävät turvallisilta[ kenelle? ] seuraavat rakenteet:
N(K1, N(K2, M))
N(K, N(K, M))
H(K, p, M, K)), jossa p täydentää K:n viestilohkon loppuunsaattamiseksi.
Paras [ selventää ] tapa on ketjuttaa vähintään 64 bittiä avaimesta jokaiseen viestilohkoon. Tämä tekee yksisuuntaisesta toiminnosta vähemmän tehokkaan, koska viestilohkot ovat pienempiä, mutta se on paljon turvallisempi.
Tai voit käyttää yksisuuntaista hajautusfunktiota ja symmetristä algoritmia. Tiedosto tiivistetään ensin, sitten hajautusarvo salataan. Tämä on turvallisempaa kuin ensin tiedoston salaaminen ja sitten salatun tiedoston hajautus, mutta tämä menetelmä on alttiina samalle hyökkäykselle kuin H(M,K)-rakenne.
Tämä MAC-järjestelmä käyttää virtasalauksia. Salausturvallinen näennäissatunnainen bittigeneraattori demultipleksoi [4] viestivirran kahteen alivirtaan. Jos bittigeneraattorin ki lähtö on ykkösiä, niin sanoman mi nykyinen bitti lähetetään ensimmäiseen alivirtaan, jos nolla, niin mi lähetetään toiseen alivirtaan. Jokainen alivirta lähetetään omaan LFSR:ään. MAC:n lähtö on yksinkertaisesti molempien rekisterien lopullinen tila.
Tämä menetelmä ei ole turvallinen pienille viestin muutoksille. Jos esimerkiksi muutat viestin viimeistä bittiä, vain 2 bittiä vastaavasta MAC:sta on muutettava väärennetyn MAC:n luomiseksi; tämä voidaan tehdä melko helposti.
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
Muut |
Hash-funktiot | |
---|---|
yleinen tarkoitus | |
Kryptografinen | |
Avainten luontitoiminnot | |
Tarkista numero ( vertailu ) | |
Hashes |
|