• Nenhum resultado encontrado

4.3 CR-ASPE básico

4.3.2 Busca Circular

Dado um ponto central qcenter ou de referência e uma distância de interesse r, esta busca é capaz de verificar todos os pontos que estão dentro deste raio de interesse. Para adaptar a busca circular ao operador de comparação, é necessário escolher um ponto b na circunferência do círculo formada por todos os pontos localizados a uma dada distância do ponto central e criptografá-lo como um ponto de dados b0. Então, para verificar se

um ponto está dentro da área de interesse, verifica-se entre ele e o ponto escolhido na circunferência, qual ponto está mais próximo do centro. Para permitir tal operação, as seguintes funções devem ser executadas.

1. Escolher um ponto no círculo (qcenter, r) → b. Dado um ponto de referência qcenter e uma distância r, essa função escolhe aleatoriamente um ponto na circunferência b formada por qcenter e o raio r. Esta função é executada pelo módulo Pré-processador

de Busca.

2. Criptografar o ponto escolhido (b, qcenter) → (b0, q0center). Dado um ponto da circunferência b gerado a partir da Função1 e um ponto de referência qcenter, esta função encripta os pontos usando as funções Ed e Eq respectivamente, retornando b0 e q0

center. A criptografia ocorre no módulo de Criptografia de Busca, o qual faz parte do cliente de acordo com a arquitetura da Seção4.1.

3. Busca circular (p0

1, b0, q0center) → V erdadeiro, Falso. A função de busca circular, nada mais é do que a execução da operação de comparação, a qual faz parte do conjunto de funções do núcleo do CR-ASPE. Essa etapa ocorre no servidor da nuvem, já que ela é executada diretamente sobre dados espaciais criptografados. A função calcula através de um produto escalar, dado o ponto criptografado p0

1 do banco de

dados e os pontos criptografados pela Função 2 (b0 e q0

center), se p1 está dentro do círculo de interesse.

A Função1 escolhe pontos aleatórios b, de modo que se os mesmos parâmetros de busca, qcenter e r, forem submetidos repetidamente nas consultas, o ponto escolhido no círculo não deve se repetir. Assim, esta escolha é semelhante ao que acontece com o ponto de referência qcenter, que ao ser criptografado, possui um fator aleatório que o multiplica.

4.3.3 Busca Poligonal

Uma busca poligonal consiste em delimitar uma região de interesse através de seus vértices. As arestas são formadas através da ligação entre dois vértices consecutivos. Assim, a conjunção das arestas delimita e dá forma ao polígono. Para executar uma busca poligonal, uma conjunção de buscas de semi espaço pode ser utilizada, a fim de validar se um ponto está ou não dentro da área de um polígono.

Considerando cada aresta do polígono como uma linha, que divide o espaço em dois, é possível verificar se o ponto pesquisado pertence sempre ao subespaço interior do polígono em todos os subespaços gerados. Para efetuar tal operação, é necessário implementar algumas funções auxiliares, listadas a seguir.

1. Gerar pontos âncoras((rA

1, rA2, ..., ..., rAn), (rB1, rB2, ..., ..., rBn)) → ((q<1, q2<, ..., ...,

q<

n), (q1≥, q≥2, ..., ..., qn)). Dados dois vértices consecutivos (rA e rB) de um polígono que são ligados por uma aresta, esta função irá escolher qualquer reta que seja perpendicular a esta aresta. Escolhida tal reta, a função escolherá aleatoriamente

Capítulo 4. A Técnica de Criptografia CR-ASPE 53 dois pontos distintos na reta (q< e q≥) que sejam equidistantes em relação à aresta.

Esta função será executada pelo módulo Pré-processador de Busca que pertence ao lado do cliente.

2. Criptografar o polígono ((q<

1, q<2, ..., ..., qn<), (q1≥, q2≥, ..., ..., qn)) → ((q1<’, q<2’, ..., ..., q<

n’), (q1≥’, q≥2’, ..., ..., qn≥’)). Para cada par de vértices do polígono que estiverem conectados por uma aresta, dois pontos de busca serão gerados pela Função1 e são criptografados como pontos de busca através da função Eq usando um fator aleatório

r para ambos. Esta etapa é realizada pelo módulo de Criptografia de Busca no lado

do cliente, já que a chave é usada nesta etapa. 3. Busca poligonal((q<

1’, q<2’, ..., ..., qn<’), (q1≥’, q≥2’, ..., ..., qn’),p0) → {Verdadeiro, Falso}. Dados n pares de pontos âncoras criptografados pela Função2e um ponto do banco de dados criptografado (p0), para cada par (q<

i ’, qi≥’), o operador de comparação será executado na base de dados do servidor a fim de verificar se p0está mais próximo

de q<

i ’ ou de qi’. Por fim, é feita uma conjunção de todos os resultados e se o ponto p0 estiver sempre mais próximo de q<

i ’, então o ponto está dentro da região de interesse delimitada pelo polígono, e caso contrário, o ponto não satisfaz a busca. Esta etapa é completamente executada no servidor pelo módulo Execução de Busca.

4.3.4 Busca kNN

A busca kNN procura pelos k pontos que estejam mais próximos do ponto de referência, não levando em conta a distância entre os pontos. Como ela não utiliza o módulo Pré-processador de Busca, ela é a busca mais rápida do CR-ASPE para entrar em execução, utilizando apenas o módulo Criptografia de Busca e o módulo Execução de

Busca.

1. Criptografia do ponto de referência(q) → (q0). Dado um ponto de referência q

para executar a busca, o ponto é criptografado no módulo de Criptografia da Busca, gerando o ponto q0 ainda no lado do cliente.

2. Comparação de distância(q0, p0

1, p02) → {Verdadeiro, Falso}. Dado um ponto de

referência q0 criptografado, uma operação de comparação é utilizada para indicar

se q está mais próximo de p1 do que de p2. Em caso afirmativo, a função retorna

verdadeiro, senão a função retorna falso. Esta etapa é executada no servidor pelo módulo de Execução de Busca.

3. Busca kNN(k, q0, E(DB)) → {[p0

1, p02, ..., p0k]}. Dado um ponto de referência q0 crip- tografado, a operação mostrada no item 2 é utilizada para cada ponto criptografado de E(DB), indicando quais pontos estão entre os k pontos mais próximos de q. Para tal, esta função cria uma lista de k posições e vai inserindo ordenadamente nesta

lista, descartando os pontos pontos mais distantes. Por fim, esta função retorna uma lista com k elementos. Esta etapa é executada exclusivamente no servidor pelo módulo de Execução de Busca.

4.3.5 Corretude do Esquema

Como todas as operações de busca são baseadas no operador de comparação, o qual é calculado por um produto escalar sobre dados criptografados, os Teoremas 1 e 2 demonstram que os dados espaciais criptografados podem ser comparados sem o cálculo da distância e que o resultado sempre é correto.

Teorema 1. Considerando p0

1 e p02 como pontos criptografados do banco de dados e q0

como ponto de referência criptografado. Com isso, o esquema é capaz de determinar se p1

está mais próximo de q do que p2 está, avaliando se (p01 - p02) · q0 > 0.

Demonstração. Note que,

(p0 1− p02) · q0 = (p01− p02)Tq0 (p0 1− p02) · q0 = (MTˆp1− MTˆp2)TM−1ˆq (p0 1− p02) · q0 = (ˆp1− ˆp2)Tˆq

Sendo assim, o produto escalar pode ser representado por

= (p1− p2)T(rq) + (−0.5||p1||2+ 0.5||p2||2)r + 0.5||q||2− 0.5||q||2

= 0.5r(||p2||2− ||p1||2+ 2(p1− p2)Tq)

= 0.5r(||p2||2− 2pT2q+ ||q||2− ||p1||2+ 2pT1q− ||q||2)

= 0.5r(d(p2, q) − d(p1, q))

onde d é a distância euclidiana entre dois pontos. Então,

0.5r(d(p2, q) − d(p1, q)) > 0 ⇔ d(p2, q) > d(p1, q)

Portanto, se e somente se a condição acima é satisfeita, p1 está mais próximo do ponto de

referência q.

Particularmente, para operação de comparação da Busca circular, o Pré-processador da busca garante que raio = d(p2,q), consequentemente 0.5r(d(p2, q) − d(p1, q)) > 0 ⇔

radius > d(p1, q). Assim, se e somente se a condição for satisfeita, p1 está dentro do círculo

de interesse, satisfazendo a busca.

Teorema 2. Considerando p0 como um ponto criptografado da base, e q0

1 e q20 como os dois

pontos âncoras, q<’ e q’ respectivamente. Com isso, o esquema é capaz de determinar se

o ponto p está dentro do semiespaço de interesse avaliando se p0 · (q0

Capítulo 4. A Técnica de Criptografia CR-ASPE 55

Demonstração. Note que,

p0· (q01− q20) = p0T(q10 − q02) p0· (q0

1− q20) = (MTˆp)T(M−1ˆq1− M−1ˆq2)

p0· (q01− q20) = ˆpT(ˆq

1− ˆq2)

Como r é o mesmo em q1 e q2, o produto escalar pode ser representado por

= pTr(q 1− q2) + (−0.5||p||2+ 0.5||p||2)r + (−0.5||q1||2+ 0.5||q2||2)r = 0.5r(||q2||2− ||q1||2+ 2pT(q1− q2) = 0.5r(||p||2− 2pTq 2+ ||q2||2− ||p||2+ 2pTq1− ||q1||2) = 0.5r(d(p, q2) − d(p, q1))

onde d é a distância euclidiana entre dois pontos. Então,

0.5r(d(p, q2) − d(p, q1)) > 0 ⇔ d(p, q2) > d(p, q1)

Sendo assim, se a condição acima é satisfeita, p está dentro do semiespaço de interesse. Como a intersecção de todos os semiespaços internos ao polígono formam exatamente o polígono, com a conjunção das buscas pelos semiespaços é possível garantir que o ponto está dentro da região de interesse.

4.3.6 Análise de Segurança

Primeiramente, o Teorema3demonstra que a dimensão fixa incorporada aos dados que são criptografados por Ed não compromete a segurança do esquema, apesar de ela ser fundamental no cálculo da busca retangular.

Teorema 3. Uma dimensão extra com o valor fixo, não diminui a segurança do esquema.

Demonstração. A demonstração é feita para dados com duas dimensões, mas pode ser

estendida para dados com n dimensões, indutivamente sem afetar a validade geral da demonstração. Uma matriz quadrada de d + 2 dimensões é gerada como chave do esquema. Após a geração da chave, ela é utilizada para criptografar o ponto p = (x, y), como é mostrado abaixo. p0=         a b c M d e f N g h i O j k l P                 x y −0.5||p||2 1         =         ax+ by + c(−0.5||p||2) + M dx+ ey + f(−0.5||p||2) + N gx+ hy + i(−0.5||p||2) + O jx+ ky + l(−0.5||p||2) + P        

Nota-se que p, assim como qualquer ponto criptografado por este esquema, tem o valor da quarta dimensão fixo antes da criptografia. Ao ser criptografado, após a multiplicação de matrizes, a quarta dimensão passa a ser composta por uma combinação linear das outras dimensões, não sendo possível distinguir a sua composição após a multiplicação. Além disso, a presença da soma da última coluna da matriz não aumenta nem diminui a segurança do esquema, pois é equivalente a uma translação fixa nas 4 dimensões para todos os pontos que forem criptografados por este esquema. Essa prova é válida para n dimensões.

Além disso, conforme visto na Seção4.2, um modelo de ameças foi proposto a fim de avaliar a força de segurança do esquema CR-ASPE básico. Neste modelo de ameaças, há um observador honesto, mas curioso, que é colocado como um atacante. Este atacante pode possuir três níveis de conhecimento. Apesar do cenário mais comum ser um observador com um nível 1 de conhecimento, colocaremos a segurança do esquema à prova com níveis superiores de conhecimento, a fim de avaliarmos o seu nível de resistência a ataques.

• Conhecimento nível 1: O observador com este nível de conhecimento tem acesso apenas ao dado criptografado. Como os dados criptografados não preservam a distância entre si, não é possível tentar quebrar a chave ou tentar mapeá-los, pois não existe uma relação entre eles.

• Conhecimento nível 2: Com este nível de conhecimento, o observador é capaz de tentar associar um subconjunto de dados não criptografados com um conjunto de dados criptografados para montar um sistema no qual seja possível calcular a chave. Entretanto, o esquema é resistente a este tipo de ataque conforme é demostrado no Teorema4.

Teorema 4. O esquema é resistente a ataques por força bruta com observadores

com o nível 2 de conhecimento.

Demonstração. Como um observador com nível 2 de conhecimento não sabe a

correspondência entre os pontos em P e os pontos criptografados em E(DB), ele pode tentar encontrá-la através de um ataque de força bruta. Conforme será apresentado no Teorema 5, são necessários no mínimo d + 2 pontos para ter uma quantidade suficiente de equações para resolver o sistema de equações e encontrar a chave do esquema. Portanto, se |P| > d + 2, um subconjunto de P pode ser selecionado para descobrir a chave, dividindo P em dois conjuntos, um conjunto de validação (Pv) e um conjunto de cálculo (Pt) onde |Pt| = d + 2. O passo inicial é escolher aleatoriamente

Capítulo 4. A Técnica de Criptografia CR-ASPE 57 fim de calcular a chave. Então, a chave resultante Ki é verificada através dos pontos de validação de Pv: se ao submeter os pontos de Pv para uma função de criptografia com a chave Ki e ela gerar pontos de E(DB), Ki é válida. Caso contrário, Ki não é válida. Entretanto, um ataque por força bruta pode testar todas as combinações de correspondência de Pt com E(DB), ou seja And+2 tentativas, onde n=|E(DB)|. Por exemplo, considerando um conjunto de 5000 pontos bidimensionais criptografados, se um atacante fosse capaz de montar e resolver um milhão de sistemas de equações por segundo, isso levaria mais de 300 anos para computar todas as combinações. Como o número de possibilidades é uma função que depende do tamanho do conjunto de entradas, de acordo com o Teorema4, para conjuntos reais de dados que possuem acima de cem mil entradas, o tempo gasto para descobrir a chave na força bruta sobe para mais de 3 trilhões de anos, o que garante que o sistema é seguro para observadores com nível 2 de conhecimento.

• Conhecimento nível 3 Quando o observador possui um conhecimento nível 3, a configuração das equações torna-se trivial para ele, calculando facilmente a chave conforme demonstra o Teorema5.

Teorema 5. Se um observador com nível 3 de conhecimento conhece d + 1 pontos

P = {x1, x2, ..., xd+2} e seus correspondentes criptografados E(P ) = {x01, x02, ..., x0d+2},

ele pode calcular a chave K.

Demonstração. Como o observador conhece os pontos não criptografados e os

pontos correspondentes através da função de mapeamento, ele pode montar um sistema de equações para descobrir K, Kˆxi = x0i para i = 1 até d + 2, onde ˆxi= (xi,−0.5||xi||2,1)T.

4.3.7 Vulnerabilidades de Segurança

Apesar do esquema ter se mostrado seguro diante de observadores que possuam até o nível 2 de conhecimento, é possível deixar vulnerabilidades de segurança na própria arquitetura e na execução das funções do esquema. Para avaliar as vulnerabilidades deixadas pelo CR-ASPE, o modelo de ameaças da Seção 4.2é considerado.

• Quantidade de dados armazenados: O esquema CR-ASPE básico não é capaz de esconder a quantidade de dados criptografados no servidor, visto que sempre que um ponto é submetido à função de criptografia, um novo ponto criptografado é gerado como saída.

• Tipo dos dados armazenados: Como o CR-ASPE básico criptografa ponto a ponto, estruturas como polígonos e linhas podem ser facilmente diferenciadas.

• Tipo de busca executada: No módulo de execução da busca, apenas uma única função é executada, que é a operação de comparação baseada no produto escalar. Entretanto, a busca poligonal é uma conjunção de várias operações de comparação, o que a destaca em relação às outras. Assim, a quantidade de pontos âncoras passados como parâmetro para uma busca pode indicar para o observador o tipo do polígono que foi usado, indicando se um quadrilátero, pentágono, hexágono ou outro polígono foi utilizado na busca. Essa brecha poderia ser evitada se as conjunções fossem feitas no lado do cliente. Porém, esta decisão afetaria o desempenho do esquema e poderia sobrecarregar o cliente. Portanto, decidiu-se manter toda a operação de busca poligonal no lado do servidor. Apesar do observador conseguir identificar quando uma busca poligonal é executada, não é possível distinguir entre uma busca circular ou uma busca kNN, já que ambas são executadas no lado do servidor apenas como uma operação de comparação. Além disso, os parâmetros da busca circular, como o raio e o ponto central, não impactam a busca realizada.

• Dados retornados por uma consulta: No esquema do CR-ASPE, o retorno das funções de busca são dados criptografados. Porém, apesar deles serem ilegíveis, o observador pode gravar o conjunto de resultados de dados criptografados que satisfaz determinada busca.

• Repetição de consultas: Essa brecha deve ser analisada para cada tipo de busca, já que cada uma delas criptografa a busca de uma maneira distinta. Para o caso da busca kNN, os pontos de referência são criptografados utilizando um fator aleatório. Assim, mesmo que o mesmo ponto de referência seja passado repetidas vezes, o parâmetro da busca não é identificado. Se o observador sabe que a mesma busca está sendo executada repetidamente, há uma baixa probabilidade dele descobrir que o mesmo parâmetro foi utilizado. Para o caso da busca circular, o ponto central do círculo é criptografado com um fator aleatório. O raio, que é outro parâmetro da busca circular, em nada afeta a busca no sentido de segurança, visto que um ponto aleatório na superfície do círculo de busca é gerado e criptografado. Na busca circular, o observador sabendo que a mesma busca está sendo executada repetidamente, pode não só tentar descobrir o fator que multiplica o ponto, como também pode mapear todos os pontos da circunferência, o que pode vir a ser uma grave vulnerabilidade. Já no caso da busca poligonal, os pontos âncoras, são escolhidos aleatoriamente num universo de infinitas possibilidades, então é inviável um observador tentar estimar a repetição de buscas.

• Dados repetidos que são criptografados: Este esquema criptografa o ponto apenas por uma multiplicação matricial. Assim, se dois pontos iguais foram cripto- grafados, ao serem armazenados no servidor, eles possuirão exatamente a mesma forma, sendo facilmente identificados.

Capítulo 4. A Técnica de Criptografia CR-ASPE 59 • Tamanho dos dados criptografados: Este esquema criptografa os dados sem-

pre acrescentando duas dimensões ao dado original, sendo assim, olhando o dado criptografado é possível saber quantas dimensões o dado original possui.

Diante do exposto, o esquema mostra-se frágil para situações nas quais o observador possui um nível 3 de conhecimento sobre os dados. Apesar de não ser um cenário usual, incorporando as estratégias de divisão do dado e a inserção de dimensões artificiais é possível criar um esquema capaz de resistir a ataques de observadores com o nível 3 de conhecimento, o qual foi nomeado como CR-ASPE estendido ou CR-ASPEE, e é detalhado a seguir.

4.4 CR-ASPE Estendido

Conforme foi visto, o esquema básico do CR-ASPE, apesar de ser resistente à maioria dos ataques, visto que dificilmente existem observadores de nível 3 de conhecimento, possui algumas brechas de segurança. A fim de evitar que os dados criptografadas possam deixar qualquer pista sobre a informação contida neles, a técnica de criptografia assimétrica baseada em produto escalar possui duas estratégias para aumentar o nível de segurança do esquema. Assim, uma versão estendida do CR-ASPE, o CR-ASPEE, é proposta para ser um esquema mais confiável e seguro em relação ao CR-ASPE básico. Porém, essa garantia de segurança é adquirida em detrimento do desempenho do esquema, cuja força de criptografia é baseada na quantidade de dimensões que o dado espacial passará a ter. Assim como o esquema básico, o esquema CR-ASPEE não preserva a distância entre os pontos espaciais criptografados e permite as operações de busca circular, busca retangular e busca kNN sobre dados sem a necessidade descriptografá-los.

Este esquema é mais seguro que o CR-ASPE básico porque, como vimos no Teorema 4, a força de segurança varia de acordo com o número de dimensões. Portanto, a função de criptografia incorpora dimensões com dados aleatórios a fim de aumentar o número de equações que compõem os dados criptografados. Após o aumento de dimensões, os dados são divididos aleatoriamente em dois, os quais compõem o dado criptografado. Para executar esta operação, a chave passa a ser composta por duas matrizes inversíveis com d0

dimensões, onde d0 > d+ 2 e d é o número de dimensões do dado a ser criptografado; um

vetor de números aleatórios com d0− (d + 2) dimensões e um vetor de bits aleatórios com

d0 dimensões.

As funções do esquema CR-ASPEE são apresentadas abaixo, seguidas pelas opera- ções de busca.

Documentos relacionados