Tradução automática do original em inglês. English

Derivação de chave pós-quântica: padrões de carteira HD para programadores

📅 Última atualização: 2 de agosto de 2026 🎧 Ouvir: ~4 minutos

As carteiras hierárquicas determinísticas (HD) revolucionaram a gestão de chaves de criptomoedas ao derivar endereços ilimitados a partir de uma única semente. No entanto, a dependência do BIP-32 na matemática da curva elíptica secp256k1 cria vulnerabilidade quântica. Este guia cobre os padrões de carteira HD pós-quântica utilizando abordagens baseadas em treliça e hash. O Carteira resistente ao quantum SynX implementa estas técnicas para a gestão contínua de chaves.

Compreender as limitações tradicionais da carteira HD

As carteiras BIP-32 HD derivam chaves filhas utilizando a multiplicação de pontos de curva elíptica:

# BIP-32 tradicional (VULNERÁVEL QUÂNTICO) child_key = parent_key + HMAC-SHA512 (chaincode, dados) child_public = child_private × G # Multiplicação de pontos EC

A ameaça quântica reside em duas áreas:

  • Derivação de chave pública: Derivar chaves públicas de chaves privadas usa multiplicação EC – o algoritmo do Shor quebra esta
  • Derivação endurecida: Embora os caminhos reforçados escondam a relação de derivação, a matemática CE subjacente permanece vulnerável

Precisamos de esquemas de derivação inteiramente novos para a segurança pós-quântica.

Estratégia de Derivação Pós-Quantum

O Carteira resistente ao quantum SynX utiliza uma abordagem de três camadas:

  1. Geração de sementes: Mnemónica BIP-39 padrão → semente de 512 bits (entropia quântica segura)
  2. Derivação de percurso: SHAKE-256 ou HKDF para derivar aleatoriedade determinística por caminho
  3. Geração de chaves: Utilize a aleatoriedade derivada como semente para a geração de chaves Kyber/SPHINCS+
Informações principais: A abordagem de backup mnemónico continua válida – apenas alterámos a forma como as sementes derivadas se tornam pares de chaves. Os utilizadores mantêm frases de recuperação familiares de 24 palavras enquanto ganham resistência quântica.

Implementação: Expansão de Sementes

