Quanto tempo impiegherebbe un computer di grandi dimensioni per violare una chiave privata?

Sto facendo una presentazione sui Bitcoin e stavo cercando alcuni calcoli per far sentire le persone al sicuro riguardo alla crittografia della chiave privata. Per favore, prima rispondi, quanto è lunga in byte la chiave privata, poi quante combinazioni di numeri conterrà, e poi qual è il computer o la rete di supercomputer più veloce e quanto tempo ci vorrebbe per decifrare una chiave privata usando quel computer. Penso che il risultato sarebbe molto istruttivo sulla base dei miei calcoli. Grazie.

Commenti

Risposta

quanto tempo in byte è la chiave privata

32 byte o 256 bit

quindi quante combinazioni di numeri conterrà

Ci sono 2 ^ 256 chiavi private differenti. Quello “è un po più grande di un 1 seguito da 77 zeri.

qual è il computer o la rete di supercomputer più veloce

Al suo picco intorno ad agosto 2011, la rete Bitcoin controllava 15 trilioni di hash sha256 al secondo. (Vedi http://bitcoin.sipa.be/ )

quanto tempo ci vorrebbe per decifrare una chiave privata utilizzando quel computer

Se assumiamo che per eseguire unoperazione ECDSA impieghi lo stesso tempo necessario per controllare un hash sha256 (richiede molto più tempo), utilizziamo unottimizzazione che ci consente di avere solo bisogno 2 ^ 128 operazioni ECDSA, quindi il tempo necessario può essere calcolato:

>>> pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9 0.6537992112229596 

Sono 0,65 miliardi di anni.

Quello ” una stima molto prudente per il tempo impiegato per interrompere un singolo indirizzo Bitcoin.

Modifica: è stato sottolineato che i computer tendono a diventare esponenzialmente più veloci nel tempo, secondo Legge di Moore . Supponendo che la velocità di elaborazione raddoppi ogni anno (la legge di Moore dice 2 anni, ma saremo prudenti), allora tra 59 anni ci vorranno solo 1,13 anni. Quindi le tue monete sono al sicuro per i prossimi 60 anni senza una modifica agli algoritmi utilizzati per proteggere la blockchain. Tuttavia, mi aspetto che gli algoritmi vengano modificati molto prima che sia possibile rompere la protezione che forniscono.

Commenti

  • La legge di Moore ‘ (o simili) probabilmente ridurrebbe un po quel numero, ma non abbastanza da avere importanza. Finché la risposta è una forma di ” più lungo di quanto ci vorrebbe per estrarre le monete memorizzate a quellindirizzo ” dovremmo essere al sicuro 🙂
  • È importante, perché le persone meritano di sapere quanto è sicuro il loro denaro.
  • Questo ‘ presuppone che Moore ‘ può continuare per altri 6 decenni. Daltra parte forse il controllo qualità è ormai mainstream.
  • Ottima risposta. Vale la pena notare che la potenza cumulativa di rete di Bitcoin ‘ è ora quasi 10 volte il valore da quando è stata scritta questa risposta. Quindi ‘ ” solo ” per un valore di ~ 653 milioni di anni di calcolo.

Risposta

Una chiave privata Bitcoin è un numero casuale a 256 bit. Tuttavia, la chiave pubblica rivela alcune informazioni sulla chiave privata. Gli algoritmi più noti per la violazione dellECDSA richiedono operazioni O (sqrt (n)). Ciò significa che sarebbero necessarie 2 ^ 128 operazioni per violare un account Bitcoin.

La più grande chiave ECDSA danneggiata fino ad oggi del tipo utilizzato da Bitcoin era lunga 112 bit. Un account Bitcoin è più di 4.000 miliardi di miliardi di volte più difficile da violare.

Lunico rischio realistico sarebbe il calcolo quantistico.

Commenti

  • Va anche notato che anche il calcolo quantistico dovrebbe solo ridurre il tempo da pow (2, N) a pow (2, N / 2) che, sebbene significativo, non lo sta aprendo completamente. Vedi en.wikipedia.org/wiki/Key_size
  • @GaryRowe Tu ‘ sbagli . Il dimezzamento della lunghezza della chiave si applica alle chiavi simmetriche. La maggior parte dei cifrari asimmetrici (incluso ECDSA che è usato per bitcoint) può essere rotto in tempo polinomiale con un computer quantistico grazie allalgoritmo di Shor ‘.Per citare larticolo di Wikipedia ” Il consenso generale è che questi algoritmi a chiave pubblica non sono sicuri a qualsiasi dimensione di chiave se computer quantistici sufficientemente grandi in grado di eseguire Shor ‘ s diventa disponibile. “. Sebbene esistano schemi di firma a prova di quantum, ‘ probabilmente gonfieranno molto la blockchain.
  • @CodeInChaos Buoni punti tutti – mi dispiace per aver introdotto confusione.
  • Lattacco O (sqrt (n)) è lattacco del compleanno, che è possibile in ogni schema di cifratura. A quali ” informazioni sulla chiave privata ” ti riferisci alla chiave pubblica?
  • @dionyziz I ‘ non sto parlando dellattacco del compleanno, ‘ sto parlando di invertire una chiave pubblica ECDSA per ottenere la chiave privata corrispondente. Le ” informazioni sulla chiave privata ” rivelate dalla chiave pubblica sono il punto corrispondente a quella chiave privata moltiplicata per il generatore. Ciò consente luso di algoritmi logaritmici discreti come passo grande, passo piccolo .

Risposta

Una chiave privata Bitcoin (chiave ECC) è un numero intero compreso tra uno e circa 10 ^ 77. Potrebbe non sembrare una gran selezione, ma per scopi pratici è essenzialmente infinita. Se potessi elaborare un trilione di chiavi private al secondo, ci vorrebbe più di un milione di volte lera delluniverso per contarle tutte. Anche peggio ancora, la semplice enumerazione di queste chiavi consumerebbe più dellenergia totale prodotta dal Sole per 32 anni. Questo vasto spazio delle chiavi gioca un ruolo fondamentale nella protezione della rete Bitcoin.

Commenti

  • Chuck Norris ha contato fino allinfinito, due volte.
  • Chuck Norris ha detto a Satoshi Nakomoto cosa fare.

Risposta

2 ^ 256 = 1,1×10 ^ 77 = numero di combinazioni di tasti

2 ^ 128 = 3,4×10 ^ 38 = il numero medio di tentativi necessari

Secondo questo sito web: http://en.wikipedia.org/wiki/TOP500 , il supercomputer più veloce è il computer K che ha 10,51 petaflop.

Un petaflop è 10 ^ 15 FLOPS, istruzioni in virgola mobile zioni al secondo.

Fin qui tutto bene, ma ho bisogno di sapere quanti FLOP sono necessari per ipotesi?

[Azzarderò unipotesi:]

Tra 1.000 e 10.000 FLOP (o equivalenti interi) per ipotesi.

10,51×10 ^ 15 operazioni / secondo / da 1000 a 10000 operazioni / ipotesi) = 10,51×10 ^ 12 a 10,51×10 ^ 11 ipotesi / secondo.

