"Ich kann dir beweisen, dass ich die Kombination des Tresors kenne, ohne ihn zu öffnen oder dir die Nummer zu nennen."
— Das ist das Versprechen. Was ich nicht tun kann, ist dir zu beweisen, dass sich nichts Gestohlenes im Tresor befindet, ohne ihn zu öffnen. Und das ist das Problem.
Die Zero-Knowledge-Beweise (ZKP) sind zusammen mit FHE die andere große technische Verheißung, die in den Debatten über Chat Control auftaucht. Die Idee ist, dass ein Nutzer beweisen könnte, dass seine Nachricht kein CSAM enthält, ohne den Inhalt der Nachricht preiszugeben.
Klingt perfekt. Der Teufel steckt im Detail.
Was ist ein Zero-Knowledge-Beweis?
Ein ZKP ist ein kryptographisches Protokoll, das es einem Beweiser (Prover) erlaubt, einem Verifizierer (Verifier) zu beweisen, dass eine Aussage wahr ist, ohne dabei über die Gültigkeit der Aussage hinaus zusätzliche Informationen preiszugeben.
Formal muss ein ZKP-Protokoll für eine Sprache erfüllen:
- Vollständigkeit: Wenn die Aussage wahr ist, überzeugt der ehrliche Beweiser den Verifizierer
- Korrektheit: Wenn die Aussage falsch ist, kann kein unehrlicher Beweiser den Verifizierer überzeugen (mit nicht vernachlässigbarer Wahrscheinlichkeit)
- Wissensfreiheit: Der Verifizierer lernt nichts außer der Gültigkeit der Aussage
Prover: "Ich habe einen Beweis, dass M ∉ B (CSAM)"
│
│ ███████████████████████
│ █ ZKP-Protokoll ████████
│ ███████████████████████
│
▼
Verifier: ✓ "M ist nicht in B" (ohne M zu sehen)
Private Set Intersection (PSI)
Eine relevante Variante ist die Private Set Intersection (PSI), bei der zwei Parteien die Schnittmenge ihrer Mengen bestimmen können, ohne die nicht geteilten Elemente preiszugeben.
Im Kontext von CSAR wäre die Idee:
- Nutzer: hat eine Menge von Nachrichten
- Plattform/Behörde: hat eine Menge bekannter CSAM-Hashes
- PSI: bestimmt, ob , ohne dass eine Partei ihre vollständige Menge preisgibt
Nutzer: M₁, M₂, M₃, ... Mₙ
\
PSI → Ist die Schnittmenge nicht leer? → ja/nein
/
Behörde: h₁, h₂, h₃, ... hₖ (CSAM-Hashes)
Wenn ja → der Nutzer hat mindestens eine CSAM-Nachricht (aber es ist nicht bekannt, welche)
Wenn nein → der Nutzer hat keine CSAM-Nachricht
Die praktischen Probleme
1. Unbekanntes CSAM wird nicht erkannt
PSI erkennt nur Übereinstimmungen mit einer bereits bestehenden Datenbank. Aber der Großteil des heute erkannten CSAM ist neues Material – Bilder und Videos, die in keiner Datenbank waren, weil sie zuvor nicht gemeldet worden waren.
Ein PSI-basiertes System:
- Erkennt bereits bekanntes CSAM (vorhandene Hashes)
- Erkennt kein neues CSAM (man kann nicht hashen, was man nicht kennt)
- Erfordert ständige Aktualisierung der Datenbank
2. Der Klassifikator ist kein Hash
Die Erkennung von neuem CSAM erfordert inhaltsbasierte Klassifikatoren (neuronale Netze, Perceptual Embeddings). Ein solcher Klassifikator ist keine Funktion, die effizient innerhalb eines ZKP ausgeführt werden kann.
Moderne ZKPs (zk-SNARKs, zk-STARKs, Bulletproofs) können komplexe Berechnungen beweisen, aber die Kosten für die Erzeugung eines Beweises für ein neuronales Netz mittlerer Größe bleiben prohibitiv:
| Beweistyp | Erzeugungskosten | Verifikationskosten | Anwendbar auf CNN |
|---|---|---|---|
| zk-SNARK | O(log n) | O(1) | Ja, aber enorme Kosten |
| zk-STARK | O(n log n) | O(log² n) | Ja, große Beweise |
| Bulletproofs | O(n) | O(n) | Nur kleine Berechnungen |
| PSI (ECDH) | O(n) | O(n log n) | Nur Hashes |
3. Das Aktualisierungsproblem
Selbst wenn es machbar wäre, einen Klassifikator innerhalb eines ZKP auszuführen, bliebe das Problem der Aktualisierung des Klassifikators. Wenn die Behörde das Klassifikationsmodell remote aktualisieren kann, dann:
Zeitpunkt t: Klassifikator C₁ → ZKP → "M ist kein CSAM"
Zeitpunkt t+1: Klassifikator C₂ → ZKP → "M ist CSAM" (für dasselbe M)
Der Nutzer kann nicht wissen, ob der neue Klassifikator nach CSAM oder etwas anderem sucht. Und da die Beweise verifizierbar sind, kann die Behörde vergangene Nachrichten mit neuen Klassifikatoren neu bewerten.
4. Falsch positive Ergebnisse und Privatsphäre
Ein falsch positives Ergebnis in einem ZKP-System unterscheidet sich qualitativ von einem falsch positiven Ergebnis in einem traditionellen System. In einem traditionellen System überprüft der Betreiber manuell den Inhalt und verwirft das falsch positive Ergebnis. In einem ZKP-System:
- Wenn das ZKP "CSAM erkannt" sagt, kann der Betreiber den Inhalt nicht überprüfen (er ist verschlüsselt)
- Der Betreiber muss entweder dem ZKP vertrauen oder den Entschlüsselungsschlüssel zur Überprüfung anfordern
- Wenn er den Schlüssel anfordert, wird das ZKP irrelevant
- Wenn er den Schlüssel nicht anfordert, akzeptiert er alle Klassifikatorurteile als wahr
ZKP sagt "CSAM erkannt":
├→ Schlüssel anfordern → M wird entschlüsselt → keine Privatsphäre mehr
└→ ZKP vertrauen → Urteil akzeptieren → was, wenn es falsch positiv ist?
Die Sackgasse
ZKPs und PSI sind leistungsstarke kryptographische Werkzeuge für wohldefinierte Probleme:
| Problem | ZKP/PSI löst es |
|---|---|
| Beweisen, dass man einen Hash kennt, ohne ihn preiszugeben | Perfekt |
| Beweisen, dass eine Nachricht nicht in einer Hash-Liste ist | Machbar |
| Beweisen, dass ein Bild kein neues CSAM enthält | Nein |
| Ein Bild mit einem neuronalen Netz klassifizieren, ohne etwas preiszugeben | Technisch möglich, unpraktikabel |
| Retrospektive Überwachung verhindern | Nein |
| Ausweitung des Klassifikators verhindern | Nein |
Die Schlussfolgerung ist ähnlich wie bei FHE: ZKPs können das Problem der CSAM-Erkennung in verschlüsselter Kommunikation nicht lösen, ohne die Privatsphäre zu brechen, weil:
- Sie kein nicht katalogisiertes Material erkennen können (das den Großteil des CSAM ausmacht)
- Sie keine komplexen Klassifikatoren in großem Maßstab ausführen können
- Sie die retrospektive Neubewertung nicht verhindern
- Sie das Problem der Ausweitung des Klassifikators nicht lösen
Das zugrundeliegende Paradoxon ist, dass Kryptographie alles beweisen kann, außer dass ein nicht eingesehener Inhalt sicher ist. Und genau das ist der Beweis, den das Gesetz verlangt.
Verwandte Dokumente:
