
A IBM publicou o código-fonte do kit de ferramentas FHE para Linux no GitHub . Os utilitários são executados em plataformas IBM Z e x86 e são suportados pelo Ubuntu, Fedora e CentOS.
A criptografia totalmente homomórfica (FHE) há muito é considerada o Santo Graal da criptografia. A tarefa realmente parecia irreal. O tipo de criptografia FHE pressupõe a manipulação de dados criptografados por terceiros sem a possibilidade de descriptografar os próprios dados ou o resultado da manipulação.
Como isso é possível?
Como um exemplo simples, imagine que você tem um monte de e-mails e deseja usar um filtro de spam de terceiros para verificar se eles são spam. O filtro de spam funciona no servidor porque o desenvolvedor tenta manter seu algoritmo confidencial: ou ele oculta o código-fonte ou o filtro de spam depende de um banco de dados muito grande que eles não querem divulgar publicamente, pois torna o ataque mais fácil, ou ambos de outros. Não importa, o principal é que o filtro de spam funcione no servidor de qualquer maneira - e você não pode executá-lo sozinho. O que fazer em tal situação? Você também se preocupa com a confidencialidade dos seus dados e não deseja transferir o conteúdo dos e-mails para terceiros de uma forma aberta e não criptografada. É aqui que a criptografia totalmente homomórfica vem para o resgate:

Assim, o serviço mantém o algoritmo em segredo e você mantém seus dados em segredo. Mas o FHE permite que você aplique com sucesso o algoritmo a esses dados, de modo que nenhum dos lados aprenda os segredos do outro.
A criptografia totalmente homomórfica tem muitos usos, inclusive no blockchain, onde o servidor pode manipular os dados criptografados do cliente sem revelar o conteúdo das informações. Ou seja, o servidor pode atender às solicitações do cliente sem saber o que foi solicitado .
Outros usos para criptografia homomórfica:
- Protocolos de endereços ocultos mais eficientes e soluções de escalabilidade mais gerais para protocolos de privacidade, que hoje exigem que cada usuário escaneie pessoalmente todo o blockchain para transações de entrada.
- , , .
- , ( , , , ).
Em geral, existem diferentes tipos de criptografia homomórfica, alguns mais poderosos do que outros. Eles diferem nas operações que podem ser realizadas com dados criptografados.
A criptografia parcialmente homomórfica permite que você faça apenas uma operação com dados criptografados, seja adição ou multiplicação . A criptografia
parcialmente homomórfica (um tanto homomórfica) funciona totalmente apenas em um conjunto de dados limitado.
Finalmente, a criptografia totalmente homomórfica permite operações de adição e multiplicação ilimitadas em qualquer conjunto de dados.
Implementar criptografia homomórfica parcial é bastante fácil: por exemplo, a multiplicação é implementada em RSA:
, , de modo a
As curvas elípticas oferecem uma opção de dobra semelhante. Mas implementar a adição e a multiplicação ao mesmo tempo é muito mais difícil. A busca por tal esquema vem acontecendo desde 1978, quando Rivest, Adleman e Dertuzos formularam o problema e cunharam o termo "criptografia homomórfica". Por 30 anos, a existência de sistemas completamente homomórficos não foi comprovada, e o próprio Rivest decidiu que a ideia não estava sujeita a implementação.
Um grande avanço veio somente em 2009, após a publicação da tese de Ph.D. do estudante de graduação de Stanford Craig Gentry. Ele descreveu uma possível construção de um criptosistema completamente homomórfico em redes ideais . Em sua dissertação, ele também propôs uma ideia inovadora de bootstrapping .... Este truque transforma o esquema FHE parcial em um esquema de criptografia totalmente homomórfico. O método de bootstrap é mostrado no diagrama abaixo. Em suma, aqui os bits da chave privada são criptografados com a chave pública em um esquema homomórfico e publicados como uma "chave de reforço", o que permite realizar criptografia homomórfica no texto criptografado recriptografado, no qual o ruído é reduzido ao tamanho original. Ou seja, "atualizamos" o texto cifrado, como se apagássemos o erro da chave antiga.

Simplificando, o procedimento de descriptografia em si é um cálculo, portanto, pode ser implementado como um esquema homomórfico que aceita bits de texto cifrado e bits de uma chave secreta como entrada.
O esquema criptográfico de Gentry foi um grande avanço, mas introduziu um novo erro que era independente da quantidade de erro na criptografia original. O próprio autor descreveu uma solução complexa para o problema, mas o esquema melhorado de Brakerski e Vaikuntanatan, proposto em 2011 (o esquema era chamado de BGV (Brakerski-Gentry-Vaikuntanatan)) tornou-se mais bem-sucedido . Em 2013, a IBM lançou uma biblioteca criptográfica gratuita HELib com suporte para criptografia homomórfica e esquemas BGV Em janeiro de 2020, HELib versão 1.0.0 foi lançado .
Em 2013, Gentry se anunciou novamente. Com os co-autores Sahai e Waters e apresentou um esquema de criptografia homomórfico completo de terceira geração - o esquema GSW (Gentry, Sahai, Waters), que novamente usa criptografia de rede e boostrapping.
Ao longo dos anos de desenvolvimento, um conjunto completo de ferramentas com amostras integradas para IDEs foi criado com base no HELib, que funcionam fora da caixa.
A IBM lançou anteriormente ferramentas de criptografia homomórfica completas para macOS e iOS . No futuro, ele promete publicar o código-fonte da versão para Android.
A versão Linux foi lançada para fins de demonstração e funciona em um banco de dados com países europeus e suas capitais (o segundo exemplo para a indústria financeira é o reconhecimento de fraude por uma rede neural baseada em uma base criptografada de transações anônimas). Até agora, não chegou à aplicação prática da criptografia homomórfica. De acordo com oO próprio Gentry em 2009, por exemplo, processar uma consulta de pesquisa no Google caso o texto fosse criptografado exigiria cerca de um trilhão de vezes mais cálculos. No entanto, as otimizações feitas pela IBM melhoraram significativamente o desempenho da biblioteca, de modo que, em alguns anos ou décadas, ela poderá encontrar uso generalizado em aplicativos da web. A IBM afirma que a biblioteca agora pode ser executada em mainframes IBM Z.