Funzioni unidirezionali nella sicurezza delle criptovalute

Una funzione unidirezionale è una funzione matematica che è computazionalmente facile da eseguire in una direzione, ma computazionalmente impossibile da invertire: ciò significa che, dato l'output, è praticamente impossibile determinare l'input originale. In crittografia e nella tecnologia blockchain, le funzioni unidirezionali sono il primitivo matematico fondamentale che permette l'intera architettura di sicurezza delle criptovalute.

Le due applicazioni più critiche delle funzioni unidirezionali nella blockchain sono le funzioni hash crittografiche (come SHA-256, utilizzata nel mining di Bitcoin e nella generazione di indirizzi) e la moltiplicazione a curva ellittica utilizzata nella crittografia a chiave pubblica (dove una chiave privata genera facilmente una chiave pubblica, ma la chiave pubblica non può essere utilizzata per derivare la chiave privata).

Una funzione con botola è un caso speciale che può essere invertito in modo efficiente con informazioni segrete; le normali funzioni unidirezionali non necessitano di una botola.

La sicurezza di Bitcoin, Ethereum e praticamente di ogni criptovaluta si basa sul presupposto che alcune operazioni matematiche siano effettivamente unidirezionali: ovvero che non esista un algoritmo efficiente per invertire l'hashing SHA-256 o per risolvere il problema del logaritmo discreto su curve ellittiche. Una scoperta in tal senso potrebbe minacciare i sistemi che si basano su tale primitiva.

Gli algoritmi quantistici influenzano in modo diverso le funzioni hash e la crittografia a curve ellittiche, quindi i loro rischi non dovrebbero essere considerati identici. È interessante notare che la dimostrazione formale dell'esistenza di funzioni veramente unidirezionali è uno dei problemi aperti più importanti dell'informatica teorica (strettamente correlato al problema P vs. NP).

In pratica, ci affidiamo a funzioni che si ritiene fortemente unidirezionali, sulla base di decenni di tentativi falliti di violarle, sebbene non esista una prova matematica assoluta della loro unidirezionalità.

Origine e storia

AnnoEvent
1874William Stanley Jevons descrive il concetto di funzioni unidirezionali (fattorizzazione di grandi numeri).
1976Diffie e Hellman formalizzano le funzioni unidirezionali in "Nuove direzioni in crittografia".
1977L'algoritmo RSA dimostra una funzione unidirezionale pratica (difficoltà di fattorizzazione in numeri primi).
1989Merkle e Damgård pubblicano importanti costruzioni per funzioni hash resistenti alle collisioni.
1985Crittografia a curve ellittiche proposta: logaritmo discreto come funzione unidirezionale sulle curve
1993Il NIST pubblica SHA-0 (FIPS PUB 180); SHA-1 segue nel 1995 funzione hash – funzione hash unidirezionale ampiamente adottata
2002Il NIST pubblica SHA-256 in FIPS 180-2 (Fonte: standard di hash NIST)
2004Wang et al. trovano collisioni in MD5, dimostrando che specifiche funzioni unidirezionali possono essere indebolite
2005Pubblicati gli attacchi teorici contro SHA-1: inizio della deprecazione di SHA-1
2008Satoshi Nakamoto crea Bitcoin su SHA-256 e sulla curva ellittica secp256k1: le funzioni unidirezionali proteggono la rete.
2009Bitcoin viene lanciato: le funzioni unidirezionali proteggono ogni chiave privata, indirizzo e hash del blocco.
2012Il NIST seleziona SHA-3 (Keccak), una nuova famiglia di funzioni hash unidirezionali; Ethereum in seguito utilizza Keccak-256.
2015Ethereum viene lanciato: utilizza Keccak-256 per l'hashing e secp256k1 per le firme.
2019Google raggiunge la "supremazia quantistica", sensibilizzando l'opinione pubblica sulle minacce quantistiche alle funzioni unidirezionali.
2024Il NIST finalizza tre standard post-quantistici, utilizzando costruzioni basate su reticoli e hash (Fonte: standard post-quantistici del NIST)

Come funziona

Funzionamento unidirezionale: il calcolo di un output è efficiente, mentre la ricerca di un input corrispondente è considerata irrealizzabile in base alle ipotesi pertinenti. L'hashing, la derivazione di chiavi tramite curve ellittiche e le costruzioni a trappola hanno proprietà diverse e non devono essere trattate come intercambiabili.

Funzione unidirezionaleUsato inOperazioni di avanzamentoDifficoltà inversaMinaccia quantistica
SHA-256Mining di Bitcoin, indirizziEsegui l'hashing di qualsiasi dato → digest a 256 bit2^256 forza brutaRidotto a 2^128 (ancora sicuro)
Keccak-256Indirizzi Ethereum, hashingEsegui l'hashing di qualsiasi dato → digest a 256 bit2^256 forza brutaRidotto a 2^128 (ancora sicuro)
secp256k1 (ECDLP)Coppie di chiavi Bitcoin/ETHChiave privata × G → Chiave pubblica2^128 operazioni (classiche)Interrotto dall'algoritmo di Shor
RSA (Factoring)TLS/SSL, sistemi legacyMoltiplica due numeri primi → prodottoSub-esponenziale (difficile)Interrotto dall'algoritmo di Shor
Problemi di reticoloCrittografia post-quantisticaOperazioni reticolariCredibile anche per la meccanica quantisticaResistente (base del PQC)

In parole semplici

  1. Facile da calcolare, difficile da invertire: un'adeguata Una funzione unidirezionale può essere valutata in modo efficiente, mentre il recupero di un input è computazionalmente irrealizzabile in base alle sue ipotesi di sicurezza. Ciò non significa che l'inversione sia matematicamente impossibile.
  2. Le funzioni hash sono unidirezionaliL'algoritmo SHA-256 (utilizzato in Bitcoin) prende qualsiasi input e produce un output fisso a 256 bit. Lo stesso input produce sempre lo stesso output, ma solo dall'output non è possibile risalire all'input. Per questo motivo i minatori di Bitcoin devono effettuare miliardi di tentativi casuali: non possono decodificare l'hash vincente.
  3. Sicurezza del portafoglioMolti tipi di indirizzi Bitcoin utilizzano hash di chiavi pubbliche o script, ma gli output di Taproot espongono una chiave pubblica. Le chiavi pubbliche possono anche diventare visibili al momento della spesa. La progettazione dell'indirizzo è importante; l'hashing non nasconde universalmente tutte le chiavi pubbliche.
  4. L'attività mineraria è un gioco di indovinelli a senso unico.Il mining di Bitcoin funziona perché SHA-256 è unidirezionale. I miner devono trovare un numero (nonce) che, sottoposto ad hashing con i dati del blocco, produca un hash che inizia con molti zeri. Poiché SHA-256 è unidirezionale, non possono calcolare la risposta, ma devono procedere per tentativi ed errori miliardi di volte. È questo che consuma tutta quell'energia elettrica.
  5. I computer quantistici rappresentano la sfida del futuroLe funzioni unidirezionali attuali sono sicure contro i computer classici, ma i computer quantistici che utilizzano l'algoritmo di Shor potrebbero violare la crittografia a curve ellittiche. Per questo motivo, i crittografi stanno sviluppando funzioni unidirezionali post-quantistiche basate su problemi (come i problemi reticolari) che si ritiene siano difficili persino per i computer quantistici.

Esempi del mondo reale

ScenarioImplementazione/AttuazioneRisultato
Generazione di chiavi BitcoinChiave privata moltiplicata per il punto generatore sulla curva secp256k1La chiave pubblica è stata generata in millisecondi; invertirla richiederebbe miliardi di anni.
Bitcoin MiningI minatori eseguono l'hashing delle intestazioni dei blocchi con SHA-256, cercando uno specifico modello di output.La proprietà unidirezionale impone una ricerca a forza bruta – la rete è protetta tramite prova di lavoro
Archiviazione passwordI siti Web utilizzano schemi di hashing delle password con salt come Argon2id invece del semplice SHA-256 (Fonte: Archiviazione delle password OWASP)L'hashing lento e dispendioso in termini di memoria aumenta il costo dei tentativi di indovinare; le password deboli possono comunque essere recuperate.
Indirizzo di EthereumUn indirizzo Ethereum utilizza gli ultimi 20 byte dell'hash Keccak-256 delle coordinate della chiave pubblica non compressaLa chiave pubblica può essere recuperata da una transazione firmata; la chiave privata rimane protetta dall'ipotesi del logaritmo discreto.
Alberi di MerkleGli hash delle transazioni sono combinati a coppie utilizzando SHA-256 fino alla radice di Merkle.Verifica efficiente dell'inclusione delle transazioni senza dover scaricare l'intera blockchain.

Vantaggi

Vantaggio Descrizione
Fondamenti della sicurezza crittograficaIl modello di sicurezza di ogni criptovaluta si basa sulla proprietà unidirezionale delle sue funzioni
Verifica efficienteChiunque può verificare gli output (firme, hash) senza bisogno dell'input privato
DeterministicoLo stesso input produce sempre lo stesso output: un comportamento affidabile e prevedibile.
ComponibileLe funzioni unidirezionali possono essere stratificate (hash di un hash) per una maggiore sicurezza
Testato in battagliaSHA-256 e secp256k1 hanno resistito a decenni di attacchi crittanalitici.
Applicazione universaleUtilizzato in tutti gli ambiti: mining, indirizzi, firme, alberi di Merkle e altro ancora.

Ottieni la carta UPay Crypto

Scopri il meglio dei pagamenti online e delle transazioni crittografiche senza interruzioni.

Registrati

Svantaggi e rischi

RischioDescrizione
Presupposto non dimostratoL'esistenza non è dimostrata; le funzioni unidirezionali implicherebbero P ≠ NP, ma il contrario non è stato stabilito.
Vulnerabilità quantisticaL'algoritmo di Shor sui computer quantistici potrebbe rompere le funzioni unidirezionali delle curve ellittiche
Punti deboli dell'algoritmoAlcune implementazioni specifiche (come MD5, SHA-1) sono state parzialmente compromesse nel corso del tempo.
Nessun recuperoSe le funzioni unidirezionali proteggono una chiave smarrita, il proprietario non ha alcun ricorso matematico
Modalità di guasto catastroficoUna grave violazione crittografica potrebbe minacciare i sistemi interessati; l'impatto dipende dalla primitiva e dall'attacco
Costo computazionaleIl meccanismo di proof-of-work del mining sfrutta la difficoltà delle funzioni unidirezionali – consuma un'enorme quantità di energia

Suggerimenti per la gestione del rischio:

  • Bisogna comprendere che la sicurezza delle criptovalute si basa in ultima analisi su presupposti matematici: presupposti rigorosi, ma pur sempre presupposti.
  • Seguite le ricerche post-quantistiche autorevoli e le linee guida per la migrazione di wallet o reti.
  • Quando possibile, utilizzate gli indirizzi una sola volta (soprattutto in Bitcoin): ridurre al minimo l'esposizione della chiave pubblica diminuisce la superficie di attacco quantistico.
  • Se siete preoccupati per le vulnerabilità di specifici algoritmi, diversificate le vostre conoscenze tra diverse basi crittografiche.
  • Non bisogna presumere che un indirizzo non utilizzato nasconda la sua chiave pubblica: i tipi di indirizzo come Taproot espongono la chiave pubblica fin dall'inizio.

FAQ

D: Le funzioni unidirezionali sono davvero impossibili da invertire?

A: Non si afferma alcuna impossibilità assoluta. L'unidirezionalità implica che l'inversione non sia fattibile per l'attaccante e i parametri rilevanti. Dimostrare l'esistenza di funzioni unidirezionali rimane un problema aperto; è correlato, ma non identico, a P contro NP.

D: Cosa succede se qualcuno viola SHA-256?

A: L'impatto dipenderebbe dal tipo di attacco. Un attacco di collisione, un attacco di preimmagine e una scorciatoia per la prova di lavoro sono capacità diverse. Una violazione grave potrebbe richiedere una modifica coordinata del protocollo, ma non garantirebbe il recupero automatico delle chiavi private né che un soft fork da solo possa risolvere il problema.

D: Che relazione c'è tra le funzioni unidirezionali e il mining di Bitcoin?

A: I minatori di Bitcoin cercano un hash dell'intestazione del blocco al di sotto di un obiettivo, non un input originale univoco per un hash specificato. Variano il nonce e altri input dell'intestazione e valutano ripetutamente il doppio SHA-256. La mancanza di una scorciatoia pratica rende questa ricerca computazionalmente onerosa.

D: Qual è la differenza tra una funzione a botola e una funzione unidirezionale?

A: Una funzione a trappola è difficile da invertire senza un segreto, ma facile da invertire con esso. RSA fornisce un esempio in presenza di ipotesi appropriate e con un padding sicuro. Nella generazione di chiavi a curva ellittica, lo scalare privato è l'input; non si tratta di una trappola che permette a qualcuno di invertire chiavi pubbliche arbitrarie.

D: I computer quantistici infrangeranno tutte le funzioni unidirezionali?

R: No. I computer quantistici (tramite l'algoritmo di Shor) minacciano specifiche funzioni unidirezionali basate sulla fattorizzazione e sui logaritmi discreti, tra cui RSA e la crittografia a curve ellittiche. Tuttavia, le funzioni hash come SHA-256 sono solo indebolite (da 2^256 a 2^128 di sicurezza tramite l'algoritmo di Grover), il che le rende ancora considerate sicure. Inoltre, la crittografia post-quantistica utilizza nuove funzioni unidirezionali (basate su problemi reticolari, schemi basati su hash, ecc.) che si ritiene siano resistenti agli attacchi quantistici.

Termini correlati

  • Funzione hash
  • SHA-256
  • Crittografia a curva ellittica
  • Crittografia a chiave pubblica
  • chiave privata
  • Firma digitale
  • Proof of Work (PoW)
  • Crittografia post-quantistica
  • Resistenza alle collisioni
  • Keccak-256

Disclaimer: Questa voce del glossario è a scopo puramente informativo e non costituisce consulenza finanziaria. Il trading di criptovalute comporta rischi significativi, incluso il rischio di perdita. Effettuate sempre le vostre ricerche (DYOR) e consultate un consulente finanziario qualificato prima di prendere decisioni di investimento.

Conclusione

Una funzione unidirezionale contribuisce a proteggere i sistemi di criptovaluta attraverso la difficoltà computazionale. La sua sicurezza pratica dipende dalla primitiva scelta, dall'implementazione e dal modello di minaccia, inclusi i diversi effetti degli algoritmi quantistici.

Ulteriori informazioni su UPay: Sicurezza della chiave privata ; Tipi di portafogli di criptovalute ; Autocustodia spiegata

fonti

standard di hash NIST

standard post-quantistici del NIST

Archiviazione delle password OWASP

Novità & Eventi speciali