Saltar al contenido principal
fr/blog/chat-control/pruebas-conocimiento-cero/

Preuves à connaissance nulle — Applications et limites dans la détection des CSAM

Par Xscriptor — Óscar Preciado6 min de lecture
TechnologieCryptographieVie privéeRechercheZKPpreuves à connaissance nullePSIintersection privéecryptographievie privéeCSAMChat ControlXscriptorÓscar Preciado
Preuves à connaissance nulle — Applications et limites dans la détection des CSAM

"Je peux te prouver que je connais la combinaison du coffre-fort sans l'ouvrir ni te dire le numéro."

— C'est la promesse. Ce que je ne peux pas faire, c'est te prouver qu'il n'y a rien de volé à l'intérieur sans l'ouvrir. Et c'est là le problème.



Les preuves à connaissance nulle (Zero-Knowledge Proofs, ZKP) sont, avec le FHE, l'autre grande promesse technique qui apparaît dans les débats sur Chat Control. L'idée est qu'un utilisateur pourrait prouver que son message ne contient pas de CSAM sans révéler le contenu du message.

Ça semble parfait. Le diable se cache dans les détails.

Qu'est-ce qu'une preuve à connaissance nulle ?

Une ZKP est un protocole cryptographique qui permet à un prouveur (prover) de démontrer à un vérificateur (verifier) qu'une affirmation est vraie, sans révéler aucune information supplémentaire au-delà de la validité de l'affirmation.

Formellement, un protocole ZKP pour un langage L\mathcal{L} doit satisfaire :

  1. Complétude : si l'affirmation est vraie, le prouveur honnête convainc le vérificateur
  2. Solidité : si l'affirmation est fausse, aucun prouveur malhonnête ne peut convaincre le vérificateur (avec une probabilité non négligeable)
  3. Connaissance nulle : le vérificateur n'apprend rien d'autre que la validité de l'affirmation
Prouveur : "J'ai une preuve que M ∉ B (CSAM)"
                 │
                 │  ███████████████████████
                 │  █ Protocole ZKP ████████
                 │  ███████████████████████
                 │
                 ▼
Vérificateur : ✓ "M n'est pas dans B" (sans voir M)

Intersection privée d'ensembles (PSI)

Une variante pertinente est l'intersection privée d'ensembles (Private Set Intersection, PSI), où deux parties peuvent déterminer l'intersection de leurs ensembles sans révéler les éléments non partagés.

Dans le contexte de CSAR, l'idée serait :

  • Utilisateur : a un ensemble de messages M\mathcal{M}
  • Plateforme/autorité : a un ensemble de hashs de CSAM connu H\mathcal{H}
  • PSI : détermine si MH\mathcal{M} \cap \mathcal{H} \neq \emptyset sans qu'aucune partie ne révèle son ensemble complet
Utilisateur : M₁, M₂, M₃, ... Mₙ
                     \
                     PSI → Intersection non vide ? → oui/non
                     /
Autorité : h₁, h₂, h₃, ... hₖ (hashs de CSAM)

Si oui → l'utilisateur a au moins un message CSAM (mais on ne sait pas lequel)
Si non → l'utilisateur n'a aucun message CSAM

Les problèmes pratiques

1. Le CSAM inconnu n'est pas détecté

Le PSI ne détecte que les correspondances avec une base de données préexistante. Mais la majorité du CSAM détecté aujourd'hui est du nouveau matériel — des images et vidéos qui n'étaient dans aucune base de données parce qu'elles n'avaient pas été signalées auparavant.

Un système basé sur PSI :

  • Détecte le CSAM déjà connu (hashs existants)
  • Ne détecte pas le nouveau CSAM (on ne peut pas hacher ce qu'on ne connaît pas)
  • Nécessite une mise à jour constante de la base de données

2. Le classificateur n'est pas un hash

La détection de nouveau CSAM nécessite des classificateurs basés sur le contenu (réseaux neuronaux, embeddings perceptuels). Un classificateur de ce type n'est pas une fonction qui peut être exécutée efficacement dans une ZKP.

Les ZKP modernes (zk-SNARKs, zk-STARKs, Bulletproofs) peuvent prouver des calculs complexes, mais le coût de génération d'une preuve pour un réseau neuronal de taille moyenne reste prohibitif :

Type de preuve Coût de génération Coût de vérification Applicable à CNN
zk-SNARK O(log n) O(1) Oui, mais coût énorme
zk-STARK O(n log n) O(log² n) Oui, preuves volumineuses
Bulletproofs O(n) O(n) Calculs seulement
PSI (ECDH) O(n) O(n log n) Hashs seulement

3. Le problème de la mise à jour

Même s'il était viable d'exécuter un classificateur dans une ZKP, il resterait le problème de la mise à jour du classificateur. Si l'autorité peut mettre à jour à distance le modèle de classification, alors :

Instant t :    Classificateur C₁ → ZKP → "M n'est pas CSAM"
Instant t+1 :  Classificateur C₂ → ZKP → "M est CSAM" (pour le même M)

L'utilisateur ne peut pas savoir si le nouveau classificateur cherche du CSAM ou toute autre chose. Et comme les preuves sont vérifiables, l'autorité peut réévaluer les messages passés avec de nouveaux classificateurs.

4. Faux positifs et vie privée

Un faux positif dans un système ZKP est qualitativement différent d'un faux positif dans un système traditionnel. Dans un système traditionnel, l'opérateur examine manuellement le contenu et écarte le faux positif. Dans un système ZKP :

  • Si le ZKP dit "CSAM détecté", l'opérateur ne peut pas examiner le contenu (il est chiffré)
  • L'opérateur doit faire confiance au ZKP ou demander la clé de déchiffrement pour vérifier
  • S'il demande la clé, le ZKP devient inutile
  • S'il ne demande pas la clé, il accepte comme vrais tous les verdicts du classificateur
ZKP dit "CSAM détecté" :
    ├→ Demander la clé → M est déchiffré → la vie privée est perdue
    └→ Faire confiance au ZKP → accepter le verdict → et si c'est un faux positif ?

L'impasse

Les ZKP et le PSI sont des outils cryptographiques puissants pour des problèmes bien définis :

Problème ZKP/PSI le résout
Prouver que tu connais un hash sans le révéler Parfaitement
Prouver qu'un message n'est pas dans une liste de hashs Faisable
Prouver qu'une image ne contient pas de nouveau CSAM Non
Classifier une image avec un réseau neuronal sans rien révéler Techniquement possible, irréaliste
Empêcher la surveillance rétrospective Non
Éviter l'expansion du classificateur Non

La conclusion est similaire à celle du FHE : les ZKP ne peuvent pas résoudre le problème de détection des CSAM dans les communications chiffrées sans briser la vie privée, parce que :

  1. Elles ne peuvent pas détecter le matériel non répertorié (qui constitue la majorité du CSAM)
  2. Elles ne peuvent pas exécuter des classificateurs complexes à grande échelle
  3. Elles n'empêchent pas la réévaluation rétrospective
  4. Elles ne résolvent pas le problème de l'expansion du classificateur

Le paradoxe sous-jacent est que la cryptographie peut prouver n'importe quoi sauf qu'un contenu qui n'a pas été vu est sûr. Et c'est précisément la démonstration que la loi exige.


Documents connexes :