Faculdade de Engenharia da Computação

Documentos relacionados
Raquel de Araújo Fábio Borges Gerson Nunes. O algoritmo AES: Apresentação e Descrição da Estrutura p.1/23

OTES07 Segurança da Informação Módulo 05b: Criptografia Simétrica: AES/SAES

TÓPICOS ESPECIAIS EM SEGURANÇA DA INFORMAÇÃO

Tópicos Especiais em Segurança da Informação. Aula 2 Criptografia AES

OSRC001 Segurança em Redes de Computadores Módulo 07: Criptografia Simétrica: AES/SAES

Codificação de Informação 2010/2011

Segurança da Informação Aula 5 Criptografia. Objetivos e Tipos. Cifras de Bloco e Fluxo

Criptografia e Segurança de Redes Capítulo 5. Quarta Edição por William Stallings

3DES e AES - Noções Fortes de Segurança - InfoSec. 20 de Abril de 2016

OTES07 Segurança da Informação Módulo 05a: Criptografia Simétrica: DES/SDES

AES - Noções Fortes de Segurança - InfoSec. 4 de Outubro de 2016

Advanced Encryption Standard

OSRC001 Segurança em Redes de Computadores Módulo 06: Criptografia Simétrica: DES/SDES

Software de Telecomunicações. Cifras simétricas por blocos

4 ÍNDICE Exemplo de redundância e distância de unicidade... 41

Segurança em Redes - 3

Resumo Segurança em Redes de Computadores

Segurança em Redes de Computadores

SEGURANÇA CRIPTOGRAFIA E SEGURANÇA DE DADOS. As funções de cifra são consideradas totalmente seguras se:

ANÁLISE DO ALGORITMO VENCEDOR DO AES: O RIJNDAEL

Segurança de Redes de Computadores. Ricardo José Cabeça de Souza

UM HARDWARE IP PARA CRIPTOGRAFIA NO PADRÃO AES-RIJNDAEL

Campos de estudo Algoritmos Aplicações e praticas de privacidade

Segurança de Redes de Computadores. Ricardo José Cabeça de Souza

Criptografia e Segurança em Rede Capítulo 3. William Stallings

Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica.

O padrão de criptografia simétrica AES

Faculdade de Engenharia da Computação

Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...)

Segurança de Redes de Computadores. Ricardo José Cabeça de Souza

Faculdade de Engenharia da Computação

O algoritmo AES: Apresentação e Descrição da Estrutura

CRIPTOGRAFIA MODERNA Simétrica. Professor: Jiyan Yari

Segurança Informática em Redes e Sistemas

Advanced Encryption Standard

ANÁLISE DE ALGORITMOS NECESSÁRIOS À IMPLEMENTAÇÃO DE UMA INFRA-ESTRUTURA DE CHAVES PÚBLICAS NO ITA.

Criptografia e Segurança das Comunicações

6 Inserção Seletiva de Nulos

Criptografia no MSX Fulswrjudild qr PVZ

Criptografia. Módulo I Terminologia. M. B. Barbosa 2006/2007. Departamento de Informática Universidade do Minho

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

Capítulo 8. Segurança de redes

Cifragem de Imagens usando Cifras de Bloco e

Capítulo 3 - Cifras de Blocos e Data Encryption Standard Por toda a tarde, Mungo tinha trabalhado no código de Stern, principalmente com a ajuda das ú

PARALELIZAÇÃO DO ALGORITMO AES E ANÁLISE SOBRE GPGPU 1 PARALLELIZATION OF AES ALGORITHM AND GPU ANALYSIS

Virtual Private Network (VPN)

PTC Aula 19. (Kurose, p ) (Peterson, p ) 09/06/ O que é segurança de rede? 5.2 Princípios de criptografia

Auxilio a Resolução da Lista de Exercícios

Cifras por Blocos MI/CEI José Carlos Bacelar Almeida

Segurança de Sistemas de Informação

Criptografia. Aula 4: Cifras simétricas a partir de cifras por blocos. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

WEP, WPA e EAP. Rodrigo R. Paim

MAC Criptografia

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

MAC Criptografia

Características fundamentais de codificação de programas

INSTITUTO MILITAR DE ENGENHARIA WILLIAM AUGUSTO RODRIGUES DE SOUZA IDENTIFICAÇÃO DE PADRÕES EM CRIPTOGRAMAS USANDO TÉCNICAS DE CLASSIFICAÇÃO DE TEXTOS

Cifras por Blocos. Criptografia e Segurança da Informação. José Carlos Bacelar Almeida Cifras por Blocos

Segurança Informática em Redes e Sistemas

Faculdade de Engenharia da Computação

Álgebra Linear e Geometria Analítica Bacharelados e Engenharias Parte II Matrizes (continuação)

MAC Criptogra a

Análise do ataque quadrado ao AES

MODELO SIMPLIFICADO DO CIFRADOR IDEA

Criptografia. Módulo I Terminologia. M. B. Barbosa 2005/2006. Departamento de Informática Universidade do Minho

MAC Criptografia Primeiro Semestre de 2011

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

M 2014 IMPLEMENTAÇÃO EM VERILOG DO ALGORITMO DE CIFRA AES-CTR PARA APLICAÇÕES HDMI 2.0

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Criptografia codificar dados em informações aparentemente sem sentido pessoas não consigam ter acesso às informações que foram cifradas

Sistemas criptográficos simétricos

MAC Criptografia

O primeiro tipo bastante prático de criptografia é chamado de criptografia simétrica.

Segurança conceitos básicos. Sistemas Distribuídos

Técnicas Clássicas de Criptografia. Criptografia e Segurança de Redes, Cap. 2 Willian Stallings 4 Ed. Pearson, 2008

EDUARDO MARSOLA DO NASCIMENTO ALGORITMO DE CRIPTOGRAFIA LEVE COM UTILIZAÇÃO DE AUTENTICAÇÃO

Códigos de Detecção de Erros 2ª. parte. Prof. Ricardo de O. Duarte DECOM - UFOP

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

Criptografia e Segurança de Rede Capítulo 4. Quarta Edição por William Stallings

1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.

Aula 3: Algoritmos: Formalização e Construção

Estrutura de controle repetitiva: Para (for)

Criptografia. Aula 4: Autenticação de mensagens e canais seguros. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Criptografia, VPN, IPsec Protocolos de Roteamento

Sumário: Paradigmas de Segurança

Objetivo: Desenvolver algoritmos a partir de problemas

Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS jun-09

Transcrição:

Faculdade de Engenharia da Computação Disciplina Segurança Aplicada a Computação Teorema do Crivo de Erastóstenes; Operações bit a bit; Algoritmo DES; Modo(ECB,CBC,CFB, OFB) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de Jesus 1

Conceito de Crivo de Erastóstenes (CE) 2

Conceito (CE) Vem a ser um algoritmo prático para encontrar números primos até um certo valor limite. Intervalo [2,b]. Terceiro bibliotecário-chefe da Biblioteca de Alexandria. (194, a.c) 3

Conceito Matemático Ν * = { x 2 Ν [ a, b]} Determinar o intervalo [a,b]; onde a = 2 e b número natural R = b Fazendo arredondamento para baixo 4

Lista N = { 2, x 1, x 2, x 3,... x n } Encontra primeiro número da lista x = 2 Remova da lista todos os múltiplos deste primo. Pegar o próximo número da lista e realizar o passo anterior até que o número seja = o valor de R. 5

Exemplo Prático (CE) 6

para um intervalo de [1..20] R = 20 = 4 L = { 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} x = {2} L = { 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} L = { 2,3,5,7,9,11,13,15,17,19} x = {3} L = { 2,3,5,7,9,11,13,15,17,19} L = { 2,3,5,7,11,13,17,19} 7

Operações bit a bit 8

Operadores bit a bit 1. v u é a soma dos inteiros v,u de w bits 2. v u é a subtração dos inteiros v,u e w bits. 3. v u é o ou - exclusivo (XOR) de u,v de w bits 4. v << t é o deslocamento circular de t posições para a esquerda dos bits em v. 5. v >> t é o deslocamento circular de t posições para direita dos bits de v. 9

Exemplos de operações bit a bit 10

v u é a soma dos inteiros v,u de w bits. Exemplo: x = v + u mod 2 w w=3 x = 65 + 69 mod 8 x = 70 11

x u é a subtração dos inteiros x,u de w bits. Exemplo: v = x - u mod 2 w w=3 x = 65-69 mod 8 x = 60 12

v u é o ou - exclusivo (XOR) de u,v de w bits x = A B Exemplo: A = A B = E x = A ^ B x = A ^ B A 1000001 B 1000101 Xor ------------------ 0000100 x = 4 13

Essas operadores sãos denominados shift. E são representados da seguinte forma >> << Onde : >> - deslocamento para direita. << - deslocamento para esquerda. Sintaxe : Variável >> num-bits; // para direita Variável << num-bits; // para esquerda 14

Exemplo A = E x = A >> 1 x = 34 A = 1000101 = 69 x = 0100010 = 34 Desloca todos bits um movimento para direita 15

Exemplo de operação 128 64 32 16 8 4 2 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 byte nbit = 128; nbit = nbit >> 1; // Desloca um bit para direita nbit = nbit >> 2; // Desloca dois bit para direita nbit = nbit >> 1; // Desloca um bit para direita 16

Programa Exemplo byte a = 1; int x = 1; while( x <= 8){ printf( %d\n,a); a = a << 1 ; x++; } 17

Exemplo de deslocamento de bits à esquerda bit a bit 128 64 32 16 8 4 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 18

Algoritmo DES (Data Encryption Standard) Padrão de Dados para Criptografia 19

Histórico Foi primeiro algoritmo de criptografia cujo conhecimento se tornou público até então todos os algoritmos eram secretos. Projetado pela IBM em 1977 para ser adotado como padrão nos EUA para informações comerciais. Autores do projeto (Walter Tuchman e Carl Meyer,1970) e consultores da NSA (National Security Agency). 20

Conceito DES A segurança no DES não se baseia no conhecimento do algoritmo mas apenas no conhecimento da chave secreta. 21

Modos de Operação DES 22

São Descrito cinco modos de aplicação do DES 1. Modo ECB Eletcronic Code Book Mode 2. Modo CBC Cipher Block Chaining Mode 3. Modo CFB Cipher Feedback Mode 4. Modo OFB Output Feedback Mode 5. Modo Contador(Counter Mode) 23

Conceito de ECB Livro de Código Eletrônico Consiste em dividir o texto legível em blocos de comprimento igual ao comprimento fixo t de entrada do algoritmo fk(x) de chave secreta k obtendo-se n blocos {x 1,x 2,...,x n }. Sendo o ultimo bloco completado com brancos. 24

1. ECB Livro de Código Eletrônico {x 1, x 2, x 3, x n+1 } {x 4, x 5, x 6, x n+1 } {c 1, c 2, c 3, c n+1 } {c 4, c 5, c 6, c n+1 } Z = { x c } x c Z 0 1 2 A M M B C D 3 14 9 3 4 5 E E b E F G 0 3 103 25

Algoritmo ECB - Criptografia Para i de 0 ate n-1 faça se(i >= (n/2)-1) x[i] = ch[i] ^ A[i] senão x[i] = ch[i] ^ A[i] fim-se fim_para 26

ECB - Decriptografia para i de 0 ate n-1 faça fim_para dec[i] = x[i] ^ ch[i] 27

2. Cifra de Encadeamento de Bloco Consiste em capturar um byte da direita e criptografá-lo variando cada elemento de x para uma posição a esquerda. j = 2,3,... n { Z y j j ( Z ) 1 = j j 1 = x f k j y 28

CBC Modelo de Criptografia x 1 x 2 x 3 msg K f k () f k () f k () y 1 y 2 y 3 29

Algoritmo CBC - Criptografia para i de 1 até n-1 se(i <= (n/2)-1) X[i] = ch[i] ^ A[i-1] senão X[i] = ch[i] ^ A[i-1] fim_se Fim_para 30

CBC - Decriptografia j = 2,3... { Z j = f 1 k ( y i ) x j = Z j y j 1 31

CBC Modelo de Decriptografia y 1 y 2 y 3 K 1 f () f () 1 () 1 k k f k msg x 1 x 2 x 3 32

CBC - Decriptografia para i de 1 até n-1 faça Z[i] = x[i] ^ ch[i] Fim_para 33

3. CFB Cifra de Comentários Consiste em capturar s bits a esquerda e criptografar jogando a mensagem original a direita com os s bits a esquerda. Depois os s bits a esquerda serão descartados. j = 2,3,... { Z y j j = = f k ( w j 1 ) bis + esquerda => ( Z j ) x j 34

CFB Algoritmo de Criptografia A <- "BBANANA chave <- "BCDEFGG Para i de 0 ate n-1 X[i] = ch[i] ^ A[i]; fim_para 35

4. OFB - Comentário de Saída Captura-se o primeiro byte mas a esquerda da mensagem e usa-se esse bate como chave para descifragem da mensagem original. j =1,2,3...n Z y j j = f ( w 1) k j = x j [ s bits( esquerda)] 36

Observação Quando s é relativamente pequeno, da ordem de dezenas de bits, pode ocorrer repetição de y i y y + = i y i Chamado de Ciclo curto. 37

OFB Algoritmo de Decriptografia Z j = f ( w 1) k j x j = y j [ s bits( esquerda)] 38

OFB Algoritmo Criptografia A = "BANANA ch[0] = B Para i de 0 até n-1 faça x[i] = ch[0] ^ A[i]; fim_para 39

OFB Algoritmo de Decriptografia para i de 0 ate n-1 faça fim_para z[i] = ch[0] ^ X[i] 40

5. Modo Contador Consiste em pegar a chave f(w i +1) e acrescentar mais 1. k = {w i +1, w i +2, w i +3,... w i n+1} n k i = w j + j= 1 n j + 1 41

Algoritmo DES aplicado de forma convencional 42

Implementação fk j ( D j ) 43

DES - Convencional {x 1, x 2, x 3, x n+1 } {x 4, x 5, x 6, x n+1 } {c 1, c 2, c 3, c n+1 } {c 4, c 5, c 6, c n+1 } Z = { x c } {x 4 c 1, x 5 c 2, x 6 c 3, x n+1 c n+1 } {x 1 c 4, x 2 c 5, x 3 c 6, x n+1 c n+1 } x 0 1 2 E E b 3 4 5 A M M c Z B C D 7 6 100 E F G 4 11 10 44

Algoritmo AES Advanced Encryption Standard (Padrão avançado de Criptografia) 45

Histórico AES é um subconjunto da cifra Rijndael, desenvolvida por dois criptógrafos belgas, Vincent Rijmen e Joan Daemen, que apresentaram uma proposta ao NIST durante o processo de seleção do AES. Rijndael é uma família de cifras com diferentes tamanhos de chave e blocos. 46

Conceito O algoritmo descrito por AES é um algoritmo de chave simétrica, significando que a mesma chave é usada para criptografar e descriptografar os dados. Divididas em 4 fazes. 1 SubBytes 2- ShiftRows 3 MixColumns 4 - AddRoundKey AES está incluída na norma ISO / IEC 18033-3 47

Etapas do AES 48

0 - AddRoundKey AddRoundKey - Cada byte do estado é combinado com um bloco da chave circular usando xor bit a bit. B = A C 49

1 - SubBytes Uma etapa de substituição não-linear onde cada byte é substituído por outro de acordo com uma tabela de pesquisa. 50

Tabela de Pesquisa 011011 = Bits exteriores 01 e bits internos 1101 A saída seria 1001 51

Exemplo de substituição Etapa SubByte 52

2 ShiftRows Para AES, a primeira linha é deixada inalterada. Cada byte da segunda linha é deslocado um para a esquerda. Da mesma forma, as terceira e quarta linhas são deslocadas por deslocamentos de dois e três, respectivamente. Para blocos de tamanhos 128 bits e 192 bits, o padrão de deslocamento é o mesmo. Linha é deslocado circular esquerda por Bytes. 53

Exemplo - ShiftRows No passo ShiftRows, bytes em cada linha do estado são deslocados ciclicamente para a esquerda. O número de lugares que cada byte é deslocado difere para cada linha. 54

Exemplo prático ShiftRows Matriz Original J K L A B C P M K O I V S Matriz Resultante J K L B C A M K P I V O 55

3 - Etapa MixColumns Na etapa MixColumns, os quatro bytes de cada coluna do estado são combinados usando uma transformação linear inversível. A função MixColumns tem quatro bytes como entrada e saídas quatro bytes, onde cada byte de entrada afeta todos os quatro bytes de saída. Juntamente com ShiftRows, MixColumns fornece difusão na cifra. 56

Exemplo - MixColumns 57 Na etapa MixColumns, cada coluna do estado é multiplicada por um polinômio fixo c(x) polinómio fixo. 1 3 4 8 + + + + x x x x 1 ) ( 3 4 8 + + + + = x x x x x c

Exemplo Prático MixColumns a a a a 1,1 2,1 3,1 4,1 a a a a 1,2 2,2 3,2 4,2 a a a a 1,3 2,3 3,3 4,3 a a a a 1,4 2,4 3,4 4,4 4 x x x 1 3. = 1,1 1,2 1,3 1, 4 [....1 ] 4 3 a x + a x + a x + a Ao multiplicarmos uma matriz A por outra matriz B, temos que multiplicar todos os elementos da primeira linha da matriz A pelos elementos da primeira coluna da matriz B e somá-los 58

Operação XOR Se processado bit a bit, então, após o deslocamento, um XOR condicional com 1B 16 deve ser executado se o valor deslocado for maior que FF 16 (o estouro deve ser corrigido pela subtração do polinômio gerador). Estes são casos especiais da multiplicação usual em GF(2 8 ) Campo finito ou Campo global 59

4 - Etapa AddRoundKey Na etapa AddRoundKey, a subchave é combinada com o estado. Para cada rodada, uma subchave é derivada da chave principal usando a programação de chaves de Rijndael ; Cada subchave é o mesmo tamanho como o estado. A subchave é adicionada combinando cada byte do estado com o byte correspondente da subchave usando XOR bit a bit. 60

Exemplo AddRoundKey Na etapa AddRoundKey, cada byte do estado é combinado com um byte da subchave round usando a operação XOR 61

Observação Se o tamanho da tabela resultante de quatro kilobytes for muito grande para uma determinada plataforma de destino, a operação de pesquisa de tabela pode ser executada com uma única tabela de 32 bits de 32 bits (ou seja, 1 quilobyte) pelo uso de rotações circulares. 62

Exemplo Roteador TP-Link WPA (Wi-Fi Protected Access) Protocolo de Comunicação via Rádio. Pre-Shared Key Permite chave de 8 a 63 caracteres de extensão. 63

Exemplo Aplicado x Chave k 1 f k ( x) = y f k ( y) = x AES_ENCRYPT ilegível y Linha de Comunicação Chave k AES_DECRYPT Legível x y = AES_ENCRYPT(x, k) x = AES_DECRYPT(y,k) Dado Cifrado Dado Decifrado 64