Criptografia Aplicada

Informação

Corpo docente: André Zúquete, Tomás Oliveira e Silva

Duração: Semestral

Horas de trabalho: 162

Horas de contacto: 45

ECTS: 6

Área científica: Informática

Objetivos

  • Conhecer os sistemas criptográficos mais relevantes (cifras contínuas, por blocos, simétricas e assimétricas), e funções de dispersão.
  • Conhecer os blocos elementares de cifras simétricas e assimétricas.
  • Conhecer os blocos elementares de funções de dispersão.
  • Conhecer métodos anonimato com cifras
  • Conhecer e identificar as limitações dos mecanismos criptográficos
  • Conhecer mecanismos fundamentais das cifras quânticas.
  • Conhecer os métodos e processos para distribuição de chaves segura.
  • Conhecer mecanismos e protocolos para chave pública
  • Conhecer meios para certificação de chaves.
  • Aplicar blocos elementares e cifras para o desenvolvimento de sistemas seguros.
  • Aplicar mecanismos de determinação de identidade e certificação de chaves.
  • Aplicar mecanismos para controlo de integridade
  • Integrar mecanismos criptográficos no desenvolvimento de software.

Programa

  • Sistemas criptográficos de chave secreta.
  • Formas de ataque: dividir para conquistar e correlação rápida.
  • Blocos elementares de construção de cifras (Feistel, sbox, pbox, …)
  • Funções de dispersão.

  • Cifras contínuas ou de fluxo.

  • Cifras por blocos.
  • Segurança perfeita e computacional.

  • Sistemas criptográficos de chave pública.

  • Sistema RSA.
  • Assinaturas às cegas.

  • Algoritmos de fatorização e primalidade.

  • Coordenadas projetivas.
  • Curvas elípticas.
  • Inteiros de Gauss.
  • Algoritmo de Euclides para polinómios.
  • Bases de Gröner.
  • Sistemas criptográficos elípticos e hiperelípticos.

  • Esquema de assinatura ElGamal e DSS.

  • Algoritmos de assinatura digital baseados em curvas elípticas.

  • Esquemas de distribuição de chaves de Diffie-Hellman.

  • Esquema de partilha de segredos de Shamir.
  • Sistemas de prova com conhecimento nulo.
  • Esquemas de Schnorr e Fiat-Shamir.

  • Infraestrutura de Chaves Públicas

  • Cadeias de Certificação

  • Criptanálise quântica.

  • Criptografia pós-quântica.

Metodologia de ensino

A disciplina considera aulas teórico práticas, que irão ter partes ajustadas de acordo com o objetivo de cada tópico.

As partes teóricas são dedicadas à apresentação e discussão dos conteúdos programáticos, favorecendo-se o diálogo com os alunos para a discussão de casos de uso.

As partes práticas serão dedicadas à exploração de exemplos e casos de uso, aplicação de técnicas e realização de análises.

Ortogonal a estas aulas, existirão trabalhos e projetos, realizados em grupo e com uma maior dimensão, que permita a aplicação dos conteúdos em situações de maior complexidade. Será favorecida a utilização de cenários próximos da realidade e de ferramentas e problemas no estado da arte.

A avaliação teórica, com peso de 50%, irá focar-se no conhecimento dos conceitos teóricos, realizada através de testes. A avaliação prática, com peso de 50%, irá comprovar a capacidade de aplicação dos conceitos, tecnologias e ferramentas, sendo realizada através de trabalhos práticos e projetos práticos.

Bibliografia

  • Bruce Schneier, Applied Cryptography: Protocols, Algorithms and Source Code in C, Wiley; ISBN: 978-1119096726, 20th Anniversary edition, 2015.

  • Niels Ferguson, Cryptography Engineering: Design Principles and Practical Applications 1st Edition, Wiley; 1 edition, ISBN: 978-0470474242, 2010.

  • Jean-Philippe Aumasson, Serious Cryptography: A Practical Introduction to Modern Encryption, No Starch Press, ISBN: 978-1593278267, 2017