scrypt
Főnév
scrypt (tsz. scrypts)
- (informatika) A kriptográfiában a scrypt (ejtsd : "ess crypt" [ 1 ] ) egy jelszó alapú kulcs-levezetési funkció, amelyet Colin Percival hozott létre 2009 márciusában, eredetileg a Tarsnap online biztonsági mentési szolgáltatásához. [ 2 ] [ 3 ] Az algoritmust kifejezetten arra tervezték, hogy költségessé tegye a nagyszabású egyedi hardvertámadások végrehajtását , mivel nagy mennyiségű memóriát igényel. 2016-ban a titkosítási algoritmust az IETF tette közzé RFC 7914 néven. [ 4 ] A scrypt egyszerűsített változatát számos kriptovaluta használja a munka ellenőrzésére , először egy névtelen programozó, az ArtForz valósította meg Tenebrixben, majd nem sokkal később a Faircoinbrix és a Lite . [ 5 ]
Bevezetés
A jelszó-alapú kulcs-levezetési függvényt (jelszó-alapú KDF) általában számításigényesre tervezték, így viszonylag hosszú időt vesz igénybe (mondjuk több száz ezredmásodperces nagyságrendben). A jogos felhasználóknak csak egyszer kell végrehajtaniuk a funkciót műveletenként (pl. hitelesítés), így a szükséges idő elhanyagolható. Egy brute force támadásnak azonban valószínűleg milliárdszor kell végrehajtania a műveletet, ekkor az időigény jelentőssé és ideális esetben megfizethetetlenné válik.
A korábbi jelszó alapú KDF-ek (például az RSA Laboratories népszerű PBKDF2- je ) viszonylag alacsony erőforrásigényűek, vagyis nem igényelnek bonyolult hardvert vagy túl sok memóriát a működésükhöz. Ezért könnyen és olcsón implementálhatók hardveren (például ASIC- en vagy akár FPGA- n). Ez lehetővé teszi egy elegendő erőforrással rendelkező támadó számára, hogy nagyszabású párhuzamos támadást indítson az algoritmus több száz vagy akár több ezer implementációjának hardverben történő kiépítésével, és mindegyik a kulcstér más-más részhalmazában keressen. Ez elosztja a brute-force támadás végrehajtásához szükséges időt a rendelkezésre álló megvalósítások számával, és nagy valószínűséggel lecsökkenti azt egy ésszerű időkeretre.
A scrypt funkciót úgy tervezték, hogy megakadályozza az ilyen próbálkozásokat azáltal, hogy megnöveli az algoritmus erőforrásigényét. Pontosabban, az algoritmust úgy tervezték, hogy a többi jelszó alapú KDF-hez képest nagy mennyiségű memóriát használjon [ 6 ] , ami sokkal drágábbá teszi a hardveres implementáció méretét és költségeit, és ezáltal korlátozza a támadó által felhasználható párhuzamosság mértékét, adott mennyiségű pénzügyi erőforrás mellett.