Shamir Secret Sharing é uma construção publicada por Adi Shamir em 1979. Codifica o segredo como constante de um polinômio aleatório sobre um corpo finito; não recorta uma frase nem é, por si só, um protocolo de assinatura.
Um esquema k de n recupera com quaisquer k partes válidas e distintas do mesmo conjunto. Tolera perder n−k partes, mas também permite que k titulares cooperantes obtenham o segredo. Por exemplo, 3 de 5 tolera duas perdas, não três. O limiar equilibra disponibilidade e tamanho do grupo capaz de recuperar. [Adi Shamir — How to Share a Secret (1979)]
Para o segredo S escolhe-se f(x)=S+a1*x+…+a(k−1)*x^(k−1). Os demais coeficientes são elementos independentes e uniformemente aleatórios do corpo. Uma parte é (x,f(x)) com x distinto e não nulo; x=0 revelaria S diretamente. A interpolação de Lagrange de k pontos determina f(0). Duas cópias do mesmo ponto não acrescentam equação. [Adi Shamir — How to Share a Secret (1979)]
Somente para ensino, tomemos S=5 e f(x)=5+3*x mod 17. As partes são (1,8), (2,11), (3,14). As duas primeiras dão inclinação 3 e constante 8−3=5; os três pares recuperam 5. O ponto (1,8) combina com qualquer S de 0 a 16 se a=8−S mod 17. Esse corpo pequeno não é um projeto de carteira. [Adi Shamir — How to Share a Secret (1979)]
No esquema ideal, menos de k partes completas não fornecem informação sobre S, mesmo com computação ilimitada. Isso pressupõe coeficientes independentes corretos e o modelo de observação definido. Aleatoriedade fraca, coeficientes reutilizados, canais laterais ou dados extras de verificação exigem análise separada. Compartilhar não fortalece um segredo fraco adivinhável por outros meios. [Adi Shamir — How to Share a Secret (1979)] [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
Recuperar requer o mesmo corpo, codificação, índices e identidade do conjunto. Um corpo primo GF(p) usa inversos modulares, não divisão decimal; GF(256) tem operações diferentes dos restos módulo 256. SLIP-39 acrescenta lista, metadados, grupos, criptografia e verificações específicos. Dois programas chamados Shamir não precisam ter partes compatíveis. [Adi Shamir — How to Share a Secret (1979)] [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
A interpolação básica não autentica origem da parte nem honestidade do distribuidor. Um ponto danificado pode retornar outro segredo em vez de apenas indicar insuficiência. Detecção, correção de erros e verifiable secret sharing são construções adicionais com premissas próprias. SLIP-39 acrescenta checksum e digest; esses recursos não pertencem automaticamente a todo Shamir Secret Sharing. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [NIST — Multi-Party Threshold Cryptography]
A recuperação comum expõe S completo num ambiente que pode vazá-lo. Ao contrário de Multisig, Shamir Secret Sharing não estabelece várias chaves independentes de assinatura on-chain. Assinaturas de limiar podem usar protocolo MPC adicional para operar nas partes sem montar a chave, como distingue o NIST. Dividir e depois combinar não oferece essa propriedade. [NIST — Multi-Party Threshold Cryptography]
Cinco arquivos numa conta não separam riscos de perda ou comprometimento. Registre parâmetros e teste recuperação num dispositivo confiável. Um novo polinômio aleatório com o mesmo S cria outro conjunto que não deve ser misturado ao antigo. Um conjunto antigo suficiente ainda recupera S; repartir novamente não invalida partes já obtidas nem um segredo vazado. [Adi Shamir — How to Share a Secret (1979)] [Trezor — Multi-share Backup]
Para ter uma visão mais completa, leia este verbete junto com SLIP-39, Multisig, Seed Phrase, Chave privada, Bitcoin Inheritance Plan. Também há referências a este verbete em SLIP-39, FROST.