3,4×10 ^ 38 tentativi / crack / 10,51×10 ^ 12 ipotesi / secondo = 3,2×10 ^ 25 secondi.

3,2×10 ^ 25 secondi / 60 secondi / minuto / 60 minuti / ora / 24 ore / giorno / 365,25 giorni / anno = 1,01×10 ^ 18 anni

1,01×10 ^ 18 anni / 1×10 ^ 9 / 1×10 ^ 9 = da 1,014 a 10,014 miliardi di anni.

Quindi i computer sulla rete Bitcoin sono due volte più veloci del più grande computer di laboratorio.

Commenti

  • Ci sono esattamente 0 FLOP richiesti per provare una combinazione, poiché un FLOP è unoperazione a virgola mobile e la matematica EC richiede solo operazioni con numeri interi.
  • Non cè mai stato un computer su cui ho lavorato che non potesse ‘ t do intero ma th. Quindi presumo che anche il computer sudcoreano K possa farlo.
  • Sì, ma la proporzione tra la velocità delle operazioni con numeri interi e in virgola mobile differisce notevolmente tra lhardware. Data una certa distribuzione di tipi di hardware che costituiscono la potenza di mining di Bitcoin ‘, puoi fornire una stima, ma la risposta alla domanda ” quanti FLOP sono necessari per ipotesi “, la risposta è sicuramente 0.
  • numero di combinazioni di tasti = 2 ^ 256; numero medio di tentativi necessari = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, nessuno lha notato? Bene, non cambia il miliardo (di miliardi) di anni necessari ..

