Mennyi időbe telhet egy nagy számítógép egy magánkulcs feltörése?

Előadást tartok a Bitcoins-ról, és néhány számítást kerestem, hogy az emberek biztonságban érezhessék magukat a privát kulcs titkosításában. Kérjük, először válaszolja meg, hogy mennyi bájtban van a magánkulcs, majd hány számkombinációt tartalmaz, majd hogy mi a leggyorsabb számítógép vagy szuperszámítógép-hálózat, és mennyi időbe telik egy magánkulcs feltörése az adott számítógép segítségével. Úgy gondolom, hogy az eredmény a saját számításaim alapján nagyon oktató lenne. Köszönöm.

Hozzászólások

Válasz

mennyi bájtban van a magánkulcs

32 bájt vagy 256 bit

akkor hány számkombinációt fog tartalmazni

2 ^ 256 különböző privát kulcs van. Ez “alig nagyobb az 1-nél, majd 77 nulla következik.

mi a leggyorsabb számítógép vagy szuperszámítógép-hálózat

A 2011 augusztus körüli csúcsponton a Bitcoin hálózat másodpercenként 15 billió sha256 hash-t ellenőrizett. (Lásd: http://bitcoin.sipa.be/ )

mennyi időbe telik egy magánkulcs feltörése az adott számítógép segítségével

Ha feltételezzük, hogy ugyanannyi időbe telik egy ECDSA-művelet futtatása, mint amennyi egy sha256-os hash ellenőrzéséhez szükséges (ez sokkal tovább tart), és olyan optimalizálást használunk, amely lehetővé teszi számunkra, hogy csak 2 ^ 128 ECDSA művelet, akkor a szükséges idő kiszámolható:

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

Ez 0,65 milliárd év.

Ez ” nagyon konzervatív becslés az egyetlen Bitcoin-cím megszakításához szükséges időre. div id = “f10c52a711”>

Moore törvénye . Feltételezve, hogy a számítási sebesség minden évben megduplázódik (Moore törvénye szerint 2 év, de tévedünk az óvatosság mellett), akkor 59 év múlva ez csak 1,13 évet vesz igénybe. Tehát érméi a következő 60 évben biztonságban vannak. a blokklánc védelme érdekében használt algoritmusok módosítása. Arra számítanék azonban, hogy az algoritmusok jóval azelőtt megváltoznak, hogy megvalósítható lenne az általuk nyújtott védelem.

Megjegyzések

  • Moore ‘ s Law (vagy hasonló) valószínűleg kissé csökkenti ezt a számot, de nem elég ahhoz, hogy számítana. Amíg a válasz valamilyen formában ” hosszabb, mint amennyi az adott címen tárolt érmék bányászásához szükséges “, biztonságban kell lennünk. 🙂
  • Ez azért számít, mert az emberek megérdemlik, hogy mennyire biztonságos a pénzük.
  • Ez ‘ Moore-t feltételezve ‘ törvény további 6 évtizedig folytatódhat. Másrészt talán addigra a QC a mainstream.
  • Remek válasz. Érdemes megjegyezni, hogy a Bitcoin ‘ hálózati kumulatív teljesítménye már majdnem tízszerese az értéknek, mióta ezt a választ írták. Tehát ‘ s ” csak ” ~ 653 millió év értékű számítás.

Válasz

A Bitcoin titkos kulcsa véletlenszerű 256 bites szám. A nyilvános kulcs azonban felfed néhány információt a magánkulcsról. Az ECDSA törésének legismertebb algoritmusai O (sqrt (n)) műveleteket igényelnek. Ez azt jelenti, hogy egy Bitcoin-számla megszakításához 2 ^ 128 műveletre lenne szükség.

A Bitcoin által használt típus legnagyobb bontott ECDSA-kulcsa 112 bit volt. Egy Bitcoin-fiókot több mint 4000 milliárd milliárdszor nehezebb feltörni.

Az egyetlen reális kockázat a kvantumszámítás lenne.

Megjegyzések

  • Azt is meg kell jegyezni, hogy még a kvantumszámítással is csak várhatóan csak a pow (2, N) és a pow (2, N / 2) közötti idő csökken, ami bár jelentős, nem tárja szélesre. Lásd: hu.wikipedia.org/wiki/Key_size
  • @GaryRowe You ‘ tévedsz . A szimmetrikus kulcsokra a kulcs hosszának felére vonatkozik. A legtöbb aszimmetrikus rejtjel (beleértve a bitpontra használt ECDSA-t is) a Shor ‘ s algoritmusnak köszönhetően, kvantumszámítógéppel polinomiális időben megszakadhat.A wikipédia cikkét idézve ” Az általános egyetértés az, hogy ezek a nyilvános kulcsú algoritmusok bármilyen kulcsméretnél nem biztonságosak, ha kellően nagy kvantumszámítógépek képesek futtatni a Shor ‘ s algoritmus elérhetővé válik. “. Bár vannak kvantumbiztos aláírási sémák, valószínűleg ‘ d valószínűleg nagyon felpuffasztják a blokkláncot .
  • @CodeInChaos Jó pontok – sajnálom hogy zavart vezetett be.
  • Az O (sqrt (n)) támadás a születésnapi támadás, amely minden titkosítási sémában lehetséges. Milyen ” információk találhatók a ” magánkulcsról, amelyekre a nyilvános kulcs felfedi, hivatkozik?
  • @dionyziz I ‘ nem a születésnapi támadásról beszélek, én ‘ arról beszélek, hogy megfordítom az ECDSA nyilvános kulcsát a megfelelő magánkulcs megszerzéséhez. A nyilvános kulcs által közzétett ” információ a ” magánkulcsról az a pont, amely megfelel annak a magánkulcsnak, amelyet a generátor szoroz. Ez lehetővé teszi olyan diszkrét logaritmus algoritmusok használatát, mint a nagy lépés, kis lépés .

Válasz

A Bitcoin magánkulcs (ECC kulcs) egy és körülbelül 10 ^ 77 közötti egész szám. Lehet, hogy ez nem tűnik sok választéknak, de gyakorlati célokból lényegében végtelen. Ha másodpercenként egy billió magánkulcsot tudna feldolgozni, akkor mindet meg kell számolni az univerzum korának több mint egymilliószorosával. ami még rosszabb, ha csak ezeket a kulcsokat felsoroljuk, akkor több mint 32 évig fogyasztaná a nap teljes energiatermelését . Ez a hatalmas billentyűtér alapvető szerepet játszik a Bitcoin hálózat biztonságában.

Megjegyzések

  • Chuck Norris a végtelenségig számolt kétszer.
  • Chuck Norris elmondta Satoshi Nakomoto-nak, mit kell tennie.

Válasz

2 ^ 256 = 1.1×10 ^ 77 = billentyűkombinációk száma

2 ^ 128 = 3,4×10 ^ 38 = a szükséges találgatások átlagos száma

E webhely szerint: http://en.wikipedia.org/wiki/TOP500 , a leggyorsabb szuperszámítógép a K számítógép, amely 10,51 petaflopot tartalmaz.

A petaflop 10 ^ 15 FLOPS, lebegőpontos instr másodpercenként.

Eddig nagyon jó, de tudnom kell, hány találatra van szükség FLOPS-ra?

[Kitalálok egy tippet:]

1000 és 10 000 közötti FLOPS (vagy egész egyenérték) között találgatásként.

10,51×10 ^ 15 op / másodperc / 1000 – 10000 op / találgatás) = 10,51×10 ^ 12 – 10,51×10 ^ 11 tipp / másodperc.

3,4×10 ^ 38 találgatás / crack / 10,51×10 ^ 12 tipp / másodperc = 3,2×10 ^ 25 másodperc.

3,2×10 ^ 25 másodperc / 60 másodperc / perc / 60 perc / óra / 24 óra / nap / 365,25 nap / év = 1,01×10 ^ 18 év

1,01×10 ^ 18 év / 1×10 ^ 9 / 1×10 ^ 9 = 1,014-10,014 milliárd év.

Tehát a Bitcoin hálózat számítógépei kétszer olyan gyorsak, mint az egyetlen legnagyobb laboratóriumi számítógépek.

Megjegyzések

  • Pontosan 0 FLOP szükséges próbáljon meg egy kombinációt, mivel a FLOP lebegőpontos művelet, és az EC matematika csak egész műveleteket igényel.
  • Még soha nem volt olyan számítógép, amelyen dolgoztam volna ‘ nem csinál ma egész számot th. Tehát azt feltételezném, hogy a dél-koreai K számítógép is meg tudja csinálni.
  • Igen, de az egész szám és a lebegőpontos műveletek sebessége közötti arány hardverenként jelentősen eltér. A Bitcoin ‘ s bányászatát képező hardvertípusok bizonyos megoszlása esetén becslést adhat, de a ” kérdésre adott válasz hány találatra van szükség egy találgatásonként “, a válasz minden bizonnyal 0.
  • billentyűkombinációk száma = 2 ^ 256; szükséges átlagos találgatások száma = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, senki sem vette észre? Nos, ez nem változtatja meg a szükséges milliárd (milliárd) évet.

Válasz

Van egy vanitygen segédprogram (nézze meg a exploitagency “verzióját amely a samr7 “verzió továbbfejlesztett villája), amely megadhatja a becsléseket, hogy mennyi időbe telik megtalálni az adott minta magánkulcsát (lásd: vg_output_timing_console() ). Néhány speciális eset (például az ismételt karakterek) nehezebb, mint a másik.

A hiú cím megtalálásának nehézsége annak pontos felépítésétől (kezdő betűk és számok), és mennyire valószínű, hogy egy ilyen kimenet megkapja az érintett algoritmusokat, amelyek több olyan forgatókönyvet tartalmazhatnak, ahol a nehézség hirtelen megváltozik. bitcoin wiki

Itt található a táblázat megtalálható a bitcoin wiki oldalon , amely becsült időket ad a magánkulcsok feltörésére az adott címmintákhoz:

bitcoin, vanitygen a címek megtámadására, Vanitygen, Keysearch Rates táblázat, Mkey / s, CPU / GPU, táblázat, decillió év, átlagos idő

Az alábbi példa táblázat bemutatja, hogy az egyre bonyolultabb hiúság hogyan befolyásolja a nehézséget és az átlagos időt, amely csak az adott hiúság megtalálásához szükséges, nemhogy a teljes cím, olyan géphez, amely másodpercenként 1 millió kulcsot képes megtekinteni.

A vanitygen használatával azt gondolhatja, hogy megtalálja az adott címhez tartozó magánkulcsot. A gyakorlatban ezt lehetetlennek tartják.


Gyakorlati példa

Hozzák létre a következő unspendable bitcoin cím :

$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

Ezután a vanitygen használatával kiszámolhatom a gépem teljesítményét (> 240 Kkey / s):

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

Megjegyzés: A fentieket MacBook Pro n (2,3 GHz-es Intel Core i7, 16 GB-os 1600 MHz-es DDR3) tesztelték.

Ezenkívül kiszámíthatja a becsült időt konkrét minták keresésekor, pl.

  • a 26-35 közül az első 5 karakter megkereséséhez (néhány másodperc):

    $ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s] 
  • 6 első karakter a 26-35 közül (néhány perc):

    $ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min] 
  • 7 karakter a 26-35 közül (néhány óra):

    $ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h] 
  • 8 karakter ki 26-35 (néhány hét):

    $ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d] 
  • 9 karakter ou t 26-35 (néhány év):

    $ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y] 
  • 10 karakter a 26-35 közül (egy évszázad):

    $ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y] 
  • 11 karakter a 26-35 közül (néhány évezred)

    $ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y] 
  • 12 karakter a 26-35 közül (évezredek százai):

    vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
  • 13 karakter a 26-35-ből (ezer évezred, néhány millió év):

    $ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y] 
  • 14 karakter a 26- 35 (évmilliárd):

    $ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y] 
  • 15 karakter a 26-35-ből (év 50 milliárd):

    $ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y] 
  • … 28 karakter ( decillió év, ha “újra szerencsés”

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

Érdemes megjegyezni, hogy a fent létrehozott cím 34 bájttal rendelkezik, de a az első karakter csak a hálózati azonosító (a bitcoin esetében általában 1 vagy 3), az utolsó 4 bájt pedig csak ellenőrző összeg. A címmel kapcsolatos további részletekért lásd ezt a bitcoin wiki oldalt .


Kulcskeresési árak

Biztos A kulcskeresési arány növelhető jobb GPU vagy több CPU használatával (lásd: -t), de a becslések mégis óriásiak lehetnek.

Például itt található a kulcs keresési arányok táblázata a bitcoin wiki oldalon :

Vanitygen, Keysearch Rates tábla, kulcsok / s, CPU / GPU

És itt van néhány jelentés a felhasználóktól a különböző GPU-khoz:

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

Forrás: A támogatott GPU-k (GH-46) listája.

Válasz

Az egyetlen reális kockázat a kvantumszámítás lenne.

Vagy hibát vagy hibát fedezhet fel a BTC szoftver algoritmusaiban. Ezután a repedés másodpercek kérdése lehet, a hiba típusától függően.

Megjegyzések

  • Üdvözlünk, üdvözlünk a StackExchange-ben. Biztos benne, hogy nem ‘ nem akarja ezt valamilyen más válaszhoz fűzni, nem pedig önmagában önálló választ?
  • @ThePiachu, köszönöm . Mint tudhatja, az új felhasználók nem tehetnek megjegyzéseket, csak válaszokat adhatnak meg. A moderátor szívesen megoldja ezt. (Csak a saját válaszaimat tudom megjegyezni)
  • Ó, te vagy moderátor. Most vettem észre. 🙂

Válasz

A leggyorsabb számítógép 150 Petraflops FPC másodpercenként, nem 10 … Próbálja ki és lépést tartani az idővel (NV Link és Volta HCP kártyák az IBM teljesítményprocesszorokon) … többet is olvashat vagy megnézhet a team green webhelyén vagy a 2015-ös konferencia videón az U csövön. Mivel az általános válasz a jelek szerint 10 Petraflops, mint a világ leggyorsabb számítógépe …Világosan látnia kell, hogy az FPC másodpercenként milyen gyorsan változhat. Az Energiaügyi Minisztérium egy 300P-s rendszert tervez, amely már ugyanazon a technológián alapul.

A lényeg az, hogy a bitcoin embereid, akik elmondják, mennyire biztonságos a 10P-n, már 15-30-szor hibás az alap matematika, mert nyilvánvalóan nem tudnak annyit, amennyit gondolnak. A fejlesztések nem függ Moore törvényétől, a legújabb fejlemények és a jelenlegi korlátozások egy teljesen más törvényhez kapcsolódnak, amelyet az NV Link a lehető legjobban megoldott és a számítási időt olyan jól javított. Ez csak a mai példa arra, hogy Az egymilliárd éves elmélet már 15-30-szoros téves, és minden évben sokkal nagyobb mértékben fog téves lenni, mint feltételezik. 30 év múlva vagy annál kevesebb bitcoin a jelenlegi szintjén könnyen feltörhet bárki, akinek 40–50 000 dollárja van költésre (mai pénzben), vagy bármennyi egyetemi vagy vállalati szuperszámítógépet használhat.

Aki valóban úgy véli, hogy az 50 éves technológia 50 évig digitálisan biztonságot nyújt később őszintén szólva nem az a fajta ember, akinek p egyáltalán BÁRMILYEN figyelmet szentel … Ez azt jelenti, hogy a bitcoin ma veszélyes? Nem igazán, de ha ugyanazok az emberek felelősek a biztonságáért 30 év múlva, akkor ugyanazok az oktalan emberek, akik most itt vannak.

Hozzászólások

  • Az NVLink egy technológia, amely lehetővé teszi a szuperszámítógép csomópontjai közötti gyorsabb és energiahatékonyabb kommunikációt. Ezek közül egyik sem igazán aggasztó, ha ‘ új terjesztett kulcstörő.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük