Criptografia de curva elíptica

Definição

Criptografia de curva elíptica (ECC)é um assimétrico criptografia A abordagem ECC baseia-se na estrutura algébrica de curvas elípticas sobre corpos finitos, proporcionando segurança equivalente à do RSA com tamanhos de chave significativamente menores – uma chave ECC de 256 bits oferece a mesma segurança que uma chave RSA de 3072 bits. Em blockchain e criptomoedas, o ECC é fundamental: Bitcoin e Ethereum usam a curva elíptica secp256k1. Para gerar pares de chaves pública e privada, criar assinaturas digitais (ECDSA – Algoritmo de Assinatura Digital de Curva Elíptica) e verificar a autorização de transações. Cada endereço de carteira no Bitcoin e no Ethereum é derivado de uma chave pública ECC, e cada assinatura de transação comprova a propriedade da chave privada correspondente sem revelá-la. A robustez do ECC reside na Problema de Logaritmo Discreto de Curva Elíptica (ECDLP)Dado um ponto na curva e o resultado da adição repetida de pontos, é computacionalmente inviável determinar quantas vezes a operação foi realizada. A eficiência do ECC (chaves pequenas, operações rápidas, baixo armazenamento) o torna ideal para os requisitos de alto volume de transações do blockchain.

Origem e história

DataEvento
1985Neal Koblitz e Victor Miller propõem, independentemente, a ECC em artigos separados.
2000O grupo SEC (Standards for Efficient Cryptography) publica a especificação da curva secp256k1.
2009O Bitcoin é lançado utilizando o padrão ECC secp256k1 para geração de chaves privadas/públicas e assinaturas ECDSA.
2015Ethereum adota secp256k1 – a mesma curva do Bitcoin para chaves de carteira e assinaturas.
2010Ataque de ECC ao Sony PlayStation 3: reutilização de nonce em ECDSA expõe chave privada – lição crítica de segurança
2020Assinaturas Schnorr (variante ECC mais eficiente) propostas para Bitcoin via BIP-340
2021A atualização do Bitcoin Taproot ativa as assinaturas Schnorr – privacidade aprimorada e verificação em lote.
2022Surgem preocupações com a criptografia pós-quântica: a criptografia de cadeia de elétrons (ECC) é vulnerável a futuros computadores quânticos (algoritmo de Shor).
“A segurança de todas as carteiras Bitcoin reside em uma curva elíptica de 256 bits. É a fechadura que protege trilhões de dólares em valor.”
Comunidade de criptografia

Como Funciona

Curva ECCUsado porTamanho da chaveEquivalente de segurança
secp256k1bitcoin, ethereum256-bitsimétrico de 128 bits
sec256r1TLS, U2F, algumas carteiras256-bitsimétrico de 128 bits
Ed25519Solana, Cardano, SSH256-bitsimétrico de 128 bits
BLS12-381Validadores Ethereum (assinaturas BLS)381-bit~120 bits simétricos

Em termos simples

  1. Magia assimétricaVocê pode publicar sua chave pública para todos; somente quem possuir a chave privada correspondente poderá criar assinaturas válidas. Qualquer pessoa pode verificar assinaturas usando apenas a sua chave pública.
  2. Chave privada = controle totalSua chave privada Bitcoin é um número aleatório de 256 bits. A chave pública (e o endereço) são derivados matematicamente dela – mas nenhum computador consegue reverter o processo para recuperar sua chave privada a partir do seu endereço.
  3. A fechadura e a chaveSeu endereço público é a fechadura – qualquer pessoa pode enviar Bitcoin para ele. Sua chave privada é a única chave que o abre para gastar. Existem 2^256 chaves possíveis – mais do que átomos no universo observável.
  4. Segurança de multiplicação de pontosA dificuldade do ECC reside em calcular k dado P = k×G – multiplicar um ponto em uma curva por si mesmo k vezes é fácil, mas o inverso (encontrar k a partir de P e G) é computacionalmente inviável.
  5. Ameaça quânticaComputadores quânticos do futuro, executando o algoritmo de Shor, poderiam teoricamente resolver o ECDLP – a principal razão pela qual pesquisadores de blockchain estão desenvolvendo alternativas pós-quânticas para segurança a longo prazo.

Leia também: Frax Finance: A stablecoin que se reinventou do zero.

Exemplos do mundo real

CenárioImplementaçãoResultado
Criação de carteira BitcoinNúmero aleatório de 256 bits → secp256k1 → chave pública → SHA256+RIPEMD160 → endereço BitcoinUm único evento de entropia cria um endereço que controla um número potencialmente ilimitado de BTC.
Assinatura de transaçãoA MetaMask usa ECDSA secp256k1 para assinar todas as transações do Ethereum.Prova criptograficamente que você autorizou a transação sem compartilhar sua chave privada.
Verificação em lote do TaprootBitcoin Taproot (variante Schnorr ECC) permite a verificação de assinaturas em lote.Verificação de múltiplas assinaturas em uma única operação – ganho de eficiência de mais de 50% para múltiplas assinaturas.
Hack do PS3 (história de advertência sobre ECC)O PS3 da Sony usava o mesmo nonce aleatório para todas as assinaturas ECDSA – chave privada extraívelDRM de console quebrado; demonstrou que a segurança ECC requer aleatoriedade adequada.

Vantagens

A VantagemDescrição
Tamanhos de chave pequenosECC de 256 bits = segurança RSA de 3072 bits – menor necessidade de armazenamento e largura de banda.
Cálculo rápidoMultiplicação de pontos mais rápida que a exponenciação modular RSA com segurança equivalente.
Blockchain nativosecp256k1 otimizado para casos de uso em blockchain; suporte universal para carteiras de hardware.
Assinaturas compactasAs assinaturas ECDSA têm entre 64 e 72 bytes – um formato eficiente para o espaço blockchain.
Testado em batalhaMais de 15 anos no mercado de Bitcoin/Ethereum sem nenhum sucesso conhecido.

Desvantagens e Riscos

DesvantagemDescrição
Vulnerabilidade quânticaO algoritmo de Shor em computadores quânticos pode quebrar o ECDLP.
criticidade do nonceReutilizar ou adivinhar o nonce de assinatura expõe a chave privada (hack do PS3, bugs iniciais do Bitcoin)
Principais encargos de gestãoPerda da chave privada = perda permanente do ativo; sem mecanismo de recuperação.
Complexidade de implementaçãoA implementação correta de ECC é complexa; erros podem ser catastróficos.

Dicas de gerenciamento de risco:

  • Nunca reutilize nonces de assinatura ECDSA – use a geração determinística de nonces conforme a RFC 6979.
  • Armazene chaves privadas offline (carteiras de hardware) para se proteger contra vulnerabilidades de software.
  • Acompanhe os desenvolvimentos da criptografia pós-quântica – planeje a migração para quando os padrões amadurecerem.
  • Utilize bibliotecas ECC bem auditadas (libsecp256k1, OpenSSL) – nunca implemente ECC do zero.

Perguntas frequentes

O que é secp256k1 e por que Satoshi o escolheu?

A curva elíptica secp256k1 é uma curva específica definida por y² = x³ + 7 sobre um campo primo de 256 bits, publicada no padrão SEC. A escolha de Satoshi foi um tanto incomum (secp256r1/P-256 é mais comum em padrões) – a estrutura da secp256k1 apresenta vantagens para o cálculo eficiente de assinaturas e foi considerada menos propensa a conter backdoors inseridos pela NSA do que a curva P-256 recomendada pelo NIST.

É possível decifrar endereços Bitcoin adivinhando as chaves privadas?

Praticamente impossível. O espaço de chaves secp256k1 é 2^256 – um número tão grande que verificar todas as possibilidades levaria mais tempo do que a idade do universo, mesmo com todo o poder computacional da Terra.

Qual a relação entre o hack do PS3 e o ECC?

O PS3 da Sony usava assinaturas ECDSA para verificar o código do jogo. Sua implementação utilizava o mesmo nonce aleatório (valor k) para todas as assinaturas — uma falha fatal. Quando duas assinaturas compartilham o mesmo nonce, a chave privada pode ser recuperada algebricamente. Essa mesma vulnerabilidade existia em algumas implementações antigas do Bitcoin.

O que são assinaturas Schnorr e como elas diferem das assinaturas ECDSA?

Ambos são esquemas de assinatura baseados em ECC usando secp256k1. As assinaturas Schnorr (ativadas na atualização Taproot do Bitcoin) são mais simples, permitem agregação nativa de múltiplas assinaturas (várias assinaturas aparecem como uma só), verificação em lote e maior privacidade. O ECDSA foi escolhido inicialmente para o Bitcoin porque as patentes de Schnorr ainda não haviam expirado em 2009.

Será que os computadores quânticos vão acabar com o Bitcoin?

Os computadores quânticos atuais não conseguem – eles não possuem qubits suficientes nem correção de erros. Um futuro computador quântico com milhões de qubits corrigidos por erros poderia, teoricamente, quebrar o secp256k1. A comunidade Bitcoin está monitorando a padronização da criptografia pós-quântica do NIST e pode realizar um hard fork para algoritmos resistentes à computação quântica antes que a ameaça se materialize.

Notícias e Eventos