Professor MSc. Ciro Meneses Santos
Professor MSc. Ciro Meneses Santos
Data: 06/03/2010
Data: 06/03/2010
P
P
ó
ó
s Gradua
s Gradua
ç
ç
ão em Adm de Redes
ão em Adm de Redes
Conteúdo
Deslocamento ou método de César
Tabela de Transformação
Método Vigenere
Método de Vernam
XOR – Ou – Exclusivo
Introdução
• Criptografia, do grego kryptós = (escondido,
oculto) + grápho = (grafia, escrita). É a arte ou a ciência de escrever em cifra ou em código;
Criptoanálise, do grego kryptos + analysis =
decomposição. É a arte ou a ciência de determinar a chave ou decifrar mensagens sem conhecer a chave.
Criptologia, do grego kryptós + lógos = estudo,
ciência. É a ciência que reúne a criptografia e a criptoanálise.
Introdução
Criptologia - É então o estudo de sistemas para
comunicações secretas, consistindo de dois campos de estudo competitivos entre si:
Criptografia – O projeto de sistemas de
comunicação secreta.
Criptoanálise – O estudo das formas de burlar
ou “quebrar” os sistemas de comunicação secreta.
• Em outras palavras, é um conjunto de técnicas que permitem tornar incompreensível uma
mensagem originalmente escrita com clareza, de forma a permitir normalmente que apenas o
destinatário a decifre e compreenda. Quase
sempre o deciframento requer o conhecimento de uma chave, uma informação secreta
disponível ao destinatário.
Terceiros podem através de “escuta” ter acesso à mensagem cifrada e determinar o texto original ou mesmo a chave, “quebrando”o sistema.
A maior aplicação da criptologia no passado foi em sistemas de comunicação militar e
diplomático.
Sua utilização durante a segunda Guerra, e a conseqüente quebra dos códigos alemão e
japonês, foi fundamental para o sucesso dos aliados.
Com o passar do temo outras aplicações de criptologia foram surgindo
1. Os sistemas de arquivos dos computadores (onde cada usuário gostaria de manter privados os arquivos de seu computador).
2. E transferências de informação ou “dinheiro” por meio eletrônico (onde grande quantidade de dinheiro está envolvida).
3. Transações eletrônicas, compras on-line com número de cartão de crédito, acesso à conta corrente para saldo e transações bancárias.
A criptologia tem muita afinidade com ciência da computação e algoritmos, especialmente a
aritmética e processamento de strings. De fato, a arte ou a ciência da criptologia está intimamente relacionada com os computadores e a ciência da computação, e ainda está ao início, longe de ser totalmente entendida. Como os algoritmos, os
sistemas de criptografia existiam muito antes dos computadores. Projeto de sistemas secretos e
projeto de algoritmos tem uma herança comum, e as mesmas pessoas se sentem atraídas por ambos.
Ainda não se sabe que ramo da criptologia tem sido mais afetado pela disponibilidade de
computadores. Os que lidam com criptografia têm agora uma “máquina” para criptografar muito
mais poderosa que antigamente. Entretanto, os que trabalham com criptoanálise também
possuem um potencial muito maior para quebrar códigos. Mas , os códigos a serem quebrados são muito mais complicados que os anteriormente utilizados.
Terminologia
Remetente (R) deseja enviar uma mensagem (M) para o destinatário (D).
Transforma (M) em um texto secreto, chamado texto cifrado (C) usando um algoritmo de criptografia inverso e uma
chave (K) e então envia o texto cifrado.
O destinatário usa um algoritmo de criptografia inverso e uma chave (K), que possibilita transformar o texto cifrado (C) de volta à mensagem original (M).
R M C D
K
C
K
Deslocamento ou
Método de César
A cada letra é dado um valor de acordo com sua posição no alfabeto, conforme a tabela abaixo (assumimos que o espaço em branco tem o valor 0)
A B C D E F G H I J K L M N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
O P Q R S T U V W X Y Z 15 16 17 18 19 20 21 22 23 24 25 26
Ao criptografar um texto contendo outros caracteres, como pontuação e números, precisamos considerá-los como parte do alfabeto e estabelecer uma ordem entre eles.
Deslocamento
Se uma letra ocupa a n-ésima posição no alfabeto (tem um valor n) será substituída pela
(n+k)-ésima letra no alfabeto (a letra de valor n+k), onde k é um número fixo inteiro.
Os exemplos abaixo mostram como umas
mensagem seria criptografada por este método. Mensagem: ATACAR DE MADRUGADA
Texto cifrado com k=1: BUBDBSAEDANBESVHBEB Mensagem: ATACAR DE MADRUGADA Texto cifrado com k=3:
Deslocamento
• Para se decifrar um texto cifrado C, as letras com valor n são substituídas pelas letras com valor n-k, gerando-se a mensagem original M. • Neste método assumimos aritmética modular,
ou seja, não usamos propriamente n+k mas (n+k) mod TAM, onde TAM é o tamanho do alfabeto.
• Consideramos alfabeto com 27 possíveis
caracteres. Englobando as 26 letras e o espaço em branco. Desta forma, a letra X cifrada com k =7 seria transformada em uma letra D pois (24 + 7) mod 27 = 4.
Deslocamento
• Este método é bastante fraco. Existem apenas 27 chaves possíveis. Um criptoanalista poderia facilmente testar todas
as chaves. Além disso é bastante sensível à análise de freqüência.
• Em um texto qualquer da língua portuguesa a letra mais freqüente é, quase sempre, a letra A ou E. o criptoanalista nem precisaria testar todas as chaves, bastaria descobrir a letra mais freqüente no texto cifrado C e descobria a chave k, conseqüentemente a mensagem M.
Deslocamento
Texto cifrado: EXEGEVDEQERLE Letra mais freqüente: E
Então E corresponde ao A, logo K = 4. Mensagem: ATACAR AMANHA
Texto cifrado: TQYFWEUFWFEHFXF Mensagem: ???
Tabela de transformação
• Um método bem melhor que deslocamento
simples é utilizar uma tabela geral para definir como as letras são substituídas.
• Cada letra do texto será substituída por uma outra letra de acordo com a transformação indicada na tabela.
• Neste caso a chave usada para cifrar o texto é a tabela de transformação.
Tabela de transformação
• O exemplo abaixo mostra uma possível tabela de transformação e uma mensagem cifrada com esta tabela.
A B C D E F G H I J K L M N U G R B N D Y M C Z S E D P O O P Q R S T U V W X Y Z
F Q H T I W J X K V A L
Texto cifrado: ATACAR DE MADRUGADA Mensagem: GWGBGTUNDUPGNTJMGNG
Tabela de transformação
• O criptoanalista teria mais trabalho pois existem muitas chaves a serem testadas para se ter a certeza da mensagem original.
• São cerca de 27!, mais de 1028 chaves possíveis.
• Entretanto o método ainda é sensível à análise de freqüência: através de contagem consegue-se facilmente descobrir a letra A ou E (as mais freqüentes em português), diminuindo bastante o número de chaves a se testar.
• Também poderia ser analisada a freqüência de duas letras seguidas, descobrindo-se certas combinações com DE que ocorrem muito em português e evitar testar chaves que proporcionariam combinações que não ocorrem em português, com QJ.
Método Vigenere
• Uma forma de evitar o ataque do criptoanalista baseado na freqüência é usar mais de uma tabela, ou mais de um deslocamento.
• O método de Vigenere é uma extensão do método do Deslocamento. A chave não é apenas um inteiro k que é usada para todas as letras da mensagem, mas uma pequena seqüência de inteiros, que são usados repetidamente.
• Geralmente esta seqüência de inteiros é representada por uma seqüência de letras, onde o A vale 1, B vale 2 e assim por diante. Neste caso o valor da letra da chave é adicionado ao valor da letra da mensagem para se determinar
Método Vigenere
Mensagem: ATACAR DE MADRUGADA Chave ABC: ABCABCABCABCABCABCA Texto Cifrado: BVDDCUAFHAODETXHCGB
• No exemplo a letra M (valor 13) é somada ao B (valor 2) da chave resultando em O (valor 15).
Mensagem: ATACAR DE MADRUGADA Chave DCBA: DCBADCBADCBADCBADCB Texto Cifrado: EWCDEUBEICOBHUWHEGC
• No exemplo a letra G (valor 7) é somada ao A (valor 1) da chave resultando em H (valor 8).
Método Vigenere
• Note que as letras A da mensagem foram transformadas em B, C e D, dependendo da posição dentro do texto. Além disto, um dos D’s do texto cifrado corresponde ao segundo A de ATACAR e outro ao C de ATACAR. Assim percebe-se que a freqüência não ajuda tanto o criptoanalista.
• Este método pode ser melhorado aplicando-se uma tabela de transformação e não um deslocamento simples.
• É claro que quanto maior a chave mais seguro se torna o método. Porém mais complicada se torna a distribuição das chaves.
Método de Vernam
• Este nome é dado quando se usa o método de Vigenere com uma chave tão grande quanto o
texto. Como a chave é do tamanho do texto, cada posição da chave é usada apenas uma vez ao
cifrar uma mensagem.
• Este é o único método comprovadamente seguro. • Como cada letra da chave é usada apenas uma
vez, o criptoanalista teria que testar todas a possíveis letras de chave para cada posição da mensagem. Isto é o mesmo que tentar todas as possíveis mensagens... Há noticias de que este tenha sido o método usado na comunicação
Washington-Moscou e em outras comunicações vitais.
Método de Vernam
Mensagem: ATACAR DE MADRUGADA Chave : CRIPTOLOGIACRIPTOLO Texto Cifrado: ?
• No exemplo a letra M (valor 13) é somada ao A (valor 1) da chave resultando em N (valor 14).
Mensagem: ATACAR DE MADRUGADA Chave: KRYPTOSGRAPHOLOGOSS Texto Cifrado: ?
XOR – Ou-Exclusivo
• Se a mensagem e a chave são codificadas em binário, um esquema comum de cifrar posição por posição é utilizar a função “ou-exclusivo”. Para cifrar a mensagem fazemos um “ou-exclusivo” bit-a-bit da mensagem com a chave, ou seja, cada bit do texto cifrado será o resultado2 de um “xor” do bit do texto original e o bit da senha.
• Uma característica interessante é que para decifrar a mensagem utilizamos exatamente o mesmo processo que usamos para cifrar.
XOR – Ou-Exclusivo
• O texto cifrado é o “ou-exclusivo” bit-a-bit da mensagem com a chave, mas ao fazermos um “ou-exclusivo: da chave com o texto cifrado obtemos novamente a mensagem original.
• Neste caso vale ressaltar que se o criptoanalista conseguir a mensagem e o texto cifrado um “ou-exclusivo”lhe revela a chave.
XOR – Ou-Exclusivo
• O exemplo abaixo considera cada dígito da mensagem, senha e texto cifrado como sendo representado por uma seqüência de 3 bits:
• O resultado do XOR é 0 para bits iguais e 1 para bits diferentes.
Mensagem: 735 → 111 011 101 Chave ABC: 5 → 101
Método de chave publica
RSA
• RSA é um sistema de criptografia de chave pública tanto para cifrar quanto para autenticação de dados, foi inventado em 1977 por Ron Rivest, Adi Shamir e Leonard Adleman, pesquisadores do MIT.
• A principal vantagem da criptografia baseada em chave pública é a sua maior segurança em relação a criptografia baseada em chave secreta. No sistema baseado em chave pública as chaves privadas nunca precisam ser transmitidas ou recebidas a ninguém.
Procedimento de cifragem
e decifragem
• RSA é um sistema de criptografia de chave pública tanto para cifrar quanto para autenticação de dados, foi inventado em 1977 por Ron Rivest, Adi Shamir e Leonard Adleman, pesquisadores do MIT.
• A principal vantagem da criptografia baseada em chave pública é a sua maior segurança em relação a criptografia baseada em chave secreta. No sistema baseado em chave pública as chaves privadas nunca precisam ser transmitidas ou recebidas a ninguém.
Procedimento de cifragem
e decifragem
• Estabelecer dois números primos grandes p e q, e definir o módulo n como sendo n = pq.
Os fatores p e q devem ser mantidos em segredo; • Estabelecer um inteiro qualquer d que seja
relativamente primo ao inteiro (p – 1)( q – 1);
• Encontrar o valor de e na faixa 1 < = e < = (p – 1)(q – 1) tirando da fórmula ed = 1( mod( p – 1)( q – 1));
• Sendo assim é conhecida a chave pública, formada pelo par de inteiros (e,n);
• Representar a mensagem M que será transmitida como um inteiro na faixa { 1,..., n); se a mensagem M for muito grande, deve-se colocá-la em blocos;
• Criptografar M num criptograma C da seguinte forma: C = Me (mod n);
Procedimento de cifragem
e decifragem
Tanto o remetente quanto o destinatário tem que saber o valor de n, o remetente sabe o valor de e e somente o destinatário sabe o valor de d. Portanto, é um algoritmo de criptografia de chave pública com uma chave pública KU = {e,n} e uma chave privada que é KR = {d,n}.
Algumas questões têm que ser satisfeitas para este algoritmo de criptografia funcionar satisfatoriamente. As condições são: seja possível achar valores de e, d, n tais que Med = M mod n
para todo M < n, seja relativamente fácil calcular Me e Cd para todos os valores de M < n e seja
Criptografia RSA
Para criar uma chave RSA precisamos escolher dois números primos grandes, geralmente este números são maiores que 10100,
Escolhemos dois números primos "p" e "q".
p = 3 q = 11
Calcula-se então n e z
n = p*q = 33
Criptografia RSA
Calcula-se então d e e
Em seguida deveremos escolher um número primo em relação a z que será associado a d, o único requisito é que não haja fatores comuns entre eles, o 7 não tem favor comum com 20.
d = 7
Calcula-se um número que será associado a e, (e * d) mod z = 1
(3 * 7) mod 20 = 1
Criptografia RSA
p = 3 q = 11 n = 33 z = 20 d = 7 e = 3Chave pública e, n Kpu = {3, 33} Chave privada d, n Kpr = {7, 33}
A B C D E F G H I J K L M N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
O P Q R S T U V W X Y Z 15 16 17 18 19 20 21 22 23 24 25 26
texto cripto = (texto original) mod n
texto original = (texto cripto) mod n
d e
Criptografia RSA
Chave privada d, n
Kpr = {7, 33}
Com exemplo vamos encriptar de desencriptar a letra "m“ e “o”, para isso veremos qual o número correspondente na tabela acima e verificamos que é o número 13, então:
texto criptografado = 13 ^ e mod n texto criptografado = 13 ^ 3 mod 33 texto criptografado = 19
Convertendo o valor para a tabela padronizada anteriormente teremos a letra "S". O destinatário ao receber a mensagem deverá descriptografá-la usando a fórmula usando os dados da chave privada:
texto original = 19 ^ d mod n texto original = 19 ^ 7 mod 33 texto original = 13
O número 13 é equivalente a letra “m" na tabela padronizada
Chave pública e, n