Risposta

Cè un vanitygen utilità (controlla la versione di exploitagency ” che è un fork migliorato della versione samr7 “s ) che può darti le stime sul tempo necessario per trovare la chiave privata per il modello dato (vedi: vg_output_timing_console() ). Alcuni casi speciali (come i caratteri ripetuti) sono più difficili degli altri.

La difficoltà di trovare un vanity address dipende dalla sua esatta struttura (lettere iniziali e numeri) e la probabilità che un tale output venga fornito dagli algoritmi coinvolti, che possono consistere in diversi perni in cui la difficoltà cambia improvvisamente. bitcoin wiki

Ecco la tabella che può essere trovato nella pagina wiki di bitcoin che fornisce tempi stimati per il cracking di chiavi private per i modelli di indirizzo forniti:

bitcoin, vanitygen per tentare di attaccare indirizzi, Vanitygen, tabella Keysearch Rates, Mkey / s, CPU / GPU, tabella, decilioni di anni, tempo medio

La tabella di esempio sotto mostra come una vanità sempre più complessa influenzi la difficoltà e il tempo medio necessario per trovare una corrispondenza solo per quella vanità, per non parlare del pieno address, per una macchina in grado di cercare 1 milione di chiavi al secondo.

Usando vanitygen potresti pensare che saresti in grado di trovare la chiave privata per un dato indirizzo. In pratica, questo è considerato impossibile.


Esempio pratico

Creiamo il seguente unspendable indirizzo bitcoin :

$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

Quindi, utilizzando vanitygen posso calcolare le prestazioni sulla mia macchina (> 240 Kkey / s):

$ vanitygen -q -k -o/dev/null 1 [241.29 Kkey/s][total 2880199][Found 11618] 

Nota: quanto sopra è stato testato su MacBook Pro (Intel Core i7 a 2,3 GHz, DDR3 a 16 GB a 1600 MHz).

Inoltre, può calcolare il tempo stimato durante la ricerca di modelli specifici, ad esempio

  • per trovare i primi 5 caratteri su 26-35 (pochi secondi):

    $ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s] 
  • 6 primi caratteri su 26-35 (pochi minuti):

    $ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min] 
  • 7 caratteri su 26-35 (poche ore):

    $ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h] 
  • 8 caratteri fuori di 26-35 (poche settimane):

    $ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d] 
  • 9 caratteri ou t di 26-35 (pochi anni):

    $ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y] 
  • 10 caratteri su 26-35 (un secolo):

    $ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y] 
  • 11 caratteri su 26-35 (pochi millenni)

    $ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y] 
  • 12 caratteri su 26-35 (centinaia di millenni):

    vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
  • 13 caratteri su 26-35 (migliaia di millenni, pochi milioni di anni):

    $ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y] 
  • 14 caratteri su 26- 35 (miliardi di anni):

    $ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y] 
  • 15 caratteri su 26-35 (50 miliardi di anni):

    $ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y] 
  • … 28 caratteri ( decilioni di anni se tu “re lucky)

    $ vanitygen -q -k -o/dev/null 123456789A123456789A12345678 [910.34 Kkey/s][total 2723072][Prob 0.0%][50% in 3.981113e+33y] 

