Vai al contenuto

Lyra2

Da BitcoinWiki.
Diagramma della matrice di memoria di Lyra2
Diagramma della matrice di memoria di Lyra2.

Lyra2 è uno schema di hashing delle password basato sulla memoria che può anche derivare materiale di codifica crittografico. È stato progettato da Marcos A. Simplicio Jr., Leonardo C. Almeida, Ewerton R. Andrade, Paulo C. F. dos Santos e Paulo S. L. M. Barreto presso l'Università di San Paolo.[1]

Lyra2 è stata finalista al concorso Password Hashing 2013-2015 e ha ricevuto un riconoscimento speciale. Argon2, non Lyra2, è stato selezionato come vincitore del concorso.[2]

Scopo

Le password selezionate dall'uomo solitamente contengono meno entropia delle chiavi crittografiche. Se viene ottenuto un database di password o un file crittografato, un utente malintenzionato può verificare le ipotesi offline. Uno schema di hashing della password aumenta il costo di ogni ipotesi richiedendo calcoli configurabili e, per un progetto che richiede molta memoria, memoria sostanziale.

Lyra2 appartiene a questo ramo più ampio basato su password Key derivation function famiglia. Accetta password, sale, lunghezza di output desiderata e parametri di costo. Il suo output può essere archiviato come verificatore di password o utilizzato come materiale per la codifica, a seconda dell'applicazione.[1] Un salt separa i record che utilizzano la stessa password; normalmente non è segreto.

Progetto

Lyra2 è costruito da un sistema crittografico spugna, una costruzione con uno stato interno che assorbe l'input e successivamente emette output pseudocasuali. L'algoritmo memorizza i valori intermedi in una matrice di memoria e li rivisita durante l'elaborazione. Scartare parti di quella matrice per risparmiare memoria costringe un valutatore a ricalcolare i valori, il che ha lo scopo di rendere costosi i compromessi tempo-memoria.[1]

La specifica divide la valutazione in tre grandi fasi:

  1. Bootstrap e configurazione assorbire la password, il sale e i parametri, quindi inizializzare la matrice di memoria.
  2. Vagabondaggio rivisita e modifica le righe della matrice in base ai valori derivati ​​dall'evoluzione dello stato della spugna. Il parametro tempo-costo controlla il lavoro ripetuto.
  3. Incartare assorbe un valore di matrice finale e spreme l'output richiesto dalla spugna.

I principali parametri di costo sono il numero di passaggi vaganti (T) e le dimensioni della matrice di memoria: righe (R) e colonne (C). Con un bitrate di spugna B, la matrice occupa b×R×C bit. Fanno parte delle specifiche anche la lunghezza di output e le impostazioni di permutazione, bitrate, rotazione e riduzione del round sottostante della spugna.[1] Questa configurabilità consente all'implementatore di aumentare il tempo di elaborazione senza necessariamente aumentare la memoria o di selezionare una matrice più grande per una piattaforma con più memoria.

Il documento descrive due estensioni denominate. Lyra2-δ cambia la proporzione di celle della matrice rivisitate durante il vagabondaggio per regolare l'uso della larghezza di banda della memoria. Lyra2p esegue più istanze Sponge sincronizzate su porzioni di una matrice condivisa in modo che una piattaforma multicore legittima possa aumentare l'utilizzo della memoria o funzionare senza lo stesso aumento di latenza.[1] Si tratta di varianti parametrizzate del disegno di ricerca, non di standard indipendenti.

Ragione di sicurezza

Gli autori di Lyra2 hanno progettato il cambiamento del modello di accesso alla memoria e i ripetuti aggiornamenti delle righe per penalizzare gli aggressori che conservano meno memoria rispetto alla quantità configurata. Potrebbe essere necessario ricostruire una riga scartata dallo stato precedente e quindi ricostruirla nuovamente dopo gli aggiornamenti successivi, quindi la riduzione del picco di memoria introduce lavoro aggiuntivo. Gli autori hanno anche cercato di bilanciare la resistenza all'osservazione del canale laterale con la resistenza alle implementazioni che utilizzano storage poco costosi e più lenti e di aumentare il costo delle implementazioni FPGA o ASIC dedicate.[1] Questi sono gli obiettivi di progettazione e le analisi del documento; non garantiscono che ogni implementazione o set di parametri sia sicuro.

La fase di installazione utilizza un modello di accesso prevedibile, mentre la fase di spostamento seleziona le righe dallo stato interno in evoluzione. La distinzione riflette un compromesso: l’accesso dipendente dai dati può aumentare la resistenza ad alcune strategie con poca memoria, ma può rivelare informazioni attraverso cache o altri canali laterali. Le alternative e le varianti del documento consentono agli implementatori di scegliere diversi punti in tale compromesso, il che significa che la versione e la configurazione esatte fanno parte di qualsiasi richiesta di sicurezza.[1]

L'hashing delle password rimane limitato dalla qualità della password e dalle scelte operative. Un'impostazione di memoria o di tempo insufficiente riduce il costo dell'attacco, mentre un'impostazione eccessiva può consentire la negazione del servizio. Le implementazioni necessitano inoltre di sali univoci, archiviazione di parametri autenticati, confronti costanti nel tempo ove appropriato, dimensioni di input limitate e un piano di migrazione per impostazioni più efficaci.

Concorso di hashing delle password

Il concorso Password Hashing ha invitato proposte pubbliche per un moderno standard di hashing delle password. Lyra2 è avanzato alla fase finale ed è stato uno dei quattro programmi, insieme a Catena, Makwa e yescrypt, a ricevere un riconoscimento speciale. La giuria ha selezionato Argon2 come vincitore assoluto nel luglio 2015.[2]

Un riconoscimento speciale ha reso Lyra2 un progetto di ricerca degno di nota, non una raccomandazione di implementazione universale. Il protocollo attuale o la guida della piattaforma possono specificare un'altra funzione. Ad esempio, RFC 9106 fornisce una specifica orientata all'implementatore e profili consigliati per Argon2id.[3]

Utilizzare come prova del lavoro

Costruzioni modificate che portano il nome Lyra2 sono state incluse negli algoritmi di prova di lavoro concatenati utilizzati da alcune criptovalute, tra cui Lyra2RE e Lyra2REv2. Questi algoritmi di mining combinano più funzioni e possono modificare i parametri o il ruolo di Lyra2. Il loro utilizzo non deve essere considerato come una prova che lo schema di hashing della password originale sia adatto a ogni applicazione di mining o di archiviazione delle password.

Stato di attuazione

Gli autori hanno rilasciato materiale di riferimento e codice con la presentazione del concorso. Le applicazioni devono identificare la versione e i parametri esatti che implementano. Copiare l'algoritmo dallo pseudocodice secondario, omettere la convalida o selezionare impostazioni obsolete può interrompere l'interoperabilità e invalidare le ipotesi di costo previste.

Riferimenti

Collegamenti esterni