curso-seguranca-informacao

Módulo: Fundamentos e Criptografia Simétrica


Pré-Requisitos

São requisitos para essa aula o conhecimento de:


Tópicos

Fundamentos de Criptografia


AGENDA


Breve história

Confidencialidade com Criptografia Simétrica

Criptografia Simétrica

Texto Simples ou Texto às claras

É a mensagem ou dados originais alimentados ao algoritmo como entrada.

Algoritmo de cifração

O algoritmo de cifração executa várias substituições e transformações no texto às claras.


Criptografia Simétrica: Componentes

Chave secreta

A chave secreta é também fornecida como entrada para o algoritmo de cifração. As substituições e transformações exatas realizadas pelo algoritmo dependem da chave.

Texto cifrado

É a mensagem embaralhada produzida como saída. Ele depende do texto às claras e da chave secreta. Para dada mensagem, duas chaves diferentes produzirão dois textos cifrados diferentes.

Algoritmo de decifração

É, essencialmente, o algoritmo de cifração executado ao contrário. Toma o texto cifrado e a chave secreta como entradas e produz o texto às claras original.


Ilustração do Processo de Criptografia Simétrica

Criptografia Simétrica: Retirado do livro-texto


Classificações/Dimensões

Tipo de operações usadas para transformar texto às claras em texto cifrado

Dois princípios gerais: substituição, na qual cada elemento no texto às claras (bit, letra, grupo de bits ou letras) é mapeado para um outro elemento, e transposição, na qual elementos no texto às claras são rearranjados. O requisito fundamental é que nenhuma informação seja perdida (operações reversíveis). Tipicamente, múltiplos estágios.

Número de chaves

Remetente e o destinatário com mesma chave: simétrico, de chave única, de chave secreta ou de cifração convencional. Caso contrário: assimétrico, de duas chaves ou cifração de chave pública.

Modo como o texto às claras é processado

Uma cifra de bloco processa um único bloco de elementos da entrada por vez, produzindo um bloco de saída para cada bloco de entrada. Uma cifra de fluxo processa elementos de entrada continuamente, produzindo um elemento de saída por vez.


Requisitos da Criptografia Simétrica

Cifração Forte

No mínimo, gostaríamos que o algoritmo fosse tal que um oponente que conheça o algoritmo e tenha acesso a um ou mais textos cifrados não seria capaz de decifrar o texto cifrado ou adivinhar a chave. Esse requisito é usualmente enunciado de uma forma mais forte: o oponente deve ser incapaz de decifrar o texto cifrado ou descobrir a chave mesmo que esteja de posse de vários textos cifrados juntamente com o texto às claras que produziu cada texto cifrado.

Cópias da Chave Secreta

Remetente e destinatário devem obter cópias da chave secreta de maneira segura e mantê-las em segurança. Se alguém conseguir descobrir a chave e conhecer o algoritmo, toda comunicação que usar essa chave pode ser lida.

Métodos de Ataque

Existem dois métodos de ataque: criptoanálise ou força-bruta


Criptoanálise

Ataques Criptoanalíticos (Parte 1/2)

somente texto cifrado

Menos informação, mais difícil de ocorrer.

Conhece Algoritmo de Cifração (assumimos isso em todos os casos) e também conhece o texto cifrado a ser decodificado

texto às claras conhecido

Adiciona alguns pares às claras/cifrados

texto às claras escolhido

O criptoanalista consegue escolher pares às claras/cifrados


Ataques Criptoanalíticos (Parte 2/2)

texto cifrado escolhido

O criptoanalista consegue escolher texto cifrado-alvo.

texto escolhido

Mais informação, mais fácil (embora mais raro de ocorrer).

O criptoanalista consegue escolher todo o esquema, exceto chave privada.


Ataque de Força Bruta

Retirado do livro-texto

ALGORITMOS COMPUTACIONALMENTE SEGUROS

Algoritmos simétricos de cifração de bloco

Retirado do livro-texto

Cifra de Feistel

Ilustração da Cifra de Feistel

Cifra de Feistel - Wikipedia{height=90%}

Parâmetros da Cifra de Feistel (Parte 1/2)

Tamanho do bloco

Blocos de tamanhos maiores significam maior segurança (se todos os outros parâmetros/aspectos forem iguais), mas velocidade de cifração/decifração reduzida. Um tamanho de bloco de 128 bits é um compromisso razoável quase universal em projetos recentes de cifra de bloco.

Tamanho da chave

Chaves de tamanhos maiores significam maior segurança, mas podem reduzir a velocidade de cifração/decifração. O comprimento de chave mais comum em algoritmos modernos é 128 bits.

Número de rodadas

A essência de uma cifra de bloco simétrica é que uma única rodada oferece segurança inadequada, mas várias rodadas oferecem segurança crescente. Um número típico é 16 rodadas.

Parâmetros da Cifra de Feistel (Parte 2/2)

Algoritmo de geração de subchaves

Maior complexidade nesse algoritmo deve resultar em maior dificuldade de criptoanálise.

Função de rodada

Novamente, maior complexidade geralmente significa maior resistência à criptoanálise.

Considerações de Projeto de uma Cifra de Feistel

Software de cifração/decifração rápida

Em muitos casos, mecanismos de cifração são embutidos em aplicações ou funções utilitárias de modo tal que não é possível a implementação em hardware. Dessa maneira, a velocidade de execução do algoritmo torna-se uma preocupação.

Facilidade de análise

Embora queiramos que o nosso algoritmo seja o mais difícil possível de criptoanalisar, há grande benefício se o algoritmo for fácil de analisar. Isto é, se o algoritmo puder ser explicado com concisão e clareza, é mais fácil analisá-lo em relação a vulnerabilidades criptoanalíticas e, por conseguinte, desenvolver um nível mais alto de garantias em relação a sua força. O DES, por exemplo, não tem funcionalidade fácil de analisar.

Data encryption standard (DES) - História

Funcionamento do DES

Ilustração da Estrutura Feistel do DES

Wikipedia{height=90%}

Ilustração da Função F do DES

Wikipedia{height=80%}

Ilustração do Key Schedule do DES

Wikipedia{height=80%}

DES - Preocupações (História)

DES - Estratégias de Ataque e Contra-Ataque

Aumento exponencial do tempo

Retirado do livro-texto

Triplo DES - 3DES

3DES - Vantagens e Desvantagens

Advanced encryption standard (AES) - História

Ideia Geral do AES

Estrutura Geral do AES (não usa Feistel)

Slides Kowada

Estrutura Geral da Rodada do AES

Slides Kowada{height=90%}

Discussão

Breve discussão

Segurança para textos grandes

Como cifrar textos grandes usando criptografia simétrica de poucos bits?

Veja próximo módulo para entender melhor!


Leia mais

Livro:

Veja Capítulo 7, todas seções e finaliza o capítulo 7.

Agradecimentos


Pessoas

Em especial, agradeço aos colegas que elaboraram bons materiais, como o prof. Raphael Machado, Kowada e Viterbo cujos conceitos formam o cerne desses slides.

Estendo os agradecimentos aos demais colegas que colaboraram com a elaboração do material do curso de Pesquisa Operacional, que abriu caminho para verificação prática dessa tecnologia de slides.


Software

Esse material de curso só é possível graças aos inúmeros projetos de código-aberto que são necessários a ele, incluindo:


Empresas

Agradecimento especial a empresas que suportam projetos livres envolvidos nesse curso:


Reprodução do material

Esses slides foram escritos utilizando pandoc, segundo o tutorial ilectures:

Exceto expressamente mencionado (com as devidas ressalvas ao material cedido por colegas), a licença será Creative Commons.

Licença: CC-BY 4.0 2020

Igor Machado Coelho


This Slide Is Intentionally Blank (for goomit-mpx)