| 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) |
Tenemos un dataset D que contiene datos de usuarios, siendo cada fila los datos de un usuario. El curador, una entidad de confianza para los usuarios, publica algunos datos usando un mecanismo M que da como resultado $R = M(D)$. El adversario trata de realizar inferencias sobre los datos D contenidos en R.
La privacidad diferencial protege contra el riesgo de conocimiento de información de un sujeto mediante el uso de inferencia con información externa sobre dicho sujeto. De esta forma, observando la respuesta $R$ no se puede cambiar lo que el adversario puede saber.
No protege contra inferencias que se puedan hacer fuera de la Base de Datos Suponemos que existen 2 Bases de Datos con la única diferencia de que una tiene a Alice y la otra no.
En resumidas cuentas, la clave para dificultar que un adversario pueda identificar datos sobre un sujeto es crear dos salidas $R = M(D)$ y $R' = M(D')$, siendo D y D' Bases de datos vecinas, de forma que ambas respuestas no puedan ser distinguidas. Para hacer esto se diseña un mecanismo $M$ el cual no puede ser determinístico, tiene que ser probabilístico.
Un mecanismo $M$ es privado si para todas las posibles salidas de $R$ y todos los pares de Bases de datos Vecinas $(D, 'D)$:
$Pr(M(D') = R) - p < Pr(M(D) = R) < Pr(M(D') = R) + p$
El valor de $P$ debe ser uno que no facilite que se pueda identificar cuando Alice no está en la Base de datos. Con esta primera definición nos encontramos con el problema de existen ciertas salidas de R que solo pueden ocurrir cuando la entrada es $D'$, permitiendo diferenciar los dos datasets. Para corregir esto, se realiza la siguiente definición:
Un mecanismo $M$ es privado si para todas las posibles salidas de $R$ y para todos los pares de las bases de datos vecinas $(D, D')$:
$\frac{Pr(M(D')=R)}{p}≤Pr(M(D)=R)≤Pr(M(D)=R)*p$
Cuanto más alto sea el valor de $P$ menor es la privacidad, por lo tanto, si $P=∞$ no hay privacidad.
Es similar a las dos definiciones antes realizadas, con la diferencia de que se sustituye $p$ con $e^ε$:
Un mecanismo $M: D$ → R es ε-privadamente diferencial ($ε-DP$) si para todas las posibles salidas $R ∈ $ R y todos los pares de las Bases de Datos Vecinas $D,D'∈ D$:
$Pr(M(D) = R) ≤ Pr(M(D') = R) * e^ε$
Si tomamos logaritmos naturales, aparece la siguiente definición alternativa:
A un mecanismo $M : D$ → R es ε-privadamente diferencial (ε-PD) si para todas las posibles salidas $R ∈$ R y todos los pares de las bases de datos vecinas $D,D' ∈$ D:
$|log(Pr(M(D) = R)) - log(Pr(M(D') = R))| ≤ ε$
Uno de los problemas de la privacidad diferencial es que es difícil de interpretar, por ejemplo, considerando el siguiente caso:
$Pr(D|R) = \frac{Pr(R|D) * Pr(D)}{Pr(R)} = \frac{Pr(R|D)}{Pr(R|D) + Pr(R|D')}$
$Pr(D|R) = \frac{1}{1+\frac{Pr(R|D)}{Pr(R|D)}}$
$\frac{1}{1+e^ε} ≤ Pr(D|R) ≤ \frac{1}{1+e^{-ε}}$
La privacidad diferencial asegura la protección incluso contra adversarios poderosos que saben que la entrada es D o D'. En la práctica un algoritmo que provee $ε = 10$ puede proveer alta protección empírica contra ataques existentes. En este punto el problema es que el peor caso teórico no importa ya que uno puede usar algo que no de privacidad diferencial pero se obtiene un mejor rendimiento empírico.
Considerando el mecanismo laplaciano siendo $X_i$ valores del dataset:
$r = M(D) = \frac{1}{n}Σ_{i=1}^n X_i + y$
Donde y es una muestra de una distribución laplaciana con media 0 y escalka b:
$f(y) = \frac{1}{2b}e^{-\frac{|y|}{b}} = Lap(b)$
Este mecanismo provee 1/b-privacidad diferencial. La salida de este mecanismo debe tener la siguiente distribución:
$ f(r|D) = \frac{1}{2b} \exp \left( - \frac{|r - \frac{1}{n} \sum_{i=1}^{n} x_i|}{b} \right) $$f(r|D') = \frac{1}{2b} \exp \left( - \frac{|r - \frac{1}{n} \sum_{i=1}^{n} x'_i|}{b} \right) $
Estas dos distribuciones difieren en la media. Tomando $b=1$ obtenemos una $ε-DP$ con $ε=1$. Supongamos que trucamos el laplaciano en $y > 1000$. El mecanismo es prácticamente el mismo ya que:
$Pr[Lap(1) > 1000] = \frac{e^{-1000}}{2} ≈ 10^{-43}$
De todas formas, truncando vamos de $ε = 1$ a $ε = ∞$, por lo que pasamos de tener una privacidad muy buena a no tener nada de privacidad.
Un mecanismo $M : D$ → R es (ε,δ)-privadamente diferencial ($(ε,δ)-DP$) si para todas las posibles salidas $R ⊂$ R y los pares de bases de datos vecinas $D,D' ∈ D$:
$Pr(M(D) ∈ R) ≤ Pr(M(D') ∈ R) * e^ε + δ$
Esta definición es una relajación de la de Privacidad diferencial que permite cierta tolerancia. Si $δ = 0$, entonces tenemos el mismo caso que $ε-DP$
Dependiendo de donde se ejecuta el mecanismo $M(D)$ hay 2 modelos generales para la privacidad diferencial:
$Pr(M(D) ∈ R) ≤ Pr(M(D') ∈ R) * e^ε$
$Pr(M(x) ∈ R) ≤ Pr(M(x') ∈ R) * e^ε$
La definición de la privacidad diferencial se asegura de que correr el mecanismo $M(D)$ en una base de datos vecina producen resultados similares. Normalmente hay 2 definiciones principales para como se definen las bases de datos vecinas en el modelo central:
Existen varios mecanismos que proveen privacidad diferenciual que pueden ser aplicados en varios sistemas.
Dada una función $g: D$ → $R^k$ y dos bases de datos vecinas $D,D' ∈ D$. la $l_1-sensibilidad$ de $g$ es el máximo cambio de salida resultante tras reemplazar $D$ con $D'$:
$Δ = max_{D,D'}|| g(D) - g(D')||_1$
Dada cualquier función g y Δ, podemos convertirla en un Mecanismo de privadidad diferencial si añadimos ruido laplaciano a su salida. El Mecanimso laplaciano se define como:
$M(D) = g(D) + [Y_1, Y_2 ..... Y_k]$
Donde cada $Y_i$ tiene una distribución independiente siguiendo $Y_i ~Lap(Δ/ε)$
En el caso de la privacidad diferencial local, si la función $g : X$ → $R^k$, entontes dos entradas dadas $X,X' ∈ X$ la $l_1-sensibilidad$ de $g$ es el mayor cambio de la salida que puede resultar de cambiar $X$ por $X'$:
$Δ = max_{x,x'}||g(X) - g(X')||_1$
En este caso tenemos un mecanismo $M : {0,1} -> {0,1}$ para privacidad diferencial local:
Se puede realizar una generalización asumiendo una cierta probabilidad de $γ$ de decir la verdad:
Un mecanismo $M : X$ → $Y$ es ε-privadamente diferencial (ε-DP) si las posibles salidas $y ∈ Y$ y todos los pares de bases de entradas vecias $x, x' ∈ X$:
$Pr(M(x) = y) ≤ Pr(M(x') = y)* e^ε$
Por lo tanto hay 2 posibles salidas:
$\frac{Pr(M(0) = 0)}{Pr(M(1) = 0)} = \frac{γ}{1-γ}$
$\frac{Pr(M(0) = 1)}{Pr(M(1) = 1)} = \frac{1-γ}{γ}$
$ε = max{log(1-γ)γ, log(γ/(1-γ))}$
A veces, añadir ruido laplaciano puede destruir la utilidad del mecanismo. En ocasiones no queremos que las respuestas numéricas sean privadas, pero queremos ser capaces de reportar objetos, clases y categorías. La idea del mecanismo exponencial es que podamos reportar una salida privadamente pero con una probabilidad proporcional a su utilidad.
Dada una base de datos $D ∈ D$, un set de salidas $H$ y una función de puntuación $S : D x H$ → R el mecanismo exponecial elige una salida $h ∈ H$ con la siguiente probabilidad:
$Pr(M(D) = h) ∝ exp(\frac{ε * s(D,h)}{2Δ})$
Nota: $∝$ Significa “Proporcional a”
La sensibilidad está dada por:
$Δ = max_{h∈H} max_{D,D'} |s(D,h) - s(D',h)|$
Para calcular la probabilidad $Pr(M(D) = h)$ necesitamos computar los valores de puntuación para cada $h ∈ H$, lo que puede ser muy costoso. El mecanismo proporcional elige elementos de forma proporcional a la función de puntuación. Las salidas con utilidad van a ser elegidas con mucha mayor probabilidad.
Los mecanismos anteriores proveían una privacidad diferencial exacta, el emcanismo gaussiano la da aproximada. Se usa la $l_2-sensibilidad$ de $g$:
$Δ = max_{D,D'}||g(D) - g(D')||_2$
El mecanismo gaussiano simplemente añade ruido gaussiano a la salida de la función. El mecanismo Gaussiano es definido como $M(D) = g(D) + [Y_1, Y_2 ... Y_k]$ donde cada $Y_i$ tiene una distribución independiente siguiendo $Y_i ~ N(0,σ^2)$ con:
$σ^2 = 2log(\frac{1.25}{∂}) * \frac{Δ^2}{ε^2}$
El mecanismo gaussiano provee (ε-∂)-DP
Sea $M : D$ → $γ$ un mecanismo (ε-∂)-DP y $F : Y$ → $Z$ una aplicación posiblemente aleatoria, entonces $F o M$ es (ε-∂)-DP. Esto significa que el procesado nunca decrementa la privacidad, pero puede incrementarla. Esto tiene sentido si consideramos que en caso contrario, el adversario podría diseñar una aplicación $F$ que parcialmente revierta $M$. Es muy importante que $F$ no de depnda de $D$ más allá de $γ$.
Sea $M : D$ → $R$ un mecanismo que provee ε-DP para $D,D'$ que difieren en una entrada. Entonces provee kε-DP para los datasets D,D' que difieren en k entradas. Esto es fácil de provar construiyendo una secuencia de k datasets que difieran en más de una entrada.
Composición ingénua: Sea $M = {M_1, M_2 ... M_k}$ una secuencia de mecanismos donde $M_i$ es $(ε_i,∂_i)-DP$. Entonces $M$ es $(Σ^k_{i=1}ε_i, Σ^k_{i=1}∂_i)$
Composición Avanzada: Sea $M = {M_1, M_2 ... M_k}$ una secuencia de mecanismos donde $M_i$ es $(ε_i,∂_i)-DP$. Entonces $M$ es $(ε\sqrt{8k*log(1/∂')}, k∂+∂)-DP$
Sea $M = {M_1, M_2 ... M_k}$ una secuencia de mencanismos donde $M_i$ es $ε_i-DP$. Sean $D_1, D_2 .... D_k$ una partición determinística de $D$. Publicar las salidas $M_1(D_1), M_2(D_2), ... , M_k(D_k)$ satisface $(max ε_i)-DP$