Buscar

Criptografia- Resumo de Aulas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 167 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 167 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 167 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
1
Programa – Descrição
A unidade de Criptografia tem por objetivo transmitir os conhecimentos teórico-práticos
necessários para o planeamento, implementação e manutenção da segurança em redes
informáticas e sistemas computacionais.
Serão abordados os necessários conceitos teóricos, as técnicas e padrões das organizações
internacionais, bem como as tecnologias de implementação mais recentes, para implementação
de sistemas informáticos seguros.
No final desta unidade, o aluno estará em condições de encriptar e desencriptar ficheiros e
escolher o sistema mais adequado às exigências e necessidades empresariais e organizacionais.
JORGE LEIRIA PIRES 2
Programa – objetivos (1/2)
•Compreender os conceitos fundamentais de criptografia e criptoanálise.
•Conhecer os principais algoritmos criptográficos.
•Distinguir entre criptografia simétrica e assimétrica.
•Compreender o papel das entidades de certificação.
•Compreender a noção de domínio como limite de aplicação de regras de 
segurança.
•Compreender e implementar os diferentes tipos de autenticação de rede.
JORGE LEIRIA PIRES 3
Programa – objetivos (2/2)
•Compreender o sistema de certificados digitais.
•Entender o conceito de assinatura digital.
•Saber cifrar e decifrar utilizando diferentes algoritmos.
•Saber fazer cálculos em espaços modulares.
•Entender os conceitos de confidencialidade, integridade e não-repudiação.
•Entender os princípios fundamentais das infra-estruturas de chave pública.
JORGE LEIRIA PIRES 4
Programa – conteúdos programáticos (1/2)
1. Introdução à criptografia e à segurança da informação
2. Cifra de textos
3. Aritmética modular
4. Criptografia de chave pública e privada
◦ Criptografia de chave pública/privada/combinadas
◦ Chaves criptográficas e certificados
JORGE LEIRIA PIRES 5
Programa – conteúdos programáticos (2/2)
5. Autenticação de utilizadores
◦ Autenticação de utilizador de computador local
◦ Autenticação de utilizador na rede (processos de autenticação)
◦ Autenticação de certificados
6. Protecção de dados armazenados
◦ Criptografia de ficheiros e directórios (pastas)
◦ O processo de criptografia / Considerações
◦ Codificação de directórios e ficheiros
7. Aplicações
JORGE LEIRIA PIRES 6
Programa – material, metodologia e bibliografia
Material
• Caderno (indispensável)
• Pen drive (desejável)
Metodologia
• Aulas teóricas
• Aulas práticas
• Avaliação
• Exame
Bibliografia
• Understanding Cryptography: A Textbook for 
Students and Practitioners
• Autores
• Christof Paar
• Jan Pelzl
• Bart Preneel
• Editora
• Springer
JORGE LEIRIA PIRES 7
Programa – bibliografia (continuação)
Bibliografia complementar
BOAVIDA, Fernando; BERNARDES, Mário; VAPI, Pedro; Administração de redes informáticas, FCA, 
Lisboa
MONTEIRO, Edmundo; BOAVIDA, Fernando; Engenharia de redes informáticas, FCA, Lisboa
STALLINGS, William; Cryptography and Network Security: Principles and Practice; Pearson
SINGH, Simon; The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography; 
Anchor
KAUFMAN, Perlman, Speciner; Network Security: Private Communication in a Public World; Prentice 
Hall
ZÚQUETE, André; Segurança em Redes Informáticas; FCA, Lisboa
FERGUSON, Niels, Bruce Schneier & Tadayoshi Kohno; Cryptography Engineering: Design Principles
and Practical Applications; Wiley
JORGE LEIRIA PIRES 8
Programa – recursos online
Espaços modulares
Professor: Fabio Henrique Teixeira de Souza
Aulas 44 (este link), 45 e 46.
https://youtu.be/WrTrMBJIET4?list=PLoHP-i4zwHrKoYMEZZ_QyfvJuMADs4Kpx
Criptografia
Professor: Christof Paar
Aula 1 (este link). Curso completo com 24 aulas
https://youtu.be/2aHkqB2-46k?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy
JORGE LEIRIA PIRES 9
https://youtu.be/WrTrMBJIET4?list=PLoHP-i4zwHrKoYMEZZ_QyfvJuMADs4Kpx
https://youtu.be/2aHkqB2-46k?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
2
Segurança – Generalidades
• Nada é 100% seguro
• É necessário
• Definir políticas de segurança
• Criar mecanismos de segurança
• Monitorizar sistemas
• Auditar sistemas
• Ao criar uma rede, reduz-se a segurança
• Para a garantir dispomos de:
• Ferramentas
• Tecnologias
• Ciência
• … e muito trabalho 
JORGE LEIRIA PIRES 2
Segurança – Conceitos básicos
PONTOS A TER EM CONSIDERAÇÃO
• Autenticação
• de máquinas
• de utilizadores
• Controlo de acessos
• Físico
• Gestão de chaves
• Escolha de protocolos
• Firewalls
• VPNs
• Confidencialidade e Integridade
• Encriptação de dados
• Encriptação de comunicações
• Não repúdio
• Obrigatoriedade de participar
• Disponibilidade
• Sistemas redundantes
• Backups
JORGE LEIRIA PIRES 3
Segurança – Aspectos abrangidos
• Autenticação
• Garantir que as entidades envolvidas são, de 
facto, quem afirmam ser
• Controlo de acessos
• Impedir o acesso não autorizado aos serviços 
e/ou à informação
• Definir a quantidade de recursos utilizáveis 
(tecnicamente, não é uma questão de segurança, mas 
costuma-se enquadrar aqui)
• Velocidades de Download/Upload
• Quantidade de memória utilizável
• Tempo de CPU
• Nº de CPUs
• Confidencialidade e Integridade
• Limitar o acesso à informação apenas a quem 
está autorizado. Eventualmente, só a quem se 
autenticar
• Não permitir que os dados sejam alterados por 
terceiros
• Não repúdio
• Funcionalidades que impedem que uma 
entidade se recuse a colaborar numa acção
• Disponibilidade
• Garantir que o sistema continua a funcionar, 
mesmo após a ocorrência de um incidente grave
JORGE LEIRIA PIRES 4
Segurança – Mecanismos
• Encriptação (cifrar)
• Gerar informação ininteligível para terceiros
• Utilização de algoritmos matemáticos associados 
a chaves (secretas ou não)
• Permitir a recuperação dos dados originais
• Desencriptação (decifrar)
• Partindo da informação encriptada, voltar a 
obter os dados originais
• Obriga ao conhecimento do algoritmo 
matemático e de uma chave que pode não ser 
secreta
• Assinatura Digital
• Conjunto de dados encriptados associados a um 
documento
• A encriptação é feita usando mecanismos 
assimétricos
• Garante
• Integridade do documento
• Autenticidade de quem o produziu
• Ex: Facturas electrónicas com validade fiscal
• O documento em si não é encriptado
• Não é garantida a confidencialidade
JORGE LEIRIA PIRES 5
Segurança – Mecanismos
• Controlo de acesso
• Algo que se sabe – Passwords
• Algo que se tem – Smart cards
• Algo que se é – Sistemas biométricos
• As Firewalls
• São mecanismos de controlo de acesso
• Fáceis de implementar
• Fáceis de gerir
• Atualmente muito utilizados
• Podem ser de software ou hardware
• Qual o melhor sistema?
• Os mais seguros, são indubitavelmente os 
sistemas biométricos.
• As passwords são o método mais fraco, porque 
geralmente as pessoas tendem a usar algo de 
que se lembrem com facilidade, como por 
exemplo o nome do gato ou a data de 
nascimento…
JORGE LEIRIA PIRES 6
Segurança – Classificação das ameaças
• Acesso não autorizado
• Obtém-se as credenciais de outra pessoa
• Vendo o que ela escreve
• Usando software instalado noutro PC (sniffer)
• Ruptura de Serviços
• Dispositivo não consegue responder aos pedidos
• Física: destruição de cabos ou equipamentos
• Lógica: Denial of Service (DoS)
• Esgotar velocidade de resposta (CPU)
• Esgotar largura de banda disponível
• Esgotar ligações TCP
• Ping bombing – dos primeiros ataques conhecidos; a vítima 
ficava sem capacidade de resposta face às inúmeras 
solicitações recebidas
• Lógica: Distributed Denial of Service (DDoS)
• Semelhante ao DoS, mas o ataque é feito a partir de 
múltiplos equipamentos, geralmente a partir de várias 
localizações
JORGE LEIRIA PIRES 7
Segurança – Classificação das ameaças
• Ataque por imitação
• Fazer-se passar por outro
• Spoofing: falseara origem de um pacote
• DNS spoofing – interceptar a pergunta e responder ao 
pedido de resolução com um IP falso
• ARP poisoning – alteração da cache ARP para as respostas, 
por exemplo alterando o MAC associado ao default gateway
por forma a que a tentativa de saída da rede local seja feita 
através de outra máquina
• Replay: Copiar a mensagem válida e enviá-la 
noutra altura
• Malware
• O dispositivo faz o que não era suposto fazer
• Vírus
• Worms
• Cavalos de Tróia
• Phishing
• Aselhice 
• Provocado acidentalmente pelos utilizadores
• Quando acontece, o principal responsável é o 
administrador de sistemas
JORGE LEIRIA PIRES 8
Segurança – Análise de risco
• A análise de risco consiste em
• Identificar os bens a proteger
• Identificar as ameaças
• Calcular a probabilidade de sucesso de uma tentativa de ataque
• Identificar os custos associados a um ataque, que se podem dividir em:
• Custos imediatos
• Custos de recuperação
• Identificar custos de proteção
• Têm de ser inferiores aos do ataque
JORGE LEIRIA PIRES 9
Segurança – Grau de risco
Como definir um “valor” numérico que mostre o
grau de proteção/fragilidade do sistema?
• Calculando o “potencial” de ataque, definimos a “probabilidade” de ser atacado
• Não é um método rigoroso
• Apela-se ao bom senso do classificador
• Pode-se criar um conjunto de questões
• Responde-se a cada questão usando uma escala de 1 a 5, onde
• 1 significa nada provável
• 5 significa quase certo
JORGE LEIRIA PIRES 10
Segurança – Classificação do ataque
Utilizando 
estas 
questões, 
quantifica-se 
o risco de 
ser atacado
JORGE LEIRIA PIRES 11
Questão Pontos
Acesso físico de público ao interior do edifício?
Acesso aos recursos da organização por parte de estranhos?
Suporte de serviços de comunicação para o público em geral (p.ex., ISP)?
Alguém, para além da equipa de gestão, tem acesso a privilégios de administração?
Existe partilha de contas entre utilizadores, ou contas genéricas (p.ex., contas guest)? 
A actividade da organização pode ser considerada controversa?
A actividade da organização está relacionada com a área financeira?
Existem servidores expostos à Internet?
São usadas redes públicas para acesso a dados sensíveis (p.ex., RDIS, Internet)?
A actividade da organização é altamente especializada?
A organização teve recentemente um crescimento muito rápido?
A organização tem tido muita visibilidade nos media?
Os utilizadores são especialistas em informática?
Segurança – Custo da segurança
Para a determinação do custo da segurança, devem-se ter em atenção os seguintes pontos
• Qual o nível de proteção necessário?
• Utilizando a análise de risco já feita
• Quais os equipamentos a adquirir?
• Routers, firewalls, servidores, etc.
• Qual o software a adquirir?
• S.O., Firewall, antivírus, etc.
• Quais os meios humanos necessários?
• Gestores de sistemas, técnicos, peritos em segurança, etc.
• Quais as implicações, na produtividade da organização, de implementar tudo isto?
• É preciso parar os serviços?
• Vamos aumentar/complicar o trabalho das pessoas?
JORGE LEIRIA PIRES 12
Segurança – Políticas de segurança
Estão definidas no RFC 2196
http://www.ietf.org/rfc/rfc2196.txt
• Conjunto formal de regras a seguir pelos utilizadores dos recursos duma organização
• Estipulam, com pormenor, as ações permitidas para usar os
• Recursos
• Sistemas de comunicações
• Definem procedimentos de segurança
• Especificam penalidades em caso de desrespeito
• Determinam como/quando se fazem os processos de auditoria à segurança
• Como tal, obrigam à manutenção de um histórico de eventos
JORGE LEIRIA PIRES 13
Segurança – Características da Política de Segurança
• Ser facilmente acessível a todos os membros da organização
• Definir
• os objetivos de segurança
• objetivamente todos os aspectos abordados
• a posição da organização em cada questão
• as circunstâncias em que é aplicada cada uma das regras
• os papéis dos diversos agentes da organização
• o nível de privacidade garantido aos utilizadores
• Identificar os contactos para esclarecimento de questões duvidosas
• Justificar as opções tomadas
• Definir o tratamento das situações omissas
• Especificar as consequências do não cumprimento das regras definidas
JORGE LEIRIA PIRES 14
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
3
Criptografia – Codificação (César)
Codificação
• O que quererá dizer “L FPQBZ”?
• E se vos disser que significa “O ISTEC”, conseguem descobrir o código?
• Código César
JORGE LEIRIA PIRES 2
Criptografia – Codificação (César - continuação)
Codificação
• O que quererá dizer “eds ylqgr”?
• E se vos disser que significa “bem vindo”, conseguem descobrir o código?
• Podemos complicar, se alterarmos a ordem das letras da parte cifrada
JORGE LEIRIA PIRES 3
Criptografia – Codificação (Morse)
• Código Morse
JORGE LEIRIA PIRES 4
Criptografia – Codificação (Morse - continuação)
• Código Morse
JORGE LEIRIA PIRES 5
Criptografia – Codificação (Maçónico)
• Código maçónico
JORGE LEIRIA PIRES 6
Criptografia – Codificação (exercícios)
Codifique
• “Bem vindo”
• em morse
• usando cifra maçónica
Descodifique
batatinha
JORGE LEIRIA PIRES 7
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
4
Criptografia – Codificação (Afim)
Código Afim (Affine cypher)
• Tem em linha de conta a função afim y = (ax + b)
• Função linear que não passa pela origem
• É aplicada num espaço modular m (o alfabeto), tal como o código César
• Logo, temos a fórmula para obter o resultado: y = (ax + b) mod m
• x é o código da letra a cifrar
• y é código da letra cifrada
• Note-se que a chave passa a ser composta por duas variáveis (a e b)
• Restrição: a tem de ser coprimo de m (e pertencer ao espaço modular)
• Dois números são coprimos se o único (máx.) divisor comum é o 1 (exemplos??)
• e.g. 20 e 21
JORGE LEIRIA PIRES 2
K(a,b)
Criptografia – Codificação (Afim - exercícios)
Código Afim (Affine cypher)
• No espaço modular do alfabeto (m=26) quais os valores possíveis de a?
• Resposta: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, e 25
• Utilizando a chave K(a,b) => K(5,8)
• Codifique a palavra: criptografia
1. Obtenha o código de cada letra (linear e simples: ‘a’=0, ‘b’=1… ‘z’=25)
2. Calcule (ax + b)
3. Calcule (ax + b) mod m
4. Obtenha o novo conjunto de letras (texto cifrado)
JORGE LEIRIA PIRES 3
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
4
Criptografia – Codificação (Afim)
Código Afim (Affine cypher)
• Tem em linha de conta a função afim y = (ax + b)
• Função linear que não passa pela origem
• É aplicada num espaço modular m (o alfabeto), tal como o código César
• Logo, temos a fórmula para obter o resultado: y = (ax + b) mod m
• x é o código da letra a cifrar
• y é código da letra cifrada
• Note-se que a chave passa a ser composta por duas variáveis (a e b)
• Restrição: a tem de ser coprimo de m (e pertencer ao espaço modular)
• Dois números são coprimos se o único (máx.) divisor comum é o 1 (exemplos??)
• e.g. 20 e 21
JORGE LEIRIA PIRES 2
K(a,b)
Criptografia – Codificação (Afim - exercícios)
Código Afim (Affine cypher)
• No espaço modular do alfabeto (m=26) quais os valores possíveis de a?
• Resposta: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, e 25
• Utilizando a chave K(a,b) => K(5,8)
• Codifique a palavra: criptografia
1. Obtenha o código de cada letra (linear e simples: ‘a’=0, ‘b’=1… ‘z’=25)
2. Calcule (ax + b)
3. Calcule (ax + b) mod m
4. Obtenha o novo conjunto de letras (texto cifrado)
JORGE LEIRIA PIRES 3
Criptografia – Descodificação (Afim)
Descodificação de Código Afim (Affine decypher)
• Calculemos a função inversa, para decifrar
• Tem em linha de conta a função x = a-1(y - b) mod m
• y é o código da letra encriptada
• x é o código da letra desencriptada
•a-1 é o inverso multiplicativo modular do a, da equação de encriptação
• b é o mesmo valor da equação de encriptação
• m é o espaço modular
• Note-se que a chave de desencriptação é a mesma da encriptação
• K(a,b)
• mas precisamos de calcular a-1
JORGE LEIRIA PIRES 4
Criptografia – Álgebra modular (inverso multiplicativo)
• Um espaço modular é um conjunto de valores finito
• Num espaço modular podemos fazer operações aritméticas
• Num espaço modular m, só existem m valores (números compreendidos 
entre zero e m-1)
• e.g. se m=15, só existem números entre 0 e 14
• Na álgebra tradicional, inverso multiplicativo de a é um número que, 
multiplicado por a, dá como resultado 1
• Exemplo: se a=4, o seu inverso multiplicativo será 
𝟏
𝟒
, porque 4 x
1
4
= 1
• O oposto é verdadeiro: o inverso multiplicativo de 
𝟏
𝟒
, é 4
JORGE LEIRIA PIRES 5
Criptografia – Álgebra modular (inverso multiplicativo – cont.)
• O conceito num sistema modular é idêntico, mas o que nos interessa é o 
resto da divisão inteira já que o conjunto de valores possíveis é finito 
(espaço modular)
• Desta forma, para determinar a resposta é sempre necessário saber qual 
o espaço modular (quantos elementos tem)
• Pode-se fazer uma tabela multiplicativa modular
JORGE LEIRIA PIRES 6
 Exemplo para o espaço modular 5
 O conteúdo da tabela são os restos da divisão por 5
 As situações assinaladas ( 1 ) permitem determinar 
que números têm inverso multiplicativo em 
módulo 5
5 0 1 2 3 4
0 0 0 0 0 0
1 0 1 2 3 4
2 0 2 4 1 3
3 0 3 1 4 2
4 0 4 3 2 1
Criptografia – Álgebra modular (inverso multiplicativo – cont.)
• Consideremos o espaço modular m = 7
1. Faça a tabela multiplicativa modular (manualmente, sem usar o Excel)
2. Determine que valores têm inverso multiplicativo (e quais os inversos)
JORGE LEIRIA PIRES 7
7 0 1 2 3 4 5 6
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1
 Neste caso, todos os valores têm inverso multiplicativo 
 O zero é um caso à parte
 O 1 e o último número têm sempre!
 O 2 tem o 4 (e vice-versa)
 O 3 tem o 5 (e vice-versa)
 Curioso… 1, 2, 3, 4, 5 e 6 são coprimos de 7 
Criptografia – Álgebra modular (inverso multiplicativo – cont.)
• Consideremos o espaço modular m = 26 (o alfabeto)
1. No Excel, faça a tabela multiplicativa modular
2. Determine que valores têm inverso multiplicativo (e quais os inversos)
• Lembra-se dos valores possíveis para a na cifra Afim?
• Tinham de ser coprimos de m
• Compare com os resultados obtidos
• O Inverso Multiplicativo Modular é um conceito fundamental em criptografia
• Sem ele não conseguimos calcular a chave para desencriptar
JORGE LEIRIA PIRES 8
Criptografia – Descodificação (Afim - exercícios)
Descodificação de Código Afim (Affine decypher)
• Usando a mesma chave K(5,8) no espaço m=26
• Descodifique a palavra: filijpi uepfpcui
1. Obtenha o código de cada letra (linear e simples: ‘a’=0, ‘b’=1… ‘z’=25)
2. Calcule a-1
3. Calcule a-1(y - b)
4. Calcule [a-1(y - b)] mod m
5. Obtenha o novo conjunto de letras (texto decifrado)
JORGE LEIRIA PIRES 9
Criptografia – Descodificação (Afim - exercícios)
• Faça uma folha de Excel que cifre e decifre (sabendo a, b, m e a-1)
JORGE LEIRIA PIRES 10
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
5
Criptografia – Introdução
• Objetivo
• Tornar as comunicações seguras
• Garantir 3 coisas
• Privacidade
• Integridade
• Autenticidade
• Baseia-se na utilização de
• Chaves secretas
• Mecanismos de encriptação
• Existem dois métodos
• Chaves simétricas
• Chaves assimétricas
JORGE LEIRIA PIRES 2
Encriptar
Transmitir
Desencriptar
Emissor
Recetor
M
SG
Criptografia – Introdução
• A autenticidade é importante porque
• Permite que o emissor saiba para quem está a enviar a mensagem
• Garante ao receptor quem foi o emissor
• Assegura o não-repúdio por parte do emissor (não pode negar que enviou)
• Atenção que a garantia de autenticidade não é obrigatória
JORGE LEIRIA PIRES 3
Criptografia – Chaves simétricas
• Só existe uma chave
• É conhecida por ambas as partes
• Existe um algoritmo de encriptação (DES, 3DES, AES, RC4, …)
• Pode ser implementado em hardware
• O Emissor encripta a mensagem com a chave
• O Receptor desencripta a mensagem com a mesma chave
JORGE LEIRIA PIRES 4
Criptografia – Chaves simétricas
JORGE LEIRIA PIRES 5
texto texto
• Qual será uma fragilidade do sistema?
• A própria chave tem de ser transmitida (ou enviada…)
http://pplware.sapo.pt/wp-content/uploads/2010/12/crypto_022.jpg
http://pplware.sapo.pt/wp-content/uploads/2010/12/crypto_022.jpg
Criptografia – Tratamento da mensagem
• A mensagem é partida em blocos (como no TCP…)
• Os blocos são combinados e encriptados
• Existem vários modos para fazer estas 3 ações
• ECB – Electronic Code Book
• CBC – Cipher Block Chaining
• CFB – Cipher Feedback
• OFB – Output Feedback
• CTR – Counter
• Só depois a mensagem é enviada
JORGE LEIRIA PIRES 6
• Não é recomendado para textos 
longos (ou imagens)
Criptografia – ECB – Electronic Code Book
• Cada bloco é codificado 
independentemente
• Blocos de texto iguais têm 
encriptações iguais
• Não há encadeamento logo, não há 
propagação de erro
• Não é imune a ataques de reenvio
• Uma cópia da mensagem pode 
ser enviada inúmeras vezes
• e se interceptássemos uma ordem 
de transferência do banco?
JORGE LEIRIA PIRES 7
Criptografia – CBC – Cipher Block Chaining
• Precisa de um vector de iniciação
• O vector deve ser gerado aleatoriamente para cada mensagem
• Cada bloco é codificado tendo em conta o resultado do anterior
• Blocos de texto iguais têm encriptações diferentes
• Para o 1º bloco ser diferente, muda-se o vetor de iniciação (IV)
• Como há encadeamento, há propagação de erro
• O vector de iniciação não precisa de ser secreto, mas tem de se garantir a 
sua integridade
JORGE LEIRIA PIRES 8
Criptografia – CBC – Cipher Block Chaining
JORGE LEIRIA PIRES 9
XOR
Criptografia – ECB vs CBC
JORGE LEIRIA PIRES 10
Original ECB CBC
Criptografia – CFB – Cipher Feedback
• Precisa de um vector de iniciação
• O vector deve ser gerado aleatoriamente para cada mensagem
• Cada bloco é codificado tendo em conta o resultado do anterior
• Blocos de texto iguais têm encriptações diferentes
• Para o 1º bloco ser diferente, muda-se o vector de iniciação (IV)
• Como há encadeamento, há propagação de erro
• O vector de iniciação não precisa de ser secreto, mas tem de se garantir a 
sua integridade
JORGE LEIRIA PIRES 11
Criptografia – CFB – Cipher Feedback
JORGE LEIRIA PIRES 12
Criptografia – OFB – Output Feedback
• Precisa de um vector de iniciação
• O vector deve ser gerado aleatoriamente para cada mensagem
• Não há codificação em cadeia
• Blocos de texto iguais têm encriptações diferentes
• Para o 1º bloco ser diferente, muda-se o vector de iniciação (IV)
• Como não há encadeamento, não há propagação de erro
• O vector de iniciação não precisa de ser secreto, mas tem de se garantir a 
sua integridade
JORGE LEIRIA PIRES 13
Criptografia – OFB – Output Feedback
JORGE LEIRIA PIRES 14
Criptografia – CTR – Counter
• Precisa de um número aleatório para iniciar o contador
• O número deve ser gerado novamente ao usar a mesma chave
• Não há codificação em cadeia
• Blocos de texto iguais têm encriptações diferentes
• Para o 1º bloco ser diferente, muda-se o número inicial
• “Nonce” é a abreviatura de “number once”, ou seja, um número aleatório 
que só se usa uma vez; para garantir isso, normalmente o número é gerado 
tendo em conta a data/hora atual do sistema
JORGE LEIRIA PIRES 15
Criptografia – CTR – Counter
JORGE LEIRIA PIRES 16
Criptografia – Quantos bits usar
• A chave pode ser descoberta
• Quantas mais existirem, mais difícil é descobrir
JORGE LEIRIA PIRES 17
Criptografia – Quantos bits usar
Para chaves simétricas
• 64 bits – consideradainsegura
• Horas ou poucos dias para descobrir
• 112 a 128 bits – segura por algumas décadas
• Será insegura caso apareçam os computadores quantum
• 256 bits – segura por muitas décadas
• Possivelmente segura, mesmo com os computadores quantum 
JORGE LEIRIA PIRES 18
Criptografia – Chaves assimétricas
• Existem duas chaves: pública e privada
• A chaves estão relacionadas por um algoritmo matemático
• Existe um algoritmo de encriptação (RSA, DSA, …)
• Quando se quer enviar um documento encriptado
• O receptor conhece ambas as chaves
• O receptor distribui a chave pública livremente
JORGE LEIRIA PIRES 19
Criptografia – Chaves assimétricas (exemplo)
• O emissor encripta a mensagem com a chave pública do receptor
• O receptor desencripta a mensagem com a chave privada
JORGE LEIRIA PIRES 20
texto texto
http://pplware.sapo.pt/wp-content/uploads/2010/12/crypto_03.jpg
http://pplware.sapo.pt/wp-content/uploads/2010/12/crypto_03.jpg
Criptografia – Quantos bits usar
Comparando chaves simétricas e chaves assimétricas
Embora a ideia generalizada seja “quanto mais bits, melhor”,
Note-se que uma
chave simétrica de 80 bits
é tão segura como uma
chave assimétrica de 1024 bits
JORGE LEIRIA PIRES 21
Criptografia – Que chave usar
• Privacidade – Encriptar com chave pública (do outro)
• Identidade – Encriptar com chave privada
• Integridade – Par de chaves Pública/Privada 
• Método a ser revisto mais à frente com a utilização do hash
JORGE LEIRIA PIRES 22
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
6
Criptografia – Troca de chaves (Key Exchange)
• Como passar a chave de um lado para o outro?
• Existem vários métodos
• Vamos começar com o
Diffie-Hellman (DH)
JORGE LEIRIA PIRES 2
Criptografia – Diffie-Hellman
Ambos os lados acordam 2 valores G e n (n tem de ser primo)
• Gera um número aleatório (x) – secreto!
• Calcula A de acordo com a expressão
A = Gx mod n
• Envia A para o receptor
• Calcula a chave K1
K1 = Bx mod n
• Gera um número aleatório (y) – secreto!
• Calcula B de acordo com a expressão
B = Gy mod n
• Envia B para o emissor
• Calcula a chave K2
K2 = Ay mod n
JORGE LEIRIA PIRES 3
Emissor Receptor
Criptografia – Diffie-Hellman (exercício prático)
• Juntem-se aos pares para fazer 2 ou 3 testes
• Lembrem-se que
• Precisam de combinar inicialmente 2 números (um é primo!!)
• Os aleatórios são… quaisquer
• Só passam ao colega o resultado do primeiro cálculo
• Cada um faz as suas contas
• No final, comparem os resultados K1 e K2
JORGE LEIRIA PIRES 4
Criptografia – Diffie-Hellman (exercícios)
Ambos os lados acordam 2 valores 5 e 7 (n tem de ser primo)
• Gera um número aleatório (foi 3)
• Calcula A e K1
A = 53 mod 7 = 6
K1 = 23 mod 7 = 1
Surpresa!!!
• Gera um número aleatório (foi 4)
• Calcula B e K2
B = 54 mod 7 = 2
K2 = 64 mod 7 = 1
As chaves são iguais!!!!!!
JORGE LEIRIA PIRES 5
Emissor Receptor
Criptografia – Diffie-Hellman (fragilidades)
• E se alguém se interpuser entre as duas partes durante a negociação?
• Vai “fingir” que é a outra parte
• Para o emissor, finge de receptor
• Para o receptor, finge de emissor
• Na realidade, negoceia uma chave com cada um deles
• Nenhum dos dois percebe que não está a falar com o outro!
• A este ataque chama-se “Man-in-the-Middle Attack”
JORGE LEIRIA PIRES 6
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
7
Criptografia – Chaves assimétricas
• Existem duas chaves: pública e privada
• A chaves estão relacionadas por um algoritmo matemático
• Existe um algoritmo de encriptação (RSA, DSA, …)
• Quando se quer enviar um documento encriptado
• O receptor conhece ambas as chaves
• O receptor distribui a chave pública livremente
JORGE LEIRIA PIRES 2
Criptografia – Chaves assimétricas (exemplo)
• O emissor encripta a mensagem com a chave pública do receptor
• O receptor desencripta a mensagem com a chave privada
JORGE LEIRIA PIRES 3
texto texto
http://pplware.sapo.pt/wp-content/uploads/2010/12/crypto_03.jpg
http://pplware.sapo.pt/wp-content/uploads/2010/12/crypto_03.jpg
Criptografia – Quantos bits usar
Comparando chaves simétricas e chaves assimétricas
Embora a ideia generalizada seja “quanto mais bits, melhor”,
Note-se que uma
chave simétrica de 80 bits
é tão segura como uma
chave assimétrica de 1024 bits
JORGE LEIRIA PIRES 4
Criptografia – Que chave usar
• Privacidade – Encriptar com chave pública (do outro)
• Identidade – Encriptar com chave privada
• Integridade – Par de chaves Pública/Privada 
• Método a ser revisto mais à frente com a utilização do hash
JORGE LEIRIA PIRES 5
Criptografia – Usando uma chave pública
• Resolve o problema do Man-in-the-Middle Attack
• É feito com base numa função de “sentido único”
• O primeiro método foi descoberto em 1977 por um grupo de 3 pessoas
• Ron Rivest
• Adi Shamir
• Leonard Aldemon
JORGE LEIRIA PIRES 6
Algoritmo 
RSA
Da esquerda para a direita:
Shamir, Rivest, Aldemon
Criptografia – Algoritmo RSA (gerar a chave)
1. Escolhem-se 2 números primos (p e q)
• Teoricamente, para uma chave de 2048 bits, cada número teria 617 dígitos
• Isto permitir-nos-ia ter uma chave segura até 2030 
2. Calcula-se n = p x q, que indica o espaço modular
3. Calcula-se (Fi) 𝝋(𝒏) = (p-1)x(q-1)
• Função totiente de Euler que indica a quantidade de co-primos de n
menores que o próprio n
4. Calcula-se o expoente público e
• tem de ser co-primo de 𝝋 e pertencer ao intervalo ]1 , 𝝋-1]
• 2 números são co-primos quando o MDC entre eles é 1
• Isto pode ser feito por tentativas, mas e nunca será um divisor de 𝝋
5. A chave pública é dada por Kpu = (n, e)
JORGE LEIRIA PIRES 7
Só porque eles são primos
Criptografia – Algoritmo RSA (gerar a chave)
1. Para a chave privada, calcula-se d de tal forma que ele é o inverso 
multiplicativo de e em mod 𝝋(𝒏)
d = e(-1) mod [(p-1)x(q-1)]
2. A chave privada é dada por Kpr = (n, d)
• Estes cálculos implicam o conhecimento de conceitos matemáticos de
• Aritmética modular
• Algoritmo de Euclides estendido
JORGE LEIRIA PIRES 8
Criptografia – RSA (cifrar e decifrar)
Para cada letra da frase a encriptar faz-se o seguinte
• Obtém-se o código numérico da letra (chamemos-lhe m)
• Aplica-se a fórmula me mod n
• O conjunto dos números obtidos é a frase cifrada
Para cada letra da frase a desencriptar faz-se o seguinte
• Parte-se do número cifrado (chamemos-lhe c)
• Aplica-se a fórmula cd mod n
• O valor obtido é o código numérico da letra
JORGE LEIRIA PIRES 9
Kpu = (n,e)
Kpr = (n,d)
Criptografia – RSA (cifrar e decifrar mensagens)
Para cada mensagem a encriptar faz-se o seguinte
• Obtém-se o código numérico de cada letra (com o mesmo número de dígitos)
• Juntam-se os códigos em blocos (m), de forma a que cada bloco tem de ser inferior a n
• A cada bloco aplica-se a fórmula me mod n
• O conjunto dos números obtidos é o texto cifrado
Para desencriptar a mensagem faz-se o seguinte
• Parte-se de cada número cifrado (chamemos-lhe c)
• Aplica-se a fórmula cd mod n
• Separam-se em blocos (processo inverso ao da encriptação)
• Para cada código numérico obtém-se a respectiva letra
JORGE LEIRIA PIRES 10
Kpu = (n,e)
Kpr = (n,d)
Criptografia – RSA (conclusões)
O algoritmo RSA
• É um sistema de chave pública e chave privada (assimétricas)
• A chave pública (e) pode ser um número relativamente pequeno (e.g. 3) o que 
permite uma grande velocidade na encriptação
• A chave privada (d) deve ser um número com uma dimensão similar ao módulo 
(n) o que torna a desencriptação lenta (mais difícil de atacar por tentativas –
brute force)
• Actualmente uma chave de 1024 bits não consegue ser descoberta em tempo 
útil, mas prevê-se que a sua duração seja de apenas 10 a 15 anos
• Deve usar-se uma chave de 2048 ou 4096 bits
• É um sistema lento, quando comparado com a encriptação simétrica, pelo que 
se usa tipicamentepara encriptar poucos dados (chaves e assinaturas digitais)
JORGE LEIRIA PIRES 11
Criptografia – RSA (exercícios)
Encriptar a frase (letra a letra)
Bom dia
• Usar código ASCII para as letras (Google it!)
• Sabe-se que
• Kpu = (697, 13)
• Escrever o conjunto de números resultante
JORGE LEIRIA PIRES 12
Nota: para os curiosos
Kpr= (697, 197)
291 110 465 155 461 318 252
https://www.cs.drexel.edu/~introcs/Fa11/notes/10.1_Cryptography/RSA_Express_EncryptDecrypt.html
https://www.cs.drexel.edu/~introcs/Fa11/notes/10.1_Cryptography/RSAWorksheetv4d.html
http://nmichaels.org/rsa.py
Criptografia – RSA (exercícios)
Desencriptar o texto
015 692 391 501 421 176
• Sabe-se que
• Kpr = (697, 197)
• Usou-se código simples (a=1, b=2, …) para as letras
• Não tem k, w nem y
• Escrever o texto resultante
JORGE LEIRIA PIRES 13
Nota: para os curiosos
Kpu= (697,13)
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
8
Criptografia – Codificação Base64
• Sistema usado para transmissão de dados binários em formato de texto
• Base64 significa que o sistema numérico tem 64 símbolos diferentes
• Valores entre ZERO e 63
• Visto em binário, cada símbolo são 6 bits 
• Usam-se os símbolos [A..Z], [a..z], [0..9], ‘+’ e ‘/’, por esta ordem
JORGE LEIRIA PIRES 2
32 16 8 4 2 1
Criptografia – Codificação Base64 (continuação)
• Para codificar uma palavra ASCII
• Obtemos o código de cada letra (tabela ASCII)
• Passamos esses valores para binário, usando sempre 8 bits para cada um
• Escrevemos o resultado em sequência, com se fosse apenas um número
• Dividimos em grupos de 6, a partir da esquerda
• Para cada novo grupo obtemos o símbolo na base64 -> [A..Z][a..z][0..9][+/]
• Codifique “Criptografia” em Base64
JORGE LEIRIA PIRES 3
Q3JpcHRvZ3JhZmlh
Criptografia – Codificação Base64 (continuação)
• No exemplo anterior, os grupos de 6 bits coincidiram com o total de bits 
da palavra a codificar
• E se pretendêssemos codificar apenas “Criptog”?
• Iriam “faltar” bits para o último grupo de 6 bits
• Note que 3 é o menor número de caracteres ASCII (8 bits cada) cujo total 
é um múltiplo de 6 (nº de bits de um caracter Base64)
JORGE LEIRIA PIRES 4
Criptografia – Codificação Base64 (continuação)
• Se pretendermos codificar 2 caracteres ASCII vai faltar 1 caracter para 
perfazer os 3
• Nesta situação, preenchemos os restantes bits com ZERO
• Como falta 1 caracter no original, acrescentamos 1 vez o símbolo “=“ no texto 
codificado
JORGE LEIRIA PIRES 5
Criptografia – Codificação Base64 (continuação)
• Se pretendermos codificar apenas 1 caracter ASCII vão faltar 2 caracteres 
para perfazer os 3
• Nesta situação, preenchemos os restantes bits com ZERO
• Como faltam 2 caracteres no original, acrescentamos 2 vezes o símbolo “=“ no 
texto codificado
JORGE LEIRIA PIRES 6
Criptografia – Codificação Base64 (continuação)
• Para descodificar uma palavra apresentada em Base64
• Obtemos o código de cada letra (tabela Base64), ignorando o(s) “=“
• Passamos esses valores para binário, usando sempre 6 bits para cada um
• Escrevemos o resultado em sequência, como se fosse apenas um número
• Por cada “=”, apagamos 2 zeros da direita
• Dividimos em grupos de 8
• Convertemos cada grupo para um valor
• Cada valor origina um símbolo ASCII
• Descodifique “VmlzdGE=” para ASCII
JORGE LEIRIA PIRES 7
Vista
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
8
Criptografia – Codificação Base64
• Sistema usado para transmissão de dados binários em formato de texto
• Base64 significa que o sistema numérico tem 64 símbolos diferentes
• Valores entre ZERO e 63
• Visto em binário, cada símbolo são 6 bits 
• Usam-se os símbolos [A..Z], [a..z], [0..9], ‘+’ e ‘/’, por esta ordem
JORGE LEIRIA PIRES 2
32 16 8 4 2 1
Criptografia – Codificação Base64 (continuação)
• Para codificar uma palavra ASCII
• Obtemos o código de cada letra (tabela ASCII)
• Passamos esses valores para binário, usando sempre 8 bits para cada um
• Escrevemos o resultado em sequência, com se fosse apenas um número
• Dividimos em grupos de 6, a partir da esquerda
• Para cada novo grupo obtemos o símbolo na base64 -> [A..Z][a..z][0..9][+/]
• Codifique “Criptografia” em Base64
JORGE LEIRIA PIRES 3
Q3JpcHRvZ3JhZmlh
Criptografia – Codificação Base64 (continuação)
• No exemplo anterior, os grupos de 6 bits coincidiram com o total de bits 
da palavra a codificar
• E se pretendêssemos codificar apenas “Criptog”?
• Iriam “faltar” bits para o último grupo de 6 bits
• Note que 3 é o menor número de caracteres ASCII (8 bits cada) cujo total 
é um múltiplo de 6 (nº de bits de um caracter Base64)
JORGE LEIRIA PIRES 4
Criptografia – Codificação Base64 (continuação)
• Se pretendermos codificar 2 caracteres ASCII vai faltar 1 caracter para 
perfazer os 3
• Nesta situação, preenchemos os restantes bits com ZERO
• Como falta 1 caracter no original, acrescentamos 1 vez o símbolo “=“ no texto 
codificado
JORGE LEIRIA PIRES 5
Criptografia – Codificação Base64 (continuação)
• Se pretendermos codificar apenas 1 caracter ASCII vão faltar 2 caracteres 
para perfazer os 3
• Nesta situação, preenchemos os restantes bits com ZERO
• Como faltam 2 caracteres no original, acrescentamos 2 vezes o símbolo “=“ no 
texto codificado
JORGE LEIRIA PIRES 6
Criptografia – Codificação Base64 (continuação)
• Para descodificar uma palavra apresentada em Base64
• Obtemos o código de cada letra (tabela Base64), ignorando o(s) “=“
• Passamos esses valores para binário, usando sempre 6 bits para cada um
• Escrevemos o resultado em sequência, com se fosse apenas um número
• Por cada “=”, apagamos 2 zeros da direita
• Dividimos em grupos de 8
• Convertemos cada grupo para um valor
• Cada valor origina um símbolo ASCII
• Descodifique “VmlzdGE=” para ASCII
JORGE LEIRIA PIRES 7
Vista
Criptografia – Funções de HASH
• Existem várias funções de Hash
• As mais usadas são: MD5 e SHA (que tem várias versões)
• Uma função de Hash serve para gerar uma assinatura única de um dado texto
• É uma função de “sentido único”, ou seja, a partir do código gerado não é 
possível reconstruir a mensagem original
JORGE LEIRIA PIRES 8
Message Digest 5 Secure Hash Algorithm
Criptografia – Funções de HASH
• Então para que se usa?
• Para guardar passwords numa base de dados (BD)
• Mesmo acedendo à BD, não se consegue saber qual a password
• Para criar uma assinatura digital
• Como se utiliza?
• Quando o utilizador escreve a password, gera-se o Hash correspondente
• Seguidamente compara-se com o que está na BD
Et voilà!
JORGE LEIRIA PIRES 9
Criptografia – Funções de HASH
• Qual será a técnica para descobrir a password?
• Tenta-se uma palavra de cada vez e compara-se o hash resultante 
• E que palavras tentar?
JORGE LEIRIA PIRES 10
Criptografia – Passwords do Windows
Nomes de utilizador e passwords (onde se guardam?)
• Computador inserido num domínio -> AD
• Computador sem pertencer a um domínio -> SAM
JORGE LEIRIA PIRES 11
Criptografia – Passwords do Windows
Nomes de utilizador e passwords (onde se guardam?)
• O ficheiro da SAM está…
• Não se consegue abrir se o 
Windows estiver a correr
• Arranca-se por outro 
sistema (Pen, CD, …) e já se 
pode copiar
JORGE LEIRIA PIRES 12
Criptografia – Identificadores no Windows
Security Identifier - SID
• Cada utilizador tem um identificador único que não muda mesmo que, 
por exemplo, se altere o nome
• É com base neste identificador que se validam os privilégios e acessos
JORGE LEIRIA PIRES 13
Criptografia – Identificadores no Windows
User Security Identifier – User SID
• Para saber os utilizadores e grupos existentes num PC
wmic useraccount get name,sid
JORGE LEIRIA PIRES 14
Nota: WMIC - Windows Management Instrumentation Command-line
Criptografia – Exemplos de utilização do wmic
Obter o modelo do PC (útil para portáteis)wmic csproduct get name
Obter o número de série a partir da BIOS (útil para portáteis)
wmic bios get serialnumber
JORGE LEIRIA PIRES 15
Experimente: wmic -?
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
9
Criptografia – Linha de comando (1)
Nome completo de um ficheiro
<drive>:<caminho>\<nome>.<ext>
. representa a pasta corrente
.. é a referência para a pasta anterior
Quando uma pasta tem espaços no nome, tem de ficar entre aspas “”
Se começar a escrever o nome da pasta e carregar em Tab, o Windows 
completa a informação. Caso existam várias, carregar novamente em Tab para 
apresentar a seguinte.
JORGE LEIRIA PIRES 2
Generalidades
Criptografia – Linha de comando (2)
DIRETORIAS (OU PASTAS)
• DIR – mostra o conteúdo da pasta
• CD xxx – change directory
• Muda dir. corrente para a pasta xxx
• Vazio, mostra a pasta corrente
• MD xxx – make directory
• Cria a pasta xxx
• RD xxx – remove directory
• Apaga a pasta xxx
• CLS – clear screen
• PROMPT – altera o prompt
• prompt $g
• prompt $t$g
• prompt $d$g
• prompt $p$g
• prompt Yes, master…
• SET – ver/definir variáveis
• set
• set x1=Batata (sem espaços)
• set x1= (apaga a variável)
JORGE LEIRIA PIRES 3
Criptografia – Linha de comando (3)
FICHEIROS
• TYPE xxx.yyy – mostra conteúdo
• COPY <origem> <destino> – copia
• DEL x.y – apaga ficheiro
• REN <antigo> <novo> – muda nome
? – substitui 1 caracter
* – substitui zero ou mais caracteres
JORGE LEIRIA PIRES 4
TOKENS
OUTROS…
| – pipe – passa a informação para o próximo…
> – redirecionar saída (cria fich.; se existe, apaga-o)
>> – redirecionar saída (cria ou acrescenta ficheiro)
< – redirecionar como entrada
con – dispositivo de entrada/saída
^z – CTRL+Z – caracter de fim de ficheiro
^c – CTRL+C – abortar comando em execução
MAIS COMANDOS
• ECHO teste – escreve teste no ecrã
• TREE – mostra a árvore de directorias
Criptografia – Linha de comando (exercícios 1)
Todos os exercícios são para fazer sem 
recurso a ambiente gráfico
1. Passe para a pasta “Documentos”
a) Crie uma pasta “Lixo”
b) Passe para dentro dessa pasta
2. Altere o prompt do sistema para
Comando>
3. Crie um ficheiro “Teste.c” com o 
texto “Aula de Cripto” lá dentro
4. Experimente o comando “time”
5. Experimente o comando “date”
6. Mostre o conteúdo da pasta actual
7. Crie a seguinte estrutura (use o 
comando “tree” para ir vendo o 
resultado)
JORGE LEIRIA PIRES 5
Criptografia – Linha de comando (exercícios 2)
Todos os exercícios são para fazer sem 
recurso a ambiente gráfico
8. Copie o ficheiro Teste.c para a 
pasta D21
9. Mostre no ecrã o conteúdo do 
ficheiro Teste.c
10. Passe para a pasta d222
11. Confirme que d222 é a pasta 
corrente
12. Sem sair de d222, use o tree para 
ver a estrutura completa
13. Sem sair de d222, copie para lá 
um dos ficheiros Teste.c
14. Copie para D3 o ficheiro de modo 
a que ele fique com o nome T.c
15. Apague todos os ficheiros e pastas 
criados (CUIDADO)
16. Mude o prompt de forma a 
mostrar a data e hora correntes, 
seguidas do sinal “>”
Parabéns! Está apto para usar o 
openssl na aula seguinte 
JORGE LEIRIA PIRES 6
 
 
 
 
Criptografia – Utilitário Openssl
Exercícios
• Criar uma pasta com o nome testes
• Copiar para lá o HashGenerator.exe
• Criar um ficheiro de texto de nome myfile.t com “Bom dia”
• Abrir uma sessão de MSDOS e passar para dentro da pasta testes
• Gerar vários hash do ficheiro myfile.t usando
1. MD4
2. MD5
3. SHA1
4. SHA256
• Comparar com o que é obtido pelo HashGenerator.exe
• Com o openssl e o echo, gerar um hash MD5 para a palavra “password”
• Comparar com o que é obtido pelo HashGenerator.exe
JORGE LEIRIA PIRES 3
Criptografia – Utilitário Openssl
Fazer tudo sem sair da linha de comando
• Criar um ficheiro de texto (f1.t) com o seu nome dentro
• Criar um hash de f1.t com MD5 e redirecionar para outro ficheiro (f2.t)
• Gerar uma chave privada de 512 bits com RSA, para o ficheiro chpr.k
• Ver o ficheiro chpr.k gerado
• Gerar a correspondente chave pública, para o ficheiro chpu.k
• Ver o ficheiro chpu.k gerado
JORGE LEIRIA PIRES 4
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
10
Criptografia – Linha de comando MSDOS
• Forma mais eficiente de resolver os exercícios do MSDOS
• Help do openssl
• Linha de comandos
• Site
• Editor hexadecimal
JORGE LEIRIA PIRES 2
Criptografia – Utilitário Openssl
Exercícios
• Criar uma pasta com o nome testes
• Copiar para lá o HashGenerator.exe
• Criar um ficheiro de texto de nome myfile.t com “Bom dia”
• Abrir uma sessão de MSDOS e passar para dentro da pasta testes
• Gerar vários hash do ficheiro myfile.t usando
1. MD4
2. MD5
3. SHA1
4. SHA256
• Comparar com o que é obtido pelo HashGenerator.exe
• Com o openssl e o echo, gerar um hash MD5 para a palavra “password”
• Comparar com o que é obtido pelo HashGenerator.exe
JORGE LEIRIA PIRES 3
Criptografia – Utilitário Openssl
Fazer tudo sem sair da linha de comando
• Criar um ficheiro de texto (f1.t) com o seu nome dentro
• Criar um hash de f1.t com MD5 e redirecionar para outro ficheiro (f2.t)
• Gerar uma chave privada de 512 bits com RSA, para o ficheiro chpr.k
• Ver o ficheiro chpr.k gerado
• Gerar a correspondente chave pública, para o ficheiro chpu.k
• Ver o ficheiro chpu.k gerado
JORGE LEIRIA PIRES 4
Criptografia – Utilitário Openssl
Soluções:
1. openssl md4 myfile.t
2. openssl md5 myfile.t
3. openssl sha1 myfile.t
4. openssl sha256 myfile.t
• Comparar com o que é obtido pelo HashGenerator.exe
• Com o openssl e o echo, gerar um hash MD5 para a palavra “password”
echo password| openssl md5
• Porque não fica igual ao hash criado a partir dum ficheiro?
(usar editor hexadecimal para ver as diferenças)
O pipe tem de estar colado ao "d" final de "password".
No HashGenerator, é preciso dar um "Enter" no final da palavra "password“ porque o 
comando "echo" coloca automaticamente o fim de linha (CR e LF)
JORGE LEIRIA PIRES 5
Criptografia – Utilitário Openssl
Soluções:
• Criar um ficheiro… copy con f1.t (e depois) jorge^z
• Criar um hash… openssl md5 f1.t > f2.t
• Gerar uma chave privada de 512 bits com RSA
openssl genrsa -out chpr.k 512
type chpr.k
• Gerar a correspondente chave pública
openssl rsa -in chpr.k -out chpu.k -pubout
type chpu.k
• NOTA: experimente openssl rsa -in chpr.k -text
JORGE LEIRIA PIRES 6
Criptografia – Usando Hash e chaves assimétricas
Como garantir a autenticidade de uma mensagem?
Do lado do emissor
1. Emissor usa hash para gerar uma assinatura digital da MSG
2. Encripta a assinatura com a sua chave privada (serve para se autenticar!)
3. Junta MSG e assinatura encriptada num ficheiro
4. Encripta o ficheiro com a chave pública do receptor
5. Envia o resultado
JORGE LEIRIA PIRES 7
Criptografia – Usando Hash e chaves assimétricas
Como garantir a autenticidade de uma mensagem?
Do lado do receptor
1. Recebe o ficheiro
2. Desencripta com a sua chave privada
3. Separa a mensagem do hash
4. Desencripta o hash com a chave pública do emissor
5. Gera um novo hash (usa a mensagem e o mesmo método de hash do emissor)
6. Compara com o hash recebido
JORGE LEIRIA PIRES 8
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
11
Criptografia – Chaves e hash (quando usar o quê)
JORGE LEIRIA PIRES 2
Utilização de chaves assimétricas
Encriptar
Privada
Pública de outrem
Minha pública
Desencriptar
Criptografia – Chaves e hash (quando usar o quê)
JORGE LEIRIA PIRES 3
Objetivo
Confidencialidade
(da transmissão)
Pública de outrem
Usar
Autenticação
(quem sou)
Integridade
(não modificar)
Privacidade
(dos meus dados)
Método
Chave Privada
Algoritmo de Hash
Minha Pública
Criptografia – Certificados digitais
• São sistemas que necessitam de um 3º interveniente:
• A entidade certificadora• Servem para
• Identificar entidades (pessoas/dispositivos/dados/sistemas)
• Encriptar comunicações
• Distribuir chaves públicas
• Guardar chaves privadas
JORGE LEIRIA PIRES 4
Criptografia – Certificados digitais
Como aceder a um certificado?
• Painel de controlo
• Opções da Internet
JORGE LEIRIA PIRES 5
Criptografia – Certificados digitais
Exemplo de certificado
JORGE LEIRIA PIRES 6
Criptografia – Certificados digitais
Detalhes
• É guardado num formato
P7b (texto), PFX/P12 (binário)
• Algoritmo usado na assinatura
• Assinatura digital do próprio 
certificado
(para verificar que o certificado em si 
não foi alterado)
JORGE LEIRIA PIRES 7
Criptografia – Certificados digitais
Detalhes
• Emissor
• Algoritmo da chave pública
• Chave pública
JORGE LEIRIA PIRES 8
Criptografia – Certificados digitais
Caminho da certificação
JORGE LEIRIA PIRES 9
Criptografia – Certificados digitais
JORGE LEIRIA PIRES 11
Podem ser de vários tipos
• Email
• Autenticação de servidor
• Assinatura de código (programa)
• Autenticação de driver
• Validação de data/hora
• Autenticação de cliente
• IP Tunnelling
• EFS (Encripted File System)
Criptografia – Certificados digitais
JORGE LEIRIA PIRES 12
Há vários separadores na janela 
dos certificados
• Estes são instalados com o S.O.
• Certificam tudo, ou quase tudo
Criptografia – Certificados digitais
JORGE LEIRIA PIRES 13
Há vários separadores na janela 
dos certificados
• Estes só certificam algumas 
coisas
Criptografia – Certificados digitais
JORGE LEIRIA PIRES 14
Há vários separadores na janela 
dos certificados
• Aqui ficam os nossos
• Tipicamente aqueles que têm 
chave privada!
Criptografia – Certificados digitais
JORGE LEIRIA PIRES 15
Há vários separadores na janela 
dos certificados
• Aqui ficam os públicos que as 
outras pessoas nos enviaram
• Tipicamente aqueles que têm 
chave pública de outrem!
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
11
A
Criptografia – Certificados digitais (exercício)
JORGE LEIRIA PIRES 2
Objectivo: Criar um certificado auto-assinado para um servidor
1. Criar um certificado para simular a entidade certificadora
• Gerar uma chave privada RSA (a ser usada para o certificado de raiz) 
• Gerar o certificado de raiz com essa a chave 
2. Criar um pedido (requisição) de certificado
• Gerar uma chave privada RSA (a ser incluída no certificado final do servidor) 
• Gerar a requisição de certificado para o servidor (que seria enviada à entidade) 
3. Assinar a requisição do certificado do servidor com o certificado de raiz e gerar o 
certificado de servidor 
• Este passo seria efectuado pela entidade
NOTA: O exercício resolve-se com um total de 5 comandos ( a )
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
11
A
Criptografia – Certificados digitais (exercício)
JORGE LEIRIA PIRES 2
Objectivo: Criar um certificado auto-assinado para um servidor
1. Criar um certificado para simular a entidade certificadora
• Gerar uma chave privada RSA (a ser usada para o certificado de raiz) 
• Gerar o certificado de raiz (válido por 10 anos) com essa a chave 
2. Criar um pedido (requisição) de certificado
• Gerar uma chave privada RSA (a ser incluída no certificado final do servidor) 
• Gerar a requisição de certificado para o servidor (que seria enviada à entidade) 
3. Assinar a requisição do certificado do servidor com o certificado de raiz e gerar o 
certificado (válido por 1 ano, com número de série) de servidor 
• Este passo seria efectuado pela entidade
NOTA: O exercício resolve-se com um total de 5 comandos ( a )
Criptografia – Certificados digitais (solução)
JORGE LEIRIA PIRES 3
Objectivo: Criar um certificado auto-assinado para um servidor
1. openssl genrsa -des3 -out ca.key 4096
2. openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
3. openssl genrsa -des3 -out server.key 4096
4. openssl req -new -key server.key -out server.csr
5. openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial
05062016 -out server.crt
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
12
Criptografia – Chaves simétricas (DES e AES)
• A encriptação baseia-se em duas primitivas
• Confusão (confusion)
• A relação entre o texto e o texto cifrado não é clara (é confusa )
• Pode-se obter por mera substituição de símbolos
• Difusão (difusion)
• O mesmo símbolo não encriptado dá origem a vários símbolos encriptados
• Isto impede a análise da frequência de ocorrência dos símbolos
• Um sistema que só utilize um dos métodos não é seguro
• Para encriptar, encadeiam-se operações de confusão e difusão
JORGE LEIRIA PIRES 2
confusão difusão confusão difusãotexto texto encriptado
Criptografia – Chaves simétricas (DES e AES)
• A encriptação simétrica
pode-se fazer usando
• Stream ciphers encriptam 1 bit do texto de cada vez, juntando-o com 1 bit 
da chave a utilizar
• Síncronos quando o stream só depende da chave
• Assíncronos quando o stream depende da chave e do texto cifrado anteriormente
• Block ciphers encriptam um conjunto de bits de cada vez
• Exemplos de block ciphers são o DES (8 bytes) e o AES (16 bytes)
JORGE LEIRIA PIRES 3
Block
ciphers
Stream
ciphers
assíncronos
síncronos
Criptografia – Data Encryption Standard (DES)
•Data Encryption Standard
• Especificações publicadas em 1977
• Feita para durar 10 anos
• Como não se descobriram falhas graves, foi utilizada até 1999, altura em que 
foi substituída pela Advanced Encryption Standard
• Encripta blocos de 8 bytes (64 bits)
• Usa uma chave de 7 bytes (56 bits)
• Actualmente é considerado pouco seguro porque
o nº de chaves (256) é pequeno (nota: 3DES já é seguro!)
• Usa uma chave simétrica
• São feitas 16 cadeias de confusão + difusão
JORGE LEIRIA PIRES 4
Criptografia – Data Encryption Standard
 X -> bloco a encriptar (8 bytes)
 Y -> bloco encriptado (8 bytes)
 K -> chave de encriptação (7 bytes)
• São feitos 3 passos principais
• Permutação inicial
• Encriptação (16 vezes)
• Permutação final
NOTA: em cada encriptação é usada
uma chave parcial criada a
partir da chave principal
JORGE LEIRIA PIRES 5
Criptografia – Data Encryption Standard
Permutação inicial (ao nível do bit)
JORGE LEIRIA PIRES 6
Criptografia – Data Encryption Standard
Rede de Feistel (para cada uma das 16 encriptações)
JORGE LEIRIA PIRES 7
Chaves parciais
Criptografia – Data Encryption Standard
Criação das chaves parciais de encriptação (16 chaves)
• Divide-se em duas metades
• Cada metade sofre uma rotação
• 1 bit para chaves k1, k2, k9 e k16
• 2 bits para as restantes
• Os 56 bits resultantes são permutados
• e daí resultam apenas 48 para a chave
JORGE LEIRIA PIRES 8
Criptografia – Data Encryption Standard
Rede de Feistel (para cada uma das 16 encriptações)
JORGE LEIRIA PIRES 9
Encriptação
Criptografia – Data Encryption Standard
Função f de encriptação
JORGE LEIRIA PIRES 10
Há 8 funções s diferentes
Criptografia – Data Encryption Standard
Função s de substituição
• Há 8 tabelas diferentes
• Entram 6 bits
• Os bits de entrada servem para 
indexar a tabela
• Saem 4 bits
• A saída é o conteúdo indexado, 
escrito em binário
JORGE LEIRIA PIRES 11
entrada 1 1 0 1 0 0
1 1 0 1 0 0
1 0 é a linha 2
1 1 0 1 0 0
1 0 1 0 é a coluna 10
saída 1 0 0 1 (9)
Criptografia – Data Encryption Standard
Permutação final (ao nível do bit)
JORGE LEIRIA PIRES 12
Criptografia
j o rge.p i res@my. istec .pt
• 6 créditos
• 48 horas Teórico-práticas
• 12 horas Orientação tutorial 
13
Criptografia – Advanced Encryption Standard (AES)
•Advanced Encryption Standard
• Em utilização desde 1999 (especificações finais em 2000)
• O nome do algoritmo é Rijndael
• Foi feito por 2 criptógrafos Belgas: Joan Daemen e Vincent Rijmen
• Estápresente em inúmeras aplicações
• IPsec, TLS, SSH, WiFi (802.11i), Skype
• Encripta blocos de 128 bits
• Usa vários tamanhos de chave
• 128, 192 e 256 bits
• Actualmente é considerado muito seguro porque o nº
de chaves (e.g. 2256) é muito grande (nota: DES era 256)
JORGE LEIRIA PIRES 2
Criptografia – Advanced Encryption Standard (AES)
Ciclos de repetição
• O número de ciclos depende do comprimento da chave
• 128 bits  10 ciclos
• 192 bits  12 ciclos
• 256 bits  14 ciclos
• Cada ciclo contém 3 camadas
• Substituição – usando uma tabela (S-box)
• Difusão (Shift e Mistura)
• Adição (XOR)
• Cada ciclo usa uma subchave obtida a partir da inicial
• Há mais uma subchave (subchave extra) que o nº de ciclos 
JORGE LEIRIA PIRES 3
Criptografia – Advanced Encryption Standard
Esquema de blocos
JORGE LEIRIA PIRES 4
 X -> bloco a encriptar (16 bytes)
 Y -> bloco encriptado (16 bytes)
 K -> chave de encriptação (16/24/32 bytes)
NOTA: na primeira adição é usada
a subchave extra (k0) criada
a partir da chave principal
Chaves parciais
Criptografia – Advanced Encryption Standard
“Transform”
Geração das subchaves – 128 bits
• A chave key0 é igual à chave inicial
• A key1 depende da key0 e da função g
• O mesmo acontece com as chaves
restantes: cada uma delas depende
da anterior e da função g
JORGE LEIRIA PIRES 5
Criptografia – Advanced Encryption Standard
Geração das subchaves – 128 bits (função g)
• Faz-se uma rotação inicial
• Cada grupo de 8 bits sofre uma permutação
• Aos 8 bits da esquerda soma-se (XOR)
um coeficiente RC que é diferente para
cada um dos 10 ciclos
JORGE LEIRIA PIRES 6
NOTA: os algoritmos para as chaves
de 192 e 256 bits são ligeiramente 
diferentes deste, de 128 bits
Criptografia – Advanced Encryption Standard
Esquema de blocos
JORGE LEIRIA PIRES 7
 X -> bloco a encriptar (16 bytes)
 Y -> bloco encriptado (16 bytes)
 K -> chave de encriptação (16/24/32 bytes)
Ciclos
Criptografia – Advanced Encryption Standard
Ciclos
JORGE LEIRIA PIRES 8
Substituição
Shift
Mistura
Adição
Difusão
Criptografia – Advanced Encryption Standard
Camada de Substituição
• 1 byte de entrada (xy)
índice
• 1 byte de saída
conteúdo da tabela
JORGE LEIRIA PIRES 9


entra (11010010)
sai (10110101)
Criptografia – Advanced Encryption Standard
Camada de Difusão
• Subcamada de Shift
• Faz uma rotação a cada uma das linhas
• Não modifica a primeira linha
• Shift da 2ª linha 3 bytes para a direita
• Shift da 3ª linha 2 bytes para a direita
• Shift da 4ª linha 1 byte para a direita
• Subcamada de Mistura
• “Baralha” as colunas
JORGE LEIRIA PIRES 10
Tabela inicial
Após o shift
Criptografia – Advanced Encryption Standard
Camada de Adição
• Faz um XOR com a chave
JORGE LEIRIA PIRES 11

Outros materiais