HAIFA

HAIFA ( englanniksi  HAsh Iterative FrAmework ) on iteratiivinen menetelmä kryptografisten hajautusfunktioiden rakentamiseen , mikä on parannus klassiseen Merkle-Damgor-rakenteeseen .

Sitä ehdotettiin vuonna 2007 lisäämään vastustuskykyä monille hyökkäyksille ja tukemaan kykyä saada eripituisia hash-summia . Algoritmin pohjalta on kehitetty hash-funktioita, kuten BLAKE [1] ja SHAVite-3 [2] .

Historia

Algoritmin luojat ovat Eli Biham ja Or Dunkelman  , israelilaiset kryptografit Haifan yliopistosta . Biham on Adi Shamirin opiskelija , joka kehitti suuren määrän uusia salausalgoritmeja, mukaan lukien olemassa olevien salausalgoritmien rikkominen; Dunkelman on Shamirin kollega yhdessä projektista, ja myöhemmin hän jatkoi tutkimustaan ​​itsenäisesti [3] .

Merkle-Damgor-rakenteen uskottiin pitkään kestävän toista esikuvahyökkäystä , kunnes Princetonin yliopiston professori Richard Dean osoitti vuonna 1999 , että tämä oletus on väärä pitkille viesteille, jos tietyllä supistusfunktiolla on mahdollista löytää helposti kiinteä. sekvenssin pisteitä. Merkle-Damgor-rakenteeseen voitiin myös suorittaa usean törmäyksen hyökkäys ja harding-hyökkäys (hyökkäys tunnettuun etuliitteeseen) [4] [5] .

Algoritmi

Merkle-Damgor-rakenne on seuraava algoritmi:

Viesti on jaettu useisiin osiin: . On jokin alkuarvo - ja jokin funktio , joka laskee hajautusfunktion väliesityksen tietyllä tavalla [5] :

Edelleen iteratiivisesti :

Uuden HAIFA-algoritmin perustana oli hajabittien lukumäärän ja jonkin verran satunnaisarvon lisääminen . Tavallisen pakkaustoiminnon sijaan, joka voidaan nyt merkitä seuraavasti [4] :

, missä  on koko ,  on lohkon koko, (useimmiten tulosteen koko on sama kuin h:n koko)

käytetty:

, missä  ovat bittien lukumäärän ja suolan pituudet ,

sisäinen esitys lasketaan (edellä esitetyn merkinnän mukaisesti):

, missä  on tähän mennessä hajautettujen bittien määrä.

Jos haluat tiivistää viestin, toimi seuraavasti:

  1. Täytä viesti alla olevan kaavion mukaisesti.
  2. Laske m -koon sisäsolun alkuarvo alla kuvatun algoritmin mukaisesti.
  3. Käy läpi kaikki täytetyn viestin lohkot laskemalla jokaisessa vaiheessa pakkausfunktion arvo nykyisestä lohkosta ja lisäämällä nyt suola ja argumentteina. Jos viestiin lisätään ylimääräinen lohko (hyvin lopussa), asetamme tälle lohkolle arvon nollaksi.
  4. Trimmaa funktion viimeistä lähtöarvoa tarvittaessa [4] .

Viestin valmistuminen

HAIFA:ssa viesti on täytetty ykkösellä, vaaditulla määrällä nollia, viestin pituudella bitteinä ja lähtölohkon koolla . Eli lisäämme sekvenssin (nollien lukumäärän tässä tapauksessa tulee olla sellainen, että [4] , jossa ,  on ykkösten ja nollien lukumäärä,  on lohkon koko:

Tuloslohkon koolla täytetyn viestin tiivistäminen eliminoi törmäysten löytämisen ongelman, koska jos kaksi viestiä ja tiivistetään lohkokoolla ja , niin se on viimeinen lohko, joka säästää törmäyksistä. Lisäämällä = 0 aivan viimeiseen lohkoon puolestaan ​​luodaan signaali osoittamaan viimeinen ja täydentävä lohko [4] .

Mahdollisuus täydentää alkuperäistä viestiä tässä algoritmissa mahdollistaa tiivistetyn viestin lyhentämisen, mikä muuttaa lopullisen tiivisteen kokoa [4] .

Hash-pituus

Usein käytännössä vaaditaan eripituisia lopullisen tiivisteen pituutta (kuten esimerkiksi SHA-256 :lle , jossa on kaksi katkaistua versiota), joten tämä rakenne toteutti myös mahdollisuuden vaihdella sen pituutta erityisellä algoritmilla (jotta säilyttää vastustuskyky hyökkäyksille toista esikuvaa vastaan, et voi käyttää ilmeistä ratkaisua ottaa bittejä lopullisesta hashista).

  1.  -alkuarvo
  2.  - haluttu ulostulon pituus
  3. Otamme huomioon muunnetun alkuarvon:
  4. Näin ollen "johdotetaan" ensimmäisissä biteissa, joita seuraa 1 ja nollia.
  5. Kun viimeinen lohko on laskettu, lopullinen arvo on ketjunpakkausfunktion viimeisen arvon bitti [4] .

Algoritmin suojaus

Todiste siitä, että HAIFA on törmäyksenkestävä, jos supistumisfunktio on törmäyksenkestävä, on samanlainen kuin Merkle-Damgorin todiste [4] .

Hajabittien määrä tekee kiinteiden pisteiden löytämisestä ja käyttämisestä paljon vaikeampaa. Vaikka olisi löydetty sellaiset ja joille , näitä arvoja on mahdotonta kertoa loputtomasti tässä algoritmissa, koska bittien määrä muuttuu koko ajan [4] .

Suola ( ), samoin kuin , edistävät myös algoritmin vakautta [4] :

  1. Mahdollistaa hajautusfunktioiden turvallisuuden asettamisen teoreettisessa mallissa.
  2. Aiheuttaa ennakkolaskentaan perustuvat hyökkäykset siirtämään kaikki laskelmat verkkoon, koska suolan arvoa ei tiedetä etukäteen.
  3. Lisää sähköisten allekirjoitusten turvallisuutta (koska joka kerta on otettava huomioon, että siinä on jokin satunnainen arvo).

Alla on arvioita HAIFA:n vastustuskyvystä erityyppisiä hyökkäyksiä vastaan.

Kiinteän pisteen hyökkäykset

Hyökkäyksessä toista esikuvaa vastaan ​​haetaan tällaista arvoa, jolle , eli tiiviste kohteesta on yhtä suuri kuin jokin väliarvo iteraatioissa, ja yhdistä sitten jäljellä olevan viestin osa ( joka sijaitsee oikealla ) arvaamaamme . Algoritmi tunnistettiin kuitenkin vastustuskykyiseksi tälle hyökkäykselle, koska parannetussa versiossa sen koko liitettiin viestin loppuun. Richard Dean osoitti työssään täysin uudenlaisen hyökkäystavan, joka perustuu oletukseen, että tietylle funktiolle on helppo löytää kiinteitä pisteitä (määritelmän mukaan kiinteä piste on sellainen, jonka relaatio täyttyy ). Hänen algoritmissaan puuttuva viestin pituus korvattiin lisäämällä joukko kiinteitä pisteitä, eli pituuttamme voitiin täydentää riittävällä määrällä arvon toistoja .

Tässä tapauksessa HAIFA suojaa kiinteän pisteen hyökkäyksiltä, ​​koska suolan ja hajabittien lukumäärän sisältävä kenttä minimoi supistusfunktioarvojen toistumisen todennäköisyyden [4] .

Usean törmäyksen hyökkäys

Useita törmäyksiä varten ranskalainen kryptografi Antoine Joux kuvaili mahdollisuutta löytää viestejä, joilla on sama hash. Hänen työnsä perustuu siihen, että on mahdollista löytää sellaisia ​​yhden lohkon törmäyksiä, joissa , ja sitten rakentaa erilaisia ​​viestejä, kaikista vaihtoehdoista, valitsemalla jokaisessa vaiheessa joko viesti tai .

HAIFA ei monimutkaisesta rakenteestaan ​​huolimatta takaa nolla onnistumisprosenttia useiden törmäyshyökkäysten yhteydessä. Yllä olevien Merkle-Damgor-algoritmiin tehtyjen muutosten jälkeen törmäysten löytämisen monimutkaisuus ei ole muuttunut jokaiselle lohkolle, mutta koska satunnainen sekoitettu arvo on ilmaantunut, hyökkääjä ei voi esivalita näiden törmäysten variantteja tietämättä satunnaisarvoa. Laskelmat menevät verkkoon [4] .

Harding attack

Kovettava hyökkäys perustuu siihen, että hyökkääjä yrittää löytää annetulle etuliitteelle sellaisen loppuliitteen, joka antaa halutun hajautusarvon.

  1. Aluksi puu rakennetaan erilaisista sisäisistä arvoista, etsitään sanomia Mj, jotka johtavat törmäyksiin näiden tilojen välillä. Eli puun solmuissa on erilaisia ​​arvoja ja reunoissa arvoja .
  2. Rakennamme törmäyksiä uusiin saatuihin arvoihin (puun edelliseltä tasolta), kunnes saavutamme lopullisen arvon .
  3. Hyökkääjä saa sitten tietoa etuliitteestä.
  4. Saatuaan nämä tiedot se yrittää löytää linkitysviestin tämän etuliiteen ja halutun päätteen välillä. Sidossanoman on täytettävä ehto, että siitä tuleva supistumisfunktion arvo on yhtä suuri kuin jokin puun ensimmäisen tason sisäisistä arvoista. Lisäksi jälkiliite rakennetaan tavallisella kulkulla puun läpi (koska sen reunat sisältävät jo viestejä, jotka johtavat haluttuun tulokseen). Avainkohta on kyky tehdä alustavia laskelmia; online-tilassa jää vain valita haluttu väliarvo ja .

On todistettu, että on mahdotonta suorittaa kovaa hyökkäyksen ensimmäistä vaihetta (päätöspuun rakentaminen) HAIFAa vastaan ​​ennen kuin suolan arvo on tiedossa. Toisin sanoen edellä kuvattua raakaa voimaa ei voida enää suorittaa. Hyökkäyksen torjumisen ehto on sekaviestin pituus, jos haluttu hyökkäyksen monimutkaisuus asetetaan tasolle , sen on oltava vähintään merkkiä. Jos tätä sääntöä ei noudateta, jotkut alustavat laskelmat ovat mahdollisia, mikä johtaa algoritmin hakkerointiin. Jos suola-arvo kuitenkin löydettiin, kestää jonkin aikaa löytää oikea paikka viestissä [4] -kentän vuoksi .

Merkle-Damgor- ja HAIFA-algoritmeihin kohdistuvien hyökkäysten monimutkaisuus

Hyökkäystyyppi Ihanteellinen hash-toiminto MD HAIFA

(kiinteä arvo

suola)

HAIFA

(eri suolaarvoilla)

Hyökkäys ensimmäistä prototyyppiä vastaan

( maalit )

Hyökkäys yhtä ensimmäisistä prototyypeistä
Hyökkäys toista prototyyppiä vastaan

( lohkot) [9] [10]

Hyökkäys toista prototyyppiä vastaan

( lohkot, viestit)

Törmäykset
Useita törmäyksiä

(  on törmäysten lukumäärä) [9]

Paimennus [11] [12] - offline-tilassa:

Online:

offline-tilassa:

Online:

offline-tilassa:

Online:

Sovellukset

HAIFA voi kehittäjien mukaan olla perusta monille salausalgoritmeille, koska se on uusi parannettu perusrakenne. On todistettu, että sillä voidaan kehittää satunnaistettuja hajautusfunktioita [13] , wrapped Merkle-Damgard -funktiota ( eng.  Enveloped Merkle-Damgard , RMC [14] [15] , laajapipeline hash [16] .

Laajalti liukuhihnatiivistettä

Wild-pipe hash -konstruktin hankkiminen  HAIFA :lla on melko helppoa; itse algoritmissa monimutkaisuuden lisäämiseksi sisälohkojen pituus tehtiin kaksi kertaa niin suureksi kuin lopullisen lohkon pituus (siis on kaksi pakkausfunktiota ja ). Liukuhihnavedon tiivisteen kaava on mahdollista johtaa suoraan, koska on triviaalia löytää viimeinen lohko HAIFAsta, koska siellä asetetaan nollia [4] .

Kaava muuntamiseen HAIFA:sta laajaksi liukuhihnaksi on:

missä

 — toinen alustusvektori [16] .

Käytetty arvo

HAIFA:n tutkijoiden ehdottamalla menetelmällä on suuri käytännön merkitys sähköisten allekirjoitusalgoritmien toteuttamisessa : bittien ja suolan määrän käyttöönoton myötä etuliitteiden ja päätteiden lisääminen viestiin vaikeutui (laumahyökkäys), ja siksi korvaa allekirjoituksen viestit [8] .

Muistiinpanot

  1. Jean-Philippe Aumasson, Luca Henzen, Willi Meier, Raphael C.-W. Phan. SHA-3-ehdotus BLAKE  //  SHA-3-konferenssi. - 2010 - 16. joulukuuta. - S. 8-15 . Arkistoitu alkuperäisestä 16. huhtikuuta 2016.
  2. Eli Biham, Orr Dunkelman. SHAvite-3 Hash Function  //  Encrypt II. - 2009. - S. 8-17 . Arkistoitu alkuperäisestä 25. joulukuuta 2016.
  3. Eli Biham. Julkaisut . Luettelo kirjailijoiden julkaisuista (vuodesta 1991). Haettu 17. marraskuuta 2016. Arkistoitu alkuperäisestä 31. maaliskuuta 2016.
  4. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Eli Biham, Orr Dunkelman. Iteratiivisten hajautusfunktioiden kehys — HAIFA   // ePrint . - 2007. - S. 6-12 . Arkistoitu alkuperäisestä 17. elokuuta 2016.
  5. ↑ 1 2 Jean-Sebastien Coron, Jevgeni Dodis, Cecile Malinaud, Prashant Puniya. Merkle Damgard Revisited: How to Construct a hash Function (Uusi suunnittelukriteerit hash-funktioille  )  // NIST. - s. 3-6 . Arkistoitu alkuperäisestä 7. marraskuuta 2016.
  6. Gregory Bard. Kiinteän pisteen hyökkäys . Kiinteän pisteen hyökkäyksen selitys . ResearchGate (tammikuu 2009). Haettu 3. marraskuuta 2016. Arkistoitu alkuperäisestä 4. marraskuuta 2016.
  7. Antoine Joux. Multitörmäykset iteroiduissa hash-funktioissa. Sovellus   kaskadirakenteisiin // Iacr . - 2004 - elokuu. Arkistoitu alkuperäisestä 13. toukokuuta 2016.
  8. ↑ 1 2 Orr Dunkelman, Bart Preneel. Paimennushyökkäyksen yleistäminen ketjutettuihin   hajautusskeemoihin // IAIK . - 2007. - S. 6-7 . Arkistoitu alkuperäisestä 4. marraskuuta 2016.
  9. ↑ 1 2 Kelsey J. , Schneier B. Toiset esikuvat n-bittisistä hajautusfunktioista paljon alle 2ⁿ työlle  // Advances in Cryptology – EUROCRYPT 2005 : 24. vuosittainen kansainvälinen salaustekniikoiden teoriaa ja sovelluksia koskeva konferenssi, Tanska, Aarhu 22.-26.5.2005. Proceedings / R. Cramer - Springer Science + Business Media , 2005. - P. 474-490. — 578 s. — ISBN 978-3-540-25910-7 — doi:10.1007/11426639_28
  10. Charles Bouillaguet, Pierre-Alain Fouque. Käytännön hajautusfunktiot Rakenteet, jotka kestävät yleisiä toisen esikuvan hyökkäyksiä syntymäpäivärajan ulkopuolella   // PSL . - 2011. - S. 2 . Arkistoitu alkuperäisestä 30. elokuuta 2017.
  11. Simon R. Blackburn. Paimennushyökkäyksen monimutkaisuudesta ja eräistä siihen liittyvistä hash-toimintoihin kohdistuvista hyökkäyksistä   // ePrint . - 2010. - S. 3 . Arkistoitu alkuperäisestä 26. elokuuta 2016.
  12. Elena Andreeva, Charles Bouillaguet, Orr Dunkelman ja John Kelsey. Herding, Second Preimage ja Trojan Message Attacks Beyond Merkle-Damgard   // NIST . - S. 5, 10, 14 . Arkistoitu alkuperäisestä 21. marraskuuta 2016.
  13. Halevi S. , Krawczyk H. Digitaalisten allekirjoitusten vahvistaminen satunnaistetun hajautustekniikan avulla  // Advances in Cryptology - CRYPTO 2006 : 26th Annual International Cryptology Conference, Santa Barbara, Kalifornia, USA, 20.-24. elokuuta 2006, D Working - Berlins / , C. Heidelberg , New York, NY , Lontoo [jne.] : Springer Science+Business Media , 2006. - s. 41-59. — 622 s. - ( Lecture Notes in Computer Science ; Vol. 4117) - ISBN 978-3-540-37432-9 - ISSN 0302-9743 ; 1611-3349 - doi:10.1007/11818175_3
  14. Itai Dinur. Uusia hyökkäyksiä ketjutus- ja XOR-hajayhdistysohjelmiin  // ePrint. - 2016. Arkistoitu 9. syyskuuta 2016.
  15. Elena Andreeva, Gregory Neven, Bart Preneel, Thomas Shrimpton. Seitsemän ominaisuutta säilyttävä iteroitu hajautus: RMC-rakenne   // ePrint . - 2007. - S. 10-14 . Arkistoitu alkuperäisestä 25. elokuuta 2016.
  16. ↑ 12 Dustin Moody. Fast Wide Pipe Hash välinpitämättömyyden suoja: Syntymäpäivän esteen rikkominen   // ePrint . - 2011. Arkistoitu 6. elokuuta 2016.

Kirjallisuus

Linkit