HPC (rejtjel)

A HPC ( Hasty Pudding Cipher ) egy blokkszimmetrikus kriptográfiai algoritmus, amelyet a híres amerikai kriptológus és matematikus, Richard Schreppel hozott létre 1998 -ban az Arizonai Állami Egyetemről . A kriptoalgoritmus nevének első két szava "lisztes puding " -nak fordítható . A HPC nyilvánvalóan a rengeteg „ravasz” numerikus transzformáció miatt kapott ilyen furcsa nevet, ami jelentősen megnehezíti az elemzést .

Általános szerkezet

A HPC a Feistel cellán alapul, és van egy érdekes tulajdonsága - mind a titkosított blokk, mind a titkosítási kulcs méretét semmi sem korlátozza. Valójában a HPC algoritmus öt különböző (de egymáshoz kapcsolódó) al-algoritmusból áll, amelyek mindegyike különböző hosszúságú blokkok titkosítására szolgál:

Név Blokkméret bitekben
HPC Tiny 0-35
HPC rövid 36-64
HPC közepes 65-128
HPC hosszú 129-512
HPC kiterjesztett 513 és több

A HPC-Medium kör felépítése [1] [2]

A titkosítás 8 körben történik. Egy titkosított 128 bites blokkot két 64 bites regiszterbe írnak, és ezek után rengeteg különböző matematikai műveletet hajtanak végre rajtuk:

Kijelölés Művelet
  modulo 2 kiegészítés
modulo kiegészítés
modulo kivonás
balra forgatás n bittel
forgatás jobbra n bittel
egy 64 bites blokk alacsony bájtjának nullázása
bitenkénti logikai "és"

Ezenkívül néhány állandó is részt vesz a körben :

A 8 átalakítási kör befejezése után további 2 műveletet hajtanak végre:

A visszafejtés az inverz műveletek fordított sorrendben történő végrehajtásával történik.

Kulcsbővítési eljárás

A kulcsbővítési eljárás feladata egy kiterjesztett kulcs létrehozása , amely egy 256 64 bites szóból álló tömb . Nyilvánvaló, hogy mindegyik albalgoritmusnak saját eljárással kell rendelkeznie. A kiterjesztett kulcstömbök egyikének ismerete nem teszi lehetővé sem a többi tömb, sem a titkosítási kulcs kiszámítását . Rögzített méretű titkosított blokkok esetén azonban elegendő egyszer egy kiterjesztett kulcsot generálni ehhez az algoritmushoz.

1. szakasz: Inicializálás

A kulcs fennmaradó 253 szava a következőképpen inicializálódik:

2. szakasz: Kiegészítés

A titkosítási kulcs és az inicializált kiterjesztett kulcstömb bitenkénti modulo 2 hozzáadása történik, de legfeljebb 128 szó.

3. szakasz: Keverés

Megtörténik a kiterjesztett kulcs adatkeverési funkciója , amely biztosítja, hogy a kulcs minden bitje hatással legyen a kiterjesztett kulcs minden bitjére :

1. lépés

A regiszterek inicializálása folyamatban van :

2. lépés

A kiterjesztett kulcs minden szavára az ábrán látható műveletet hajtjuk végre. A hatás fokozása érdekében az algoritmus szerzője 3 keverési kört javasol.

4. szakasz:

Ha a kulcs mérete meghaladja a 128 64 bites szót, akkor a 2. és 3. lépés minden 128 szavas blokknál megismétlődik, így a kulcsok összetettségi sorrendben történő keverésének eljárása megközelítőleg hasonló magához a titkosítási eljáráshoz .

Kiegészítő kulcs

Célja a titkosítási eredmény módosítása ugyanazokkal a bemeneti blokkokkal és kulcsokkal . A kiegészítő kulcs lehet titkos, ami növeli a kulcsinformációk tényleges mennyiségét, de egy korlátlan kulcshosszúságú algoritmusban ez a lehetőség szükségtelen lehet. Ilyen esetekben egyszerűen visszaállíthatja a kiegészítő kulcsot .

Előnyök és hátrányok

  1. A HPC algoritmus egy titkosítási köre nagyon sok elemi műveletből áll. Összehasonlítva például a GOST 28147-89 hazai algoritmussal , amely mindössze 4 elemi műveletből áll, a HPC rendkívül összetettnek és nehézkesnek tűnik. Mivel azonban minden műveletet 64 bites szavakon hajtanak végre, a HPC meglepően nagy sebességet mutatott 64 bites platformokon. Az AES titkosítási szabványok versenyén a 128 bites blokkok titkosítási sebességét tekintve a HPC a DFC algoritmus után a második volt , és a HPC 2-3-szor gyorsabban titkosította az 512 és 1024 bites blokkokat, mint az összes versenytársa.
  2. Az algoritmus nyilvánvaló hátrányai a bonyolultságon túlmenően a titkosítási és keverési folyamatok párhuzamosításának lehetetlensége, valamint az algoritmus által a nem felejtő és a véletlen elérésű memóriával szemben támasztott óriási követelmények, ami meglehetősen megnehezíti a használatát. intelligens kártyákban .
  3. Az algoritmus nem jutott el az AES második szakaszába . A szerző cikkében [4] az AES szakértőit ​​szidta , mert úgy vélte, hogy a versenyben rosszul lettek felállítva a prioritások. Richard Schreppel szerint a 64 bites platformokra adaptált algoritmusokat kell világszabványnak választani , hiszen náluk van a jövő. Ezenkívül a HPC szerzője azzal érvelt, hogy lehetetlen olyan algoritmust kifejleszteni, amely egyformán jól működik mind a nagy teljesítményű többmagos 64 bites szervereken, mind a gyenge és olcsó 8 bites intelligens kártyákon . Ez a pozíció azonban nem befolyásolta a verseny eredményét.

Kriptanalízis

Sebezhetőségek

David Wagner sebezhetőséget HPC titkosításban [7] később Carl D'Halluin, Gert Bijnens, Bart Presnel és Vincent Rayman publikált egy tanulmányt [8] , amely ezt megerősítette. Kiderült, hogy az algoritmus körülbelül minden 256. kulcsa 230 egyenértékű kulcsot tartalmaz . Ezt a hiányosságot azonban a szerző még a verseny első fordulójának eredményének összesítése előtt azonnal kijavította.

Attack "Chosen Spice"

Az ilyen típusú támadások során a támadó, aki hozzáfér a nyílt szöveg és a titkosított szöveg párjaihoz, a "Spice" kiegészítő kulcs tömbjének manipulálásával figyelheti, hogyan változik a nyílt szöveg vagy a titkosított szöveg a következő titkosítások során . A szerző szerint azonban ilyen típusú támadásokat még nem figyeltek meg, és az ezen a területen végzett munka a kriptoanalitikus közösség erőfeszítéseit igényli. [2]

Jegyzetek

  1. Panasenko S.P. Titkosítási algoritmusok. Különleges kézikönyv - Szentpétervár. : BHV-SPb , 2009. - 576 p. — ISBN 978-5-9775-0319-8
  2. 1 2 Richard Schroeppel, "Hasty Pudding Cipher Specification", 1999. május (hivatkozás nem érhető el) . Letöltve: 2010. október 31. Az eredetiből archiválva : 2011. július 17.. 
  3. és azonos formájúak, de általában véve ezek különböző számok, mivel az aktuális értékétől függenek .
  4. Rich Schroeppel, Puddingmeister, "The Hasty Pudding Tipher: One Year Later", 1999. június 12. (a hivatkozás nem elérhető) . Letöltve: 2010. október 31. Az eredetiből archiválva : 2021. november 30. 
  5. "KOMMUNIKÁCIÓS ÉS TÁVKÖZLÉSI BIZTONSÁGI RENDSZEREK", 1999 . Hozzáférés dátuma: 2010. október 30. Az eredetiből archiválva : 2011. július 3.
  6. Rich Schroeppel, Hilarie Orman, "An Overview of the Hasty Pudding Cipher", 1998. július (hivatkozás nem érhető el) . Letöltve: 2010. október 31. Az eredetiből archiválva : 2021. november 30. 
  7. Richard Schroeppel, "Tweaking the Hasty Pudding Cipher" 1999. május 14. (hivatkozás nem érhető el) . Letöltve: 2010. október 31. Az eredetiből archiválva : 2021. november 30. 
  8. "A HPC egyenértékű kulcsai", 1999