Números Inteiros e Criptografia (20-PLE)

Funcionamento da disciplina

O meio primário de comunicação entre os alunos, monitores e professores será pelo Telegram, no grupo https://t.me/joinchat/NCZpYEYL7OLEe9fmMioJCA

As aulas serão realizadas em modo síncrono, com aulas teóricas às 3as e 5as de 8:00 às 10:00 e com aulas práticas/conversas/dúvidas às 2as de 13:00 às 15:00. Esses encontros serão gravados e disponibilizados para todos os alunos que queiram acompanhar em modo assíncrono. A escolha entre modo síncrono e/ou assíncrono é completamente livre para cada aluno.

Bibliografia

  • Livro-texto: S. C. Coutinho, Números Inteiros e Criptografia RSA, Segunda Edição, Coleção Matemática e Aplicações, IMPA, 2014.
  • Leitura complementar: L. M. Schechter, Uma Introdução à Criptografia de Chave Pública Através do Método El Gamal, Notas em Matemática Aplicada, Volume 77, SBMAC, 2014. Disponível gratuitamente na internet

Listas de exercícios

As listas de exercícios semanais contarão como 70% da média final.

ListaData limite para entrega
Lista 1 (atualizada em 27/8)1o de setembro às 8:00
Lista 2 (atualizada em 3/9)8 de setembro às 8:00
Lista 3 (atualizada em 10/9)18 de setembro às 18:00
Lista 4 (atualizada em 24/9)25 de setembro às 18:00
Lista 52 de outubro às 18:00
Lista 6 (atualizada em 5/10, 7/10)9 de outubro às 18:00
Lista 7 (atualizada em 10/10)16 de outubro às 18:00
Lista 8 (atualizada em 18/10)26 de outubro às 18:00
Lista 9 (atualizada em 26/10)3 de novembro às 18:00
Trabalho Final (atualizado em 3/11, 8/11, 10/11)16 de novembro às 12:30

Cronograma planejado/registro de atividades

DataHorárioAulaConteúdoLinks
24 de ago13-15Prática 1Introdução à disciplina; mini-curso de Python 3 (pt. 1)Vídeo 1 Chat 1 Vídeo 2 Chat 2
25 de ago8-10Teórica 1Teoremas, provas, contraexemplos; linguagem matemática, conectivosQuadro (Jamboard) Quadro (PDF) Vídeo 1 (Teoremas, provas, contraexemplos) Chat 1 Vídeo 2 (Linguagem matemática, conectivos) Chat 2
27 de ago8-10Teórica 2Árvore de uma afirmação, tabela verdade compacta, uso de equivalências para estratégias de prova alternativas; Quantificadores para todo e existe, suas estratégias de prova; Conjuntos e suas propriedades, operações e relações básicas (interseção, união, diferença, estar-contido-em)Quadro (Jamboard) Quadro (PDF) Vídeo 1 (Recap aula T 01, árvore de uma afirmação, tabela verdade compacta, uso de equivalências para estratégias de prova alternativas) Chat 1 Vídeo 2 (Quantificadores para todo e existe, suas estratégias de prova) Chat 2 Vídeo 3 (Conjuntos e suas propriedades, operações e relações básicas (interseção, união, diferença, estar-contido-em)) Chat 3
31 de ago13-15Prática 2Dúvidas da Lista 1; Conjuntos (cont.); subconjuntos; conjunto das partesQuadro (Jamboard) Quadro (PDF) Vídeo 1 (Dúvidas da Lista 1) Chat 1 Vídeo 2 (Conjuntos (cont.); subconjuntos; conjunto das partes) Chat 2
1 de set8-10Teórica 3Relações; diagrama (de Hasse) de uma relação; relação “menor ou igual” para números; mínimo e máximo; prova por casosQuadro (PDF) Vídeo 1 (Relações; diagrama (de Hasse) de uma relação) Chat 1 Vídeo 2 (Relação “menor ou igual” para números; mínimo e máximo; prova por casos) Chat 2 Código (Python Jupyter Notebook)
3 de set8-10Teórica 4Relações - conceitos básicos (par ordenado, produto cartesiano, representações por diagrama e tabela, relação oposta); Propriedades de relações entre dois conjuntos (relação determinística, total, injetiva, sobrejetiva, função, bijeção); Propriedades de relações sobre um conjunto (reflexiva, simétrica, transitiva)Quadro (PDF) Vídeo 1 (Relações - conceitos básicos (par ordenado, produto cartesiano, representações por diagrama e tabela, relação oposta)) Chat 1 Vídeo 2 (Propriedades de relações entre dois conjuntos (relação determinística, total, injetiva, sobrejetiva, função, bijeção)) Chat 2 Vídeo 3 (Propriedades de relações sobre um conjunto (reflexiva, simétrica, transitiva)) Chat 3
7 de setFERIADO
8 de set8-10Teórica 5Propriedades de relações; Recap de algumas estratégias de prova; provas existenciais; princípio da casa dos pombos (prova não construtiva); Conceito de algoritmo; algoritmo para divisão euclidiana e seu teorema de terminaçãoQuadro 1 (Propriedades de relações) (PDF) Quadro 2 (Algoritmos, divisão euclidiana) (Jamboard) Quadro 2 (Algoritmos, divisão euclidiana) (PDF) Vídeo 1 (Propriedades de relações) Chat 1 Vídeo 2 (Recap de algumas estratégias de prova; provas existenciais; princípio da casa dos pombos (prova não construtiva)) Chat 2 Vídeo 3 (Conceito de algoritmo; algoritmo para divisão euclidiana e seu teorema de terminação) Chat 3
10 de set8-10Teórica 6Corretude do alg. ingênuo da divisão; unicidade de quociente e resto; divisibilidade de inteiros; mdc; enunciado do algoritmo de EuclidesQuadro (Jamboard) Quadro (PDF) Vídeo 1 (Corretude do alg. ingênuo da divisão; unicidade de quociente e resto) Chat 1 Vídeo 2 (Divisibilidade de inteiros; mdc; enunciado do algoritmo de Euclides) Chat 2
14 de set13-15Prática 3Dúvidas sobre provas e contraexemplos; Continuação do minicurso de Python; implementação dos algoritmos ingênuo de divisão e de Euclides para mdcQuadro (Jamboard) Quadro (PDF) Código Python (Google Colaboratory) Vídeo 1 (Dúvidas sobre provas e contraexemplos) Chat 1 Vídeo 2 (Continuação do minicurso de Python; implementação dos algoritmos ingênuo de divisão e de Euclides para mdc) Chat 2
15 de set8-10Teórica 7Terminação e corretude do Alg. de Euclides; Teorema de Bézout (motivação e enunciado); estratégia para a prova (Algoritmo Estendido de Euclides)Quadro (Jamboard) Quadro (PDF) Vídeo 1 (Terminação e corretude do Alg. de Euclides) Chat 1 Vídeo 2 (Teorema de Bézout (motivação e enunciado); estratégia para a prova (Algoritmo Estendido de Euclides)) Chat 2
17 de set8-10Teórica 8Algoritmo Estendido de Euclides (corretude, terminação, implementação e exemplos); Algoritmo ingênuo de fatoração (encontra menor fator [maior que 1] de um número natural)Quadro pt. 1 (Jamboard) Quadro pt. 1 (PDF) Quadro pt. 2 (PDF) Código (Google Colaboratory) Vídeo 1 (Algoritmo Estendido de Euclides (corretude, terminação, implementação e exemplos)) Chat 1 Vídeo 2 (Algoritmo ingênuo de fatoração (encontra menor fator [maior que 1] de um número natural)) Chat 2
21 de set13-15Prática 4Dúvidas da Lista 3Quadro (Jamboard) Quadro (PDF) Vídeo (Dúvidas da lista 3) Chat
22 de set8-10Teórica 9Algoritmo de fatoração em primos, eficiência da fatoração; Fatoração única e irracionalidadeQuadro (PDF) Código (Google Colaboratory) Vídeo 1 (Algoritmo de fatoração em primos, eficiência da fatoração) Chat 1 Vídeo 2 (Fatoração única e irracionalidade) Chat 2
24 de set8-10Teórica 10Propriedade Fundamental dos Primos, Fatoração única, PrimordialQuadro (PDF) Vídeo (Propriedade Fundamental dos Primos, Fatoração única, Primordial) Chat
28 de set13-15Prática 5Dúvidas da lista 4; Minicurso de Python (tuplas, listas, for)Quadro (Jamboard) Quadro (PDF) Código (Google Colaboratory) Vídeo 1 (Dúvidas da lista 4) Chat 1 Vídeo 2 (Minicurso de Python (tuplas, listas, for)) Chat 2
29 de set8-10Teórica 11RevisãoQuadro (Jamboard) Quadro (PDF) Vídeo (Revisão) Chat
1 de out8-10Teórica 12Recursão (definições recursivas, Torres de Hanói)Quadro (Jamboard) Quadro (PDF) Código (Google Colaboratory) Vídeo (Recursão (definições recursivas, Torres de Hanói)) Chat
5 de out13-15Prática 6Dúvidas da lista 5; Achar os primos até nQuadro (PDF) Código (Google Colaboratory) Vídeo 1 (Dúvidas da lista 5) Chat 1 Vídeo 2 (Achar os primos até n) Chat 2
6 de out8-10Teórica 13InduçãoQuadro (PDF) Vídeo 1 Chat 2 Vídeo 2 Chat 1
8 de out8-10Teórica 14Crivo de Eratóstenes (cont.); Indução (cont.); Indução ForteQuadro (PDF) Código - Crivo de Eratóstenes (Google Colaboratory) Vídeo 1 (Crivo de Eratóstenes) Chat 1 Vídeo 2 (Indução) Chat 2 Vídeo 3 (Indução Forte) Chat 3
12 de outFERIADO
13 de out8-10Teórica 15Relações de equivalência; Aritmética modularQuadro (PDF) Vídeo 1 (Relações de equivalência) Chat 1 Vídeo 2 (Aritmética modular) Chat 2
15 de out8-10Teórica 16Aritmética Modular - Operações, Teorema da Inversão, PotênciasQuadro (PDF) Vídeo 1 (Aritmética Modular - Operações e Teorema da Inversão) Chat 1 Vídeo 2 (Aritmética Modular - Potências) Chat 2
19 de out13-15Prática 7Dúvidas; PotênciasQuadro (PDF) Código (Google Colaboratory) Vídeo 1 Chat 1 Vídeo 2 Chat 2 Vídeo 3 (Potências) Chat 3
20 de out8-10Teórica 17Pequeno Teorema de FermatQuadro (PDF) Código (Google Colaboratory) Vídeo 1 Chat 1 Vídeo 2 Chat 2 Vídeo 3 Chat 3
22 de out8-10Teórica 18Teste de Fermat; Testemunhas e Pseudoprimos; Números de CarmichaelQuadro (Jamboard) Quadro (PDF) Código (Teste de Fermat; Números de Carmichael (ingênuo)) Vídeo (Teste de Fermat; Testemunhas e Pseudoprimos; Números de Carmichael) Chat
26 de out13-15Prática 8Dúvidas; Prova do PTF por contagem de colares; Minicurso de Python (dicionários & comprehension)Quadro (Jamboard) Quadro (PDF) Código Vídeo 1 (Dúvidas; Prova do PTF por contagem de colares) Chat 1 Vídeo 2 (Minicurso de Python (dicionários & comprehension)) Chat 2
27 de out8-10Teórica 19Teorema de Korselt; Teste de Miller-RabinQuadro (Jamboard) Quadro (PDF) Código Vídeo 1 (Teorema de Korselt) Chat 1 Vídeo 2 (Teste de Miller-Rabin) Chat 2
29 de out8-10Teórica 20Miller-Rabin; RSAQuadro 1 (Jamboard) Quadro 1 (PDF) Quadro 2 (PDF) Vídeo 1 (Miller-Rabin) Chat 1 Vídeo 2 (RSA) Chat 2
2 de novFERIADO
3 de nov8-10Teórica 21RSA - Trabalhando com texto; segurançaQuadro (PDF) Vídeo 1 (RSA - Trabalhando com texto) Chat 1 Vídeo 2 (RSA - Segurança) Chat 2
5 de nov8-10Teórica 22Troca de chaves Diffie–HellmanQuadro (PDF) Vídeo Chat
9 de nov13-15SEM AULA
10 de nov8-10Teórica 23Dúvidas RSA e trabalho; Assinaturas digitaisQuadro (Jamboard) Quadro (PDF) Vídeo 1 (Dúvidas RSA e trabalho) Chat 1 Vídeo 2 (Assinaturas digitais) Chat 2
12 de nov8-10SEM AULA
16 de novembro13-15Prática 9Atividade final RSA: trocas de mensagens secretas em público; encerramento da disciplina

Método de avaliação

Diversas listas de exercícios e (pelo menos) um trabalho de maior porte. Os monitores são responsáveis pela correção das listas