Voltamos com mais uma etapa do nosso estudo sobre Criptografia de dados ou Cifragem de Dados. Na primeira etapa falamos sobre a Origem e a Evolução da criptografia, aprendemos alguns conceitos técnicos e quebramos o mito que dizia que existe criptografia indecifrável.
Agora vamos dar um enfoque técnico em nossos estudos. Vamos falar sobre componentes de criptografia, desvendar os algoritmos e apresentar alguns tipo/modelos de cifragem.
Componentes da criptografia e sua integração
Antes de qualquer coisa, precisamos entender que a eficácia e o sigilo do sistema de criptografia é fator vital para a segurança dos dados cifrados. Os principais componentes que envolvem essa cifragem são:
- Algoritmo;
- Sigilo da chave;
- Comprimento da chave;
- Vetores de inicialização;
Quando um atacante vai iniciar o seu trabalho para tentar quebrar uma criptografia, ele faz uma estimativa de tempo de trabalho. Essa estimativa chama-se work factor.
Objetivos da cifragem de dados
Já olhando pelo lado de quem precisa da criptografia, ela tem por objetivos principais 4 itens:
- Confidencialidade – Que é a garantia de que somente pessoas autorizadas terão acesso à informação que precisa ser protegida.
- Autenticidade – Consiste em garantir que o conteúdo das informações é verdadeiro e legitimo.
- Integridade – A integridade é a garantia de que os dados estão inteiros, que a mensagem não foi perdida em partes ou inteira.
- Não Repúdio – É a segurança de que a pessoa que originou a mensagem é quem ela realmente diz ser. Um exemplo seria um e-mail enviado com certificado digital. Esse certificado garante que quem enviou a mensagem é seguramente quem está nomeado como remetente e não uma terceira pessoa fazendo uso de sua identidade.
Tipos de Cifradores
Agora que sabemos quais são os componentes da cifragem de dados e quais os objetivos dessa proteção, podemos falar um pouco sobre os tipos de cifradores de dados.
- Substituição – Consiste em substituir bits, caracteres ou blocos de caracteres por outros diferentes do mesmo alfabeto ou não. Vocês devem lembrar quando falamos sobre o método Caesar Cipher criado pelo poderoso Imperador Julio César não é verdade? Ele utilizava o método de substituição que trocava cada caractere da mensagem pelo caractere que estava 3 posições a frente. Sendo assim, a palavra SEGURANÇA ficaria cifrada, VHJXUDQFD.
- Transposição – Os caracteres não são sbstituidos, mas sim, embaralhados. Vamos exemplificar esse método usando novamente a palavra SEGURANÇA:
- Running Key Cipher – Esse método não utiliza meios eletrônicos pra gerar a chave. Ele apenas define ações que devem ser executadas pelo destinatário da mensagem. Vamos ao exemplo:
- Concealment Cipher – Se a chave, por exemplo, é ler sempre a terceira palavra. A mensagem secreta no texto abaixo seria:
- Esteganografia – Esse é o método de cifragem no qual escondemos uma informação de um formato dentro de outra de formato diferente. Por exemplo, poderíamos adicionar um texto dentro de uma imagem digitalizada, uma marca d’água em uma foto digital pra evitar cópia, etc. Esse metido não exige algoritmos nem protocolos, mas alguns softwares de hoje cifram a informação antes dela ser escondida.
“Todos evitaram explosão de críticas, dias depois do primeiro e do segundo acontecimento”
A chave é a chave
Sim! A chave usada para cifrar os dados é a chave da criptografia de dados. Vamos falar um pouco sobre os tipos de chaves que podem ser Simétricas ou Assimétricas. A segurança da sua criptografia depende completamente de como a sua chave é guardada.
As chaves simétricas caracterizam as criptografias onde ambos os lados (remente / destinatário) usam uma mesma chave para cifrar e decifrar os dados respectivamente. As chaves também são chamadas de chaves secretas e cada dupla de indivíduos precisam ter uma chave para ler e processar os dados. O número total de chaves envolvidas numa comunicação deve ser obtido da seguinte forma:
N(N-1)/2 (N é o número de pessoas)
Ou seja, para 15 pessoas teríamos = 15(15-1)/2 = 105 chaves
Podemos destacar algumas vantagens das chaves simétricas. As chaves simétricas têm uma melhor performance do que a criptografia assimétrica. Ela também é mais difícil de ser quebrar se usarmos chaves grandes.
Do mesmo jeito, podemos destacar algumas desvantagens. Elas requerem um sistema seguro para envio das chaves e cada par de usuários precisa de um único par de chaves. É um tipo de cifragem que provê confidencialidade, mas não garante autenticidade e não repúdio.
Dentre os algoritmos usados para as chaves assimétricas, podemos destacar: DES, 3DES, Blowfish, IDEA, RC4, RC5, RC6, AES. Dentre outros.
Agora vamos falar um pouco sobre as chaves assimétricas. Cada entidade possui um par de chaves pública e privada, ou chaves assimétricas. Essas chaves pública e privada são relacionadas entre si de forma matemática e tanto uma quanto outra são usadas para cifrar e decifrar os dados. A chave pública, como o próprio nome dela já diz, pode ser de conhecimento de todos. Já a chave privada é de conhecimento apenas do owner (proprietário) da informação. Uma vez que essa chave privada seja roubada, o acesso aos dados pode ser conseguido com um esforço mínimo. Esse tipo de criptografia pode gerar vários níveis de segurança. Vejam abaixo:
- Cifragem com a chave pública do destinatário garante confidencialidade, mas não autenticidade (secure message format);
- Cifragem com a chave privada do remetente garante a autenticidade (open message format);
- Cifragem com a chave privada do remetente e depois com a pública do destinatário, garante confidencialidade e autenticidade – (secure signed format).
Pra ficar mais fácil pra gente entender, vamos diagramar o texto acima. Vejam só:
Assim como as chaves simétricas, as assimétricas também possuem vantagens e desvantagens em sua utilização. Como vantagens, podemos destacar uma melhor distribuição de chaves do que no método simétrico.
Existe também uma maior escalabilidade no método assimétrico sem contar que esse método provê autenticação e não repúdio. Em contrapartida, embora seja um método muito mais seguro, as chaves assimétricas são mais lentas principalmente por possuírem tarefas matemáticas muito mais intensas.
Dentre os algoritmos usados nesse tipo de cifragem podemos destacar RSA, ECC(Elliptic Curve Cryptosystem), Diffie-Hellman, El Gamal, DSA(Digital Signature Algorithm), Knapsack e etc.
Algoritmos
Talvez essa palavra cause arrepios em muitos do que estão lendo esse artigo e que nunca foram chegados nas aulas de matemática (eu, por exemplo), mas prometo que não vou ser carrasco como nossos velhos professores de ginásio.
Quando falamos em criptografia ou cifragem de dados com chaves simétricas, estamos falando apenas de dois tipos de algoritmos. São eles: Block Cipher e Stream Cipher.
O primeiro, quebra a mensagem em blocos de bits e então submete esses blocos à operações matemáticas diversas, faz substituições e transposições de dados em um bloco de cada vez. A Chave de cifragem é quem indica que tipos de operações serão realizadas nos blocos durante essas operações.
O segundo algoritmo tem apenas uma diferença do primeiro: Ele trata bit por bit.
Dentre os tipos de algoritmos simétricos, podemos destacar os seguintes:
DES(Data Encryption Standard) – Criado em 1974 pela IBM com chave de 128-bits. Ele foi modificado pela NSA para usar chaves de 64-bit (8 pra paridade e tamanho efetivo de 56-bit) e chamou de DEA(Data Encryption algorithm). Claro que com a intenção deles era decifrar mensagens alheias. É um algoritmo de cifragem em blocos de 64-bit que passam por 16 operações de substituição e tranposição.
Aí, em 1998 a Eletronic Frontier Foundation teve a brilhante idéia de construir um computador por US$250.000,00 que quebrou o DES em três dias usando brute force attack. O computador era composto por 1536 microprocessadores de 40Mhz que realizavam 60 milhões de tentativas por segundo por microprocessador ou seja: Essa maquininha que fazia quase 93Bilhões de cálculos por minuto.
3DES(Triple-DES) – Utiliza três ou duas chaves de 56-bit dependendo do modo de operação escolhido, que podem ser: DES-EEE3, DES-EDE3 e DES-EEE2. Os blocos de 64-bit passam por 48 operações de substituição e transposição. 2E56 vezes mais forte que o DES e três vezes mais lento que o DES.
AES(Advanced Encryption Standard) – Substituto do DES, é um algoritmo de cifragem em blocos de tamanho variável e suporta chaves de 128, 192 e 256-bit.
IDEA(International Data Encryption Algorithm) – Utiliza cifragem em blocos de 64-bit que passam por oito operações de substituição e transposição. Utiliza chave de 128-bit. O modo de operação é similar ao DES, mas é mais forte que o DES. É utilizado no PGP. Como é patenteado, existe um custo para sua utilização.
Blowfish – Também utiliza blocos de 64-bit que passam por 16 operações de substituição e tranposição, e o tamanho da chave pode chegar a 448-bit.
RC5 – Utiliza cifragem em blocos de 32, 64, e 128-bit. Utiliza chave de até 2048-bit. Foi patenteado pela RSA Data Security em 1997.
Quando o assunto é algotirmos assimétricos, destacamos os seguintes modelos:
RSA – Sigla de seus inventores Ron Rivest, Adi Shamir, e Leonard Adleman. É o algoritmo assimétrico mais popular. Suporta assinatura digital, troca de chaves e cifragem.
El Gamal – Usado pra assinatura digital, troca de chave e cifragem
ECC(Elliptic Curve Cryptosystem) – Provê a maioria das funcionalidades do RSA, só que utilizando menos recursos por usar chaves menores sem comprometer a segurança. Por esse motivo foi concebido para ser utilizado em dispositivos wireless e telefones celulares.
Agora você caro leitor, visitante assíduo do iMasters, que resolveu ler essa minha primeira matéria deve estar pensando: Ok, afinal de contas: Que tipo de criptografia eu uso? Calma gente! Pra vocês eu apresento a Criptografia Híbrida.
A Criptografia Híbrida consiste em unir o útil ao agradável ou, montar o mundo perfeito. A segurança da criptografia assimétrica com a rapidez de processamento da simétrica. Ou seja, é só vocês usarem chaves públicas e privadas para proteger e transportar apenas as chaves secretas e então usarem as chaves secretas para cifrar os dados.
Pessoal, esse é o fim de mais uma parte do nosso estudo. Agora vocês já conhecem os objetivos da cifragem de dados e quais são seus componentes. Possuem também capacidade para escolher algoritmos e chaves que irão usar para proteger seus dados, conhecem os níveis de segurança que vocês podem agregar aos seus dados e que também podem mesclar dois modelos de criptografias para obter um cenário perfeito de segurança. Mais uma vez, espero que tenham gostado do conteúdo. Em breve entraremos com a nossa terceira e última parte dos estudos que vai falar sobre Chaves Públicas, segurança na troca de e-mails e formas de ataques em cima das cifragens. Até breve e obrigado!