Como funciona a criptografia

A cada dia que passa a privacidade na internet se torna mais necessária a medida que aumentam as ameaças de roubo de dados ou compartilhamento indevido de informações pessoais. A criptografia é a técnica usada para proteger as comunicações na internet do acesso não permitido.




Historia da Criptografia.

Desde que o ser humano aprendeu a se comunicar, surgiram duas necessidades básicas: compartilhar informações e transmitir informações secretamente.

Para transmitir informações privadas para pessoas especificas, surgiu a necessidade de codificar as mensagens. As pessoas não autorizadas, mesmo se conseguissem interceptar a mensagem, não conseguiriam entender o conteúdo.

A criptografia é a técnica de ocultar / embaralhar o conteúdo de uma mensagem ou arquivo para que possa ser transmitida com sigilo.

A palavra "criptografia" foi inventada combinando duas palavras gregas, "Kryptos" significando oculto e "gráphein" significando escrita.

As primeiras utilizações da criptografia foram feitas durante nas civilizações romana e egípcia, sendo o "hieróglifo" uma das primeiras técnicas de ocultação de mensagens, à cerca de 4000 anos atrás. Esse código era conhecido apenas pelos escribas que costumavam transmitir mensagens em nome dos reis.

No período de 500 a.C, estudiosos passaram a usar cifras simples de substituição monoalfabética, por exemplo,deslocando as letras do alfabeto em duas posições: “a” vira “c” ,“b” vira “d”, “c” vira “e”, etc. Depois, para recuperar a mensagem original, o processo era invertido. Esse método ficou conhecido como Cifra de César.


cifra de césar, criptografia antiga.


Esteganografia ("escrita escondida")

A esteganografia além de ocultar a informação ser transmitida, oculta também que existe alguma informação sendo transmitida. Na esteganografia, um destinatário não autorizado não tem consciência do fato de que os dados observados contêm informações ocultas. Para isso podem ser usadas técnicas como tintas “invisíveis”, micropontos, arranjo de caracteres (onde os caracteres iniciais de cada palavra formam uma outra palavra), assinaturas digitais, canais escondidos, entre outras.

exemplo de estenografia


Evolução da Criptografia

No início do século 20, a criptografia deixou de ser um processo manual com a invenção de máquinas eletromecânicas, como a máquina de rotor Enigma, que forneceu meios mais avançados de codificação da informação.

Durante a Segunda Guerra Mundial, a criptografia passou a ser usada por organizações governamentais e unidades militares que usaram a criptografia para guardar seus segredos dos inimigos.

Após a invenção dos computadores pessoais e da internet, a criptografia ficou ao alcance das pessoas comuns, popularizando o seu uso para garantir privacidade nas comunicações.


Criptografia moderna

A criptografia moderna é a base da segurança de computadores e comunicações. Seus fundamentos estão relacionados a vários conceitos de matemática, como teoria dos números, teoria da complexidade computacional e teoria da probabilidade.

Diferente da criptografia clássica que opera sobre um conjunto de caracteres, a criptografia moderna opera sobre uma sequencia de bits. Ela se baseia em algoritmos matemáticos conhecidos publicamente para codificar as informações. O sigilo é obtido através de uma chave secreta que é usada como semente para os algoritmos. A dificuldade computacional dos algoritmos e a ausência de chave secreta torna impossível para um atacante obter a informação original, mesmo que ele conheça o algoritmo usado para codificação.


Serviços de Segurança de Criptografia

A criptografia oferece quatro serviços básicos de segurança da informação:


Confidencialidade

Confidencialidade também conhecida como privacidade ou sigilo, é um serviço de segurança que mantém as informações fora do alcance de uma pessoa não autorizada. Pode ser alcançada através da segurança física ou até do uso de algoritmos matemáticos para criptografia de dados.


Integridade de dados

É o serviço de segurança responsável por detectar qualquer alteração nos dados. Ela evita que os dados sejam modificados por uma pessoa não autorizada de maneira intencional ou acidental. O serviço de integridade garante que os dados não foram alterados sem autorização desde a origem até o destinatário. A integridade dos dados não pode impedir a alteração de dados, mas fornece um meio para detectar se os dados foram manipulados de maneira não autorizada.


Autenticação

Autenticação fornece a identificação do originador, confirmando para o destinatário que os dados recebidos foram enviados apenas por um remetente identificado e verificado. Além do originador, a autenticação também pode fornecer garantia sobre outros parâmetros relacionados a dados, como a data/hora da criação e transmissão.


Não repúdio

É uma garantia de que o criador original dos dados não pode negar a criação ou transmissão dos dados para um destinatário ou terceiro. Por exemplo, uma vez que um pedido é feito eletronicamente, um comprador não pode negar o pedido de compra, se o serviço de não repúdio estiver habilitado nesta transação.


Premissas da Criptografia

As premissas da criptografia nada mais são do que as ferramentas e técnicas em criptografia que podem ser usadas seletivamente para fornecer um conjunto de serviços de segurança desejados. Elas são frequentemente combinadas para obter um conjunto de serviços de segurança desejados a partir de um sistema criptográfico. Elas são: encriptação, Funções de hash, Códigos de autenticação de mensagem (MAC) e Assinaturas digitais.


Tipos de Criptografia

Basicamente existem dois tipos de criptosistemas: Criptografia de chave simétrica e Criptografia de chave assimétrica.


Criptografia de chave simétrica

Na criptografia de chave simétrica (também conhecido como chave secreta) as mesmas chaves são usadas para criptografar e descriptografar as informações. Alguns exemplos bem conhecidos de métodos de criptografia de chave simétrica são: Data Encryption Standard (DES), Triple-DES (3DES), IDEA e BLOWFISH.

A criptografia de chave simétrica tem como caracteristicas a maior velocidade para criptografar e descriptografar informações, menor necessidade de poder de processamento devido ao comprimento de chave ser menor que a chave assimetrica, o compartilhamento da chave deve ser feito por um canal seguro e ela deve ser alterada constantemente para evitar sua descoberta por terceiros.

A criptografia de chave simétrica pode ser de dois tipos as cifras de bloco e as cifras de fluxo.


Cifras de bloco

Nesse esquema, a informação é processada em blocos (grupos) de bits por vez; isto é, um bloco de bits de texto simples é selecionado, uma série de operações é executada neste bloco para gerar um bloco de bits de texto cifrado. O número de bits em um bloco é fixo. Por exemplo, os esquemas DES e AES possuem tamanhos de bloco de 64 e 128, respectivamente.


Cifras de Fluxo

Neste esquema, o texto plano é processado um bit de cada vez, isto é, é utilizado um bit de texto simples e é executada uma série de operações para gerar um bit de texto cifrado. Tecnicamente, as cifras de fluxo são cifras de bloco com um tamanho de bloco de um bit.


Criptografia de chave assimétrica

A criptografia de chave assimétrica tem como base o uso de chaves diferentes para criptografar e descriptografar as informações. Mesmo com chaves sejam diferentes, elas são matematicamente relacionadas e, portanto, é possível recuperar a texto original descriptografando o texto cifrado.

Cada usuário neste sistema precisa ter um par de chaves diferentes, chave privada e chave pública. É necessário colocar a chave pública no repositório público (de conhecimento de todos) e a chave privada como um segredo bem guardado, usando um dispositivo criptográfico como um token ou smart card. Portanto, esse esquema de criptografia também é chamado de criptografia de chave pública.Embora as chaves pública e privada do usuário estejam relacionadas, não é computacionalmente possível encontrar uma usando a outra.

O comprimento de chaves (número de bits) nessa criptografia é grande e, portanto, o processo de criptografia-descriptografia é mais lento do que a criptografia de chave simétrica, necessitando de maior poder de processamento.

A Criptografia de chave assimétrica depende de uma infraestrutura de chave pública (Public Key Infrastructure - PKI) que consiste em uma terceira parte confiável. Ela gerencia e atesta com segurança a autenticidade das chaves públicas.


Algoritmos de Criptografia:


DES (Data Encryption Standard)

O Data Encryption Standard (DES) é uma cifra de bloco de chave simétrica publicada pelo Instituto Nacional de Padrões e Tecnologia (NIST). É uma implementação de uma Cifra Feistel e utiliza 16 estruturas redondas Feistel com o tamanho do bloco é de 64 bits. Embora o tamanho da chave seja de 64 bits, o DES tem um comprimento de chave efetivo de 56 bits, pois 8 dos 64 bits da chave não são usados pelo algoritmo de criptografia (funcionam apenas como bits de verificação). Devido a sua pequena chave ser de 56 bits o DES é considerado inseguro para muitas aplicações hoje em dia.


3DES (Triple DES)

O Triple DES usa 3 chaves de 56 bits com tamanho máximo efetivo da chave de 168 bits. Os dados são encriptados com a primeira chave, decriptados com a segunda chave e finalmente encriptados novamente com uma terceira chave. Sistemas 3DES são significativamente mais seguros que o DES único, mas estes são claramente um processo muito mais lento que a criptografia usando DES único.


AES (Advanced Encryption Standard)

O AES é o algoritmo de criptografia simétrica mais popular e amplamente adotado Ele é menos seis vezes mais rápido que o triplo DES e possui maior segurança devido ao tamanho de sua chave ser maior (pode variar de 128, 192 ou 256 bits).

AES é uma cifra iterativa baseado na "rede de substituição-permutação". É composto por uma série de operações em sequencia, algumas das quais envolvem a substituição de entradas por saídas específicas (substituições) e outras envolvem a divisão aleatória de bits (permutações). O AES opera agrupando os dados em bytes para realizar a encriptação.


RSA (Rivest-Shamir-Adleman)

É um dos primeiros sistemas de criptografia de chave pública (criptografia assimétrica) e é amplamente utilizado para transmissão segura de dados. Foi criada por Ron Rivest, Adi Shamir e Leonard Adleman, sendo as inicias de seus sobrenomes a origem da sigla RSA. Neste sistema de criptografia, a chave de encriptação é pública (de conhecimento de todos) e é diferente da chave de decriptação que é secreta (privada). No RSA, esta assimetria é baseada na dificuldade prática da fatorização do produto de dois números primos grandes, o "problema de fatoração".

É considerado dos mais seguros, já que mandou por terra todas as tentativas de quebrá-lo. Foi também o primeiro algoritmo a possibilitar criptografia e assinatura digital, e uma das grandes inovações em criptografia de chave pública.

O RSA é um algoritmo relativamente lento e, por isso, é menos usado para criptografar diretamente os dados do usuário. Mais frequentemente, o RSA é usado para enviar chaves criptografadas compartilhadas para criptografia de chave simétrica que, por sua vez, pode executar operações de criptografia-descriptografia em massa a uma velocidade muito maior.


Usos da criptografia:


Funções HASH

Uma função hash é um algoritmo transforma dados de comprimento variável para dados de comprimento fixo. A saida do algoritmo é conhecida como hash, hashsum ou checksum. É uma operação unidirecional que não pode ser revertida, isto é, encontrar o dado original baseado no hash. É muito usado para verificar duplicidade em banco de dados, verificar a integridade de um arquivo após uma transmissão na rede, ou para validar senhas (a maioria dos sistemas de autenticação armazena as senha no formato hash). Os algoritmos hash mais conhecidos são MD5 e SHA-256 .


Autenticação de Mensagens (MAC)

O código de autenticação de mensagem (MAC), é um pequeno pedaço de informação usado para autenticar uma mensagem, ou seja, para confirmar a sua autenticidade (que veio do remetente correto) e sua integridade (não foi alterada desde a origem). Isto é feito usando um chave simetrica, que o destinatario também usará para verificar a mensagem.

Os MACs diferem das assinaturas digitais, pois os valores MAC são gerados e verificados usando a mesma chave secreta. Isso implica que o remetente e o destinatário de uma mensagem devem concordar com a mesma chave antes de iniciar as comunicações, como é o caso da criptografia simétrica. Pela mesma razão, os MACs não fornecem a propriedade de não repúdio oferecido por assinaturas especificamente no caso de uma chave secreta compartilhada em toda a rede: qualquer usuário que possa verificar um MAC também é capaz de gerar MACs para outras mensagens.


Assinatura Digital

Uma assinatura digital é gerada usando a chave privada de um par de chaves (criptografia assimétrica ou de chave pública). Uma vez que esta chave privada é acessível apenas ao seu titular, uma assinatura digital prova que um documento foi assinado por seu remetente. Assim, assinaturas digitais oferecem não-repúdio.