A criptografia sempre aparece como uma alternativa para a proteção de dados pessoais e há controvérsias para esta aplicação. Recentemente vimos surgir um novo tipo de criptografia que permite trabalhar com parte dos dados criptografados, ou seja, deixaria `aberto’ os dados supostamente não utilizados para identificação pessoal.
Veremos neste texto uma introdução à criptografia homomórfica.
Preliminares
Já adianto o que muitos estão pensando: "Mais um conceito novo que eu devo saber. Não bastassem os conceitos do mundo jurídico que evoluem todos os dias, agora tenho que assimilar esses da Computação!". Trago também um alívio: talvez não seja tanto complexo assim. Andiamo piano.
Ao mesmo tempo em que vemos muitas violações na segurança de dados pessoais podemos observar que existem também muitas pesquisas em tecnologias para incrementar a privacidade de dados, as chamadas Privacy Enhancing Technologies (PETs)1, tais como: privacidade diferencial, computação confidencial com enclaves seguros, computação multi partidária segura (MPC), aprendizagem federada e criptografia, mais especificamente criptografia homomórfica.
Neste tema de criptografia relacionada à proteção de dados e à LGPD destaco a leitura do artigo de Doneda e Machado2 como essencial para entender sob quais circunstâncias e extensões as diversas técnicas criptográficas poderiam ser vistas como técnicas de anonimização de dados, o que, no meu entender, raramente podem ser consideradas assim. Entretanto recentemente essa nova técnica criptográfica, a criptografia homomórfica, entrou no radar da Comissão Europeia de Proteção de Dados por meio de uma empresa de PETs questionando se esta técnica poderia ser adotada para a transferência de dados entre os países da UE3.
Neste artigo pretendemos rever alguns conceitos fundamentais em criptografia de dados e comentar en passant, sob quais condições seria apropriado considerar ou não a criptografia homomórfica como uma técnica de anonimização de dados.
Criptografia: conceitos básicos
É o estudo ou o emprego de técnicas para comunicação segura quando suspeitamos de um comportamento adversário, ou seja, de alguém que queira interceptar e reconhecer a informação trocada. De maneira mais geral, a criptografia trata da construção e análise de protocolos que impedem que terceiros ou o público leiam mensagens privadas. Assim temos um texto a ser criptografado, também chamado de texto puro, que depois de empregada uma técnica criptográfica passa a ser chamado de texto cifrado.
As técnicas clássicas de criptografia remetiam a dois tipos de mecanismos para encriptação do texto puro, que são: os códigos de transposição e os códigos de substituição. Vejamos um exemplo de criptografia de transposição aplicada ao texto 'migalhas de proteção': 'imaghlsa rptoçeoã'. E agora aplicando um código de substituição ao texto "migalhas de protecao": OKNJC UFGRT QVGECQ. No primeiro exemplo fica claro que a ordem dos caracteres no texto foi trocada, por exemplo, ‘casa’ foi criptografada para 'acas'. Já para o segundo exemplo substituímos uma letra para segunda letra em ordem alfabética em caixa alta, ou seja, passamos 'a' para 'C'. Além disso, todas as novas ‘palavras’ têm cinco letras. Deste modo podemos dizer que a 'chave' deste algoritmo é CDEFGHIJ...TUVXZ, ou seja, elencando as letras em ordem alfabética, substituímos cada uma com a letra da chave de acordo com sua posição nesta ordenação alfabética.
No início da II Grande Guerra o emprego massivo de criptografia exigiu o uso de métodos mecânicos e eletrônicos para criptografar. Exemplos destas máquinas ‘modernas’ são bem retratadas no filme ‘O jogo da imitação’. Este filme é baseado no romance de ‘Alan Turing: the Enigma’ de Andrew Hodges4 e retrata o período em que Alan Turing e sua equipe trabalham para desvendar os códigos secretos das máquinas criptográficas de substituição Enigma dos alemães. Esse tempo marca o início do emprego da computação na criptografia. O que tínhamos de mais moderno até 1976 era a criptografia da chave simétrica em que algoritmos sofisticados baseados em substituição e transposição funcionavam sob o emprego de chaves muito complexas. Entretanto, por mais complexo que fossem esses algoritmos e estas chaves, para se desvendar o texto puro, o original, havia a necessidade de se trocar a chave. Outro problema nasce: como trocar uma chave criptográfica.
Uma grande evolução na criptografia ocorre em 1976 quando Whitfield Diffie e Martin Hellman propuseram a noção de criptografia de chave pública, também chamada de chave assimétrica5. Esse nome indica que existem, ao menos, duas chaves distintas: uma chave é chamada de 'chave pública' e a outra de 'chave privada’. A chave pública, como o nome sugere, pode ser distribuída livremente e é a chave que transforma o texto puro no texto cifrado. Já, para desvendar o texto puro, só a chave privada tem este poder. Mais um grande avanço: o algoritmo é único, todos podem usar o mesmo algoritmo, mas com a óbvia criação de pares de chaves pública-privada distintas para cada necessidade. Atualmente as assinaturas digitais são baseadas neste esquema criptográfico de chaves assimétricas. Além deste, diversas outras aplicações usam chaves assimétricas, tais como: Bitcoins e todas as demais moedas digitais, protocolos de Internet, WhatsApp, Telegram, os navegadores web, as comunicações entre aplicativos bancários e os bancos, além de todas as comunicações web nas quais o usuário percebe um ícone de cadeado antes da URL.
Na prática
No cotidiano destas aplicações que usam criptografia não existe um modelo único de transformação de um texto puro num texto cifrado, mesmo usando essa teoria de chaves assimétricas. Ou seja, falar em criptografia implica em perguntar ‘Qual tipo de criptografia?’. Vamos tomar como exemplo o criptomodelo mais conhecido que é o RSA, um algoritmo criado por Ron Rivest, Adi Shamir e Leonard Adleman em 19776. Como outros modelos, o RSA é parametrizado, ou seja, o operador do modelo tem que especificar alguns parâmetros que irão guiar o funcionamento do algoritmo. Por exemplo, o princípio do RSA é construir chaves públicas e privadas utilizando números primos. Dependendo dos números primos que o usuário inserir mais complexas serão as chaves pública e privada e mais difícil será a reversão do texto cifrado para o texto puro. Quanto maiores forem os números mais seguro será o texto criptografado. Na prática geralmente as chaves são de 128 bits e de 256 bits. Além destes dois parâmetros, outros parâmetros internos do algoritmo podem ser alterados pois trabalham na resolução de equações matemáticas complexas.
No artigo de Doneda e Machado [2] os autores comentam sobre a necessidade de considerar estes detalhes metodológicos antes de se considerar genericamente um texto criptografado como um texto que resguarda os dados pessoais. A ICO, Information Comissioners Office, uma entidade independente do Reino Unido, que obedece a GDPR e que, por sua vez, entende a criptografia como um meio de proteção de dados pessoais, também faz considerações deste mesmo tipo na aplicação destas técnicas assimétricas7.
O Santo Graal da criptografia: A criptografia homomórfica (HE)
Será mesmo que precisamos descriptografar um texto cifrado para ter acesso à alguns de seus dados? Por exemplo, considere uma aplicação de votação. Existe uma máquina que lê nossa carteira de identidade digital para nos identificar como eleitores, registramos nosso voto na urna eletrônica e ambas as informações são criptografadas com a minha chave pública também armazenada na minha carteira de identidade digital. Usando a HE seria possível identificar em quem eu votei sem revelar a minha identidade. Bingo!
A criptografia homomórfica surgiu como o Santo Graal da criptografia8. Ela promete que podemos extrair dados selecionados de textos criptografados, ou seja, podemos deixar alguns dados `acessíveis’ e outros trancados. E como isso funciona? Será que devo saber? Penso que sim para diferenciar os que já ouviram dizer dos que já leram a respeito.
HE: como funciona
Lembram que a criptografia é realizada por meio de cálculos de funções matemáticas. Pense numa função bem simples que soma 10 em qualquer número natural. Assim, aplicando essa função, por exemplo, aos números 0, 1, 2, 3... teremos 10, 11, 12, 13... ou seja, todos os números foram transladados para valores maiores ou iguais a 10. Se antes esses números `viviam’ num espaço (0, 1, 2,...) agora eles 'vivem' num outro espaço.
Isomorfismo significa `mesma forma’. Na Matemática, o termo "homomórfico" descreve uma correspondência entre elementos de dois sistemas algébricos. Lembre-se, uma função pode levar um sistema para outro, um espaço para outro. Na criptografia homomórfica existe um homomorfismo entre as operações no texto puro e as operações no texto cifrado. Os autores do RSA já haviam pensado nesta ideia de implementar um esquema de criptografia totalmente homomórfico em 1978, mas foi só em 2009 que Craig Gentry, na sua tese de doutoramento em Stanford, desenvolveu o primeiro esquema de criptografia totalmente homomórfico.
A criptografia homomórfica é um modelo de criptografia pública. Uma chave pública é usada para criptografar dados que só podem ser descriptografados com a chave privada correspondente. Enquanto a chave pública é usada para criptografia e pode ser compartilhada, a chave privada é usada para descriptografia e deve ser mantida em segredo. Sem a chave privada, os dados criptografados podem ser trabalhados, mas não descriptografados. No entanto, a HE guarda algumas características mais sofisticadas. Por exemplo, um texto simples de criptografia homomórfica pode ser criptografado usando várias chaves num mecanismo de compartilhamento secreto, de modo que apenas as partes que conhecem todas as chaves podem descriptografar um texto cifrado. Soma-se a esta lista a possibilidade de apenas duas operações com HE, a soma (e sua contrapartida subtração) e a multiplicação. Outras operações são necessárias no cotidiano das aplicações sobre dados pessoais.
Tecnicamente hoje são possíveis apenas duas operações homomórficas usando HE, a adição e a multiplicação. Quando uma HE permite apenas uma operação é chamada Criptografia Homomórfica Parcial (PHE) e quando permite as duas é chamada Criptografia Homomórfica Total (FHE do inglês Fully Homomorphic Encryption).
HE é a solução?
Por enquanto, segundo a literatura internacional, receio que não. Embora a HE ofereça um novo patamar para a aplicação segmentada da criptografia, a HE é vulnerável a diversos tipos de ataques. Um dos motivos, como colocado acima, é porque não existe uma padronização segura na implementação dos algoritmos de HE. Alguns tipos de ataques, chamados ataques passivos já conseguiram recuperar ambas as chaves de uma HE.
Por exemplo, o WPA2 é tido como o protocolo mais seguro de acesso à redes wi-fi. Muito provavelmente você deve estar utilizando este protocolo na sua casa. Internamente o WPA2 pode utilizar o modelo de criptografia AES, Advanced Encryption Standard, que é um protocolo de criptografia padronizado nos EUA desde 2001. Essa padronização ainda não ocorreu com a HE. Essa falta de padrão pode comprometer e muito a sua utilização. Essa falta de padronização foi o requisito que barrou o uso da HE para transações de dados entre os países da UE [3].
Além deste obstáculo, a HE ainda tem que atravessar outras barreiras. A HE não é totalmente à prova de adulteração. Como a criptografia homomórfica envolve a criação de uma chave de descriptografia, a existência dessa chave no modelo cria um risco de segurança. Outra: o desempenho computacional destes algoritmos de HE é muito baixo dada sua complexidade, ou seja, são computacionalmente muito custosos, ou ainda, são lentos. A IBM diz oferecer soluções FHE mais ágeis, assim como a Google.
Fica a dica: mais um Santo Graal que promete ser a salvação para a LGPD pode, na verdade, ser mais uma grande falsa promessa nestes momentos iniciais.
Referências bibliográficas
1 DONEDA, Danilo; MACHADO, Diogo. Proteção de dados pessoais e criptografia: tecnologias criptográficas entre anonimização e pseudonimização de dados. DONEDA, Danilo; MACHADO, Diogo (Coords.). A criptografia no direito brasileiro. São Paulo: Revista dos Tribunais, 2019.
2 Comments on Recommendations 01/2020 of the European Data Protection Board (EDPB). Disponível aqui. Último acesso em 12 de outubro de 2022.
3 Encryption at a glance. Information Commisioner’s Office. Disponível aqui. Último acesso em 12 de outubro de 2022.
4 Time to adopt PETs. European Union Agency for Cybersecurity. Disponível aqui. Último acesso em 12 de outubro de 2022.
5 HODGES, Andrew. Alan Turing: the enigma. In: Alan Turing: The Enigma. Princeton University Press, 2014.
6 DIFFIE, Whitfield; HELLMAN, Martin E. Multiuser cryptographic techniques. In: Proceedings of the June 7-10, 1976, National Computer Conference and Exposition. 1976. p. 109-112.
7 RIVEST, Ronald L.; SHAMIR, Adi; ADLEMAN, Leonard. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, v. 21, n. 2, p. 120-126, 1978.
8 MOORE, Ciara et al. Practical homomorphic encryption: A survey. In: 2014 IEEE International Symposium on Circuits and Systems (ISCAS). IEEE, 2014. p. 2792-2795.