Lição 3: Criptografia Simples

Grades 6-8 | Grades 9-12

Visão Geral

Nesta lição, os estudantes são apresentados à necessidade da criptografia e a técnicas simples para quebrar (ou violar) mensagens secretas. Os estudantes tentarão suas chances para violar uma mensagem criptografada com a criptografia de César e também uma Criptografia de Substituição Aleatória. Os estudantes devem adquirir familiaridade com a ideia de que, em uma era de poderosas ferramentes computacionais, as técnicas de criptografia precisarão ser mais sofisticadas. O aspecto mais importante desta lição é compreender como e por que a criptografia assume um papel na vida de todos nós todos os dias na Internet e que a criação de criptografia apropriada não é trivial. Os estudantes irão adquirir experiência entendendo as considerações que devem ser levada em conta ao criar criptografia alta diante de ferramentas computacionais poderosas que podem ser usadas para quebrá-la. A necessidade de sigilo ao enviar bits pela Internet é importante para todos seus usuários.

Propósito

“Criptografia” é um processo para transformar uma mensagem de modo que a original seja "oculta" de qualquer pessoa que não seja o destinatário original. Ela não tem mais apenas finalidades militares e de espionagem. Nós a usamos todos os dias na internet, principalmente para realizar transações comerciais. Sem ela, nossa economia pode entrar em colapso.

Esta lição dá ao estudante uma amostra do tipo de conceito que está por trás de criptografar mensagens diante de ferramentas computacionais. Ferramentas computacionais aumentam a força e a complexidade dos algoritmos que são usamos para criptografar informações. Mas essas mesmas ferramentas também aumentam a capacidade de violar uma criptografia. O desenvolvimento de criptografia alta depende de conhecimento de problemas que são "difíceis" para serem resolvidos por computadores e de seu uso para criptografar mensagens. Como recurso, talvez você queira ler todo o Capítulo 5 Blown to Bits (Explodindo em Bits). Ele proporciona um contexto social que você pode querer levar para sua turma.

Agenda

Primeiros passos (15)

Atividade (35)

Encerramento (10)

Aprendizagem complementar

Objetivos

Os estudantes serão capazes de:

  • Explicar por que a criptografia é uma necessidade importante no cotidiano da internet.
  • Decifrar uma mensagem criptografada com a cifra de César, usando um widget para cifra de César
  • Decifrar uma mensagem criptografada por substituição aleatória usando a análise de frequência
  • Explicar os pontos fracos e falhas de segurança da criptografia por substituição

Preparação

— Verifique as duas versões do widget

Links

Aviso! Faça uma cópia dos documentos que você planeja compartilhar com os estudantes.

Para Students

Vocabulário

  • Cifra de César - Técnica de criptografia que desloca o alfabeto em certo número de caracteres.
  • Cifra - Termo genérico para uma técnica (ou algoritmo) que realiza criptografia.
  • Violar a criptografia - Quando tentamos decodificar uma mensagem secreta sem conhecer todos os detalhes da cifra, estamos tentando “craquear” (violar) a criptografia.
  • Descriptografia - Processo que reverte a criptografia, partindo de uma mensagem secreta e reproduzindo o texto original sem formatação.
  • Criptografia - Processo de codificação de mensagens para mantê-las secretas, de modo que somente partes “autorizadas” possam lê-las.
  • Cifra de substituição aleatória - Técnica de criptografia que mapeia cada letra do alfabeto a outras letras selecionadas aleatoriamente.

Suporte

Relatar um Bug

Guia de Ensino

Primeiros passos (15)

[][0]

Se necessário, apresente o contexto de alguns fatos sobre a internet:

  • A internet não é inerentemente segura.
  • Os pacotes que viajam pela internet passam por muitos roteadores, cada um pertencente a diferentes pessoas ou organizações.
  • Portanto, deveríamos supor que todas as informações que viajam pela internet são públicas, como se fossem escritas em um cartão postal e enviadas pelo correio.

[/][0]

Diga

O sigilo é uma parte fundamental da nossa vida, tanto em questões grandes como pequenas. À medida que nossa vida é cada vez mais conduzida na internet, queremos ter certeza de que podemos conservar a privacidade das nossas informações e controlar quem tem acesso a informações privilegiadas.

O comércio digital, os negócios, as operações governamentais e até as redes sociais dependem da nossa capacidade de impedir que as informações caiam nas mãos erradas.

Precisamos de uma maneira de enviar mensagens secretas…

Criptografia clássica - a cifra de César

Contexto:

*Muitas das ideias que usamos para manter segredos na era digital são bem mais antigas que a internet. O processo de codificação de uma mensagem de texto simples em alguma maneira secreta se chama criptografia.*

Por exemplo: na época do Império Romano, relata-se que Júlio César criptografava mensagens para seus soldados e generais usando um deslocamento alfabético simples – cada caractere era criptografado substituindo-o por um caractere que estava a um determinado número fixo de letras de distância no alfabeto.

*Em razão disso, um deslocamento alfabético costuma ser chamado de cifra de César.*

Instigue:

  • Esta mensagem foi criptografada usando uma cifra de César (um “deslocamento alfabético”).
  • Vamos ver quanto tempo leva para você decodificar esta mensagem (lembre-se de que é apenas um deslocamento do alfabeto):

[][1]

Resista à tentação de dar aos alunos uma ferramenta ou dispositivo para ajudar a decifrar a mensagem – isso será feito na próxima parte da lição! Parte do objetivo aqui é demonstrar que é possível fazer isso sem ferramentas. Com ferramentas, torna-se trivial, como veremos a seguir.

Se os alunos tiverem dificuldades para começar, há algumas sugestões de estratégias:

  • Encontre uma palavra pequena e tente fazer deslocamentos alfabéticos até ficar claro que é uma palavra que existe
  • Lembre-se de que as letras não são substituídas de modo aleatório – o alfabeto apenas é deslocado.
  • Após descobrir o valor do deslocamento, o resto fica fácil.

[/][1]

Mostre ou escreva isto no quadro

    cvmmn tengvf an pnagvan
  • Dê aos alunos de 3 a 5 minutos para que trabalhem para decifrar a mensagem.
    • RESPOSTA: “pizza gratis na cantina” – o alfabeto de A a Z foi deslocado em 13 caracteres.

Recapitulação:

  • Com essa técnica simples de criptografia, foram necessários somente alguns minutos para decodificar uma mensagem curta.
  • E se a mensagem fosse mais longa, MAS você tivesse uma ferramenta computacional para ajudar?!

Atividade (35)

[][0]

Se quiser que os alunos leiam um pouco sobre A História da Criptografia e a quebra de cifras, consulte “Substitution Ciphers and Frequency Analaysis” em [blown-to-bits-chapter-5][1] pp. 165-169.

[/][0]

[Cracking Substitution Ciphers][2]

Neste conjunto de atividades, os alunos vão usar duas versões diferentes de um widget simples no Code Studio para decifrar mensagens codificadas com cifras de substituição, incluindo deslocamento alfabético e substituição aleatória.

[/][2]

[][3] Transição para o Code Studio: [hocencryption][4]

1ª parte – Quebra de uma cifra de César

  • Peça aos alunos que cliquem na primeira (das duas) ferramentas de criptografia do Code Studio desta lição. Ela é identificada como “Alphabetic Shift Widget” (Widget de deslocamento alfabético). !!!dica Não apresse, mas também não demore muito na quebra de cifras de César. A apresentação e a quebra de uma cifra de César devem ser bem rápidas.

    O widget é bastante autoexplicativo. Deixe que os alunos descubram como usá-lo por conta própria.

    O objetivo é levantar questões sobre a quebra de criptografia com ferramentas computacionais e começar a usar alguns termos comuns.

    Você deve passar para a quebra por substituição aleatória de maneira relativamente rápida.

[][5]

As instruções para esta atividade são simples – não há apostila:

  • Coloque os alunos em duplas/parceiros

Objetivo: selecionar uma mensagem criptografada com uma cifra de César e usar o widget fornecido para decifrá-la.

  • Faça experiências com a ferramenta – clique nos itens, explore e descubra o que ela faz.
  • Escolha uma das mensagens no menu suspenso e tente decifrá-la usando a ferramenta.
  • Se desejar, digite sua própria mensagem, criptografe-a e peça a um amigo que a descriptografe.

