Questa domanda è stata discussa, in una forma o nell'altra, per qualche tempo come problema di "key escrow". Esistono problemi fondamentali con l'architettura di fornire a terzi l'accesso ai dati protetti. Questi sono invarianti al modo in cui implementate la crittografia. Vedi questo articolo per esempio.
Sto interpretando la domanda su come fornire accesso a dati protetti da parte di terzi: il dibattito sul fatto che ciò corrisponda effettivamente all'attuale situazione con il governo francese che sto considerando tangenziale; e ci sono rischi irrisolvibili nel fare questo dalla natura del problema. Quindi considera questa risposta come fare il meglio di una brutta situazione.
Una serie di requisiti potrebbe essere:
- Il server ha accesso a tutti i record
- Al governo può essere concesso l'accesso, ma solo a record specifici
- Dovrebbe essere abbastanza efficiente registrare un nuovo utente
- Dovrebbe essere molto efficiente per autenticare un utente
- Non deve necessariamente essere così efficiente per recuperare un record
In realtà esiste una soluzione molto bella a questo problema con tecniche di crittografia molto moderne, chiamate crittografia funzionale, tuttavia non è efficiente. Con questi tipi di schemi, il server può contenere una chiave privata principale che consente loro di decodificare qualsiasi record e possono creare una nuova chiave privata che può essere utilizzata solo per decrittografare record specifici. Questo risolve (1), (2) e (5), è in conflitto con (3) e non fornisce (4).
Per fornire (4), suggerirei un sistema ibrido in cui qualsiasi sistema esistente di autenticazione basato su password sia usato per continuare a fare (4), ed è aumentato con una crittografia dell'utente registrare (compresa la password). Se il record viene fornito al governo, una volta che ha recuperato la password, può comparare assicurandosi che sia la stessa password utilizzata per autenticare l'utente.
Un'alternativa all'utilizzo della crittografia delle funzioni sarebbe che il server crittografasse il record con uno schema di crittografia appropriato che consenta loro di generare una prova di "conoscenza zero" di ciò che il record è ogni volta che il governo richiede un record (invece di dare la chiave privata). La prova potrebbe essere crittografata durante il transito al governo (e si potrebbe anche usare una prova "verificatore designato" per impedire al governo di condividere la prova con gli altri).
Nessuna di queste soluzioni potrà mai risolvere il fatto che il governo ha bisogno di fiducia per non abusare della sua autorità, dal momento che la protezione contro questo conflitto con la definizione del problema che stiamo cercando di "risolvere".