Proyecto de cifrado César

Brian, I added "initials part deux" as an ITIT on this page. See below. Is it too much for an ITIT? Should it be a TIF? I can't decide. If you like it, please add it to the solutions file and only then cut this comment. If you don't, please revise it or cut it. --MF, 7/4/20
En esta página, programarás un procedimiento de cifrado por turnos para cifrar/descifrar texto.

Las computadoras almacenan los caracteres del teclado (letras mayúsculas y minúsculas, signos de puntuación, espacios, dígitos, símbolos, etc.) como números llamados Unicode. Esta tabla muestra el Unicode para algunos de los caracteres del teclado:
Tabla de Unicode

El bloque unicode de reporta el número que se usa para un carácter en particular:
unicode de (a) reporta '97'
El bloque unicode como letra reporta el carácter que representa un número Unicode determinado:
Unicode (65) como letra que reporta 'A'

  1. Experimenta con los bloques unicode de y unicode como letra. Intenta cambiar una palabra a Unicode, dígaselo a un amigo y luego pídele que lo vuelva a convertir en una palabra.
  2. En el papel, usa un cifrado de desplazamiento para cifrar y descifrar un mensaje corto para tener una idea de cómo funciona este cifrado.
  3. Escribe un procedimiento de cifrado César que funcione para cualquier texto de entrada y cualquier valor de cambio.
  4. ¿Por qué vemos caracteres como = ? @ # ^ * { o ~ ?

    Puedes suponer con seguridad que desplazar cualquier conjunto de caracteres de texto a una distancia razonable dará como resultado un conjunto de caracteres imprimibles, que pueden incluir caracteres no alfanuméricos (ni letras ni dígitos).

    Por ejemplo, si usamos un turno de 4 para cifrar:

    La invasión de Normandía es el 6 de junio de 1944.

    se vuelve:

    Mrzewmsr$sj$Rsvqerh}$mw$sr$:$Nyri$5=88

    • ¿Qué carácter en el texto cifrado (la versión codificada) representa un espacio en el texto sin formato?
    • En este código, 1 se convierte en 5 y 4 se convierte en 8, mostrando claramente el cambio de 4. ¿En qué se convierte 9?

    ¿Qué sucede si al texto descifrado le faltan algunas letras?

    Si copias tu mensaje encriptado con un método que no sea copiar y pegar (por ejemplo, escribiéndolo a mano o en un teléfono), algunos caracteres pueden desaparecer de tu mensaje. Esto se debe a que algunos de los caracteres Unicode después del 126 son caracteres de impresión que simbolizan cosas como "eliminar". Estos caracteres no se mostrarán en Snap!, por lo que no puedes copiarlos a mano, pero si usas copiar y pegar, Snap! sabe que están ahí. En el ejercicio A de Llevándolo más lejos, puedes desarrollar un método de encriptación que evite este problema.

  5. Ahora prueba tu trabajo. Acuerda con tu compañero un valor de cambio para el cifrado. Luego usa tu programa para encriptar un mensaje secreto y enviarlo por correo electrónico a tu compañero. Luego, deje que tu compañero descifre tu mensaje usando el programa para invertir el cambio.
  6. Puedes extraer los mensajes cifrados de la interfaz de Snap! haciendo clic derecho en la variable que contiene el mensaje cifrado y seleccionando la opción "Exportar" que descargará un archivo de texto a su computadora que luego podrá copiar/pegar.
    opción de exportación
  1. Mejora tu bloque iniciales de tu proyecto U3L2-ListaDeContactos para que encuentre las iniciales de una persona con un nombre que contenga un guion como Alexandria Ocasio-Cortez.
    iniciales de (Alexandria Ocasio-Cortez) reporta AOC
    Haz clic para obtener algunos consejos sobre cómo mejorar tu bloque de iniciales.
    Hay varias formas de resolver este problema. Las dos formas siguientes requieren funciones de orden superior. (Puedes revisar las funciones de orden superior mapa, mantener y combinar en Unidad 3 Laboratorio 2 Página 5: Transformar cada elemento de la lista.)
    • Una forma es utilizar el bloque unicode para seleccionar todas las letras mayúsculas en lugar de dividir por saltos de palabra.
    • Otra forma es usar el bloque separar para comprobar si hay guiones, así como para comprobar si hay espacios entre palabras.
  1. Implementa una versión del cifrado César que no solo cambie los caracteres, sino que también los envuelva alrededor del alfabeto cuando se alcance el final del alfabeto. Es posible que necesites restringir tu alfabeto al conjunto de caracteres imprimibles que se muestra arriba en la tabla Unicode.
  2. Investiga un poco sobre otros tipos de cifrados utilizados históricamente. Lee especialmente sobre el cifrado Vigenere, que se usó ampliamente para comunicar información confidencial durante la Segunda Guerra Mundial.
  3. Crea tu propio esquema de cifrado/descifrado e impleméntelo en Snap!.