Dimensionando chaves, resumos e entropia na unidade da criptografia
A criptografia é citada em bits e armazenada em bytes. Uma norma batiza o algoritmo pelo seu parâmetro de segurança — AES-256, SHA-512, Ed25519 — enquanto o material da chave que está no seu cofre de segredos, no seu buffer ou num espaço do HSM é medido em bytes. Errar essa tradução não é um detalhe estético: passar uma senha de 32 caracteres onde se esperava uma chave aleatória de 32 bytes destrói em silêncio quase toda a força pela qual o algoritmo foi escolhido.
bits = bytes × 8. Ou seja, um segredo de 32 bytes é 32 × 8 = 256 bits — exatamente a chave que o AES-256 espera e exatamente o comprimento do resumo que o SHA-256 devolve.Bits são a unidade da força de segurança, porque a força tem a ver com quantos valores distintos um atacante precisa percorrer. Bytes são a unidade de armazenamento e transporte. Quase toda revisão de gestão de chaves acaba indo e voltando entre as duas, normalmente enquanto se lê a assinatura de uma biblioteca que diz keyLen sem dizer em que unidade.
Chaves simétricas
Chaves assimétricas
Entropia de um segredo
Conferindo o comprimento de uma chave antes de colocá-la no ar
Meça o material bruto, não a codificação dele
Pegue o comprimento em bytes do segredo já decodificado. O Base64 infla cerca de um terço e o hexadecimal dobra, então uma cadeia Base64 de 44 caracteres e uma hexadecimal de 64 caracteres descrevem os mesmos 32 bytes brutos.
Digite no campo de bytes
O valor em bits aparece conforme você digita, então dá para passar por 16, 24 e 32 bytes e ver surgirem as fronteiras do AES-128, do AES-192 e do AES-256. Vírgula e ponto funcionam como marca decimal e os espaços são ignorados.
Copie o valor para a sua especificação ou chamado
Cada campo tem o próprio botão de copiar e devolve o número puro, sem unidade colada — prático quando o valor vai para uma modelagem de ameaças, um roteiro de rotação de chaves ou uma constante de configuração.
Inverta para dimensionar um buffer
Inverta os dois campos quando a norma te entrega bits e você precisa da alocação em bytes — um resumo de 384 bits virando um vetor de 48 bytes, por exemplo. Os menus com busca também alcançam kilobytes, caso você esteja dimensionando um pacote de certificados em vez de uma chave só.
Comprimentos de chaves e resumos: algoritmo, bits e bytes lado a lado
Esta é a consulta que a maioria das pessoas realmente quer quando uma biblioteca rejeita o material da chave. Repare como a linha do RSA quebra o padrão das outras: o comprimento em bytes é grande, mas a força de segurança não é.
| Algoritmo ou valor | Comprimento citado (bits) | Armazenamento bruto (bytes) | Caracteres hexadecimais |
|---|---|---|---|
| Chave AES-128 | 128 | 16 B | 32 |
| Chave AES-256 | 256 | 32 B | 64 |
| Resumo SHA-1 | 160 | 20 B | 40 |
| Resumo SHA-256 | 256 | 32 B | 64 |
| Resumo SHA-512 | 512 | 64 B | 128 |
| UUID (versão 4) | 128 | 16 B | 32 |
| Semente privada Ed25519 | 256 | 32 B | 64 |
| Módulo RSA-2048 | 2.048 | 256 B | 512 |
Um UUID versão 4 é a ilustração mais clara da diferença entre comprimento e força: ele ocupa 128 bits, mas seis deles são marcadores fixos de versão e variante, sobrando 122 bits de aleatoriedade de verdade.
Os dois campos editáveis durante uma revisão
Escreva um número de qualquer um dos lados e o outro se atualiza na hora, então uma revisão de projeto salta entre "a RFC diz 384 bits" e "o nosso buffer tem 48 bytes" sem redigitar nada.
Valores grandes continuam legíveis
Os milhares saem separados por espaço e números muito grandes passam para notação científica, o que ajuda quando você está expressando um repositório de chaves inteiro, e não uma chave só.
Vai além de um único segredo
Os menus de unidade com busca dos dois lados também cobrem kilobytes e megabytes, então a mesma página dá conta de um pacote de chaves, de uma lista de revogação ou de um repositório exportado.
Os valores nunca saem do navegador
Toda a aritmética acontece localmente assim que a página carrega, então comprimentos tirados de um inventário real de chaves não são enviados a servidor nenhum.
Dúvidas sobre dimensionamento de chaves
Por que uma chave AES-256 tem só 32 bytes?
O 256 do nome é o comprimento da chave em bits, e 256 ÷ 8 = 32 bytes. A chave é material aleatório puro, sem cabeçalho, soma de verificação ou codificação, então nada se desperdiça. Se a biblioteca pede 32 bytes e você entrega uma senha de 32 caracteres, o comprimento bate mas a imprevisibilidade não — é para consertar isso que existe uma função de derivação de chave com sal e um número alto de iterações.
Uma chave RSA-2048 tem 2.048 bits, então por que o arquivo dela ocupa vários kilobytes?
Os 2.048 bits descrevem apenas o módulo, que são 256 bytes. Um arquivo de chave privada guarda também os dois primos, o expoente privado e os parâmetros do TRC, embrulhados numa estrutura ASN.1 e depois convertidos em Base64 no formato PEM — cada etapa acrescenta bytes. Um arquivo de chave pública é bem menor porque carrega só o módulo e um expoente bem curto.
Quantos bits de entropia uma frase-senha tem de verdade?
A entropia depende de como a frase-senha foi gerada, não de quão longa ela é. Palavras sorteadas de forma uniforme de uma lista de 7.776 palavras contribuem com cerca de 12,9 bits cada, então uma frase de cinco palavras carrega mais ou menos 64 bits por mais que ocupe trinta e poucos bytes em disco. Uma frase do mesmo comprimento em bytes inventada por uma pessoa vale muito menos, porque as escolhas nunca foram uniformes.
Um UUID de 128 bits tem aleatoriedade suficiente para um token de sessão?
Um UUID versão 4 tem 16 bytes, dos quais quatro bits codificam a versão e dois a variante, sobrando 122 bits aleatórios. Isso é bastante contra adivinhação — mas só se vier de um gerador criptograficamente seguro, o que muitas implementações de UUID não garantem. Os UUID versão 1 são piores ainda, já que embutem um carimbo de tempo e um endereço MAC. Para tokens, gere 32 bytes aleatórios diretamente.
Por que a saída de um hash é sempre descrita em bits, e não em bytes?
Porque é a contagem de bits que determina a resistência a colisões: um resumo de n bits oferece cerca de n / 2 bits de resistência pelo paradoxo do aniversário, então o SHA-256 dá aproximadamente 128 bits contra colisões. Chamá-lo de "hash de 32 bytes" esconderia essa relação. O mesmo raciocínio vale quando você trunca um resumo para virar uma impressão digital curta — quanto é seguro manter se discute em bits.
Ainda não há comentários. Seja o primeiro a comentar!