Aber Algorithmen wie SHA2 sind für die nächsten paar Jahre vermutlich unknackbar
Klar, aber es geht ja auch nicht ums knacken oder nicht knacken, sondern nur darum festzustellen ob eine Änderung in einer Datei bzw. einem Dateisegment vorgenommen wurde.
sheel hat gesagt.:
Würde mir lieber Gedanken um andere Blickwinkel der Sachen machen.
Um etwas triviales zu nennen: Wenn die Hashes bei den Daten dabei sind,
was hindert mich daran, einfach alles samt Hashes zu ersetzen?
Ergebnis ist auch gültig, nur eben nicht das, was vorher drin war.
Okay, ich sehe ein, dass es evtl. sinnvoll sein könnte das Problem, das ich versuche mit dem Algo zu lösen, einfach mal zu beschreiben
Mir passiert es häufiger (besonders bei großen Dateien >=2GByte), dass ich plötzlich korrupte Daten habe. Dies ist zwar nicht ganz so wild, weil es nur auf meinen ext. HDDs auftritt, aber trotzdem nervig. Kleine Dateien werden davon btw. nicht oder kaum betroffen.
Meine Idee war es, Wiederherstellungsinformationen für jede Datei zu speichern, um sie evtl zu reparieren.
Um nicht die Datei einfach neu zu speichern, will ich nur einen gewissen Prozentsatz (sagen wir 10%) an Bytes für eine Datei speichern, die ich dann auch wieder herstellen kann. Dazu teile ich die Datei in (z. B. 10) Segmente, XOR-e alle diese Segmente und speichere das Ergebnis und den Hash für jedes Segment ab. Ist die Datei hübsch von einem User geändert worden, sieht man das unter anderem an der Dateigröße, dann ists okay, wenn allerdings einfach mal so pauschal nen Datenverlust auftritt, kann man das so erkennen und auch reparieren (solange die Datei nicht mehr als 10% Daten verloren hat). Dumm wäre jetzt allerdings, wenn es einen Datenverlust gibt, mein Algo das allerdings nicht erkennt.
Ich hoffe ihr könnt mir folgen.
Natürlich ist es - gelinde gesagt - "eher" unwahrscheinlich, dass mein Algo Datenverlust nicht erkennt, selbst mit MD5, aber möglich bleibt möglich
Und wenn du auf die Idee kommst, deine Wiederherstellungsinformationen zu ändern... von mir aus
Daher ist Sicherheit ein - für dieses Problem - unwichtiger Punkt. Wer Zugriff auf die Originaldaten hat, kann auch Zugriff auf die W.-Infos haben.
Lieben Gruß
Fugyl
[EDIT]
Bin hier kein Kryptograph, aber was hälst du von der Idee, zwei Hash-Algorithmen einzusetzen?
Beispielsweise MD5 und SHA-256?
Bei der Überprüfung vergleichst du dann immer beide Hash-Werte.
Sollte das nicht die Wahrscheinlichkeit einer zufälligen Kollision erheblich senken?
Oh, nicht gesehen dass du auch noch was geschrieben hattest
Ja, da hab ich dran gedacht, wäre ja im Grunde genau die Lösung des Konkatenierens.
fugyl hat gesagt.:
Wäre etwas damit gewonnen, zwei unterschiedliche Hash-Algorithmen zu benutzen und die resultierenden Hashs einfach zu konkatenieren?
[/EDIT]