Panama (hash-funktio)

Panama [1]  on kryptografinen primitiivi, jota voidaan käyttää joko kryptografisena hash-funktiona tai virtasalauksena. Joan Dymen ja Craig Klep kehittivät sen vuonna 1998 parantamaan ohjelmistojen tehokkuutta 32-bittisille arkkitehtuureille. Se on yksi Keccak- hajautusalgoritmin edeltäjistä, josta tuli US National Institute of Standards and Technology -instituutin [2] kryptografisten primitiivien kilpailun voittaja . Luottaa voimakkaasti StepRightUp-suoratoiston hash-moduuliin. [3]

Ominaisuudet

Kehittäjien mukaan "Panamalla" oli kehityshetkellä korkea turvallisuustaso, mutta tämä saavutettiin valtavan laskentakuorman kustannuksella. Siksi, kuten kävi ilmi, "Panama" hash-funktiona osoittautui vähemmän sopivaksi viestien hajauttamiseen kuin sen kilpailijat. Jos puhumme "Panamasta" stream-salauksena, niin pitkä alustusmenettely osoittautui sen käytön erottuvaksi piirteeksi. Siksi, kun sitä käytetään tehtävissä, jotka vaativat suuria nopeuksia, on välttämätöntä tarjota kaikki olosuhteet, joilla pyritään vähentämään synkronoinnin määrää. [neljä]

Oletettiin, että "Panamaa" käytettäisiin videon salaamiseen tai salauksen purkamiseen päästäkseen joihinkin sovelluksiin, erityisesti "maksutelevisioon". [5] Kehittäjien logiikka oli, että digisovittimet ja digitelevisiot käyttäisivät nopeita prosessoreita, ja Panama ei kuormittaisi näitä prosessoreita liikaa salauksen purkamisen aikana.

Rakenne

"Panama" perustuu äärelliseen tilakoneeseen, joka koostuu kahdesta suuresta lohkosta: 544 tilabitistä ja 8192-bittisestä puskurista, joka toimii palautesiirtorekisterin periaatteella . Takaisinkytkentä varmistaa, että tulobitit käyvät läpi useita iteraatioita tulon jälkeen, mikä puolestaan ​​varmistaa bittittäisen diffuusion. Minun on sanottava, että samanlaista puskuria käytetään SHA-pakkaustoiminnossa. [6] Panaman työobjekti on 32-bittinen sana ja tila koostuu 17 tällaisesta sanasta, kun taas puskurissa on 32 solua, joista jokainen sisältää 8 tällaista sanaa. [7]

Toiminnot

Panama voi päivittää puskurin ja tilat iteroimalla. Ja iteratiiviselle toiminnolle on toteutettu kolme tilaa: "Reset", "Push" ja "Pull". "Push"-tilassa kone vastaanottaa jonkin verran syötettä, mutta ei tulosta mitään. "Pull"-tilassa päinvastoin lähtötiedot muodostetaan, mutta mitään ei oteta syötteeksi. Myös "tyhjä vetoiteraatio" tarkoittaa, että iteroinnin tulos hylätään. "Reset"-tilassa tila ja puskuri nollataan. [kahdeksan]

Tilamuutokselle on ominaista korkea diffuusio ja hajautunut epälineaarisuus. [9] Tämä tarkoittaa, että pieni iteraatioiden määrä riittää hyvän dispersion saavuttamiseen. Tämä tehdään käyttämällä 4 lohkoa, joista jokainen ratkaisee oman tehtävänsä.

Jos pidämme "Panamaa" hash-funktiona, sen toiminnan algoritmi on seuraava. Aluksi hash-funktio hyväksyy kaikki viestilohkot. Tämän jälkeen suoritetaan vielä useita "Push" iteraatioita, jotka mahdollistavat viimeisten vastaanotettujen viestilohkojen sirottamisen puskurin ja tilan sisään. Sen jälkeen suoritetaan viimeinen "Pull" iteraatio, jonka avulla voit saada hash-tuloksen. Suoratoiston salausmenetelmä alustetaan seuraavasti: ensin suoritetaan kaksi "Push"-iteraatiota avaimen ja hajautusparametrin saamiseksi. Sen jälkeen tapahtuu useita "Pull"-iteraatioita avaimen ja parametrin hajauttamiseksi puskurin ja tilojen sisällä. Tämä viimeistelee alustuksen ja Panama on valmis luomaan bittejä lähtösekvenssistä suorittamalla "Pull" iteraatioita. [3]

Kuinka se toimii

Voit määrittää tilan muotoon , ja 17 sanaa, jotka määrittelevät tilat, voidaan nimetä nimellä . Puskuri on merkitty nimellä , sen solun -th - as , ja yksi tämän solun sisällä olevista sanoista - as . Aluksi sekä tila että puskuri täytetään vain nolilla. "Push"-tilassa "Panama" vastaanottaa 8-bittisen sanan tulona, ​​"Pull"-tilassa 8-bittinen sana muodostetaan ulostulona. [7]

Jos määritämme puskurin päivittävän toiminnon nimellä , jos hyväksymme sen , voimme saada seuraavat säännöt puskurin päivittämiseen:

klo , , varten

jossa "Push"-tilassa on syöttölohko ja "Pull"-tilassa se on osa tilaa , eli 8 sen komponentteja, jotka määritellään

varten

Tila päivitetään seuraavan säännön mukaan, joka on 4 eri muunnoksen superpositio:

jossa  on käänteinen lineaarinen muunnos,  on jälleen käänteinen lineaarinen muunnos,  on yhdistelmä sanabittien kiertoa ja sanan sijainnin sekoitusta, ja muunnos  on puskurin ja syöttösanan bittikohtainen lisäys.

В данном случае будет определять сумму операций, где сначала выполняется та, что стоит правее.

Nyt voimme harkita jokaista näistä toiminnoista. määritellään seuraavasti:

varten ,

jossa kaikki indeksit otetaan modulo . Huomaa, että tämän muunnoksen palautuvuus johtuu siitä tosiasiasta, että on koprime kanssa .

voidaan määritellä seuraavasti:

varten ,

jossa kaikki indeksit otetaan modulo .

Jos muunnokselle määritetään, että paikoissa on siirtymä vähiten merkitsevästä bitistä merkittävimpään, niin:

,

ja , ja

Jos muunnos suoritetaan , niin

, varten , varten

"Push"-tilassa on syöttöviesti ja "Pull"-tilassa - .

Ulostulosana "Pull"-tilassa määritellään seuraavasti:

. [yksitoista]

"Panama" hash-funktiona

"Panama" hash-funktiona kartoittaa 256 bitin hash-tuloksen mielivaltaisen pituiseksi viestiksi. [11] Tässä tapauksessa hajautus tapahtuu kahdessa vaiheessa

Voidaan merkitä syöttölohkojen sarjana . Sitten nollahetkellä generoidaan Reset-tila, jonka jälkeen jaksojen aikana syöttölohkot ladataan. Sen jälkeen suoritetaan 32 tyhjää "Pull" iteraatiota. Ja sitten 33. "Pull"-iteraatiossa hajautustulos palautetaan .

Panama-hajautusfunktion kehittämisen päätehtävänä oli löytää "hermeettinen" hash-funktio [11] eli funktio, jolle (jos hash-tulos koostuu bitteistä):

Lisäksi ei ole mahdollista havaita systemaattisia korrelaatioita minkään tulobittien lineaarisen yhdistelmän ja minkään hajautustulosbittien lineaarisen yhdistelmän välillä. [yksitoista]

Törmäysten etsiminen

Tätä hash-toimintoa on hyökätty onnistuneesti kahdesti. Jo vuonna 2001 osoitettiin, että tämä hash-toiminto ei ole kryptografisesti turvallinen, koska toimintojen törmäyksiä löydettiin. Lisäksi Joan Dymen osoitti, että törmäykset on mahdollista löytää jo operaatioita varten, ja luotettavuusparametrien täyttämiseksi on välttämätöntä, että törmäykset paikannetaan ainakin operaatioita varten. [12]

Muistiinpanot

  1. Nopea tiivistys ja suoratoiston salaus Panaman kanssa, kirjoittanut Joan Daemen, Craig Clapp
  2. NIST valitsee Secure Hash Algorithm (SHA-3) -kilpailun voittajan . Käyttöpäivä: 5. marraskuuta 2016. Arkistoitu alkuperäisestä 5. lokakuuta 2012.
  3. 1 2 J. Daemen, "Salaus- ja hash-funktion suunnittelustrategiat, jotka perustuvat lineaariseen ja differentiaaliseen kryptausanalyysiin"
  4. Nopea tiivistys ja suoratoiston salaus Panaman kanssa" Joan Daemen, Craig Clapp
  5. Arkistoitu kopio (linkki ei saatavilla) . Haettu 16. joulukuuta 2016. Arkistoitu alkuperäisestä 15. elokuuta 2011. 
  6. SHA1-versio 1.0 . Haettu 16. joulukuuta 2016. Arkistoitu alkuperäisestä 14. toukokuuta 2017.
  7. 12 Panama . _ Haettu 4. marraskuuta 2016. Arkistoitu alkuperäisestä 26. joulukuuta 2016.
  8. Panaman kryptografinen toiminto | Tohtori Dobbin (linkki ei saatavilla) . Käyttöpäivä: 4. marraskuuta 2016. Arkistoitu alkuperäisestä 23. helmikuuta 2016. 
  9. * Joan Daemen, Craig Clapp "Fast Hashing and Stream Encryption with Panama"
  10. PANAMA koodi | Salausblogi . Haettu 5. marraskuuta 2016. Arkistoitu alkuperäisestä 5. marraskuuta 2016.
  11. 1 2 3 4 "Fast Hashing and Stream Encryption with Panama" Joan Daemen, Craig Clapp
  12. Tuottaa yhteentörmäyksiä Panamaan, välittömästi . Haettu 13. marraskuuta 2016. Arkistoitu alkuperäisestä 10. lokakuuta 2019.

Kirjallisuus

Linkit