Tabla de Contenidos

Técnicas de anonimidad

Pensadas para publicar datasets sin exponer datos sensibles

Personal Identifiable Information (PII): Datos que se pueden usar para identificar a una pesona.

Aproximaciones típicas

K-Anonimidad

Se forman grupos de K elementos de forma que las filas comparten k cuasi-identificadores. Se busca un equilibrio entre K y el nivel de aononimidad que se quiere obtener. Para formar los grupos, hay que mirar por que atrbutos podemos realizar las grupacoones. Hay que evitar que se formen pocos grupos o agrupar por atributos sensibles. Hay que identificar bien pseudoidentificadores y datos sensbibles.

Si los datos están demasiado dispersos se pierde demasiada información ya que hay que añadir demasiado ruido. Si los datos están muy juntos tampoco es efectivo.

K-Anonimidad: Ataques

Ejemplo de K-Anonimidad

Imagina que tenemos el siguiente dataset:

Nombre Codigo Postal Edad Género Religión Enfermedad
John 15846 15 M C Covid
Emily 25105 41 F C Gripe
Sarah 15834 18 F M Cancer
Jeremy 25504 25 M C Gripe
Carl 15894 22 M C Infección
Laura 15833 31 F H Cancer
Michael 25974 58 M C Covid
Hank 25785 29 M B Gripe
Kim 15874 62 F H Corazón

En este dataset podemos identificar los siguientes tipos de información:

Al clasificar los atributos podemos saber a cuales les podemos aplicar pseudoanonimización o supresión. En este caso, como es un dataset médico, el atributo sensible religión puede ser suprimido. Por otro lado debemos pseudoanonimizar los nombres, cambiando estos por IDs, obteniendo como resultado el siguiente dataset:

ID Codigo Postal Edad Género Religión Enfermedad
1 15846 15 M * Covid
2 25105 41 F * Gripe
3 15834 18 F * Cancer
4 25504 25 M * Gripe
5 15894 22 M * Infección
6 15833 31 F * Cancer
7 25974 58 M * Covid
8 25785 29 M * Gripe
9 15874 62 F * Corazón

Tras eso, procedemos a aplicar una K-Anonimidad donde K=2, por lo que debemos crear grupos de al menos tamaño 2 a los que aplicaremos generalización:

Finalmente realizamos una agrupación de dos bloques en función al código postal (25xxx y 158xx) y luego realizamos pequeños grupos de elementos por edad. Como resultado obtenemos el siguiente dataset con 2-anonimidad:

ID Codigo Postal Edad Género Religión Enfermedad Agrupación
4 25xxx <30 M * Gripe Grupo 1
8 25xxx <30 M * Gripe
7 25xxx >40 * * Covid Grupo 2
2 25xxx >40 * * Gripe
5 158xx <25 * * Infección Grupo 3
1 158xx <25 * * Covid
3 158xx <25 * * Cancer
7 158xx >30 F * Cancer Grupo 4
9 158xx >30 F * Corazón

L-Diversidad

Se busca que en cada grupo, el atributo sutituible tenga al menos L valores diferentes. Cada uno de los grupos K-Anonimos debe tener al menos l valores diferentes del atributo sensible para que sea más robusto contra filtraciones de privacidad.

Teniendo en cuenta el ejemplo anterior para k-anonimidad, se cumple la L-Diversidad para L=2 en todos los grupos menos en el de las edades <30, donde podemos observar que los dos valores del campo sensible (gripe) que hay son iguales. Para cumplir con la 2-Diversidad sería necesario realizar cambios como juntar este grupo con otro o proceder a reagrupar.

OJO: Si no tenemos cuidado podemos acabar inutilizando el dataset.

Problemas de la L-Diversidad

Ejemplo de L-Diversidad

Tomando como base el dataset anterior con 2-Anonimidad:

ID Codigo Postal Edad Género Religión Enfermedad Agrupación
4 25xxx <30 M * Gripe Grupo 1
8 25xxx <30 M * Gripe
7 25xxx >40 * * Covid Grupo 2
2 25xxx >40 * * Gripe
5 158xx <25 * * Infección Grupo 3
1 158xx <25 * * Covid
3 158xx <25 * * Cancer
7 158xx >30 F * Cancer Grupo 4
9 158xx >30 F * Corazón

