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
| Anno | Event |
|---|---|
| 1874 | William Stanley Jevons descrive il concetto di funzioni unidirezionali (fattorizzazione di grandi numeri). |
| 1976 | Diffie e Hellman formalizzano le funzioni unidirezionali in "Nuove direzioni in crittografia". |
| 1977 | L'algoritmo RSA dimostra una funzione unidirezionale pratica (difficoltà di fattorizzazione in numeri primi). |
| 1989 | Merkle e Damgård pubblicano importanti costruzioni per funzioni hash resistenti alle collisioni. |
| 1985 | Crittografia a curve ellittiche proposta: logaritmo discreto come funzione unidirezionale sulle curve |
| 1993 | Il NIST pubblica SHA-0 (FIPS PUB 180); SHA-1 segue nel 1995 funzione hash – funzione hash unidirezionale ampiamente adottata |
| 2002 | Il NIST pubblica SHA-256 in FIPS 180-2 (Fonte: standard di hash NIST) |
| 2004 | Wang et al. trovano collisioni in MD5, dimostrando che specifiche funzioni unidirezionali possono essere indebolite |
| 2005 | Pubblicati gli attacchi teorici contro SHA-1: inizio della deprecazione di SHA-1 |
| 2008 | Satoshi Nakamoto crea Bitcoin su SHA-256 e sulla curva ellittica secp256k1: le funzioni unidirezionali proteggono la rete. |
| 2009 | Bitcoin viene lanciato: le funzioni unidirezionali proteggono ogni chiave privata, indirizzo e hash del blocco. |
| 2012 | Il NIST seleziona SHA-3 (Keccak), una nuova famiglia di funzioni hash unidirezionali; Ethereum in seguito utilizza Keccak-256. |
| 2015 | Ethereum viene lanciato: utilizza Keccak-256 per l'hashing e secp256k1 per le firme. |
| 2019 | Google raggiunge la "supremazia quantistica", sensibilizzando l'opinione pubblica sulle minacce quantistiche alle funzioni unidirezionali. |
| 2024 | Il 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 unidirezionale | Usato in | Operazioni di avanzamento | Difficoltà inversa | Minaccia quantistica |
|---|---|---|---|---|
| SHA-256 | Mining di Bitcoin, indirizzi | Esegui l'hashing di qualsiasi dato → digest a 256 bit | 2^256 forza bruta | Ridotto a 2^128 (ancora sicuro) |
| Keccak-256 | Indirizzi Ethereum, hashing | Esegui l'hashing di qualsiasi dato → digest a 256 bit | 2^256 forza bruta | Ridotto a 2^128 (ancora sicuro) |
| secp256k1 (ECDLP) | Coppie di chiavi Bitcoin/ETH | Chiave privata × G → Chiave pubblica | 2^128 operazioni (classiche) | Interrotto dall'algoritmo di Shor |
| RSA (Factoring) | TLS/SSL, sistemi legacy | Moltiplica due numeri primi → prodotto | Sub-esponenziale (difficile) | Interrotto dall'algoritmo di Shor |
| Problemi di reticolo | Crittografia post-quantistica | Operazioni reticolari | Credibile anche per la meccanica quantistica | Resistente (base del PQC) |
In parole semplici
- 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.
- 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.
- 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.
- 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.
- 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
| Scenario | Implementazione/Attuazione | Risultato |
|---|---|---|
| Generazione di chiavi Bitcoin | Chiave privata moltiplicata per il punto generatore sulla curva secp256k1 | La chiave pubblica è stata generata in millisecondi; invertirla richiederebbe miliardi di anni. |
| Bitcoin Mining | I 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 password | I 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 Ethereum | Un indirizzo Ethereum utilizza gli ultimi 20 byte dell'hash Keccak-256 delle coordinate della chiave pubblica non compressa | La chiave pubblica può essere recuperata da una transazione firmata; la chiave privata rimane protetta dall'ipotesi del logaritmo discreto. |
| Alberi di Merkle | Gli 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 crittografica | Il modello di sicurezza di ogni criptovaluta si basa sulla proprietà unidirezionale delle sue funzioni |
| Verifica efficiente | Chiunque può verificare gli output (firme, hash) senza bisogno dell'input privato |
| Deterministico | Lo stesso input produce sempre lo stesso output: un comportamento affidabile e prevedibile. |
| Componibile | Le funzioni unidirezionali possono essere stratificate (hash di un hash) per una maggiore sicurezza |
| Testato in battaglia | SHA-256 e secp256k1 hanno resistito a decenni di attacchi crittanalitici. |
| Applicazione universale | Utilizzato 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.
RegistratiSvantaggi e rischi
| Rischio | Descrizione |
|---|---|
| Presupposto non dimostrato | L'esistenza non è dimostrata; le funzioni unidirezionali implicherebbero P ≠ NP, ma il contrario non è stato stabilito. |
| Vulnerabilità quantistica | L'algoritmo di Shor sui computer quantistici potrebbe rompere le funzioni unidirezionali delle curve ellittiche |
| Punti deboli dell'algoritmo | Alcune implementazioni specifiche (come MD5, SHA-1) sono state parzialmente compromesse nel corso del tempo. |
| Nessun recupero | Se le funzioni unidirezionali proteggono una chiave smarrita, il proprietario non ha alcun ricorso matematico |
| Modalità di guasto catastrofico | Una grave violazione crittografica potrebbe minacciare i sistemi interessati; l'impatto dipende dalla primitiva e dall'attacco |
| Costo computazionale | Il 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









