SlideShare uma empresa Scribd logo
1 de 34
Auditoria e Segurança de TI
Aula 3 – Algoritimos e Aplicações de Segurança.
Prof. Filipo Mór
www.filipomor.com
Bacharelado em Sistemas
de Informação
Agenda
• Conceitos Básicos.
• Algoritmos para Criptografia.
• Algoritmos de Checksum.
• Algoritmos de Pesquisa em String.
Objetivos
Objetivos da aula de hoje:
 Apresentar os conceitos
básicos e algoritmos que
formarão a base de estudo da
área de criptografia e
segurança de redes e
sistemas.
 Propiciar o contato do
estudante com algoritmos
avançados utilizados na
segurança de redes e
sistemas.
Conceitos Básicos
• Complexidade da Comunicação em Rede
– Grande quantidade de padrões e protocolos
envolvidos, com diversas implementações em
hardware e software.
– A padronização permite a comunicação entre
sistemas e aplicações de diferentes
naturezas, como por exemplo entre máquinas
com diferentes sistemas operacionais.
– No entanto, tal diversidade acaba facilitando
a criação de brechas na segurança.
Conceitos Básicos
• Complexidade da Comunicação em Rede
Network Security - Know It All, 2008, pg 50
Conceitos Básicos
• Os problemas podem ser resultantes de:
– Ataques.
– Falhas.
– Situações não previstas.
• Desta forma, são implementados métodos
de conferência, validação e segurança em
diversos níveis de abstração na
comunicação em redes.
Conceitos Básicos
• Algoritmos comumente utilizados:
– Criptografia.
– Validação de dados (checksum).
– Busca de padrões em dados do tipo string.
Algoritmos para Criptografia
• Criptografia
– Do grego kryptós, "escondido", e gráphein,
"escrita“.
– Compreende na modificação do conteúdo da
mensagem de forma que apenas o
destinatário, em posse de uma chave de
decriptografia, será capaz de acessar o seu
conteúdo original.
• Relembrando a multiplicação de matrizes!
Site Brasil Escola, 05/03/2015 - http://www.brasilescola.com/matematica/multiplicacao-matrizes.htm
Algoritmos para Criptografia
• Metodo Básico de Criptografia.
– Utilização de matrizes inversas: A e B = A-1
– Exemplo:
𝐴 =
3 1
2 1
e 𝐵 =
1 −1
−2 3
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ḇ
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
Para converter a mensagem para a forma numérica utilizaremos a seguinte tabela de conversão:
Exemplo extraído do livro Introdução à ÁLGEBRA LINEAR.
C.H.Edwards, Jr.
David E. Penney
Algoritmos para Criptografia
• A mensagem “the game is afoot” será
convertida para o formato numérico da
seguinte forma:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ḇ
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
the game is afoot
T H E ḇ G A M E ḇ I S ḇ A F O O T
20 8 5 29 7 1 13 5 29 9 19 29 1 6 15 15 20
Algoritmos para Criptografia
• Como a matriz codificadora A é 2x2, então
a mensagem convertida para formato
numérico será organizada no seguinte
padrão na matriz M:
T H E ḇ G A M E ḇ I S ḇ A F O O T
20 8 5 29 7 1 13 5 29 9 19 29 1 6 15 15 20
𝑀 =
20
9
8
19
5
29
29
1
7
6
1
15
13
15
5
20
29
29
Algoritmos para Criptografia
• Para codificação da mensagem, faz-se:
𝑁 = 𝐴𝑀
𝑁 =
3 1
2 1
20
9
8
19
5
29
29
1
7
6
1
15
13
15
5
20
29
29
𝑁 =
69
49
43
35
44
39
88
59
27
20
18
17
54
41
35
35
116
87
Algoritmos para Criptografia
• Entao, a mensagem codificada resultante
será a lista de números inteiros:
{ 69, 43, 44, 88, 27, 18, 54, 35, 116, 49, 35, 39, 59, 20, 17, 41, 30, 87 }
Que deverá ser enviada ao destinatário.
Algoritmos para Criptografia
• Para decodificar a mensagem, o
destinatário deverá efetuar:
𝑀 = 𝐵𝑁
M=
1 −1
−2 3
69
49
43
35
44
39
88
59
27
20
18
17
54
41
35
35
116
87
𝑀 =
20
9
8
19
5
29
29
1
7
6
1
15
13
15
5
20
29
29
Algoritmos para Criptografia
𝑀 =
20
9
8
19
5
29
29
1
7
6
1
15
13
15
5
20
29
29
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ḇ
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
the game is afoot
T H E ḇ G A M E ḇ I S ḇ A F O O T
20 8 5 29 7 1 13 5 29 9 19 29 1 6 15 15 20
Algoritmos para Criptografia
• Analisando o algoritmo:
• Complexidade: 𝑂(𝑛3)
– (considerando-se matrizes quadradas 𝑁𝑥𝑁).
• São necessárias duas chaves: as matrizes A e B.
Algoritmos para Criptografia
• Outros métodos básicos de criptografia:
– Aritmética modular.
– Cifra de César.
– Quadrado de Vinegère.
– Cifra Monoalfabética.
– Cifra Playfair.
Algoritmos para Criptografia
Algoritmos de Checksum
• Checksum
– Consiste na verificação do dado recebido pela
comparação do código verificador recebido contra o
código de verificação calculado.
– Métodos mais utilizados:
• Cálculo de Paridade por Byte ou Palavra.
• Verificação Longitudinal por Redundância.
• Redundância Cíclica.
• Soma Modular.
• Método de Fletcher.
• Método de Adler.
• Método de Luhn.
• Cálculo de Checksum por Paridade:
Bit0 Bit1 Bit2 Bit3 Bitn
… paridade
dados
código
verificação
informação recebida
⊕paridade = Bit0 Bit1 ⊕ Bit2 ⊕ Bit3 ⊕ Bitn-1⊕ ⋯
XOR (OU exclusivo)
Algoritmos de Checksum
• Cálculo de Checksum por Paridade:
⊕paridade = Bit0 Bit1 ⊕ Bit2 ⊕ Bit3 ⊕ Bitn-1⊕ ⋯
⊕ 0 = 00
⊕ 1 = 10
⊕ 0 = 11
⊕ 1 = 01
Tabela Verdade XOR
Paridade para números de 1 bit:
Número Par: 0
Número Ímpar: 1
Algoritmos de Checksum
• Algoritmo de Luhn:
• Complexidade: 𝑂(𝑛)
• Utilizado para validar:
– Números de cartão de crédito.
– Códigos IMEI (celulares).
– Telefonia via satélite.
– Números seguridade social
nos EUA e Canadá.
– Fraqueza: não detecta
transposição de algarismos
(por exemplo, “08” por “80”)
Algoritmos de Checksum
“You know something is wrong when the
government declares opening someone
else’s mail is a felony but your internet
activity is fair game for data collecting.”
E.A. Bucchianeri
Algoritmos de Pesquisa em String
• Métodos para Pesquisa de Conteúdo em String:
– Verificação de pacotes recebidos via rede.
– Detecção de worms.
– Proteção de scripts.
– Outras áreas do conhecimento:
• Big data.
• Estudo do genoma humano.
• Data mining.
• Algoritmos de busca mais utilizados:
– Algoritmo de Boyer-Moor.
• Considerado o mais eficiente algoritmo de busca em string.
• A busca é sempre realizada da direita para a esquerda.
• Ideal para situações onde o texto sendo procurado é muito menor
do que o texto base, ou quando o padrão sendo procurado se
repete muitas vezes no texto base.
• Se utiliza de informações geradas na fase de pré-processamento
para “pular” trechos de código durante a fase de processamento.
• Complexidade 𝑂(𝑛/𝑚) (melhor caso) na fase de processamento.
• Utilizado em funções de Search e Replace de editores de texto.
Algoritmos de Pesquisa em String
• Algoritmos de busca mais utilizados:
– Algoritmo de Boyer-Moor.
• Fase de pré-processamento.
Algoritmos de Pesquisa em String
Exemplo extraído do site Boyer-Moore algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node14.html, 04/02/2015.
• Algoritmos de busca mais utilizados:
– Algoritmo de Boyer-Moor.
• Fase de processamento (busca).
Algoritmos de Pesquisa em String
Exemplo extraído do site Boyer-Moore algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node14.html, 04/02/2015.
Algoritmos de Pesquisa em String
Exemplo extraído do site Boyer-Moore algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node14.html, 04/02/2015.
• Algoritmos de busca mais utilizados:
– Algoritmo de Aho–Corasick.
• Executa em 𝑂(𝑛 + 𝑚 + 𝑧), sendo 𝑛 o tamanho do texto
base, 𝑚 o tamanho do trecho sendo procurado e 𝑧 a
quantidade de ocorrências do trecho procurado no
texto base.
• Baseado na implementação de uma árvore de chaves
de pesquisa.
• A construção da árvore toma 𝑂(𝑛).
• A pesquisa toma 𝑂(𝑚 + 𝑧).
• No melhor caso, pode executar em Θ(𝑛𝑚).
Algoritmos de Pesquisa em String
𝑷 = {𝒉𝒆, 𝒔𝒉𝒆, 𝒉𝒊𝒔, 𝒉𝒆𝒓𝒔}
Site Code Project, Aho-Corasick string matching in C#, 01/02/2015, http://www.codeproject.com/Articles/12383/Aho-
Corasick-string-matching-in-C
Algoritmos de Pesquisa em String
Simulação em Video (Youtube):
http://youtu.be/d24CyiU1JFk
• Atividade:
– Defina um algoritmo para pesquisa de trechos de texto dentro
de um texto maior. Pode ser em português estruturado ou
qualquer linguagem, desde que sejam utilizados comandos
primitivos (sem o uso de bibliotecas de alto nível para pesquisa
em string).
• Questões de Pesquisa:
– Qual a complexidade (assimptotica) do seu algoritmo? Como ele
reage alterando-se drasticamente o tamanho do texto procurado
ou do texto base?
– Funciona com textos de qualquer tamanho?
– Detecta trechos de texto ligeiramente diferentes do texto
procurado (por exemplo, detecta “paerl.exe” se voce procurer
por “pearl.exe”)?
Algoritmos de Pesquisa em String
Dúvidas e Comentários?
Agradecimentos:
Prof. Marcelo Conterato
Prof. Samuel Souza
Faculdade Dom Bosco de Porto Alegre
Bacharelado em Sistemas de Informação
Prof. Filipo Mór 2015/01
Auditoria e Segurança em TI

Mais conteúdo relacionado

Mais procurados

Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografiaNatanael Fonseca
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosFábio dos Reis
 
Criptgrafia algoritmos
Criptgrafia   algoritmosCriptgrafia   algoritmos
Criptgrafia algoritmosdigobfpc
 
Criptografia
CriptografiaCriptografia
CriptografiaPaula P.
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaCleber Fonseca
 
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕESS.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕESMateus Cardoso
 
Introducao a criptografia
Introducao a criptografiaIntroducao a criptografia
Introducao a criptografiagillojau
 
T aula5-criptografia-distribuição de chaves,
T aula5-criptografia-distribuição de chaves,T aula5-criptografia-distribuição de chaves,
T aula5-criptografia-distribuição de chaves,Hélio Martins
 
Criptografia - Faculdade Impacta
Criptografia - Faculdade ImpactaCriptografia - Faculdade Impacta
Criptografia - Faculdade ImpactaLuiz Sales Rabelo
 
Cyber Security - Aula 1
Cyber Security - Aula 1Cyber Security - Aula 1
Cyber Security - Aula 1VicenteTino
 

Mais procurados (18)

Criptografia
CriptografiaCriptografia
Criptografia
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografia
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson Treinamentos
 
Criptgrafia algoritmos
Criptgrafia   algoritmosCriptgrafia   algoritmos
Criptgrafia algoritmos
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - Criptografia
 
Seguranca de rede
Seguranca de redeSeguranca de rede
Seguranca de rede
 
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕESS.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
S.D.I - SEGURANÇA DE DADOS E INFORMAÇÕES
 
Introducao a criptografia
Introducao a criptografiaIntroducao a criptografia
Introducao a criptografia
 
Criptografia Aplicada
Criptografia AplicadaCriptografia Aplicada
Criptografia Aplicada
 
Rsa
RsaRsa
Rsa
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
T aula5-criptografia-distribuição de chaves,
T aula5-criptografia-distribuição de chaves,T aula5-criptografia-distribuição de chaves,
T aula5-criptografia-distribuição de chaves,
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografia - Faculdade Impacta
Criptografia - Faculdade ImpactaCriptografia - Faculdade Impacta
Criptografia - Faculdade Impacta
 
Redes ii p2
Redes ii p2Redes ii p2
Redes ii p2
 
Cyber Security - Aula 1
Cyber Security - Aula 1Cyber Security - Aula 1
Cyber Security - Aula 1
 
Criptografia
CriptografiaCriptografia
Criptografia
 

Destaque

Aula 04 coneitos de auditoria de sistemas
Aula 04   coneitos de auditoria de sistemasAula 04   coneitos de auditoria de sistemas
Aula 04 coneitos de auditoria de sistemassorayaNadja
 
Wonders Of The Sky 2009 Dark Sky 02
Wonders Of The Sky 2009 Dark Sky 02Wonders Of The Sky 2009 Dark Sky 02
Wonders Of The Sky 2009 Dark Sky 02BHSEarthScience
 
Manual docente Uniboyacá Virtual 2014
Manual docente Uniboyacá Virtual 2014Manual docente Uniboyacá Virtual 2014
Manual docente Uniboyacá Virtual 2014DgFeVemez
 
Autores y colaboradores 29.10.2013
Autores y colaboradores 29.10.2013Autores y colaboradores 29.10.2013
Autores y colaboradores 29.10.2013Herbert Stegemann
 
TCC_Felipe_Antunes_Correção
TCC_Felipe_Antunes_CorreçãoTCC_Felipe_Antunes_Correção
TCC_Felipe_Antunes_CorreçãoFelipe Antunes
 
раздел 1 cовременные воспитательные технологии_неверова
раздел 1 cовременные воспитательные технологии_неверовараздел 1 cовременные воспитательные технологии_неверова
раздел 1 cовременные воспитательные технологии_невероваТатьяна Плохотник
 
Presentazione pec
Presentazione pec Presentazione pec
Presentazione pec snap69
 
Planejamento estratégico - RioJunior - 2014
Planejamento estratégico - RioJunior - 2014Planejamento estratégico - RioJunior - 2014
Planejamento estratégico - RioJunior - 2014Hector Muniz
 
Brochure frederik van eedenlaan
Brochure frederik van eedenlaanBrochure frederik van eedenlaan
Brochure frederik van eedenlaanWoningadviseurs
 
Ambiental - CNI
Ambiental - CNIAmbiental - CNI
Ambiental - CNIsenaimais
 
Lista dos Postos de Turismo no Alentejo
Lista dos Postos de Turismo no AlentejoLista dos Postos de Turismo no Alentejo
Lista dos Postos de Turismo no Alentejoturismo_alentejo
 

Destaque (20)

Aula 04 coneitos de auditoria de sistemas
Aula 04   coneitos de auditoria de sistemasAula 04   coneitos de auditoria de sistemas
Aula 04 coneitos de auditoria de sistemas
 
Desertification Davos 2014-08-28
Desertification Davos 2014-08-28Desertification Davos 2014-08-28
Desertification Davos 2014-08-28
 
Wonders Of The Sky 2009 Dark Sky 02
Wonders Of The Sky 2009 Dark Sky 02Wonders Of The Sky 2009 Dark Sky 02
Wonders Of The Sky 2009 Dark Sky 02
 
Inadi
InadiInadi
Inadi
 
Manual docente Uniboyacá Virtual 2014
Manual docente Uniboyacá Virtual 2014Manual docente Uniboyacá Virtual 2014
Manual docente Uniboyacá Virtual 2014
 
Autores y colaboradores 29.10.2013
Autores y colaboradores 29.10.2013Autores y colaboradores 29.10.2013
Autores y colaboradores 29.10.2013
 
Codigos programacion
Codigos programacionCodigos programacion
Codigos programacion
 
Revista FONTE - Prodemge
Revista FONTE - ProdemgeRevista FONTE - Prodemge
Revista FONTE - Prodemge
 
Processo Eletrônico e Hipertexto
Processo Eletrônico e HipertextoProcesso Eletrônico e Hipertexto
Processo Eletrônico e Hipertexto
 
TCC_Felipe_Antunes_Correção
TCC_Felipe_Antunes_CorreçãoTCC_Felipe_Antunes_Correção
TCC_Felipe_Antunes_Correção
 
раздел 1 cовременные воспитательные технологии_неверова
раздел 1 cовременные воспитательные технологии_неверовараздел 1 cовременные воспитательные технологии_неверова
раздел 1 cовременные воспитательные технологии_неверова
 
Presentazione pec
Presentazione pec Presentazione pec
Presentazione pec
 
Gestão de preços a+b+c+d grupo 3 g2 na
Gestão de preços a+b+c+d grupo 3 g2 naGestão de preços a+b+c+d grupo 3 g2 na
Gestão de preços a+b+c+d grupo 3 g2 na
 
Planejamento estratégico - RioJunior - 2014
Planejamento estratégico - RioJunior - 2014Planejamento estratégico - RioJunior - 2014
Planejamento estratégico - RioJunior - 2014
 
Reporte tic unicaes principal
Reporte tic unicaes principalReporte tic unicaes principal
Reporte tic unicaes principal
 
Brochure frederik van eedenlaan
Brochure frederik van eedenlaanBrochure frederik van eedenlaan
Brochure frederik van eedenlaan
 
Ambiental - CNI
Ambiental - CNIAmbiental - CNI
Ambiental - CNI
 
Lista dos Postos de Turismo no Alentejo
Lista dos Postos de Turismo no AlentejoLista dos Postos de Turismo no Alentejo
Lista dos Postos de Turismo no Alentejo
 
Elemento ancora
Elemento ancoraElemento ancora
Elemento ancora
 
Duque
DuqueDuque
Duque
 

Semelhante a Auditoria e Segurança em TI - Aula 3

RSA, A Vaca Sagrada do Infosec
RSA, A Vaca Sagrada do InfosecRSA, A Vaca Sagrada do Infosec
RSA, A Vaca Sagrada do InfosecLuis Grangeia
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programaçãomaceca21
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Alex Camargo
 
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosApresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosSanger Dias
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02thomasdacosta
 
Pentest Invasão e Defesa - AnonFeh
Pentest   Invasão e Defesa - AnonFehPentest   Invasão e Defesa - AnonFeh
Pentest Invasão e Defesa - AnonFehPhillipe Martins
 
Boot Seguro para Linux Embarcado
Boot Seguro para Linux EmbarcadoBoot Seguro para Linux Embarcado
Boot Seguro para Linux EmbarcadoBruno Castelucci
 
Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2Lorena Caldas
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Invenções implementadas por programa de computador
Invenções implementadas por programa de computadorInvenções implementadas por programa de computador
Invenções implementadas por programa de computadorCEST
 

Semelhante a Auditoria e Segurança em TI - Aula 3 (20)

RSA, A Vaca Sagrada do Infosec
RSA, A Vaca Sagrada do InfosecRSA, A Vaca Sagrada do Infosec
RSA, A Vaca Sagrada do Infosec
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
0001
00010001
0001
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
 
Aes 25
Aes 25Aes 25
Aes 25
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
 
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosApresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
 
Aula 1
Aula 1Aula 1
Aula 1
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02
 
Laços de Repetição
Laços de RepetiçãoLaços de Repetição
Laços de Repetição
 
Pentest Invasão e Defesa - AnonFeh
Pentest   Invasão e Defesa - AnonFehPentest   Invasão e Defesa - AnonFeh
Pentest Invasão e Defesa - AnonFeh
 
Boot Seguro para Linux Embarcado
Boot Seguro para Linux EmbarcadoBoot Seguro para Linux Embarcado
Boot Seguro para Linux Embarcado
 
Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2Estratégias e Técnicas de Testes - Parte 2
Estratégias e Técnicas de Testes - Parte 2
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Invenções implementadas por programa de computador
Invenções implementadas por programa de computadorInvenções implementadas por programa de computador
Invenções implementadas por programa de computador
 
Math
MathMath
Math
 

Mais de Filipo Mór

Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDAFilipo Mór
 
Master Thesis Defense
Master Thesis DefenseMaster Thesis Defense
Master Thesis DefenseFilipo Mór
 
Programaçao C - Aula 2
Programaçao C - Aula 2Programaçao C - Aula 2
Programaçao C - Aula 2Filipo Mór
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1Filipo Mór
 
Uma Abordagem Paralela da Evolução Diferencial em GPU
Uma Abordagem Paralela da Evolução Diferencial em GPUUma Abordagem Paralela da Evolução Diferencial em GPU
Uma Abordagem Paralela da Evolução Diferencial em GPUFilipo Mór
 
Aula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPAula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPFilipo Mór
 
Aula Especial - Redes de Computadores A - Sockets
Aula Especial - Redes de Computadores A - SocketsAula Especial - Redes de Computadores A - Sockets
Aula Especial - Redes de Computadores A - SocketsFilipo Mór
 
Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.
Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.
Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.Filipo Mór
 
Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.
Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.
Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.Filipo Mór
 
Aula 1 - Redes de Computadores A - Conceitos Básicos.
Aula 1 - Redes de Computadores A - Conceitos Básicos.Aula 1 - Redes de Computadores A - Conceitos Básicos.
Aula 1 - Redes de Computadores A - Conceitos Básicos.Filipo Mór
 
Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIFilipo Mór
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Filipo Mór
 
Aula 12 - Gestão do Conhecimento
Aula 12 - Gestão do ConhecimentoAula 12 - Gestão do Conhecimento
Aula 12 - Gestão do ConhecimentoFilipo Mór
 
Aula 11 - Terceirização em TI
Aula 11 - Terceirização em TIAula 11 - Terceirização em TI
Aula 11 - Terceirização em TIFilipo Mór
 
Aula 10 - Acompanhamento de Projetos
Aula 10 - Acompanhamento de ProjetosAula 10 - Acompanhamento de Projetos
Aula 10 - Acompanhamento de ProjetosFilipo Mór
 
Aula 9 - Controle de Atividades e Custos
Aula 9 - Controle de Atividades e CustosAula 9 - Controle de Atividades e Custos
Aula 9 - Controle de Atividades e CustosFilipo Mór
 
Aula 8 - Técnicas de Negociação e Gestão de RH
Aula 8 - Técnicas de Negociação e Gestão de RHAula 8 - Técnicas de Negociação e Gestão de RH
Aula 8 - Técnicas de Negociação e Gestão de RHFilipo Mór
 
Aula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de PlanejamentoAula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de PlanejamentoFilipo Mór
 
Aula 6 - O Processo Decisório e a Inteligência Competitiva de TI
Aula 6 - O Processo Decisório e a Inteligência Competitiva de TIAula 6 - O Processo Decisório e a Inteligência Competitiva de TI
Aula 6 - O Processo Decisório e a Inteligência Competitiva de TIFilipo Mór
 
Aula 5 - A TI nas Organizações
Aula 5 - A TI nas OrganizaçõesAula 5 - A TI nas Organizações
Aula 5 - A TI nas OrganizaçõesFilipo Mór
 

Mais de Filipo Mór (20)

Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
 
Master Thesis Defense
Master Thesis DefenseMaster Thesis Defense
Master Thesis Defense
 
Programaçao C - Aula 2
Programaçao C - Aula 2Programaçao C - Aula 2
Programaçao C - Aula 2
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Uma Abordagem Paralela da Evolução Diferencial em GPU
Uma Abordagem Paralela da Evolução Diferencial em GPUUma Abordagem Paralela da Evolução Diferencial em GPU
Uma Abordagem Paralela da Evolução Diferencial em GPU
 
Aula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPAula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IP
 
Aula Especial - Redes de Computadores A - Sockets
Aula Especial - Redes de Computadores A - SocketsAula Especial - Redes de Computadores A - Sockets
Aula Especial - Redes de Computadores A - Sockets
 
Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.
Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.
Aula 4 - Redes de Computadores A - Camadas Modelos TCP/IP e OSI. Camada Física.
 
Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.
Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.
Aula 3 - Redes de Computadores A - Administração da Internet. Modelo TCP/IP.
 
Aula 1 - Redes de Computadores A - Conceitos Básicos.
Aula 1 - Redes de Computadores A - Conceitos Básicos.Aula 1 - Redes de Computadores A - Conceitos Básicos.
Aula 1 - Redes de Computadores A - Conceitos Básicos.
 
Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTI
 
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
Curso "Desenvolvendo aplicações de uso geral para GPU com CUDA".
 
Aula 12 - Gestão do Conhecimento
Aula 12 - Gestão do ConhecimentoAula 12 - Gestão do Conhecimento
Aula 12 - Gestão do Conhecimento
 
Aula 11 - Terceirização em TI
Aula 11 - Terceirização em TIAula 11 - Terceirização em TI
Aula 11 - Terceirização em TI
 
Aula 10 - Acompanhamento de Projetos
Aula 10 - Acompanhamento de ProjetosAula 10 - Acompanhamento de Projetos
Aula 10 - Acompanhamento de Projetos
 
Aula 9 - Controle de Atividades e Custos
Aula 9 - Controle de Atividades e CustosAula 9 - Controle de Atividades e Custos
Aula 9 - Controle de Atividades e Custos
 
Aula 8 - Técnicas de Negociação e Gestão de RH
Aula 8 - Técnicas de Negociação e Gestão de RHAula 8 - Técnicas de Negociação e Gestão de RH
Aula 8 - Técnicas de Negociação e Gestão de RH
 
Aula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de PlanejamentoAula 7 - Técnicas de Planejamento
Aula 7 - Técnicas de Planejamento
 
Aula 6 - O Processo Decisório e a Inteligência Competitiva de TI
Aula 6 - O Processo Decisório e a Inteligência Competitiva de TIAula 6 - O Processo Decisório e a Inteligência Competitiva de TI
Aula 6 - O Processo Decisório e a Inteligência Competitiva de TI
 
Aula 5 - A TI nas Organizações
Aula 5 - A TI nas OrganizaçõesAula 5 - A TI nas Organizações
Aula 5 - A TI nas Organizações
 

Último

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Auditoria e Segurança em TI - Aula 3

  • 1. Auditoria e Segurança de TI Aula 3 – Algoritimos e Aplicações de Segurança. Prof. Filipo Mór www.filipomor.com Bacharelado em Sistemas de Informação
  • 2. Agenda • Conceitos Básicos. • Algoritmos para Criptografia. • Algoritmos de Checksum. • Algoritmos de Pesquisa em String.
  • 3. Objetivos Objetivos da aula de hoje:  Apresentar os conceitos básicos e algoritmos que formarão a base de estudo da área de criptografia e segurança de redes e sistemas.  Propiciar o contato do estudante com algoritmos avançados utilizados na segurança de redes e sistemas.
  • 4. Conceitos Básicos • Complexidade da Comunicação em Rede – Grande quantidade de padrões e protocolos envolvidos, com diversas implementações em hardware e software. – A padronização permite a comunicação entre sistemas e aplicações de diferentes naturezas, como por exemplo entre máquinas com diferentes sistemas operacionais. – No entanto, tal diversidade acaba facilitando a criação de brechas na segurança.
  • 5. Conceitos Básicos • Complexidade da Comunicação em Rede Network Security - Know It All, 2008, pg 50
  • 6. Conceitos Básicos • Os problemas podem ser resultantes de: – Ataques. – Falhas. – Situações não previstas. • Desta forma, são implementados métodos de conferência, validação e segurança em diversos níveis de abstração na comunicação em redes.
  • 7. Conceitos Básicos • Algoritmos comumente utilizados: – Criptografia. – Validação de dados (checksum). – Busca de padrões em dados do tipo string.
  • 8.
  • 9. Algoritmos para Criptografia • Criptografia – Do grego kryptós, "escondido", e gráphein, "escrita“. – Compreende na modificação do conteúdo da mensagem de forma que apenas o destinatário, em posse de uma chave de decriptografia, será capaz de acessar o seu conteúdo original.
  • 10. • Relembrando a multiplicação de matrizes! Site Brasil Escola, 05/03/2015 - http://www.brasilescola.com/matematica/multiplicacao-matrizes.htm Algoritmos para Criptografia
  • 11. • Metodo Básico de Criptografia. – Utilização de matrizes inversas: A e B = A-1 – Exemplo: 𝐴 = 3 1 2 1 e 𝐵 = 1 −1 −2 3 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ḇ 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 Para converter a mensagem para a forma numérica utilizaremos a seguinte tabela de conversão: Exemplo extraído do livro Introdução à ÁLGEBRA LINEAR. C.H.Edwards, Jr. David E. Penney Algoritmos para Criptografia
  • 12. • A mensagem “the game is afoot” será convertida para o formato numérico da seguinte forma: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ḇ 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 the game is afoot T H E ḇ G A M E ḇ I S ḇ A F O O T 20 8 5 29 7 1 13 5 29 9 19 29 1 6 15 15 20 Algoritmos para Criptografia
  • 13. • Como a matriz codificadora A é 2x2, então a mensagem convertida para formato numérico será organizada no seguinte padrão na matriz M: T H E ḇ G A M E ḇ I S ḇ A F O O T 20 8 5 29 7 1 13 5 29 9 19 29 1 6 15 15 20 𝑀 = 20 9 8 19 5 29 29 1 7 6 1 15 13 15 5 20 29 29 Algoritmos para Criptografia
  • 14. • Para codificação da mensagem, faz-se: 𝑁 = 𝐴𝑀 𝑁 = 3 1 2 1 20 9 8 19 5 29 29 1 7 6 1 15 13 15 5 20 29 29 𝑁 = 69 49 43 35 44 39 88 59 27 20 18 17 54 41 35 35 116 87 Algoritmos para Criptografia
  • 15. • Entao, a mensagem codificada resultante será a lista de números inteiros: { 69, 43, 44, 88, 27, 18, 54, 35, 116, 49, 35, 39, 59, 20, 17, 41, 30, 87 } Que deverá ser enviada ao destinatário. Algoritmos para Criptografia
  • 16. • Para decodificar a mensagem, o destinatário deverá efetuar: 𝑀 = 𝐵𝑁 M= 1 −1 −2 3 69 49 43 35 44 39 88 59 27 20 18 17 54 41 35 35 116 87 𝑀 = 20 9 8 19 5 29 29 1 7 6 1 15 13 15 5 20 29 29 Algoritmos para Criptografia
  • 17. 𝑀 = 20 9 8 19 5 29 29 1 7 6 1 15 13 15 5 20 29 29 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . , ḇ 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 the game is afoot T H E ḇ G A M E ḇ I S ḇ A F O O T 20 8 5 29 7 1 13 5 29 9 19 29 1 6 15 15 20 Algoritmos para Criptografia
  • 18. • Analisando o algoritmo: • Complexidade: 𝑂(𝑛3) – (considerando-se matrizes quadradas 𝑁𝑥𝑁). • São necessárias duas chaves: as matrizes A e B. Algoritmos para Criptografia
  • 19. • Outros métodos básicos de criptografia: – Aritmética modular. – Cifra de César. – Quadrado de Vinegère. – Cifra Monoalfabética. – Cifra Playfair. Algoritmos para Criptografia
  • 20.
  • 21. Algoritmos de Checksum • Checksum – Consiste na verificação do dado recebido pela comparação do código verificador recebido contra o código de verificação calculado. – Métodos mais utilizados: • Cálculo de Paridade por Byte ou Palavra. • Verificação Longitudinal por Redundância. • Redundância Cíclica. • Soma Modular. • Método de Fletcher. • Método de Adler. • Método de Luhn.
  • 22. • Cálculo de Checksum por Paridade: Bit0 Bit1 Bit2 Bit3 Bitn … paridade dados código verificação informação recebida ⊕paridade = Bit0 Bit1 ⊕ Bit2 ⊕ Bit3 ⊕ Bitn-1⊕ ⋯ XOR (OU exclusivo) Algoritmos de Checksum
  • 23. • Cálculo de Checksum por Paridade: ⊕paridade = Bit0 Bit1 ⊕ Bit2 ⊕ Bit3 ⊕ Bitn-1⊕ ⋯ ⊕ 0 = 00 ⊕ 1 = 10 ⊕ 0 = 11 ⊕ 1 = 01 Tabela Verdade XOR Paridade para números de 1 bit: Número Par: 0 Número Ímpar: 1 Algoritmos de Checksum
  • 24. • Algoritmo de Luhn: • Complexidade: 𝑂(𝑛) • Utilizado para validar: – Números de cartão de crédito. – Códigos IMEI (celulares). – Telefonia via satélite. – Números seguridade social nos EUA e Canadá. – Fraqueza: não detecta transposição de algarismos (por exemplo, “08” por “80”) Algoritmos de Checksum
  • 25. “You know something is wrong when the government declares opening someone else’s mail is a felony but your internet activity is fair game for data collecting.” E.A. Bucchianeri
  • 26. Algoritmos de Pesquisa em String • Métodos para Pesquisa de Conteúdo em String: – Verificação de pacotes recebidos via rede. – Detecção de worms. – Proteção de scripts. – Outras áreas do conhecimento: • Big data. • Estudo do genoma humano. • Data mining.
  • 27. • Algoritmos de busca mais utilizados: – Algoritmo de Boyer-Moor. • Considerado o mais eficiente algoritmo de busca em string. • A busca é sempre realizada da direita para a esquerda. • Ideal para situações onde o texto sendo procurado é muito menor do que o texto base, ou quando o padrão sendo procurado se repete muitas vezes no texto base. • Se utiliza de informações geradas na fase de pré-processamento para “pular” trechos de código durante a fase de processamento. • Complexidade 𝑂(𝑛/𝑚) (melhor caso) na fase de processamento. • Utilizado em funções de Search e Replace de editores de texto. Algoritmos de Pesquisa em String
  • 28. • Algoritmos de busca mais utilizados: – Algoritmo de Boyer-Moor. • Fase de pré-processamento. Algoritmos de Pesquisa em String Exemplo extraído do site Boyer-Moore algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node14.html, 04/02/2015.
  • 29. • Algoritmos de busca mais utilizados: – Algoritmo de Boyer-Moor. • Fase de processamento (busca). Algoritmos de Pesquisa em String Exemplo extraído do site Boyer-Moore algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node14.html, 04/02/2015.
  • 30. Algoritmos de Pesquisa em String Exemplo extraído do site Boyer-Moore algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node14.html, 04/02/2015.
  • 31. • Algoritmos de busca mais utilizados: – Algoritmo de Aho–Corasick. • Executa em 𝑂(𝑛 + 𝑚 + 𝑧), sendo 𝑛 o tamanho do texto base, 𝑚 o tamanho do trecho sendo procurado e 𝑧 a quantidade de ocorrências do trecho procurado no texto base. • Baseado na implementação de uma árvore de chaves de pesquisa. • A construção da árvore toma 𝑂(𝑛). • A pesquisa toma 𝑂(𝑚 + 𝑧). • No melhor caso, pode executar em Θ(𝑛𝑚). Algoritmos de Pesquisa em String
  • 32. 𝑷 = {𝒉𝒆, 𝒔𝒉𝒆, 𝒉𝒊𝒔, 𝒉𝒆𝒓𝒔} Site Code Project, Aho-Corasick string matching in C#, 01/02/2015, http://www.codeproject.com/Articles/12383/Aho- Corasick-string-matching-in-C Algoritmos de Pesquisa em String Simulação em Video (Youtube): http://youtu.be/d24CyiU1JFk
  • 33. • Atividade: – Defina um algoritmo para pesquisa de trechos de texto dentro de um texto maior. Pode ser em português estruturado ou qualquer linguagem, desde que sejam utilizados comandos primitivos (sem o uso de bibliotecas de alto nível para pesquisa em string). • Questões de Pesquisa: – Qual a complexidade (assimptotica) do seu algoritmo? Como ele reage alterando-se drasticamente o tamanho do texto procurado ou do texto base? – Funciona com textos de qualquer tamanho? – Detecta trechos de texto ligeiramente diferentes do texto procurado (por exemplo, detecta “paerl.exe” se voce procurer por “pearl.exe”)? Algoritmos de Pesquisa em String
  • 34. Dúvidas e Comentários? Agradecimentos: Prof. Marcelo Conterato Prof. Samuel Souza Faculdade Dom Bosco de Porto Alegre Bacharelado em Sistemas de Informação Prof. Filipo Mór 2015/01 Auditoria e Segurança em TI