◀ HViYou DTFP? 🔎🫆

Datei Entstehungsprint prüfen

🔎 Print verifizieren

Lade das Originaldokument und die zugehörige Metadaten-Datei (*.dtfp.json). Beide werden ausschließlich lokal im Browser verarbeitet – nichts wird hochgeladen, nichts verlässt dein Gerät.

– noch keine Prüfung –

📘 Der Vorgang – Schritt für Schritt erklärt

Ein Entstehungsprint ist eine Beweiskette aus mehreren ineinandergreifenden Prüfsummen. Der folgende Durchlauf zeigt an einem konkreten Beispiel, was bei der Verifikation tatsächlich passiert.

Was du brauchst

DateiRolleWoher
Originaldokument z. B. vertrag.pdf – die Datei, deren Existenz bewiesen werden soll dein Archiv
Metadaten vertrag.pdf.dtfp.json – Hashes, Datum, Beacon-Referenz, ggf. Signatur zusammen mit dem Original aufbewahrt

Allein die JSON-Datei reicht nicht – ohne das Original ist nur der Zeitanker prüfbar, nicht aber die Echtheit des Inhalts.

Beispielhafter Prüfdurchlauf

Angenommen, du prüfst eine Datei vertrag.pdf, die am 14. Mai 2026 gesiegelt wurde. Die JSON-Datei enthält unter anderem:

H = "a3f1…9c8e" (Dokument-Hash)
D = "2026-05-14" (Datum)
N = "7b3e…41df" (Nonce)
C₀ = "e2d9…88a1" (Commitment)
B = "d4c2…7f6b" (drand-Beacon-Randomness)
F = "1a80…3b2c" (Tagesfingerprint)
P = "5f7e…d90a" (Entstehungsprint)
sig = "9b41…2c7e" (Ed25519-Signatur, optional)

Die Verifikation rechnet diese Kette nun von unten nach oben nach:

1
Dokument-Hash neu berechnen

Aus der geladenen Datei vertrag.pdf wird erneut SHA-256 gebildet.

H' = SHA256(vertrag.pdf) = a3f1…9c8e

Vergleich mit gespeichertem H: stimmt überein

2
Commitment rekonstruieren

Aus H, Datum D und Nonce N wird C₀ neu berechnet.

C₀' = SHA256("DTFP1|a3f1…9c8e|2026-05-14|7b3e…41df") = e2d9…88a1

Vergleich mit gespeichertem C₀: stimmt überein Vorausberechnung ausgeschlossen (Nonce)

3
Tagesfingerprint rekonstruieren

Der gespeicherte drand-Wert B wird zusammen mit dem Datum in F verrechnet.

F' = SHA256("DTFP1|2026-05-14|d4c2…7f6b") = 1a80…3b2c

Vergleich mit gespeichertem F: stimmt überein

4
Entstehungsprint rekonstruieren

Aus C₀ und F wird der finale Wert P gebildet.

P' = SHA256(e2d9…88a1 + 1a80…3b2c) = 5f7e…d90a

Vergleich mit gespeichertem P: stimmt überein

5
Ed25519-Signatur prüfen optional

Ist eine Signatur vorhanden, wird sie gegen den Public Key und den Nachrichtentext "DTFP1-SIG-P|" + P geprüft.

Ed25519.verify(sig, "DTFP1-SIG-P|5f7e…d90a", pubKey) = true

Ergebnis: Signatur gültig – Urheber bekannt ohne Signatur: anonymer Nachweis

6
Zeitanker live prüfen

Die im Print hinterlegte drand-Runde (hier: Runde 12 345 678) wird frisch von der drand-API geladen und mit dem gespeicherten Wert B verglichen.

api.drand.sh/public/12345678 → d4c2…7f6b

Ergebnis: Beacon-Wert unverändert – Zeitanker bestätigt

Was das Gesamtergebnis bedeutet

Wenn alle Schritte grün sind, steht fest:

  • Die Datei vertrag.pdf hatte am 14.05.2026 genau diesen Inhalt (Schritt 1 + 2).
  • Die Zufallszahl aus Schritt 3 wurde öffentlich vom drand-Netzwerk erzeugt und ist nachträglich nicht veränderbar (Schritt 6).
  • Der finale Beweiswert P ist damit ein Siegel, das nur zu diesem Inhalt und zu diesem Tag passt.
  • Falls eine Signatur vorhanden war: Der Inhaber des Public Keys hat sich zu diesem Siegel bekannt (Schritt 5).

Was passiert, wenn etwas nicht stimmt?

MeldungUrsacheFolge
✘ H weicht ab Die Datei wurde verändert – auch nur ein Bit. Kette bricht sofort. Kein gültiger Nachweis.
✘ C₀ weicht ab Datum oder Nonce manipuliert – oder H passt nicht zu C₀. Kette bricht. Print zurückgewiesen.
✘ F weicht ab Beacon-Wert B wurde in der JSON-Datei ausgetauscht. Zeitanker ungültig.
✘ P weicht ab Der finale Wert wurde nachträglich verändert. Print zurückgewiesen.
✘ Signatur ungültig Signatur oder Public Key wurden verändert. Urheberschaft widerlegt.
✘ Beacon liefert anderen Wert Der gespeicherte Beacon-Wert ist gefälscht oder von einer anderen Runde. Zeitanker nicht bestätigt.

Praktische Tipps

  • Prüfe immer gegen das Originaldokument – nicht gegen eine Kopie aus einem E-Mail-Anhang, wenn möglich.
  • Die .dtfp.json nie bearbeiten. Schon ein zusätzliches Leerzeichen im Datum bricht die Kette.
  • Den Button „drand-Beacon erneut prüfen“ nur verwenden, wenn eine drand-basierte Signatur vorliegt – er lädt den Wert live nach.
  • Für Beweiszwecke: Screenshot der gesamten Verifikationsausgabe zusammen mit der JSON-Datei aufbewahren.
Hinweis: Die Prüfung ist ein technischer Nachweis, keine Rechtsberatung. Sie belegt die Integrität der Datei und die Zeitbindung – nicht die Urheberschaft im rechtlichen Sinne. Für letztere ist eine Ed25519-Signatur mit einem vertrauenswürdig zugeordneten Public Key hilfreich, aber nicht ausreichend.