# Compartilhamento de segredo de Shamir

Divide um segredo em n partes das quais k (o limiar) bastam para reconstruí-lo — esquema k-de-n de Shamir sobre GF(256). Criptografia puramente local (crypto.randomBytes para coeficientes), sem rede. Divida senha/chave/frase entre várias pessoas e recupere com k partes. Apenas confidencialidade, sem autenticidade.

> Página canônica: https://elysiatools.com/pt/tools/shamir-secret-sharing

- **Categoria:** Security

- **Palavras-chave:** Shamir, segredo compartilhado, limiar, k-de-n, dividir, recuperar

## Visão geral

Esta ferramenta implementa **compartilhamento de segredo com limiar de Shamir** sobre GF(256): um segredo é dividido em `n` partes, das quais `k` (o limiar) bastam para reconstruí-lo, enquanto `k-1` ou menos *nada revelam* — sigilo garantido pela teoria da informação.

**Dois modos:**
- **Dividir**: cole um segredo (qualquer texto UTF-8 — senha, chave de API, frase-semente, frase de recuperação), defina o limiar `k` e o total `n` (2 ≤ k ≤ n ≤ 255), e obtenha `n` partes. Distribua cada parte a um detentor distinto.
- **Combinar**: cole `k` ou mais partes (uma por linha) para reconstruir o segredo original por interpolação de Lagrange em x=0.

**Como funciona.** Cada byte do segredo é o termo constante de um polinômio aleatório de grau `k-1` sobre GF(256). A parte `i` é o polinômio avaliado em `x=i`. A recuperação exige `k` pontos para determinar univocamente um polinômio de grau `k-1`. Os coeficientes vêm de `crypto.randomBytes()` (CSPRNG do SO), nunca `Math.random()`.

**Limitações — leia:**
- **Apenas confidencialidade, sem integridade.** Quem tiver uma parte pode enviar um valor *falsificado* durante a recuperação; a matemática produzirá um segredo plausível, porém errado, sem detecção. Para detectar adulteração, assine o segredo (ou seu hash) *antes* de dividir e verifique após combinar.
- **Limites de GF(256).** `n` é limitado a 255 (tamanho do corpo) e `k` deve ser ≥ 2.
- **Formato da parte.** Cada parte é `sss:` + base64url de `[coordenada x, y-byte₁, y-byte₂, …]`. Preserve a string inteira; truncar quebra a recuperação.

**Casos de uso.** Custódia/recuperação de chaves (dividir uma chave-mestra entre executivos), recuperação social para carteiras autocustodiadas, distribuir uma frase para que ninguém a tenha sozinha, recuperação do tipo "dead man's switch".

## Entradas

- **Modo** (select)
- **Segredo para dividir** (textarea): The secret to split (any text: a password, API key, seed phrase). Used in Split mode.
- **Limiar (k)** (number): e.g. 3
- **Total de partes (n)** (number): e.g. 5
- **Partes para combinar** (textarea): Paste shares to combine (one per line). At least k shares required. Used in Combine mode.

## Quando usar

- Quando você precisa distribuir uma senha mestra ou chave de criptografia entre vários membros de uma equipe sem conceder acesso individual a nenhum deles.
- Ao configurar um esquema de recuperação social para chaves privadas ou frases-semente de carteiras de criptomoedas.
- Para armazenar backups confidenciais em locais físicos ou digitais distintos, mitigando o risco de roubo ou perda de um único ponto de falha.

## Como funciona

- No modo Dividir, cada byte do segredo inserido é tratado como o termo constante de um polinômio aleatório de grau k-1 sobre o corpo finito GF(256).
- Os coeficientes do polinômio são gerados localmente usando a API criptográfica segura do sistema operacional (crypto.randomBytes), garantindo alta entropia sem comunicação com servidores externos.
- Cada parte gerada representa um ponto avaliado no polinômio e é codificada no formato 'sss:' seguido por uma representação em base64url.
- No modo Combinar, a ferramenta utiliza a interpolação polinomial de Lagrange em x=0 para recalcular o termo constante e restaurar o segredo original a partir de pelo menos k partes.

## Casos de uso

- Divisão de chaves de criptografia corporativas entre diretores para aprovação conjunta de operações críticas.
- Salvaguarda distribuída de chaves privadas de criptoativos em cofres geograficamente separados.
- Mecanismos de contingência onde partes de uma senha de recuperação são confiadas a contatos de confiança.

## Perguntas frequentes

### O que acontece se eu perder algumas partes do segredo?

Desde que você ainda possua uma quantidade de partes igual ou superior ao limiar (k) definido no momento da divisão, o segredo poderá ser totalmente recuperado.

### Esta ferramenta envia meus dados para algum servidor?

Não. Todo o processo de divisão e combinação de segredos é executado localmente no seu navegador, garantindo total privacidade.

### Como posso verificar se uma parte foi adulterada?

O algoritmo de Shamir padrão não possui verificação de integridade. Recomenda-se gerar e salvar um hash ou assinatura do segredo antes de dividi-lo para validar o resultado após a combinação.

### Qual é o limite de partes que posso gerar?

Devido às limitações matemáticas do corpo finito GF(256), o número total de partes (n) é limitado a 255, e o limiar (k) deve ser de pelo menos 2.

### Posso usar partes incompletas ou modificadas para recuperar o segredo?

Não. Modificar ou truncar a string de qualquer parte corrompe a estrutura dos dados e impede a reconstrução correta do segredo.

## Ferramentas relacionadas

- [Testador de par de chaves e encapsulamento ML-KEM / Kyber](https://elysiatools.com/pt/tools/ml-kem-kyber-keypair-and-encapsulation-tester): Gera pares de chaves ML-KEM-512/768/1024 (FIPS 203 / CRYSTALS-Kyber), encapsula um segredo compartilhado aleatório com a chave pública, desencapsula com a chave privada e verifica a igualdade — conferindo ao vivo os tamanhos exatos dos três conjuntos de parâmetros.
- [Verificador de cabeçalhos de segurança](https://elysiatools.com/pt/tools/security-headers-checker): Audita cabeçalhos de resposta HTTP para conformidade de segurança — analisa os cabeçalhos brutos que você cola (sem rede) e os classifica conforme o conjunto de cabeçalhos seguros OWASP com verificações em nível de valor: HSTS max-age, CSP unsafe-inline/eval, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP e mais. Retorna uma nota (A+ a F) mais constatações por cabeçalho com recomendações prontas para copiar.
- [Planejador de rotação de segredos .env](https://elysiatools.com/pt/tools/env-file-secret-rotation-planner): Cole um arquivo .env e obtenha um plano de rotação de segredos por etapas. Detecta URLs de banco, API keys, tokens de autenticação, chaves privadas, credenciais de nuvem, chaves de pagamento e segredos de criptografia; pontua cada um por exposição e idade e os agenda em uma linha do tempo de 4 semanas com checklist de chave dupla e um .env.example gerado. Datas opcionais de última rotação e cadência configurável (30/90/180/365 dias) alimentam o score de conformidade.
- [Gerador de par de chaves RSA](https://elysiatools.com/pt/tools/rsa-key-generator): Gera um par de chaves RSA pública/privada via crypto.generateKeyPairSync() do Node, em formato PEM. Suporta 2048/3072/4096 bits, PKCS#8 (recomendado) ou PKCS#1, e criptografia da chave privada com senha. As chaves são geradas localmente.
- [Verificador de segurança de URL](https://elysiatools.com/pt/tools/url-safety-checker): Detecta sinais de phishing e fraude numa URL por análise estrutural profunda — ataques homógrafos punycode/IDN (Latim/Cirílico misto), credenciais embutidas (truque user:pass@host), TLDs de alto risco, dupla codificação e contrabando de caracteres de controle, engano de subdomínio de marca e ofuscação numérica/IP. Apenas análise estática, sem rede. Complementa o URL Validator.
- [Verificador de Forca da Frase Secreta AGEX](https://elysiatools.com/pt/tools/agex-passphrase-strength-checker): Avalia uma frase secreta para bundles AGEX e recomenda o perfil de protecao adequado
- [Nota Segura de Compartilhamento AGEX](https://elysiatools.com/pt/tools/agex-secure-share-note): Gera uma nota clara para que o destinatario saiba como descriptografar e verificar um bundle AGEX
- [Gerador de assinatura digital](https://elysiatools.com/pt/tools/digital-signature-generator): Assina uma mensagem com uma chave privada ou verifica uma assinatura com uma chave pública — suporta RSA-PSS (SHA-256), ECDSA (P-256) e Ed25519. Criptografia puramente local (Node crypto.createVerify/createSign), sem rede. Cole uma chave PEM para assinar ou verificar uma assinatura base64. Esta ferramenta assina/verifica; não gera pares de chaves.

## Exemplos

- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Java](https://elysiatools.com/pt/samples/android-image-processing-java): Exemplos de processamento de imagem Android Java incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Android Kotlin](https://elysiatools.com/pt/samples/android-image-processing-kotlin): Exemplos de processamento de imagem Android Kotlin incluindo leitura/escrita, dimensionamento e conversão de formato
- [Exemplos de Processamento de Imagem Web Rust](https://elysiatools.com/pt/samples/web-image-processing-rust): Exemplos de processamento de imagem Web Rust incluindo leitura/gravação, redimensionamento e conversão de formato
