Migliore risposta
Nel campo della crittoanalisi cè unenorme differenza tra “ crack “e” break “.
Crei una password nel senso più semplice tentando di sbloccare il sistema con tutte le possibili iterazioni di quella password, un metodo noto come cracking a forza bruta. Se conosci le regole che governano la creazione e luso della password, conosci anche in anticipo il costo in termini di tempo / impegno inerente a quella cifra. Ogni singolo algoritmo là fuori ha unaspettativa prestabilita nello sforzo di calcolo richiesto per decifrarlo.
Si dice che un algoritmo, come MD5 o SHA-1 (esempi reali) si rompa quando trovi una sorta di collisione che riduce quelluniverso previsto (ogni possibile soluzione alla formula utilizzata per creare la chiave / password).
Per semplificare, lascia che ti guidi attraverso un esempio reale di WPS (Wi-Fi Protected Setup ). WPS è stato creato per rendere più facile per gli utenti proteggere la propria rete Wi-Fi. Consisteva in un PIN di otto cifre che sarebbe stato scambiato tra lutente richiedente e il router premendo un pulsante.
I creatori del sistema conoscevano in anticipo luniverso previsto: 8 numeri ti danno 100.000.000 di possibili combinazioni (10 ^ 8). Tuttavia, limplementazione del protocollo ha suddiviso quel numero in 2 combinazioni di quattro cifre che sono state convalidate separatamente.
Ciò significava che avresti dovuto provare solo 10.000 (10 ^ 4) + 10.000 (10 ^ 4) combinazioni, nel peggiore dei casi, per decifrare il PIN. Il tuo universo di 100 milioni di combinazioni ora è improvvisamente sceso a sole 20.000 combinazioni. Lalgoritmo è effettivamente non funzionante . Puoi quindi provare a decifrarlo, come avresti potuto fare se non fosse rotto, ma poiché si è rotto le tue possibilità di successo sono molto migliori, richiedendo solo al massimo 20.000 tentativi invece di 100 milioni.
La conclusione da trarre da questo:
Spezzare e rompere sono cose diverse. Un codice rotto non significa che “è insicuro, solo che ora è più facile da decifrare. A seconda del valore di ciò che viene protetto da esso, essere infranti non significa morte per un dato sistema, ma solo la consapevolezza che è meno sicuro ora di quanto previsto inizialmente.
RSA-2048 verrà interrotto se qualcuno trova un modo per creare collisioni che riducono intrinsecamente il numero previsto di combinazioni per decifrare il codice RSA 2048 può essere decifrato così comè, come qualsiasi altro codice, con la forza bruta.
Risposta
RSA, di per sé, ha solo pochi attacchi al modulo pubblico (che è tipicamente un semiprime, o due grandi numeri primi selezionati casualmente s moltiplicato insieme). Lalgoritmo classico più efficiente per risolvere il problema della fattorizzazione, che consente la derivazione della chiave privata utilizzando laritmetica di base, è il General Number Field Sieve (GNFS). Questo algoritmo viene eseguito in tempo sub-esponenziale e non è possibile utilizzarlo su sistemi correttamente implementati RSA-2048 bit.
Esiste anche Lalgoritmo di Shor, ma che non può essere montato su RSA-2048 da un tipico aggressore. I produttori di computer quantistici gestiscono un oligopolio, guidato in particolare da D-Wave. Non solo è incredibilmente costoso ottenerne uno, ma richiede anche attrezzature specializzate per eseguirli e mantenerli. Nessun chip è stato creato con sufficiente persistenza delle informazioni e potenza per rompere più di pochi bit.
Come accennato in precedenza, un sistema crittografico non è nulla senza una corretta implementazione. La maggior parte delle implementazioni di RSA utilizza anche un algoritmo di fingerprinting della chiave pubblica, solitamente un hash. Inoltre, trovare la fattorizzazione dei numeri primi è possibile con un exploit che è sia incredibilmente raro che statisticamente trascurabile in termini di percentuale di successo. Come ha sottolineato Euclid , ci sono numeri primi infiniti, ma non solo ci sono numeri primi infiniti, ce ne sono molti in un certo spazio delle chiavi. Se due moduli condividono lo stesso numero primo, è facile trovare la loro fattorizzazione. Utilizzando l algoritmo del massimo comune divisore , che viene eseguito in tempo lineare (può essere eseguito facilmente sul dispositivo su cui lo stai visualizzando entro millisecondi), il fattore comune può essere trovato, quindi diviso dai moduli per produrre gli altri due numeri primi mancanti. Questo porta ad accedere a entrambe le chiavi. Qualsiasi implementazione corretta di RSA non riutilizzerebbe mai i numeri primi per chiavi separate, ma selezionandoli completamente a caso. Poiché esistono molti moduli possibili allinterno dello spazio delle chiavi a 2048 bit, che possono essere scritti come numero di numeri primi 2048 selezionare 2 (o maggiore di 2 se si lavora con moduli non standard), le possibilità che due chiavi condividano anche due numeri primi sono trascurabili . In altre parole, prendere tutte le chiavi da un server delle chiavi ed eseguire lalgoritmo GCD su tutte è semplicemente una perdita di tempo.