Laboratório de Impressões Digitais

As duplas construirão no Scratch uma simulação educativa de hash. O programa produzirá um código a partir de uma entrada e permitirá comparar diferentes entradas. O projeto deverá explicar na própria tela que se trata de uma simplificação.

Passo a Passo para Execução

  1. Criar um projeto novo no Scratch.
  2. Criar uma variável chamada 'Entrada'.
  3. Criar outra variável chamada 'Impressao'.
  4. Criar um bloco personalizado chamado 'GerarImpressao'.
  5. Definir uma regra matemática simples para produzir um código fictício.
  6. Informar na tela que a regra é apenas uma simulação pedagógica.
  7. Perguntar uma palavra ao usuário.
  8. Calcular sua impressão com a função criada.
  9. Exibir a entrada e o código resultante.
  10. Executar novamente com a mesma entrada para verificar a repetição do resultado.
  11. Testar entradas diferentes.
  12. Criar uma seção chamada 'Comparar' para verificar se duas impressões são iguais.
  13. Adicionar um exemplo proposital de colisão para discutir suas limitações.
  14. Criar uma mensagem explicando que o projeto não deve ser usado para armazenar senhas reais.
  15. Salvar o laboratório e permitir que outra dupla experimente diferentes palavras.

Comentários

O projeto transforma palavras em códigos para demonstrar a ideia central de uma função hash. Ele não cria uma proteção verdadeira e não deve receber senhas reais. A criança aprende que segurança depende de algoritmos cuidadosamente projetados e não de qualquer conta matemática feita em casa. Na vida real, hash é útil porque permite comparar representações sem precisar tratar o valor original da mesma forma em todas as etapas.

A Oficina das Impressões Digitais

A turma experimentará uma regra de transformação inventada pelo professor para produzir uma 'impressão digital' de cada palavra. O objetivo é compreender a ideia de transformar e comparar, sem apresentar a brincadeira como uma implementação real de segurança.

Materiais Necessários

  • Cartões com palavras fictícias
  • Cartões com números para representar caracteres
  • Tabela de transformação simplificada preparada pelo professor
  • Envelopes para guardar as palavras originais
  • Fichas para registrar a palavra e sua impressão
  • Cartões de teste com palavras repetidas
  • Quadro branco
  • Lápis, borracha e lápis de cor
  • Calculadoras simples, quando disponíveis
  • Crachás de 'Gerador de Impressões' e 'Verificador'
  • Cartões de desafio
  • Uma caixa para representar o armazenamento do sistema

Passo a Passo da Execução

  1. Perguntar por que seria interessante que um sistema não deixasse uma senha escrita de forma legível em um papel.
  2. Apresentar a ideia de transformar uma entrada em uma representação diferente chamada hash.
  3. Explicar que uma função hash criptográfica possui propriedades específicas e que os exemplos da aula serão apenas modelos simplificados.
  4. Criar uma regra didática para transformar pequenas palavras em códigos.
  5. Aplicar a regra à mesma palavra duas vezes e verificar que o resultado permanece igual.
  6. Aplicar a regra a palavras diferentes e comparar os resultados.
  7. Introduzir um caso em que duas entradas diferentes produzam o mesmo código na atividade e explicar que isso é chamado de colisão.
  8. Mostrar por que uma regra muito simples seria inadequada para proteger senhas reais.
  9. Explicar que sistemas modernos usam algoritmos apropriados e medidas adicionais, como salt, para aumentar a proteção das credenciais.
  10. Reforçar que a criança nunca deve tentar criar seu próprio método para proteger senhas reais.
  11. Distribuir a folha de registro e pedir que as duplas realizem várias transformações.
  12. Fazer uma rodada em que o professor fornece somente os códigos e as equipes tentam identificar quais palavras poderiam ter produzido cada um.
  13. Discutir a diferença entre transformar um dado e criptografá-lo para depois recuperar o original.
  14. Relacionar o conceito a sistemas de login que precisam verificar se uma senha apresentada corresponde à credencial cadastrada.
  15. Encerrar reforçando que o exercício é uma representação educativa e não um algoritmo de segurança utilizável.

Conexão Computacional

Hash pode ser entendido como uma espécie de impressão digital calculada a partir de um dado. A mesma entrada, quando processada pela mesma função, produz o mesmo resultado. Uma função hash criptográfica é projetada para tornar muito difícil descobrir a entrada original apenas olhando o resultado e também para reduzir a possibilidade de duas entradas diferentes produzirem o mesmo valor, embora colisões sejam possíveis em termos matemáticos. Isso é diferente de criptografia usada para recuperar a mensagem original. Na vida real, sistemas responsáveis pelo armazenamento de senhas utilizam técnicas específicas; uma brincadeira de somar letras ou números não seria suficiente para proteger uma senha de verdade.