Cifragem


  • O que é cifragem?


R - Cifragem é o conjunto de técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da "chave secreta"), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade.


  • Exemplifique uma técnica de criptografia.


R - O conteúdo da mensagem é cifrado através da mistura e/ou substituição das letras da mensagem original. A mensagem é decifrada fazendo-se o processo inverso ao ciframento. Cifra de transposição é um exemplo de técnica de cifragem.


1- Cifras de Transposição: método pelo qual o conteúdo da mensagem é o mesmo, porém com as letras postas em ordem diferente. Por exemplo, pode-se cifrar a palavra "CARRO" e escrevê-la "ORARC";


  • Quais os objetivos principais da cifragem?


R - Técnicas de cifragem podem ser usadas como um meio efetivo de proteção de informações suscetíveis a ataques, estejam elas armazenadas em um computador ou sendo transmitidas pela rede. Seu principal objetivo é prover uma comunicação segura, garantindo serviços básicos de autenticação, privacidade e integridade dos dados.

- Privacidade: Proteger contra o acesso de intrusos;

- Autenticidade: Certificar-se de que, quem é o autor de um documento é quem diz ser;

- Integridade: Proteger contra modificação dos dados por intrusos.


  • Como funciona?

Os principais tipos de cifras são:

1- Cifras de Transposição: método pelo qual o conteúdo da mensagem é o mesmo, porém com as letras postas em ordem diferente. Por exemplo, pode-se cifrar a palavra "CARRO" e escrevê-la "ORARC";

2- Cifras de Substituição: neste tipo de cifra, troca-se cada letra ou grupo de letras da mensagem de acordo com uma tabela de substituição. As cifras de substituições podem ser subdivididas em:


1- Cifra de substituição simples, monoalfabética ou Cifra de César: é o tipo de cifra na qual cada letra da mensagem é substituída por outra, de acordo com uma tabela baseada geralmente num deslocamento da letra original dentro do alfabeto. Ela é também chamada Cifra de César devido ao seu uso pelo imperador romano quando do envio de mensagens secretas. César quando queria enviar mensagens secretas a determinadas pessoas, substituía cada letra "A" de sua mensagem original pela letra "D", o "B" pelo "E", etc., ou seja, cada letra pela que estava três posições a frente no alfabeto.


2- Cifra de substituição polialfabética: consiste em utilizar várias cifras de substituição simples, em que as letras da mensagem são rodadas seguidamente, porém com valores diferentes.


3- Cifra de substituição de polígramos: utiliza um grupo de caracteres ao invés de um único caractere individual para a substituição da mensagem. Por exemplo, "ABA" pode corresponder a "MÃE" e "ABB" corresponder a "JKI".


4- Cifra de substituição por deslocamento: ao contrário da cifra de César, não usa um valor fixo para a substituição de todas as letras. Cada letra tem um valor associado para a rotação através de um critério. Por exemplo, cifrar a palavra "CARRO" utilizando o critério de rotação "023", seria substituir "C" pela letra que está 0(zero) posições a frente no alfabeto, o "A" pela letra que está 2 (duas) posições a frente, e assim por diante, repetindo-se o critério se necessário.


  • Num sistema de telefonia, o que acontece com o algoritmo a cada chamada telefônica?

LC: Ele é trocado.



  • É segura uma comunicação com cifragem no GSM?


R - Aparentemente, existe a possibilidade de se quebrar o código de cifragem em sistemas GSM. Contudo, há dois aspectos a se levar em conta ao tratar-se deste tema:


1- O custo de um equipamento para contornar a cifragem GSM é muito alto.


2- O acesso a esses equipamentos não é simples. Apenas pessoas treinadas e a polícia conseguem ter acesso legal a tais equipamentos.


Contudo, o problema do custo do equipamento já nao é mais um entrave. Cientistas e engenheiros encontraram, no ano de 2010, uma falha no sistema GSM que tornaria possível interceptar chamadas GSM com baixos custos.

A falha consiste no fato de que, no sistema de comunicação móvel GSM, entre a rede e o aparelho móvel, apenas este precisa se identificar e autenticar. O telefone envia o seu International Mobile Subscriber Identity (IMSI), guardado no SIM, para a torre celular com a qual ele esteja tentando estabelecer comunicação. Aparentemente, esse fato abre caminho para que Men-in-the-Middle (pessoas tentando hackear o sistema) consigam realizar o ataque.