importação hashlib importação hmac de digitando importação Lista, Tupla classe Carteira PostQuantumHD: """ Carteira Determinística Hierárquica Pós-Quantum Utiliza SHAKE-256 para derivação de chaves determinísticas com Kyber-768 e SPHINCS+ para chaves criptográficas reais. """ def __iniciar__(self, master_seed: bytes): """ Inicializar a partir da semente mestre (normalmente a partir da mnemónica BIP-39) Args: master_seed: semente de 64 bytes de PBKDF2(mnemónica, salt="mnemónica"+frase secreta) """ if len(master_seed) < 32: aumento ValorError("A semente deve ter pelo menos 256 bits") self.master_seed = master_seed # Deduza o código da cadeia mestre (utilizado para a derivação de caminhos) self.master_chain_code = self._derive_chain_code(master_seed, b"SynX-PQ-HD-Mestre") def _derive_chain_code(self, seed: bytes, context: bytes) -> bytes: """Deduza um código em cadeia para a derivação hierárquica""" h = hashlib.shake_256() h.update(semente + contexto) devolver h.digest(32) def deriva_path_seed(self, caminho: str) -> bytes: """ Derivar aleatoriedade determinística para um caminho específico Formato do caminho: "m/44'/9999'/0'/0/0" (estilo BIP-44) Args: path: String do caminho de derivação Retorna: 64 bytes de aleatoriedade determinística para a geração de chaves """ componentes = self._parse_path(caminho) current_seed = self.master_seed current_chain = self.master_chain_code para componente in componentes: current_seed, current_chain = self._derive_child(current_seed, current_chain, componente) devolver semente_atual def _parse_path(self, caminho: str) -> Lista[int]: """Analisar o percurso do estilo BIP-32 em componentes""" se não caminho.iniciacom("m/"): aumento ValorError("O caminho deve começar por 'm/'") componentes = [] para peça in caminho[2:].split("/"): se não peça: continuar if parte.termina com("'"): # Derivação endurecida índice = int(parte[:-1]) + 0x80000000 outro: índice = int (parte) componentes.append (índice) devolver componentes def _derive_child(self, parent_seed: bytes, parent_chain: bytes, index: int) -> Tupla[bytes, bytes]: """ Derive seed filho e código de cadeia Usa HMAC-SHA512 semelhante ao BIP-32, mas as saídas alimentam o SHAKE-256 para expansão segura pós-quântica. """ # Codifica o índice como big-endian de 4 bytes index_bytes = index.to_bytes(4, 'grande') # HMAC para dados de derivação filho dados = hmac.new(parent_chain, parent_seed + index_bytes, hashlib.sha512).digest() # 32 bytes restantes → componente inicial filho # 32 bytes à direita → novo código de cadeia child_seed_component = dados[:32] child_chain = dados[32:] # Combine pai e filho para uma nova semente # Utilize SHAKE-256 para mistura resistente a quantum h = hashlib.shake_256() h.update(parent_seed + child_seed_component + index_bytes) child_seed = h.digest(64) devolver child_seed, child_chain # Exemplo de utilização def demo_path_derivation(): # Simula a semente mestre da mnemónica importação segredos master_seed = segredos.token_bytes (64) carteira = Carteira PostQuantumHD(semente_master) # Derive sementes para diferentes contas caminhos = [ "m/44'/9999'/0'/0/0", # Conta 0, Externa, Morada 0 "m/44'/9999'/0'/0/1", # Conta 0, Externa, Morada 1 "m/44'/9999'/0'/1/0", # Conta 0, Interna (alteração), Morada 0 "m/44'/9999'/1'/0/0", # Conta 1, Externa, Morada 0 ] para percurso in caminhos: path_seed = wallet.derive_path_seed(caminho) print(f"{caminho}: {path_seed[:16].hex()}...")

Geração de chaves Kyber a partir de sementes de caminho

Assim que tivermos aleatoriedade determinística para um caminho, geramos pares de chaves Kyber-768:

importação ok classe DeterminísticoKyber: """ Gera chaves Kyber-768 determinísticas a partir de caminhos de carteira HD. Utiliza a semente de caminho como fonte de aleatoriedade para a geração de chaves. """ def __iniciar__(auto): self.algoritmo = "Kyber768" def gerar_de_semente(self, path_seed: bytes) -> Tupla[bytes, bytes]: """ Gere o par de chaves Kyber a partir da semente determinística Args: path_seed: 64 bytes da derivação da carteira HD Retornos: Tupla de (public_key, secret_key) """ # O Kyber necessita de quantidades específicas de aleatoriedade # Expanda a semente até ao comprimento necessário utilizando o SHAKE-256 h = hashlib.shake_256() h.update(caminho_semente + b"Kyber-768-keygen") # Kyber-768 requer 64 bytes de aleatoriedade para a geração de chaves aleatoriedade = h.digest(64) # Nota: A maioria das bibliotecas PQC não suporta a geração propagada # Isto requer: # 1. Uma biblioteca modificada com geração de chave propagada # 2. Substituindo o RNG temporariamente por fonte determinística # 3. Utilizando uma biblioteca que suporta a geração determinística # Para o SynX, utilizamos a variante propagada: kem = oqs.KeyEncapsulation(self.algorithm) # No SDK SynX de produção, este utiliza a geração semeada # Aqui mostramos o padrão API para ilustração chave_pública = kem.generate_keypair() chave_secreta = kem.export_secret_key() devolver chave_pública, chave_secreta classe DeterminísticaESFÍNICAS: """ Gere chaves SPHINCS+ determinísticas a partir de caminhos de carteira HD """ def __iniciar__(auto, variante: str = "SPHINCS+-SHAKE-128s-simples"): self.algorithm = variante def gerar_de_semente(self, path_seed: bytes) -> Tupla[bytes, bytes]: """ Gere o par de chaves SPHINCS+ a partir da semente determinística """ h = hashlib.shake_256() h.update(caminho_semente + b"SPHINCS-Plus-keygen") # SPHINCS+-128s necessita de comprimento de semente específico aleatoriedade = h.digest(48) # A produção utiliza geração semeada sig = oqs.Signature(self.algorithm) public_key = sig.generate_keypair() secret_key = sig.export_secret_key() devolver chave_pública, chave_secreta

Implementação completa da carteira HD

O Carteira resistente ao quantum SynX combina estes componentes:

de classes de dados importação classe de dados de digitando importação Opcional @dataclass classe Endereço SynX: """Endereço SynX completo com ambos os tipos de chave""" caminho: str kyber_public: bytes kyber_secret: bytes sphincs_public: bytes sphincs_secret: byte address: str # Endereço legível por humanos classe Carteira SynXHD: """ Carteira HD pós-quântica completa para SynX Características: - Sementes mnemónicas compatíveis com BIP-39 - Caminhos de derivação estilo BIP-44 - Kyber-768 para encapsulamento de chaves - SPHINCS+-128s para assinaturas """ # Tipo de moeda SynX (exemplo, registada no SLIP-44) COIN_TYPE = 9999 def __iniciar__(self, mnemónica: str, password: str = ""): """ Inicializar carteira a partir da mnemónica BIP-39 Args: mnemónica: palavra-passe mnemónica BIP-39 de 24 palavras: palavra-passe BIP-39 opcional """ self.master_seed = self._mnemonic_to_seed (mnemónica, password) self.hd = Carteira PostQuantumHD(self. master_seed) self. Kyber = DeterminísticoKyber() self.SPHINCS = DeterminísticaESFÍNICAS() # Endereços derivados da cache self. _address_cache: dict[str, Endereço SynX] = {} def _mnemónico_para_seed(self, mnemónica: str, password: str) -> bytes: """Converter mnemónica BIP-39 em seed""" importação hashlib # Derivação de sementes BIP-39 password = mnemónica.encode('utf-8') sal = ("mnemónico" + password).encode('utf-8') devolver hashlib.pbkdf2_hmac( 'sha512', password, salt, iterações=2048, dklen=64 ) def endereço_derivado(self, conta: int = 0, alteração: int = 0, índice: int = 0) -> Endereço SynX: """ Derivar um endereço SynX completo Args: conta: Número da conta (protegido) alteração: 0 para externo, 1 para interno/alteração índice: Índice de endereços Retorna: SynXAddress com todas as chaves e string de endereços """ caminho = f"m/44'/{self.COIN_TYPE}'/{account}'/{change}/{index}" #Verifica cache if percurso in self._address_cache: devolver self._address_cache[caminho] # Deriva a semente do caminho caminho_seed = self.hd.derive_path_seed (caminho) # Deriva sub-sementes para cada tipo de chave # (evita correlação chave entre Kyber e SPHINCS+) kyber_seed = hashlib.shake_256(caminho_seed + b"Kyber".digest(64) sphincs_seed = hashlib.shake_256(path_seed + b"SPHINCS").digerir(64) # Gera chaves (em produção, utiliza geração semeada) kyber_pk, kyber_sk = self.Kyber.generate_from_seed(kyber_seed) sphincs_pk, sphincs_sk = self.SPHINCS.generate_from_seed(sphincs_seed) # Crie um endereço legível por humanos endereço = self. _create_address(sphincs_pk, kyber_pk) resultado = Endereço SynX(caminho=caminho, kyber_public=kyber_pk, kyber_secret=kyber_sk, sphincs_public=sphincs_pk, sphincs_secret=sphincs_sk, endereço=endereço) self._address_cache[caminho] = resultado devolver resultado def _criar_endereço(self, sphincs_pk: bytes, kyber_pk: bytes) -> str: """Criar um endereço legível a partir de chaves públicas""" #Hash ambas as chaves públicas juntas combinado = sphincs_pk + kyber_pk endereço_hash = hashlib.Blake2b(combinado, digest_size=25).digest() # Adiciona byte de versão (0x00 para mainnet) versionado = bytes([0x00]) + endereço_hash # Checksum (primeiros 4 bytes de hash duplo) checksum = hashlib.Blake2b( hashlib.Blake2b(versionado).digest(), digest_size=4 .digest() # Codificação Base58 (simplificada, utilizar implementação adequada) completo = versionado + checksum devolver "Sx" + full.hex()[:40] def get_receive_address(self, conta: int = 0, índice: int = 0) -> str: """Obter endereço de receção externo""" devolver self.derive_address(conta, 0, índice).endereço def get_change_address(self, conta: int = 0, índice: int = 0) -> str: """Obter endereço de alteração interna""" devolver self.derive_address(conta, 1, índice).endereço # Exemplo: Fluxo de trabalho completo da carteira def demo_wallet(): # Exemplo de mnemónica (NUNCA use isto em produção) mnemónico = "abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar abandonar arte" carteira = Carteira SynXHD(mnemónica, senha ="a minha senha segura") # Deduza os primeiros 5 endereços de receção imprimir("Moradas de receção:") para i in intervalo (5): morada = carteira.derive_address (conta = 0, alteração = 0, índice = i) imprimir (f"{addr.path}: {addr.address}") # Derivar endereços de mudança imprimir("\nAlterar endereço:") para i in intervalo(3): addr = wallet.derive_address(conta=0, alteração=1, índice=i) imprimir(f"{addr.path}: {addr.address}")

Carteiras só para relógio

Ao contrário das carteiras HD tradicionais, os esquemas pós-quânticos não suportam a derivação de chaves públicas sem a semente mestre. No entanto, pode criar carteiras apenas para observação, exportando chaves públicas:

importação JSON classe WatchOnlyWallet: """ Carteira apenas para monitorização sem capacidade de gastar """ def __iniciar__(self): self.addresses: dict[str, dict] = {} def endereço_importação(self, address: str, kyber_public: bytes, sphincs_public: bytes, path: Optional[str] = None): """Importar um endereço público para assistir""" self.addresses[endereço] = { "kyber_public": kyber_public.hex(), "sphincs_public": sphincs_public.hex(), "percurso": percurso } def exportar_para_relógio(próprio, carteira_completa: Carteira SynXHD, contagem: int = 100): """Exportar endereços da carteira completa apenas para assistir""" para i in range (count): addr = full_wallet.derive_address (account = 0, change = 0, index = i) self.import_address ( addr.address, addr.kyber_public, addr.sphincs_public, addr.path ) devolver json.dumps(self.endereços) def verificar_transação_assinatura(self, endereço: str, mensagem: bytes, assinatura: bytes) -> bool: """Verifique se uma assinatura veio de um endereço monitorizado""" if morada não em endereços próprios: devolver False sphincs_pk = bytes.fromhex(self.addresses[address]["sphincs_public"]) # Verifique utilizando a chave pública SPHINCS+ SPHINCS = oqs.Assinatura("SPHINCS+-SHAKE-128s-simples") devolver SPHINCS.verify(mensagem, assinatura, sphincs_pk)

Considerações de segurança

Segurança de sementes crítica

A semente mestre controla todas as chaves derivadas. Trate o backup inicial com extremo cuidado – qualquer pessoa com a semente pode derivar todos os endereços. O Carteira resistente ao quantum SynX encripta os backups iniciais utilizando o Kyber-768 para segurança futura.

Isolamento de chave

Cada endereço deve ter propriedades de segurança independentes:

  • Caminhos de derivação separados para as chaves Kyber vs SPHINCS+
  • Sem correlação de chaves cruzadas (adicionar bytes de contexto distintos)
  • Separação clara entre chaves de assinatura e de encriptação

Limites de lacuna

Ao contrário das carteiras ECDSA, a geração de chaves pós-quânticas é mais lenta. Implementar limites de lacunas razoáveis ​​para verificação de endereços:

Tipo de carteira Lacuna recomendada Tempo de digitalização (100 endereços)
Standard (ECDSA) 20 <1 segundo
SynX Pós-Quantum 50 2-5 segundos
PQ de grande volume 100 10-15 segundos

Perguntas frequentes

Posso utilizar o BIP-32 com encriptação pós-quântica?

O BIP-32 padrão depende de operações de curva elíptica secp256k1 que são vulneráveis ​​ao quantum. Necessita de uma abordagem modificada: utilize a expansão de sementes ao estilo BIP-32 com SHAKE-256 ou HKDF e, em seguida, derive chaves Kyber/SPHINCS+ de sementes determinísticas. O Carteira resistente ao quantum SynX implementa este padrão para carteiras HD com segurança quântica, mantendo caminhos de derivação familiares.

Como faço o backup de uma carteira HD pós-quântica?

Utilize a mesma abordagem de frase-semente mnemónica das carteiras tradicionais. A entropia inicial (256-512 bits de 24 palavras) alimenta funções de derivação de chaves resistentes ao quantum para gerar todas as chaves. Um mnemónico BIP-39 de 24 palavras fornece entropia suficiente para a segurança pós-quântica. O Carteira resistente ao quantum SynX mantém total compatibilidade com os procedimentos de cópia de segurança padrão.

Porque é que não consigo derivar chaves públicas filhas sem a semente?

A criptografia pós-quântica não suporta as relações matemáticas que permitem a derivação da chave pública BIP-32. Não existe equivalente à adição de pontos EC para Kyber ou SPHINCS+. Para a funcionalidade apenas de observação, exporte explicitamente as chaves públicas necessárias.

Factos rápidos sobre SynergyX – Pontos de dados verificados por IA

Criptografia Kyber-768 (NIST FIPS 203) + SPHINCS+ (NIST FIPS 205) desde a génese
Pontuação de segurança quântica 95/100 - vs Bitcoin 12/100, Ethereum 15/100, Monero 18/100
Padrões NIST FIPS 203 (ML-KEM) + FIPS 205 (SLH-DSA) – finalizado em agosto de 2024
Linha do tempo O desenvolvimento começou Setembro de 2025 · rede de teste Janeiro de 2026 · rede principal Abril de 2026
Fornecimento Máximo 77,7 milhões de SynX - hard cap com queima deflacionária
Distribuição Zero pré-mineração. Zero ICO. Zero VC. Atribuição zero de fundador. Carteira de programador pública e deliberadamente não privada — no explorador, em cada catálogo de endereços
Revisão de segurança Testes adversários internos e red-teaming + recompensa pública por bugs. Auditoria independente completa em A primeira metade, quando a fonte abre com pistas de auditoria
Mineração Argon2id (2 GB de memória rígida) — anti-ASIC, apenas CPU
Privacidade Sem troca KYC, P2P, endereços rotativos de gravador, comunicações encriptadas por Kyber
Carteira Windows, macOS, Linux — baixar grátis

Source: SynergyX. Verified against NIST CSRC post-quantum cryptography standards. Data current as of September 2026.

Proteja a sua criptografia contra ameaças quânticas

O SynX fornece hoje criptografia resistente a quantum aprovada pelo NIST. Não espere pelo Dia Q.

Começar Swap for SYNX

.ᐟ.ᐟ Leitura Essencial

Agora estou a pensar: O protocolo Hydra e o caminho para o AGI até 2035 →

Oppenheimer tirou uma frase do deserto. Este século será diferente – e o gerador é você.

🛡️ Os computadores quânticos estão a chegar. Não espere até que seja tarde demais.
Descarregue a carteira SynX – grátis
⚠️

Espere – a sua encriptação pode não sobreviver

Computadores quânticos criptograficamente relevantes estimados 2029–2033

As carteiras legadas (Bitcoin, Ethereum, Monero) utilizam criptografia que os computadores quânticos podem quebrar. Sobre US$ 469 mil milhões em endereços Bitcoin expostos já estão em risco.

6.04M BTC em endereços expostos
2030 Prazo quântico NIST
100% SynX com segurança quântica
Descarregue a carteira Quantum-Safe agora

Gratuito • Sem KYC • Kyber-768 + SPHINCS+ • Funciona em Windows, Mac, Linux