Minneshård funktion - Memory-hard function

I kryptografi är en minneshård funktion (MHF) en funktion som kostar betydande mängd minne att utvärdera. Det skiljer sig från en minnesbunden funktion ; den senare ådrar sig kostnader genom att sakta ner beräkningen genom minnesfördröjning. MHF hittar deras användning som en form av bevis på arbete .

Minne svårt mått

Det finns olika sätt att mäta en hårdhets minne. Ett vanligt sett mått är Cumulative Memory Complexity (CMC). I en parallell modell mäter CMC minneshårdheten genom att summera alla ingångarna i varje steg.

Ett annat genomförbart mått är att integrera minne mot fysisk tid.

Ytterligare en åtgärd är minnesbandbredd konsumtionen på en minnesbuss. Denna kategori av funktioner kallas också "bandbredd-hårda funktioner".

Motivering

Det finns en anledning till att MHF: er kostar mycket minne istället för CPU-cykler. Bitcoin använde upprepad utvärdering av SHA-2- funktionen som bevis på arbete, men det visade sig att moderna processorer för allmänna ändamål, dvs. hushålls- processorer , är mycket ineffektiva när de får i uppdrag att beräkna en fast funktion om och om igen. Gruvarbetare antog applikationsspecifika integrerade kretsar (ASIC) och uppnådde 10 ^ 16 hastighet. Även om detta är bra för vad Bitcoin är bra för, vill vi ha en mer "jämlik" hårdhetsåtgärd. Med andra ord vill vi att alla ska vara lika ineffektiva i att beräkna funktionen även om de har en ASIC. För om vissa människor kan utvärdera funktionen effektivt och andra inte, för att göra funktionen relativt svår för genvägarna kommer vi att göra funktionen för svår för en vanlig användare. Om alla är ineffektiva kan alla utvärdera en måttligt hård funktion.

Med tiden har man insett att minneskostnaden förblir ganska lika över hela linjen. Därav MHF.

Varianter

Baserat på deras utvärderingsmönster kan MHF placeras i två läger: databeroende (dMHF) och dataoberoende (iMHF). dMHF är det som du ibland inte vet vilka bitar av information du fortfarande behöver för senare beräkningar, och iMHFs är sådana som det inte finns någon sådan tvetydighet. Exempel på dMHF är scrypt och Argon2d . Exempel på iMHF: er är Argon2i och catena . Många av dessa MHF: er är utvecklade för att användas som lösenordshashfunktioner precis på grund av deras minneshårdhet.

dMHF har det uppenbara problemet att de är benägna att attackera sidokanaler som cache-timing. Människor tenderar mot iMHFs av denna anledning, särskilt för lösenordshashing. Emellertid har iMHF-matematik visat sig ha svagare minneshårdhetsegenskaper än dMHF.

Konstruktion

djupstarkt diagram

För iMHF: er i den parallella slumpmässiga oracle-modellen (pROM) är det ett känt faktum att den kumulativa pebbling-komplexiteten är lägre och övre begränsad av djupets robusthet i en graf.

kryptera

bit-reversering-diagram

Referenser