Criptografia - Encryption

Na criptografia , a criptografia é o processo de codificação de informações. Esse processo converte a representação original da informação, conhecida como texto simples , em uma forma alternativa conhecida como texto cifrado . Idealmente, apenas partes autorizadas podem decifrar um texto cifrado em texto simples e acessar as informações originais. A criptografia não evita a interferência, mas nega o conteúdo inteligível a um suposto interceptador.

Por razões técnicas, um esquema de criptografia geralmente usa uma chave de criptografia pseudo-aleatória gerada por um algoritmo . É possível descriptografar a mensagem sem possuir a chave, mas, para um esquema de criptografia bem projetado, recursos computacionais consideráveis ​​e habilidades são necessários. Um destinatário autorizado pode descriptografar facilmente a mensagem com a chave fornecida pelo originador aos destinatários, mas não a usuários não autorizados.

Historicamente, várias formas de criptografia têm sido usadas para auxiliar na criptografia. As primeiras técnicas de criptografia eram frequentemente utilizadas em mensagens militares. Desde então, novas técnicas surgiram e se tornaram comuns em todas as áreas da computação moderna. Esquemas de criptografia modernos utilizam os conceitos de chave pública e de chave simétrica . As técnicas de criptografia modernas garantem a segurança porque os computadores modernos são ineficientes para quebrar a criptografia.

História

Ancestral

Uma das primeiras formas de criptografia é a substituição de símbolos, que foi encontrada pela primeira vez na tumba de Khnumhotep II, que viveu em 1900 aC no Egito. A criptografia de substituição de símbolo é “fora do padrão”, o que significa que os símbolos requerem uma cifra ou chave para serem compreendidos. Este tipo de criptografia primitiva foi usado em toda a Grécia Antiga e Roma para fins militares. Um dos mais famosos desenvolvimentos de criptografia militar foi a Cifra de César, um sistema no qual uma letra em um texto normal é deslocada para baixo em um número fixo de posições abaixo do alfabeto para obter a letra codificada. Uma mensagem codificada com este tipo de criptografia pode ser decodificada com o número fixo na Cifra de César.

Por volta de 800 DC, o matemático árabe Al-Kindi desenvolveu a técnica de análise de frequência - que era uma tentativa de quebrar sistematicamente as cifras de César. Essa técnica analisou a frequência das letras na mensagem criptografada para determinar a mudança apropriada. Essa técnica tornou-se ineficaz após a criação da cifra polialfabética por Leone Alberti em 1465, que incorporou diferentes conjuntos de línguas. Para que a análise de frequência seja útil, a pessoa que tenta descriptografar a mensagem precisa saber qual idioma o remetente escolheu.

Século 19 a 20

Por volta de 1790, Thomas Jefferson teorizou uma cifra para codificar e decodificar mensagens a fim de fornecer uma forma mais segura de correspondência militar. A cifra, conhecida hoje como Wheel Cipher ou Jefferson Disk , embora nunca tenha sido construída, foi teorizada como um carretel que poderia embaralhar uma mensagem em inglês de até 36 caracteres. A mensagem pode ser descriptografada conectando-se a mensagem confusa a um receptor com uma cifra idêntica.

Um dispositivo semelhante ao Jefferson Disk, o M-94 , foi desenvolvido em 1917 de forma independente pelo Major do Exército dos Estados Unidos Joseph Mauborne. Este dispositivo foi usado nas comunicações militares dos EUA até 1942.

Na Segunda Guerra Mundial, as potências do Eixo usaram uma versão mais avançada do M-94, chamada de Máquina Enigma . A Enigma Machine era mais complexa porque, ao contrário da Jefferson Wheel e da M-94, a cada dia a confusão de letras mudava para uma combinação completamente nova. A combinação de cada dia era conhecida apenas pelo Eixo, então muitos pensaram que a única maneira de quebrar o código seria tentar mais de 17.000 combinações em 24 horas. Os Aliados usaram poder de computação para limitar severamente o número de combinações razoáveis ​​que eles precisavam verificar todos os dias, levando à quebra da Máquina Enigma.

Moderno

Hoje, a criptografia é usada na transferência de comunicação pela Internet para segurança e comércio. À medida que o poder da computação continua a aumentar, a criptografia do computador está em constante evolução para evitar ataques.

Criptografia em criptografia

No contexto da criptografia, a criptografia serve como um mecanismo para garantir a confidencialidade . Como os dados podem ser visíveis na Internet, informações confidenciais, como senhas e comunicação pessoal, podem ser expostas a interceptadores em potencial . O processo de criptografar e descriptografar mensagens envolve chaves . Os dois principais tipos de chaves em sistemas criptográficos são chave simétrica e chave pública (também conhecida como chave assimétrica).

Muitos algoritmos criptográficos complexos costumam usar aritmética modular simples em suas implementações.

Tipos

Chave simétrica

Em esquemas de chave simétrica , as chaves de criptografia e descriptografia são as mesmas. As partes que se comunicam devem ter a mesma chave para obter uma comunicação segura. A Máquina Enigma alemã utilizava uma nova chave simétrica a cada dia para codificar e decodificar mensagens.

Chave pública

Ilustração de como a criptografia é usada nos servidores . Criptografia de chave pública .

Em esquemas de criptografia de chave pública , a chave de criptografia é publicada para que qualquer pessoa use e criptografe as mensagens. No entanto, apenas a parte receptora tem acesso à chave de descriptografia que permite a leitura das mensagens. A criptografia de chave pública foi descrita pela primeira vez em um documento secreto em 1973; antes, todos os esquemas de criptografia eram de chave simétrica (também chamada de chave privada). Embora publicado posteriormente, o trabalho de Diffie e Hellman foi publicado em uma revista com um grande número de leitores, e o valor da metodologia foi explicitamente descrito. O método ficou conhecido como troca de chaves Diffie-Hellman .

RSA (Rivest – Shamir – Adleman) é outro sistema criptográfico de chave pública notável . Criado em 1978, ainda hoje é usado para aplicações que envolvem assinaturas digitais . Usando a teoria dos números , o algoritmo RSA seleciona dois números primos , que ajudam a gerar as chaves de criptografia e descriptografia.

Um aplicativo de criptografia de chave pública disponível ao público chamado Pretty Good Privacy (PGP) foi escrito em 1991 por Phil Zimmermann e distribuído gratuitamente com o código-fonte. O PGP foi comprado pela Symantec em 2010 e é atualizado regularmente.

Usos

A criptografia tem sido usada por militares e governos para facilitar a comunicação secreta. Agora é comumente usado na proteção de informações em muitos tipos de sistemas civis. Por exemplo, o Computer Security Institute relatou que, em 2007, 71% das empresas pesquisadas utilizaram criptografia para alguns de seus dados em trânsito e 53% utilizaram criptografia para alguns de seus dados armazenados. A criptografia pode ser usada para proteger dados "em repouso", como informações armazenadas em computadores e dispositivos de armazenamento (por exemplo, unidades flash USB ). Nos últimos anos, houve vários relatos de dados confidenciais, como registros pessoais de clientes, sendo expostos por meio de perda ou roubo de laptops ou unidades de backup; criptografar esses arquivos em repouso ajuda a protegê-los se as medidas de segurança física falharem. Os sistemas de gerenciamento de direitos digitais , que evitam o uso não autorizado ou a reprodução de material protegido por direitos autorais e protegem o software contra engenharia reversa (consulte também proteção contra cópia ), é outro exemplo um tanto diferente do uso de criptografia em dados em repouso.

A criptografia também é usada para proteger dados em trânsito, por exemplo, dados sendo transferidos por meio de redes (por exemplo, Internet, e-commerce ), telefones celulares , microfones sem fio , sistemas de intercomunicação sem fio , dispositivos Bluetooth e caixas eletrônicos . Houve inúmeros relatos de interceptação de dados em trânsito nos últimos anos. Os dados também devem ser criptografados quando transmitidos pelas redes, a fim de proteger contra interceptação do tráfego da rede por usuários não autorizados.

Apagamento de dados

Os métodos convencionais de exclusão permanente de dados de um dispositivo de armazenamento envolvem sobrescrever todo o conteúdo do dispositivo com zeros, uns ou outros padrões - um processo que pode levar um tempo significativo, dependendo da capacidade e do tipo de meio de armazenamento. A criptografia oferece uma maneira de tornar o apagamento quase instantâneo. Este método é denominado cripto-fragmentação . Um exemplo de implementação desse método pode ser encontrado em dispositivos iOS , onde a chave criptográfica é mantida em um ' armazenamento eliminável ' dedicado . Como a chave é armazenada no mesmo dispositivo, esta configuração por si só não oferece privacidade total ou proteção de segurança se uma pessoa não autorizada obtiver acesso físico ao dispositivo.

Limitações

A criptografia é usada no século 21 para proteger dados digitais e sistemas de informação. À medida que o poder da computação aumentou ao longo dos anos, a tecnologia de criptografia apenas se tornou mais avançada e segura. No entanto, esse avanço na tecnologia também expôs uma limitação potencial dos métodos de criptografia atuais.

O comprimento da chave de criptografia é um indicador da força do método de criptografia. Por exemplo, a chave de criptografia original, DES (Data Encryption Standard), era de 56 bits, o que significa que tinha 2 ^ 56 possibilidades de combinação. Com o poder da computação atual, uma chave de 56 bits não é mais segura, sendo vulnerável a hackers por ataque de força bruta . Hoje, o padrão das chaves de criptografia modernas é de até 2048 bits com o sistema RSA. Descriptografar uma chave de criptografia de 2048 bits é quase impossível devido ao número de combinações possíveis. No entanto, a computação quântica está ameaçando mudar essa natureza segura.

A computação quântica utiliza propriedades da mecânica quântica para processar grandes quantidades de dados simultaneamente. Descobriu-se que a computação quântica atinge velocidades de computação milhares de vezes mais rápidas do que os supercomputadores de hoje. Esse poder de computação representa um desafio para a tecnologia de criptografia de hoje. Por exemplo, a criptografia RSA utiliza a multiplicação de números primos muito grandes para criar um número semiprime para sua chave pública. A decodificação dessa chave sem sua chave privada requer que esse número semiprime seja fatorado, o que pode levar muito tempo para ser feito em computadores modernos. Um supercomputador levaria entre semanas a meses para levar em consideração essa chave. No entanto, a computação quântica pode usar algoritmos quânticos para fatorar esse número semiprime na mesma quantidade de tempo que os computadores normais levam para gerá-lo. Isso tornaria todos os dados protegidos pela criptografia de chave pública atual vulneráveis ​​a ataques de computação quântica. Outras técnicas de criptografia, como criptografia de curva elíptica e criptografia de chave simétrica, também são vulneráveis ​​à computação quântica.

Embora a computação quântica possa ser uma ameaça à segurança da criptografia no futuro, a computação quântica como está atualmente ainda é muito limitada. A computação quântica atualmente não está disponível comercialmente, não pode lidar com grandes quantidades de código e existe apenas como dispositivos computacionais, não como computadores. Além disso, os avanços da computação quântica também poderão ser utilizados em favor da criptografia. A National Security Agency (NSA) está atualmente preparando padrões de criptografia pós-quântica para o futuro. A criptografia quântica promete um nível de segurança que será capaz de conter a ameaça da computação quântica.

Ataques e contra-medidas

A criptografia é uma ferramenta importante, mas não é suficiente por si só para garantir a segurança ou privacidade de informações confidenciais durante sua vida útil. A maioria dos aplicativos de criptografia protege as informações apenas em repouso ou em trânsito, deixando dados confidenciais em texto não criptografado e potencialmente vulneráveis ​​à divulgação inadequada durante o processamento, como por um serviço de nuvem , por exemplo. A criptografia homomórfica e a computação multipartidária segura são técnicas emergentes de computação em dados criptografados; essas técnicas são gerais e Turing completas, mas incorrem em altos custos computacionais e / ou de comunicação.

Em resposta à criptografia de dados em repouso, os ciber-adversários desenvolveram novos tipos de ataques. Essas ameaças mais recentes à criptografia de dados em repouso incluem ataques criptográficos, ataques de texto cifrado roubados , ataques a chaves de criptografia, ataques internos , corrupção de dados ou ataques de integridade, ataques de destruição de dados e ataques de ransomware . A fragmentação de dados e as tecnologias de proteção de dados de defesa ativa tentam conter alguns desses ataques, distribuindo, movendo ou alterando o texto cifrado para que seja mais difícil de identificar, roubar, corromper ou destruir.

Proteção de integridade de textos criptografados

A criptografia, por si só, pode proteger a confidencialidade das mensagens, mas outras técnicas ainda são necessárias para proteger a integridade e a autenticidade de uma mensagem; por exemplo, verificação de um código de autenticação de mensagem (MAC) ou uma assinatura digital . Os algoritmos de criptografia autenticados são projetados para fornecer criptografia e proteção de integridade juntos. Padrões para software e hardware criptográfico para realizar a criptografia estão amplamente disponíveis, mas o uso bem-sucedido da criptografia para garantir a segurança pode ser um problema desafiador. Um único erro no design ou execução do sistema pode permitir ataques bem-sucedidos. Às vezes, um adversário pode obter informações não criptografadas sem desfazer diretamente a criptografia. Veja, por exemplo , análise de tráfego , TEMPEST ou Cavalo de Tróia .

Mecanismos de proteção de integridade, como MACs e assinaturas digitais, devem ser aplicados ao texto cifrado quando ele é criado pela primeira vez, normalmente no mesmo dispositivo usado para compor a mensagem, para proteger uma mensagem ponta a ponta ao longo de seu caminho de transmissão completo; caso contrário, qualquer nó entre o remetente e o agente de criptografia poderia interferir nele. A criptografia no momento da criação só é segura se o próprio dispositivo de criptografia tiver as chaves corretas e não tiver sido adulterado. Se um dispositivo de endpoint foi configurado para confiar em um certificado raiz que um invasor controla, por exemplo, o invasor pode inspecionar e adulterar os dados criptografados executando um ataque man-in-the-middle em qualquer lugar ao longo do caminho da mensagem. A prática comum de interceptação TLS por operadores de rede representa uma forma controlada e sancionada institucionalmente de tal ataque, mas os países também tentaram empregar tais ataques como uma forma de controle e censura.

Comprimento e preenchimento do texto cifrado

Mesmo quando a criptografia oculta corretamente o conteúdo de uma mensagem e ela não pode ser violada em repouso ou em trânsito, o comprimento de uma mensagem é uma forma de metadados que ainda pode vazar informações confidenciais sobre a mensagem. Por exemplo, os conhecidos ataques CRIME e BREACH contra HTTPS eram ataques de canal lateral que dependiam do vazamento de informações por meio do comprimento do conteúdo criptografado. A análise de tráfego é uma ampla classe de técnicas que geralmente emprega comprimentos de mensagem para inferir uma implementação confidencial sobre fluxos de tráfego, agregando informações sobre um grande número de mensagens.

O preenchimento da carga útil de uma mensagem antes de criptografá-la pode ajudar a obscurecer o verdadeiro comprimento do texto não criptografado, ao custo de aumentar o tamanho do texto cifrado e introduzir ou aumentar a sobrecarga da largura de banda . As mensagens podem ser preenchidas aleatoriamente ou deterministicamente , com cada abordagem tendo diferentes compensações. Criptografar e preencher mensagens para formar PURBs ou blobs aleatórios uniformes preenchidos é uma prática que garante que o texto cifrado não vaze metadados sobre o conteúdo de seu texto não criptografado e vaze informações assintoticamente mínimas por meio de seu comprimento.

Veja também

Referências

Leitura adicional