Utilia

Shamir Secret Sharing – Geheimnis aufteilen

Passwort oder Seed-Phrase mit Shamir Secret Sharing über GF(256) in N Anteile aufteilen, von denen beliebige M es wiederherstellen – lokal im Browser.

Aufteilen und Zusammensetzen laufen vollständig in Ihrem Browser. Geheimnis und Anteile werden nirgendwohin gesendet; die Zufallszahlen stammen aus crypto.getRandomValues.

Geheimnis aufteilen

    Anteile zusammensetzen

    So teilen Sie ein Geheimnis auf

    1. Geben Sie den zu schützenden Text in „Geheimnis (Text)“ ein oder fügen Sie ihn ein: eine Wiederherstellungsphrase, ein Master-Passwort, einen Verschlüsselungsschlüssel …
    2. Legen Sie die „Anzahl der Anteile (N)“ und die „Zum Wiederherstellen nötige Anteile (M)“ fest. N = 5 und M = 3 bedeutet zum Beispiel: Beliebige 3 der 5 Anteile stellen das Geheimnis wieder her, 2 Anteile verraten nichts.
    3. Klicken Sie auf „Geheimnis aufteilen“. Jeder Anteil erscheint in einer eigenen Zeile mit einer Schaltfläche „Kopieren“; Sie können auch „Alle Anteile kopieren“ oder „Anteile herunterladen (.txt)“ wählen.
    4. Klicken Sie auf „Test: die ersten M Anteile zusammensetzen“, um zu prüfen, ob die Anteile funktionieren, bevor Sie sie weitergeben.
    5. Geben Sie jeden Anteil einer anderen Person oder bewahren Sie ihn an einem anderen Ort auf. Lagern Sie nicht alle zusammen – sonst ist die Aufteilung sinnlos.

    So stellen Sie das Geheimnis wieder her

    1. Fügen Sie mindestens M Anteile in „Anteile, einer pro Zeile“ ein, in beliebiger Reihenfolge. Leerzeilen werden ignoriert.
    2. Klicken Sie auf „Anteile zusammensetzen“. Der Text erscheint unter „Wiederhergestelltes Geheimnis“, und die Statusmeldung nennt die Nummern der verwendeten Anteile.
    3. Enthält ein Anteil einen Tippfehler, stammt er aus einer anderen Aufteilung oder kommt er zweimal mit unterschiedlichem Inhalt vor, nennt das Tool den betroffenen Anteil und den Grund – statt unbrauchbare Daten auszugeben.

    So funktioniert Shamirs Verfahren

    Adi Shamir hat das Verfahren 1979 veröffentlicht. Um ein Byte s mit dem Schwellenwert M zu teilen, wählt man ein zufälliges Polynom vom Grad M − 1, dessen konstantes Glied s ist: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Anteil Nummer x ist der Wert f(x). Beliebige M Punkte legen das Polynom eindeutig fest, deshalb liefert die Lagrange-Interpolation an der Stelle x = 0 wieder s. Mit weniger als M Punkten ist jeder Wert von s gleich wahrscheinlich – die Anteile verraten also nichts über das Geheimnis.

    Dieses Tool rechnet im endlichen Körper GF(256) (dem auch von AES verwendeten, mit dem Reduktionspolynom x⁸ + x⁴ + x³ + x + 1). Jedes Byte des UTF-8-kodierten Geheimnisses erhält sein eigenes Polynom, und die Anteile sind genau so lang wie das Geheimnis. Die zufälligen Koeffizienten stammen aus crypto.getRandomValues, dem kryptografischen Zufallsgenerator des Browsers. Alles läuft lokal: Geheimnis und Anteile verlassen nie Ihr Gerät.

    Format der Anteile

    Ein Anteil sieht so aus: 3-2-5f1c… – zuerst der Schwellenwert M, dann die Anteilsnummer X (1 bis 255), dann hexadezimale Daten. Die Daten enthalten die Polynomwerte für das Geheimnis, gefolgt von einer 4 Byte langen CRC-32 des Geheimnisses, und enden mit einer 4 Byte langen CRC-32-Prüfsumme des Anteils selbst. Die Prüfsumme erkennt Kopierfehler, die innere CRC zeigt an, wenn Anteile verschiedener Geheimnisse vermischt wurden. Anteile aus anderen Shamir-Tools verwenden andere Formate und lassen sich hier nicht zusammensetzen.

    Häufige Fragen

    Wie wähle ich N und M?

    M gibt an, wie viele Personen oder Orte zusammenwirken müssen, N − M, wie viele Anteile Sie verlieren dürfen. 3 von 5 ist eine gängige Wahl: Zwei Anteile dürfen verloren gehen oder zerstört werden, und kein Paar von Inhabern kann das Geheimnis allein wiederherstellen.

    Ist es sicher, einen Anteil in der Cloud zu speichern?

    Ein einzelner Anteil – oder jede Gruppe mit weniger als M Anteilen – verrät nichts über das Geheimnis. Bewahren Sie trotzdem in keinem Konto und an keinem Ort M oder mehr Anteile auf, sonst hält dieser Ort allein das Geheimnis.

    Verschlüsselt dieses Tool das Geheimnis?

    Nicht im üblichen Sinn: Es gibt kein Passwort. Der Schutz entsteht durch den Schwellenwert. Sie können beides kombinieren, zum Beispiel indem Sie die Passphrase einer verschlüsselten Datei aufteilen.

    Was passiert, wenn ich mehr als M Anteile angebe?

    Die ersten M Anteile stellen das Geheimnis wieder her, die übrigen werden damit abgeglichen. Ein Anteil, der nicht passt, wird gemeldet – so erkennen Sie beschädigte oder fremde Anteile.

    Kann ich eine Datei aufteilen?

    Das Tool teilt Text bis 10.000 Byte auf. Verschlüsseln Sie eine Datei mit einer starken, zufälligen Passphrase und teilen Sie stattdessen diese Passphrase auf.