MO421/MC889A - Introdução à Criptografia

A partir de 23/4/2020 toda comunicação referente a esta disciplina será via Google Classroom. Esta página não será mais atualizada a partir dessa data.

1º Semestre de 2020

Prof. Ricardo Dahab

Instituto de Computação - UNICAMP


Novidades Professor Locais e horários Objetivos e programa
Diário de aulas Referências bibliográficas e material didático Avaliação Datas importantes

Novidades

Professor (menu principal)

Locais e horários (menu principal)

Objetivos, pré-requisitos e programa  (menu principal)

Objetivos

O objetivo principal desta disciplina é o de explorar o amplo espectro de fundamentos, técnicas e aplicações da Criptografia moderna. Até a década de 1970, a Criptografia foi uma técnica de interesse limitado aos meios diplomáticos e militares. Com o advento das redes de computadores, evoluiu e expandiu-se rapidamente, abarcando várias áreas teóricas e aplicadas, com intensa atividade de pesquisa e desenvolvimento. Hoje está presente na base de quase todas as técnicas para provimento de requisitos de segurança da informação e de sistemas computacionais. 

A abordagem do curso é em largura, sem descuido do rigor na apresentação das teorias subjacentes às diversas técnicas criptográficas. Exemplos de algoritmos e protocolos serão discutidos e implementados, na medida do possível.

Pré-requisitos

A disciplina é auto-contida: serão cobertos todos os conceitos não-elementares necessários ao entendimento das técnicas criptográficas estudadas. De qualquer maneira, são desejáveis conhecimentos básicos de Álgebra, Álgebra Linear, Estatística e Probabilidade, e Análise de Algoritmos, comumente cobertos em disciplinas dos primeiros anos de graduação.

Programa

  1. Criptografia clássica
  2. Teoria da informação, segurança incondicional
  3. Cifras de blocos e de fluxo.
  4. Funções de hash, códigos de autenticação de mensagens, funções de derivação de chaves
  5. O RSA de métodos baseados em fatoração de inteiros
  6. Outros métodos para encriptação de chave pública
  7. Assinaturas digitais
  8. Criptografia baseada em problemas muito difíceis (PQC)
  9. Certificados, métodos de estabelecimento e transporte de chaves

Diário de aulas (menu principal) 

    Manterei o diário de aulas neste link, com observações feitas durante as aulas, recomendações diversas, etc.

Referências e material didático (menu principal)

Livro-texto

    O livro texto será o seguinte, do qual serão utilizados partes dos capítulos. Está disponível aqui.

    Cryptography - Theory and Practice, 4th ed.,  Douglas R. Stinson and Maura B. Paterson. CRC Press, 2019.

Outros bons livros para referência

  1. Understanding Cryptography - A Textbook for Students and Practitioners. Christof Paar e  Jan Pelzl. Springer, 2010. Disponível aqui para download a partir do domínio unicamp.br. Veja errata no site do livro aqui. ou arquivo pdf diretamente aqui.
  2. Cryptography Made Simple. Nigel P. Smart. Springer, 2016. (disponível para download gratuito aqui com IP da Unicamp).
  3. Handbook  of Applied Cryptography. A.  Menezes, P.  van Oorschot and S. Vanstone. CRC Press, 1997.
  4. Introduction to Modern Cryptography. J. Katz and Y. Lindell. Chapman & Hall/CRC, 2007.
  5. Modern Cryptography - Theory and   practice.  Wenbo Mao.  Pearson Education, 2004.
  6. Algoritmos - Teoria e Prática. Cormen, Leiserson, Rivest and Stein. Editora Campus, 2002. Errata (do Prof. Zanoni)
  7. A Computational Introduction  to Number Theory and Algebra, Victor Shoup. Cambridge University Press, 2005.
  8. Guide to Elliptic Curve Cryptography, Hankerson, Menezes, Vanstone, Springer, 2004.
  9. Elliptic Curves: Number Theory and Cryptography, 2nd. Edition (Discrete Math and Its Applications), L. C. Washington
  10. Post-Quantum Cryptography. Bernstein, Buchmann, Dahmen (editores). 2009, Springer.

Livros sobre a História da Criptografia ao longo dos séculos

  1. The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography. Simon Singh. Anchor, 2000.
  2. The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet. David Khan. Scribner, 1996.

Referências sobre Bletchley Park

Bletchley Park (1, 2) foi um centro de criptoanálise montado na Segunda Guerra Mundial pelo governo inglês, com o objetivo de quebrar (decriptar) as transmissões encriptadas de países do Eixo, especialmente as oriundas das tropas e comando alemães. Bletchley Park fica na pequena cidade de Bletchley no interior da Inglaterra. Entre vários feitos formidáveis, nasceu em Bletchley Park o primeiro computador, batizado de Colossus, cujo objetivo específico era acelerar a criptoanálise de um tipo de cifra especialmente difícil, produzida pelas máquinas Lorenz, mais sofisticadas e complexas que as bem conhecidas máquinas Enigma. Entre outros, Alan Turing estava lá. As referências abaixo descrevem e discutem esses feitos.
  1. Codebreakers: The Inside Story of Bletchley Park. F. H. Hinsley and Alan Stripp (Editors). Oxford University Press, USA, 2001.
  2. Bletchley Park's Lost Heroes. Fascinante vídeo produzindo pela BBC, contando a história de W. T. Tutte, e outros heróis da Segunda Guerra desconhecidos do grande público. Tutte foi um matemático conhecidíssimo na área de Teoria dos Grafos, mas que em Bletchley Park realizou o feito de quebrar a cifra produzida pela máquina Lorenz sem jamais ter visto uma descrição dela. Para esse fim, o computador moderno (Colossus) teve que ser inventado, por Tommy Flowers, também do nada. Em inglês.
  3. Colossus: The secrets of Bletchley Park's code-breaking computers. B. Jack Copeland. Oxford University Press, USA, 2010.

Material didático

Avaliação (menu principal)

Datas importantes (menu principal)

Esta página é mantida pelo Prof.  R. Dahab.