EDIT:
[N.B: ho completamente sostituito la domanda originale che non era una buona affermazione del problema (vedi i commenti) con uno più adatto.]
Ho dei record che contengono, tra le altre cose, la posizione degli utenti e il loro ID (è un grande flusso di dati). Devo fornire a una terza parte la posizione degli utenti. (Il flusso viene anche filtrato in base ad altri criteri nello stream e forse anche fuso con altre fonti di dati che contengono tutti gli ID utente, se è di qualsiasi interesse qui e ora.)
Non devo passare gli ID utente a terze parti.
I record di un output devono consentire alla terza parte di creare "percorsi" e / o mappe di posizione varianti temporali degli utenti in un periodo di tempo (ad esempio un giorno ma molto più di un'ora). A tal fine devono essere in grado di identificare i record che appartengono allo stesso utente. Quindi è necessario passare qualche chiave.
Una restrizione importante che costituisce il nucleo del problema:
Per la discussione, definisco "ID utente anonimo" un attributo derivato dagli attributi dei record di input in modo tale che sia (quasi) derivabile univocamente dall'ID utente (ad esempio, un ID utente salato con hash o un valore fisso mappatura casuale) e inserito nei record del flusso di output in modo che i record appartenenti allo stesso utente possano essere identificati.
Le normative legali e le regole interne sono tali che devo assicurarmi che l'"user ID anonimizzato" possa essere riprodotto per non più di un'ora. (Come esempio illustrativo: se dovessi usare un hash salato dell'ID utente come "ID utente anonimizzato", dovrei usare una nuova ora di sale.)
(Nota: come accennato in precedenza, la terza parte deve mappare a lungo le posizioni degli utenti. Non si preoccupano ancora dell'identità dell'utente, ma devono sapere che è sempre lo stesso utente.)
E le domande sono: c'è un modo per farlo? Se sì, come?