Busca em dados cifrados - IC

Propaganda
Busca em dados cifrados
Pedro Alves
[email protected]
Casos de uso
Casos de uso
name
age
address
level
John Snow
18
Castle Black, on a
table
0
Eddard Stark
40
King's Landing, in a
spear
0
Tywin Lannister
55
King's Landing
0
Lady Melisandre
432
Castle Black, naked
0
Casos de uso
name
age
address
level
John Snow
18
Castle Black, on a
table
0
Eddard Stark
40
King's Landing, in a
spear
0
Tywin Lannister
55
King's Landing
0
Lady Melisandre
432
Castle Black, naked
0
●
●
●
Quem tem sobrenome “Stark”?
Quem tem mais de 20 anos e menos de 60?
Quem é a pessoa mais velha?
●
Eu gostaria de alterar o “level” de uma entrada de nome “Lady Melisandre” para 20.
Casos de uso
1. Seleção : keywords, intervalo de valores
2. Atualização : função arbitrária, substituição
Criptossistemas
Criptossistemas
( Enc, Dec)
cifra = Enc
chave
( mensagem )
mensagem = Dec
chave
( cifra )
Probabilístico:
c1 = Enc ( mensagem )
c2 = Enc ( mensagem )
Determinístico:
c1 = Enc ( mensagem )
c2 = Enc ( mensagem )
c1 != c2
c1 == c2
Criptossistemas: Homomorphic encryption
( Enc, Dec, Op)
c1 = Enc ( 10 )
c2 = Enc ( 20 )
c3 = c1 + c2
30 = Dec ( c3 )
Criptossistemas: Order-Preserving encryption (OPE)
( Enc, Dec)
c1 = Enc ( 10 )
c2 = Enc ( 20 )
Como 10 < 20, então
c1 < c2
Criptossistemas: Identity-Based Encryption (IBE)
( Enc, Dec)
cifra = Enc ( “fulano”, mensagem )
mensagem = Dec ( chave_secreta_do_fulano, cifra )
Exemplo:
cifra = Enc ( “[email protected]”, “Attack at Dawn” )
"ID Based Encryption: Offline and Online Steps" by Yaron Sheffer is licensed under CC BY-SA 3.0
Proposta de protocolo
Proposta de protocolo
Quatro tipos de atributos:
keyword
Utilizado para selecionar entradas
static
Nunca alterado ou processado
h_add / h_mul
Suporta adição ou multiplicação
homomórfica
range
Utilizado para selecionar entradas por
intervalo
Proposta de protocolo
Quatro tipos de atributos:
keyword
static
h_add / h_mul
range
“[email protected]”, “infosec”
corpo do e-mail
quantidade de e-mails recebidos
idade
Proposta de protocolo
1. O usuário cifra os dados antes de envia-los para a nuvem.
a. Dados imutáveis são cifrados utilizando um esquema simétrico.
b. keywords são cifradas utilizando um esquema IBE.
c. Atributos utilizados como operandos são cifrados com um esquema
homomórfico.
d. Atributos de busca por intervalo são cifrados com um esquema OPE
2. Uma entrada do banco de dados é composta por atributos de busca,
imutáveis ou operáveis.
3. A nuvem não retém nenhuma chave de cifração ou decifração.
Proposta de protocolo - Busca por keyword
O usuário mantém controle das chaves mestre.
i. c = Enc ( mpk, keyword, 1 ).
ii. sk = private_keygen(msk, keyword)
iii. Testa-se todas as keywords de uma entrada
procurando por Dec ( sk, c ) = 1.
Proposta de protocolo
Atributo
Criptossistema usado
keyword
IBE
static
Simétrico
h_add / h_mul
Homomórfico
range
OPE
Trabalhos relacionados
Trabalhos relacionados
1. Boneh, D., & Franklin, M. (2003). Identity-Based Encryption from the Weil
Pairing.
2. Boldyreva, A., Chenette, N., Lee, Y., & O’Neill, A. (2009). Order-preserving
symmetric encryption.
3. Paillier, P. (1999). Public-Key Cryptosystems Based on Composite Degree
Residuosity Classes.
4. Elgamal, T. (1985). A public key cryptosystem and a signature scheme based
on discrete logarithms. Information Theory.
5. Daemen, J., Rijmen, V., & Leuven, K. U. (1999). AES Proposal : Rijndael.
Implementação
Implementação
1. Esquema baseado em identidades: BF-IBE - C - RELIC
2. Esquemas homomórficos: ElGamal e Pailier - Python
3. Esquema que preserva a ordem: Boldyreva - Python
4. Esquema simétrico: AES - Python
5. Banco de dados MongoDB.
Download