Ile czasu zajęłoby dużemu komputerowi złamanie klucza prywatnego?

Prowadzę prezentację na temat Bitcoinów i szukałem pewnych obliczeń, aby ludzie czuli się bezpiecznie w kwestii szyfrowania klucza prywatnego. Najpierw odpowiedz, ile w bajtach ma klucz prywatny, następnie ile kombinacji liczb będzie zawierał, a następnie jaki jest najszybszy komputer lub sieć superkomputerów i ile czasu zajmie złamanie klucza prywatnego za pomocą tego komputera. Myślę, że wynik byłby bardzo pouczający na podstawie moich własnych obliczeń. Dziękuję.

Komentarze

Odpowiedź

ile bajtów ma klucz prywatny

32 bajty lub 256 bitów

następnie ile kombinacji liczb będzie zawierał

Istnieje 2 ^ 256 różnych kluczy prywatnych. To „niewiele większe niż 1, po którym następuje 77 zer.

Jaki jest najszybszy komputer lub sieć superkomputerów

W szczytowym momencie około sierpnia 2011 r. Sieć Bitcoin sprawdzała 15 bilionów hashów sha256 na sekundę. (Patrz http://bitcoin.sipa.be/ )

ile czasu zajmie złamanie klucza prywatnego przy użyciu tego komputera

Jeśli założymy, że wykonanie operacji ECDSA zajmuje tyle samo czasu, co sprawdzenie skrótu sha256 (trwa to znacznie dłużej) i stosujemy optymalizację, która pozwala nam tylko potrzebować 2 ^ 128 operacji ECDSA, wtedy można obliczyć potrzebny czas:

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

To jest 0,65 miliarda lat.

To ” to bardzo ostrożne oszacowanie czasu potrzebnego do zerwania pojedynczego adresu Bitcoin.

Edycja: zwrócono uwagę, że komputery mają tendencję do przyspieszania wykładniczo w czasie, zgodnie z Prawo Moorea . Zakładając, że prędkość obliczeniowa podwaja się każdego roku (prawo Moorea mówi, że 2 lata, ale będziemy błądzić po stronie ostrożności), to za 59 lat zajmie to tylko 1,13 roku. Twoje monety są więc bezpieczne przez następne 60 lat bez zmiana w algorytmach używanych do ochrony łańcucha bloków. Oczekiwałbym jednak, że algorytmy zostaną zmienione na długo przed tym, zanim będzie możliwe złamanie zapewnianej przez nie ochrony.

Komentarze

  • Prawo Moorea ' (lub podobne) prawdopodobnie zmniejszyłoby tę liczbę, ale nie na tyle, aby miało to znaczenie. O ile odpowiedź jest w jakiejś formie ” dłuższa niż wydobycie monet przechowywanych pod tym adresem „, powinniśmy być bezpieczni 🙂
  • To ma znaczenie, ponieważ ludzie zasługują na to, aby wiedzieć, jak bezpieczne są ich pieniądze.
  • To ' zakłada, że Moore ' może obowiązywać przez kolejne 6 dekad. Z drugiej strony, być może QC jest już wtedy głównym nurtem.
  • Świetna odpowiedź. Warto zauważyć, że skumulowana moc sieci Bitcoin ' jest teraz prawie 10-krotnie większa niż wartość od czasu napisania tej odpowiedzi. Więc to ' s ” tylko ” ~ 653 milionów lat obliczeń.

Odpowiedź

Prywatny klucz Bitcoin to losowa 256-bitowa liczba. Jednak klucz publiczny ujawnia pewne informacje o kluczu prywatnym. Najbardziej znane algorytmy łamania ECDSA wymagają operacji O (sqrt (n)). Oznacza to, że do złamania konta Bitcoin potrzebne byłyby 2 ^ 128 operacji.

Największy złamany dotychczas klucz ECDSA typu używanego przez Bitcoin miał 112 bitów. Konto Bitcoin jest ponad 4000 miliardów razy trudniejsze do złamania.

Jedynym realistycznym ryzykiem byłyby komputery kwantowe.

Komentarze

  • Należy również zauważyć, że nawet obliczenia kwantowe mają tylko skrócić czas z pow (2, N) do pow (2, N / 2), co chociaż jest istotne, nie otwiera go szeroko. Zobacz en.wikipedia.org/wiki/Key_size
  • @GaryRowe You ' ponownie źle . Zmniejszenie o połowę długości klucza dotyczy kluczy symetrycznych. Większość szyfrów asymetrycznych (w tym ECDSA, który jest używany w bitcoint) można złamać w czasie wielomianowym za pomocą komputera kwantowego dzięki algorytmowi Shora ' s.Cytując artykuł z Wikipedii ” Panuje powszechna zgoda co do tego, że te algorytmy klucza publicznego są niezabezpieczone przy dowolnym rozmiarze klucza, jeśli wystarczająco duże komputery kwantowe mogące obsługiwać Shor ' s stał się dostępny. „. Chociaż istnieją schematy sygnatur kwantowych, ' prawdopodobnie nadużywają łańcucha blokowego dużo .
  • @CodeInChaos Dobre punkty – przepraszam aby wprowadzić zamieszanie.
  • Atak O (sqrt (n)) jest atakiem urodzinowym, który jest możliwy w każdym schemacie szyfrowania. Jakie ” informacje o kluczu prywatnym ” ujawnia klucz publiczny, do którego się odnosisz?
  • @dionyziz I ' Nie mówię o ataku urodzinowym, ' mówię o odwróceniu klucza publicznego ECDSA w celu uzyskania odpowiedniego klucza prywatnego. ” informacje o kluczu prywatnym ” ujawnionym przez klucz publiczny to punkt odpowiadający temu kluczowi prywatnemu pomnożonemu przez generator. Umożliwia to stosowanie dyskretnych algorytmów logarytmicznych, takich jak duży krok, mały krok .

Odpowiedź

Prywatny klucz Bitcoin (klucz ECC) to liczba całkowita od 1 do około 10 ^ 77. To może nie wydawać się dużym wyborem, ale ze względów praktycznych jest w zasadzie nieskończone. Gdyby można było przetwarzać jeden bilion kluczy prywatnych na sekundę, policzenie ich wszystkich zajęłoby ponad milion razy więcej niż wiek wszechświata. gorzej, samo wyliczenie tych kluczy spowodowałoby zużycie większej ilości energii przez słońce przez 32 lata. Ta ogromna przestrzeń kluczowa odgrywa fundamentalną rolę w zabezpieczaniu sieci Bitcoin.

Komentarze

  • Chuck Norris dwukrotnie doliczył do nieskończoności.
  • Chuck Norris powiedział Satoshi Nakomoto, co ma robić.

Odpowiedź

2 ^ 256 = 1.1×10 ^ 77 = liczba kombinacji klawiszy

2 ^ 128 = 3,4×10 ^ 38 = średnia liczba potrzebnych domysłów

Według tej witryny: http://en.wikipedia.org/wiki/TOP500 , najszybszym superkomputerem jest komputer K, który ma 10,51 petaflopa.

Petaflop to 10 ^ 15 FLOPS, zmiennoprzecinkowy instr Uukcji na sekundę.

Jak dotąd dobrze, ale muszę wiedzieć, ile FLOPS jest potrzebnych do przypuszczenia?

[Zaryzykuję przypuszczenie:]

Od 1000 do 10000 operacji FLOPS (lub odpowiedników liczb całkowitych) na próbę.

10,51×10 ^ 15 op / sekundę / 1000 do 10000 ops / przypuszczenie) = 10,51×10 ^ 12 do 10,51×10 ^ 11 przypuszczeń / sekundę

3,4×10 ^ 38 prób / pęknięcie / 10,51×10 ^ 12 prób / sekunda = 3,2×10 ^ 25 sekund.

3,2×10 ^ 25 sekund / 60 sekund / minutę / 60 minut / godzina / 24 godziny / dzień / 365,25 dni / rok = 1,01×10 ^ 18 lat

1,01×10 ^ 18 lat / 1×10 ^ 9 / 1×10 ^ 9 = 1,014 do 10,014 miliardów lat.

Zatem komputery w sieci Bitcoin są dwa razy szybsze niż pojedynczy największy komputer laboratoryjny.

Komentarze

  • Wymaganych jest dokładnie 0 FLOPów spróbuj kombinacji, ponieważ FLOP jest operacją zmiennoprzecinkową, a matematyka EC wymaga tylko operacji na liczbach całkowitych.
  • Nigdy nie było komputera, na którym pracowałem, na którym nie ' t zrobić integer ma th. Zakładam więc, że południowokoreański komputer K również to potrafi.
  • Tak, ale proporcja między szybkością operacji na liczbach całkowitych i zmiennoprzecinkowych różni się znacznie w zależności od sprzętu. Biorąc pod uwagę pewną dystrybucję typów sprzętu, które składają się na moc wydobywczą Bitcoin ', możesz podać oszacowanie, ale odpowiedź na pytanie ” ile FLOPS potrzeba na przypuszczenie „, odpowiedź to z pewnością 0.
  • liczba kombinacji klawiszy = 2 ^ 256; średnia liczba potrzebnych prób = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, nikt nie zauważył? Cóż, to nie zmienia miliarda (miliardów) lat potrzebnych.

Odpowiedź

Jest vanitygen narzędzie (sprawdź wersję exploitagency „ który jest ulepszonym rozwidleniem wersji samr7 „), który pozwala oszacować, ile czasu zajmie znalezienie klucza prywatnego dla danego wzorca (zobacz: vg_output_timing_console() ). Niektóre przypadki specjalne (takie jak powtarzające się znaki) są trudniejsze niż inne.

Trudność w znalezieniu adresu skróconego zależy od jego dokładnej struktury (początkowe litery i liczby) i jak prawdopodobne jest, że takie dane wyjściowe zostaną uwzględnione w algorytmach, które mogą składać się z kilku osi, w których trudność nagle się zmienia. bitcoin wiki

Oto tabela, w której można można znaleźć na stronie wiki bitcoin , która zawiera szacunkowe czasy złamania kluczy prywatnych dla podanych wzorców adresowych:

bitcoin, vanitygen do próby ataku na adresy, Vanitygen, tabela stawek Keysearch, Mkey / s, procesor / GPU, tabela, decylion lat, średni czas

Poniższa przykładowa tabela pokazuje, jak coraz bardziej złożona próżność wpływa na trudność i średni czas wymagany do znalezienia dopasowania tylko do tej próżności, nie mówiąc już o pełnym adres, dla maszyny zdolnej do przeglądania 1 miliona kluczy na sekundę.

Używając vanitygen, możesz pomyśleć, że będziesz w stanie znaleźć klucz prywatny dla podanego adresu. W praktyce jest to uważane za niemożliwe.


Praktyczny przykład

Utwórzmy następujący unspendable adres bitcoin :

$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

Następnie używając vanitygen mogę obliczyć wydajność na moim komputerze (> 240 KB / s):

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

Uwaga: powyższe testy zostały przetestowane na MacBooku Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3).

Ponadto może obliczyć szacowany czas podczas wyszukiwania określonych wzorców, np.

  • aby znaleźć pierwsze 5 znaków z 26-35 (kilka sekund):

    $ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s] 
  • 6 pierwszych znaków na 26-35 (kilka minut):

    $ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min] 
  • 7 znaków na 26-35 (kilka godzin):

    $ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h] 
  • 8 znaków z 26-35 (kilka tygodni):

    $ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d] 
  • 9 znaków lub t z 26-35 (kilka lat):

    $ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y] 
  • 10 znaków na 26-35 (wiek):

    $ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y] 
  • 11 znaków z 26-35 (kilka tysiącleci)

    $ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y] 
  • 12 znaków z 26-35 (setki tysiącleci):

    vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
  • 13 znaków z 26-35 (tysiące tysiącleci, kilka milionów lat):

    $ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y] 
  • 14 znaków z 26 – 35 (miliard lat):

    $ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y] 
  • 15 znaków na 26-35 (50 miliardów lat):

    $ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y] 
  • … 28 znaków ( decylionów lat, jeśli „re lucky)

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

Warto zauważyć, że powyższy adres ma 34 bajty, ale pierwszy znak to tylko identyfikator sieci (w przypadku bitcoin jest to zwykle 1 lub 3), a ostatnie 4 bajty to tylko suma kontrolna. Więcej informacji na temat adresu można znaleźć na tej stronie wiki bitcoin .


Keysearch Rates

Na pewno szybkość wyszukiwania klucza można zwiększyć, używając lepszego GPU lub wielu procesorów (patrz: -t), ale nadal szacunki mogą być ogromne.

Na przykład oto tabela współczynników wyszukiwania kluczy na stronie wiki bitcoin :

Vanitygen, Tabela stawek Keysearch, Mkey / s, CPU / GPU

A oto kilka raportów od użytkowników dla różnych GPU:

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

Źródło: Lista obsługiwanych GPU (GH-46) .

Odpowiedź

Jedynym realistycznym ryzykiem byłyby obliczenia kwantowe.

Lub wykrycie błędu lub usterki w algorytmach oprogramowania BTC. Wtedy pękanie może zająć kilka sekund, w zależności od rodzaju usterki.

Komentarze

  • Witam i witamy w StackExchange. Czy na pewno ' nie chcesz, aby to było komentarzem do jakiejś innej odpowiedzi, a nie samodzielną odpowiedzią?
  • @ThePiachu, dziękuję . Jak być może wiesz, nowi użytkownicy nie mogą dodawać komentarzy, a jedynie odpowiedzi. Moderator może to naprawić. (Mogę komentować tylko własne odpowiedzi)
  • Och, ty jesteś moderatorem. Właśnie zauważyłem. 🙂

Odpowiedź

Najszybszy komputer ma 150 Petraflopów FPC na sekundę, a nie 10 … Spróbuj nadążać za duchem czasu (karty NV Link i Volta HCP na procesorach mocy IBM) … możesz przeczytać lub obejrzeć więcej na stronie zespołu green lub w filmach z konferencji 2015 na rurze U. Ponieważ ogólna odpowiedź wydaje się być oparta na 10 Petraflops jako najszybszy komputer na świecie …Powinieneś być w stanie wyraźnie zobaczyć, jak szybko może się zmienić FPC na sekundę, Departament Energii planuje system 300P już oparty na tej samej technologii.

Chodzi o to, że twoi ludzie z bitcoinami, którzy mówią ci, jak bezpieczne jest to oparte na 10P, już mają podstawowe błędy matematyczne 15-30 razy, ponieważ najwyraźniej nie wiedzą tak dużo, jak myślą. Ulepszenia są niezależne od prawa Moorea, ostatnie postępy i obecne ograniczenia mają do czynienia z zupełnie innym prawem, które NV Link rozwiązał najlepiej jak potrafił i poprawił czas obliczeń tak dobrze. To jest właśnie dzisiejszy przykład tego, jak ich teoria miliarda miliardów lat jest już błędna 15–30 razy i będzie się mylić każdego roku w znacznie wyższym tempie niż zakładają. Za 30 lat lub mniej bitcoin na obecnym poziomie będzie łatwo złamany przez każdy, kto ma od 40 do 50 000 dolarów do wydania (w dzisiejszych pieniądzach) lub może korzystać z dowolnej liczby superkomputerów uniwersyteckich lub korporacyjnych.

Każdy, kto naprawdę wierzy, że 50-letnia technologia zachowa coś cyfrowego przez 50 lat później szczerze mówiąc nie jest osobą, którą powinieneś być s zwracając w ogóle jakąkolwiek uwagę … Czy to oznacza, że bitcoin jest dziś niebezpieczny? Niezupełnie, ale jeśli za 30 lat za jej bezpieczeństwo będą odpowiadać ci sami ludzie, to będą ci sami nieświadomi ludzie, którzy są tu teraz.

Komentarze

  • NVLink to technologia umożliwiająca szybszą i bardziej energooszczędną komunikację między węzłami w superkomputerze. Żadne z nich nie jest tak naprawdę problemem, jeśli ' ponownie budujesz rozproszony program do łamania kluczy.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *