Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra...

Post on 17-Nov-2020

2 views 0 download

Transcript of Segurança de Redes de Computadores · Ricardo José Cabeça de Souza ... – Transforma uma cifra...

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.