División de Secretos Shamir (SSS)
Una implementación solo en navegador del esquema de división de secretos de Adi Shamir de 1979.
Cómo usar
2-of-3 personal, 3-of-5 equipo.
Contraseña maestra, frase semilla.
A diferentes personas, lugares, dispositivos.
Reúne K partes y combina.
Divide una contraseña maestra o frase semilla en N piezas — K de ellas la recuperan
Qué hace la División de Secretos Shamir
- Seguridad teórico-informacional: con menos de K partes, un atacante NO aprende NADA del secreto.
- Cada parte incluye una pequeña cabecera (versión, umbral, id de conjunto) más una etiqueta de integridad de 4 bytes, de modo que Combinar puede verificar una recuperación correcta y señalar claramente partes incompatibles o insuficientes.
- Usa el esquema byte-wise estándar sobre GF(2⁸) — la misma álgebra que AES.
- Distribuye partes entre personas, dispositivos, ubicaciones geográficas.
- Esta implementación NO añade capa de contraseña — las partes SON la protección.
Funciones
Preguntas frecuentes
¿En qué difiere de cifrar y distribuir la contraseña?
Shamir divide el secreto directamente en N piezas; K−1 no revelan NADA matemáticamente.
¿Qué (K, N) conviene elegir?
2 de 3 es el valor habitual para una persona: dos ubicaciones, o tú, tu pareja y un abogado. 3 de 5 es lo común en equipos pequeños. Subir K reduce el riesgo de que lo robado baste para abrir el secreto; subir N mejora la supervivencia si se pierde una parte. Los dos números atienden preocupaciones distintas, así que decídelos juntos. Y al elegir K, imagina el día en que de verdad necesites el secreto y pregúntate si podrás reunir esa cantidad de partes ese día: una K que no puedas reunir no es seguridad, es pérdida.
¿Puedo confiar en la implementación?
La división y la combinación se ejecutan en tu navegador mediante la Web Crypto API.
¿Y si se pierde una parte?
Mientras queden al menos K partes, el secreto se recupera igual. Para eso se hace N mayor que K: para añadir redundancia. Un esquema de 3 de 5 sobrevive a la pérdida de dos partes. Lo que no ocurre solo es enterarse de la pérdida, porque las partes pasan años sin que nadie las toque. Anota en un sitio aparte qué guardaste y dónde, y revísalo de vez en cuando: el fallo más común es descubrir el día que hace falta que necesitas dos de tres y que dos han desaparecido.
¿Y si una parte se filtra a un atacante?
Si se han filtrado menos de K, tu secreto sigue a salvo; ese es todo el sentido del método: una parte por sí sola no dice nada del original. Pero no dejes las cosas así. Cambia el secreto y reparte partes nuevas: la parte filtrada ya no podrá recuperar nada, porque el secreto que había debajo ha cambiado. Volver a generar las partes conservando el mismo secreto no sirve de nada: las nuevas apuntarían al mismo secreto y la parte que salió seguiría siendo una parte válida de él.
¿Qué formato de parte utiliza?
La matemática subyacente es el esquema canónico byte a byte sobre GF(2⁸) con el polinomio de reducción estándar 0x11b. Cada parte se envuelve en un pequeño contenedor autodescriptivo (versión, umbral, id de conjunto y una etiqueta de integridad) para que la herramienta pueda verificar la recuperación y detectar partes incompatibles — recupera las partes con esta herramienta en lugar de con una librería GF(256) en crudo.
Podemos hacerlo — ¡y es! Solo envíanos un mensaje rápido con tu idea. Si quieres comentarla en detalle, déjanos tu email y te responderemos. Puedes mantener el anonimato.