Estou fazendo uma apresentação sobre Bitcoins e estava procurando alguns cálculos para fazer as pessoas se sentirem seguras sobre a criptografia de chave privada. Por favor, primeiro responda, quanto tempo em bytes é a chave privada, quantas combinações de números ela conterá e qual é o computador ou rede de supercomputadores mais rápido e quanto tempo levaria para quebrar uma chave privada usando esse computador. Acho que o resultado seria muito educacional com base em meus próprios cálculos. Obrigado.
Comentários
- Esta resposta no Security Stack Exchange é relevante: security.stackexchange .com / a / 25392/4647
- Explique isso então. directory.io Essas pessoas afirmam que têm todas as chaves privadas … Acho que ‘ não está dizendo a verdade
- Eles estão dizendo a verdade. Da mesma forma que qualquer pessoa que pode gerar os dígitos de Pi tem todas as obras literárias que serão escritas.
- coindesk.com/bitcoin-protocol- hack-joke
Resposta
quanto tempo em bytes a chave privada tem
32 bytes ou 256 bits
então quantas combinações de números ele conterá
Existem 2 ^ 256 chaves privadas diferentes. Isso “é um pouco maior que 1 seguido por 77 zeros.
qual é o computador ou rede de supercomputadores mais rápido
Em seu pico por volta de agosto de 2011, a rede Bitcoin estava verificando 15 trilhões de hashes sha256 por segundo. (Consulte http://bitcoin.sipa.be/ )
quanto tempo levaria para quebrar uma chave privada usando aquele computador
Se assumirmos que leva o mesmo tempo para executar uma operação ECDSA que leva para verificar um hash sha256 (leva muito mais tempo), usamos uma otimização que nos permite apenas precisar 2 ^ 128 operações ECDSA, então o tempo necessário pode ser calculado:
>>> pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9 0.6537992112229596
É 0,65 bilhão de bilhões de anos.
Isso ” uma estimativa muito conservadora para o tempo necessário para quebrar um único endereço Bitcoin.
Editar: foi apontado que os computadores tendem a ficar exponencialmente mais rápidos com o tempo, de acordo com Lei de Moore . Supondo que a velocidade de computação dobre a cada ano (a lei de Moore diz 2 anos, mas vamos errar por excesso de cautela), então em 59 anos levará apenas 1,13 anos. Portanto, suas moedas estarão seguras pelos próximos 60 anos sem uma alteração nos algoritmos usados para proteger o blockchain. No entanto, eu esperaria que os algoritmos fossem alterados muito antes de ser viável quebrar a proteção que eles fornecem.
Comentários
- A Lei de Moore ‘ s (ou similar) provavelmente diminuiria um pouco esse número, mas não o suficiente para fazer diferença. Contanto que a resposta seja alguma forma de ” mais tempo do que levaria para minerar as moedas armazenadas naquele endereço ” devemos estar seguros 🙂
- É importante, porque as pessoas merecem saber quão seguro é seu dinheiro.
- Isso ‘ está assumindo Moore ‘ A lei pode continuar por mais 6 décadas. Por outro lado, talvez o CQ seja o principal nessa época.
- Ótima resposta. É importante notar que o poder cumulativo da rede do Bitcoin ‘ é agora quase 10 vezes maior que o valor desde que esta resposta foi escrita. Portanto, ‘ s ” apenas ” ~ 653 milhões de anos de computação.
Resposta
Uma chave privada Bitcoin é um número aleatório de 256 bits. No entanto, a chave pública revela algumas informações sobre a chave privada. Os algoritmos mais conhecidos para quebrar ECDSA requerem operações O (sqrt (n)). Isso significa que 2 ^ 128 operações seriam necessárias para quebrar uma conta Bitcoin.
A maior chave ECDSA quebrada até hoje do tipo que o Bitcoin usa tinha 112 bits de comprimento. Uma conta Bitcoin é mais de 4.000 bilhões de bilhões de vezes mais difícil de quebrar.
O único risco realista seria a computação quântica.
Comentários
- Também deve ser notado que mesmo a computação quântica só deve reduzir o tempo de pow (2, N) a pow (2, N / 2) que, embora seja significativo, não o está deixando totalmente aberto. Veja en.wikipedia.org/wiki/Key_size
- @GaryRowe Você ‘ está errado . A redução ao meio do comprimento da chave se aplica a chaves simétricas. A maioria das cifras assimétricas (incluindo ECDSA que é usado para bitcoint) pode ser quebrada em tempo polinomial com um computador quântico graças ao algoritmo de Shor ‘ s.Para citar esse artigo da Wikipédia ” O consenso geral é que esses algoritmos de chave pública são inseguros em qualquer tamanho de chave se computadores quânticos suficientemente grandes capazes de executar Shor ‘ torna-se disponível. “. Embora existam esquemas de assinatura de prova quântica, eles ‘ provavelmente aumentariam o blockchain muito .
- @CodeInChaos Boas observações, desculpe para ter introduzido confusão.
- O ataque O (sqrt (n)) é o ataque de aniversário, que é possível em qualquer esquema de cifra. Quais ” informações sobre a chave privada ” que a chave pública revela que você está se referindo?
- @dionyziz I ‘ Não estou falando sobre o ataque de aniversário, eu ‘ estou falando sobre reverter uma chave pública ECDSA para obter a chave privada correspondente. As ” informações sobre a chave privada ” que a chave pública revela é o ponto correspondente a essa chave privada multiplicado pelo gerador. Isso permite o uso de algoritmos de logaritmo discretos como grande passo, pequeno passo .
Resposta
Uma chave privada Bitcoin (chave ECC) é um número inteiro entre um e cerca de 10 ^ 77. Isso pode não parecer muito uma seleção, mas para fins práticos é essencialmente infinito. Se você pudesse processar um trilhão de chaves privadas por segundo, levaria mais de um milhão de vezes a idade do universo para contá-las todas. pior, apenas enumerar essas chaves consumiria mais do que a energia total produzida pelo Sol por 32 anos. Este vasto keyspace desempenha um papel fundamental na proteção da rede Bitcoin.
Comentários
- Chuck Norris contou até o infinito, duas vezes.
- Chuck Norris disse a Satoshi Nakomoto o que fazer.
Resposta
2 ^ 256 = 1,1×10 ^ 77 = número de combinações de teclas
2 ^ 128 = 3,4×10 ^ 38 = o número médio de suposições necessárias
De acordo com este site: http://en.wikipedia.org/wiki/TOP500 , o supercomputador mais rápido é o computador K, que tem 10,51 petaflops.
Um petaflop tem 10 ^ 15 FLOPS, ponto flutuante instr uções por segundo.
Até aqui tudo bem, mas eu preciso saber quantos FLOPS são necessários por suposição?
[Arriscaria um palpite:]
Entre 1.000 e 10.000 FLOPS (ou equivalentes inteiros) por estimativa.
10,51×10 ^ 15 ops / segundo / 1.000 a 10.000 ops / estimativa) = 10,51×10 ^ 12 a 10,51×10 ^ 11 ops / segundo
3,4×10 ^ 38 suposições / crack / 10,51×10 ^ 12 suposições / segundo = 3,2×10 ^ 25 segundos.
3,2×10 ^ 25 segundos / 60 segundos / minuto / 60 minutos / hora / 24 horas / dia / 365,25 dias / ano = 1,01×10 ^ 18 anos
1,01×10 ^ 18 anos / 1×10 ^ 9 / 1×10 ^ 9 = 1,014 a 10,014 bilhões de anos.
Portanto, os computadores na rede Bitcoin são duas vezes mais rápidos que o maior computador de laboratório único.
Comentários
- Há exatamente 0 FLOPs necessários para tente uma combinação, já que um FLOP é uma operação de ponto flutuante e a matemática EC requer apenas operações inteiras.
- Nunca houve um computador em que eu trabalhasse que pudesse ‘ t fazer ma inteiro º. Portanto, eu presumiria que o computador K sul-coreano também pode fazer isso.
- Sim, mas a proporção entre a velocidade das operações de inteiros e de ponto flutuante difere significativamente entre o hardware. Dada uma certa distribuição de tipos de hardware que constituem o poder de mineração do ‘ Bitcoin, você pode dar uma estimativa, mas a resposta à pergunta ” quantos FLOPS são necessários por estimativa “, a resposta certamente é 0.
- número de combinações de teclas = 2 ^ 256; número médio de suposições necessárias = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, ninguém percebeu? Bem, isso não muda os bilhões (de bilhões) de anos necessários.
Resposta
Há vanitygen
utilitário (verifique a versão do exploitagency “ que é um fork melhorado da versão do samr7 “s ) que pode fornecer estimativas de quanto tempo leva para encontrar a chave privada para o padrão fornecido (consulte: vg_output_timing_console()
). Alguns casos especiais (como caracteres repetidos) são mais difíceis do que outros.
A dificuldade de encontrar um endereço personalizado depende de sua estrutura exata (letras iniciais e números) e qual a probabilidade de tal saída, dados os algoritmos envolvidos, que podem consistir em vários pivôs onde a dificuldade muda repentinamente. wiki bitcoin
Aqui está a tabela que pode pode ser encontrado na página wiki bitcoin que fornece tempos estimados para quebrar chaves privadas para os padrões de endereço fornecidos:
A tabela de exemplo abaixo mostra como uma vaidade cada vez mais complexa afeta a dificuldade e o tempo médio necessário para encontrar uma correspondência apenas para essa vaidade, quanto mais para a completa endereço, para uma máquina capaz de examinar 1 milhão de chaves por segundo.
Usando vanitygen, você pode pensar que seria capaz de encontrar a chave privada para um determinado endereço. Na prática, isso é considerado impossível.
Exemplo prático
Vamos criar o seguinte unspendable
endereço bitcoin :
$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi
Então, usando vanitygen
, posso calcular o desempenho da minha máquina (> 240 Kkey / s):
$ vanitygen -q -k -o/dev/null 1 [241.29 Kkey/s][total 2880199][Found 11618]
Nota: Acima foi testado no MacBook Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3).
Além disso, ele pode calcular o tempo estimado ao procurar padrões específicos, por exemplo,
-
para encontrar os primeiros 5 caracteres entre 26-35 (alguns segundos):
$ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s]
-
6 primeiros caracteres de 26-35 (poucos minutos):
$ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min]
-
7 caracteres de 26-35 (algumas horas):
$ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h]
-
8 caracteres de saída de 26-35 (algumas semanas):
$ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d]
-
9 caracteres ou t de 26-35 (alguns anos):
$ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y]
-
10 caracteres de 26-35 (um século):
$ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y]
-
11 caracteres de 26-35 (alguns milênios)
$ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y]
-
12 caracteres de 26-35 (centenas de milênios):
vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y]
-
13 caracteres de 26-35 (milhares de milênios, alguns milhões de anos):
$ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y]
-
14 caracteres de 26- 35 (bilhões de anos):
$ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y]
-
15 caracteres de 26-35 (50 bilhões de anos):
$ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y]
-
… 28 caracteres ( decilhões de anos se você “tenho sorte)
$ vanitygen -q -k -o/dev/null 123456789A123456789A12345678 [910.34 Kkey/s][total 2723072][Prob 0.0%][50% in 3.981113e+33y]
Vale a pena notar que o endereço gerado acima tem 34 bytes, mas o o primeiro caractere é apenas o identificador de rede (para bitcoin, é geralmente 1
ou 3
) e os últimos 4 bytes é apenas uma soma de verificação. Para obter mais detalhes sobre o endereço, consulte esta página wiki bitcoin .
Taxas de pesquisa de chaves
Com certeza a taxa de pesquisa de chaves pode ser aumentada usando uma GPU melhor ou múltiplos de CPUs (consulte: -t
), mas ainda assim, as estimativas podem ser enormes.
Por exemplo, aqui está a tabela de taxas de busca de chaves na página wiki bitcoin :
E aqui estão alguns relatórios de usuários para diferentes GPUs:
- i7 8700K – ~ 3Mkey / c
- GTX 980TI (v1.42) – ~ 73Mh
- GTX 1050ti – ~ 23 Mkey / c
- GTX 1070 – ~ 50Mhkey / s
- GTX 1080ti – ~ 108 Mkey / c
Fonte: Lista de GPU “s compatíveis (GH-46) .
Resposta
O único risco realista seria a computação quântica.
Ou a descoberta de um bug ou falha nos algoritmos do software BTC. O cracking pode demorar alguns segundos, dependendo do tipo da falha.
Comentários
- Olá e bem-vindo ao StackExchange. Tem certeza de que não ‘ queria fazer disso um comentário sobre alguma outra resposta, em vez de uma resposta independente por si só?
- @ThePiachu, obrigado . Como você deve saber, novos usuários não podem postar comentários, apenas respostas. O moderador é bem-vindo para corrigir isso. (Posso comentar minhas próprias respostas apenas)
- Oh, você é um moderador. Eu apenas notei. 🙂
Resposta
O computador mais rápido é 150 Petraflops FPC por segundo, não 10 … Experimente e acompanhe os tempos (NV Link e Volta HCP Cards em processadores de energia IBM) … você pode ler ou assistir mais no site do team green ou nos vídeos da Conferência de 2015 em tubo U. Uma vez que a resposta geral parece ser baseada em 10 Petraflops como o computador mais rápido do mundo …Você deve ser capaz de ver claramente a rapidez com que o FPC por segundo pode mudar. O Departamento de Energia está planejando um sistema 300P já baseado na mesma tecnologia.
A questão é que o pessoal do bitcoin, dizendo a você o quão seguro é baseado em 10P, já errou 15 a 30 vezes a matemática básica porque, evidentemente, eles não sabem tanto quanto pensam. As melhorias são não dependente da Lei de Moore também, os avanços recentes e limitações presentes têm a ver com uma lei totalmente diferente que é o que NV Link resolveu da melhor maneira possível e melhorou o tempo de computação tão bem. Este é apenas o exemplo de hoje de como seus a teoria de um bilhão de bilhões de anos já está errada por um fator de 15-30 e continuará a errar a cada ano em uma taxa muito maior do que eles supõem. Em 30 anos ou menos, o bitcoin em seu nível atual será facilmente quebrado por qualquer pessoa que tenha de 40 a 50.000 dólares para gastar (no dinheiro de hoje) ou pode usar qualquer número de supercomputadores universitários ou corporativos.
Qualquer pessoa que realmente acredita que a tecnologia de 50 anos manterá algo digitalmente seguro 50 anos mais tarde, francamente, não é o tipo de pessoa que você deveria ser prestando QUALQUER atenção em tudo … Isso significa que o bitcoin é perigoso hoje? Na verdade não, mas se as mesmas pessoas estiverem encarregadas de sua segurança em 30 anos, serão as mesmas pessoas sem noção que estão aqui agora.
Comentários
- NVLink é uma tecnologia para permitir uma comunicação mais rápida e eficiente em termos de energia entre os nós em um supercomputador. Nenhum desses é realmente uma preocupação se você ‘ re construir um cracker de chave distribuído.