Como a Tangem gera entropia para chaves privadas

Este artigo está disponível nos seguintes idiomas:

Author logo
Patrick Dike-Ndulue
Post image

No modo sem seed phrase, as carteiras Tangem obtêm entropia do True Random Number Generator (gerador de números verdadeiramente aleatórios) de hardware integrado ao Secure Element, certificado pelo padrão alemão BSI PTG.2 (AIS 31).


Se você optar por usar uma seed phrase, a entropia é criada por métodos de geração de números aleatórios auditados:

  • No Android, usamos o SecureRandom, um gerador criptograficamente seguro de números aleatórios (CSPRNG), cujo resultado passa pelo BoringSSL/Conscrypt até o pool de entropia do kernel. Esse pool é alimentado pelo tempo de interrupção, sensores e o TRNG de hardware do SoC. Isso impede que um invasor consiga prever ou reconstruir o material da sua chave.
     
  • No iOS, usamos a API do sistema SecRandomCopyBytes, que gera bytes aleatórios adequados para geração de chaves criptográficas. A entropia vem do TRNG baseado em hardware do Secure Enclave.
     

O que é entropia em uma carteira cripto?

Entropia é a aleatoriedade bruta que uma carteira usa para criar uma chave privada. Ela é medida em bits, e quanto mais bits, maior o espaço de possíveis chaves.

A carteira gera entropia uma única vez, na configuração inicial. Todas as chaves, endereços e assinaturas seguintes vêm de regras matemáticas fixas, sem nova aleatoriedade entrando no sistema.

Isso torna o passo de geração permanente. Se a entropia for baixa, nada pode fortalecer a mnemonic derivada.
 

Quanta entropia uma chave privada precisa?

Sem entropia suficiente, um invasor pode explorar padrões ou vieses no processo de geração para adivinhar a chave muito mais facilmente do que tentando todas as combinações possíveis. 


Uma chave privada precisa parecer completamente aleatória para qualquer adversário; entropia baixa reduz drasticamente o espaço de busca, transformando um problema matematicamente impossível em algo viável com poder computacional ou análise sofisticada.

Na prática, essa aleatoriedade vem de fontes de entropia de alta qualidade alimentando um gerador criptograficamente seguro de números aleatórios. Se a fonte for fraca (por exemplo, baseada em timestamps, IDs de processo ou ruído insuficiente do sistema), a chave privada resultante terá estrutura oculta. 

Hackers já exploraram exatamente isso em incidentes reais, como a recuperação de chaves privadas de Bitcoin a partir de RNGs mal inicializados em dispositivos, onde a entropia efetiva caiu para apenas 32 bits, possibilitando roubo em massa de chaves.

Entropia suficiente garante que a segurança da chave acompanhe a força do algoritmo. Para chaves de curva elíptica como secp256k1 (usada no Bitcoin e em muitos outros), a curva oferece cerca de 128 bits de segurança contra ataques matemáticos, então a chave privada precisa de pelo menos essa quantidade de entropia para não se tornar o elo fraco.

Como a Tangem gera entropia para chaves em modo sem seed phrase?

No modo sem seed phrase, o Tangem Card gera a chave privada dentro do chip do Secure Element. O chip contém um True Random Number Generator de hardware, que produz aleatoriedade a partir de processos físicos como ruído térmico e jitter de oscilador. Veja o processo detalhado:
 

Passo 1: O TRNG coleta ruído físico. 

O True Random Number Generator de hardware extrai entropia de variações imprevisíveis no silício, incluindo ruído térmico no nível do transistor, ruído eletrônico de efeitos quânticos e jitter na temporização de osciladores de alta frequência. O resultado nesta etapa é um fluxo bruto de bits com viés e correlação.
 

Passo 2: O condicionamento remove o viés. O TRNG aplica um algoritmo de condicionamento, como um hash criptográfico ou um processo de branqueamento, para eliminar padrões e produzir saída uniformemente distribuída em todos os valores possíveis. Também são realizados testes contínuos de integridade no fluxo bruto, e o processo é interrompido se a fonte de ruído degradar. Junto ao Passo 1, esse passo é feito usando uma biblioteca certificada CC EAL, que passa por testes rigorosos durante a certificação, já vem com o chip e nunca é modificada.
 

Passo 3: O chip extrai 256 bits. Uma sequência de 256 bits é retirada da saída condicionada. Esse valor é apenas um candidato a chave privada.
 

Passo 4: O chip valida o candidato conforme a ordem da curva. Uma chave privada de curva elíptica deve ser um escalar válido dentro de um intervalo específico. Para secp256k1, a chave precisa ser um inteiro entre 1 e n-1, onde n é a ordem do ponto base e fica um pouco abaixo de 2^256.

Candidatos iguais a zero ou iguais/acima de n são inválidos. O chip descarta e sorteia novamente, embora a chance disso acontecer seja cerca de 2^-128.
 

Passo 5: O valor se torna a chave mestra. É aqui que o método se torna sem seed phrase. Os 256 bits entram diretamente na hierarquia de chaves como chave privada mestra, sem mnemonic. 

Passo 6: O chip calcula a chave pública. A chave pública é obtida multiplicando a chave privada por G, o ponto gerador da secp256k1, uma operação unidirecional e irreversível.

Passo 7: Os endereços são derivados das chaves públicas. No Bitcoin, a chave pública comprimida em um determinado caminho passa por SHA-256 e depois RIPEMD-160 para gerar um hash de 20 bytes. A codificação desse hash define o tipo de endereço.

Uma chave em um caminho BIP-84 vira um endereço P2WPKH com codificação bech32. Uma chave em um caminho BIP-44 vira um endereço P2PKH com codificação Base58Check. Os caminhos geram chaves diferentes, então resultam em endereços distintos.
 

Passo 9: A chave privada fica em memória protegida. A chave privada permanece dentro do chip Secure Element durante toda sua vida útil. O chip assina transações internamente e só envia as assinaturas, então a chave nunca chega ao celular, ao app ou à internet.
 

Como a Tangem gera entropia para seed phrases?

No modo seed phrase, o app Tangem gera o mnemonic no celular. O app solicita bytes aleatórios ao gerador criptográfico do sistema, que é o SecRandomCopyBytes no iOS e o SecureRandom no Android.

Ambas as interfaces são geradores criptograficamente seguros. Cada uma é alimentada pelo pool de entropia do sistema operacional, que é preenchido por fontes de entropia de hardware ao ligar o aparelho e durante o uso.

O app converte esses bytes em palavras conforme o padrão BIP-39. Adiciona um checksum, divide o resultado em grupos de 11 bits e mapeia cada grupo para uma palavra de uma lista de 2048. Doze palavras codificam 128 bits de entropia. Vinte e quatro palavras codificam 256 bits.

 

O modo sem seed phrase elimina a maior causa de perda: uma frase escrita que alguém encontra, fotografa ou destrói. O modo seed phrase oferece portabilidade para outras carteiras, com o custo de criar uma cópia da chave fora do chip.


Por que usuários não podem testar sua própria entropia?

Uma chave gerada com 40 bits de entropia parece idêntica a uma com 256 bits. Ambas produzem um endereço válido e retornam o mesmo número de palavras no mesmo formato.
 

Não existe teste que o usuário consiga fazer em casa. Por isso, falhas de entropia podem passar despercebidas por anos em produtos já vendidos. A verificação precisa ocorrer antes da compra, por meio de auditorias públicas e respostas técnicas do fabricante.
 

Como funcionam os ataques de entropia?

Um invasor não consegue calcular uma chave privada a partir de um endereço público. Isso exigiria resolver o problema do logaritmo discreto, que é inviável em qualquer escala realista.


Entropia fraca elimina a necessidade desse cálculo. O atacante busca o conjunto reduzido de chaves que o gerador comprometido poderia ter produzido, deriva os endereços de cada candidato e verifica esses endereços na blockchain em busca de saldo.

O endereço serve como alvo da busca. É por isso que ataques de entropia encontram carteiras com saldo e ignoram carteiras vazias.

 

O que observar ao escolher uma carteira

Ao escolher uma carteira de hardware, dê prioridade a dispositivos com geração de entropia forte e verificável, pois esse é o ponto central que determina a imprevisibilidade das suas chaves privadas. 


O incidente recente de ataque à entropia é um bom exemplo de por que firmware open source não deve ser automaticamente associado a mais segurança. A maioria dos usuários não consegue auditar o código-fonte de fato, enquanto atacantes sofisticados podem estudá-lo para identificar vulnerabilidades sutis e explorá-las.

A abordagem mais forte é minimizar a exposição desnecessária do firmware crítico, submetendo-o a auditorias independentes rigorosas por especialistas reconhecidos em segurança. No fim das contas, a segurança vem de uma arquitetura robusta, testes completos e verificação independente. – Andrey Lazutkin, CTO.

Considere usar carteiras de hardware com Secure Element certificado e firmware auditado de forma independente. Esse firmware orienta o uso do Secure Element, e falhas na implementação podem comprometer até mesmo o hardware mais seguro. Por isso, toda atualização de firmware deve ser revisada por especialistas confiáveis. 

O projeto de segurança da Tangem foi revisado de forma independente por laboratórios líderes, incluindo Kudelski Security, Riscure e Cure53, garantindo a segurança geral da nossa carteira.

Author logo
Autor Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Analisado por Andrey Lazutkin

Chief Technology Officer at Tangem.