Você está na página 1de 30

Redes de Computadores II

Parte II
Sumário
„ Criptografia
„ Conceitos
„ Aplicação
„ Chave Simétrica
„ Chave Pública
„ Algoritmos
„ Cifrário Monoalfabético
„ DES
„ RSA
„ VPN
„ Conceitos
„ Aplicação
Criptografia- Conceitos
• Criptografia é o estudo das técnicas matemáticas
relacionadas aos aspectos da Segurança da
Informação como Sigilo, Integridade de Dados,
Autenticação de origem
• O estudo da criptografia consiste de um número
de primitivas (Tarefas Básicas e Algoritmos) que
podem ser combinadas para prover um completo
nível de serviços para segurança da Informação
Segurança em Redes
Criptografia
Embora a criptografia tenha uma longa história que remonta, no mínimo, a
Júlio César (cifrário de César), as modernas técnicas de criptografia,
incluindo muitas das usadas na Internet de hoje, são baseadas em progressos
feitos nos últimos 30 anos.

O livro de Kahn The codebreakers [Kahn, 1967] nos oferece um


fascinante panorama dessa longa história. [Kaufman, 1995] apresenta uma
Discussão técnica detalhada (mas interessante e de fácil leitura) sobre
criptografia, sobretudo do ponto de vista da rede. [Diffie, 1998] fornece uma
análise atraente e atualizada das questões políticas e sociais (a respeito, por
exemplo, da privacidade) que hoje estão inextricavelmente entrelaçadas com
a criptografia. Uma discussão completa sobre a criptografia exige um livro
inteiro [Kaufman, 1995; Schneier, 1995];

Portanto, apenas trataremos de seus aspectos essenciais, em particular do


modo como as técnicas criptográficas são postas em prática na Internet de
hoje. Dois excelentes sites são [Kessier, 1998] e a página de perguntas e
respostas mais freqüentes (FAQ) do RSA Labs [RSA FAQ, 1999].
Segurança em Redes
Criptografia
As técnicas criptográficas permitem que um remetente
disfarce os dados de modo que um intruso não consiga
obter nenhuma informação com base nos dados
interceptados. O destinatário, é claro, deve estar
habilitado a recuperar os dados originais a partir dos
dados criptografados.
Segurança em Redes
Criptografia
„ Suponha agora que Alice queira enviar uma mensagem a
Bob. A mensagem de Alice em seu modelo original (por
exemplo, "Bob, I Love you. Alice") é conhecida como
texto aberto ou texto claro.

„ Alice criptografa sua mensagem em texto aberto usando


um algoritmo de criptografia, de modo que a
mensagem criptografada, conhecida como texto cifrado,
pareça ininteligível para qualquer intruso. O interessante é
que em muitos sistemas criptográficos modernos,
incluindo os usados na Internet, a técnica de codificação é
conhecida — publicada, padronizada, ] e disponível para
qualquer um, mesmo para um intruso em potencial!
Segurança em Redes
Criptografia
„ Evidentemente, se todos conhecem o método para
codificar os dados, então deve haver algum pedaço de
informação secreta que impede que um intruso decifre os
dados transmitidos.
„ É aqui que entra o segredo da chave. Na Figura anterior,
Alice fornece uma chave, KA, uma cadeia de números ou
de caracteres como entrada para o algoritmo de
criptografia.
„ O algoritmo de criptografia pega essa chave KA e o
texto aberto como entrada e produz o texto cifrado como
saída.
„ De maneira semelhante, Bob fornecerá uma chave KB ao
algoritmo de decriptografia que pega o texto cifrado e
a chave KB de Bob como entrada e produz o texto original
como saída.
Segurança em Redes
Chave Simétrica e Chave Pública
„ Nos denominados sistemas de chaves
simétricas, as chaves de Bob e Alice são
idênticas e secretas.
„ Nos sistemas de chaves públicas, é usado um
par de chaves. Uma das chaves é conhecida por
Bob e por Alice (na verdade é conhecida pelo
mundo inteiro). A outra chave é somente
conhecida por Bob ou por Alice (mas não por
ambos). Nas duas subseções seguintes, veremos
em detalhes os sistemas de chaves simétricas e
de chaves públicas.
Segurança em Redes
Chave Simétrica
Todos os algoritmos criptográficos envolvem a
substituição de um dado por outro, como, por
exemplo, tomar um trecho de um texto e então,
calculando e substituindo esse texto por outro
cifrado, criando uma mensagem cifrada. Antes de
examinarmos o sistema criptográfico moderno
baseado em chaves, vamos abordar um velho
algoritmo de chaves simétricas muito simples —
atribuído a Júlio César — conhecido como cifra de
César (uma cifra é um método para criptografar
dados).
Segurança em Redes
Chave Simétrica
„ Vocabulário termos comuns:
„ Criptografia (kriptós = escondido, oculto; grápho = grafia) : é a
arte ou ciência de escrever em cifra ou em códigos, de forma a
permitir que somente o destinatário a decifre e a compreenda.
„ Criptoanálise (kriptós = escondido, oculto; análysis =
decomposição) : é a arte ou ciência de determinar a chave ou
decifrar mensagens sem conhecer a chave. Uma tentativa de
criptoanálise é chamada ataque.
„ Criptologia (kriptós = escondido, oculto; logo = estudo, ciência) :
é a ciência que reúne a criptografia e a criptoanálise.
„ Cifrar – codificar ou criptografar uma mensagem
„ Decifrar – oposto ao acima
„ Cifrário – Técnica específica para codificar ou decodificar
mensagens
Segurança em Redes
Chave Simétrica – Cifra de César
A cifra de César funciona tomando cada letra da
mensagem do texto aberto e a substituindo pela
k-ésima letra sucessiva do alfabeto (permitindo a
alternância das letras do alfabeto, isto é, a letra 'z'
seria seguida novamente da letra 'a'). Por
exemplo, se k = 3, então a letra 'a' do texto
aberto fica sendo 'd' no texto cifrado; 'b' no texto
aberto se transforma em 'e' no texto cifrado, e
assim por diante.

alfabeto puro: a b c d e f g h i j k l m n o p q r s t u v x y w z
alfabeto Cesar: D E F G H I J K L M N O P Q R S T U V X Y Z A B C D
Segurança em Redes
Chave Simétrica – Cifra de César
No cifrário de César o valor de k serve de
chave.
Por exemplo, a mensagem "bob, I Love you
alice." se toma "ere, l oryh brx. dolfh." em
texto cifrado.
Embora o texto cifrado realmente pareça
não ter nexo, você não levaria muito tempo
para quebrar o código se soubesse que foi
usada a cifra de César, pois há somente 25
valores possíveis para as chaves.
Segurança em Redes
Chave Simétrica – Cifra Monoalfabética
Um aprimoramento da cifra de César é a denominada
cifra monoalfabética, que também substitui uma letra
do alfabeto por outra.
Contudo, em vez de substituir as letras seguindo um
padrão regular (por exemplo, substituição por um
deslocamento de k para todas as letras), qualquer letra
pode ser substituída por qualquer outra, contanto que
cada letra tenha uma letra substituta exclusiva e vice-
versa. A regra de substituição apresentada abaixo
mostra uma regra possível para codificar textos
abertos:

alfabeto puro: a b c d e f g h i j k l m n o p q r s t u v x y w z
Monoalfabético: m n b v c x z a s d f g h j k l p o i u y t r w e q
Segurança em Redes
Chave Simétrica – Cifra Monoalfabética
A mensagem do texto aberto "bob, i love you. alice. " se torma "nkn , s gktc
wky. mgsbc." Como aconteceu no caso da cifra de César, o texto parece sem
nexo. A cifra monoalfabética também parece ser melhor que a cifra de César,
pois há 26! (1O26) possíveis pares de letras, em vez de 25 pares possíveis!

