Hur lång tid skulle det ta en stor dator att knäcka en privat nyckel?

Jag gör en presentation på Bitcoins och jag letade efter några beräkningar för att få människor att känna sig säkra på den privata nyckelkrypteringen. Svara först, hur länge i byte den privata nyckeln är, sedan hur många kombinationer av siffror den kommer att innehålla, och sedan vad är den snabbaste datorn eller nätverket av superdatorer och hur lång tid det tar att knäcka en privat nyckel med den datorn. Jag tror att resultatet skulle bli väldigt pedagogiskt baserat på mina egna beräkningar. Tack.

Kommentarer

Svar

hur lång tid i byte den privata nyckeln är

32 byte eller 256 bitar

hur många kombinationer av nummer det kommer att innehålla

Det finns 2 ^ 256 olika privata nycklar. Det ”är lite större än en 1 följt av 77 nollor.

vad är den snabbaste datorn eller nätverket av superdatorer

Vid sin topp omkring augusti 2011 kontrollerade Bitcoin-nätverket 15 biljoner sha256 hash per sekund. (Se http://bitcoin.sipa.be/ )

hur lång tid det tar att knäcka en privat nyckel med den datorn

Om vi antar att det tar samma tid att köra en ECDSA-operation som det tar att kontrollera en sha256-hash (det tar mycket längre tid), och vi använder en optimering som gör att vi bara behöver 2 ^ 128 ECDSA-operationer, då kan den tid som behövs beräknas:

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

Det är 0,65 miljarder miljarder år.

Det ” en mycket konservativ uppskattning för den tid det tar att bryta en enda Bitcoin-adress.

Redigera: det påpekades att datorer tenderar att bli exponentiellt snabbare över tid, enligt Moores lag . Förutsatt att datorhastigheten fördubblas varje år (Moores lag säger 2 år, men vi kommer att göra fel på sidan av försiktighet), så om 59 år tar det bara 1,13 år. Så dina mynt är säkra de kommande 60 åren utan en ändring av algoritmerna som används för att skydda blockkedjan. Jag förväntar mig dock att algoritmerna ändras långt innan det är möjligt att bryta skyddet de ger.

Kommentarer

  • Moore ’ Lagen (eller liknande) skulle antagligen få ner det numret lite, men inte tillräckligt för att göra något. Så länge svaret är någon form av ” längre än det skulle ta att bryta mynt som lagrats på den adressen ” borde vi vara säkra 🙂
  • Det är viktigt, för folk förtjänar att veta hur säkra deras pengar är.
  • Att ’ antar att Moore ’ s lag kan fortsätta i ytterligare sex decennier. Å andra sidan kanske QC är mainstream då.
  • Bra svar. Värt att notera att Bitcoin ’ s nätverkskumulativa kraft nu är nästan 10 gånger värdet sedan detta svar skrevs. Så det ’ s ” endast ” ~ 653 miljoner års beräkning.

Svar

En Bitcoin-privatnyckel är ett slumpmässigt 256-bitarsnummer. Den offentliga nyckeln avslöjar dock viss information om den privata nyckeln. De mest kända algoritmerna för att bryta ECDSA kräver O (sqrt (n)) operationer. Det betyder att 2 ^ 128 operationer behövs för att bryta ett Bitcoin-konto.

Den största ECDSA-nyckeln som hittills har brutits av den typ som Bitcoin använder var 112 bitar lång. Ett Bitcoin-konto är mer än 4000 miljarder gånger svårare att bryta.

Den enda realistiska risken skulle vara kvantberäkning.

Kommentarer

  • Det bör också noteras att även kvantberäkning bara förväntas minska tiden från pow (2, N) till pow (2, N / 2), som trots att det är betydande inte spricker det vidöppet. Se en.wikipedia.org/wiki/Key_size
  • @GaryRowe Du ’ har fel . Halveringen av tangentlängden gäller symmetriska tangenter. De flesta asymmetriska kodningar (inklusive ECDSA som används för bitmynt) kan brytas på polynom med en kvantdator tack vare Shor ’ s algoritm.För att citera den wikipedia-artikeln ” Det allmänna samförståndet är att dessa allmänna nyckelalgoritmer är osäkra i vilken nyckelstorlek som helst om tillräckligt stora kvantdatorer kan köra Shor ’ s algoritm blir tillgänglig. ”. Även om det finns kvantsäkra signaturscheman, ’ skulle det troligen spränga blockkedjan mycket .
  • @CodeInChaos Bra poäng alla – sorry att ha infört förvirring.
  • O (sqrt (n)) attacken är födelsedagsattacken, vilket är möjligt i varje chifferschema. Vilken ” information om den privata nyckeln ” som den offentliga nyckeln avslöjar hänvisar du till?
  • @dionyziz I ’ jag talar inte om födelsedagsattacken, jag ’ jag talar om att vända en offentlig nyckel från ECDSA för att få motsvarande privata nyckel. ” informationen om den privata nyckeln ” som den offentliga nyckeln avslöjar är den punkt som motsvarar den privata nyckeln multiplicerad med generatorn. Detta möjliggör användning av diskreta logaritmealgoritmer som stort steg, litet steg .

Svar

En Bitcoin-privatnyckel (ECC-nyckel) är ett heltal mellan ett och cirka 10 ^ 77. Det här kanske inte verkar vara mycket av ett urval, men för praktiska ändamål är det i princip oändligt. Om du kunde bearbeta en biljon privata nycklar per sekund, skulle det ta mer än en miljon gånger universums ålder att räkna dem alla. Till och med värre, att bara räkna upp dessa nycklar skulle konsumera mer än solens totala energi i 32 år. Detta stora nyckelutrymme spelar en grundläggande roll för att säkra Bitcoin-nätverket.

Kommentarer

  • Chuck Norris har räknat till oändlighet, två gånger.
  • Chuck Norris berättade för Satoshi Nakomoto vad man ska göra.

Svar

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

2 ^ 128 = 3,4×10 ^ 38 = det genomsnittliga antalet gissningar som behövs

Enligt denna webbplats: http://en.wikipedia.org/wiki/TOP500 , den snabbaste superdatorn är K-datorn som har 10,51 petaflops.

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

Hittills så bra, men jag måste veta hur många FLOPS som behövs per gissning?

[Jag vågar gissa:]

Mellan 1 000 och 10 000 FLOPS (eller heltalekvivalenter) per gissning.

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

3.4×10 ^ 38 gissningar / spricka / 10.51×10 ^ 12 gissning / sekund = 3.2×10 ^ 25 sekunder.

3.2×10 ^ 25 sekunder / 60 sekunder / minut / 60 minuter / timme / 24 timmar / dag / 365,25 dagar / år = 1,01×10 ^ 18 år

1,01×10 ^ 18 år / 1×10 ^ 9 / 1×10 ^ 9 = 1,014 till 10,014 miljarder år.

Så datorerna i Bitcoin-nätverket är dubbelt så snabba som den enskilt största laboratoriedatorn.

Kommentarer

  • Det krävs exakt 0 FLOP för att prova en kombination, eftersom en FLOP är en flytande punktoperation och EC-matematik kräver bara heltalsåtgärder.
  • Det har aldrig funnits en dator som jag har arbetat med som inte kunde ’ gör inte heltal ma th. Så jag antar att den sydkoreanska K-datorn också kan göra det.
  • Ja, men andelen mellan hastigheten för heltal och flytande punktoperationer skiljer sig avsevärt mellan hårdvara. Med en viss fördelning av hårdvarutyper som utgör Bitcoin ’ gruvkraft kan du ge en uppskattning, men svaret på frågan ” hur många FLOPS som behövs per gissning ”, svaret är säkert 0.
  • antal tangentkombinationer = 2 ^ 256; genomsnittligt antal gissningar som behövs = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, såg ingen det? Det ändrar inte de miljarder (miljarder) år som behövs …

Svar

Det finns en vanitygen verktyg (kolla in exploitagency version s som är förbättrad gaffel av samr7 ”s version ) som kan ge dig uppskattningarna hur lång tid det tar att hitta den privata nyckeln för det angivna mönstret (se: vg_output_timing_console() ). Vissa specialfall (som upprepade tecken) är svårare än de andra.

Det svåra att hitta en fåfängadress beror på dess exakta struktur (ledande bokstäver och siffror) och hur sannolikt en sådan utgång ges de inblandade algoritmerna, som kan bestå av flera svängningar där svårigheten plötsligt förändras. bitcoin wiki

Här är tabellen som kan finns på wiki-sida som ger uppskattningstider för att knäcka privata nycklar för de angivna adressmönstren:

bitcoin, vanitygen för att försöka attackera adresser, Vanitygen, tabell för nyckelsökningspriser, Mkey / s, CPU / GPU, tabell, decillionår, genomsnittstid

Tabellen nedan visar hur en alltmer komplex fåfänga påverkar svårigheten och den genomsnittliga tid som krävs för att hitta en matchning bara för den fåfängan, än mindre den fulla adress, för en maskin som kan titta igenom 1 miljon nycklar per sekund.

Med hjälp av vanitygen kan du tro att du skulle kunna hitta den privata nyckeln för en given adress. I praktiken anses detta omöjligt.


Praktiskt exempel

Låt oss skapa följande unspendable bitcoin-adress :

$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

Sedan använder jag vanitygen Jag kan beräkna prestandan på min maskin (> 240 Kkey / s):

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

Obs: Ovan testades på MacBook Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3).

