Panama (hash függvény)

A Panama [1]  egy kriptográfiai primitív, amely kriptográfiai hash függvényként vagy adatfolyam titkosításként is használható. 1998-ban fejlesztette ki Joan Dymen és Craig Klep, hogy javítsa a 32 bites architektúrák szoftverének hatékonyságát. Ez a Keccak kivonatoló algoritmus egyik elődje, amely az US National Institute of Standards and Technology kriptográfiai primitívek versenyének győztese lett [2] . Erősen támaszkodik a StepRightUp streaming hash modulra. [3]

Jellemzők

A fejlesztők szerint a "Panama" a fejlesztés idején magas szintű biztonsággal rendelkezett, de ezt hatalmas számítási terhelés árán érték el. Ezért, mint kiderült, a "Panama" mint hash-függvény kevésbé alkalmas üzenetek kivonatozására, mint riválisai. Ha a "Panamáról" mint adatfolyam titkosításról beszélünk, akkor a hosszú inicializálási eljárás a használatának megkülönböztető jellemzője. Ezért, ha nagy sebességet igénylő feladatokban használja, biztosítani kell minden olyan feltételt, amely a deszinkronizálások számának csökkentésére irányul. [négy]

Feltételezték, hogy a "Panama"-t a videók titkosítására vagy visszafejtésére használják egyes alkalmazások, különösen a "fizetős TV" eléréséhez. [5] A fejlesztők logikája az volt, hogy a set-top boxok és a digitális tévék nagy sebességű processzorokat használnak, és Panama nem terheli túl sokat ezeket a processzorokat a visszafejtés során.

Szerkezet

A "Panama" egy véges állapotú gépen alapszik, amely két nagy blokkból áll: 544 állapotbitből és egy 8192 bites pufferből, amely a visszacsatolásos eltolási regiszter elvén működik . A visszacsatolás biztosítja, hogy a bemeneti bitek a bemenet után több iteráción menjenek keresztül, ami viszont bitenkénti diffúziót biztosít. Azt kell mondanom, hogy hasonló puffert használnak az SHA tömörítési funkcióban. [6] A Panama munkaobjektum egy 32 bites szó, és az állapot 17 ilyen szóból áll, míg a pufferben 32 cella van, amelyek mindegyike 8 ilyen szót tartalmaz. [7]

Műveletek

Panama iterálással frissítheti a puffert és az állapotokat. Az iteratív funkcióhoz pedig három mód van megvalósítva: "Reset", "Push" és "Pull". "Push" módban a gép fogad némi bemenetet, de nem ad ki semmit. A "Pull" módban éppen ellenkezőleg, a kimeneti adatok kialakulnak, de semmi sem kerül bemenetre. Az "üres húzás iteráció" azt is jelenti, hogy az iteráció kimenetét el kell dobni. "Reset" módban az állapot és a puffer nullára áll vissza. [nyolc]

Az állapotváltozást nagy diffúzió és elosztott nemlinearitás jellemzi. [9] Ez azt jelenti, hogy kis számú iteráció elegendő a jó diszperzió eléréséhez. Ez 4 blokk segítségével történik, amelyek mindegyike saját feladatot old meg.

Ha a "Panamát" hash függvénynek tekintjük, akkor működésének algoritmusa a következő. Kezdetben a hash függvény elfogadja az összes üzenetblokkot. Ezt követően több további "Push" iterációt hajtanak végre, amely lehetővé teszi az utolsó fogadott üzenetblokkok szétszórását a pufferben és az állapotban. Ezt követően az utolsó „Pull” iteráció kerül végrehajtásra, amely lehetővé teszi a hash eredményének elérését. A streaming titkosítási séma a következőképpen inicializálódik: először két "push" iteráció megy keresztül a kulcs és a diverzifikációs paraméter megszerzéséhez. Ezt követően számos "Pull" iteráció következik be, hogy a kulcsot és a paramétert szétszórják a pufferben és az állapotokban. Ezzel befejeződik az inicializálás, és Panama készen áll a kimeneti sorozat bitjei létrehozására a "Pull" iterációk végrehajtásával. [3]

Hogyan működik

Az állapotot jelölheti , és az állapotokat meghatározó 17 szót . A puffer jelölése , cellájának -edik - as , és az ebben a cellában található szavak egyike - as . Kezdetben az állapot és a puffer is csak nullákkal van feltöltve. "Push" módban a "Panama" egy 8 bites szót kap bemenetként, "Pull" módban pedig egy 8 bites szó jön létre kimenetként. [7]

Ha a puffert frissítő függvényt nek jelöljük ki , akkor ha ezt elfogadjuk , akkor a következő szabályokat kaphatjuk a puffer frissítésére:

, _ , számára

ahol "Push" módban van egy bemeneti blokk , "Pull" módban pedig az állapot része , azaz 8 komponense, definiálva:

számára

Az állapot frissítése a következő szabály szerint történik, amely 4 különböző transzformáció szuperpozíciója:

ahol  egy inverz lineáris transzformáció  , ismét egy inverz lineáris transzformáció,  a szóbitforgatás és a szópozíció-keverés kombinációja, és a transzformáció  a puffer és a bemeneti szó bitenkénti összeadása.

Ebben az esetben a műveletek összegét határozza meg, ahol először a jobb oldali kerül végrehajtásra.

Most megvizsgálhatjuk ezeket a műveleteket. a következőképpen van meghatározva:

számára ,

ahol az összes indexet modulo . Vegye figyelembe, hogy ennek a transzformációnak a visszafordíthatósága abból következik, hogy a koprím -val .

a következőképpen határozható meg:

számára ,

ahol az összes indexet modulo .

Ha az átalakításnál megállapítást nyer, hogy a legkisebb jelentőségű bittől a legjelentősebbig terjedő pozíciókban eltolás van , akkor:

,

és , és

Ha a transzformációhoz az kerül végrehajtásra , akkor

, számára , számára

"Push" módban a beviteli üzenet , "Pull" módban pedig - .

"Pull" módban a kimeneti szó meghatározása a következő:

. [tizenegy]

"Panama" hash függvényként

A "Panama" hash függvényként a 256 bites hash eredményt tetszőleges hosszúságú üzenetre képezi le. [11] Ebben az esetben a kivonatolás 2 szakaszban történik

Bemeneti blokkok sorozataként jelölhető . Ezután a nulla pillanatban a Reset mód generálódik, majd a ciklusok során betöltődnek a bemeneti blokkok. Ezt követően 32 üres "Pull" iteráció kerül végrehajtásra. Ezután a 33. "Pull" iterációnál a hash eredményt a rendszer visszaadja .

A Panama hash függvény fejlesztésének fő feladata egy "hermetikus" hash függvény megtalálása volt [11] , vagyis egy olyan függvény, amelyhez (ha a hash eredmény bitekből áll):

Ezenkívül nem lehet kimutatni szisztematikus korrelációt a bemeneti bitek lineáris kombinációja és a hash eredménybitek bármely lineáris kombinációja között. [tizenegy]

Ütközések keresése

Ezt a hash funkciót kétszer sikeresen megtámadták. Már 2001-ben bebizonyosodott, hogy ez a hash-függvény kriptográfiailag nem biztonságos, mivel a műveletekhez ütközéseket találtak. Sőt, Joan Dymen megmutatta, hogy már a műveletekhez is lehet ütközéseket találni, és a megbízhatósági paraméterek kielégítéséhez legalább a műveletekhez szükséges az ütközések lokalizálása. [12]

Jegyzetek

  1. Gyors kivonatolás és adatfolyam-titkosítás Panamával, Joan Daemen, Craig Clapp
  2. A NIST kiválasztja a Secure Hash Algorithm (SHA-3) verseny győztesét . Hozzáférés dátuma: 2016. november 5. Az eredetiből archiválva : 2012. október 5.
  3. 1 2 J. Daemen, "Lineáris és differenciális kriptoanalízisen alapuló titkosítási és hash függvény tervezési stratégiák"
  4. Gyors kivonatolás és adatfolyam-titkosítás Panamával" Joan Daemen, Craig Clapp
  5. Archivált másolat (a hivatkozás nem elérhető) . Letöltve: 2016. december 16. Az eredetiből archiválva : 2011. augusztus 15.. 
  6. SHA1 1.0 verzió . Letöltve: 2016. december 16. Az eredetiből archiválva : 2017. május 14.
  7. Panama 12. _ _ Letöltve: 2016. november 4. Az eredetiből archiválva : 2016. december 26..
  8. A panamai kriptográfiai funkció | Dr Dobb's (nem elérhető link) . Hozzáférés időpontja: 2016. november 4. Az eredetiből archiválva : 2016. február 23. 
  9. * "Gyors kivonatolás és adatfolyam-titkosítás Panamával" Joan Daemen, Craig Clapp
  10. PANAMA kód | Titkosítási Blog . Letöltve: 2016. november 5. Az eredetiből archiválva : 2016. november 5..
  11. 1 2 3 4 "Gyors kivonatolás és adatfolyam-titkosítás Panamával" Joan Daemen, Craig Clapp
  12. Ütközések létrehozása Panamában, azonnal . Letöltve: 2016. november 13. Az eredetiből archiválva : 2019. október 10.

Irodalom

Linkek