Compartició de secrets de Shamir
Divideix una contrasenya o frase de recuperació en N parts de manera que qualsevol M la reconstrueixin, amb l'esquema de Shamir sobre GF(256), al navegador.
La divisió i la combinació s'executen íntegrament al teu navegador. El secret i les parts no s'envien enlloc; els nombres aleatoris provenen de crypto.getRandomValues.
Divideix un secret
Combina parts
Com dividir un secret
- Escriu o enganxa el text que vols protegir a Secret (text): una frase de recuperació, una contrasenya mestra, una clau de xifratge…
- Defineix el Nombre de parts (N) i les Parts necessàries per reconstruir-lo (M). Per exemple, N = 5 i M = 3 vol dir que qualsevol 3 de les 5 parts reconstrueixen el secret, i que 2 parts no revelen res.
- Fes clic a Divideix el secret. Cada part apareix en una línia pròpia amb un botó Copia; també pots fer servir Copia totes les parts o Baixa les parts (.txt).
- Fes clic a Prova: combina les primeres M parts per comprovar que les parts funcionen abans de repartir-les.
- Dona cada part a una persona diferent o desa-la en un lloc diferent. No les guardis totes juntes, o la divisió no serveix de res.
Com reconstruir el secret
- Enganxa almenys M parts a Parts, una per línia, en qualsevol ordre. Les línies en blanc s’ignoren.
- Fes clic a Combina les parts. El text apareix sota Secret recuperat, i l’estat indica quins números de part s’han fet servir.
- Si una part té una errada, prové d’una altra divisió o apareix dues vegades amb contingut diferent, l’eina diu quina i per què, en lloc de retornar text sense sentit.
Com funciona la compartició de secrets de Shamir
Adi Shamir va publicar l’esquema el 1979. Per compartir un byte s amb llindar M, es tria un polinomi aleatori de grau M − 1 el terme constant del qual és s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). La part número x és el valor f(x). Qualsevol conjunt de M punts determina el polinomi, de manera que la interpolació de Lagrange a x = 0 retorna s; amb menys de M punts, tots els valors de s són igualment probables, i per tant les parts no filtren res del secret.
Aquesta eina treballa al cos finit GF(256) (el que fa servir AES, amb el polinomi de reducció x⁸ + x⁴ + x³ + x + 1), de manera que cada byte del secret en UTF-8 té el seu propi polinomi i les parts fan exactament la mateixa longitud que el secret. Els coeficients aleatoris provenen de crypto.getRandomValues, el generador aleatori criptogràfic del navegador. Tot s’executa en local: el secret i les parts no surten mai del teu dispositiu.
Format de les parts
Una part té un aspecte com 3-2-5f1c…: el llindar M, el número de part X (de l‘1 al 255) i després les dades hexadecimals. Les dades contenen els valors del polinomi per al secret seguits d’un CRC-32 de 4 bytes del secret, i acaben amb una suma de control CRC-32 de 4 bytes de la mateixa part. La suma de control detecta errors en copiar; el CRC intern mostra quan s’han barrejat parts de secrets diferents. Les parts creades per altres eines de Shamir fan servir altres formats i no es poden combinar aquí.
Preguntes freqüents
Com he de triar N i M?
M és quantes persones o llocs han de cooperar, i N − M és quantes parts et pots permetre perdre. 3 de 5 és una opció habitual: es poden perdre o destruir dues parts, i cap parella de titulars no pot reconstruir el secret per si sola.
És segur desar una part al núvol?
Una sola part, o qualsevol grup de menys de M, no revela res del secret. Tot i així, guarda menys de M parts en un mateix compte o lloc; si no, aquell lloc per si sol conté el secret.
Aquesta eina xifra el secret?
No en el sentit habitual: no hi ha cap contrasenya. La protecció prové del llindar. Pots combinar-ho amb xifratge, per exemple dividint la contrasenya d’un fitxer xifrat.
Què passa si dono més de M parts?
Les primeres M parts reconstrueixen el secret i les addicionals es comproven amb elles. Si una part no hi encaixa, s’informa, cosa que ajuda a detectar una part malmesa o aliena.
Puc dividir un fitxer?
Aquesta eina divideix text de fins a 10.000 bytes. Per a un fitxer, xifra’l amb una contrasenya aleatòria forta i divideix la contrasenya.
Eines relacionades
- Generador de contrasenyes Generador de contrasenyes gratuït que crea contrasenyes aleatòries fortes de 4 a 128 caràcters al navegador amb un generador segur. No es desa ni s'envia res.
- Generador de frases de pas Crea frases de pas fortes i fàcils de recordar amb la llista d'EFF o una de francesa, amb l'entropia en bits. Es generen de manera segura al navegador.
- Eina per xifrar text Xifra i desxifra text amb una frase de pas al navegador, amb AES-256-GCM i PBKDF2 de 600.000 iteracions. No es puja res. Límits explicats amb honestedat.
- Generador de codis TOTP i HOTP Genera codis 2FA TOTP i HOTP des d'un secret en Base32 o un URI otpauth://, amb SHA-1, SHA-256 o SHA-512, compte enrere en directe i codi QR per a apps 2FA.