Dessutom kan den beräkna den uppskattade tiden när man letar efter specifika mönster, t.ex.

  • för att hitta de 5 första tecknen av 26-35 (några sekunder):

    $ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s] 
  • 6 första tecken av 26-35 (några minuter):

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

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

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

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

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

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

    vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
  • 13 tecken av 26-35 (tusentals årtusenden, några miljoner år):

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

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

    $ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y] 
  • … 28 tecken ( decillion år om du ”har tur)

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

Det är värt att notera att den ovan genererade adressen har 34 byte, men första tecknet är bara nätverksidentifieraren (för bitcoin är det vanligtvis 1 eller 3) och de sista 4 bytes är bara en kontrollsumma. För mer information om adressen, se den här bitcoin-wiki-sidan .


Nyckelsökningshastigheter

Visst nyckelsökningshastigheten kan ökas med en bättre GPU eller flera processorer (se: -t), men ändå kan uppskattningarna vara enorma.

Till exempel, här är tabellen över nyckelsökningshastigheter vid bitcoin-wiki-sida :

Vanitygen, tabell för nyckelsökningspriser, Mkey / s, CPU / GPU

Och här är några rapporter från användare för olika GPU: er:

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

Källa: Lista över grafikkort som stöds (GH-46) .

Svar

Den enda realistiska risken är kvantberäkning.

