# Reparto de secreto de Shamir

Divide un secreto en n partes donde cualquier k (el umbral) basta para reconstruirlo — esquema k-de-n de Shamir sobre GF(256). Criptografía pura local (crypto.randomBytes para coeficientes), sin red. Divide una contraseña/clave/frase entre varias personas y recupérala con cualquier k. Solo confidencialidad, no autenticidad.

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

- **Categoría:** Security

- **Palabras clave:** Shamir, secreto compartido, umbral, k-de-n, dividir, recuperar

## Descripción general

Esta herramienta implementa **reparto de secreto umbral de Shamir** sobre GF(256): un secreto se divide en `n` partes, y cualquier `k` de ellas (el umbral) puede reconstruirlo, mientras que `k-1` o menos *no revelan nada* — secreto con garantía de teoría de la información.

**Dos modos:**
- **Dividir**: pega un secreto (cualquier texto UTF-8 — contraseña, clave API, frase semilla, frase de recuperación), define el umbral `k` y el total `n` (2 ≤ k ≤ n ≤ 255), y obtienes `n` partes. Distribuye cada parte a un titular distinto.
- **Combinar**: pega `k` o más partes (una por línea) para reconstruir el secreto original mediante interpolación de Lagrange en x=0.

**Cómo funciona.** Cada byte del secreto es el término constante de un polinomio aleatorio de grado `k-1` sobre GF(256). La parte `i` es el polinomio evaluado en `x=i`. La recuperación requiere `k` puntos para determinar unívocamente un polinomio de grado `k-1`. Los coeficientes se toman de `crypto.randomBytes()` (CSPRNG del SO), nunca `Math.random()`.

**Limitaciones — léelo:**
- **Solo confidencialidad, sin integridad.** Quien tenga una parte puede enviar un valor *falsificado* durante la recuperación; el cálculo producirá un secreto plausible pero erróneo sin que lo detectes. Si necesitas detectar manipulación, firma el secreto (o su hash) *antes* de dividir y verifica tras combinar.
- **Límites de GF(256).** `n` se limita a 255 (tamaño del cuerpo) y `k` debe ser ≥ 2.
- **Formato de parte.** Cada parte es `sss:` + base64url de `[coordenada x, y-byte₁, y-byte₂, …]`. Conserva la cadena completa; truncar rompe la recuperación.

**Casos de uso.** Custodia/recuperación de claves (dividir una clave maestra entre directivos), recuperación social para carteras autocustodiadas, distribuir una frase para que nadie la tenga sola, recuperación tipo "dead man's switch".

## Entradas

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

## Cuándo usarlo

- Cuando necesite distribuir una clave maestra o frase de recuperación entre varios miembros de un equipo sin que ninguno de ellos pueda acceder al secreto de forma individual.
- Al configurar un sistema de recuperación social para carteras de criptomonedas autocustodiadas, permitiendo que contactos de confianza le ayuden a recuperar el acceso.
- Para implementar un mecanismo de custodia compartida donde se requiera la aprobación de un umbral mínimo de personas para revelar una información confidencial.

## Cómo funciona

- En el modo Dividir, el secreto se procesa byte a byte como el término constante de un polinomio aleatorio de grado k-1 sobre el cuerpo finito GF(256), utilizando coeficientes seguros generados localmente mediante la API criptográfica del sistema operativo.
- La herramienta evalúa el polinomio en diferentes puntos para generar las n partes resultantes, codificadas en un formato seguro que comienza con el prefijo 'sss:' seguido de la representación en base64url de las coordenadas.
- En el modo Combinar, se introducen al menos k partes (una por línea) y se aplica la interpolación de Lagrange en x=0 para reconstruir matemáticamente el polinomio original y revelar el secreto.

## Casos de uso

- Custodia compartida de contraseñas de administración de sistemas entre los directores de tecnología de una empresa.
- Respaldo distribuido de frases semilla de carteras de criptomonedas para evitar pérdidas por robo o extravío físico.
- Almacenamiento seguro de claves de cifrado de bases de datos divididas entre múltiples servidores de almacenamiento.

## Preguntas frecuentes

### ¿Qué ocurre si pierdo algunas partes del secreto?

Siempre que conserve al menos el número mínimo de partes definido por el umbral (k), podrá reconstruir el secreto completo. Si tiene menos de k partes, es matemáticamente imposible recuperar información.

### ¿Los datos se envían a algún servidor?

No. La división y combinación de secretos se realiza de forma local en su navegador utilizando criptografía en el cliente, por lo que su información nunca viaja por la red.

### ¿Cómo sé si una de las partes ha sido modificada o falsificada?

El esquema de Shamir estándar no incluye verificación de integridad. Si una parte es alterada, la reconstrucción generará un resultado incorrecto sin avisar; se recomienda firmar el secreto antes de dividirlo si requiere autenticidad.

### ¿Cuáles son los límites para el número de partes y el umbral?

Debido a las propiedades matemáticas del cuerpo GF(256), el número total de partes (n) y el umbral (k) deben estar entre 2 y 255, cumpliendo siempre que el umbral sea menor o igual al total de partes.

### ¿Qué formato tienen las partes generadas?

Cada parte es una cadena de texto que comienza con el prefijo 'sss:' seguido de la representación en base64url de las coordenadas del punto del polinomio. Debe conservar la cadena completa para la recuperación.

## Herramientas relacionadas

- [Probador de par de claves y encapsulación ML-KEM / Kyber](https://elysiatools.com/es/tools/ml-kem-kyber-keypair-and-encapsulation-tester): Genera pares de claves ML-KEM-512/768/1024 (FIPS 203 / CRYSTALS-Kyber), encapsula un secreto compartido aleatorio con la clave pública, lo descapsula con la clave privada y verifica que coincidan — comprobando en vivo los tamaños exactos de los tres conjuntos de parámetros.
- [Comprobador de cabeceras de seguridad](https://elysiatools.com/es/tools/security-headers-checker): Audita las cabeceras de respuesta HTTP para cumplimiento de seguridad — analiza las cabeceras sin procesar que pegas (sin red) y las califica frente al conjunto de cabeceras seguras OWASP con comprobaciones a nivel de valor: HSTS max-age, CSP unsafe-inline/eval, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP y más. Devuelve una nota (A+ a F) más hallazgos por cabecera con recomendaciones listas para copiar.
- [Planificador de rotación de secretos en archivos .env](https://elysiatools.com/es/tools/env-file-secret-rotation-planner): Pega un archivo .env y obtén un plan de rotación de secretos por etapas. Detecta URLs de base de datos, API keys, tokens de autenticación, claves privadas, credenciales cloud, claves de pago y secretos de cifrado; puntúa cada uno por exposición y antigüedad, y los programa en una línea de tiempo de 4 semanas con checklist de doble clave y un .env.example generado. Fechas de última rotación opcionales y cadencia configurable (30/90/180/365 días) alimentan el score de cumplimiento.
- [Generador de par de claves RSA](https://elysiatools.com/es/tools/rsa-key-generator): Genera un par de claves RSA pública/privada con crypto.generateKeyPairSync() de Node, en formato PEM. Soporta 2048/3072/4096 bits, PKCS#8 (recomendado) o PKCS#1, y cifrado de la clave privada con contraseña. Las claves se generan localmente.
- [Comprobador de seguridad de URL](https://elysiatools.com/es/tools/url-safety-checker): Detecta señales de phishing y fraude en una URL mediante análisis estructural profundo — ataques homógrafos punycode/IDN (Latín/Cirílico mixto), credenciales embebidas (truco user:pass@host), TLDs de alto riesgo, doble codificación y contrabando de caracteres de control, engaño de subdominio de marca y ofuscación numérica/IP. Solo análisis estático, sin red. Complementa el URL Validator.
- [Verificador de Fuerza de Passphrase AGEX](https://elysiatools.com/es/tools/agex-passphrase-strength-checker): Evalua una passphrase para bundles AGEX y recomienda el perfil de proteccion adecuado
- [Nota Segura para Compartir AGEX](https://elysiatools.com/es/tools/agex-secure-share-note): Genera una nota clara para que el destinatario sepa como descifrar y verificar un bundle AGEX
- [Generador de firma digital](https://elysiatools.com/es/tools/digital-signature-generator): Firma un mensaje con una clave privada o verifica una firma con una clave pública — soporta RSA-PSS (SHA-256), ECDSA (P-256) y Ed25519. Criptografía puramente local (Node crypto.createSign/createVerify), sin red. Pega una clave PEM para firmar o verificar una firma base64. Esta herramienta firma/verifica; no genera pares de claves.

## Ejemplos

- [Ejemplos de Procesamiento de Imágenes Web Python](https://elysiatools.com/es/samples/web-image-processing-python): Ejemplos de procesamiento de imágenes Web Python usando PIL/Pillow incluyendo lectura, guardado, redimensionamiento y conversión de formato
- [Ejemplos de Procesamiento de Imágenes Android Java](https://elysiatools.com/es/samples/android-image-processing-java): Ejemplos de procesamiento de imágenes Android Java incluyendo lectura/escritura, escalado y conversión de formato
- [Ejemplos de Procesamiento de Imágenes Android Kotlin](https://elysiatools.com/es/samples/android-image-processing-kotlin): Ejemplos de procesamiento de imágenes Android Kotlin incluyendo lectura/escritura, escalado y conversión de formato
- [Ejemplos de Procesamiento de Imágenes Web Rust](https://elysiatools.com/es/samples/web-image-processing-rust): Ejemplos de procesamiento de imágenes Web Rust incluyendo lectura/escritura, escalado y conversión de formato