Queremos aplicar una L-Diversidad donde L=2. Como mencionamos antes, esto se cumple para todos los grupos menos para el grupo 1, donde los valores sensibles son iguales. Para Hacer que este dataset cumpla con la 2-Diversidad vamos a juntar el grupo 1 con el grupo 2 realizando las siguientes operaciones adicionales:

De esta forma se crea un nuevo “Grupo 1-2” el cual va agrupado por el código postal en vez de por la edad:

ID Codigo Postal Edad Género Religión Enfermedad Agrupación
4 25xxx * * * Gripe Grupo 1-2
8 25xxx * * * Gripe
7 25xxx * * * Covid
2 25xxx * * * Gripe
5 158xx <25 * * Infección Grupo 3
1 158xx <25 * * Covid
3 158xx <25 * * Cancer
7 158xx >30 F * Cancer Grupo 4
9 158xx >30 F * Corazón

T-Proximidad

Queremos conseguir que la distribución cumpla con un umbral de distancia:

$Dist(X,Y)≤t$

$EMD(X,Y)= 1/2 ∑_{i=1}^m|X_i-Y_i|$

Un ejemplo del cálculo de T-Proximidad categórico sería el siguiente:

$Y = [Gripe, Covid, Gripe, Cancer, Gripe, Covid]$ → $Y = {Gripe, Covid, Cancer}$; Y={$\frac{1}{2}$ ,$\frac{1}{3}$, $\frac{1}{6}$}

$X = [Gripe, Covid, Cancer]$ → $X= {Gripe, Covid, Caner}$; X = {$\frac{1}{3}$, $\frac{1}{3}$, $\frac{1}{3}$}

$EMD(X,Y) = \frac{1}{2}[|\frac{1}{3} - \frac{1}{2}| + |\frac{1}{3} - \frac{1}{3}| + |\frac{1}{3} - \frac{1}{6}|] = \frac{1}{2}[\frac{1}{6} + \frac{1}{6}] = 0.1667$

Ejemplo de T-Proximidad

Para este ejemplo vamos a tomar la siguiente tabla como base:

ID Codigo Postal Edad Género Religión Enfermedad
1 15846 15 M * Covid
2 25105 41 F * Gripe
3 15834 18 F * Cancer
4 25504 25 M * Gripe
5 15894 22 M * Infección
6 15833 31 F * Cancer
7 25974 58 M * Covid
8 25785 29 M * Gripe
9 15874 62 F * Corazón

Comenzamos mirando la distribución global de las enfermedades:

Ralizamos agrupaciones por rango de edades:

Cálculo de la distribución de enfermedades por grupo:

Medir Distancia (EMD)

En este caso tenemos los siguientes datos:

En este caso, por ejemplo, tomamos el grupo 2 y calculamos $|X_i-Y_i|$ para cada enfermedad:

Tras eso realizamos la suma de $|X_i-Y_i|$ para cada enfermedad:

$0.17+0.22+0.28+0.11+0.11=0.89$

Finalmente completamos el cálculo de la EMD dividiendo el resultado entre 2

EMD = $|\frac{1}{2} * 0.89 = 0.445$

Teniendo en cuenta podemos decir que el siguiente dataset tiene 2-Anonimidad, 2-Diversidad y 0.44-Proximidad:

ID Codigo Postal Edad Género Religión Enfermedad Grupo
1 * 15-25 * * Covid Grupo 1
3 * 15-25 * * Cancer
4 * 15-25 * * Gripe
5 * 15-25 * * Infección
6 * 26-35 * * Cancer Grupo 2
8 * 26-35 * * Gripe
2 * 40-65 * * Gripe Grupo 3
7 * 40-65 * * Covid
9 * 40-65 * * Corazón

Algoritmo de Mondrian

Es uno de los métodos más populares para implementar la K-Anonimidad.

Privacidad de geolocalización

Cuando trabajamos con ubicaciones tenemos mayores problemas ya que trabajamos con datos críticos como:

La geolicalización (Location Based information Systems o LBS) esta compuesta por la siguiente arquitectura y componentes:

pan:anongeoloc.png

Se deben declarar los usos que se le van a dar a estos datos. Se debe deben aplicar cifrado y anonimización sobre estos datos. La privacidad de la localización se define como la capacidad de una entidad de moverse por espacios públicos dando por hecho que su localización no va a ser registrada de forma sistemática y secreta.

Ataques de localización

Mecanismos de preservación de la privacidad de la localización