Läuft zu 100 % in Ihrem Browser über Web Crypto – das Geheimnis und seine Anteile verlassen niemals Ihr Gerät.
Write a Python implementation of Shamir's Secret Sharing over GF(256) that interoperates with these share strings: each share is the two-digit hex x-coordinate, a dash, then one hex byte per secret byte (e.g. "01-a3b2c1"). It must split a secret into 5 shares with threshold 3, and reconstruct from any 3 of them. Use the AES reduction polynomial 0x11B and rejection-free crypto-random coefficients.
Was es tut
Shamirs Secret Sharing teilt ein Geheimnis in N Anteile, sodass beliebige K davon es rekonstruieren - und weniger als K verraten gar nichts, nicht einmal einen Teilhinweis. Es ist die mathematische Grundlage, um eine Seed-Phrase einer Krypto-Wallet, ein Master-Passwort oder einen Verschlüsselungsschlüssel auf mehrere Personen oder Orte zu verteilen, sodass kein einzelner Inhaber (und keine Koalition kleiner als K) allein handeln kann. Praxisanwendungen sind Kryptowährungs-Verwahrung (Multi-Party-Wallet-Backup), Key Escrow, Startsperren-Codes für Atomwaffen, Nachlassplanung (Anwältin + Ehepartner + Schließfach) und Disaster-Recovery-Umschläge.
Das Tool führt das komplette Verfahren in deinem Browser über GF(256) aus - demselben Galois-Körper, den AES verwendet - mit Polynomkoeffizienten von Web Crypto. Nichts, was du eintippst, und kein Anteil, den du einfügst, verlässt dein Gerät.
So verwendest du es
- Wähle einen Modus über den Umschalter Split / Reconstruct oben.
- Split: gib das Geheimnis ein, setze Total shares (N) (2-255) und Threshold (K) (2-N, das Minimum zur Wiederherstellung), dann drücke Split secret.
- Kopiere jeden nummerierten Anteil zu seinem Inhaber (jeder Anteil hat einen eigenen Copy-Knopf; Copy all shares holt alle). Der Schild-Hinweis erinnert dich: beliebige K der N Anteile stellen das Geheimnis wieder her; K-1 verraten nichts.
- Reconstruct: füge einen Anteil pro Feld ein (Add share für weitere), dann drücke Reconstruct secret. Das wiederhergestellte Geheimnis erscheint in der grünen Ausgabe mit Copy-Knopf; ungültige oder nicht zusammengehörige Anteile ergeben eine klare Fehlermeldung.
Beispiele
Eine Seed-Phrase als 3-of-5 teilen
Geheimnis: river vacuum lamp fiber quiz noise border mind smile crouch tuna - mit N=5, K=3 erhältst du fünf Anteile, jeder etwa so:
01-9f3ac27e1b84d05c…
02-4b19e7a2c83f5d16…
03-c7e02f9a45b6138d…
04-2ad673f1e09b85c4…
05-85d31c6b7a49f0e2…
(Deine Werte werden anders aussehen - die Polynomkoeffizienten sind bei jeder Aufteilung frisch zufällig, deshalb sehen zwei Aufteilungen desselben Geheimnisses nie gleich aus.)
Wiederherstellen aus beliebigen 3 der 5
Füge die Anteile 01-…, 03-…, 05-… in drei Felder ein und drücke Reconstruct secret - die originale Seed-Phrase kommt exakt zurück. Anteile 1+2, 2+4+5, jede Dreierkombination funktioniert; zwei Anteile allein rekonstruieren nur Müll.
Eine falsche Kombination scheitert laut
Anteile aus zwei verschiedenen Aufteilungen zu mischen (oder zwei Anteile mit derselben Position) ergibt Two different shares both claim x=01 - they cannot come from the same split, statt still ein falsches Geheimnis zurückzugeben.
Gut zu wissen
- Warum K-1 Anteile nichts verraten: jedes Byte des Geheimnisses wird zum konstanten Term eines zufälligen Polynoms vom Grad (K-1). K-1 Punkte sind mit jedem denkbaren konstanten Term verträglich - das Geheimnis ist informationstheoretisch verborgen, nicht nur rechnerisch schwer. Das gilt sogar gegen unbegrenzte Rechenleistung.
- Die Mathematik in einer Zeile: Anteile sind Polynomauswertungen f(1)…f(N) über GF(256); die Rekonstruktion ist Lagrange-Interpolation an x=0. Addition ist XOR, die Multiplikation nutzt das AES-Reduktionspolynom (0x11B).
- Frischer Zufall bei jeder Aufteilung: dasselbe Geheimnis zweimal zu teilen ergibt völlig verschiedene Anteile; beide Sätze rekonstruieren es unabhängig voneinander.
- Behandle Anteile wie Schlüssel: ein Anteil ist die Hälfte (oder ein Drittel, oder ein Fünftel) deines Geheimnisses. Lagere sie an getrennten Orten - wenn ein Angreifer K davon sammelt, besitzt er das Geheimnis.
- Privat: läuft 100 % clientseitig; der Teilen-Link trägt nur deine N/K-Einstellungen, nie das Geheimnis.
- Verwandte Tools: Password Strength Analyser, Secure Token Generator, HMAC Generator.