Bip32: Carteiras HD – Determinísticas Hierárquicas

O Bip 32 é um método de derivação em camadas proposto para evitar o problema de gerenciar um monte de chaves privadas.

A carteira bitcoin também é um contêiner de chaves privadas.

Não somos limitados a ter apenas uma carteira digital. Podemos livremente gerar quantas chaves privadas quisermos, ajudando-nos também a proteger a privacidade, e é particularmente facilitando na problemática diaria de fazer backup de chaves privadas.

A primeira carteira Bitcoin era assim e também tinha um apelido: “Just a Bunch Of Keys” (um monte de chaves privadas).

Para resolver este problema, existe a proposta do BIP 32, para obter chaves privadas através de derivação determinística hierárquica baseada em um número aleatório utilizado como semente.

Desta forma, apenas uma seed precisa ser salva, e consequentemente a chave privada também é salva. derivado-a. Como mostrado na imagem:

A semente raiz é inserida no algoritmo HMAC-SHA512 para obter uma chave secreta (uma chave privada ou uma chave pública) e um código de cadeia mestre que pode ser usado para criar uma chave privada mestra (m) e um código de cadeia mestre.

A codificação mais um número de índice serão usados como entrada do algoritmo HMAC-SHA512 para derivar a próxima camada de chave privada e codificação de cadeia, conforme mostrado abaixo:

Na verdade, existem dois esquemas de derivação: um usando a chave privada pai (chamada equação de derivação aprimorada), e outro usando a chave pública pai.

Ao mesmo tempo, para distinguir essas duas derivações diferentes, o número do índice também é diferenciado. O número do índice é menor que 2 ^ 31 para a derivação regular, enquanto o número do índice entre 2 ^ 31 e 2 ^ 32-1 é usado. para derivação aprimorada, a fim de facilitar a expressão do índice No. i’ significa 2 ^ 31 + i.

Portanto, aumentando o índice (expansão horizontal) e descer um nível através de sub-chaves (expansão em profundidade) pode gerar ilimitadamente chaves privadas.

Com a mesma entrada, esse método sempre obterá a mesma saída, é um processo unidirecional.

Uma chave filha não pode derivar uma chave irmã no mesmo nível, nem pode derivar uma chave pai. A chave neta não pode ser derivada sem o código da cadeia filho. Agora temos uma compreensão da derivação hierárquica.

Sobre Nicolau 37 Artigos
Fuçando o desenvolvimento de software desde 2013, sou da turma do código aberto, vivo pesquisando e garimpando a segurança na web. Sommelier de sucos e chocólatra de carteirinha. Hic svnt dracones.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*