Dê aos alunos cerca de 5 minutos para acessar a ferramenta e decifrar algumas mensagens

  • Com a ajuda da ferramenta, decifrar um deslocamento alfabético é trivial.
  • Depois de fazer um, leva apenas alguns segundos para fazer outros.

Opcional – Pause e recapitule:

Há uma página no Code Studio que recapitula a terminologia (criptografia, descriptografia, quebrar/decifrar, cifra, cifra de César) e apresenta o próximo problema.

Você tem a opção de fazer uma pausa aqui para recapitular e explicar os termos, se desejar, ou deixar os alunos continuarem (consulte a 2ª parte da atividade abaixo).

[/][5]

2ª parte – Quebra de uma cifra por substituição aleatória

Depois de recapitular a primeira atividade, os alunos precisam entender o seguinte antes de continuar:

  • Quebrar uma cifra de César é fácil… com uma ferramenta computacional como a que usamos, é trivial.
  • O próximo passo é tornar a criptografia um pouco mais difícil…

Novo desafio:

  • *E se, em vez de deslocar o alfabeto todo, mapeássemos cada letra do alfabeto a uma letra diferente aleatória do alfabeto? Isso se chama de cifra de substituição aleatória.*

  • *A nova versão do widget que você verá é uma versão mais sofisticada da ferramenta de criptografia que mostra muitas coisas diferentes.*

  • Mas o que ela faz é um mistério! Vamos verificar…

[Get Cracking][6]

[/][6]

[Use a Discovery-based approach][7]

LEMBRETE: Uma breve introdução a ferramentas baseadas em descobertas:

  • Coloque os alunos para trabalhar na ferramenta sem muita introdução
  • Dê aos alunos que trabalham com parceiros um tempo fixo (cerca de 5 minutos) para explorar e ver se conseguem descobrir o que ela faz e o que não faz – normalmente isso pode ser apresentado como um mistério que vale a pena investigar
  • Peça ao grupo que relate suas descobertas
  • Em seguida, o professor preenche as lacunas ou dá explicações de como a ferramenta funciona

Esse widget, assim como todos os outros, deve ser uma ferramenta de aprendizado. Você não pode estragar a surpresa, então sugerimos que deixe os alunos brincarem e investigarem para que descubram como as ferramentas funcionam.

Esses métodos de apresentação de ferramentas baseados em descobertas foram testados no desenvolvimento profissional e têm funcionado bem para professores que usam esta grade curricular. Esse método é eficaz por algumas razões, mas os alunos em geral acham essa abordagem mais atraente e divertida e tendem a ser mais receptivos e motivados a ouvir explicações sobre o funcionamento da ferramenta depois de tentar “resolver o mistério” por conta própria.

[/][7]

  • Peça aos alunos que cliquem no próximo círculo para ver a versão de análise de frequência do widget (a tela deve ser parecida com a mostrada abaixo).

Objetivo: deixe os alunos explorarem por 5 a 10 minutos para ver se conseguem descobrir o que a ferramenta está lhes mostrando e permitindo que eles façam.

As tarefas planejadas para os alunos no Code Studio são:

  • Descobrir o que está acontecendo nesta nova versão da ferramenta
  • Quais informações estão sendo apresentadas a você?
  • Descobrir o que a ferramenta permite fazer
  • Como sempre, não estrague a surpresa. Os alunos devem clicar nos itens e explorar.
  • Se você descobrir, poderá decifrar uma mensagem codificada com substituição aleatória.

[][8]

  • Depois de algum tempo explorando, reúna a turma para esclarecer o que a ferramenta faz e como funciona.

  • Se necessário, indique aos alunos que o próximo nível no Code Studio (aquele depois da ferramenta de análise de frequência) explica um pouco sobre o funcionamento da análise de frequência e sugere algumas estratégias para iniciar.

Dê aos alunos cerca de 15 a 20 minutos para decifrar uma das mensagens.

  • Se eles terminarem, há outras para tentar.
  • Os alunos podem inserir sua própria mensagem, fazer uma substituição aleatória para criptografá-la e, então, copiar/colar a versão criptografada para ver se um amigo consegue decifrá-la.
  • É possível ganhar uma boa experiência na quebra dessas mensagens com a ferramenta.

Encerramento (10)

Vídeo: Criptografia e chaves públicas

[Wrap up goals][0]

O vídeo reitera uma série de questões apresentadas nesta lição.

Ao finalizar, é importante que os alunos:

Entendam a relação entre senhas e chaves de criptografia.

  • Uma chave é uma entrada de um algoritmo de criptografia. Uma senha é basicamente a mesma coisa.

Entendam por que o uso de senhas maiores torna mais difícil adivinhá-las.

  • Senhas maiores aumentam o número de chaves possíveis, tornando computacionalmente difícil adivinhar qual é a chave.

[/][0]

  • Mostre as [the-internet-encryption-public-keys-1][1]

O que você deve saber sobre este vídeo:

  • De 0:00 a 4:11, o vídeo aborda as cifras de César e Vigenere e explica por que são difíceis de decifrar.
  • Após 4:11, explica a diferença entre sistemas de criptografia que usam chaves simétricas x assimétricas, o que está relacionado ao material sobre criptografia de chave pública e deve servir como uma prévia/chamariz para técnicas de criptografia mais modernas.

Discussão

Como parte do encerramento, os aspectos mais importantes que buscamos destacar são:

  • A criptografia é essencial na vida e nas atividades do dia a dia
  • A “força” da criptografia está relacionada à facilidade com que é possível decifrar uma mensagem, supondo que o adversário conheça a técnica, mas não a “chave” exata.
  • É perfeitamente possível quebrar uma cifra por substituição aleatória à mão, embora possa levar algum tempo e envolva tentativa e erro.
  • No entanto, com o auxílio de ferramentas computacionais, uma cifra por substituição aleatória pode ser quebrada por um novato em questão de minutos.
  • Cifras por substituição simples permitem entender melhor algoritmos de criptografia, mas, como vimos, deixam muito a desejar quando um possível adversário conta com o auxílio de ferramentas computacionais… nosso entendimento precisa se tornar mais sofisticado.
  • Se nosso objetivo for criar uma internet segura, precisaremos desenvolver ferramentas e protocolos capazes de resistir ao enorme poder computacional dos computadores modernos.

Aqui vão algumas sugestões instigantes que você pode usar para finalizar a lição e como meio para destacar os aspectos acima. Escolha uma ou mais.

Sugestões:

Até que ponto é mais fácil quebrar uma cifra de César do que uma cifra por substituição aleatória? Você consegue expressar isso em números?

  • Na cifra de César, existem apenas 25 maneiras possíveis de deslocar o alfabeto. Na pior das hipóteses, precisamos testar apenas 25 possibilidades diferentes. Uma cifra por substituição aleatória tem MUITO mais possibilidades (fatorial de 26 = 4x1026 possibilidades). No entanto, como aprendemos, com a análise de frequência, podemos evitar ter que testar todas às cegas.

Foi difícil quebrar uma cifra por substituição aleatória? Demorou mais do que você imaginava? Menos? Por quê?

  • As ferramentas computacionais ajudam as pessoas na implementação de algoritmos de criptografia, descriptografia e quebra de algoritmos. Em outras palavras, o uso de um computador altera a velocidade e a complexidade dos tipos de criptografia que podemos fazer, mas também aumenta nossa capacidade de quebrar ou contornar a criptografia.

Toda cifra de criptografia é um **algoritmo para transformar um texto simples em um texto cifrado. E o contrário? Você pode escrever um algoritmo para quebrar uma cifra de César? E uma cifra por substituição aleatória?**

  • Um algoritmo para quebrar uma cifra de César é bem fácil – para cada deslocamento alfabético possível, teste e veja se as palavras resultantes existem.
  • Um algoritmo para quebrar a substituição aleatória é mais complicado e sutil. Talvez não haja uma única resposta ótima, mas, ao raciocinar sobre o assunto, percebemos como é complicado codificar a inteligência e a intuição humanas para transformar algo como a análise de frequência em um processo que uma máquina consiga seguir. Isso provavelmente exige um pouco de intervenção humana, o que é um aspecto interessante a destacar.

** Revisão da terminologia – você pode aproveitar esta oportunidade para revisar o novo vocabulário apresentado na atividade e responder a dúvidas que os alunos podem ter encontrado durante a atividade.**

  • Definições de criptografia, descriptografia, quebrar/decifrar a criptografia, cifra, etc.

Aprendizagem complementar

[Teaching Tips][0]

Os alunos devem ser estimulados a conversar com o parceiro ao preencher a planilha. As perguntas são bastante diretas, e o objetivo é mais usar as perguntas como um guia de leitura do que encontrar todas as respostas o mais rápido possível.

[/][0]

Leia o “Blown to Bits”

  • Leia as páginas 165 a 169 de [Blown to Bits, Chapter 5][1].
  • Responda às perguntas apresentadas no guia de leitura e planilha [reading-guide-for-encryption][2]

Mais “Blown to Bits”

  • As seções anteriores do Capítulo 5 de “Blown to Bits” fazem referência ao significado e às controvérsias em torno da criptografia como efeito do 11 de setembro. Essa leitura pode ser uma ferramenta útil para uma introdução mais abrangente ao impacto da criptografia em muitos aspectos da vida moderna.

  • Peça aos alunos que analisem seu histórico de navegação na internet e façam uma estimativa de qual porcentagem eles realizam com a suposição de que é “particular”. Eles têm algum meio de saber ao certo se isso é mesmo verdade? Existem sites que eles acessam onde se sentem mais confiantes quanto ao sigilo de seu tráfego do que outros? Essa conclusão deles tem justificativa?

Adesão a Normas

Ver adesão completa do curso

Normas CSTA K-12 para Ciência da Computação (2011)

CI - Impactos Éticos, Globais e Comunitários
  • CI.L3A:10 - Descrever problemas de segurança e privacidade relacionados a redes de computadores.
CL - Colaboração
  • CL.L2:2 - Criar, desenvolver, publicar e apresentar produtos de forma colaborativa (por exemplo: vídeos, podcasts ou sites) usando recursos tecnológicos que demonstrem e comuniquem conceitos do currículo.
CPP - Programação e Prática Computacional
  • CPP.L3A:9 - Explicar os princípios de segurança analisando técnicas de criptografia e autenticação.
  • CPP.L3B:5 - Implantar princípios de segurança implementando estratégias de criptografia e autenticação.
CT - Pensamento Computacional
  • CT.L3B:4 - Avalie a eficiência, exatidão e clareza de algoritmos.

Princípios de Ciência da Computação

1.2 - Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.
1.2.2 - Crie um artefato computacional usando ferramentas e técnicas de computação para solucionar um problema. [P2]
  • 1.2.2A - Ferramentas e técnicas computacionais podem aprimorar o processo de busca de uma solução para um problema.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
  • 3.3.1B - Preocupações com a segurança geram vantagens e desvantagens no armazenamento e na transmissão de informações.
  • 3.3.1F - Preocupações com a segurança e a privacidade surgem com dados que contenham informações pessoais.
6.3 - Cybersecurity is an important concern for the Internet and the systems built on it.
6.3.1 - Identifique questões de segurança cibernética existentes e opções prováveis para abordar estes problemas com a Internet e os sistemas nela desenvolvidos. [P1]
  • 6.3.1C - A implementação da segurança cibernética abrange componentes de software, hardware e humanos.
  • 6.3.1H - A criptografia é essencial para muitos modelos de segurança cibernética.
  • 6.3.1I - A criptografia tem uma base matemática.
  • 6.3.1K - A criptografia simétrica é um método de criptografia que envolve uma chave para criptografia e descriptografia.
7.3 - Computing has a global affect -- both beneficial and harmful -- on people and society.
7.3.1 - Analise os efeitos benéficos e nocivos da computação. [P4]
  • 7.3.1G - Preocupações com a privacidade e a segurança surgem no desenvolvimento e uso de artefatos e sistemas computacionais.