Eller upptäckten av ett fel eller fel i BTC-programvarealgoritmerna. Då kan sprickor vara några sekunder, beroende på typen av fel.

Kommentarer

  • Hej och välkommen till StackExchange. Är du säker på att du inte ’ inte vill göra detta till en kommentar till något annat svar, snarare än ett fristående svar i sig själv?
  • @ThePiachu, tack . Som du kanske vet kan nya användare inte lägga upp kommentarer, bara svar. Moderator är välkommen att fixa detta. (Jag kan bara kommentera mina egna svar)
  • Åh, du är en moderator. Jag märkte precis. 🙂

Svar

Den snabbaste datorn är 150 Petraflops FPC per sekund inte 10 … Prova och fortsätt med tiderna (NV Link och Volta HCP-kort på IBM-processorer) … du kan läsa eller titta på mer på teamgrönens webbplats eller konferensvideo 2015 på U-rör. Eftersom det allmänna svaret verkar baseras på 10 Petraflops som världens snabbaste dator …Du bör tydligt kunna se hur snabbt FPC per sekund kan förändras, Department of Energy planerar ett 300P-system som redan är baserat på samma teknik.

Poängen är att dina bitcoin-folk berättar hur säkert det är baserat på 10P redan har den grundläggande matematiken fel 15-30 gånger eftersom de uppenbarligen inte vet så mycket som de tror. inte heller beroende av Moores lag, de senaste framstegen och de nuvarande begränsningarna har att göra med en helt annan lag, vilket är vad NV Link löste så gott som möjligt och förbättrade datatiden så bra. Detta är just dagens exempel på hur deras teorin om en miljard miljarder år är redan fel med en faktor på 15-30 och kommer att fortsätta att bli fel varje år i en mycket högre takt än de antar. Om 30 år eller mindre kommer bitcoin på den nuvarande nivån att lätt bli knäckt av alla som har 40 till 50 000 dollar att spendera (i dagens pengar) eller kan använda valfritt antal universitets- eller företagsdatorer.

Den som faktiskt tror att 50 år gammal teknik kommer att hålla något digitalt säkert 50 år senare är uppriktigt sagt inte den typ av person du borde vara s tänker NÅGON uppmärksamhet alls … Betyder det att bitcoin är farligt idag? Inte riktigt, men om samma folk har ansvaret för säkerheten om 30 år, är det samma lediga människor som är här just nu kommer det att vara.

Kommentarer

  • NVLink är en teknik för att möjliggöra snabbare och mer energieffektiv kommunikation mellan noder i en superdator. Ingen av dessa är verkligen ett problem om du ’ bygger en distribuerad nyckelknäckare.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *