Uma breve visão geral dos métodos de software que preservam a privacidade

Uma visão geral muito breve das tecnologias de preservação da privacidade segue para quem estiver interessado em começar nesta área. Eu cubro criptografia simétrica, criptografia assimétrica, criptografia homomórfica, privacidade diferencial e computação multipartidária segura.

Criptografia simétrica

O que é? Uma nomenclatura alternativa para criptografia simétrica é a criptografia de chave privada, o que significa que tanto a criptografia quanto a descriptografia são realizadas usando a mesma chave que é mantida escondida de todos, menos das partes que querem se comunicar com segurança. Isso inclui cifras de blocos (por exemplo, AES-GCM) e algumas cifras de fluxo (por exemplo, almofadas únicas), entre outras.

O que é uma aplicação prática? Compartilhamento de arquivos (por exemplo, sobre o protocolo HTTPS) e criptografia do disco rígido.

Pró. Esquemas simétricos permitem criptografia e descriptografia mais rápidas do que os assimétricos, que serão discutidos na próxima seção. Esquemas simétricos também são matematicamente mais simples.

Con. A chave de criptografia/descriptografia deve ser trocada por um canal seguro; ou seja, um canal de comunicação onde a mensagem que está sendo enviada não pode ser lida ou adulterada

**Alguns papéis seminais
**Schneier, Bruce. “Descrição de uma nova chave de comprimento variável, cifra de bloco de 64 bits (Blowfish).” Workshop Internacional sobre Criptografia de Software Rápido. Springer, Berlim, Heidelberg, 1993.
Schneier, Bruce, et al. “Twofish: A 128 bits block cipher.” NIST AES Proposta 15 (1998): 23.
Padrão, NIST-FIPS. “Anunciando o padrão avançado de criptografia (AES).” Normas federais de processamento de informações Publicação 197 (2001): 1-51.

**https://dev.gnupg.org/source/libgcrypt/
**https://github.com/bcgit/

https://github.com/bcgit/
https://github.com/openssl/openssl https://github.com/weidai11/cryptopp https://www.wolfssl.com/products/wolfcrypt/

Criptografia assimétrica

O que é? A criptografia assimétrica também é referida como criptografia de chave pública, que inclui o criptosystem RSA e o ElGamal, entre outros. Esses esquemas exigem uma chave privada para descriptografar, mas, ao contrário de esquemas simétricos, a chave de criptografia é pública. Crucialmente, os esquemas de criptografia assimétricas permitem que duas partes troquem com segurança as chaves necessárias (por exemplo, para comunicação futura garantida usando criptografia simétrica) sem se preocupar com o nível de segurança do canal de troca [1].

O que é uma aplicação prática? Esquemas assimétricos e simétricos são comumente combinados para fornecer o melhor dos dois mundos. Um remetente pode criptografar uma chave secreta para uma cifra simétrica usando a chave pública de um receptor e, em seguida, enviar a chave criptografada para o receptor, que por sua vez a descriptografa. A comunicação criptografada pode então ser mais eficiente, já que tanto o remetente quanto o receptor agora têm a chave para a mesma cifra simétrica [1].

Pró. Remove a necessidade de comunicação por um canal seguro.

Con. Lento.

**Alguns papéis seminais
**Diffie, Whitfield e Martin Hellman. “Novas direções na criptografia.” IEEEtransactions on Information Theory 22.6 (1976): 644-654.
ElGamal, Taher. “Um sistema de criptografia de chave pública e um esquema de assinatura baseado em logaritmos discretos.” IEEE transações na teoria da informação 31.4 (1985): 469-472.
Koblitz, Neal. “Criptosistemas de curva elíptica.” Matemática da computação 48.177 (1987): 203-209.
Miller, Victor S. “Uso de curvas elípticas na criptografia.” Conferência sobre a teoria e aplicação de técnicas criptográficas. Springer, Berlim, Heidelberg, 1985.
Rivest, Ronald L., Adi Shamir e Leonard Adleman. “Um método para obter assinaturas digitais e criptoistemas de chave pública.” Comunicações do ACM 21.2 (1978): 120-126.

**https://dev.gnupg.org/source/libgcrypt/
**https://github.com/bcgit/

https://github.com/bcgit/
https://github.com/openssl/openssl https://github.com/weidai11/cryptopp https://www.wolfssl.com/products/wolfcrypt/

Criptografia Homomórfica

O que é? O conceito de criptografia homomórfica é dito ser inventado por Rivest et al. (1978) [2]. Usando esquemas de criptografia homomórfica, o usuário é capaz de criptografar dados e enviar os dados para um servidor não confiável que executa cálculos nos dados criptografados. Em seguida, o servidor retorna o resultado dessas computaçãos ao usuário. Finalmente, o usuário descriptografa o resultado. Esse esquema permite, por exemplo, criptografar os números 2 [ou seja, ou seja, (2)] e 3 [ou seja, e(3)] e executar e(2) + e(3), descriptografar o resultado e obter 5. Certos esquemas só podem realizar adição, outros apenas multiplicação, e outros ainda tanto a multiplicação quanto a adição. Notavelmente, o criptosistema Paillier só pode realizar adição e, portanto, é dito ser aditivamente homomórfico. Pode-se realizar apenas multiplicação usando RSA, por exemplo, tornando-a multiplicativamente homomórfica. Os esquemas de criptografia baseados em treliça são os favoritos, pois são aditivamente e multiplicativamente homomórficos, bem como com segurança quântica.

O que é uma aplicação prática? Esta tecnologia é bastante nova para aplicações comerciais. Na prática, tem sido utilizado nos setores financeiro e de saúde.

Pró. A criptografia homomórfica permite computação duplamente cega. Ou seja, um servidor é cego para os dados de um usuário e o usuário é cego para os meandros dos algoritmos do servidor.

Con. As operações não lineares devem contar com a comunicação usuário-servidor, onde os dados a serem computados são enviados ao usuário com algum ruído adicionado a ele. Em seguida, o usuário executa o cálculo e envia de volta para o servidor. Exemplos dessas operações seriam logaritmos, senos, cossenos, etc. Geralmente, um grande benefício da criptografia homomórfica são seus baixos custos de comunicação entre os usuários que desejam realizar uma computação e o servidor que a executa. Exigir a comunicação usuário-servidor para operações que de outra forma são triviais para executar limita a praticidade do HE.

**Alguns papéis seminais
**Brakerski, Zvika e Vinod Vaikuntanathan. “Criptografia totalmente homomórfica eficiente do LWE (padrão).” SIAM Journal on Computing 43.2 (2014): 831-871.
Gentry, Craig. Um esquema de criptografia totalmente homomórfico. Universidade de Stanford, 2009.
Paillier, Pascal. “Sistemas de criptoistemas de chave pública baseados em classes de residuosidade de grau composto.” Conferência Internacional sobre a Teoria e Aplicações de Técnicas Criptográficas. Springer, Berlim, Heidelberg, 1999.
Van Dijk, Marten, et al. “Criptografia totalmente homomórfica sobre os inteiros.” Conferência Internacional Anual sobre a Teoria e Aplicações de Técnicas Criptográficas. Springer, Berlim, Heidelberg, 2010.

https://github.com/shaih/HElib https://git.njit.edu/palisade/PALISADE https://github.com/iamtrask/PySEAL

https://github.com/iamtrask/PySEAL
https://github.com/tfhe/tfhe

Privacidade diferencial

O que é? A privacidade diferencial permite aprender informações gerais sobre uma população dentro de um banco de dados ou dentro de conjuntos de dados agregados sem aprender nada sobre um indivíduo específico. Um exemplo comum de uma tarefa útil para privacidade diferencial é usar um banco de dados para determinar se o tabagismo causa câncer [3]. Nessa situação, está-se descobrindo um fato geral sobre uma população (ou seja, fumantes) sem exigir detalhes individualmente identificáveis.

O que é uma aplicação prática? A Apple usa privacidade diferencial para melhorar as previsões do QuickType, bem como algumas de suas recomendações aos usuários. Resumidamente, apenas uma determinada parte das ações verdadeiras de um usuário são enviadas à Apple para treinar seus modelos. É impossível para a Apple distinguir entre a verdadeira ação de um usuário e uma ação aleatória. No entanto, a maioria das informações que recebem é precisa e, portanto, melhora as previsões [4].

Pró. O risco de identificar uma única pessoa anonimizada em um conjunto de dados pode ser quantificado com precisão em função dos parâmetros utilizados. Isso é matematicamente comprovado.

Con. Perda de precisão de dados. Quanto mais desidentificado ou barulhento for um conjunto de dados, menos útil ele se torna. Esta definitivamente não é a solução certa se for necessário respostas exatas para consultas muito específicas (por exemplo, quantas pessoas em um determinado conjunto de dados têm câncer).

**Alguns papéis seminais
**Dwork, Cynthia. “Privacidade diferencial: uma pesquisa de resultados.” Conferência Internacional sobre Teoria e Aplicações de Modelos de Computação. Springer, Berlim, Heidelberg, 2008.
Dwork, Cynthia e Aaron Roth. “Os fundamentos algorítmicos da privacidade diferencial.” Fundações e Tendências® em Ciência da Computação Teórica 9.3-4 (2014): 211-407.

https://beta.dataverse.org/custom/DifferentialPrivacyPrototype/
**de software
**https://github.com/uber/sql-differential-privacy
https://github.com/brubinstein/diffpriv

Computação multipartidária segura

O que é? Isso é usado quando várias partes têm uma parcela de dados necessária para calcular o resultado de uma função, mas não querem revelar seus dados para nenhuma das outras partes. Circuitos embaralhados, ou circuitos que escondem todas as informações que passam por eles, exceto para a saída final, são usados para MPC.

O que é uma aplicação prática? Derivando diagnósticos genômicos sem revelar genomas do paciente [5].

Pró. Custo computacional muito baixo.

Con. Pouca pesquisa feita na comparação de desempenho (<, >, ==, !=) dentro dos protocolos MPC [6].

**Alguns papéis seminais
**Beaver, Donald, Silvio Micali e Phillip Rogaway. “A complexidade redonda dos protocolos seguros.” Procedimentos do vigésimo segundo simpósio anual ACM sobre Teoria da Computação. ACM, 1990.
Ben-David, Assaf, Noam Nisan e Benny Pinkas. “FairplayMP: um sistema de computação multipartidária segura.” Procedimentos da 15ª Conferência ACM sobre Informática e segurança de comunicações. ACM, 2008.
Ben-Or, Michael, Shafi Goldwasser e Avi Wigderson. “Teoremas de completude para computação distribuída não-criptográfica tolerante a falhas.” Procedimentos do vigésimo simpósio anual ACM sobre Teoria da Computação. ACM, 1988.
Chaum, David, Claude Crépeau e Ivan Damgard. “Protocolos multipartidárias incondicionalmente seguros.” Procedimentos do vigésimo simpósio anual ACM sobre Teoria da Computação. ACM, 1988.
Goldreich, Oded, Silvio Micali e Avi Wigderson. “Como jogar qualquer jogo mental.” Processo do 19º simpósio anual de ACM sobre Teoria da Computação. ACM, 1987.


**Https://github.com/bristolcrypto/SPDZ-2 de software
**https://github.com/rdragos/awesome-mpc
https://github.com/cryptobiu/libscapi
Para uma lista mais completa: http://www.multipartycomputation.com/mpc-software

Outros softwares notáveis


https://github.com/OpenMined https://github.com/nucypher

Agradecimentos

Obrigado ao Dr. Siavash Kazemian, Kelly Langlais, Michael Chiu e Simon Emond por sua opinião sobre este post e ao Dr. Parinaz Sobhani por me contar sobre o grande caso de uso da Apple de privacidade diferencial.

Referências

Fontaine, Caroline e Fabien Galand. “Uma pesquisa de criptografia homomórfica para não especialistas.” EURASIP Journal on Information Security 2007 (2007): 15.
[2] Rivest, Ronald L., Len Adleman, e Michael L. Dertouzos. “Sobre bancos de dados e homomorfismos de privacidade.” Fundamentos da computação segura 4.11 (1978): 169-180.
[3] Dwork, Cynthia. “Privacidade diferencial: uma pesquisa de resultados.” Conferência Internacional sobre Teoria e Aplicações de Modelos de Computação. Springer, Berlim, Heidelberg, 2008.
[4] https://www.engadget.com/2016/06/14/apple-differential-privacy/
[5] http://science.sciencemag.org/content/357/6352/692
[6] Laud, Peeter e Liina Kamm, eds. Aplicações de Computação Multipartidária Segura. Vol. 13. Ios Press, 2015.


Artigo Original