Criptografia Homomórfica Totalmente: Introdução e Casos de Uso

AvançadoAug 22, 2024
Este artigo tem como objetivo fornecer uma visão geral de alto nível ao leitor sobre para que o FHE pode ser usado e os diferentes cenários ou configurações que aproveitam o FHE. Em um próximo post no blog, mergulharemos em mais detalhes sobre os tipos de FHE (que influenciam o tipo de cálculos que podemos realizar) e finalmente que tipo de compiladores podemos encontrar para traduzir nossos programas em operações que podem ser computadas usando FHE.
Criptografia Homomórfica Totalmente: Introdução e Casos de Uso

Quando se pensa em encriptação, as primeiras utilizações que vêm à mente são a encriptação em repouso e a encriptação durante o transporte. A primeira permite armazenar alguns dados em discos rígidos encriptados, dispositivos removíveis ou mesmo em bases de dados na nuvem, oferecendo a garantia de que apenas o proprietário legítimo pode ver ou editar o conteúdo em texto simples. A encriptação durante o transporte garante que os dados transmitidos pela Internet só são acessíveis pelos seus destinatários designados, mesmo que transitem por roteadores ou canais públicos. Ambos os cenários dependem da encriptação, com a garantia adicional de integridade de que os dados também não foram adulterados por um atacante malicioso no meio do caminho. Isso é conhecido como encriptação autenticada: uma vez que os dados são encriptados, ninguém na cadeia pode inferir qualquer único bit de dados (confidencialidade) e ninguém pode alterar o texto cifrado sem que isso seja detectado (integridade/authenticidade).

Alguns casos de uso colaborativo exigem que algum processamento não trivial seja permitido mesmo em textos cifrados. Este é o domínio das técnicas de preservação da privacidade, ou criptografia em uso, com criptografia totalmente homomórfica (FHE) sendo uma delas. Um exemplo é a votação eletrônica na nuvem: os eleitores podem, por exemplo, criptografar sua cédula, então alguma entidade no meio aggregate todas as cédulas para contar o número de votos, e apenas o resultado final seria publicado. Infelizmente, com a criptografia autenticada, a entidade no meio precisaria descriptografar todas as cédulas para realizar esse cálculo, e veria os votos individuais no claro, o que é bastante complicado. Poderíamos, em teoria, embaralhar as cédulas (alguns protocolos de votação eletrônica realmente dependem disso), mas, ao contrário das cédulas de papel, os mecanismos criptográficos tradicionais que garantem a integridade também tornam muito mais difícil desvincular uma cédula criptografada da identidade de seu remetente. Em um esquema de votação eletrônica, pode-se adicionar uma parede de hardware ao redor da entidade que conta os votos. Este é, por exemplo, o objetivo dos enclaves de execução confiáveis. Tais enclaves tornariam muito mais difícil para um atacante interagir com a entidade. Mas então uma falha no hardware pode vazar a chave de descriptografia e, ao contrário dos erros de software, as vulnerabilidades de design de hardware não podem ser corrigidas facilmente.

Para lidar com esse e outros casos de uso semelhantes, podemos usar a criptografia totalmente homomórfica (FHE). FHE é uma forma especial de criptografia que permite calcular uma função sobre os textos cifrados sem descriptografá-los e obter uma criptografia da saída da função diretamente.

Na maioria das vezes, a função f a ser avaliada é pública, portanto, a sequência de etapas de processamento para converter uma criptografia de f(x) é de conhecimento público e pode ser executada na nuvem sem envolver nenhum segredo.

Esta figura representa os 3 cenários para a votação eletrónica: na imagem mais à esquerda, uma entidade de confiança baralha e desencripta os votos individuais antes de publicar a sua adição. Devemos confiar na entidade que faz o cálculo para que a privacidade do eleitor seja preservada e os votos sejam contados corretamente. Na imagem do centro, é utilizada uma Enclave Confiável, confiável para fornecer garantias de integridade e privacidade, para realizar o mesmo cálculo. Na imagem da direita, é utilizada a encriptação homomórfica: os votos encriptados podem ser adicionados (publicamente) antes do resultado ser desencriptado. E( ) representa a operação de encriptação, enquanto D( ) denota desencriptação.

A encriptação totalmente homomórfica também é compacta, o que significa que o tamanho do bit do texto cifrado de saída e o esforço para desencriptá-lo dependem apenas do número de bits no resultado do texto simples. Não depende da cadeia de computações que foi aplicada. Isto exclui criptossistemas não compactos triviais que simplesmente concatenariam o texto cifrado de entrada de x com o código fonte de f, e deixariam o destinatário fazer todo o trabalho desencriptando x e então aplicando f.

A terceirização de FHE é frequentemente apresentada como uma alternativa às enclaves seguros, com base na dificuldade de um problema matemático em vez de em barreiras práticas. Portanto, o FHE é completamente invulnerável a ataques passivos de canal lateral, ou outras corrupções do host de nuvem. Imagine que alguém precise terceirizar algum cálculo, mas os dados são realmente sensíveis. Essa pessoa provavelmente hesitaria em usar um VM de nuvem se outra pessoa pudesse ser root na máquina. Provavelmente também hesitaria em executá-lo em um enclave como SGX, sabendo que a CPU e a memória dos hosts de nuvem são constantemente monitoradas quanto a carga, energia, temperatura. Talvez alguma informação possa ser extraída dessas medições. Essa pessoa pode ser tranquilizada pela promessa do FHE de que a extração de qualquer bit de informação requer a resolução de um problema matemático pós-quântico, independentemente de qualquer tipo de medição que possamos reunir.

Se a confidencialidade fornecida pelo esquema impede que um atacante leia qualquer bit de informação sem a chave secreta, a maleabilidade universal do FHE permite, por outro lado, que um atacante inverta qualquer bit que seja computado: em um circuito, isso seria equivalente a ataques ativos de canal lateral, onde o atacante recebe um feixe de laser mágico que pode mirar em qualquer bit. Pode parecer assustador no início, mas no FHE esses ataques correspondem a execuções desonestas das operações homomórficas. Eles podem ser evitados adicionando replicação ou redundâncias no cálculo.

A encriptação totalmente homomórfica é frequentemente apresentada de forma de chave pública. Existe:

  1. Uma chave de descriptografia: Esta é a chave mestra do criptossistema, a partir da qual todas as outras chaves podem ser derivadas. A chave de descriptografia é tipicamente gerada localmente e nunca transmitida, e a única pessoa que pode descriptografar um texto cifrado FHE é o proprietário da chave de descriptografia.
  2. Uma chave de criptografia: No modo de chave pública, quando a parte que fornece o texto cifrado inicial não é o proprietário da chave de descriptografia, esta chave de tamanho médio geralmente consiste em criptografias aleatórias de zero. Como FHE suporta funções afins, isso é suficiente para criptografar qualquer mensagem.
  3. Uma chave de avaliação: Esta chave deve ser dada a qualquer parte que vá avaliar uma função em criptogramas. Esta chave também é segura para ser publicada ou transmitida como qualquer chave pública. O tamanho da chave de avaliação varia de vazio a muito grande, dependendo se a função a ser avaliada é linear ou arbitrária.

O proprietário da chave de desencriptação é o proprietário do segredo mais sensível do criptossistema. Esta pessoa é responsável por garantir que a cadeia de operações homomórficas que foram executadas é legítima e que o texto cifrado final é seguro para desencriptar, e depois desencriptar o resultado do texto simples. Se operações maliciosas forem introduzidas na cadeia, a chave de desencriptação poderia potencialmente ser exposta no momento da desencriptação. Felizmente, as operações homomórficas podem ser feitas publicamente e verificadas.

Cenários FHE

Nesta seção, descrevemos alguns cenários em que a encriptação totalmente homomórfica pode ser usada, bem como alguns prós e contras de cada configuração.

Modo de terceirização


Nesta figura, o símbolo da chave laranja simboliza a chave de desencriptação (e seu proprietário). Os textos cifrados FHE são representados por fechaduras da mesma cor que a chave de desencriptação. As partes que contribuem com dados privados são representadas por um cilindro: aqui, apenas Alice contribui com dados privados. Do lado de Bob, a função de avaliação e a chave de avaliação são públicas, e a computação, representada por uma caixa verde, pode ser feita de forma determinística. Todos podem retraçar a computação e detectar se o texto cifrado de saída alegado está incorreto.

Este é historicamente o primeiro caso de uso que foi publicado para FHE. Tem como objetivo transformar a computação em nuvem em uma computação privada análoga a um enclave seguro, mas baseada em segurança criptográfica em vez de segurança de hardware. Nesse cenário, Alice possui alguns dados privados, mas tem capacidades de computação limitadas. Bob simula uma instância em nuvem com poder de computação muito maior. Bob não contribui com nenhum dado privado adicional. Alice pode terceirizar uma computação criptografando as entradas, Bob então avalia a função desejada (pública) de forma homomórfica e envia o resultado criptografado de volta para Alice.

Com as capacidades de hardware atuais, o modo de terceirização ainda é um pouco lento para ser usado em plena generalidade na prática – normalmente podemos contar com um fator de sobrecarga de tempo de execução de 1 milhão e uma sobrecarga de memória de 1 mil em casos de uso não lineares. No entanto, o hardware de encriptação totalmente homomórfica está sendo desenvolvido para reduzir essa diferença, como o Projeto DPRIVE da DarpaouCryptoLight.

Atualmente, o modo de terceirização é usado na prática para casos de uso de PIR (Recuperação de Informação Privada), onde um servidor (Bob) possui um grande banco de dados público, um cliente (Alice) emite uma consulta, e o índice que é consultado deve permanecer privado. Tais esquemas de PIR se beneficiam muito da linearidade e compacidade das operações encriptadas homomórficas, enquanto a pequena profundidade multiplicativa dos circuitos mantém os custos de computação dentro de limites razoáveis.

Esta tabela resume os prós e contras do modo de terceirização.

Modo de Computação de Duas Partes

Esta figura utiliza a mesma codificação de cores como anteriormente. Desta vez, Bob contribui para o cálculo com alguns dados privados. O cálculo do lado de Bob já não é publicamente verificável, simbolizado por uma caixa vermelha, este modo deve ser restrito a casos de uso honestos, mas curiosos.

Nesta nova configuração, a única diferença é que Bob contribui para o cálculo com alguns dados privados. Neste caso, FHE é uma boa solução de computação de duas partes, com comunicação mínima, e oferece fortes garantias do lado do consultante: Bob não aprende nada sobre os dados de Alice, e Alice aprende o resultado do cálculo.

Uma aplicação potencial para este cenário seria o problema dos milionários, onde Alice e Bob são dois milionários que querem saber quem é mais rico sem revelar a sua riqueza à outra parte. As soluções para este problema são usadas em aplicações de comércio eletrónico.

Modo de Agregação

Esta é uma refinamento do modo de terceirização, onde dados de muitos participantes podem ser agregados de forma compacta (no sentido de que a saída não cresce com a quantidade de participantes) e de forma publicamente verificável. Os usos típicos incluem aprendizagem federada e e-votação.

Modo Cliente-Servidor

Esta configuração é um refinamento do modo de cálculo de duas partes, onde a parte de cálculo agora fornece um serviço de cálculo seguro para vários clientes, que têm sua própria chave secreta. A FHE pode, por exemplo, ser usada como um serviço de previsão de modelo privado (por exemplo, um serviço de ML com um modelo e entradas privadas): o servidor possui o modelo privado (privado, mas em texto simples) e cada cliente possui seus próprios dados e deseja executar uma previsão. Como resultado, cada cliente obtém sua própria previsão criptografada, com sua própria chave secreta.

Como a criptografia homomórfica garante que a função calculada é legítima?

É sempre mais fácil utilizar a encriptação totalmente homomórfica em cenários colaborativos onde cada participante tem um incentivo para seguir o protocolo honestamente. A encriptação totalmente homomórfica pode, por exemplo, ser usada para calcular estatísticas entre duas entidades legais do mesmo grupo em dois países diferentes: regulamentos como o GDPR permitem que algumas estatísticas sejam publicadas, mas impedem geralmente a recolha de todos os dados individuais no mesmo local. Neste caso, usar a encriptação totalmente homomórfica é possível e todos os participantes têm um incentivo para seguir o protocolo honestamente. Num cenário não colaborativo, a maneira mais fácil de garantir que a função relevante foi calculada é introduzir redundância. Por exemplo, nos cenários de outsourcing e agregação, os cálculos homomórficos são completamente públicos e podem ser tornados determinísticos. Desde que duas ou mais entidades independentes acabem com o mesmo texto cifrado de saída, então o cálculo está correto e o resultado é seguro para desencriptar. Quanto mais redundância, maior a confiança que podemos ter no resultado, o que é, claro, um compromisso com a eficiência.

Além disso, quando a parte de cálculo garante um resultado FHE assinando digitalmente os textos cifrados de entrada e saída, todos podem refazer o mesmo cálculo FHE e verificar se a prova é válida. Qualquer tentativa de fraude pela parte de cálculo FHE pode ser publicamente identificada e associada a um certificado publicamente verificável que expõe a fraude e o fraudador - chamamos a esse modelo de modelo de segurança encoberta forte.

Assinaturas totalmente homomórficassão outra forma de verificar a correção de uma computação, sem a necessidade de um verificador independente, mas geralmente requer muito mais recursos.

Como é que a encriptação totalmente homomórfica garante que o destinatário final desencripta apenas o resultado final e não as variáveis intermédias?

A forma mais simples de fazer isso é garantir que o proprietário da chave de descriptografia não tenha acesso a nenhum texto cifrado intermediário.

No cenário de duas partes, ou no cliente-servidor, Alice cifra a entrada, Bob faz o cálculo sobre os textos cifrados e transmite o resultado cifrado de volta para Alice. É claro que Alice só poderá decifrar o resultado, ela não tem acesso a nenhuma outra variável.

Num cenário de agregação de nuvem, como a votação eletrónica, onde muitos participantes enviam boletins de voto encriptados numa nuvem comum, é usada outra técnica: a chave de desencriptação em geral não é dada a um único destinatário, mas sim partilhada em segredo entre diferentes membros de uma autoridade de desencriptação. Neste caso, a desencriptação só pode ser desencadeada num determinado texto cifrado através da execução de uma computação multipartidária, que envolve comunicação online entre os membros da autoridade. Se um membro se recusar a desencriptar um texto cifrado, a desencriptação é impossível. Isto garante que apenas os textos cifrados acordados por todos os membros da autoridade podem ser desencriptados.

Os Blocos de Construção da Criptografia Homomórfica

Existem três tipos de criptografia homomórfica: criptografia homomórfica parcial (PHE), criptografia homomórfica nivelada (LHE) e criptografia homomórfica totalmente homomórfica (FHE). A criptografia homomórfica parcial só nos permite calcular um conjunto restrito de funções (por exemplo, apenas uma soma, apenas funções lineares, apenas funções bilineares), enquanto a criptografia homomórfica nivelada e totalmente homomórfica podem avaliar circuitos arbitrários ou, equivalentemente, funções cujos fluxos de controle são independentes dos dados. No caso da LHE, os parâmetros criptográficos dependem da função e aumentam com a complexidade do circuito, resultando em cifras e chaves maiores. Os esquemas FHE permitem, para um conjunto dado de parâmetros, e assim para um tamanho de chave e cifra dado, que avaliemos qualquer função que possa ser representada como um circuito com Gates aritméticos ou binários. Ou seja, ao contrário da LHE, mesmo que o circuito a avaliar cresça cada vez mais, os parâmetros do esquema (e chaves e cifras) não aumentam.

Em outras palavras, quando se pergunta se um determinado circuito de texto simples pode ser executado de forma homomórfica e qual o custo (em tempo e sobrecarga de memória), a criptografia homomórfica parcial pode responder negativamente à pergunta. A criptografia homomórfica limitada responde afirmativamente, mas pode estabelecer um custo arbitrariamente alto para circuitos complexos. Já a criptografia homomórfica totalmente responde afirmativamente e, além disso, fornece as chaves, algoritmos de criptografia e descriptografia, e como avaliar homomorficamente um conjunto universal de portas antes mesmo de especificar o circuito de texto simples. Portanto, a criptografia homomórfica totalmente é o único modo que garante que a memória e o tempo de execução da avaliação homomórfica permaneçam proporcionais ao circuito de texto simples original. Para isso, todos os esquemas de criptografia homomórfica totalmente conhecidos lidam com textos simples ruidosos que ficam cada vez mais ruidosos à medida que as computações são feitas. Para evitar que o ruído transborde para a computação realizada e leve a erros de descriptografia, esses esquemas realizam regularmente uma operação bastante custosa chamada de recuperação, que reduz o ruído de volta a um nível gerenciável. Mais sobre os detalhes de cada tipo de esquema, sobre a recuperação e como minimizar o ruído e outros custos com os compiladores de criptografia homomórfica totalmente, no segundo post desta série.

Aviso legal:

  1. Este artigo é reproduzido de [cryptographycaffe], Todos os direitos autorais pertencem ao autor original [ Nicolas Gama e Sandra Guasch]. Se houver objeções a esta reimpressão, entre em contato com oGate Learnequipa, e eles vão tratar disso prontamente.
  2. Isenção de responsabilidade: As opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, é proibida a cópia, distribuição ou plágio dos artigos traduzidos.

Criptografia Homomórfica Totalmente: Introdução e Casos de Uso

AvançadoAug 22, 2024
Este artigo tem como objetivo fornecer uma visão geral de alto nível ao leitor sobre para que o FHE pode ser usado e os diferentes cenários ou configurações que aproveitam o FHE. Em um próximo post no blog, mergulharemos em mais detalhes sobre os tipos de FHE (que influenciam o tipo de cálculos que podemos realizar) e finalmente que tipo de compiladores podemos encontrar para traduzir nossos programas em operações que podem ser computadas usando FHE.
Criptografia Homomórfica Totalmente: Introdução e Casos de Uso

Quando se pensa em encriptação, as primeiras utilizações que vêm à mente são a encriptação em repouso e a encriptação durante o transporte. A primeira permite armazenar alguns dados em discos rígidos encriptados, dispositivos removíveis ou mesmo em bases de dados na nuvem, oferecendo a garantia de que apenas o proprietário legítimo pode ver ou editar o conteúdo em texto simples. A encriptação durante o transporte garante que os dados transmitidos pela Internet só são acessíveis pelos seus destinatários designados, mesmo que transitem por roteadores ou canais públicos. Ambos os cenários dependem da encriptação, com a garantia adicional de integridade de que os dados também não foram adulterados por um atacante malicioso no meio do caminho. Isso é conhecido como encriptação autenticada: uma vez que os dados são encriptados, ninguém na cadeia pode inferir qualquer único bit de dados (confidencialidade) e ninguém pode alterar o texto cifrado sem que isso seja detectado (integridade/authenticidade).

Alguns casos de uso colaborativo exigem que algum processamento não trivial seja permitido mesmo em textos cifrados. Este é o domínio das técnicas de preservação da privacidade, ou criptografia em uso, com criptografia totalmente homomórfica (FHE) sendo uma delas. Um exemplo é a votação eletrônica na nuvem: os eleitores podem, por exemplo, criptografar sua cédula, então alguma entidade no meio aggregate todas as cédulas para contar o número de votos, e apenas o resultado final seria publicado. Infelizmente, com a criptografia autenticada, a entidade no meio precisaria descriptografar todas as cédulas para realizar esse cálculo, e veria os votos individuais no claro, o que é bastante complicado. Poderíamos, em teoria, embaralhar as cédulas (alguns protocolos de votação eletrônica realmente dependem disso), mas, ao contrário das cédulas de papel, os mecanismos criptográficos tradicionais que garantem a integridade também tornam muito mais difícil desvincular uma cédula criptografada da identidade de seu remetente. Em um esquema de votação eletrônica, pode-se adicionar uma parede de hardware ao redor da entidade que conta os votos. Este é, por exemplo, o objetivo dos enclaves de execução confiáveis. Tais enclaves tornariam muito mais difícil para um atacante interagir com a entidade. Mas então uma falha no hardware pode vazar a chave de descriptografia e, ao contrário dos erros de software, as vulnerabilidades de design de hardware não podem ser corrigidas facilmente.

Para lidar com esse e outros casos de uso semelhantes, podemos usar a criptografia totalmente homomórfica (FHE). FHE é uma forma especial de criptografia que permite calcular uma função sobre os textos cifrados sem descriptografá-los e obter uma criptografia da saída da função diretamente.

Na maioria das vezes, a função f a ser avaliada é pública, portanto, a sequência de etapas de processamento para converter uma criptografia de f(x) é de conhecimento público e pode ser executada na nuvem sem envolver nenhum segredo.

Esta figura representa os 3 cenários para a votação eletrónica: na imagem mais à esquerda, uma entidade de confiança baralha e desencripta os votos individuais antes de publicar a sua adição. Devemos confiar na entidade que faz o cálculo para que a privacidade do eleitor seja preservada e os votos sejam contados corretamente. Na imagem do centro, é utilizada uma Enclave Confiável, confiável para fornecer garantias de integridade e privacidade, para realizar o mesmo cálculo. Na imagem da direita, é utilizada a encriptação homomórfica: os votos encriptados podem ser adicionados (publicamente) antes do resultado ser desencriptado. E( ) representa a operação de encriptação, enquanto D( ) denota desencriptação.

A encriptação totalmente homomórfica também é compacta, o que significa que o tamanho do bit do texto cifrado de saída e o esforço para desencriptá-lo dependem apenas do número de bits no resultado do texto simples. Não depende da cadeia de computações que foi aplicada. Isto exclui criptossistemas não compactos triviais que simplesmente concatenariam o texto cifrado de entrada de x com o código fonte de f, e deixariam o destinatário fazer todo o trabalho desencriptando x e então aplicando f.

A terceirização de FHE é frequentemente apresentada como uma alternativa às enclaves seguros, com base na dificuldade de um problema matemático em vez de em barreiras práticas. Portanto, o FHE é completamente invulnerável a ataques passivos de canal lateral, ou outras corrupções do host de nuvem. Imagine que alguém precise terceirizar algum cálculo, mas os dados são realmente sensíveis. Essa pessoa provavelmente hesitaria em usar um VM de nuvem se outra pessoa pudesse ser root na máquina. Provavelmente também hesitaria em executá-lo em um enclave como SGX, sabendo que a CPU e a memória dos hosts de nuvem são constantemente monitoradas quanto a carga, energia, temperatura. Talvez alguma informação possa ser extraída dessas medições. Essa pessoa pode ser tranquilizada pela promessa do FHE de que a extração de qualquer bit de informação requer a resolução de um problema matemático pós-quântico, independentemente de qualquer tipo de medição que possamos reunir.

Se a confidencialidade fornecida pelo esquema impede que um atacante leia qualquer bit de informação sem a chave secreta, a maleabilidade universal do FHE permite, por outro lado, que um atacante inverta qualquer bit que seja computado: em um circuito, isso seria equivalente a ataques ativos de canal lateral, onde o atacante recebe um feixe de laser mágico que pode mirar em qualquer bit. Pode parecer assustador no início, mas no FHE esses ataques correspondem a execuções desonestas das operações homomórficas. Eles podem ser evitados adicionando replicação ou redundâncias no cálculo.

A encriptação totalmente homomórfica é frequentemente apresentada de forma de chave pública. Existe:

  1. Uma chave de descriptografia: Esta é a chave mestra do criptossistema, a partir da qual todas as outras chaves podem ser derivadas. A chave de descriptografia é tipicamente gerada localmente e nunca transmitida, e a única pessoa que pode descriptografar um texto cifrado FHE é o proprietário da chave de descriptografia.
  2. Uma chave de criptografia: No modo de chave pública, quando a parte que fornece o texto cifrado inicial não é o proprietário da chave de descriptografia, esta chave de tamanho médio geralmente consiste em criptografias aleatórias de zero. Como FHE suporta funções afins, isso é suficiente para criptografar qualquer mensagem.
  3. Uma chave de avaliação: Esta chave deve ser dada a qualquer parte que vá avaliar uma função em criptogramas. Esta chave também é segura para ser publicada ou transmitida como qualquer chave pública. O tamanho da chave de avaliação varia de vazio a muito grande, dependendo se a função a ser avaliada é linear ou arbitrária.

O proprietário da chave de desencriptação é o proprietário do segredo mais sensível do criptossistema. Esta pessoa é responsável por garantir que a cadeia de operações homomórficas que foram executadas é legítima e que o texto cifrado final é seguro para desencriptar, e depois desencriptar o resultado do texto simples. Se operações maliciosas forem introduzidas na cadeia, a chave de desencriptação poderia potencialmente ser exposta no momento da desencriptação. Felizmente, as operações homomórficas podem ser feitas publicamente e verificadas.

Cenários FHE

Nesta seção, descrevemos alguns cenários em que a encriptação totalmente homomórfica pode ser usada, bem como alguns prós e contras de cada configuração.

Modo de terceirização


Nesta figura, o símbolo da chave laranja simboliza a chave de desencriptação (e seu proprietário). Os textos cifrados FHE são representados por fechaduras da mesma cor que a chave de desencriptação. As partes que contribuem com dados privados são representadas por um cilindro: aqui, apenas Alice contribui com dados privados. Do lado de Bob, a função de avaliação e a chave de avaliação são públicas, e a computação, representada por uma caixa verde, pode ser feita de forma determinística. Todos podem retraçar a computação e detectar se o texto cifrado de saída alegado está incorreto.

Este é historicamente o primeiro caso de uso que foi publicado para FHE. Tem como objetivo transformar a computação em nuvem em uma computação privada análoga a um enclave seguro, mas baseada em segurança criptográfica em vez de segurança de hardware. Nesse cenário, Alice possui alguns dados privados, mas tem capacidades de computação limitadas. Bob simula uma instância em nuvem com poder de computação muito maior. Bob não contribui com nenhum dado privado adicional. Alice pode terceirizar uma computação criptografando as entradas, Bob então avalia a função desejada (pública) de forma homomórfica e envia o resultado criptografado de volta para Alice.

Com as capacidades de hardware atuais, o modo de terceirização ainda é um pouco lento para ser usado em plena generalidade na prática – normalmente podemos contar com um fator de sobrecarga de tempo de execução de 1 milhão e uma sobrecarga de memória de 1 mil em casos de uso não lineares. No entanto, o hardware de encriptação totalmente homomórfica está sendo desenvolvido para reduzir essa diferença, como o Projeto DPRIVE da DarpaouCryptoLight.

Atualmente, o modo de terceirização é usado na prática para casos de uso de PIR (Recuperação de Informação Privada), onde um servidor (Bob) possui um grande banco de dados público, um cliente (Alice) emite uma consulta, e o índice que é consultado deve permanecer privado. Tais esquemas de PIR se beneficiam muito da linearidade e compacidade das operações encriptadas homomórficas, enquanto a pequena profundidade multiplicativa dos circuitos mantém os custos de computação dentro de limites razoáveis.

Esta tabela resume os prós e contras do modo de terceirização.

Modo de Computação de Duas Partes

Esta figura utiliza a mesma codificação de cores como anteriormente. Desta vez, Bob contribui para o cálculo com alguns dados privados. O cálculo do lado de Bob já não é publicamente verificável, simbolizado por uma caixa vermelha, este modo deve ser restrito a casos de uso honestos, mas curiosos.

Nesta nova configuração, a única diferença é que Bob contribui para o cálculo com alguns dados privados. Neste caso, FHE é uma boa solução de computação de duas partes, com comunicação mínima, e oferece fortes garantias do lado do consultante: Bob não aprende nada sobre os dados de Alice, e Alice aprende o resultado do cálculo.

Uma aplicação potencial para este cenário seria o problema dos milionários, onde Alice e Bob são dois milionários que querem saber quem é mais rico sem revelar a sua riqueza à outra parte. As soluções para este problema são usadas em aplicações de comércio eletrónico.

Modo de Agregação

Esta é uma refinamento do modo de terceirização, onde dados de muitos participantes podem ser agregados de forma compacta (no sentido de que a saída não cresce com a quantidade de participantes) e de forma publicamente verificável. Os usos típicos incluem aprendizagem federada e e-votação.

Modo Cliente-Servidor

Esta configuração é um refinamento do modo de cálculo de duas partes, onde a parte de cálculo agora fornece um serviço de cálculo seguro para vários clientes, que têm sua própria chave secreta. A FHE pode, por exemplo, ser usada como um serviço de previsão de modelo privado (por exemplo, um serviço de ML com um modelo e entradas privadas): o servidor possui o modelo privado (privado, mas em texto simples) e cada cliente possui seus próprios dados e deseja executar uma previsão. Como resultado, cada cliente obtém sua própria previsão criptografada, com sua própria chave secreta.

Como a criptografia homomórfica garante que a função calculada é legítima?

É sempre mais fácil utilizar a encriptação totalmente homomórfica em cenários colaborativos onde cada participante tem um incentivo para seguir o protocolo honestamente. A encriptação totalmente homomórfica pode, por exemplo, ser usada para calcular estatísticas entre duas entidades legais do mesmo grupo em dois países diferentes: regulamentos como o GDPR permitem que algumas estatísticas sejam publicadas, mas impedem geralmente a recolha de todos os dados individuais no mesmo local. Neste caso, usar a encriptação totalmente homomórfica é possível e todos os participantes têm um incentivo para seguir o protocolo honestamente. Num cenário não colaborativo, a maneira mais fácil de garantir que a função relevante foi calculada é introduzir redundância. Por exemplo, nos cenários de outsourcing e agregação, os cálculos homomórficos são completamente públicos e podem ser tornados determinísticos. Desde que duas ou mais entidades independentes acabem com o mesmo texto cifrado de saída, então o cálculo está correto e o resultado é seguro para desencriptar. Quanto mais redundância, maior a confiança que podemos ter no resultado, o que é, claro, um compromisso com a eficiência.

Além disso, quando a parte de cálculo garante um resultado FHE assinando digitalmente os textos cifrados de entrada e saída, todos podem refazer o mesmo cálculo FHE e verificar se a prova é válida. Qualquer tentativa de fraude pela parte de cálculo FHE pode ser publicamente identificada e associada a um certificado publicamente verificável que expõe a fraude e o fraudador - chamamos a esse modelo de modelo de segurança encoberta forte.

Assinaturas totalmente homomórficassão outra forma de verificar a correção de uma computação, sem a necessidade de um verificador independente, mas geralmente requer muito mais recursos.

Como é que a encriptação totalmente homomórfica garante que o destinatário final desencripta apenas o resultado final e não as variáveis intermédias?

A forma mais simples de fazer isso é garantir que o proprietário da chave de descriptografia não tenha acesso a nenhum texto cifrado intermediário.

No cenário de duas partes, ou no cliente-servidor, Alice cifra a entrada, Bob faz o cálculo sobre os textos cifrados e transmite o resultado cifrado de volta para Alice. É claro que Alice só poderá decifrar o resultado, ela não tem acesso a nenhuma outra variável.

Num cenário de agregação de nuvem, como a votação eletrónica, onde muitos participantes enviam boletins de voto encriptados numa nuvem comum, é usada outra técnica: a chave de desencriptação em geral não é dada a um único destinatário, mas sim partilhada em segredo entre diferentes membros de uma autoridade de desencriptação. Neste caso, a desencriptação só pode ser desencadeada num determinado texto cifrado através da execução de uma computação multipartidária, que envolve comunicação online entre os membros da autoridade. Se um membro se recusar a desencriptar um texto cifrado, a desencriptação é impossível. Isto garante que apenas os textos cifrados acordados por todos os membros da autoridade podem ser desencriptados.

Os Blocos de Construção da Criptografia Homomórfica

Existem três tipos de criptografia homomórfica: criptografia homomórfica parcial (PHE), criptografia homomórfica nivelada (LHE) e criptografia homomórfica totalmente homomórfica (FHE). A criptografia homomórfica parcial só nos permite calcular um conjunto restrito de funções (por exemplo, apenas uma soma, apenas funções lineares, apenas funções bilineares), enquanto a criptografia homomórfica nivelada e totalmente homomórfica podem avaliar circuitos arbitrários ou, equivalentemente, funções cujos fluxos de controle são independentes dos dados. No caso da LHE, os parâmetros criptográficos dependem da função e aumentam com a complexidade do circuito, resultando em cifras e chaves maiores. Os esquemas FHE permitem, para um conjunto dado de parâmetros, e assim para um tamanho de chave e cifra dado, que avaliemos qualquer função que possa ser representada como um circuito com Gates aritméticos ou binários. Ou seja, ao contrário da LHE, mesmo que o circuito a avaliar cresça cada vez mais, os parâmetros do esquema (e chaves e cifras) não aumentam.

Em outras palavras, quando se pergunta se um determinado circuito de texto simples pode ser executado de forma homomórfica e qual o custo (em tempo e sobrecarga de memória), a criptografia homomórfica parcial pode responder negativamente à pergunta. A criptografia homomórfica limitada responde afirmativamente, mas pode estabelecer um custo arbitrariamente alto para circuitos complexos. Já a criptografia homomórfica totalmente responde afirmativamente e, além disso, fornece as chaves, algoritmos de criptografia e descriptografia, e como avaliar homomorficamente um conjunto universal de portas antes mesmo de especificar o circuito de texto simples. Portanto, a criptografia homomórfica totalmente é o único modo que garante que a memória e o tempo de execução da avaliação homomórfica permaneçam proporcionais ao circuito de texto simples original. Para isso, todos os esquemas de criptografia homomórfica totalmente conhecidos lidam com textos simples ruidosos que ficam cada vez mais ruidosos à medida que as computações são feitas. Para evitar que o ruído transborde para a computação realizada e leve a erros de descriptografia, esses esquemas realizam regularmente uma operação bastante custosa chamada de recuperação, que reduz o ruído de volta a um nível gerenciável. Mais sobre os detalhes de cada tipo de esquema, sobre a recuperação e como minimizar o ruído e outros custos com os compiladores de criptografia homomórfica totalmente, no segundo post desta série.

Aviso legal:

  1. Este artigo é reproduzido de [cryptographycaffe], Todos os direitos autorais pertencem ao autor original [ Nicolas Gama e Sandra Guasch]. Se houver objeções a esta reimpressão, entre em contato com oGate Learnequipa, e eles vão tratar disso prontamente.
  2. Isenção de responsabilidade: As opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, é proibida a cópia, distribuição ou plágio dos artigos traduzidos.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!