| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
Pensadas para publicar datasets sin exponer datos sensibles
Personal Identifiable Information (PII): Datos que se pueden usar para identificar a una pesona.
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.
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 |
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.
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 |
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$
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 |
Es uno de los métodos más populares para implementar la K-Anonimidad.
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:
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.