A criptografia em sua essência é matemática. Matemática pura, simples e não diluída. A matemática criou os algoritmos que são a base para toda a criptografia. E a criptografia é a base para a privacidade e a segurança na internet. Então, nós amamos matemática. Mesmo que seja um pouco complicado. Com isso dito, os algoritmos devem ser construídos para funcionar contra computadores. À medida que os computadores se tornam mais inteligentes, os algoritmos se tornam mais fracos e, portanto, devemos procurar novas soluções. É assim que a criptografia evolui para vencer os bandidos.

Então, como isso é feito? Primeiro, você precisa criar um sistema de criptografia que seja confidencial e autêntico. Esse criptosistema é responsável por criar a(s) chave(s) que serão usadas para criptografar e, em seguida, descriptografar os dados ou a mensagem. Vários algoritmos de assinatura foram criados ao longo dos anos para criar essas chaves, algumas das quais já foram preteridas à medida que o poder de computação aumentou.

Antes de passar por alguns dos algoritmos principais e mais populares conhecidos em criptografia, pode ser uma boa ideia recapitular alguns termos que você provavelmente encontrará muito durante este artigo.

Ataque de Força Bruta

Um ataque de força bruta ou um ataque de dicionário, como também é conhecido, é um método de tentativa e erro de obter a chave privada de um pacote criptografado de dados. A tentativa e erro é feita por um computador, portanto, quanto maior o poder computacional, mais “tentativas” ele pode ter em um curto espaço de tempo. À medida que o poder de computação e o desempenho aumentam, a capacidade de encontrar a chave privada aumenta, a menos que você aumente o comprimento da chave para que exista um número maior de possibilidades.

Tamanhos de chave de criptografia

Tamanho da chave ou comprimento da chave refere-se ao número de bits em uma chave usada por um algoritmo criptográfico. Somente a chave correta pode descriptografar um texto cifrado (saída) de volta em texto sem formatação (entrada). À medida que a energia da CPU fica mais avançada, o tempo computacional necessário para forçar uma chave de criptografia fica cada vez menor. Como tal, as chaves tiveram que se tornar mais longas. Por muitos anos, o limite era de 40 bits, mas hoje estamos vendo comprimentos de chave de até 4096 bits em criptografia.

Tamanhos de bloco

Alguns algoritmos usam “cifras de bloco”, que criptografam e descriptografam dados em blocos (grupos de bits de comprimento fixo). Existe uma relação entre o tamanho do bloco e a quantidade de dados que podem ser criptografados sem duplicar blocos, cuja explicação está além do escopo deste post, mas a principal conclusão é que arecomendaçãoatual é usar pelo menos blocos de 128 bits.

Algoritmos de chave simétrica

algoritmos simétricos

Um algoritmo de chave simétrica (também conhecido como algoritmo de chave secreta) usa o conceito de chave e bloqueio para criptografar texto sem formatação e descriptografar dados de texto cifrado. A mesma “chave” é usada para criptografar e descriptografar o arquivo. Eles são subclassificados por cifras de fluxo e cifras de bloco. Uma cifra de fluxo é onde os dígitos de texto sem formatação são combinados com um fluxo de dígitos de cifra pseudoaleatórios. As cifras de bloco pegam o número de bits e os criptografam como uma única unidade (conhecida como rodadas), preenchendo o texto sem formatação para que seja um múltiplo de um tamanho de bloco.

O algoritmo em si não é mantido em segredo e o emissor e o receptor da comunicação devem ter cópias da chave secreta em um local seguro. O uso da mesma chave também é uma das desvantagens da criptografia de chave simétrica, porque se alguém pode se apossar da chave, eles podem descriptografar seus dados.

DES

O Data Encryption Standard ou DES foi, e provavelmente ainda é, um dos algoritmos mais conhecidos da era criptográfica moderna. Hoje é amplamente considerado inseguro. O DES foi desenvolvido na década de 1970 pela IBM e mais tarde foi submetido ao National Bureau of Standards (NBS) e à National Security Agency (NSA). O envolvimento da NSA no projeto provocou rumores controversos de backdoors, criando um escrutínio generalizado. Não foi até 1976 que o DES foi aprovado como um padrão criptográfico e publicado no FIPS.

Na década de 1990, calcular 72 quatrilhões de chaves possíveis para uma chave DES de 56 bits parecia altamente improvável. Isso teria sido verdade para um computador, mas em 1997 um grupo de cientistas da computação liderados por Rocke Verser usou milhares de computadores voluntários para quebrar o DES dentro de 24 horas, tornando ele e sua equipe o vencedor do Desafio DES de US $ 10.000.

Desde então, o DES foi fortalecido com novas atualizações chamadas double-DES e triple-DES, simplesmente colocando a cifra em camadas para que ela tivesse que descriptografar três vezes para cada bloco de dados. O Triple-DES ainda é usado em alguns lugares, mas o AES (veja abaixo) tornou-se o novo padrão desde então.

Em uso hoje? – DES e double-DES não estão mais em uso, mas triple-DES com três chaves ainda é um algoritmo recomendado noNIST SP 800-57. É muito mais lento de usar do que o algoritmo AES, mas ainda é visto naindústria de pagamentos eletrônicos. Ele também é usado noMicrosoft OneNotee noOutlook 2007para proteger o conteúdo do usuário e os dados do sistema e os navegadores Firefox eMozilla Thunderbird no modo CBC para criptografaras credenciais de login de autenticação do site ao usar uma senha mestra.

AES

O Advanced Encryption Standard ou AES foi estabelecido pelo Instituto Nacional de Padrões e Tecnologia (NIST) em 2001. O AES foi adotado pelo governo dos EUA com comprimentos de chave de 128, 192 e 256 bits.

O AES tem umaestrutura matemática bastante simplesque alguns argumentam que o torna suscetível a ataques. O ataque teórico XSL foi anunciado em 2002 e, desde então, pesquisadores de segurança, como Bruce Schneier, encontraram maneiras de explorar partes do algoritmo. No entanto, é importante notar que, mesmo no artigo de Bruce Schneier, ele afirma que não há razão para entrar em pânico ainda, uma vez que eles sóquebram 11 das 14 rodadas completas do AES-256, levando 270 Hora. Também exige que o criptógrafo tenha acesso a textos simples criptografados com várias chaves relacionadas, o que ainda dá ao AES uma margem de segurança mais alta, mas não tão alta quanto se pensava anteriormente.

Em uso hoje? –Sim! O AES ainda está em amplo uso hoje por seu melhor poder de processamento e capacidade de ser usado em uma ampla gama de hardware, como cartões inteligentes e computadores de alto desempenho.

MARS

Depois que o DES foi considerado fraco, o NIST executou um processo de chamada aberta conhecido como Advanced Encryption Standard Process de 1997 a 2000 para encontrar uma cifra de bloco nova e melhorada. O MARSfoi um dos finalistas, tornando-se distante por sua abordagem compartimentada em camadas destinada a resistir a futuros avanços em criptografia e poder da CPU.

O MARS suporta blocos de 128 bits e tamanhos de chave variáveis em várias rodadas principais e mistas, proporcionando forte resistência a ataques criptográficos. Os críticos sugeriram que as subchaves com longas tiragens de uns e zeros podem ter levado a umataque fácil e eficaz ao MARS.

Em uso hoje? - No. 21 de 23 rodadas de MARS foram quebradas porBruce Schneier e John Kelsey em 2004.

IDEA

O International Data Encryption Algorithm (IDEA), originalmente chamado de Improved Proposed Encryption Standard (IPES), foi projetado por James Massey da ETH Zurich sob um contrato de pesquisa com a Hasler Foundation, agora Ascom Tech AG, e foi discutido pela primeira vez em 1991. O IDEA foi uma pequena revisão do Padrão de Criptografia Proposto (PES), destinado a substituir o DES.

IDEA é agora livre de patentes e, portanto, completamente livre para todos os usos, mas o nome em si ainda é marca registrada. Ele operava em um bloco de 64 bits usando a chave de 128 bits e ainda é um algoritmo opcional no padrão OpenPGP. Bruce Schneier falou muito bem dessealgoritmo em 1996, até que as patentes se tornaram difíceis de colocá-lo em uso e a velocidade do algoritmo não conseguiu acompanhar a tecnologia moderna.

O algoritmo completo de 8,5 rodadas do IDEA foi quebrado pela primeira vez em 2011 usando um ataque meet-in-the-middle e independentemente em 2012 usando umataque narrow-bicliques. Em maio de 2005, a MediaCrypt anunciou um sucessor do IDEA chamadoIDEA NXT.

Em uso hoje? – Não é amplamente utilizado, mas agora é livre de patentes para uso em aplicações de sua escolha.

RC 2

A cifra de Rivest, o código de Ron ou, mais comumente, os algoritmos RC foram inventados por Ron Rivest. Embora compartilhem o mesmo nome de família, os algoritmos são bastante diferentes. Para os fins deste artigo, separaremos os nomes.

Começando com RC2, que Ron Rivest criou em 1987, é uma cifra de bloco de 64 bits com tamanhos de chave variáveis e 18 rodadas, organizada como umarede Feistel pesada e desequilibrada (16 rodadas em um tipo e duas rodadas em outro).

Em uso hoje? –Não. Recomendado que isso não seja usado. É vulnerável a umataque de chave relacionadausando 234textos simples escolhidos.

RC4

RC4 foi projetado por Ron Rivest em 1987 inicialmente como um segredo comercial até que foi postado na lista de discussão Cypherpunks em 1994. Uma vez que saiu para ogrupo de notícias sci-crypt, foi rapidamente quebrado por Bob Jenkins. O algoritmo nunca foi lançado oficialmente pela RSA Security, mas foi usado em alguns protocolos e padrões de criptografia, como WEP em 1997, WPA em 2003, SSL em 1995 e TLS em 1999, até que foiproibido em todas as versões do TLS RFC 7465 em 2015.

Em uso hoje? –Não. Recomendado que isso não seja usado.

WCP

Ron Rivest projetou o RC5 em 1994 para ser variável em todas as frentes. Os tamanhos de bloco podem variar de 32, 64 ou 128 bits e os tamanhos de chave de 0-2040 bits e arredondamentos de 0-255. A sugestão original para parâmetros era bloco de 64 bits, chave de 128 bits e 12 rodadas.

Em uso hoje? – Distributed.net estão trabalhando em ataques de força bruta no RC5. Eles quebraram a chave de 56 bits em 250 dias e a chave de 64 bits em 1.757 dias. Eles ainda estão trabalhando nachave de 72 bits, sem dúvida ainda tornando-a segura de usar.

WCS

RC6 foi derivado de RC5 por Ron Rivest e colegas. Ele foi projetado para atender aos requisitos da competição Advanced Encryption Standard e conseguiu se tornar um dos cinco finalistas. Ele tem um tamanho de bloco de 128 bits e tamanhos de chave suportados de 128, 192, 256 bits e até 2040 bits. O RC6, como o RC5, usa rotações dependentes de dados, adição modular e operações XOR. O algoritmo não foi escolhido porque o site da RSA Security sugeriu que o algoritmo ainda não estava livre de royalties.

Em uso hoje? Arquivos vazados da NSA sugerem que ele foi usado emdispositivos de implante em 2016. Fora isso, parece que o RC6 ainda pode deter duas patentes nos EUA: US 5724428A eUS 5835600 A, mas as patentes devem expirar entre 2015-2017.

Blowfish

Blowfish é uma cifra de bloco simétricaconstruída por Bruce Schneiercomo um substituto para DES e IDEA. Ele leva tamanhos de chave variáveis de 32 bits a 448 bits, tamanho de bloco de 64 bits e 16 rodadas e foi uma das primeiras cifras de bloco não patenteadas e sem licença (e ainda é). Serge Vaudenay, o criptógrafo francêsencontrou uma maneira de usar chaves fracas em um ataque de texto simples para recuperar 14 das 16 rodadas.

O Blowfish também foi criticado por ser lento em certos aplicativos e vulnerável a ataques de aniversário em HTTPS.

Em uso hoje? –Não. Embora agora se saiba que ele é vulnerável ao ataque Sweet32, ataques de aniversário e ataquesde texto simples, alguns aplicativos ainda o estão usando, por exemplo, paracriptografar senhas. Bruce Schneier agora recomenda o uso deTwofish.

Twofish

Twofish é o sucessor de Blowfishpublicado em 1998. Com um tamanho de bloco de 128 bits, tamanhos de chave de até 256 bits e 16 rodadas, tornou-se um dos cinco finalistas da competição Advanced Encryption Standard, mas não foi selecionado para padronização. Foi um passo acima do Blowfish na medida em que poderia ser implementado em hardware e cartões inteligentes, bem como grandes microprocessadores.

Bruce Schneier e a equipe que criou o Twofish ofereceram um prêmio de US $ 10.000 para quem pudesse atacá-lo durante sua primeira rodada de avaliação da AES. Em 1999, Sean Murphy e Fauzan Mirza ganharam o prêmio por seu artigo, “Uma Observação sobre o Cronograma Chave de Twofish”.

Em uso hoje? –Sim. Ainda disponível para uso livre de patentes.

Threefish

O Threefish trabalhou em blocos de 256 bits, 512 bits e 1024 bits com os mesmos tamanhos de chave que o bloco e até 80 rodadas. O Threefish foi criado em 2008 como parte daSkein Hash Function, uma das cinco finalistas dacompetição de função hash SHA-3 do NIST. Threefish foi anunciado por sua velocidade; O Threefish-512 pode criptografar dados em ciclos de bloco de 6,1 por byte em uma máquina de 64 bits.

Em uso hoje? –Sim. Ainda disponível para uso livre de patentes. No entanto, em outubro de 2010, um ataque foi publicado que poderia quebrar 53 de 72 rodadas em Threefish-256 e 57 de 72 rodadas em Threefish-512, por isso ainda poderia ser arriscado usar Threefish.

Serpent

O Serpent também foi inscrito na competição Advanced Encryption Standard e foi realmente classificado em segundo lugar para Rijndael (agora conhecido como AES). Serpent foi projetado em 1998 por Ross Anderson, Eli Buham e Lars Knudsen. Ele tem um tamanho de bloco de 128 bits, 192 ou 256 bits com um comprimento de bloco de 128 bits e 32 rodadas. A Rijndael conquistou a Serpent porque os juízes consideraram que ela tem implementações de software mais eficientes.

Em 2001, Eli Burham ao lado de Orr Dunkelman e Nathan Keller foram capazes de quebrar 10 de 32 rounds de Serpent-128 com 2118 textos simples conhecidos e 289 do tempo. Eles também poderiam quebrar Serpente-192/256 com 2118texto simples e 2187Hora. Desde então, outros artigos se aproximaram, quebrando até 12 rodadas, mas ainda não perto o suficiente para considerar o algoritmo fraco.

Em uso hoje? –Sim. Serpent ainda está em domínio público e, embora alguns ataques tenham conseguido passar por até 12 rodadas das 32 completas, o tempo e a energia necessários para tal ataque ainda são bastante grandes.

Algoritmos assimétricos

asymmetric algorithms

A criptografia assimétrica também é conhecida como criptografia de chave pública e é baseada no princípio de ter um par de chaves matematicamente relacionadas para criptografia e descriptografia: uma chave pública e uma chave privada. O par de chaves públicas pode ser compartilhado com qualquer pessoa, enquanto a chave privada deve ser mantida em segredo. Qualquer pessoa com a chave pública pode criptografar uma mensagem, mas somente o titular de uma chave privada pode descriptografá-la. A segurança depende do sigilo das chaves privadas.

Diffie-Hellman

Diffie-Hellman é um dos primeiros exemplos registrados de criptografia assimétrica, primeiro conceituado por Ralph Merkle e concretizado por Whitfield Diffie e Martin Hellman. Tradicionalmente, a comunicação criptografada segura exigiria que ambas as partes trocassem primeiro suas chaves por algum canal físico seguro. Diffie-Hellman eliminou a necessidade da troca segura criando uma chave adicional, a chave pública.

Neste momento, o Deffie-Hellman não é mais o algoritmo criptográfico padrão porque foi considerado vulnerável a vários ataques. Um ataque Logjam, por exemplo, pode permitir ataques man-in-the-middle, onde o hacker pode ler e modificar quaisquer dados enviados pela conexão.

Em uso hoje? –Sim. Para segurança geral de PKI e assinatura digital, o NIST recomenda o RSA (veja abaixo) porque o Diffie-Hellman requer mais energia da CPU e maior troca de dados para Assinatura Digital e SSL em particular. Mas ainda existem alguns usos de Diffie-Hellman na esfera pública hoje, por exemplo, na Criptografia de Curva Elíptica.

RSA

O algoritmo Rivest-Shammir-Adleman, mais conhecido como RSA, é agora o criptosistema criptométrico assimétrico mais utilizado na web atualmente. O RSA é baseado na fatoração de números primos, porque trabalhar de trás para frente a partir de dois números primos multiplicados é computacionalmente difícil de fazer, ainda mais à medida que os números primos aumentam. O desafio de quebrar a RSA é conhecido como o “problema RSA”.

RSA é um algoritmo lento e, por isso, é usado para criptografar e descriptografar as chaves simétricas que, por sua vez, criptografam e descriptografam as comunicações. As chaves simétricas executam a maior parte do trabalho, enquanto o RSA cria um canal forte e seguro.

Em 1998, Daniel Bleichenbacher descreveu como ele explorou uma vulnerabilidade no arquivo PKCS#1 (usado para transportar a chave privada). Seu ataque foi capaz de recuperar a chave privada e usá-la para recuperar chaves de sessão e descriptografar mensagens. Como resultado de seu trabalho, a RSA Laboratories lançou novas versões do PKCS#1 que não são vulneráveis ao mesmo ataque. Embora alguns ataques à RSA tenham sido tentados, o algoritmo permanece forte, sem dúvida até que os computadores quânticos se tornem mainstream.

Em uso hoje? –Sim. O RSA é o algoritmo assimétrico mais utilizado atualmente.

Curva Elíptica

ECC significa Elliptic Curve Cryptography, que é uma abordagem à criptografia de chave pública baseada em curvas elípticas sobre campos finitos. Algoritmos criptográficos geralmente usam uma equação matemática para decifrar chaves; O ECC, embora ainda use uma equação, adota uma abordagem diferente.

Os certificados SSL/TLS geralmente usam chaves RSA e o tamanho recomendado dessas chaves continua aumentando (por exemplo, de 1024 bits para 2048 bits há alguns anos) para manter a força criptográfica suficiente. Uma alternativa à RSA é a ECC. Ambos os tipos de chave compartilham a mesma propriedade importante de serem algoritmos assimétricos (uma chave para criptografia e uma chave para descriptografia). No entanto, o ECC pode oferecer o mesmo nível de força criptográfica em tamanhos de chave muito menores - oferecendo segurança aprimorada com requisitos computacionais e de armazenamento reduzidos.

Em uso hoje? -Sim. O NIST recomendou 15 curvas elípticas que podem ser usadas como padrão. Alguns argumentam que é fraco porque foram encontradas vulnerabilidades que permitem que um invasor execute certos tipos de ataque, embora existam maneiras de combatê-los. Outras razões para a falta de popularidade têm a ver com o gerador de chaves aleatórias criado pelo NIST, apelidado de Dual Elliptic Curve Deterministic Random Bit Generator ou DUAL_EC_DRBG para abreviar. Alguns acreditavam que o gerador (desenvolvido pela NSA) não era tão aleatório quanto você poderia pensar – mais tarde foi descontinuado.

É tudo matemática

À medida que a computação quântica vem em nossa direção, muitos se perguntam como será a criptografia. Alguns argumentam que nossa abordagem tradicional de aumentar o tamanho da chave para combater o aumento do poder de computação atingirá seu limite. Outrospensamque isso pode não ser necessariamente o caso.

Se há algo a tirar disso, é que todos os algoritmos têm uma “margem de segurança”, como Bruce Schneier colocou. Devemos reconhecer que, com poder de computação e tempo suficientes, é possível quebrar um algoritmo, mas se continuarmos a trabalhar juntos e ficar no topo do desempenho computacional, podemos encontrar novos algoritmos para substituir os antigos.

Se você acha que perdemos um algoritmo neste post, sinta-se à vontade paranos dizere ficaríamos felizes em incluí-lo. Mantenha os olhos abertos para um blog de acompanhamento sobre funções hash criptográficas, incluindo SHA e MD.


Autor: Natasha Aidinyantz

Artigo Original