UMAC

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 4.6.2021 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .

UMAC ( englanninkielinen  viestien todennuskoodi perustuu yleiseen hajautuskoodiin, yleinen MAC , yleiseen hajautuskoodiin perustuva viestin todennuskoodi) on yksi viestin todennuskoodin tyypeistä ( MAC ).

Historia

Tämän algoritmin valitsi NESSIE vuonna 2003, ja seuraavat ihmiset osallistuivat sen kehittämiseen: Intel Corp. (USA), University of Nevada (USA), IBM Research Laboratory (USA), Technion ( Israel ) ja University of California Davis (USA). Sen kirjoittajat olivat John Black, Shai Halevi ja Hugo Krawczyk, Ted Krovetz ja Phillip Rogaway .

Kuvaus

Nopeaa "universaali"-toimintoa käytetään tiivistämään saapuva viesti M lyhyeksi merkkijonoksi. Tämä merkkijono XOR-kirjoitetaan sitten näennäissatunnaisella arvolla, mikä johtaa UMAC-tunnisteeseen:

jossa K1 ja K2 ovat salaisia ​​satunnaisia ​​avaimia, jotka vastaanottajalla ja lähettäjällä on.

Tämä osoittaa, että UMAC:n turvallisuus riippuu siitä, kuinka lähettäjä ja vastaanottaja valitsevat satunnaisesti salaisen hash-funktion ja näennäissatunnaisen sekvenssin . Tässä tapauksessa Noncen arvo muuttaa jokaista mittaa. Noncen käytöstä johtuen vastaanottajan ja lähettimen on tiedettävä, milloin viesti on lähetetty ja miten Nonce-arvo luotiin. Sen sijaan voit käyttää mitä tahansa muuta ei-toistuvaa arvoa Nonce-arvona, kuten viestin järjestysnumeroa. Samaan aikaan tämän numeron ei tarvitse olla salainen, tärkeintä on, että sitä ei tule toistaa.

UMAC on suunniteltu käyttämään 32-bittisiä, 64-bittisiä, 92-bittisiä ja 128-bittisiä tunnisteita vaaditusta suojaustasosta riippuen. UMAC:ia käytetään yleensä yhdessä AES -salausalgoritmin kanssa .

Avaimen luontitoiminto ja näennäissatunnainen järjestys

Näennäissatunnaisten tavujen luominen on välttämätöntä, jotta UHASH toimii ja tunnisteita luodaan

Lohkosalauksen valinta

UMAC käyttää työhönsä lohkosalausta , jonka valinnan määräävät seuraavat vakiot:

Tämä käyttää toimintoa

Esimerkki: jos AES:ää käytetään 16-tavuisen avaimen kanssa, BLOCLEN on 16 (koska AES toimii 16-tavuisten lohkojen kanssa).

KDF - Avainten luontifunktio

Tämä funktio luo pseudosatunnaisten tavujen sekvenssin, jota käytetään avainhajautustoimintoihin.

Sisäänkäynti:

Poistu:

PDF: pseudosatunnaislukujen generointifunktio

Tämä funktio ottaa avaimen ja tietyn ajan ja palauttaa näennäissatunnaisen luvun käytettäväksi sukupolvitunnisteessa. Tällä toiminnolla voidaan saada numeroita, joiden pituus on 4, 8, 12 tai 16 tavua.

Sisäänkäynti:

Poistu:

UMAC-tunnisteiden luominen

UMAC-tunnisteet luodaan UHASH-funktiolla käyttämällä Nonce-arvoa ja aiemmin saatua merkkijonoa (katso kuvaus). Niiden pituus voi olla 4, 8, 12 tai 16 tavua.

Sisäänkäynti:

Poistu:

Tunnisteen laskentaalgoritmi:

HashedMassage = UHASH(K, M, TagLen) Pad = PDF(K, nonce, TagLen) Tag = Pad xor Hashed Massage

UMAC-32 UMAC-64 UMAC-96 UMAC-128

Nämä nimitykset sisältävät nimessään tietyn arvon tagin pituudelle:

Universal Hash Function (UHASH)

UHASH ( englanniksi  Universal hashing ) on ​​yleinen hajautusfunktio, UMAC-algoritmin ydin. UHASH - toiminto toimii kolmessa vaiheessa. Ensin L1-HASH käytetään syöttöviestiin, sitten L2-HASH käytetään tähän tulokseen ja lopuksi L3-HASH sovelletaan tulokseen. Jos syöttöviestin pituus on enintään 1024 bittiä, L2-HASH:ia ei käytetä. Koska L3-Hash-funktio palauttaa vain 4 tavun pituisen sanan, jos sitä vaaditaan yli 4 tavun pituisen hajautusarvon saamiseksi, tämän kolmitasoisen järjestelmän useita iteraatioita suoritetaan.

Yleinen funktio

Valitaan hajautusfunktio tiivistefunktioiden luokasta H, joka yhdistää viestit D:hen, mahdollisten viestimallien joukkoon. Tätä luokkaa kutsutaan universaaliksi, jos jollekin erilliselle viestiparille on olemassa H / D-funktioiden joukko, funktio, joka yhdistää ne elementtiin D. Tämän funktion tarkoitus on, että jos kolmas osapuoli haluaa korvata yhden viestin toisen, mutta samalla katsoo, että hash-funktio valittiin ehdottoman satunnaisesti, niin todennäköisyys sille, että vastaanottava osapuoli ei havaitse korvausta, on yleensä 1/D.

L1-Hash - ensimmäinen vaihe

L1-Hash jakaa viestit 1024 tavun paloiksi ja soveltaa jokaiseen lohkoon hajautusalgoritmia nimeltä NH. NH-algoritmin tulos on 128 kertaa pienempi kuin tulo.

L2-Hash - Vaihe 2

L2-Hash toimii L1-Hash-ulostulon kanssa, käyttää POLY-polynomialgoritmia. Toista hajautusvaihetta käytetään vain, jos syöttöviestin pituus on yli 16 megatavua. POLY-algoritmin käyttö on välttämätöntä ajoitushyökkäysten välttämiseksi. POLY-algoritmin tulos on 16-tavuinen luku.

L3-HASH - kolmas vaihe

Tämä vaihe tarvitaan, jotta L2-Hash-algoritmin ulostulosta 16 tavua saadaan 4-tavuinen arvo.

Tietoturvaongelmat

Kryptusanalyysin vastustuskyky

UMAC:n vahvuus riippuu sen päätoiminnoista: avaimen johtamisfunktiosta (KDF) ja näennäissatunnaissekvenssin generointifunktiosta (PDF). Siksi molemmat toiminnot toteutetaan käyttämällä lohkosalausta, yleensä Advanced Encryption Standard (AES) -standardia. UMAC sallii kuitenkin muiden lohkosalausten käytön. UMAC-algoritmin ja UHASH-funktion tärkein etu on, että niiden vahvuus riippuu vain tietyn algoritmin ja funktion matemaattisista ominaisuuksista. Siksi kryptausanalyysi ei vaikuta UHASH-toiminnon turvallisuuteen .

Pseudosatunnaislukujen pituus ja substituutiomahdollisuus

MAC-algoritmia käytetään kahden jaetun salaisen avaimen K tuntevan osapuolen välisten viestien todentamiseen. Todennustunnisteet lasketaan viestille avaimella K, ja UMAC:n tapauksessa avain on aika. MAC-algoritmin hakkerointi tarkoittaa, että hyökkääjä pystyy luomaan viestejä itse ilman avainta. Wegman-Carterin teoria ja UMAC-analyysi osoittavat, että jos käytetään UMAC-algoritmia, jossa on satunnaiset avaimet ja alkuarvo Nonce, todennäköisyys, että hyökkääjä murtaa viestin, on: , , , , jos lähtötunnisteet ovat pituudeltaan 32, 64, 96. , 128 käytetään vastaavasti. Jos hyökkääjä tekee N yritystä, hakkeroinnin todennäköisyys kasvaa suhteessa yritysten määrään, eli N kertaa. AES-algoritmin lisäkäytöllä hakkeroinnin todennäköisyys pienenee merkittävästi.

Noncen käytön turvallisuus

UMAC käyttää nykyistä aikaa alueella 1 - BLOCKLEN tavua. Tässä tapauksessa kaikkien istunnon aikana olevien Nonce-arvojen on oltava yhtä pitkiä. Parhaan turvallisuuden takaamiseksi mitään Nonce-arvoa ei tule toistaa, kun käytetään samaa istuntoavainta.

Jos käytetään kaksisuuntaista lähetyskanavaa, niin kullekin suunnalle voidaan käyttää eri näppäimiä. Käytettäessä näppäintä molempiin suuntiin on erittäin tärkeää, että Nonce-arvo ei toistu, tämä voidaan tehdä käyttämällä parillisia näppäimiä yhteen suuntaan ja parittomat näppäimet toiseen suuntaan. Tässä tapauksessa Noncen nykyistä arvoa ei tarvitse pitää salassa.

Nonce-arvo voidaan luoda ja välittää seuraavilla tavoilla:

  1. Noncen nykyinen arvo on 8-tavuinen etumerkitön luku, joka nollataan istunnon alussa ja sitä lisätään yhdellä jokaisen lähetetyn tunnisteen jälkeen. Tässä tapauksessa tämä laskuri lähetetään viestin mukana. Jos istunnon aikana lähetetään enemmän kuin 2^64 viestiä, tapahtuu keskeytys .
  2. Noncen nykyinen arvo on BLOCKLEN-tavuinen etumerkitön luku, joka asetetaan nollaan istunnon alussa ja jota lisätään yhdellä jokaisen lähetetyn tunnisteen jälkeen. Tässä tapauksessa laskuria ei siirretä eksplisiittisesti lähettäjän ja vastaanottajan välillä, ja kukin heistä laskee itse nykyisen arvon.
  3. Noncen nykyinen arvo on BLOCKLEN-tavun pseudosatunnaisarvo. Mutta silloin pseudosatunnaisten sekvenssien synkronointi lähettäjän ja vastaanottajan kohdalla on tärkeää.

Toista hyökkäyksiä

Toistohyökkäykset ovat hyökkääjän toimia, joiden tarkoituksena on toistaa viesti, satunnainen numero ja todentaa tunniste. UMACissa tämä hyökkäys epäonnistuu, koska kutakin Nonce-arvoa käytetään täsmälleen kerran.

Tunnisteen etuliitteen tarkistus.

UMAC:n luonne mahdollistaa tag-etuliitetarkistuksen toteuttamisen, esimerkiksi vastaanotin voi tarkistaa vain 32-bittisen etuliitteen 64-bittisestä tagista. Tätä käytetään optimointiin, jos sekin laskentakuorma on suuri. Tässä tapauksessa vastaanottimella on mahdollisuus hylätä koko tunniste, jos 32-bittinen etuliite on virheellinen. Tämä algoritmi vähentää istunnon turvallisuutta.

Kirjallisuus