Introdução à Criptografia

Primeiro quadrimestre de 2011
Horário: 2a (14:00-16:00) e 4a (14:00-16:00)
Sala de aula: 302A (bloco B) 006-0 (térreo do bloco A)
Professor: Jerônimo C. Pellegrini
Sala do professor: S 805 (bloco B)
Email do professor: jeronimo.pellegrini ufabc edu br

Tragam o trabalho na minha sala SEGUNDA

Venham à 805 do bloco B para entregar o trabalho NA SEGUNDA 25/04 (adiado).

Novidades:

20/07 -- Notas de aula atualizadas (v.33) [ Grandes mudanças ]
29/05 -- Conceitos após T
09/04 -- Notas de aula atualizadas (v.31) [ Mudanças estéticas e pequenas correções ]
05/04 -- Conceitos após P1
05/04 -- Notas de aula atualizadas (v.30) [ Correções no cap. sobre protocolos;
                                            Cap. sobre compartilhamento de segredos expandido ]
03/04 -- Notas de aula atualizadas (v.29) [ Capítulo sobre protocolos;
                                            Rascunho sobre compartilhamento de segredos ]
01/04 -- Mudança de sala! Vamos para a 006-0 do bloco A
25/03 -- Notas de aula atualizadas (v.28) [ Melhorias no Cap. sobre cripto de chave publica e
                                            redação inicial do Cap. sobre assinatura digital ]
24/03 -- Data da prova alterada (30/março)
23/03 -- Notas de aula atualizadas (v.27) [ Melhorias no Cap. sobre cripto assimétrica e
                                            no Apêndice sobre Teoria dos Números ]
23/03 -- Notas de aula atualizadas (v.26) [ Melhorias no Cap. sobre cripto assimétrica ]
22/03 -- Notas de aula atualizadas (v.25) [ Mais sobre Diffie-Hellman e cripto assimétrica ]
19/03 -- Notas de aula atualizadas (v.24) [ Demonstração do Teorema 8.1 ]
18/03 -- Notas de aula atualizadas (v.23) [ Diversas correções, e um exemplo a mais ]
18/03 -- Notas de aula atualizadas (v.22) [ Melhorias do final do Cap. sobre MAC
                                            em diante ]
16/03 -- Notas de aula atualizadas (v.21) [ Várias pequenas mudanças no texto;
                                            Apresentação de CBC-MAC mais completa ]
16/03 -- Indicações de livros interessantes (não obrigatórios, não tem na UFABC -- pra quem quiser
                                             entender mais sobre Cripto)
14/03 -- Notas de aula atualizadas (v.20) [ Mudanças SOMENTE no Cap. sobre Criptanálise
                                            (que está muito mais claro) ]
13/03 -- Notas de aula atualizadas (v.19) [ Cap. sobre hashing corrigido;
                                            Rascunho de Cap. sobre MAC;
                                            Rascunho de Cap. sobre cripto assimétrica ]
12/03 -- Notas de aula atualizadas (v.18) [ Mais sobre hashing; Apendice B melhorado;
                                            Cap. sobre Criptanálise muito aumentado ]
09/03 -- Exercícios selecionados disponíveis nesta página
04/03 -- Notas de aula atualizadas (v.17) [ Apêndice c/prob do aniversário; mais sobre hashing;
                                            menos-que-rascunho de Capítulo sobre Criptanálise ]
03/03 -- Lista de trabalhos com referências e links disponível
01/03 -- Notas de aula atualizadas (v.16) [ Diversas melhorias ]
27/02 -- Notas de aula atualizadas (v.15) [ Capítulo 5 sofreu muitas alterações ]
25/02 -- Notas de aula atualizadas (v.14) [ Muitas melhorias nos Capítulos 1-4 ]
23/02 -- Data da prova (28/03) no site
23/02 -- Notas de aula atualizadas (v.13) [ Mudanças na apresentação de cifras de bloco ]
22/02 -- Notas de aula atualizadas (v.12) [ Algumas mudanças em cifras de bloco ]
22/02 -- Notas de aula atualizadas (v.11) [ Mudanças principalmente na parde sobre cifras de bloco ]
21/02 -- Notas de aula atualizadas (v.10) [ Muitas mudanças ]
18/02 -- Notas de aula atualizadas (v.9) [ Pequenas melhorias; mais sobre cifras de fluxo ]
15/02 -- Notas de aula atualizadas (v.8) [ Melhorias importantes no Ap. A ]
15/02 -- Notas de aula atualizadas (v.7) [ Melhorias no Cap. 4 e no Ap. A ]
15/02 -- Notas de aula atualizadas (v.6) [ Demonstrações no Cap. 3; melhorias no Ap. A ]
14/02 -- Notas de aula atualizadas (v.5) [ Melhorias pontuais porém importantes ]
14/02 -- Notas de aula atualizadas (v.4) [ Muitas melhorias; mais texto ]
11/02 -- Notas de aula atualizadas (v.3) [ apêndice sobre Complexidade melhorado ]
09/02 -- Notas de aula atualizadas (v.2) [ apêndices incluídos - teoria dos números e complexidade ]
08/02 -- Notas de aula disponíveis (v.1)