Vale la pena notare che lindirizzo generato sopra ha 34 byte, ma il il primo carattere è solo lidentificatore di rete (per bitcoin di solito è 1 o 3) e gli ultimi 4 byte è solo un checksum. Per maggiori dettagli sullindirizzo, vedi questa pagina wiki di bitcoin .


Keysearch Rates

Di sicuro La velocità di ricerca delle chiavi può essere aumentata utilizzando una GPU migliore o più CPU (vedere: -t), ma le stime possono essere enormi.

Ad esempio, ecco la tabella dei tassi di ricerca delle chiavi su pagina wiki di bitcoin :

Vanitygen, tabella Keysearch Rates, Mkey / s, CPU / GPU

E qui ci sono alcuni rapporti di utenti per GPU diverse:

  • i7 8700K – ~ 3Mkey / c
  • GTX 980TI (v1.42) – ~ 73Mh
  • GTX 1050ti – ~ 23 Mkey / c
  • GTX 1070 – ~ 50 Mkey / s
  • GTX 1080ti – ~ 108 Mkey / c

Fonte: Elenco delle GPU supportate (GH-46) .

Risposta

Lunico rischio realistico sarebbe il calcolo quantistico.

O la scoperta di un bug o di un difetto negli algoritmi del software BTC. Quindi il cracking potrebbe essere questione di secondi, a seconda del tipo di difetto.

Commenti

  • Ciao e benvenuto in StackExchange. Sei sicuro di non ‘ volere che questo sia un commento su qualche altra risposta, piuttosto che una risposta autonoma da sola?
  • @ThePiachu, grazie . Come forse saprai, i nuovi utenti non possono pubblicare commenti, ma solo risposte. Il moderatore è il benvenuto per risolvere questo problema. (Posso commentare solo le mie risposte)
  • Oh, sei un moderatore. Ho appena notato. 🙂

Risposta

Il computer più veloce è 150 Petraflops FPC al secondo e non 10 … Prova e stare al passo con i tempi (NV Link e schede Volta HCP su processori di potenza IBM) … puoi leggere o guardare di più sul sito web di team green o sui video della Conferenza 2015 su tubo U. Poiché la risposta generale sembra essere basata su 10 Petraflops come il computer più veloce del mondo …Dovresti essere chiaramente in grado di vedere quanto velocemente può cambiare lFPC per secondo. Il Dipartimento dellEnergia sta progettando un sistema 300P già basato sulla stessa tecnologia.

Il punto è che la tua gente di bitcoin che ti dice quanto è sicuro basato su 10P hanno già sbagliato la matematica di base di 15-30 volte perché evidentemente non sanno quanto pensano. I miglioramenti sono non dipende nemmeno dalla Legge di Moore, i recenti progressi e le attuali limitazioni hanno a che fare con una Legge completamente diversa, che è ciò che NV Link ha risolto come meglio poteva e ha migliorato così bene il tempo di elaborazione, Questo è solo lesempio di oggi di come il loro la teoria di un miliardo di miliardi di anni è già sbagliata di un fattore di 15-30 e continuerà a sbagliarsi ogni anno a un ritmo molto più alto di quanto si supponga. In 30 anni o meno il bitcoin al suo livello attuale sarà facilmente decifrato da chiunque abbia dai 40 ai 50.000 dollari da spendere (nel denaro di oggi) o possa utilizzare un numero qualsiasi di supercomputer universitari o aziendali.

Chiunque creda davvero che la tecnologia di 50 anni conserverà qualcosa di digitalmente sicuro per 50 anni in seguito francamente non è il tipo di persona che dovresti essere p Non prestando alcuna attenzione a … Vuol dire che bitcoin è pericoloso oggi? Non proprio, ma se le stesse persone sono responsabili della sua sicurezza in 30 anni, sono le stesse persone incapaci che sono qui in questo momento, lo sarà.

Commenti

  • NVLink è una tecnologia che consente una comunicazione più rapida ed efficiente dal punto di vista energetico tra i nodi di un supercomputer. Nessuno di questi è davvero un problema se ‘ stai costruendo un key-cracker distribuito.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *