segurança de redes de computadores · ricardo josé cabeça de souza ... – transforma uma cifra...

70
Segurança de Redes de Computadores Ricardo José Cabeça de Souza www.ricardojcsouza.com.br [email protected]

Upload: others

Post on 17-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

Segurança de Redes de Computadores

Ricardo José Cabeça de Souza

www.ricardojcsouza.com.br

[email protected]

Page 2: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

• É 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

Page 3: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Cifra de Bloco

[email protected]

Fonte da Imagem: http://www.projetoderedes.com.br/artigos/imagens/Image142.gif

Page 4: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

– 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

Page 5: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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)

[email protected]

• Electronic Codebook - ECB (livro de código eletrônico)

• Cipher-Block Chaining - CBC (corrente de blocos)

Page 6: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Electronic Codebook - ECB (livro de código eletrônico)

– A mensagem clara é fracionada em blocos de tamanho fixo e cada bloco é cifrado isoladamente

[email protected]

isoladamente

– No final, a mensagem cifrada é obtida pela concatenação dos blocos cifrados

Page 7: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Electronic Codebook - ECB (livro de código eletrônico)

[email protected]

Cifragem com Electronic Codebook

Page 8: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Electronic Codebook - ECB (livro de código eletrônico)

[email protected]

Decifragem com Electronic Codebook

Page 9: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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 à

[email protected]

– Este modo de operação não acrescenta nada à confidencialidade proporcionada pela cifra

Page 10: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

– Desta forma, cada um dos blocos cifrados depende de todos os blocos de texto claro anteriores

XOR

Page 11: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Cipher-Block Chaining - CBC (Corrente de Blocos)

[email protected]

XOR

Page 12: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Cipher-Block Chaining - CBC (corrente de blocos)

[email protected]

XOR

Page 13: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

sempre depende do resultado anterior), seu uso dificulta o processamento de blocos em paralelo, o que melhoraria o desempenho do método

Page 14: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• PCBC - Propagating Cipher-BlockChaining– Corrente de blocos em propagação

– Projetado para propagar ou esparramar melhor que o CBC

[email protected]

que o CBC

– Pequenas alterações no texto cifrado

– É usado quase que exclusivamente no Kerberos e no WASTE

Page 15: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• PCBC - Propagating Cipher-BlockChaining

[email protected]

XOR

Page 16: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• PCBC - Propagating Cipher-BlockChaining

[email protected]

XOR

Page 17: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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)

[email protected]

Page 18: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• CFB - Cipher FeedBack

[email protected]

XOR

Page 19: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• CFB - Cipher FeedBack

[email protected]

XOR

Page 20: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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,

[email protected]

– 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

Page 21: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• OFB - Output FeedBack

[email protected]

XOR

Page 22: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• OFB - Output FeedBack

[email protected]

XOR

Page 23: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 24: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 25: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

– 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

Page 26: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• CTR – Counter

[email protected]

XOR

Page 27: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• CTR – Counter

[email protected]

XOR

Page 28: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

– 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"

Page 29: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• Proteção de Integridade e Propagação de Erro

[email protected]

Page 30: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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:

[email protected]

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

Page 31: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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)

[email protected]

(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

Page 32: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 33: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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,

[email protected]

• 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.

Page 34: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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)

[email protected]

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

Page 35: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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)

[email protected]

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

Page 36: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

– 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

Page 37: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Algoritmo:

• Fracionamento do texto em blocos de 64 bits (8 octetos)

• Permuta inicial dos blocos

[email protected]

• 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

Page 38: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Permutação inicial

• Inicialmente, cada bit de um bloco é sujeito à permuta inicial

[email protected]

- 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

Page 39: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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:

[email protected]

- 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

Page 40: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 41: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

posteriormente

Função de Expansão

Função de Substituição

Chave da Voltan

Page 42: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 43: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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]

[email protected]

(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!)

Page 44: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– OU exclusivo com a chave

[email protected]

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

Page 45: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 46: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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)

[email protected]

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

Page 47: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Função de substituição

[email protected]

- 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

Page 48: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

- 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

Page 49: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Função de substituição

[email protected]

- 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

Page 50: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Função de substituição

[email protected]

- 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

Page 51: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Função de substituição

[email protected]

- 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

Page 52: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard) – Permuta

• O bloco de 32 bits obtido é por último submetido a uma permuta P cuja tabela é a seguinte:

[email protected]

Page 53: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

XOR D1

G1

Page 54: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Iteração

• O conjunto das etapas precedentes (voltas) é reiterado 16 vezes

[email protected]

(voltas) é reiterado 16 vezes

Page 55: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Permuta inicial inversa

• No fim das iterações, os dois blocos G16 e D16 são recolados

[email protected]

Page 56: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Permuta Inicial Inversa

• O bloco recolado é sujeito à permuta inicial inversa

• O resultado à saída é um texto

[email protected]

• O resultado à saída é um texto codificado de 64 bits

Texto 64 Bits

Page 57: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

- 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

Page 58: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 59: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– A primeira etapa consiste numa permuta denotada por CP-1 , cuja matriz é apresentada abaixo:

[email protected]

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

Page 60: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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:

[email protected]

- Marca-se como G0 e D0 o resultado desta primeira permuta

Page 61: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

em terceira posição a segunda, e assim sucessivamente

– Os bits em primeira posição passam para última posição

Page 62: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard) - ROTAÇÃO

[email protected]

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

Page 63: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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,

[email protected]

fornecendo em saída um bloco de 48 bits, representando a chave Ki

Page 64: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• DES (Data Encryption Standard)

– Iterações do algoritmo permitem dar as 16 chaves K1

à K16 utilizadas no algoritmo

[email protected]

à K16 utilizadas no algoritmo de DES

Page 65: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 66: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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.

Page 67: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

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

Page 68: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

• 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

[email protected]

• 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

Page 69: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

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.

[email protected]

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 .

Page 70: Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra de bloco num gerador de números pseudo-aleatórios – O texto cifrado realimenta

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.

[email protected]

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.