Usar a 'força bruta' para experimentar 1O26 pares demandaria um esforço


demasiadamente grande e impediria que esse fosse um método exeqüível
para quebrar o algoritmo criptográfico e decodificar a mensagem.

Contudo, fazendo-se a análise estatística do texto aberto, por exemplo, e


sabendo quais letras e grupos de letras são mais freqüentes nos textos do
idioma em questão, toma-se relativamente fácil quebrar esse código.

Se o intruso tiver algum conhecimento sobre o possível texto da mensagem,


então ficará mais fácil ainda quebrar o código. Por exemplo, se a intrusa
Trudy for a esposa de Bob e suspeitar que ele está tendo um caso com Alice,
ela poderá imaginar que os nomes 'bob' e 'alice' aparecem no texto.
Segurança em Redes
Chave Simétrica – D E S
DES (data encryption standard — padrão para criptografia de dados)

É um padrão de criptografia de chaves simétricas desenvovido em 1977 e


atualizado mais recentemente em 1993 pelo U.S. National Bureau of
Standards para uso comercial e não confidencial do governo norte-americano.

O DES codifica o texto aberto em porções de 64 bits usando uma chave de 64


bits. Na verdade, oito desses 64 bits da chave são bits de paridade ímpar (há
um bit de paridade para cada um dos 8 bits), de modo que a chave DÊS tem
efetivamente 56 bits de comprimento.

O National Institute of Standards (sucessor do National Bureau of Standards)


assim estabelece o objetivo do DÊS:
"O objetivo é embaralhar completamente os dados e a
chave, de modo que todos os bits do texto cifrado
dependam de todos os bits de dados e de todos os bits
da chave (...) com um bom algoritmo, não deverá haver
nenhuma correlação entre o texto cifrado e os dados
originais e a chave"
Segurança em Redes
Chave Simétrica – D E S - Operação
A operação básica do DES é ilustrada na Figura a seguir.

DES consiste em dois estágios de permutação (o primeiro e o último passo do


algoritmo), nos quais todos os 64 bits são-permutados, havendo 16 'rodadas'
idênticas de operação entre eles. Estas rodadas ocorrem da seguinte forma:

1- A operação de cada rodada é idêntica e toma a saída de dados da rodada


anterior como entrada.
2- Durante cada rodada, os 32 bits da extrema direita da entrada são
deslocados para os 32 bits da esquerda da saída.
3- Toda a entrada de 64 bits até a i-ésima rodada e a chave de 48 bits para a
i-ésima rodada (derivada da chave DES maior de 56 bits) são tomadas como
entrada para uma função OU exclusivo com a chave Ki de 48 bits
4- A saída de 32 bits resultante da função é então usada como os 32 bits da
extrema direita da saída de 64 bits da rodada, como mostra a Figura.

Obs.: A decriptografia funciona pela reversão das operações dos algoritmos.


Segurança em Redes
Chave Simétrica – D E S - Operação
„ Até que ponto o DES funciona? Até que ponto ele é seguro? Ninguém pode ter
certeza
„ a RSA Data Security Inc., lançou um desafio (DES Challenge) para 'quebrar'
(decodificar) uma frase curta que tinha sido criptografada usando o DES de 56
bits. A frase "Strong cryptography makes the world a safer place." (a boa
criptografia faz do mundo um lugar mais seguro) foi decodificada em menos
de quatro meses por uma equipe que usou voluntários por toda a Internet
para explorar sistematicamente o espaço de chaves.
„ DES Challenge III que aconteceu em 1999, foi vencido no tempo recorde de
pouco mais de 22 horas por uma rede de voluntários e um computador
especialmente construído para a ocasião, que custou menos de 250 mil
dólares (apelidado de 'Deep Crack') e está documentado na Internet
„ Se o DES de 56 bits for considerado muito inseguro, pode-se simplesmente
rodar o algoritmo de 56 bits múltiplas vezes, tomando a saída de 64 bits de
uma iteração do DÊS como entrada para a iteração DÊS seguinte e usando
uma chave criptográfica diferente para cada rodada.
„ Por exemplo, o chamado DÊS triplo (3DES), um padrão proposto pelo
governo norte-americano [Nist, 1999b], é o padrão de criptografia para o PPP
[RFC 2420] para a camada de enlace
Segurança em Redes
Chave Pública
„ O uso da criptografia de chaves públicas é bastante simples. Suponha
que Alice queira se comunicar com Bob. Ao invés de Bob e Alice
compartilharem uma única chave secreta (como no caso dos sistemas
de chaves simétricas), Bob (o destinatário das mensagens de Alice)
tem duas chaves — uma chave pública, que está à disposição do
mundo todo (inclusive à disposição de Trudy, a intrusa), e uma chave
privada, que apenas ele (Bob) conhece. Para se comunicar com Bob,
Alice busca primeiramente a chave pública de Bob. Em seguida, ela
criptografa sua mensagem usando a chave pública de Bob e um
algoritmo criptográfico conhecido

„ Bob recebe a mensagem criptografada de Alice e usa sua chave


privada e um algoritmo de decriptografia conhecido para decifrar a
mensagem de Alice. Dessa maneira, Alice pode enviar uma mensagem
secreta a Bob sem que nenhum deles tenha de permutar alguma
chave secreta!
Segurança em Redes
Chave Pública
„ Com duas chaves, não precisamos ficar presos a uma "troca" para o
processo de decodificação. Cada um poderá possuir sua chave pública
e sua chave privada. Como o próprio nome já diz, a chave privada é
de conhecimento único e exclusivo seu. Já a pública deve estar
disponível a quem quiser lhe enviar informações encriptadas.
„ Como a encriptação/decriptação depende das duas chaves, se você
quiser, por exemplo, enviar uma mensagem criptografada, deve
encriptá-la com a nossa chave pública. Como dito anteriormente, a
única chave que decripta esta mensagem é o par da chave pública, ou
seja, nossa chave privada! Presto! Somente nós conseguiremos ler a
mensagem (desde que nossa chave privada seja mantida em um lugar
seguro).
„ Continuando nosso exemplo, caso nós queiramos mandar uma
mensagem criptografada para você, nós primeiro consiguimos uma
cópia da SUA chave pública e a uso na encriptação. Somente sua
chave privada poderá decriptar esta mensagem, e mesmo que a
mensagem tenha sido interceptada, não passará de um conjunto de
caracteres malucos...
Segurança em Redes
Chave Pública
„ Usando a notação da figura, para qualquer mensagem m,
dg(eg(m)) = m, isto é, aplicando a chave pública de Bob,
eg, e em seguida a chave privada de Bob, dg, à
mensagem m, recuperamos m. Veremos em breve que
podemos permutar as chaves criptográficas pública e
privada e obter o mesmo resultado, isto é, e^d^m)) =
dg(eg(m)) = m.
Segurança em Redes
Chave Pública - RSA
„ Em 1978 foi criado o algoritmo RSA (dos nomes
dos seus autores Rivest, Shamir e Adleman), que
até o momento é a forma mais usada de
criptografia assimétrica. Mas foi apenas nos anos
90 que seu uso se tornou amplo em comunicação
entre desconhecidos, como em transações
seguras na Internet, e no correio eletrônico
seguro. Estas aplicações requerem a
intermediação de "cartórios eletrônicos", como
aqueles operados pelas empresas Verisign ou
Certisign, esta última brasileira, responsáveis pela
certificação dos donos das chaves públicas.
Segurança em Redes
Chave Pública - RSA
O RSA é basicamente o resultado de dois cálculos matemáticos.
Um para cifrar e outro para decifrar. O RSA usa duas chaves
criptográficas, uma chave pública e uma privada. No caso da
criptografia assimétrica tradicional, a chave pública é usada para
criptografar a mensagem e a chave privada é usada para
decriptografar a mensagem.
A segurança desse método se baseia na dificuldade da fatoração
de números inteiros extensos. Em 1977, os criadores do RSA
achavam que uma chave de 200 bits requereriam 1015 anos,
porém chaves com 155 bits foram atacadas em menos de 8
meses. A saída é que na medida que os algoritmos se tornem
melhores e os computadores se tornem mais velozes, maiores
serão as chaves. Atualmente chaves com 300 dígitos (1000 bits)
nos dão uma tranqüilidade por algum tempo. Em níveis
críticos, chaves com 2000 bits começam a ser usadas.
Segurança em Redes
Chave Pública - RSA
Para tanto vale lembrar que “M” é a mensagem
que queremos cifrar (plaintext), “C” é a
mensagem cifrada, “e” é a chave pública, “d” é
a chave privada e “n” é um número que é
calculado e que todos sabem (público).

Criptografar: C = Me mod n
Decriptografar: M = Cd mod n
Segurança em Redes
Chave Pública - RSA
Para gerar a chave precisamos de algumas coisas:
1. Selecionar dois números primos p e q
grandes (geralmente maior que10100)
2. Calcule o valor de n = p . q
3. Calcule øn= (p-1) (q-1)
4. Selecione um inteiro “d” relativamente primo
à øn
5. Calculamos “e” de forma: (e . d) mod øn = 1
Segurança em Redes
Chave Pública - RSA
Vejamos um exemplo:
1. p = 3 e q = 11
2. n = 3 * 11, logo n = 33
3. øn (3-1) (11-1), portanto øn =20
4. d é um inteiro relativamente primo à øn mdc(d, øn)=1,
e atende 1 < d < øn , assim d = 7 (Chave Privada)
(9, 11, 13, 15, 17 e 19 seriam outras opções)
(não seria possível 5 já que 5 vezes 4 = øn que é (20))
Segurança em Redes
Chave Pública - RSA
5. Calculamos “e” de forma que (e . 7) mod 20 = 1
e = 1 => (1.7) = 7 mod 20 ≠ 1 => falso
e = 2 => (2.7) = 14 mod 20 ≠ 1 => falso
e = 3 => (3.7) = 21 mod 20 = 1 => verdadeiro
(outros múltiplos de 3 seriam possíveis (6,9,12,
etc)).
Portanto teríamos
Chave Pública = {3, 33} e
Chave Privada = {7, 33}.
Segurança em Redes
Chave Pública - RSA
Lembrando que neste caso e, d e n tem menos de 26, então temos
apenas 6 bits.

Se tivéssemos um texto com o número 20, uma mensagem


cifrada seria:
C = Me mod n
C = 203 mod 33
C = 8000 mod 33
C = 14
„
Segurança em Redes
Chave Pública - RSA
E para decifrar:
M = Cd mod n
M = 147 mod 33
M = 105.413.504 mod 33
M = 20

“Para calcular o módulo dividir na calculadora o valor


dejado pelo módulo, pegar o resto e multiplicar pelo
módulo.”
Segurança em Redes
Assinatura Digital - Autenticidade
Assinatura Digital
A criptografia por chaves assimétricas vale para ambos os
lados: Pública » Privada e Privada » Pública. Vamos
supor que nós ciframos uma mensagem com a nossa chave
PRIVADA! Qual é a única chave capaz de decriptá-la?
“A chave PÚBLICA". O que aparentemente não é muita vantagem,
pois todos têm acesso à nossa chave pública e poderão ler a
mensagem. Mas...
Aí está! Realmente, todos os que possuírem nossa chave pública
poderão ler nossa mensagem, mas também é verdadeiro
que, se foi possível decifrar com nossa chave pública, é
porque ela foi cifrada com nossa chave privada! Como as
únicas pessoas que sabem a nossa chave privada somos nós,
está assegurada a nossa identidade como autores daquela
mensagem.

Você também pode gostar