kryptera
Scrypt är en lösenord -baserade nyckel härledning funktion ( lösenordsbaserade nyckel härledning funktion ), som publicerades 2010 av Colin Percival. Utvecklingen av scrypt motiverades av sårbarheten hos tidigare nyckelavledningsfunktioner som bcrypt och PBKDF2 mot brute force och ordboksattacker med specialiserad hårdvara.
bakgrund
Lösenord i sig är inte lämpliga som kryptografiska nycklar. Lösenordets enkla hashvärde förhindrar att lösenordet beräknas om, men skyddar inte mot ordlistaattacker , brute force-metoden och regnbågstabeller . Lösenordsbaserade nyckelavledningsfunktioner innehåller också ett slumpmässigt tal, saltet , i nyckelberäkningen och ökar specifikt kostnaden för att beräkna en nyckel för att göra det svårare att "prova" många alternativ.
Till skillnad från andra nyckelderiveringsfunktioner, mäter Scrypt inte bara datoransträngningen enligt den rena beräkningstiden. Istället ökar scrypt också specifikt kostnaden för hårdvara som är lämplig för att bryta ett lösenord på en viss tid ( dollarsekunder ). Detta paradigmskifte beror på att utvecklingen av specialiserad hårdvara som FPGA och grafikprocessorer dramatiskt kan förkorta den verkliga beräkningstiden för att bryta ett lösenord ( anpassad hårdvaruattack ). Att sakta ner beräkningen på grund av antalet hashoperationer (iterationer) avsedda i nyckelavledningsfunktionerna bcrypt och PBKDF2 kan kompenseras för genom att parallellisera attacken med hjälp av speciell hårdvara. I princip kan sådan parallell programmering inte förhindras. Scrypt utnyttjar det faktum att huvudminnet är relativt dyrt, begär en vektor med (som standard) 16 MB och ökar därmed kostnaden för att använda specialiserad hårdvara. HEKS-nyckelavledningsfunktionen baserades på denna idé, men kompletteras med sekvensering i scrypt .
historia
Scrypt utvecklades av Colin Percival för Tarsnap och presenterades vid BSD Can-konferensen i maj 2009 . 2012 publicerade IETF ett utkast till scrypt som ett internetutkast. I augusti 2015 släppte Colin Percival version scrypt-1.2.0.
Scrypt deltog inte i Password Hashing Competition , en urvalsprocess för en ny lösenordshashprocess, även om Colin Percival var inblandad som expert. Men med Yescrypt av Alexander Peslyak deltog en algoritm som med tillägget "YESCRYPT-WORM" också kan producera ursprungliga krypteringshashvärden.
beskrivning
Scrypt anses vara sekventiellt minnehårt (sekventiellt minneintensivt). I ROMix funktionen, är en vektor fylld med värden från Salsa20 / 8-funktion, en version av Salsa20 strömchiffer , som har förkortats till åtta omgångar . Detta nås sedan på ett pseudoslumpmässigt sätt, vilket säkerställer att vektorn måste hållas permanent i minnet - eller att beräkningstiden ökas extremt. Scrypt tillåter parametreringen av CPU-kostnaderna (beräkningstid) och lagringskostnaderna och har också en parallelliseringsparameter.
Parametrar:
N: CPU och minnesfaktor
r: minnesfaktor
p: parallellfaktor
Colin Percival rekommenderas i publikationen 2010 (N = 16384, r = 8, p = 1) för normala krav och (N = 1048576, r = 8, p = 1) för höga krav. Parametrarna r och p var avsedda att anpassas till den tekniska utvecklingen över tiden.
Använd i kryptovalutor
Förutom lösenordsbaserad nyckeldivering används Scrypt också för så kallad gruvdrift i kryptovalutor som Litecoin och Dogecoin . Tillhandahållandet av datorkraft för dessa valutor och därmed deltagandet i transaktionsavgifterna bör ursprungligen fördelas så jämnt som möjligt mellan deltagarna. Men genom användning av specialhårdvara (ASIC), till exempel i kryptovalutan Bitcoin , har beräkningskraften blivit beroende av ekonomisk styrka och därmed centralisering. Valutor som Litecoin ville förhindra detta och utnyttjade det faktum att Scrypt är svårt att implementera i ASIC på grund av de höga minneskraven . Litecoin använder dock Scrypt med lägre parametrar (N = 1024, r = 1, p = 1) än vad Colin Percival rekommenderar och därför med betydligt lägre minneskrav. Under tiden finns ASICs också på marknaden för Scrypt-versionen som används i dessa kryptovalutor.
Kryptovalutan Vertcoin introducerade sedan Scrypt med en variabel N-Factor ( Adaptive N-Factor ), en parameter som anpassar minneskravet till utvecklingen och är avsedd att förhindra implementering i ASIC. Under tiden hade Vertcoin ersatt Scrypt med Lyra2- funktionen , som liksom Scrypt har parametrar för minneskrav och datorkraft. Till skillnad från Scrypt är dessa parametrar inte länkade till varandra med Lyra2. Under tiden använder Vertcoin dock sin egen algoritm (Verthash). Lösenordshashfunktionen Lyra2 är kandidat i lösenordshashtävlingen .
Många mindre kryptovalutor som YaCoin använder Scrypt-Jane , en flexibel implementering av Scrypt (andra hashfunktioner som Keccak och ChaCha20 / 8), vars minneskrav också ökar med tiden.
säkerhet
Scrypt är relativt nytt och oproverat, men anses vara ett alternativ till bcrypt och PBKDF2 . Eftersom säkerheten för lösenordsbaserade nyckelavledningsfunktioner huvudsakligen mäts av deras skydd mot ordlistaattacker och brute force-metoden , motiverar den uppenbara sårbarheten hos andra funktioner användningen av relativt nya funktioner som kryptering.
2013 teoretisk sårbarhet var av kryptering mot en sidokanalattack av cachetiming publicerad. De lösenordsberoende olika åtkomsttiderna till minnesvektorn i efterföljande iterationer av scrypt kan användas för en lösenordssil under vissa omständigheter ( cache-time attack ). Författarna påpekar att en sådan attack mot scrypt för närvarande endast är teoretiskt möjlig.
År 2014 jämförde Markus Dürmuth och Thorsten Kranz från Ruhr University Bochum lösenordshashmetoderna bcrypt och Scrypt när det gäller attacker med specialiserad hårdvara. Scrypt är därför mer sårbart än bcrypt, trots högre minneskrav för låga parametrar, eftersom Scrypt effektivt kan köras av GPU: er med låga parametrar . En sårbarhet för Scrypt med låga parametrar av GPU: er hittades också någon annanstans.
webb-länkar
- scrypt sida av Tarsnap (engelska)
- Internet-Draft IETF för att kryptera (engelska)
- coinwiki.org: Lista över alla mynt. Lista över kryptovalutor. Algoritmerna för gruvdrift listas också.
Individuella bevis
- ↑ Markus Dürmuth, Tim Güneysu, Markus Kasper, Christof Paar, Tolga Yalcin, Ralf Zimmermann: Utvärdering av standardiserade lösenordsbaserade nyckelderivationer mot parallella bearbetningsplattformar. I: Datorsäkerhet - ESORICS 2012, Springer-Verlag, Berlin Heidelberg 2012, ISBN 978-3-642-33166-4 , s. 716-733.
- ^ Arnold Reinhold: HEKS: En familj av nyckelsträckande algoritmer .
- ↑ Föreläsning om Scrypt vid BSDCan: scrypt - En ny nyckelavledningsfunktion (engelska)
- ↑ Tarsnap-meddelande: scrypt 1.2.0 släppt .
- ^ Webbplats för lösenordskonkurrensen: Introduktion. (Engelsk)
- ↑ Presentation av YESCRYPT 1.0.0 på Openwall: yescrypt - modernt KDF- och lösenordshashschema (engelska)
- ↑ Jämförelse mellan litecoin och Bitcoin Mining ( Memento av den ursprungliga från 2 juli, 2014 i Internet Archive ) Info: Den arkiv länk infördes automatiskt och har ännu inte kontrollerats. Kontrollera original- och arkivlänken enligt instruktionerna och ta bort detta meddelande. (Engelsk)
- ^ Officiell Litecoins webbplats: Blockera hashingalgoritm. ( Memento av den ursprungliga från 10 aug 2017 i Internet Archive ) Info: Den arkiv länken har satts automatiskt och har ännu inte kontrollerats. Kontrollera original- och arkivlänken enligt instruktionerna och ta bort detta meddelande. (Engelsk)
- Magazine Bitcoin magazine: ASICS för Litecoin. Här kommer de. (Engelsk)
- ↑ David Muller: Vad är Vertcoin? ( Memento av den ursprungliga från December 8, 2015 i Internet Archive ) Info: Den arkiv länk infördes automatiskt och har ännu inte kontrollerats. Kontrollera original- och arkivlänken enligt instruktionerna och ta bort detta meddelande. (pdf) (engelska)
- ^ Coin-Brief-Announcement: Vertcoin (VTC) planerar algoritmändring till Lyra2. (Engelsk)
- ^ Lösenordskonkurrens: Kandidater. ( Minne av den 11 augusti 2015, internetarkiv ) (engelska)
- ↑ Om YACoin. (Engelsk)
- ↑ Scrypt-Jane på GitHub: En flexibel implementering av Colin Percivals scrypt (engelska)
- ↑ Introduktion av Password Hashing-tävlingen (engelska)
- For Christian Forler, Stefan Lucks, Jacob Wenzel: Catena: A Memory-Consuming Password Scrambler . Cryptology ePrint Archive: Rapport 2013/525.
- ↑ Markus Dürmuth och Thorsten Kranz: Om lösenordsgissning med GPU: er och FPGA: er. (pdf)
- ↑ E-postlista för Openwall: använder scrypt för användarautentisering.
- ↑ Anthony Ferrara: Varför rekommenderar jag inte Scrypt. ircmaxells blogg