MO422-MC938 - Algoritmos Criptográficos

2º Semestre de 2018

Prof. Ricardo Dahab

Instituto de Computação - UNICAMP


Novidades Professor Locais e horários Programa da disciplinaEmenta Diário de aulas
Material didático
Critério de avaliação
Datas importantes

Novidades

(17/10/2018) Revistos critérios de avaliação.
(5/9/2013) Publicada a primeira lista de exercícios. Veja na seção de material didático.
(27/8) Mudança da sala de aula: da 351 para a 353 no IC-4.
(26/8)
Postados slides para as aulas de 27/8 e para as aulas anteriores (13 a 24/8). Veja seção de material didático.
(13/8) Veja slides da primeira aula na seção Material Didático.
(2/8)
Sala de aula alterada de CB-18 para CC51 (sala 351 do IC-3).
(1/8) Material de leitura será indicado no diário de aulas, ainda nesta semana, já que não teremos aulas na próxima semana em virtude da Secomp.
(30/7) Página da disciplina entrou no ar

Professor (menu principal)

Locais e horários (menu principal)

Programa da disciplina (menu principal)

O programa desta disciplina cobre os algoritmos necessários à implementação da maioria dos sistemas criptográficos modernos. Tais algoritmos estão presentes nas funções de encriptação/decriptação, acordos de chaves, resumos (hash) criptográficos, geração de sequências pseudo-aleatórias de bits, entre outras. Duas vertentes de algoritmos serão exploradas: (i) a dos não-resistentes a ataques (por algoritmos) quânticos, baseados predominantemente na Teoria dos Números e (ii) a dos resistentes  até aqui a ataques quânticos, baseados na Teoria dos Reticulados, Teoria dos Códigos, e técnicas ad-hoc como é o caso dos algoritmos simétricos e de resumo. Algoritmos básicos, intermediários e avançados serão estudados, de forma que muito poucas noções de Criptografia serão necessárias, sendo mais desejável que o aluno tenha bons conhecimentos de Álgebra Linear e Análise de Algoritmos e Estatística e Probabilidade.  É necessário que o aluno tenha também alguma prática de programação em Linguagem C, que será usada na confecção do trabalho prático que fará parte da avaliação.

Ementa resumida (menu principal)

  1. Breve introdução à Criptografia moderna.
  2. Algoritmos e criptossistemas baseados em Teoria dos Números
    1. Algoritmos básicos: aritmética básica de precisão arbitrária, aritmética modular, máximo divisor comum, resolução de congruências.
    2. Algoritmos intermediários: testes de primalidade, fatoração, logaritmo discreto, aritmética de corpos finitos, aritmética em curvas elípticas.
    3. Algoritmos avançados: emparelhamentos bilineares, teste de primalidade.
  3. Algoritmos baseados em Teoria dos Reticulados
    1. Amostragem de vetores
    2. Algoritmos para redução de base - LLL
    3. Algoritmos para operações da Álgebra Linear
  4. Algoritmos baseados em Teoria dos Códigos
  5. Algoritmos baseados em técnicas adhoc para encriptação simétrica
  6. Algoritmos baseados em técnicas adhoc para resumo (hash) criptográfico

Diário de aulas (menu principal)

(1/8) Breve introdução ao curso.
(6/8 e 8/8) Não haverá aula em virtude da Secomp.
(13/8) Visão geral da Criptografia moderna - I
(15/8) Não houve aula.
(20/8) Visão geral da Criptografia moderna - II
(22/8) Visão geral da Criptografia moderna - III
(27/8) Conceitos e algortimos básicos da Teoria dos Números - I. Referência: Cap. 1 da Referência 1 An Introduction to Mathematical Cryptography.
(27/8-26/9) Fatoração de inteiros, Logaritmos discretos e Curvas Elípticas. Detalhamento a ser completado.
(1/9) Criptografia de curvas elípticas.

Material didático adicional (menu principal)

Incluiremos aqui materiais adicionais como transparências, artigos, trechos de livros, etc. Os enunciados dos trabalhos também serão colocados aqui.

Referências (menu principal)

Algumas referências importantes para o material discutido nesta disciplina são:
  1. An Introduction to Mathematical Cryptography. Series: Undergraduate Texts in Mathematics. J. Hoffstein, J. Pipher, J.H. Silverman. Springer.
  2. Introduction to Cryptography with Coding Theory. W. Trappe, L. Washington. Pearson.
  3. Understanding Cryptography.  C. Paar, J. Pelzl, Springer.
  4. Introduction to Cryptography. J.A. Buchmann, Springer.
  5. Handbook of Applied Cryptography. A. Menezes, P. v. Oorschot, S. Vanstone.  Disponível em http://www.cacr.math.uwaterloo.ca/hac/
  6. A Computational Introduction to Number Theory and Algebra. V. Shoup.  Disponível em http://shoup.net/ntb/
  7. Cryptography: Theory and Practice. D. Stinson. Ed. Chapman & Hall/CRC, 3a. edição.
  8. Guide to Elliptic Curve Cryptography. D. Hankerson, A. Menezes, S. Vanstone. Springer.
  9. Post-Quantum Cryptography. D.J. Bernstein; J.A. Buchmann; E. Dahmen (Eds.).

Critério de avaliação (menu principal)

(revisto em 17/10/2018) A avaliação será baseada em um trabalho final, envolvendo o estudo aprofundado de um algoritmo criptográfico. A avaliação desse trabalho será baseada na qualidade do texto, e de uma implementação do algoritmo. O trabalho será individual e à sua nota corresponderá a nota final.

Os intervalos de notas que serão usados na conversão para conceitos, no caso de alunos de pós-graduação, são:

A avaliação será baseada em uma prova e um trabalho final, envolvendo o estudo aprofundado de um algoritmo criptográfico. A avaliação desse trabalho será baseada na qualidade do texto, de uma implementação do algoritmo e de uma apresentação oral do trabalho. Detalhes e data de entrega do trabalho serão divulgados em setembro e as apresentações se darão no mês de novembro. O trabalho poderá ou não ser feito em grupos, dependendo do número de alunos matriculados no curso.

O critério de avaliação será o seguinte:
  1. Os pesos das notas da prova e do trabalho serão iguais.
  2. A média dessas duas notas, MA, será a sua média aritmética simples.
  3. Se MA >= 5.0, então o aluno estará aprovado; caso contrário, estará reprovado. Em ambos os casos, a média final será MA.
Todas as notas serão arredondadas para uma casa decimal.

Os intervalos de notas que serão usados na conversão para conceitos, no caso de alunos de pós-graduação, são:

Datas importantes (menu principal)