Forum: PC-Programmierung Daten redundant auf USB-Sticks verteilen


von Roter R. (roter_r)


Lesenswert?

Guten Tag zusammen,

ich plane eine kleine Schnitzeljadt, bei der die Spieler eine bestimmte 
Anzahl an USB-Sticks sammeln müssen um an die Daten zu kommen.

Dabei soll es eine beliebige Anzahl USB-Sticks geben (zb 9), allerdings 
sollen zb 3 beliebige Stick ausreichen um an die Daten zu kommen 
(mittels Entschlüsselung).

Ich denke da an sowas wie RAID, aber ich habe noch nicht rausbekommen, 
wie ich das beschriebene Problem lösen kann.

Vielleicht kann mir ja der ein oder andere hier weiter helfen oder hat 
kreative Hinweise für mich, darüber würde ich mich sehr freuen.

Gruß

Roter Rabauke

: Verschoben durch Moderator
von Andreas I. (andy5macht)


Lesenswert?

Entschlüsselungscode in drei Teile aufteilen?
Code: 123456789
1. Stick: 123
2. Stick: 456
3. Stick: 789

Edit: ah drei beliebige Sticks. Na jetzt verstehe ich...

: Bearbeitet durch User
von Jan B. (do9jhb)


Lesenswert?

Das ließe sich mit Secret Sharing Schemes realisieren 
(https://de.m.wikipedia.org/wiki/Secret-Sharing) und 
(https://de.m.wikipedia.org/wiki/Shamir’s_Secret_Sharing). Man 
konstruiert eine zufällige quadratische Funktion f, wobei f(0) dein 
Geheimnis enthält...

Auf den Sticks speicherst du 9 zufällige Punkte der polynomfunktion.

Mit 3 beliebigen Punkten (von den Sticks) kannst du die Funktion 
rekonstruieren, und erhälst so das Geheimnis.

Soweit zur Theorie, es gibt bestimmt schon fertige Programme dafür, aber 
auch selberschreiben sollte nicht so schwer sein...

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Jan B. schrieb:

> es gibt bestimmt schon fertige Programme dafür, aber
> auch selberschreiben sollte nicht so schwer sein...


$ sudo apt install ssss



$ ssss-split -n9 -t3
Generating shares using a (3,9) scheme with dynamic security level.
Enter the secret, at most 128 ASCII characters: Wer das liest hat 
gewonnen
Using a 208 bit security level.
1-bdb369a4f66f38f1ed2800b40b523b78dcd747cf05116ca7d938
2-b325a4b94f0991282c4e70cdd9b530f65654799115df0c49402a
3-13bed0c5bf50b319f72ac804adac9a8ae6aad81eef4007712719
4-fdde2978327e333eb167cd95098106cd76d1aadb569146aa8f35
5-5d455d04c227110f6a03755c7d98acb1c62f0b54ac0e4d92e814
6-53d390197b41b8d6ab650525af7fa73f4cac350abcc02d7c7122
7-f348e4658b189ae77001bdecdb660d43fc529485465f26441605
8-2f716d12f67ab187f4a1c1897e01ee23e1d4b3965b47ff96e454
9-8fea196e062393b62fc579400a18445f512a1219a1d8f4ae8329

$ ssss-combine -t3
Enter 3 shares separated by newlines:
Share [1/3]: 3-13bed0c5bf50b319f72ac804adac9a8ae6aad81eef4007712719
Share [2/3]: 6-53d390197b41b8d6ab650525af7fa73f4cac350abcc02d7c7122
Share [3/3]: 2-b325a4b94f0991282c4e70cdd9b530f65654799115df0c49402a
Resulting secret: wer das liest hat gewonnen


kann man auch gut benutzen um seine Bitcoin-Schlüssel an den Notar und 
mehrere Erben auszugeben.

: Bearbeitet durch User
von Jan B. (do9jhb)


Lesenswert?

Das Tool hat sogar eine Online Demo: 
http://point-at-infinity.org/ssss/demo.html

Ist vielleicht für die ganz hilfreich die kein Linux haben xD

von Bernd K. (prof7bit)


Lesenswert?

Jan B. schrieb:
> für die ganz hilfreich die kein Linux haben xD

Jeder kann Linux haben, das ist doch der springende Punkt dabei!

von Roter R. (roter_r)


Lesenswert?

Danke Jan und Bernd, das war genau was ich gesucht habe.

Bernd, was hat es mit den 7bit auf sich?
(Ich denke spontan an 7bit + Parity)

von Datenlutscher (Gast)


Lesenswert?

Sieht aus wie Reed-Solomon-Coding, ist das nicht das selbe?

Beitrag #5452190 wurde von einem Moderator gelöscht.
Beitrag #5452819 wurde von einem Moderator gelöscht.
Beitrag #5453950 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.