Cartilha sobre Teoria da Informação e Privacidade

Original em inglês do site da EFF

Cartilha sobre Teoria da Informação e Privacidade

Se nos perguntarmos se um fato sobre uma pessoa identifica essa pessoa, a resposta não é simplesmente sim ou não. Se tudo o que sabemos sobre ela é o seu código postal, não sabemos quem ela é. Se conhecemos apenas sua data de nascimento, não sabemos quem ela é. Se sabemos somente o seu gênero, não sabemos quem ela é. Mas se soubermos essas três coisas sobre uma pessoa, provavelmente poderemos deduzir sua identidade! Cada um desses fatos pode identificá-la parcialmente.
Existe uma grandeza matemática que nos permite medir o quanto um fato pode revelar de maneira única a identidade de alguém. Essa grandeza [na teoria da informação] é chamada entropia, e geralmente é medida em bits. Intuitivamente, podemos pensar na entropia como sendo a generalização das diferentes possibilidades que existem para uma variável aleatória: se existem duas possibilidades, isso equivale a 1 bit de entropia; se existem quatro possibilidades, temos 2 bits de entropia, etc. Ao adicionar um bit de entropia, duplicamos o número de possibilidades.1

Como existem em torno de 7 bilhões de pessoas no planeta, a identidade de uma pessoa aleatória desconhecida contém um pouco mesmo de 33 bits de entropia (dois elevado a 33 dá 8 bilhões). Quando descobrimos um novo fato sobre uma pessoa, esse fato reduz a entropia da sua identidade em uma certa quantia. Existe uma fórmula para isso:

ΔS = – log2 Pr(X=x)

Onde ΔS é a redução na entropia, medida em bits,2 e Pr(X=x) é simplesmente a probabilidade de que o fato seja verdadeiro para uma pessoa aleatória. Vamos aplicar a fórmula a alguns fatos, só pra ver o que acontece:

Signo astrológico: ΔS = – log2 Pr(signo=capricórnio) = – log2 (1/12) = 3,58 bits de informação
Data de nascimento: ΔS = – log2 Pr(data=2 de janeiro) = -log2 (1/365) = 8,51 bits de informação

Note que se você combinar diversos fatos, pode ser que não descubra nada de novo. Por exemplo, saber o signo de alguém não me diz nada novo se já sei o seu aniversário.3

Nos exemplos acima, assumiu-se que cada signo e data de nascimento tem a mesma probabilidade de acontecer.4 O cálculo também pode ser aplicado para fatos que possuem probabilidades não uniformes. Por exemplo, a probabilidade de que o CEP de uma pessoa desconhecida seja 88200-000 (Tijucas, Santa Catarina) é diferente da probabilidade de que seu CEP seja 35617-000 (Serra da Saudade, Minas Gerais). Em 2010, havia 29.973 pessoas vivendo na área 88200-000, umas 815 no 35617-000 e mais ou menos 7 bilhões de pessoas no planeta.

Saber que meu CEP é 88200-000: ΔS = – log2 (29.973/7.000.000.000) = 17,83 bits
Saber que meu CEP é 35617-000: ΔS = – log2 (815/7.000.000.000) = 23,03 bits
Saber que vivo em Moscou (2013): ΔS = -log2 (11979529/7.000.000.000) = 9,19 bits

 

Quanto de entropia é necessário para identificar alguém?

Em 2010, identificar alguém dentre a população do planeta requeria:

S = log2 (1/7.000.000.000) = 32,7 bits de informação.

Podemos arredondar para 33 bits, assumindo uma posição conservadora.

Por exemplo, se conhecemos o aniversário de alguém e sabemos que seu CEP é 35617-000, temos 8,51 + 23,03 = 31,54 bits de informação sobre ela; isso é quase o suficiente para saber quem ela é: talvez existam algumas poucas pessoas que tenham essas características. Somando com gênero, temos 32,54 bits, e provavelmente podemos dizer quem é a pessoa.5

 

Uma aplicação para navegadores web

Agora, como esse paradigma pode ser usado em navegadores? Acontece que, ademais das comumente discutidas características “identificantes” dos navegadores web, como endereços de IP e cookies de rastreamento, existem diferenças mais sutis entre os navegadores que podem ser usadas para descrevê-las.

Um exemplo significativo é a string de User-Agent, que contém o nome, o sistema operacional e o número exato da versão do navegador, e que é enviada toda vez que você visita um site. Uma string de User-Agent típica seria mais ou menos assim:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6

Como é possível notar, existe bastante “coisa” ali. Acontece que cada uma dessas “coisas” é bastante útil para diferenciar as pessoas na internet. Em outra postagem, publicamos que em média as strings de User-Agent contêm em torno de 10,5 bits de informação identificante, o que significa que se você pegar o navegador de uma pessoa aleatória, apenas uma em 1.500 outras usuárias da internet compartilharão as mesmas strings de User-Agent.

O projeto da EFF Panopticlick é uma pesquisa sobre privacidade para medir quanta informação identificante está sendo transmitida por outras características do navegador. Visite o site do Panopticlick para ver o quão identificante o seu navegador é e ajude-nos na pesquisa.

 

notas:

  • 1. Na verdade, entropia é uma generalização para contar o número de possibilidades, para apontar para o fato de que algumas possibilidades são mais prováveis que outras. Você pode encontrar a fórmula completa aqui.
  • 2.Essa quantidade é chamada de “auto-informação” (“self-information”) ou “surpresa” da observação, pois ela é uma medida de quão “surpreendente” ou inesperada é a nova informação. Ela é de fato medida em relação à variável aleatória que está sendo observada (talvez, a idade de uma pessoa ou onde ela vive), e a nova entropia reduzida para a sua identidade pode ser calculada com base nessa observação.
  • 3.O que acontece quando os fatos são combinados depende se os fatos são independentes. Por exemplo, se você conhece o aniversário e o gênero de alguém, você tem 8,51 + 1 = 9,51 bits de informação sobre sua identidade porque as distribuições de probabilidades de aniversário e gênero são independentes. Mas o mesmo não é verdade para aniversário e signo astrológico. Se você conhece o aniversário, então conhece o signo. Passar a saber o signo não aumenta o que eu sei. Queremos calcular a mudança na entropia condicional da identidade da pessoa em todas as variáveis observadas e podemos fazer isso calculando as probabilidades para novos fatos em relação aos fatos que já sabemos. Assim, temos que ΔS = -log2 Probabilidade(gênero=feminino|data=2 de janeiro) = -log2(1/2) = 1, e ΔS = -log2 Probabilidade(signo=capricórnio|data=2 de janeiro)=-log2(1) = 0. Casos intermediários também são possíveis: se conheço alguém que nasceu em dezembro e depois descubro que ela é de capricórnio, ainda assim ganho uma nova informação: ΔS = -log2 Probabilidade(signo=capricórnio|mês de nascimento=dezembro)=-log2 (10/31) = 1.63 bits.
  • 4. Na verdade,no exemplo do aniversário, deveríamos ter levado em conta a possibilidade de alguém ter nascido em 29 de fevereiro durante um ano bissexto, que no caso seria ΔS =-log2 Pr(1/365.25).
  • 5. Se você está atenta o suficiente, teria dito, “ei! isso não tá certo; às vezes haverá apenas uma pessoa no CEP 35617-000 nascida em 2 de janeiro. A forma correta de formalizar esse problema seria usar a distribuição de frequência real de aniversários no CEP 35617-000.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *