Hvor lang tid ville det tage en stor computer at knække en privat nøgle?

Jeg laver en præsentation på Bitcoins, og jeg ledte efter nogle beregninger for at få folk til at føle sig sikre med den private nøglekryptering. Svar først, hvor lang tid i byte den private nøgle er, så hvor mange kombinationer af tal den vil indeholde, og derefter hvad er den hurtigste computer eller netværk af supercomputere, og hvor lang tid det tager at knække en privat nøgle ved hjælp af den computer. Jeg tror, at resultatet ville være meget lærerigt baseret på mine egne beregninger. Tak.

Kommentarer

Svar

hvor længe i byte den private nøgle er

32 byte eller 256 bits

så hvor mange kombinationer af tal det vil indeholde

Der er 2 ^ 256 forskellige private nøgler. Det “er lidt større end en 1 efterfulgt af 77 nuller.

hvad er den hurtigste computer eller netværk af supercomputere

Ved sit højdepunkt omkring august 2011 kontrollerede Bitcoin-netværket 15 billioner sha256 hashes pr. Sekund. (Se http://bitcoin.sipa.be/ )

hvor lang tid det tager at knække en privat nøgle ved hjælp af den computer

Hvis vi antager, at det tager samme tid at køre en ECDSA-operation, som det tager at kontrollere en sha256-hash (det tager meget længere tid), og vi bruger en optimering, der giver os kun behov 2 ^ 128 ECDSA-operationer, så kan den nødvendige tid beregnes:

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

Det er 0,65 milliarder milliarder år.

At ” et meget konservativt skøn over den tid, det tager at bryde en enkelt Bitcoin-adresse.

Rediger: det blev påpeget, at computere har en tendens til at blive eksponentielt hurtigere over tid ifølge Moores lov . Hvis vi antager, at beregningshastigheden fordobles hvert år (Moores lov siger 2 år, men vi vil fejle ved siden af forsigtighed), så om 59 år vil det kun tage 1,13 år. Så dine mønter er sikre de næste 60 år uden en ændring af de algoritmer, der bruges til at beskytte blockchain. Jeg forventer dog, at algoritmerne skal ændres længe, før det er muligt at bryde den beskyttelse, de giver.

Kommentarer

  • Moore ‘ Lov (eller lignende) ville sandsynligvis bringe dette tal lidt ned, men ikke nok til at betyde noget. Så længe svaret er en eller anden form for ” længere end det ville tage at udvinde de mønter, der er gemt på den adresse “, skal vi være sikre 🙂
  • Det betyder noget, fordi folk fortjener at vide, hvor sikre deres penge er.
  • At ‘ antager, at Moore ‘ s lov kan fortsætte i yderligere 6 årtier. På den anden side er måske QC mainstream inden da.
  • Fantastisk svar. Værd at bemærke, at Bitcoin ‘ s kumulative netværk nu næsten er 10 gange værdien, siden dette svar blev skrevet. Så det ‘ s ” kun ” ~ 653 millioner års beregning.

Svar

En privat Bitcoin-nøgle er et tilfældigt 256-bit nummer. Den offentlige nøgle afslører dog nogle oplysninger om den private nøgle. De bedst kendte algoritmer til at bryde ECDSA kræver O (sqrt (n)) operationer. Det betyder, at 2 ^ 128 operationer er nødvendige for at bryde en Bitcoin-konto.

Den største ECDSA-nøgle, der hidtil er brudt af den type, som Bitcoin bruger, var 112 bit lang. En Bitcoin-konto er mere end 4.000 milliarder milliarder gange sværere at bryde.

Den eneste realistiske risiko ville være kvanteberegning.

Kommentarer

  • Det skal også bemærkes, at selv kvanteberegning kun forventes at reducere tiden fra pow (2, N) til pow (2, N / 2), som skønt det ikke er markant, at det ikke knækker det åbent. Se da.wikipedia.org/wiki/Key_size
  • @GaryRowe Du ‘ tager fejl . Halveringen af nøgellængden gælder for symmetriske taster. De fleste asymmetriske chifre (inklusive ECDSA, der bruges til bitcoint) kan brydes på polynomisk tid med en kvantecomputer takket være Shor ‘ s algoritme.For at citere den wikipedia-artikel ” Den generelle konsensus er, at disse offentlige nøglealgoritmer er usikre i enhver nøglestørrelse, hvis tilstrækkelig store kvantecomputere er i stand til at køre Shor ‘ s algoritme bliver tilgængelig. “. Mens der er kvantesikre signaturordninger,

vil det nok sprænge blockchain meget .

  • @CodeInChaos Gode point alle – undskyld at have indført forvirring.
  • O (sqrt (n)) angrebet er fødselsdagsangrebet, hvilket er muligt i alle krypteringsplaner. Hvilke ” oplysninger om den private nøgle ” som den offentlige nøgle afslører, henviser du til?
  • @dionyziz I ‘ Jeg taler ikke om fødselsdagsangrebet, jeg ‘ Jeg taler om at vende en offentlig ECDSA-nøgle for at få den tilsvarende private nøgle. ” information om den private nøgle “, som den offentlige nøgle afslører, er det punkt, der svarer til den private nøgle ganget med generatoren. Dette muliggør brug af diskrete logaritmealgoritmer som stort trin, lille trin .
  • Svar

    En Bitcoin privat nøgle (ECC-nøgle) er et heltal mellem en og omkring 10 ^ 77. Dette virker måske ikke som meget af et valg, men af praktiske formål er det i det væsentlige uendeligt. Hvis du kunne behandle en billion private nøgler pr. Sekund, ville det tage mere end en million gange universets alder at tælle dem alle. Selv værre, bare optælling af disse nøgler ville forbruge mere end solens samlede energi output i 32 år. Dette enorme nøgleområde spiller en grundlæggende rolle i sikringen af Bitcoin-netværket.

    Kommentarer

    • Chuck Norris har talt til uendelig, to gange.
    • Chuck Norris fortalte Satoshi Nakomoto, hvad de skulle gøre.

    Svar

    2 ^ 256 = 1.1×10 ^ 77 = antal tastekombinationer

    2 ^ 128 = 3,4 x 10 ^ 38 = det gennemsnitlige antal nødvendige gæt

    Ifølge dette websted: http://en.wikipedia.org/wiki/TOP500 , den hurtigste supercomputer er K-computeren, der har 10,51 petaflops.

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

    Indtil videre så godt, men jeg har brug for at vide, hvor mange FLOPS der er behov for pr. gæt?

    [Jeg vil vove et gæt:]

    Mellem 1.000 og 10.000 FLOPS (eller heltalækvivalenter) pr. Gætte.

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

    3.4×10 ^ 38 gæt / crack / 10.51×10 ^ 12 gæt / sekund = 3.2×10 ^ 25 sekunder.

    3.2×10 ^ 25 sekunder / 60 sekunder / minut / 60 minutter / time / 24 timer / dag / 365,25 dage / å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å computerne på Bitcoin-netværket er dobbelt så hurtige som den enkeltestørste laboratoriecomputer.

    Kommentarer

    • Der er nøjagtigt 0 FLOPer nødvendige for at prøv en kombination, da en FLOP er en flydende punktoperation, og EC-matematik kun kræver heltalshandlinger.
    • Der har aldrig været en computer, som jeg har arbejdet med, der ikke kunne ‘ gør ikke heltal ma th. Så jeg antager, at den sydkoreanske K-computer også kan gøre det.
    • Ja, men forholdet mellem hastighed af heltal og flydende punktoperationer varierer betydeligt mellem hardware. I betragtning af en vis fordeling af hardwaretyper, der udgør Bitcoin ‘ s minekraft, kan du give et skøn, men svaret på spørgsmålet ” hvor mange FLOPS der er behov for pr. gætte “, svaret er bestemt 0.
    • antal tastekombinationer = 2 ^ 256; gennemsnitligt antal gætter nødvendige = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, bemærkede ingen? Det ændrer ikke de nødvendige milliarder (af milliarder) år ..

    Svar

    Der er en vanitygen værktøj (tjek udnyttelsesversion) som er forbedret gaffel af samr7 “s version ), som kan give dig estimaterne, hvor lang tid det tager at finde den private nøgle til det givne mønster (se: vg_output_timing_console() ). Nogle specialtilfælde (som gentagne tegn) er vanskeligere end de andre.

    Det vanskelige at finde en forfængelighedsadresse afhænger af dens nøjagtige struktur (hovedbogstaver og tal) og hvor sandsynligt en sådan output gives de involverede algoritmer, som kan bestå af flere drejninger, hvor vanskeligheden pludselig ændres. bitcoin wiki

    Her er tabellen, som kan findes på wiki-side , der giver estimeringstider for at knække private nøgler til de givne adressemønstre:

    bitcoin, vanitygen for at forsøge at angribe adresser, Vanitygen, tabel med nøglesøgningshastigheder, Mkey / s, CPU / GPU, tabel, decillion år, gennemsnitstid

    Eksemplet nedenfor viser, hvordan en stadig mere kompleks forfængelighed påvirker vanskeligheden og den gennemsnitlige tid, der kræves for kun at finde et match for den forfængelighed, endsige den fulde adresse til en maskine, der er i stand til at kigge igennem 1 million nøgler pr. sekund.

    Ved hjælp af vanitygen tror du måske, at du ville være i stand til at finde den private nøgle til en given adresse. I praksis betragtes dette som umuligt.


    Praktisk eksempel

    Lad os oprette følgende unspendable bitcoin-adresse :

    $ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

    Brug derefter vanitygen Jeg kan beregne ydeevnen på min maskine (> 240 Kkey / s):

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

    Bemærk: Ovenstående blev testet på MacBook Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3).

    Desuden kan den beregne den estimerede tid, når man leder efter bestemte mønstre, fx

    • for at finde de første 5 tegn ud af 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 ud af 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 ud af 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 ud af 26-35 (få uger):

      $ 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 ud af 26-35 (et århundrede):

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

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

      vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
    • 13 tegn ud af 26-35 (tusinder af årtusinder, 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 ud af 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 ud af 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 ( decillion år, hvis du “er heldig)

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

    Det er værd at bemærke, at den ovenfor genererede adresse har 34 byte, men første tegn er bare netværksidentifikatoren (for bitcoin er det normalt 1 eller 3) og de sidste 4 bytes er bare et kontrolsum. For flere detaljer om adressen, se denne bitcoin-wiki-side .


    Nøglesøgningshastigheder

    Sikker nøglesøgningshastigheden kan øges ved hjælp af en bedre GPU eller flere CPUer (se: -t), men estimaterne kan stadig være enorme.

    For eksempel kan her er tabellen over nøglesøgningshastigheder ved bitcoin-wiki-side :

    Vanitygen, tabel med nøglesøgningshastigheder, Mkey / s, CPU / GPU

    Og her er få rapporter fra brugere for forskellige 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 understøttede GPUer (GH-46) .

    Svar

    Den eneste realistiske risiko ville være kvanteberegning.

    Eller opdagelsen af en fejl eller fejl i BTC-softwarealgoritmerne. Derefter kan revnedannelse være et spørgsmål om sekunder afhængigt af fejltypen.

    Kommentarer

    • Hej og velkommen til StackExchange. Er du sikker på, at du ikke ‘ ikke ville give dette en kommentar til et andet svar i stedet for et selvstændigt svar i sig selv?
    • @ThePiachu, tak . Som du måske ved, kan nye brugere ikke skrive kommentarer, bare svar. Moderatoren er velkommen til at rette op på dette. (Jeg kan kun kommentere mine egne svar)
    • Åh, du er moderator. Jeg har lige bemærket det. 🙂

    Svar

    Den hurtigste computer er 150 Petraflops FPC pr. sekund ikke 10 … Prøv og holde trit med tiden (NV Link og Volta HCP-kort på IBM-strømprocessorer) … du kan læse eller se mere på teamgrønne hjemmeside eller i 2015 Conference Vids på U-tube. Da det generelle svar synes at være baseret på 10 Petraflops som verdens hurtigste computer …Du skal klart kunne se, hvor hurtigt FPC per sekund kan ændre sig. Energidepartementet planlægger et 300P-system, der allerede er baseret på den samme teknologi.

    Pointen er, at dine bitcoin-folk fortæller dig, hvor sikker den er baseret på 10P, allerede har den grundlæggende matematik forkert 15-30 gange, fordi de åbenbart ikke ved så meget, som de tror. heller ikke afhængig af Moores lov, de seneste fremskridt og nuværende begrænsninger har at gøre med en helt anden lov, hvilket er det, NV Link løste bedst muligt og forbedrede computertiden så godt. Dette er netop i dag et eksempel på, hvordan deres teorien om en milliard milliarder år er allerede forkert med en faktor på 15-30 og vil fortsat blive forkert hvert år med en meget højere hastighed, end de antager. Om 30 år eller mindre vil bitcoin på det nuværende niveau let blive revnet af enhver, der har 40 til 50.000 dollars at bruge (i dagens penge) eller kan bruge et hvilket som helst antal universitets- eller virksomheds-supercomputere.

    Enhver, der faktisk tror, at 50-årig teknologi vil holde noget digitalt sikkert 50 år senere er ærligt talt ikke den slags person, du skal være s har overhovedet nogen som helst opmærksomhed … Betyder det, at bitcoin er farligt i dag? Ikke rigtig, men hvis de samme folk har ansvaret for sikkerhed i løbet af 30 år, er de samme clueless mennesker, der er her lige nu, vil det være.

    Kommentarer

    • NVLink er en teknologi, der muliggør hurtigere og mere energieffektiv kommunikation mellem noder i en supercomputer. Ingen af disse er virkelig et problem, hvis du ‘ genopbygger en distribueret nøgleknækker.

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *