Criptografia funcional: a alternativa à criptografia homomórfica para realizar cálculos em dados criptografados

Gonzalo Álvarez Marañón    16 marzo, 2021
Criptografia funcional: a alternativa à criptografia homomórfica para realizar cálculos em dados criptografados

-Eu ofereço a você as coordenadas exatas de cada operativo implantado na zona de combate
-Por quanto?
-100.000
-É muito
“E um código que mostra a posição atualizada de cada soldado inimigo na tela”
-Trato feito!

Os videogames são um negócio muito sério. Eles movimentam um mercado de bilhões de euros em todo o mundo e atraem todos os tipos de criminosos.

Por exemplo, em um videogame multiplayer online, cada dispositivo deve saber a posição de todos os objetos no solo para renderizá-los corretamente em 3D. Além disso, você precisa saber as posições dos outros jogadores, para representá-los se eles estão na visão do jogador local ou não se estiverem escondidos atrás de paredes ou pedras. O servidor se depara com um dilema clássico: se você fornecer as posições de jogador para os outros jogadores, eles podem trapacear; mas se você não os fornecer, o jogo não saberá quando mostrar jogadores ocultos.

Em vez de fornecer as coordenadas exatas, o ideal seria poder fornecer a informação de se um alvo está ou não à vista do jogador local, mas sem filtrar sua posição. Algo dificilmente possível até a invenção da criptografia funcional.

Criptografia funcional, um passo além da criptografia de chave pública convencional

Com todos os seus benefícios e maravilhas, a criptografia de chave pública tem algumas limitações práticas:

  • Fornece acesso tudo ou nada aos dados criptografados: ou você descriptografa o texto simples completo ou não obtém nenhuma informação sobre o texto simples.
  • Uma vez que os dados são criptografados com a chave pública, há apenas uma única chave privada capaz de descriptografá-los.

Em 2011, D. Boneh, A. Sahai e B. Waters propuseram ir além da criptografia assimétrica convencional com sua criptografia funcional : uma nova proposta de criptografia de chave pública em que diferentes chaves de descriptografia permitem o acesso a funções nos dados com certeza . Em outras palavras, a criptografia funcional torna possível vazar deliberadamente informações sobre os dados criptografados para usuários específicos .

Em um esquema de criptografia funcional, uma chave pública, pk, é gerada com a qual qualquer usuário pode criptografar uma mensagem secreta, m, tal que c = E (pkm). E aí vem a diferença: em vez de usar uma chave de descriptografia convencional, uma chave secreta mestra , msk, é criada conhecida apenas por uma autoridade central. Quando essa autoridade recebe a descrição de uma função, f, ela deriva de msk uma chave de descriptografia funcional, dk [f], associada a f. Qualquer um que usa dk [f] para descriptografar os dados criptografados, c, em vez disso, obterá o resultado da aplicação da função f aos dados simples, f (m), mas nenhuma informação adicional sobre m. Ou seja, D (dk [f], c) = f (m). A criptografia de chave pública convencional é um caso particular de criptografia funcional em que f é a função de identidade: f (m) = m.

Aplicativos de criptografia funcional

Uma infinidade de casos de uso pode ser concebida para criptografia funcional, onde é necessária para operar em dados criptografados, mas sem vê-los :

  • Filtragem de spam: um usuário não confia em seu provedor de e-mail, mas deseja que ele limpe suas mensagens de spam. O usuário pode implementar um sistema de criptografia funcional: ele criptografa todas as suas mensagens com pk e fornece ao servidor uma chave de descriptografia funcional, dk [f], onde f é uma função de filtragem de spam que retorna 1 se uma mensagem m for spam e 0 caso contrário. O servidor usará dk [f] para verificar se uma mensagem criptografada é spam, mas sem obter nenhuma informação adicional sobre a mensagem simples.
  • Pesquisas de banco de dados: um serviço de nuvem armazena bilhões de imagens criptografadas. A Polícia quer encontrar todas as imagens que contêm o rosto de um suspeito. O servidor fornece uma chave de descriptografia funcional com a qual ele descriptografa imagens que contêm a face de destino, mas não revela nada sobre outras imagens.
  • Análise de Big Data: considere um hospital que registra os dados médicos de seus pacientes e deseja disponibilizá-los para a comunidade científica para fins de pesquisa. O hospital pode delegar o armazenamento criptografado de dados confidenciais de seus pacientes a uma nuvem pública. Ele pode, então, gerar chaves de descriptografia funcionais que distribui aos pesquisadores, permitindo-lhes calcular diferentes funções estatísticas nos dados, sem nunca revelar os registros individuais dos pacientes.
  • Aprendizado de máquina em dados criptografados: após treinar um classificador em um conjunto de dados claro, uma chave de descriptografia funcional associada a este classificador pode ser gerada e com ela classificar um conjunto de dados criptografados, para que no final apenas o resultado da classificação, sem filtrar nada nos dados do conjunto.
  • Controle de acesso: em uma grande organização, você deseja compartilhar dados entre usuários de acordo com diferentes políticas de acesso. Cada usuário pode criptografar x=(Pm), onde m são os dados que o usuário deseja compartilhar e P é a política de acesso que descreve como o usuário deseja compartilhá-los. A chave de decodificação funcional dk [f] irá verificar se as credenciais ou atributos do usuário corresponder à política e vai revelar m somente se assim. Por exemplo, a política P=(“CONTABILIDADE” OU “TI”) E “EDIFÍCIO PRINCIPAL” retornaria m para um departamento de contabilidade ou um departamento de TI com um escritório no prédio principal da organização.

Diferenças da criptografia totalmente homomórfica (FHE)

Se você está familiarizado com o conceito de criptografia totalmente homomórfica (FHE) , pode ter pensado nisso ao ler sobre criptografia funcional. A diferença entre os dois é crucial: Fully Homomorphic Encryption (FHE) executa operações nos dados criptografados e o resultado permanece criptografado. Para acessar o resultado dos cálculos dos dados criptografados, é necessário descriptografá-los, o que pode ser inconveniente dependendo de quais casos de uso. A seguinte representação esquemática ajudará a visualizar a diferença entre os dois esquemas de criptografia.

No caso de criptografia totalmente homomórfica (FHE), a função f é calculada sobre os dados criptografados e o resultado é criptografado:

E ( 1 ), E ( 2 ),…, E ( n ) -> E ( f ( 1 , 2 ,…, n ))

Enquanto com criptografia funcional, o resultado é diretamente acessível após o cálculo de f :

E ( 1 ), E ( 2 ), …, E ( n ) -> f ( 1 , 2 , …, n )

Outra diferença importante é que, no caso do FHE, qualquer pessoa pode realizar os cálculos nos dados criptografados, portanto, dado o texto criptografado do resultado, não há garantia de que os cálculos foram realizados corretamente. O FHE requer o uso de protocolos de conhecimento zero para verificar se a função correta foi avaliada. Em contrapartida, na criptografia funcional, apenas o titular da chave de descriptografia funcional pode realizar os cálculos, o que oferece maiores garantias de correção.

Segurança de criptografia funcional

Existe uma grande variedade de esquemas de cifras funcionais, baseados em diferentes dispositivos matemáticos muito complexos. Para simplificar, uma cifra funcional é considerada segura se um adversário não puder obter mais informações sobre m do que f (m). Mesmo se n partes em posse das chaves dk [f1], dk [f2], …, dk [fn], concordarem em atacar m em um ataque de conluio, elas não obterão mais informações do que f1 (m), f2 (m), …, fn (m). O nível de informação revelado no m é totalmente controlado por quem gera as chaves de descriptografia funcionais.

Criptografia de chave pública supervitaminizada e supermineralizada para um futuro na nuvem

A criptografia funcional é uma disciplina ainda muito jovem, que está recebendo um forte impulso de pesquisa devido às suas infinitas aplicações em serviços em nuvem e em IoT. Uma aplicação particularmente interessante promovida pelo projeto europeu FENTEC é a possibilidade de transferir o processo de tomada de decisão baseado em dados criptografados de ponta a ponta de sistemas back-end para alguns gateways em redes complexas, o que é chamado de tomada de decisão local . Ser capaz de permitir que os gateways façam essa tomada de decisão local é um grande passo à frente na proteção de redes IoT e outras redes altamente descentralizadas que podem querer implementar criptografia ponta a ponta, sem perder muitos recursos de tomada de decisão no nível do gateway.

Se você deseja testar a criptografia funcional, pode fazê-lo graças às várias bibliotecas publicadas pelos pesquisadores do projeto FENTEC. Você pode ir direto para o Github e começar a brincar com CiFEr , uma implementação em C, e com GoFE , implementado em Go. Você pode até mesmo testá-lo em seu navegador usando WASM.

A criptografia funcional representa mais um passo em direção a uma criptografia mais poderosa e versátil, capaz de proteger a privacidade dos usuários em casos de uso que antes eram impensáveis ​​com a criptografia convencional.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *