Anonimidad y cantidad de información

Juguemos a un juego: pienso el nombre de uno de los 45M de ciudadanos españoles y tenéis que acertarlo. Me podéis hacer preguntas, pero sólo de esas cuya respuesta es sí o no. ¿Cuántas preguntas deberíais hacerme?

Pues unas 25 o 26 porque log24.5e7=25.42. La demostración es sencilla: suponed que tenéis una lista con los nombres de todos los ciudadanos (a razón de 45 por hoja y 200 hojas por tomo, ocuparían 5000 de ellos). La primera pregunta podría ser: el individuo que has pensado, ¿está en los tomos 1-2500? Luego, dependiendo de la respuesta, ¿del 1250 al 2500? Y etc. con la búsqueda binaria. En total, 25 o 26 veces.

Podríais preguntar por el sexo, el color del pelo o la edad. Pero a no ser que partiéseis vuestro universo en dos mitades iguales, seríais menos eficaces.

La información que tenéis que compilar para identificar finalmente al individuo xi es log(4.5e7) (permítaseme olvidar que la base es 2) o bien, definiendo N=4.5e7,

log(N)=log(1/N)=logpi,

si consideramos que la probabilidad de elegir al individuo xi es pi (y cada pi=1/N).

Si X es la variable aleatoria persona que yo elijo y concedemos que lo hago muestreando con probabilidad uniforme, podíamos definir

H(X)=ipilog(pi)

como el número medio de preguntas por persona que tú tienes que hacer. Como tal no es interesante porque siendo cada pi=1/N, resulta que H(X)=1/Nlog(1/N)=log(N), cosa que ya sabíamos dos párrafos antes.

La gracia de H está en que como yo no soy uniforme en mis selección de individuos (por ejemplo, la probabilidad de que seleccione a un egabrense es nula porque no conozco a ninguno), entonces H(X)=pilogpi (donde las pi no son necesariamente iguales e incluso pueden ser nulas), es —creedme: me avalan milenios de historia de las matemáticas— menor que logN. Es decir, necesitáis hacerme menos de 25 preguntas: ¡soy más previsible!

Supongamos que elijo a un individuo X y que ofrezco una serie de pistas X1,,Xn sobre su identidad (por ejemplo, su edad, etc.). Si X1,,Xn es suficiente para identificar a X, entonces H(X)=H(X1,,Xn). Pero de las propiedades de H, se deduce que

H(X1,,Xn)=H(X1|X2,)+H(X2|X3,)+H(Xn)H(Xi)

La fórmula anterior necesita alguna explicación. La primera igualdad es una consecuencia casi directa de la definición de H. El símbolo H(X|Y) representa la cantidad de información adicional que se obtiene tras preguntar acerca de X conocida Y: por ejemplo, la cantidad de información que aporta la pregunta “¿es calvo?” después de saber que el sujeto es una mujer de menos de 30 años es mucho menor que si se sabe que es un hombre mayor de 50.

La desigualdad es una consecuencia directa de la desigualdad de Jensen y es, de hecho, una igualdad cuando las variables aleatorias X1,,Xn son independientes. ¡Y es que la función f(x)=xlogx, además de convexa, tiene unas propiedades algebraicas la mar de amenas!

Y, finalmente, la relación con la anonimidad.

Supongamos que tenemos una base de datos con información confidencial en la que, por dicho motivo, se han eliminado el nombre, dirección, teléfono, etc., de los sujetos. Pero contiene una serie de pistas sobre su identidad: sexo, provincia, edad, etc.

Si X es la variable aleatoria que relaciona cada fila de la base de datos con el sujeto del que proviene (y que un facineroso puede desear identificar para, tal vez, extorsionarlo) y las pistas X1,,Xn son suficientes para identificarlo, la anonimidad de los sujetos no puede garantizarse. Sin embargo, como hemos visto más arriba, basta con que

H(Xi)<H(X)

para que resulte matemáticamente imposible identificar a todos los sujetos.

Nota: eso no significa que sea imposible identificar a algunos de ellos. En este contexto, la condición que garantiza que ningún sujeto puede ser identificado es que el índice k de k-anonimidad sea de dos o más. De esos y otros asuntos relacionados volveré a tratar en estas páginas próximamente.