Até aí, muitos poderiam dizer que, apesar da possibilidade de acesso, ainda é necessário quebrar o código da cifra. Contudo, o protocolo GSM dá aos controladores da rede (torres celulares) a opção de forçar aparelhos celulares a desligar a cifragem.



  • O que é Esteganografia? Cite um exemplo de utilização.


R - O termo esteganografia deriva do grego, em que estegano significa “esconder ou mascarar”, e grafia, “escrita” [PETRI 2004]. Assim, esse termo pode ser definido como a arte de esconder informações, tornando-as ocultas. Muitas técnicas esteganográficas, por exemplo, escondem dados dentro de arquivos. Seu principal objetivo é que esses dados não sejam percebidos por terceiros; ou seja, a presença de mensagens escondidas dentro de arquivos é simplesmente desconhecida [ARTZ 2001]. Somente o receptor da mensagem tem conhecimento de sua existência, assim como da maneira como extraí-la. Ao contrário do que pode parecer, esteganografia e criptografia são duas áreas com objetivos diferentes. Enquanto o segundo tem o propósito de impedir que as pessoas saibam o conteúdo de uma mensagem, o primeiro se baseia em evitar que as pessoas saibam que a mensagem existe. Ou seja, na criptografia, os receptores sabem da existência das mensagens, porém não conseguem, a princípio, lê-las; a esteganografia tenta fazer com que os receptores não percebam que há uma mensagem naquele meio.


Hoje em dia, a esteganografia digital vem sendo freqüentemente utilizada. Nela, meios digitais, como imagens, arquivos de áudio e a Internet, são usados para esconder mensagens secretas.


Uma das técnicas de esconder informações em imagens JPEG, usando o ruído, é conhecida como LSB (Least Significant Bits). Ela consiste em usar os bits menos significativos para guardar os dados que se deseja camuflar. Em uma imagem JPEG, trocar os bits menos significativos pode mudar a intensidade de um pixel em no máximo 1%. Isto faz com que a técnica seja uma ótima solução esteganográfica, uma vez que a imagem fica praticamente inalterada, principalmente no que diz respeito à percepção visual do ser humano.


  • Existe criptografia quântica? O que é isso?


R - Sim. Do ponto de vista da teoria quântica precisamos ter em mente que o Princípio da Incerteza de Heisenberg nos permite garantir que não é possível se determinar, ao mesmo tempo, todos os estados físicos de uma partícula sem se interferir na mesma, alterando-a de forma inegável. Aliado a isto, temos o comportamento dos fótons, que num momento se apresentam como uma partícula noutro como uma onda e, neste caso, possuem duas características fundamentais que são seu campo magnético (B) e o campo elétrico (E). O ângulo que o campo elétrico de um fóton faz em relação ao seu plano de deslocamento é chamado de plano de polarização e é com essas características que iremos transmitir as informações de uma forma totalmente segura.

Os protocolos quânticos utilizam dois canais, um público e outro quântico. Estes canais são utilizados para se combinar a chave secreta entre o emissor e o receptor da mensagem. Através do canal quântico o emissor envia uma série de fótons com polarizações diferentes, de acordo com o protocolo adotado e que serão medidos pelo receptor de modo a formarem uma chave secreta de conhecimento somente de ambos e que pode ser alterada a cada envio de mensagem, aumentando ainda mais a segurança do método.

Os fótons podem ser enviados com polarizações em quaisquer ângulos, mas a definição de alguns ângulos notáveis facilita muito a medida O estabelecimento desses ângulos faz parte dos protocolos sobre os quais já falamos acima. Vamos considerar então fótons com polarização vertical (|), horizontal (–), inclinado à direita (/) e à esquerda (\). Essas polarizações serão utilizadas para se representar os 0´s e 1´s a serem transmitidos e podem ser combinados livremente, desde que os pares ortogonais sejam diferentes entre si (se o vertical for o 0, o horizontal será o 1, etc.).


O emissor passa, então a enviar uma série deles anotando a polarização de cada um deles na ordem em que vai ser enviada. O receptor, por sua vez, prepara uma série de filtros adequados para medir a polarização dos fótons e passa a efetuar as medidas anotando também a ordem que utilizou nos filtros e o resultado que obteve. Após uma série de alguns fótons ele vai ter várias medidas nas quais os fótons passaram através dos filtros (aqui cabe ressaltar que esses fótons, agora, estão todos alterados pelas medidas efetuadas e qualquer pessoa que tivesse acesso à mensagem não conseguiria mais recuperar seu conteúdo original) e pode se comunicar com o emissor através de qualquer canal público (telefone, e-mail, carta, etc.) enviando, não os resultados que obteve, mas os filtros que adotou para cada medida. Assim o emissor pode, analisando esta informação dizer para ele (através do próprio canal público) quais destas medidas foram corretas e, a partir daí, ambos têm uma chave para transmitir suas mensagens de forma segura.


Vamos analisar o porquê da segurança do método. Se qualquer um interceptasse a mensagem e efetuasse as medidas antes do receptor fazê-lo, iria alterar a informação que estava sendo transmitida e, quando houvesse a comunicação entre o emissor e o receptor eles perceberiam que o número anormal de erros de medição seria fruto de uma tentativa não autorizada de leitura da mensagem. Agora se o interceptador quisesse fazer as medidas após o receptor receber a mensagem só encontraria uma série de fótons já alterados e, mesmo com a informação de quais filtros foram utilizados, ele não conseguiria recuperar a mensagem original pois lhe faltaria a informação de qual resultado foi obtido para as medidas efetuadas ou o conjunto inicial enviado pois ambos permanecem em sigilo com o receptor e o emissor, respectivamente.


Com base nos fótons que o emissor recebeu e mediu corretamente cria-se uma chave segura e secreta para comunicação das mensagens entre eles, contando também, adicionalmente, com um denunciador de intrusão o que permite um incremento na segurança de comunicação de dados jamais sonhado.


  • Descreva um protocolo de segurança.


R - Protocolo WEP:


WEP significa wired equivalency privacy. Foi a primeira tentativa de introduzir um protocolo que pudesse oferecer proteção, confiabilidade e autenticação em redes sem fio. É parte do padrão IEEE 802.11.

A segurança de redes, em geral, é frequentemente tratada sob o ponto de vista das mais altas pilhas de protocolos, e na maioria das vezes, apenas sob o ponto de vista da camada de aplicação. Porém, com o advento das redes móveis e sem fios, este paradigma torna-se errado. Comunicações sem fios baseiam-se em trocas de informação por ondas de rádio. Logo, qualquer pessoa com um receptor de rádio pode, tecnicamente, receber dados de qualquer pessoa que esteja emitindo em sua redondeza, bem como qualquer um com um emissor de radiofreqüência pode inserir informações no meio. Assim, as WLans necessitam de componentes de segurança presentes na camada de enlace para que seja possível segurança nos dados que transitam no canal.

O protocolo WEP provê dois métodos de autenticação de dispositivos, utiliza CRC-32 (Cyclic Redundancy Checks) para a verificação da integridade de dados e usa o algoritmo de criptografia RC4 (Ron´s Code #4) para prevenir a leitura de dados de usuário que transitarão na rede. O WEP pode ser utilizado entre o Ponto de Acesso (AP – Access Point) e os clientes da rede (modo com infra-estrutura), assim como na comunicação direta entre clientes (modo ad-hoc). A criptografia WEP só é aplicada ao tráfego do canal de comunicação sem fio e, portanto, o tráfego roteado para fora da rede sem fio não possui criptografia WEP.


  • O que é um Hash?


R - Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando 1/2 byte cada. O conceito teórico diz que "hash é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações".


Não podemos confundir hashes com cifragens. Hasehs são digestos. Uma cifragem transforma dados em um criptograma e vice-versa. Logo, é uma operação de duas vias. Além disso, o tamanho de um criptograma é exatamente igual ao da cadeia de bits que foi criptografada. Hashes, por sua vez, transformam longas cadeias de dados (claros ou cifrados) em pequenos digestos, de tamanho fixo e de via única. Não é possível retornar o hash à mensagem original.


Os hashes produzem "selos de segurança" de comprimento fixo, não importa o comprimento do fluxo de dados ou do arquivo que representem. Qualquer alteração efetuada no arquivo, por mínima que seja, altera substancialmente o resultado hash. Isto ocorre porque, mesmo se apenas um dos bits do arquivo for alterado, muitos bits do resultado serão afetados. Este comportamento é conhecido como efeito avalanche.


O efeito avalanche fica bastante claro quando observamos o impacto da mudança de apenas um bit no resultado hash. Para exemplificar, vamos usar os caracteres ASCII "A" e "a". Note que apenas o sexto bit (contando da direita para a esquerda e iniciando pelo bit zero) é diferente:


Caracter ASCII ASCII

(decimal) (binário)


A 65 0100 0001

a 97 0110 0001


Usando o algoritmo MD5, o resultado hash obtido para os textos "Aldeia NumaBoa" e "aldeia NumaBoa", cuja diferença reside num único bit, é completamente diferente:


Aldeia NumaBoa 3cdb658425ee484e4bff3d4583f6f851

aldeia NumaBoa 9c1f41ef263026b0283676d63df21fd1


Transformando o valor hexadecimal do hash dos dois textos nos seus correspondentes binários, o efeito avalanche fica evidente, pois a alteração de apenas um bit no texto ocasionou a alteração de 62 bits do resultado hash:


3cdb6584 0011 1100 1101 1011 0110 0101 1000 0100

9c1f41ef 1001 1100 0001 1111 0100 0001 1110 1111

x.x. .... xx.. .x.. ..x. .x.. .xx. x.xx 12 bits diferentes

25ee484e 0010 0101 1110 1110 0100 1000 0100 1110

263026b0 0010 0110 0011 0000 0010 0110 1011 0000

.... ..xx xx.x xxx. .xx. xxx. xxxx xxx. 20 bits diferentes

4bff3d45 0100 1011 1111 1111 0011 1101 0100 0101

283676d6 0010 1000 0011 0110 0111 0110 1101 0110

.xx. ..xx xx.. x..x .x.. x.xx x..x ..xx 16 bits diferentes

83f6f851 1000 0011 1111 0110 1111 1000 0101 0001

3df21fd1 0011 1101 1111 0010 0001 1111 1101 0001

x.xx xxx. .... .x.. xxx. .xxx x... .... 14 bits diferentes


Hashes servem para garantir integridade de arquivos, guardar senhas de segurança e obter assinaturas digitais.


  • O que é RSA? E Diffie-Hellman?


R - Ao tratar-se de criptografia, RSA (Rivest, Shamir e Adleman, os três que divulgaram publicamente o trabalho) é um algoritmo de criptografia de chave pública. Foi o primeiro algoritmo conhecido por permitir assinaturas digitais e criptografia,.


O algoritmo funciona com uma chave pública e uma chave privada. A chave pública pode ser conhecida por qualquer um, e é usada para criptografar os dados. Mensagens criptografadas com a chave pública só podem ser decriptografadas por uma chave privada. As chaves são geradas como se segue:


1- Escolher dois números primos distintos p e q (para propósitos de segurança, os números devem ser escolhidos aleatoriamente)

2- Fazer n = pq (n é usado como o módulo aritmético para ambas as chaves pública e privada)

3- Fazer φ(n) = (p – 1)(q – 1), onde φ(n) é conhecido como função de euler totiente

4- escolher um número inteiro "e", onde 1 < e < φ(n) e gcd(e,φ(n)), ou seja, "e" e φ(n) sao co-primos (primos entre si)

"e" é lançado como o o expoente da chave pública

Para uma criptografia mais eficiente, "e" deve ser de tamanhao curto

5- Determinar d = e–1 mod φ(n), ou seja, "d" é o multiplicativo modular inverso de φ(n)

d é conhecido como o expoente da chave privada

A chave pública consiste do módulo n e o expoente público "e". A chave privada consiste no expoente "d", que deve ser mantido em segredo.


Diffie-Hellman é um método específico de troca de chaves. Foi um dos primeiros exemplos práticos de troca de chaves no campo da criptografia.

O método de troca de chaves Diffie-Hellman permite que duas partes, que não tem nenhum conhecimento a priori uma da outra, sejam capazes de estabelecer uma chave secreta comum sobre um canal de comunicações nao confiável.

O algoritmo é utilizado em autenticação de senhas e chaves públicas.


  • Referências: