Post on 17-Nov-2020
Segurança de Redes de Computadores
Ricardo José Cabeça de Souza
www.ricardojcsouza.com.br
ricardo.souza@ifpa.edu.br
• CIFRAS DE FLUXO E DE BLOCO– Cifra de Fluxo
• É aquela que codifica um fluxo de dados digital um bit ou um byte de cada vez
– Cifra de Bloco
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• É aquela em que um bloco de texto claro é tratado como um todo
• Usado para produzir um bloco de texto cifrado com o mesmo tamanho
• Normalmente usa tamanho de bloco de 64 ou 128 bits
• Exige muito esforço para análise do bloco
• Cifra de Bloco
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Fonte da Imagem: http://www.projetoderedes.com.br/artigos/imagens/Image142.gif
• Cifra de Bloco – Espera-se que promova:
• Difusão– Cada bit do texto limpo deve afetar o maior
número de bits do criptograma– Desta forma escondemos propriedades
estatísticas da mensagem
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– Desta forma escondemos propriedades estatísticas da mensagem
• Confusão– Cada bit do criptograma deve ser uma função
complexa dos bits do texto claro– Desta forma torna-se “complicada” a relação
entre propriedades estatísticas do criptograma face às propriedades do texto claro
• Cifra de Bloco – Para cifrar mensagens cujo comprimento
ultrapasse o tamanho do bloco, existem vários modos de operação
• Electronic Codebook - ECB (livro de código eletrônico)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• Electronic Codebook - ECB (livro de código eletrônico)
• Cipher-Block Chaining - CBC (corrente de blocos)
• Electronic Codebook - ECB (livro de código eletrônico)
– A mensagem clara é fracionada em blocos de tamanho fixo e cada bloco é cifrado isoladamente
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
isoladamente
– No final, a mensagem cifrada é obtida pela concatenação dos blocos cifrados
• Electronic Codebook - ECB (livro de código eletrônico)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Cifragem com Electronic Codebook
• Electronic Codebook - ECB (livro de código eletrônico)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Decifragem com Electronic Codebook
• Electronic Codebook - ECB (livro de código eletrônico)
– Desvantagem deste método é que blocos de texto claro iguais produzem também blocos cifrados iguais
– Não esconde o padrão dos dados
– Este modo de operação não acrescenta nada à
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– Este modo de operação não acrescenta nada à confidencialidade proporcionada pela cifra
• Cipher-Block Chaining - CBC (corrente de blocos)
– É feita uma operação XOR entre cada novo bloco de texto claro com o bloco cifrado obtido na etapa imediatamente anterior
– Desta forma, cada um dos blocos cifrados
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– Desta forma, cada um dos blocos cifrados depende de todos os blocos de texto claro anteriores
XOR
• Cipher-Block Chaining - CBC (Corrente de Blocos)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• Cipher-Block Chaining - CBC (corrente de blocos)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• Cipher-Block Chaining - CBC (corrente de blocos)
– É um dos modos de operação mais utilizados
– Sua maior desvantagem é ser sequencial
– Como não pode ser usado em paralelo (pois sempre depende do resultado anterior), seu uso
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
sempre depende do resultado anterior), seu uso dificulta o processamento de blocos em paralelo, o que melhoraria o desempenho do método
• PCBC - Propagating Cipher-BlockChaining– Corrente de blocos em propagação
– Projetado para propagar ou esparramar melhor que o CBC
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
que o CBC
– Pequenas alterações no texto cifrado
– É usado quase que exclusivamente no Kerberos e no WASTE
• PCBC - Propagating Cipher-BlockChaining
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• PCBC - Propagating Cipher-BlockChaining
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• CFB - Cipher FeedBack – O texto cifrado (depois da etapa XOR) realimenta
o método ao invés da saída da cifra de bloco (antes da etapa XOR)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• CFB - Cipher FeedBack
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• CFB - Cipher FeedBack
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• OFB - Output FeedBack– Transforma uma cifra de bloco num gerador de números
pseudo-aleatórios– O texto cifrado realimenta a cifra de bloco e este processo
é repetido para produzir um fluxo de bits pseudo-randômicos
– O fluxo de bits é totalmente determinado pelo algoritmo,
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– O fluxo de bits é totalmente determinado pelo algoritmo, pela chave, por um vetor de inicialização e pelo número de bits que realimentam a cifra em cada etapa
– O fluxo de bits pode então servir para fazer uma operação XOR com o texto claro afim de produzir o texto cifrado, transformando efetivamente a cifra de bloco numa cifra de fluxo
• OFB - Output FeedBack
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• OFB - Output FeedBack
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• Cifra de Feistel– A entrada é quebrada em dois blocos de
mesmo tamanho, geralmente chamados de esquerdo (L - left) e direito (R - right), que são repetidamente ciclados através do algoritmo
– Em cada ciclo, uma função hash (f) é aplicada no bloco direito e na chave, e o resultado do hash é usado para fazer um
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
resultado do hash é usado para fazer um XOR com o bloco esquerdo
– Depois disto, os blocos são trocados– O resultado do XOR torna-se o novo
bloco direito e o bloco direito inalterado torna-se o bloco esquerdo
– O processo é então repetido algumas vezes
• Cifra de Feistel– Na decifração, o texto cifrado é dividido nos blocos
esquerdo e direito– A chave e o bloco bloco direito são submetidos à
função hash para se obter o mesmo resultado hash usado no último ciclo da cifragem (observe que o bloco direito permanece inalterado no último ciclo da
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
bloco direito permanece inalterado no último ciclo da cifragem)
– Depois disto é feito um XOR entre o hash e o bloco esquerdo para reverter o último ciclo da cifragem e o processo é repetido até que todos os ciclos tenham sido revertidos
• CTR – Counter– Transforma a cifra de bloco numa cifra de fluxo– Ele cria o próximo bloco de fluxo de chave cifrando os valores
sucessivos de um "contador“– O contador pode ser qualquer função simples que produza uma
sequência que, com certeza, só será repetida depois de um longo intervalo de tempo
– Apesar dessa exigência, os contadores simples são os mais
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– Apesar dessa exigência, os contadores simples são os mais utilizados
– O modo CRT possui características muito semelhantes às do OFB(Output Feedback)
– É comprovadamente seguro se a cifra de bloco também for segura
• CTR – Counter
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• CTR – Counter
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR
• Proteção de Integridade e Propagação de Erro– Modos de operação não proporcionam qualquer
proteção de integridade
– Atacante, apesar de não conhecer a chave, pode
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– Atacante, apesar de não conhecer a chave, pode modificar o fluxo de dados
– Essencial que se adicione uma proteção de integridade para garantir a segurança
– Discussão da "propagação de erros"
• Proteção de Integridade e Propagação de Erro
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• O algoritmo DES (Data Encryption Standard)– Baseado em HORST FEISTEL e o algoritmo LUCIFER
– 15 maio 1977 a NBS (National Bureau of Standards) lançou desafio
– Criação algoritmo de codificação para atender aos seguintes objetivos:
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
seguintes objetivos:• Possuir um elevado nível de segurança ligado a uma chave
pequena que sirva para a codificação e descodificação
• Ser compreensível
• Não depender da confidencialidade do algoritmo
• Ser adaptável e econômico
• Ser eficaz e exportável
• O algoritmo DES (Data Encryption Standard)– Final de 1974, a IBM propõe “Lucifer”
– NSA (National Bureau of Standards) adotou o algoritmo LUCIFER com algumas modificações sob a denominação de Data Encryption Standard (DES)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
(DES)
– Usado para proteger transmissões e armazenamento de dados
– Adotado na mídia não digital, como nas linhas telefônicas públicas da época
• DES (Data Encryption Standard)– O algoritmo consiste em
efetuar combinações, substituições e permutações entre o texto a codificar e a chave, fazendo de modo a
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
chave, fazendo de modo a que as operações possam fazer-se nos dois sentidos (para a descodificação)
– A combinação entre substituições e permutações chama-se código produzido
Fonte da Imagem: http://static.commentcamarche.net/pt.kioskea.net/pictures/crypto-images-algodes.gif
• DES (Data Encryption Standard) – As grandes linhas do algoritmo são as seguintes:
• Fracionamento do texto em blocos de 64 bits (8 octetos)
• Permuta inicial dos blocos
• Corte dos blocos em duas partes: esquerda e direita,
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• Corte dos blocos em duas partes: esquerda e direita, nomeadas G e D
• Etapas de permuta e de substituição repetidas 16 vezes (chamadas voltas)
• Recolamento das partes esquerda e direita, seguida de uma permutação inicial inversa.
• DES (Data Encryption Standard)
– Trata-se de um sistema de codificação simétrico
– Usa blocos de 64 bits, dos quais 8 bits (um octeto) servem de teste de paridade (para verificar a integridade da chave)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
integridade da chave)
– Cada bit de paridade da chave (1 em cada 8 bits) serve para testar um dos bytes da chave por paridade ímpar
– A chave possui então um comprimento “útil” de 56 bits, o que significa que só 56 bits servem realmente no algoritmo
• DES (Data Encryption Standard) – O algoritmo consiste em:
• efetuar combinações, substituições e permutações entre o texto e a codificar e a chave
• As operações devem ser feitas nos dois sentidos (para a descodificação)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
descodificação)
– A combinação entre substituições e permutações chama-se código produzido
– A chave é codificada em 64 bits e formada por 16 blocos de 4 bits, geralmente denotados k
1à k
16
• DES (Data Encryption Standard)
– Existem duas entradas na função de criptografia
• Texto claro de 64 bits
• Chave criptográfica de 56 bits– Na realidade a função espera uma chave de 64 bits mas
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
– Na realidade a função espera uma chave de 64 bits mas somente 56 desses bits são usados
– Outros 8 bits podem ser usados como bits de paridade ou simplesmente definidos arbitrariamente
• DES (Data Encryption Standard)
– Algoritmo:
• Fracionamento do texto em blocos de 64 bits (8 octetos)
• Permuta inicial dos blocos
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• Permuta inicial dos blocos
• Corte dos blocos em duas partes: esquerda e direita, nomeadas G e D
• Etapas de permuta e de substituição repetidas 16 vezes (chamadasvoltas)
• Recolamento das partes esquerda e direita, seguida permutação inicial inversa
• DES (Data Encryption Standard)
– Permutação inicial
• Inicialmente, cada bit de um bloco é sujeito à permuta inicial
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- A entrada consiste de uma tabela com 64 bits numeradas de 1 a 64- Percorrer a matriz da esquerda para a direita e seguidamente de cima para baixo realizando a permutação dos números da entrada baseado na tabela de permutações
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
• DES (Data Encryption Standard)
– Permutação inicial
• Inicialmente, cada bit de um bloco é sujeito à permuta inicial, podendo ser representada pela matriz de permuta inicial (notada PI) seguinte:
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- O 58º bit do bloco de texto de 64 bits reaparece em primeira posição, o 50º em segunda posição e assim sucessivamente baseado na tabela de permutação PI
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
• DES (Data Encryption Standard)– Cisão em blocos de 32 bits
• Uma vez realizada a permuta inicial, o bloco de 64 bits é cindido em dois blocos de 32 bits, notados respectivamente G e D (para
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
respectivamente G e D (para esquerda e direita, a notação é L e Rpara Left and Right
• Marcamos como G0 e D0 o estado inicial destes dois blocos
Obs: G0 contém todos os bits que possuem uma posição par na mensagem inicial, enquanto D0
contém os bits de posição ímpar
• DES (Data Encryption Standard)
– Rondas
• Os blocos Gn(Left) e Dn(Right) são sujeitos a um conjunto de transformações iterativas chamadas voltas, esclarecidas neste esquema, e cujos detalhes são dados posteriormente
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
posteriormente
Função de Expansão
Função de Substituição
Chave da Voltan
• DES (Data Encryption Standard)
– Os 32 bits do bloco D0 são estendidos até 48 bits graças a uma tabela (matriz) chamada tabela de expansão (marcada como E), na qual os 48 bits são misturados e 16 dentre eles são duplicados
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
são misturados e 16 dentre eles são duplicados
Assim, o último bit de D0 (quer dizer, o 7º bit do bloco de origem) – (7:pos32 � 32:E) torna-se o primeiro, o primeiro(57:pos 1) torna-se o segundo,… Além disso, os bits 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29 e 32 deD0 (respectivamente 57, 33, 25, 1, 59, 35, 27, 3, 61, 37, 29, 5, 63, 39, 31 e 7 do bloco de origem) são duplicados e disseminados na matriz
• DES (Data Encryption Standard)
– OU exclusivo com a chave
• A matriz resultante de 48 bits é chamada D'0 ou E[D0]
• O algoritmo procede seguidamente a um OU exclusivo (XOR) entre a primeira chave K1 e E[D0]
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
(XOR) entre a primeira chave K1 e E[D0]
• O resultado deste OU exclusivo é uma matriz de 48 bits que chamaremos D0 por conveniência (não se trata do D0 do início!)
• DES (Data Encryption Standard)
– OU exclusivo com a chave
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Kn
b1 b2 b3 b4 b5 b6
D0
b1 b2 b3 b4 b5 b6b1 b2 b3 b4 b5 b6
b7 bb8 b9 b10 b11 b12
b13 b14 b15 b16 b17 b18
b19 b20 b21 b22 b23 b24
b25 b26 b27 b28 b29 b30
b31 b32 b33 b34 b35 b36
b37 b38 b39 b40 b41 b42
b43 b44 b45 b46 b47 b48
XOR
b7 bb8 b9 b10 b11 b12
b13 b14 b15 b16 b17 b18
b19 b20 b21 b22 b23 b24
b25 b26 b27 b28 b29 b30
b31 b32 b33 b34 b35 b36
b37 b38 b39 b40 b41 b42
b43 b44 b45 b46 b47 b48
• DES (Data Encryption Standard) – Função de substituição
• D0 é cindido seguidamente em 8 blocos de 6 bits, notado D0i
• Cada um destes blocos passa por funções de seleção (chamadas às vezes caixas de substituição ou funções de compressão), marcadas geralmente como Si
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
D0
b1 b2 b3 b4 b5 b6
b7 bb8 b9 b10 b11 b12
b13 b14 b15 b16 b17 b18
b19 b20 b21 b22 b23 b24
b25 b26 b27 b28 b29 b30
b31 b32 b33 b34 b35 b36
b37 b38 b39 b40 b41 b42
b43 b44 b45 b46 b47 b48
D01
D02
D03
D04
D05
D06
D07
D08
• DES (Data Encryption Standard) – Função de substituição
• Os primeiros e últimos bits de cada D0i determina (em binário) a linha da função de seleção, os outros bits (respectivamente 2, 3, 4 e 5) determinam a coluna
• A seleção da linha, fazendo-se sobre dois bits, dá 4 possibilidades (0, 1, 2, 3)
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
A seleção da linha, fazendo-se sobre dois bits, dá 4 possibilidades (0, 1, 2, 3)
• A seleção da coluna que se faz em 4 bits tem 16 possibilidades (0 a 15)
• Graças a esta informação, a função de seleção “seleciona” um valor codificado em 4 bits
• Essa função também é denominada de Caixas-S do DES
• DES (Data Encryption Standard)
– Função de substituição
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- Suponhamos que D01 é igual a 101110- Os primeiros e últimos bits dão 10, quer dizer, 2 binário- Os bits 2,3,4 e 5 dão 0111, quer dizer 7 decimal- O resultado da função de seleção é então o valor situado na linha n°2, na coluna n°7- Trata-se do valor 11, ou em binário 0111
• DES (Data Encryption Standard)
– Função de substituição
• Cada um dos 8 blocos de 6 bits passou na função de seleção correspondente, o que dá no final 8 valores de 4 bits cada um
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- D02 é igual a 001110- Os primeiros e últimos: 00 ���� 0- Os bits 2,3,4 e 5 dão 0111, quer dizer 7 decimal- O resultado: linha n°0, coluna n°7- Valor: 4, ou em binário 0100
- D03 é igual a 101011- Os primeiros e últimos: 11 ���� 3- Os bits 2,3,4 e 5 dão 0101, quer dizer 5 decimal- O resultado: linha n°3, coluna n°5- Valor: 9, ou em binário 1001
• DES (Data Encryption Standard)
– Função de substituição
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- D04 é igual a 010111- Os primeiros e últimos: 01 ���� 1- Os bits 2,3,4 e 5 dão 1011, quer dizer 11 decimaldecimal- O resultado: linha n°1, coluna n°11- Valor: 12, ou em binário 1100
- D05 é igual a 111011- Os primeiros e últimos: 11 ���� 3- Os bits 2,3,4 e 5 dão 1101, quer dizer 13 decimal- O resultado: linha n°3, coluna n°13- Valor: 4, ou em binário 0100
• DES (Data Encryption Standard)
– Função de substituição
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- D06 é igual a 110111- Os primeiros e últimos: 11 ���� 3- Os bits 2,3,4 e 5 dão 1011, quer dizer 11 decimal- O resultado: linha n°3, coluna n°11- O resultado: linha n°3, coluna n°11- Valor: 7, ou em binário 0111
- D07 é igual a 100000- Os primeiros e últimos: 10 ���� 2- Os bits 2,3,4 e 5 dão 0000, quer dizer 0 decimal- O resultado: linha n°2, coluna n°0- Valor: 1, ou em binário 0001
• DES (Data Encryption Standard)
– Função de substituição
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- D08 é igual a 100010- Os primeiros e últimos: 10 ���� 2- Os bits 2,3,4 e 5 dão 0001, quer dizer 1 decimal- O resultado: linha n°2, coluna n°1- O resultado: linha n°2, coluna n°1- Valor: 11, ou em binário 1011
- Cada bloco de 6 bits assim é substituído num bloco de 4 bits- Estes bits são agrupados para formar um bloco de 32 bits- RESULTADO:
0111 0100 1001 1100 0100 0111 0001 1011
• DES (Data Encryption Standard) – Permuta
• O bloco de 32 bits obtido é por último submetido a uma permuta P cuja tabela é a seguinte:
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• DES (Data Encryption Standard) • OU Exclusivo
– O conjunto destes resultados em saída de P é sujeito a um OU Exclusivo com o G0 de partida (como indicado no primeiro esquema) para dar D1, enquanto o D0 inicial dá G1
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
XOR D1
G1
• DES (Data Encryption Standard)
– Iteração
• O conjunto das etapas precedentes (voltas) é reiterado 16 vezes
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
(voltas) é reiterado 16 vezes
• DES (Data Encryption Standard)
– Permuta inicial inversa
• No fim das iterações, os dois blocos G16 e D16 são recolados
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• DES (Data Encryption Standard)
– Permuta Inicial Inversa
• O bloco recolado é sujeito à permuta inicial inversa
• O resultado à saída é um texto
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• O resultado à saída é um texto codificado de 64 bits
Texto 64 Bits
• DES (Data Encryption Standard)
– Geração das chaves• Dado que o algoritmo apresentado acima
é público, toda a segurança assenta na complexidade das chaves de codificação
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- O algoritmo ao lado mostra como - O algoritmo ao lado mostra como obter, a partir de uma chave de 64 bits (composta de 64 caracteres alfanuméricos quaisquer) 8 chaves diversificadas de 48 bits cada uma que servem no algoritmo do DES
• DES (Data Encryption Standard)
– Inicialmente, os bits de paridade da chave são eliminados a fim de obter uma chave com um comprimento útil de 56 bits
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Kn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
• DES (Data Encryption Standard)
– A primeira etapa consiste numa permuta denotada por CP-1 , cuja matriz é apresentada abaixo:
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Kn1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
• DES (Data Encryption Standard)
– Esta matriz pode, com efeito, escrever-se sob forma de duas matrizes Gi e Di (para esquerda e direita) compostas cada um de 28 bits:
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
- Marca-se como G0 e D0 o resultado desta primeira permuta
• DES (Data Encryption Standard)
– Estes dois blocos sofrem seguidamente uma rotação à esquerda, de tal maneira que os bits em segunda posição tomam a primeira posição, os em terceira posição a segunda, e assim
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
em terceira posição a segunda, e assim sucessivamente
– Os bits em primeira posição passam para última posição
• DES (Data Encryption Standard) - ROTAÇÃO
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Gi
49 41 33 25 17 9 1
58 50 42 34 26 18 10
2 59 51 43 35 27 19
11 3 60 52 44 36 57
Di
55 47 39 31 23 15 7
62 54 46 38 30 22 14
6 61 53 45 37 29 21
13 5 28 20 12 4 63
• DES (Data Encryption Standard)
– Os 2 blocos de 28 bits são agrupados seguidamente num bloco de 56 bits
– Este passa por uma permuta, denotada CP-2, fornecendo em saída um bloco de 48 bits,
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
fornecendo em saída um bloco de 48 bits, representando a chave Ki
• DES (Data Encryption Standard)
– Iterações do algoritmo permitem dar as 16 chaves K1
à K16 utilizadas no algoritmo
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
à K16 utilizadas no algoritmo de DES
• DES (Data Encryption Standard) • Vantagens serão apresentadas relativas à:
– Implementação• Pode rodar bem rapidamente em relação a outros
algoritmos• Pode ser implementado em um SmartCard usando pouco
código e memória
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
código e memória• Algumas funções podem ser feitas em paralelo, tornando o
processo mais rápido– Pode se fazer a substituição dos bytes usando a S-box, vários de
uma vez, e não sequencialmente– A expansão da chave pode ser feita enquanto se executa as
funções que não dependem dela como a ByteSub() - Substituição ou ShiftRow() - Permutação
• Como a encriptação não emprega operações aritméticas, não exige muito poder de processamento
• DES (Data Encryption Standard)
• Vantagens serão apresentadas relativas à:
– Simplicidade do projeto
• Não usa elementos já previamente processados, por exemplo a 9a rodada não necessita de nenhum
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
exemplo a 9a rodada não necessita de nenhum elemento das rodadas anteriores a não ser única e exclusivamente do State da 8a
• O algoritmo não baseia sua segurança ou parte dela em interações obscuras e não bem compreendidas entre operações aritméticas, não permitindo assim, espaço para esconder um trap-door
Trap-doorFuro de segurança em um sistema que foi deliberadamente criado pelos criadores ou pessoas responsáveis pela manutenção.
• DES (Data Encryption Standard)
• Vantagens serão apresentadas relativas à:
– Possíveis modificações:
• O projeto permite a especificação de variantes com o comprimento do bloco e da chave, ambos variando de
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
comprimento do bloco e da chave, ambos variando de 32 em 32 bits no intervalo de 128 até 256 bits
• Embora o número das rodadas seja fixo na especificação, pode ser modificado como um parâmetro caso haja problemas de segurança
• DES (Data Encryption Standard)
• Desvantagens– A inversa(decriptografia) é menos recomendável de
ser implementada num SmartCard, pois precisa de mais código e mais processamento
• Mesmo assim, se comparado a outros algoritmos é bem
Criptografiawww.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
• Mesmo assim, se comparado a outros algoritmos é bem rápida
– Em software, a encriptação e sua inversa empregam códigos diferentes e/ou tabelas
– Em hardware a inversa pode usar apenas uma parte do circuito usado no processo de encriptação
Referências
• STALLINGS, William. Criptografia e segurança de redes. 4. ed. São Paulo: Pearson Prentice Hall, 2008.
• FECHINI, Joseana Macêdo. Segurança da Informação. Disponível em http://www.dsc.ufcg.edu.br/~joseana/Criptografia-SI.html .
• BRAGA, Hugo Rodrigo. HISTÓRIA DA CRIPTOLOGIA – Antiguidade. Disponível em http://www.hu60.com.br/assuntos/criptologia.php .
• Lima, Marcelo. Nakamura, Emílio. Segurança de Redes e Sistemas. Versão 1.1.0. Escola Superior de Redes RNP:2007.
www.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
Escola Superior de Redes RNP:2007.
• Sousa, Vitor Silva. Esteganografia. Disponível em http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/vitor/Tcnicas.html .
• Disponível em http://www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao .
Referências
• Julio, Eduardo Pagani. Brazil, Wagner Gaspar. Albuquerque, Célio Vinicius Neves. Esteganografia e suas Aplicações. VII Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais, 2007.
• MEDEIROS, Carlos Diego Russo. SEGURANÇA DA INFORMAÇÃO: Implantação de Medidas e Ferramentas de Segurança da Informação. Universidade da Região de Joinville – UNIVILLE, 2001.
• NIC BR Security Office. Cartilha de Segurança para Internet. Parte VII: Incidentes de Segurança e Uso Abusivo da Rede. Versão 2.0, 2003.
www.ricardojcsouza.com.brricardo.souza@ifpa.edu.br
de Segurança e Uso Abusivo da Rede. Versão 2.0, 2003.
• NIC BR Security Office. Cartilha de Segurança para Internet. Parte II: Riscos Envolvidos no Uso da Internet e Métodos de Prevenção. Versão 2.0, 2003.
• FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4. ed. São Paulo: McGraw-Hill, 2008.