Criptografia
Criptografia, ou criptologia, é a prática e o estudo de técnicas para comunicação segura na presença de comportamento adversário. De forma mais geral, a criptografia trata da construção e análise de protocolos que impedem terceiros ou o público de ler mensagens privadas. A criptografia moderna existe na intersecção das disciplinas de matemática, ciência da computação, segurança da informação, engenharia elétrica, processamento de sinais digitais, física e outras. Conceitos básicos relacionados à segurança da informação também são centrais para a criptografia. As aplicações práticas da criptografia incluem comércio eletrônico, cartões de pagamento baseados em chip, moedas digitais, senhas de computador e comunicações militares.
O primeiro uso do termo "criptografia" (em oposição a "criptograma") remonta ao século XIX — originário de "O Escaravelho de Ouro", uma história de Edgar Allan Poe. Até os tempos modernos, criptografia se referia quase exclusivamente à "cifragem", que é o processo de conversão de informações comuns (chamadas de textos simples) em uma forma ininteligível (chamada de texto cifrado). A decifragem é o inverso, em outras palavras, mover-se do texto cifrado ininteligível de volta para o texto simples. Uma cifra é um par de algoritmos que realizam a cifragem e a decifragem reversa. A operação detalhada de uma cifra é controlada tanto pelo algoritmo quanto, em cada instância, por uma "chave". A chave é um segredo (idealmente conhecido apenas pelos comunicantes), geralmente uma sequência de caracteres (idealmente curta para que possa ser lembrada pelo usuário), que é necessária para decifrar o texto cifrado. Em termos matemáticos formais, um "criptossistema" é a lista ordenada de elementos de textos simples finitos possíveis, textos cifrados finitos possíveis, chaves finitas possíveis e os algoritmos de cifragem e decifragem que correspondem a cada chave. Chaves são importantes tanto formalmente quanto na prática real, pois cifras sem chaves variáveis podem ser quebradas trivialmente com apenas o conhecimento da cifra usada e, portanto, são inúteis (ou até mesmo contraproducentes) para a maioria dos propósitos. Historicamente, cifras eram frequentemente usadas diretamente para cifragem ou decifragem sem procedimentos adicionais, como autenticação ou verificações de integridade.
Antes da era moderna, a criptografia focava na confidencialidade da mensagem (ou seja, cifragem) — conversão de mensagens de uma forma compreensível para uma incompreensível e de volta na outra ponta, tornando-a ilegível por interceptadores ou bisbilhoteiros sem conhecimento secreto (ou seja, a chave necessária para decifrar essa mensagem). A cifragem tentava garantir o sigilo nas comunicações, como as de espiões, líderes militares e diplomatas. Nas últimas décadas, o campo se expandiu além das preocupações com a confidencialidade para incluir técnicas de verificação de integridade de mensagens, autenticação de identidade de remetente/destinatário, assinaturas digitais, provas interativas e computação segura, entre outras.
Criptografia clássica
Os principais tipos de cifras clássicas são cifras de transposição, que reorganizam a ordem das letras em uma mensagem (por exemplo, "hello world" se torna "ehlol owrdl" em um esquema de rearranjo trivialmente simples) e cifras de substituição, que substituem sistematicamente letras ou grupos de letras por outras letras ou grupos de letras (por exemplo, "voar de uma vez" se torna "wpbs ef vnb wfa" substituindo cada letra pela seguinte no alfabeto latino). Versões simples de qualquer uma delas nunca ofereceram muita confidencialidade de oponentes empreendedores. Uma cifra de substituição inicial foi a cifra de César, na qual cada letra no texto simples era substituída por uma letra com um número fixo de posições mais abaixo no alfabeto. Suetônio relata que Júlio César a usava com um deslocamento de três para se comunicar com seus generais. A Atbash é um exemplo de uma cifra hebraica inicial. O primeiro uso conhecido da criptografia é algum texto cifrado esculpido em pedra no Egito (c. 1900 a.E.C.), mas isso pode ter sido feito para a diversão de observadores letrados e não como uma forma de ocultar informações.
Criptografia do início da era computacional
A criptoanálise dos novos dispositivos mecânicos de cifragem provou ser difícil e trabalhosa. No Reino Unido, os esforços criptoanalíticos em Bletchley Park durante a Segunda Guerra Mundial estimularam o desenvolvimento de meios mais eficientes para realizar tarefas repetitivas, como a quebra de códigos militares (decifragem). Isso culminou no desenvolvimento do Colossus, o primeiro computador totalmente eletrônico, digital e programável do mundo, que auxiliou na decifração de cifras geradas pela máquina Lorenz SZ40/42 do Exército Alemão. A extensa pesquisa acadêmica aberta sobre criptografia é relativamente recente, começando em meados da década de 1970. No início da década de 1970, o pessoal da IBM projetou o algoritmo Padrão de Cifragem de Dados (DES) que se tornou o primeiro padrão de criptografia do governo federal nos Estados Unidos. Em 1976, Whitfield Diffie e Martin Hellman publicaram o algoritmo de troca de chaves de Diffie e Hellman. Em 1977, o algoritmo de RSA foi publicado na coluna de Martin Gardner na Scientific American. Desde então, a criptografia se tornou uma ferramenta amplamente usada em comunicações, redes de computadores e segurança de computadores em geral.
Antes do início do século XX, a criptografia estava principalmente preocupada com padrões linguísticos e lexicográficos. Desde então, a criptografia ampliou seu escopo e agora faz uso extensivo de subdisciplinas matemáticas, incluindo teoria da informação, complexidade computacional, estatística, combinatória, álgebra abstrata, teoria dos números e matemática finita. A criptografia também é um ramo da engenharia, mas incomum, pois lida com oposição ativa, inteligente e malévola; outros tipos de engenharia (por exemplo, engenharia civil ou química) precisam lidar apenas com forças naturais neutras. Há também pesquisas ativas examinando a relação entre problemas criptográficos e física quântica. Assim como o desenvolvimento de computadores digitais e eletrônicos ajudou na criptoanálise, tornou possível cifras muito mais complexas. Além disso, os computadores permitiram a cifragem de qualquer tipo de dado representável em qualquer formato binário, ao contrário das cifras clássicas que cifravam apenas textos em linguagem escrita; isso era novo e significativo. O uso do computador suplantou, portanto, a criptografia linguística, tanto para o design de cifras quanto para a criptoanálise. Muitas cifras de computador podem ser caracterizadas por sua operação em sequências de bits binários (às vezes em grupos ou blocos), diferentemente de esquemas clássicos e mecânicos, que geralmente manipulam caracteres tradicionais (ou seja, letras e dígitos) diretamente. No entanto, os computadores também auxiliaram a criptoanálise, o que compensou até certo ponto a maior complexidade das cifras. No entanto, boas cifras modernas ficaram à frente da criptoanálise; é tipicamente o caso de que o uso de uma cifra de qualidade é muito eficiente (ou seja, rápido e requer poucos recursos, como memória ou capacidade de CPU), enquanto quebrá-la requer um esforço muitas ordens de magnitude maior, e muito maior do que o necessário para qualquer cifra clássica, tornando a criptoanálise tão ineficiente e impraticável a ponto de ser efetivamente impossível.
Criptografia de chave simétrica
Criptografia de chave simétrica refere-se a métodos de cifragem nos quais tanto o remetente quanto o destinatário compartilham a mesma chave (ou, menos comumente, nos quais suas chaves são diferentes, mas relacionadas de uma forma facilmente computável). Este foi o único tipo de cifragem conhecido publicamente até junho de 1976. Cifras de chave simétrica são implementadas como cifras de bloco ou cifras de fluxo. Uma cifra de bloco codifica a entrada em blocos de texto simples, em vez de em caracteres individuais, a forma de entrada usada por uma cifra de fluxo. O Padrão de Cifragem de Dados (DES) e o Padrão de Cifragem Avançada (AES) são projetos de cifras de bloco que foram designados padrões de criptografia pelo governo dos EUA (embora a designação do DES tenha sido finalmente retirada após a adoção do AES). Apesar de sua depreciação como um padrão oficial, o DES (especialmente sua variante 3DES ainda aprovada e muito mais segura) continua bastante popular; ele é usado em uma ampla gama de aplicações, desde criptografia de ATM até privacidade de e-mail e acesso remoto seguro. Muitas outras cifras de bloco foram projetadas e lançadas, com considerável variação em qualidade. Muitas, até mesmo algumas projetadas por profissionais capazes, foram completamente quebradas, como o FEAL.
Criptografia de chave pública
Os criptossistemas de chave simétrica usam a mesma chave para cifragem e decifragem de uma mensagem, embora uma mensagem ou grupo de mensagens possa ter uma chave diferente das outras. Uma desvantagem significativa das cifras simétricas é o gerenciamento de chaves necessário para usá-las com segurança. Cada par distinto de partes comunicantes deve, idealmente, compartilhar uma chave diferente, e talvez para cada texto cifrado trocado também. O número de chaves necessárias aumenta conforme o quadrado do número de membros da rede, o que muito rapidamente requer esquemas complexos de gerenciamento de chaves para mantê-los todos consistentes e secretos.
Funções de hash criptográficas
As funções de hash criptográficas são funções que recebem uma entrada de comprimento variável e retornam uma saída de comprimento fixo, que pode ser usada, por exemplo, em uma assinatura digital. Para que uma função de hash seja segura, deve ser difícil calcular duas entradas que fazem hash para o mesmo valor (resistência à colisão) e calcular uma entrada que faz hash para uma determinada saída (resistência à pré-imagem). O MD4 é uma função de hash usada há muito tempo que agora está quebrada; o MD5, uma variante reforçada do MD4, também é amplamente usada, mas quebrada na prática. A Agência de Segurança Nacional dos EUA desenvolveu a série Algoritmo de Hash Seguro (SHA) de funções de hash semelhantes ao MD5: O SHA-0 era um algoritmo falho que a agência retirou; o SHA-1 é amplamente implantado e mais seguro que o MD5, mas analistas de criptografia identificaram ataques contra ele; a família SHA-2 melhora o SHA-1, mas é vulnerável a conflitos desde de 2011; e a autoridade de padrões dos EUA achou "prudente" de uma perspectiva de segurança desenvolver um novo padrão para "melhorar significativamente a robustez do kit de ferramentas de algoritmo de hash geral do NIST." Assim, uma competição de design de função de hash foi criada para selecionar um novo padrão nacional dos EUA, a ser chamado de SHA-3, até 2012. A competição terminou em 2 de outubro de 2012, quando o NIST anunciou que Keccak seria o novo algoritmo de hash SHA-3. Ao contrário das cifras de bloco e fluxo que são invertíveis, as funções de hash criptográficas produzem uma saída com hash que não pode ser usada para recuperar os dados de entrada originais. As funções de hash criptográficas são usadas para verificar a autenticidade dos dados recuperados de uma fonte não confiável ou para adicionar uma camada de segurança.
Criptoanálise
O objetivo da criptoanálise é encontrar alguma fraqueza ou insegurança em um esquema criptográfico, permitindo assim sua subversão ou evasão. É um equívoco comum afirmar que todo método de criptografia pode ser quebrado. Em conexão com seu trabalho na Segunda Guerra Mundial na Bell Labs, Claude Shannon provou que a cifra de uso único (OTP) é inquebrável, desde que o material da chave seja verdadeiramente aleatório, nunca reutilizado, mantido em segredo de todos os possíveis invasores e de comprimento igual ou maior que a mensagem. A maioria das cifras, além das de uso único (OTP), pode ser quebrada com esforço computacional suficiente por ataque de força bruta, mas a quantidade de esforço necessária pode ser exponencialmente dependente do tamanho da chave, em comparação com o esforço necessário para fazer uso da cifra. Em tais casos, a segurança efetiva pode ser alcançada se for provado que o esforço necessário (ou seja, "fator de trabalho", nos termos de Shannon) está além da capacidade de qualquer adversário. Isso significa que deve ser demonstrado que nenhum método eficiente (ao contrário do método de força bruta demorado) pode ser encontrado para quebrar a cifra. Como nenhuma prova desse tipo foi encontrada até o momento, a cifra de uso único (OTP) continua sendo a única cifra teoricamente inquebrável. Embora a criptografia de cifra de uso único (OTP) bem implementada não possa ser quebrada, a análise de tráfego ainda é possível.
Primitivas criptográficas
Grande parte do trabalho teórico em criptografia diz respeito a primitivas criptográficas — algoritmos com propriedades criptográficas básicas — e sua relação com outros problemas criptográficos. Ferramentas criptográficas mais complicadas são então construídas a partir dessas primitivas básicas. Essas primitivas fornecem propriedades fundamentais, que são usadas para desenvolver ferramentas mais complexas chamadas sistemas criptográficos ou protocolos criptográficos, que garantem uma ou mais propriedades de segurança de alto nível. Observe, no entanto, que a distinção entre primitivas criptográficas e sistemas criptográficos é bastante arbitrária; por exemplo, o algoritmo de RSA às vezes é considerado um sistema criptográfico e às vezes uma primitiva. Exemplos típicos de primitivas criptográficas incluem funções pseudoaleatórias, funções unidirecionais, etc.
Sistemas de criptografia
Uma ou mais primitivas criptográficas são frequentemente usadas para desenvolver um algoritmo mais complexo, chamado de sistema criptográfico, ou criptossistema. Os sistemas criptográficos (por exemplo, a cifragem de El-Gamal) são projetados para fornecer funcionalidade particular (por exemplo, cifragem de chave pública) enquanto garantem certas propriedades de segurança (por exemplo, segurança de ataque de texto simples escolhido (CPA) no modelo de oráculo aleatório). Os sistemas criptográficos usam as propriedades das primitivas criptográficas subjacentes para dar suporte às propriedades de segurança do sistema. Como a distinção entre primitivas e sistemas criptográficos é um tanto arbitrária, um sistema criptográfico sofisticado pode ser derivado de uma combinação de vários sistemas criptográficos mais primitivos. Em muitos casos, a estrutura do sistema criptográfico envolve comunicação de ida e volta entre duas ou mais partes no espaço (por exemplo, entre o remetente de uma mensagem segura e seu destinatário) ou ao longo do tempo (por exemplo, dados de backups protegidos criptograficamente). Esses sistemas criptográficos são às vezes chamados de protocolos criptográficos.
A criptografia é amplamente usada na Internet para ajudar a proteger os dados de usuários e evitar espionagem. Para garantir o sigilo durante a transmissão, muitos sistemas usam criptografia de chave privada para proteger as informações transmitidas. Com sistemas de chave pública, pode-se manter o sigilo sem uma chave mestra ou um grande número de chaves. Mas, alguns algoritmos como o BitLocker e o VeraCrypt geralmente não são criptografia de chaves pública e privada. Por exemplo, o Veracrypt usa um hash de senha para gerar a chave privada somente. No entanto, ele pode ser configurado para ser executado em sistemas de chaves públicas e privadas. A biblioteca de cifragem de código aberto OpenSSL em C++ fornece software e ferramentas de cifragem livres e de código aberto. O conjunto de cifras de cifragem mais comumente usado é o AES, pois tem aceleração de hardware para todos os processadores baseados em x86 que têm AES-NI. Um concorrente próximo é o ChaCha20-Poly1305, que é uma cifra de fluxo, no entanto, é comumente usada para dispositivos móveis, pois são baseados em ARM, que não apresentam extensão de conjunto de instruções AES-NI.
Segurança cibernética
A criptografia pode ser usada para proteger as comunicações cifrando-as. Os sites usam cifragem via HTTPS. A cifragem "de ponta a ponta", onde apenas o remetente e o destinatário podem ler as mensagens, é implementada para e-mail em Privacidade Muito Boa (PGP) e para mensagens seguras em geral no WhatsApp, Signal e Telegram. Os sistemas operacionais usam cifragem para manter as senhas em segredo, ocultar partes do sistema e garantir que as atualizações de software sejam realmente do fabricante do sistema. Em vez de armazenar senhas em texto simples, os sistemas de computador armazenam hashes delas; então, quando um usuário faz login, o sistema passa a senha fornecida por uma função de hash criptográfica e a compara com o valor com hash no arquivo. Dessa maneira, nem o sistema nem um invasor têm acesso à senha em texto simples.
Criptomoedas e criptoeconomia
Técnicas criptográficas permitem tecnologias de criptomoeda, como tecnologias de razão distribuída (por exemplo, blockchains), que financiam aplicações de criptoeconomia, como finanças descentralizadas (DeFi). Técnicas criptográficas essenciais que permitem criptomoedas e criptoeconomia incluem, mas não estão limitadas a: chaves criptográficas, função de hash criptográfica, cifragem assimétrica (chave pública), autenticação multifatorial (MFA), cifragem ponta a ponta (E2EE) e provas de conhecimento zero (ZKP).
Proibições
A criptografia tem sido de interesse para agências de coleta de inteligência e de aplicação da lei. Comunicações secretas podem ser criminosas ou até mesmo traidoras. Devido à sua facilitação de privacidade e à diminuição de privacidade associada à sua proibição, a criptografia também é de interesse considerável para os defensores dos direitos civis. Consequentemente, há um histórico de questões legais controversas em torno da criptografia, especialmente desde que o advento de computadores baratos tornou possível o acesso generalizado à criptografia de alta qualidade. Em alguns países, até mesmo o uso doméstico da criptografia é, ou foi, restrito. Até 1999, a França restringia significativamente o uso de criptografia internamente, embora tenha relaxado muitas dessas regras desde então. Na China e no Irã, uma licença ainda é necessária para usar criptografia. Muitos países têm restrições rígidas ao uso da criptografia. Entre as mais restritivas estão as leis da Bielorrússia, Cazaquistão, Mongólia, Paquistão, Cingapura, Tunísia e Vietnã.
Controles de exportação
Na década de 1990, houve vários desafios à regulamentação de exportação de criptografia dos EUA. Depois que o código-fonte do programa de criptografia Privacidade Muito Boa (PGP) de Philip Zimmermann chegou à Internet em junho de 1991, uma reclamação da RSA Security (então chamada RSA Data Security, Inc.) resultou em uma longa investigação criminal de Zimmermann pelo Serviço de Alfândega dos EUA e pelo FBI, embora nenhuma acusação tenha sido registrada. Daniel J. Bernstein, então um estudante de pós-graduação na UC Berkeley, entrou com uma ação judicial contra o governo dos EUA contestando alguns aspectos das restrições com base em fundamentos de liberdade de expressão. O caso de 1995, Bernstein versus Estados Unidos, resultou em uma decisão de 1999 de que o código-fonte impresso para algoritmos e sistemas criptográficos era protegido como liberdade de expressão pela Constituição dos Estados Unidos.
Envolvimento da NSA
Outra questão controversa relacionada à criptografia nos Estados Unidos é a influência da Agência de Segurança Nacional (NSA) no desenvolvimento e na política de cifras. A NSA esteve envolvida com o design do DES durante seu desenvolvimento na IBM e sua consideração pelo Escritório Nacional de Padrões como um possível Padrão Federal para criptografia. O DES foi projetado para ser resistente à criptoanálise diferencial, uma técnica criptoanalítica poderosa e geral conhecida pela NSA e pela IBM, que se tornou publicamente conhecida apenas quando foi redescoberta no final da década de 1980. De acordo com Steven Levy, a IBM descobriu a criptoanálise diferencial, mas manteve a técnica em segredo a pedido da NSA. A técnica se tornou publicamente conhecida apenas quando Biham e Shamir a redescobriram e anunciaram alguns anos depois. Todo o caso ilustra a dificuldade de determinar quais recursos e conhecimento um invasor pode realmente ter.
Gestão de direitos digitais
A criptografia é central para o gerenciamento de direitos digitais (DRM), um grupo de técnicas para controlar tecnologicamente o uso de material protegido por direitos autorais, sendo amplamente implementado e implantado a pedido de alguns detentores de direitos autorais. Em 1998, o presidente dos EUA Bill Clinton assinou a Lei de Direitos Autorais do Milênio Digital (DMCA), que criminalizou toda a produção, disseminação e uso de certas técnicas e tecnologias criptoanalíticas (agora conhecidas ou descobertas posteriormente); especificamente, aquelas que poderiam ser usadas para contornar esquemas tecnológicos de DRM. Isso teve um impacto notável na comunidade de pesquisa em criptografia, pois pode-se argumentar que qualquer pesquisa criptoanalítica violava o DMCA. Estatutos semelhantes foram promulgados em vários países e regiões, incluindo a implementação na Diretiva de Direitos Autorais da UE. Restrições semelhantes são exigidas por tratados assinados por estados-membros da Organização Mundial da Propriedade Intelectual.
Divulgação forçada de chaves de cifragem
No Reino Unido, a Lei de Regulamentação dos Poderes Investigativos dá à polícia do Reino Unido poderes para forçar suspeitos a decifrar arquivos ou entregar senhas que protegem chaves de cifragem. O não cumprimento é uma infração por si só, punível por condenação com uma pena de prisão de dois anos ou até cinco anos em casos envolvendo segurança nacional. Processos bem-sucedidos ocorreram sob a Lei; o primeiro, em 2009, resultou em uma pena de 13 meses de prisão. Leis semelhantes de divulgação forçada na Austrália, Finlândia, França e Índia obrigam suspeitos individuais sob investigação a entregar chaves de cifragem ou senhas durante uma investigação criminal.


