Le secret est le terme constant d’un polynôme aléatoire de degré k − 1 sur un corps fini ; chaque part est la valeur du polynôme en un point non nul distinct, et l’interpolation de Lagrange sur k parts quelconques retrouve le terme constant. Les implémentations travaillent généralement octet par octet dans GF(2⁸) : chaque part est donc aussi longue que le secret, plus un indice. La sécurité est inconditionnelle, au sens de la théorie de l’information : moins de k parts ne donnent aucune information, quelle que soit la puissance de calcul.
Le schéma de Shamir seul n’assure aucune intégrité : une part corrompue ou malveillante reconstitue silencieusement un secret erroné, si bien que les schémas pratiques ajoutent une somme de contrôle ou un condensat du secret, ou recourent à un partage de secret vérifiable (Feldman, Pedersen). Il exige aussi un moment où le secret entier existe en un seul endroit, lors du partage et de la reconstitution ; les signatures à seuil l’évitent en ne reconstituant jamais la clé.
Parmi les usages : les cérémonies de clés des HSM et des AC (cartes d’opérateur m parmi n), les sauvegardes de clés racines et de clés de récupération, les sauvegardes de portefeuilles SLIP-39 et les clés de descellement (unseal keys) de HashiCorp Vault. L’outil de partage de secret de Shamir divise et recombine des secrets localement dans le navigateur.