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

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