Hvor lang tid vil det ta en stor datamaskin å knekke en privat nøkkel?

Jeg holder en presentasjon på Bitcoins og jeg lette etter noen beregninger for å få folk til å føle seg trygge på kryptering av den private nøkkelen. Svar først, hvor lenge i byte den private nøkkelen er, deretter hvor mange kombinasjoner av tall den vil inneholde, og deretter hva er den raskeste datamaskinen eller nettverket av superdatamaskiner, og hvor lang tid det vil ta å knekke en privat nøkkel ved hjelp av den datamaskinen. Jeg tror resultatet ville være veldig lærerikt basert på mine egne beregninger. Takk.

Kommentarer

Svar

hvor lenge i byte er den private nøkkelen

32 byte, eller 256 bits

så hvor mange kombinasjoner av tall det vil inneholde

Det er 2 ^ 256 forskjellige private nøkler. Det «er litt større enn en 1 etterfulgt av 77 nuller.

hva er den raskeste datamaskinen eller nettverket av superdatamaskiner

På sitt høydepunkt rundt august 2011 sjekket Bitcoin-nettverket 15 billioner sha256 hashes per sekund. (Se http://bitcoin.sipa.be/ )

hvor lang tid det vil ta å knekke en privat nøkkel ved hjelp av den datamaskinen

Hvis vi antar at det tar samme tid å kjøre en ECDSA-operasjon som det tar å sjekke en sha256-hash (det tar mye lengre tid), og vi bruker en optimalisering som gjør at vi bare trenger 2 ^ 128 ECDSA-operasjoner, så kan den nødvendige tiden beregnes:

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

Det er 0,65 milliarder milliarder år.

That » et veldig konservativt estimat for tiden det tar å bryte en enkelt Bitcoin-adresse.

Rediger: det ble påpekt at datamaskiner har en tendens til å bli eksponentielt raskere over tid, ifølge Moores Law . Forutsatt at databehandlingshastigheten fordobles hvert år (Moores lov sier 2 år, men vi kommer til å feile på siden av forsiktighet), så om 59 år vil det bare ta 1,13 år. Så myntene dine er trygge de neste 60 årene uten en endring i algoritmene som brukes til å beskytte blockchain. Imidlertid forventer jeg at algoritmene blir endret lenge før det er mulig å bryte beskyttelsen de gir.

Kommentarer

  • Moore ‘ s lov (eller lignende) ville sannsynligvis redusere antallet, men ikke nok til å gjøre noe. Så lenge svaret er en eller annen form for » lenger enn det ville ta å bryte myntene som er lagret på den adressen «, bør vi være trygge 🙂
  • Det betyr noe, fordi folk fortjener å vite hvor sikre pengene deres er.
  • At ‘ antar at Moore ‘ s lov kan fortsette i ytterligere 6 tiår. På den annen side er kanskje QC mainstream da.
  • Flott svar. Verdt å merke seg at Bitcoin ‘ s kumulative nettverkskraft nå er nesten 10 ganger verdien siden dette svaret ble skrevet. Så det ‘ s » bare » ~ 653 millioner år med beregning.

Svar

En privat Bitcoin-nøkkel er et tilfeldig 256-bit nummer. Den offentlige nøkkelen avslører imidlertid litt informasjon om den private nøkkelen. De mest kjente algoritmene for å bryte ECDSA krever O (sqrt (n)) operasjoner. Det betyr at 2 ^ 128 operasjoner vil være nødvendig for å bryte en Bitcoin-konto.

Den største ECDSA-nøkkelen som hittil er brutt av den typen Bitcoin bruker, var 112 bits lang. En Bitcoin-konto er mer enn 4000 milliarder milliarder ganger vanskeligere å bryte.

Den eneste realistiske risikoen vil være kvanteberegning.

Kommentarer

  • Det skal også bemerkes at selv kvanteberegning kun forventes å redusere tiden fra pow (2, N) til pow (2, N / 2), som selv om det er betydelig ikke sprekker den vidåpent. Se no.wikipedia.org/wiki/Key_size
  • @GaryRowe Du ‘ tar feil . Halveringen av nøklelengden gjelder symmetriske nøkler. De fleste asymmetriske kodere (inkludert ECDSA som brukes til bitcoint) kan brytes på polynomisk tid med en kvantecomputer takket være Shor ‘ s algoritme.For å sitere den wikipedia-artikkelen » Den generelle konsensus er at disse offentlige nøkkelalgoritmene er usikre i hvilken som helst nøkkelstørrelse hvis tilstrekkelig store kvantedatamaskiner som kan kjøre Shor ‘ s algoritme blir tilgjengelig. «. Selv om det er kvantesikre signaturordninger,

vil det sannsynligvis oppblåse blockchain mye .

  • @CodeInChaos Gode poeng alle – beklager å ha innført forvirring.
  • O (sqrt (n)) angrepet er bursdagsangrepet, som er mulig i alle krypteringsskjemaer. Hvilken » informasjon om den private nøkkelen » som den offentlige nøkkelen avslører, refererer du til?
  • @dionyziz I ‘ jeg snakker ikke om bursdagsangrepet, jeg ‘ snakker om å reversere en offentlig nøkkel fra ECDSA for å få den tilsvarende private nøkkelen. » informasjonen om den private nøkkelen » som den offentlige nøkkelen avslører, er det punktet som tilsvarer den private nøkkelen ganget med generatoren. Dette muliggjør bruk av diskrete logaritmealgoritmer som stort trinn, lite trinn .
  • Svar

    En Bitcoin privatnøkkel (ECC-nøkkel) er et heltall mellom ett og omtrent 10 ^ 77. Dette virker kanskje ikke så mye av et utvalg, men for praktiske formål er det i det vesentlige uendelig. Hvis du kunne behandle en billion private nøkler per sekund, ville det ta mer enn en million ganger universets alder å telle dem alle. verre, bare å telle opp disse nøklene ville forbruke mer enn den totale energien fra sola i 32 år. Dette enorme nøkkelområdet spiller en grunnleggende rolle for å sikre Bitcoin-nettverket.

    Kommentarer

    • Chuck Norris har talt til uendelig, to ganger.
    • Chuck Norris fortalte Satoshi Nakomoto hva de skulle gjøre.

    Svar

    2 ^ 256 = 1.1×10 ^ 77 = antall tastekombinasjoner

    2 ^ 128 = 3.4×10 ^ 38 = gjennomsnittlig antall gjetninger som trengs

    I følge dette nettstedet: http://en.wikipedia.org/wiki/TOP500 , den raskeste superdatamaskinen er K-datamaskinen som har 10,51 petaflops.

    En petaflop er 10 ^ 15 FLOPS, floating point instr funksjoner per sekund.

    Så langt så bra, men jeg trenger å vite hvor mange FLOPS som trengs per gjetning?

    [Jeg vil gjette et gjetning:]

    Mellom 1000 og 10.000 FLOPS (eller heltallsekvivalenter) per gjetning.

    10,51×10 ^ 15 ops / sekund / 1000 til 10000 ops / gjetning) = 10,51×10 ^ 12 til 10,51×10 ^ 11 gjetning / sekund.

    3.4×10 ^ 38 gjetninger / sprekk / 10.51×10 ^ 12 gjetning / sekund = 3.2×10 ^ 25 sekunder.

    3.2×10 ^ 25 sekunder / 60 sekunder / minutt / 60 minutter / time / 24 timer / dag / 365,25 dager / år = 1,01×10 ^ 18 år

    1,01×10 ^ 18 år / 1×10 ^ 9 / 1×10 ^ 9 = 1,014 til 10,014 milliarder milliarder år.

    Så datamaskinene i Bitcoin-nettverket er dobbelt så raske som den eneste største laboratoriedatamaskinen.

    Kommentarer

    • Det er nøyaktig 0 FLOP-er som kreves for å prøv en kombinasjon, ettersom en FLOP er en flytende punktoperasjon, og EC-matematikk bare krever heltalloperasjoner.
    • Det har aldri vært en datamaskin jeg har jobbet med som ikke kunne ‘ t do integer ma th. Så jeg vil anta at den sørkoreanske K-datamaskinen også kan gjøre det.
    • Ja, men andelen mellom hastigheten på heltall og flytende punktoperasjoner varierer betydelig mellom maskinvare. Gitt en viss fordeling av maskinvaretyper som utgjør Bitcoin ‘ gruvedrift, kan du gi et estimat, men svaret på spørsmålet » hvor mange FLOPS som trengs per gjetning «, svaret er absolutt 0.
    • antall tastekombinasjoner = 2 ^ 256; gjennomsnittlig antall gjetninger som trengs = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, la ingen merke til det? Vel, det endrer ikke milliarden (milliarder) år som trengs …

    Svar

    Det er en vanitygen verktøy (sjekk ut utnyttelsesversjonen som er forbedret gaffel av samr7 «s versjon ) som kan gi deg estimatene hvor lang tid det tar å finne den private nøkkelen for det gitte mønsteret (se: vg_output_timing_console() ). Noen spesielle tilfeller (som gjentatte tegn) er vanskeligere enn de andre.

    Det vanskelige å finne en forfengelighetadresse avhenger av dens nøyaktige struktur (hovedbokstaver og tall) og hvor sannsynlig en slik utgang er gitt algoritmene som er involvert, som kan bestå av flere pivoter der vanskeligheten plutselig endres. bitcoin wiki

    Her er tabellen som kan finnes på bitcoin-wiki-side som gir estimeringstider for å knekke private nøkler for de gitte adressemønstrene:

    bitcoin, vanitygen for å prøve å angripe adresser, Vanitygen, Keysearch Rates tabell, Mkey / s, CPU / GPU, tabell, desillion år, gjennomsnittlig tid

    Eksemplet nedenfor viser hvordan en stadig mer kompleks forfengelighet påvirker vanskeligheten og gjennomsnittlig tid som kreves for å finne en kamp bare for den forfengeligheten, enn si den fulle adresse, for en maskin som kan se gjennom 1 million nøkler per sekund.

    Ved å bruke vanitygen kan du tro at du vil kunne finne den private nøkkelen til en gitt adresse. I praksis anses dette som umulig.


    Praktisk eksempel

    La oss lage følgende unspendable bitcoin-adresse :

    $ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

    Ved å bruke vanitygen kan jeg beregne ytelsen på maskinen min (> 240 Kkey / s):

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

    Merk: Ovenfor ble testet på MacBook Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3).

    Videre kan den beregne den estimerte tiden når man leter etter spesifikke mønstre, f.eks.

    • for å finne de 5 første tegnene av 26-35 (få sekunder):

      $ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s] 
    • 6 første tegn av 26-35 (få minutter):

      $ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min] 
    • 7 tegn av 26-35 (få timer):

      $ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h] 
    • 8 tegn ut av 26-35 (noen uker):

      $ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d] 
    • 9 tegn ou t på 26-35 (få år):

      $ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y] 
    • 10 tegn av 26-35 (et århundre):

      $ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y] 
    • 11 tegn av 26-35 (få årtusener)

      $ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y] 
    • 12 tegn av 26-35 (hundrevis av årtusener):

      vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
    • 13 tegn av 26-35 (tusenvis av årtusener, få millioner år):

      $ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y] 
    • 14 tegn av 26- 35 (milliarder år):

      $ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y] 
    • 15 tegn av 26-35 (50 milliarder år):

      $ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y] 
    • … 28 tegn ( desillion år hvis du «re lucky)

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

    Det er verdt å merke seg at den ovennevnte genererte adressen har 34 byte, men første tegn er bare nettverksidentifikatoren (for bitcoin er det vanligvis 1 eller 3), og de siste 4 byte er bare en kontrollsum. For mer informasjon om adressen, se denne wiki-siden .


    Nøkkelsøkningshastigheter

    For sikker nøkkelsøkfrekvensen kan økes ved å bruke en bedre GPU eller flere CPUer (se: -t), men likevel kan estimatene være enorme.

    For eksempel, her er tabellen over nøkkelsøkningshastigheter på bitcoin-wiki-siden :

    Vanitygen, nøkkelsøkertabell, Mkey / s, CPU / GPU

    Og her er det få rapporter fra brukere for forskjellige GPUer:

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

    Kilde: Liste over støttede GPUer (GH-46) .

    Svar

    Den eneste realistiske risikoen vil være kvanteberegning.

    Eller oppdagelsen av en feil eller feil i BTC-programvarealgoritmene. Da kan sprekker være noen sekunder, avhengig av feiltypen.

    Kommentarer

    • Hei og velkommen til StackExchange. Er du sikker på at du ikke ‘ ikke vil gi dette en kommentar til noe annet svar, i stedet for et selvstendig svar av seg selv?
    • @ThePiachu, takk . Som du kanskje vet, kan ikke nye brukere legge ut kommentarer, bare svar. Moderatoren er velkommen til å fikse dette. (Jeg kan bare kommentere mine egne svar)
    • Å, du er moderator. Jeg la merke til det. 🙂

    Svar

    Den raskeste datamaskinen er 150 Petraflops FPC per sekund ikke 10 … Prøv og holde tritt med tidene (NV Link og Volta HCP Cards på IBM-prosessorer) … du kan lese eller se mer på team greens nettsted eller konferansevidene 2015 på U-tube. Siden det generelle svaret ser ut til å være basert på 10 Petraflops som verdens raskeste datamaskin …Du bør være tydelig i stand til å se hvor raskt FPC per sekund kan endres. Department of Energy planlegger et 300P-system som allerede er basert på den samme teknologien.

    Poenget er at bitcoin-folkene dine forteller deg hvor sikkert det er basert på 10P allerede har grunnleggende matematikk feil 15-30 ganger fordi de tydeligvis ikke vet så mye de tror. ikke avhengig av Moores lov heller, har de nylige fremskrittene og de nåværende begrensningene å gjøre med en helt annen lov, det er det NV Link løste så godt det kunne og forbedret datatiden så godt. Dette er akkurat dagens eksempel på hvordan deres teorien om en milliard milliarder år er allerede feil med en faktor på 15-30 og vil fortsette å bli feil hvert år med en mye høyere hastighet enn de antar. Om 30 år eller mindre vil bitcoin på det nåværende nivå lett bli sprukket av alle som har 40 til 50000 dollar å bruke (i dagens penger) eller kan bruke et hvilket som helst antall universitets- eller bedrifts-superdatamaskiner.

    Alle som faktisk tror at 50 år gammel teknologi kommer til å holde noe digitalt sikkert 50 år senere er ærlig talt ikke den typen person du burde være s aying noe oppmerksomhet til i det hele tatt … Betyr det at bitcoin er farlig i dag? Ikke egentlig, men hvis de samme menneskene har ansvaret for sikkerheten om 30 år, er det de samme clueless menneskene som er her akkurat nå, vil det være.

    Kommentarer

    • NVLink er en teknologi for å muliggjøre raskere og mer energieffektiv kommunikasjon mellom noder i en superdatamaskin. Ingen av dem er virkelig et problem hvis du ‘ bygger opp en distribuert nøkkelknekker.

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *