Thread besondere Art einer verschlüsselten Datenbank (23 answers)
Opened by Ishka at 2004-08-05 03:03

murphy
 2004-08-05 20:38
#15775 #15775
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Wenn g nur zum Lesen gedacht ist, kann man wie folgt vorgehen:
1) Zunächst wähle man eine (fast) beliebige Funktion p, die jeder natürlichen Zahl eine Position in einem Datenpuffer fester Größe zuordnet.
2) Nun fülle man den Datenpuffer mit Zuffalsbits
3) Man prüfe, ob für alle bekannten Paare (m,n) in f jeweils an der Position p(m) im Datenpuffer n steht (ein p und eine Zufallsfolge, die dieser Bedingung genügen, existieren für hinreichende Puffergrößen immer, edit: es sei denn, man hat p so blöd gewählt, dass sich Überlappungen in den Daten ergeben, die wegen der Originaldaten in f nicht möglich sind)
4) falls Schritt 3 nicht erfolgreich war, kehre zu Schritt 2 zurück
5) Die gesuchte Funktion g ist diejenige, welche ihrem Parameter mittels p eine Position im Datenpuffer zuordnet und den dort liegenden Wert zurückliefert.

Diese Methode ist bei geschickt gewählter Puffergröße sicherlich sehr ätzend für den Angreifer, da sich alle echten und falschen Werte im Datenpuffer beliebig überlappen dürfen! Außerdem braucht man eventuell nicht ganz so viel Speicher, wie wenn man die Datenbank f mit Dummy-Werten auffüllt. Allerdings ist die Generierung von g nach dem oben angegebenen Algorithmus natürlich maximal ineffizient, zumal man hier tunlichst echte Zufallsbits verwenden sollte, da man bei Pseudozufallszahlen hier schnell Opfer einer Seed-Rate-Attacke werden könnte. Ferner sollte man die "echten" Werte noch überschlüsseln, und zwar mit einem Verfahren, dass möglichst gut die Bithäufigkeitsverteilung der Zufallsquelle in seiner Ausgabe reproduziert, damit statistische Angriffe schwieriger werden (edit: bzw. damit man überhaupt eine vernünftige Chance hat, in endlicher Zeit eine passende Zufallsfolge zu finden).

Generell muss man aber sagen, dass die Sicherheit eines Algorithmus, der Ishkas Problem löst, auf jeden Fall abnimmt, wenn die resultierende Datenbank g viel weniger Daten enthält als ein mit Dummy-Werten aufgefülltes f. Da f aber nicht komplett mit Dummy-Werten aufgefüllt werden kann (dann bräuchte man abzählbar unendlich viele), wage ich zu vermuten, dass es keine mit endlichem Aufwand durchführbare sichere Lösung des Problemes geben kann.\n\n

<!--EDIT|murphy|1091724168-->
When C++ is your hammer, every problem looks like your thumb.

View full thread besondere Art einer verschlüsselten Datenbank