Ementa

Criptografia clássica. Tópicos em Teoria dos Números aplicada à Criptografia. Criptografia de bloco simética: DES, Twofish, IDEA, AES. Criptografia de bloco assimétrica ou de chave pública: RSA e ElGamal. Modos de operação da Criptografia de bloco. Autenticação de mensagens e assinaturas digitais.

Avaliação

O conceito final da disciplina poderá ser:

A avaliação ser composta de:

A avaliação final de cada aluno não será o resultado de alguma "conta" feita a partir dos valores das avaliações. O resultado de cada avaliação reflete o desempenho do aluno em todo o curso até aquele instante, e não é apenas uma "nota isolada". Isso significa que cada avaliação leva em conta também o resultado das avaliações anteriores. De maneira simples, cada avaliação mostra qual seria o conceito final do aluno se o curso terminasse naquele instante.

Exercícios

Selecionei alguns exercícios; mais tarde incluo mais.

Trabalho

A lista de livros e artigos a seguir é apenas um subsídio e forte recomendação -- servem de ponto de partida. Vocês podem usar outras referências, claro! Pretendo incluir mais referências nos próximos dias.

  1. O algoritmo LLL e uma aplicação em Criptografia
  2. Criptografia multivariada
  3. Esteganografia
  4. Encriptação com negação plausível
  5. Reticulados em Criptografia (pode escolher um sistema só, se quiser -- GGH, NTRU, Ajtai-Dwork etc)
  6. Códigos em Criptografia
  7. Computação segura com vários atores
  8. Dinheiro digital (digital cash)
  9. Ataques teóricos a criptossistemas. Um exemplo:
  10. Ataques práticos (WEP, Word etc) a criptossistemas, com explicação teórica
  11. Descrição detalhada do AES

Conceitos

Se seu RA não está na lista (ou parece estar errado), pode ser que estivesse ilegível (ou semi-legível) na prova. Me mande uma mensagem com seu nome e RA.

RA          após P1  após T
---------------------------
11181209          C       C
11077707          B       B
11034109          B       B
11013610          A       A
11020407          B       A
11080209          B       C
11075208          B       B
11062908          B       B
11053909          F       C
11069007          F       C
11082109          A       B
11014308          A       A
11020009          B       B
11148108          B       C
11085008          B       B
11041208          C       B
11064107          F       C
11030509          F       C

Programa aproximado

Este programa está sujeito a mudanças simples. Grandes mudanças não devem acontecer.

Visão geral dos problemas abordados pela Criptografia
Sigilo perfeito e o teorema de Shannon
Funções de mão única
Geração de números pseudo-aleatóreos
Cifras de fluxo
Cifras de bloco
Resumos criptográficos (hashing)
MAC (autenticação de mensagens)

Cifras assimétricas 
Curvas Elípticas
Assinaturas digitais
Distribuição de chaves
Autenticação de entidades (identificação)

Criptografia Pós-quântica
Reticulados e códigos
Grupos não comutativos

Comprometimento
Transferência opaca (ou "inconsciente")
Provas de Conhecimento Zero
Assinatura simultânea de contrato
Compartilhamento de segredos
Eleições eletrônicas

Criptografia Quântica

Data da prova: 28 30 de Março. Data da entrega do trabalho: 20 de Abril.

Bibliografia

Principal

Não há um único livro que contenha o material que abordaremos, mas os dois livros abaixo com as notas de aula deverão ser suficientes.

Secundária

Embora não exista em nossa biblioteca, quem tiver interesse em continuar estudando Criptografia poderá consultar estes livros: