Prácticas antiguas con CrypTool

Anuncio
Prácticás SAD – Temá 5: Criptográfíá
Para la realización de estas prácticas, usaremos el programa CrypTool, que podéis descargar
desde: http://www.cryptool.org/
Cifrado del César
Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por
otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto. Ejemplo:
Texto original:
ABCDEFGHIJKLMNÑOPQRSTUVWXYZ
Texto codificado: GHIJKLMNÑOPQRSTUVWXYZABCDEF
1. Dado el siguiente texto codificado mediante el Cifrado del César (no se sabe cuánto es
el desplazamiento), descífralo manualmente explicando cómo lo has hecho (sin usar
CrypTool). Indica cuál es el desplazamiento que hemos utilizado para cifrar.
Ho sulphu hmhuflflr hv pxb idflo
2. Usa CrypTool para comprobar si lo has hecho correctamente. Para ello, crea un nuevo
documento (Archivo -> Nuevo). Escribe el texto codificado en el nuevo documento.
Después, vete a Análisis -> Cifrado Simétrico (clásico) -> Sólo Texto Cifrado -> César. Y
sigue las instrucciones.
3. Dado el siguiente texto codificado mediante el Cifrado del César, descífralo usando la
herramienta CrypTool. Para ello, usar la opción Cifrar/Descifrar -> Simétrico (clásico) ->
César, y ve probando a descifrar con diferentes claves (A, B, C, etc.) hasta que una de
ellas nos dé un texto legible (a lo sumo, serán 26 claves). Indica cuál es el
desplazamiento que hemos utilizado para cifrar.
Nu bnpdwmx nsnalrlrx nb dw yxlx vjb ujapx yjaj zdn wx bnj
cjw ojlru mn qjlna j vjwx
Cifrado por sustitución
En el cifrado por sustitución, sustituimos cada letra del alfabeto por otro carácter (en el
ejemplo, estamos sustituyéndolos por otras letras), pero sin seguir un orden concreto, como
en el Cifrado del César.
4. Usando las herramientas que nos proporciona CrypTool, descifra el siguiente texto:
Dpi bfrnpi tr oehabayap reoc tr Noctodb; cp ipdp dpi loxao
heoatp, iacp wfr dpi loxao qerqoeotp v boxeayotp. Rd jaijp
taiqoep dpi joi rmheoñpi, doi qaruoi v dpi yplrhri
zpdotperi. Lfxp hojxarc fco nrcrepio taiheaxfyapc tr
xfiyoqari, qrhoetpi, xrcnodoi, yplrhri, ochpeyloi,
riherddahoi, zrdoi tr rcocp, bfrchri rdbayoi, tfrctri
doteotperi v hefrcpi; hptpi ipxrexapi. Rd oehr tr Noctodb
qepnerioxo ypc dpi oñpi.
Para ello, usaremos las siguientes herramientas:
-
Análisis -> Herramientas para el Análisis -> Histograma. Nos proporcionará la
frecuencia con la que se repiten los caracteres en nuestro texto codificado, que
junto con la frecuencia de aparición de letras en nuestro idioma podremos usar
para localizar al menos las letras que más aparecen (no es tan directo como
debería ser debido a que es un texto pequeño, pero ya os comento que los cuatro
primeros en orden de frecuencia son los mismo en el texto y en el idioma español,
aunque en distinto orden).
http://es.wikipedia.org/wiki/Frecuencia_de_aparición_de_letras
-
Análisis -> Cifrado Simétrico (clásico) -> Análisis Manual -> Sustitución. Aquí
podremos ir substituyendo los caracteres y nos irá mostrando el resultado de la
sustitución. El mensaje de error que nos sale es debido a los signos de puntuación
y a la letra “ñ” (que no aparecen en el texto descifrado).
-
A partir de aquí, ya tendremos que ir buscando relaciones entre las letras en
palabras pequeñas, etc.
Escribe el texto descifrado y la clave que se ha usado para codificar (como en el
ejemplo del Cifrado del César).
5. Elige un texto (por ejemplo, de Wikiquotes o de cualquier libro que podéis encontrar
en internet). Debe tener un buen tamaño, al menos 300 caracteres. Quítale las tildes
para facilitar el cifrado. Ahora, aplícale un Cifrado del César y luego un Cifrado por
Sustitución. Intercambia el texto con un compañero y descifra el texto que te han
pasado (pregúntale la primera palabra para que sea un poco más fácil).
Indica: el texto original, la clave de Cifrado del César y la clave del Cifrado por
Sustitución, el texto cifrado, el compañero con el que has intercambiado el texto, el
texto que te han pasado y el texto que has descifrado.
Cifrado por bloques
Ahora, usaremos algoritmos de cifrado modernos, como DES.
6. Codificar un texto con el algoritmo DES y enviarlo por correo electrónico a un
compañero.
Pasos a seguir:
- Crea un nuevo documento en CrypTool y escribe un texto (no obsceno, a ser
posible).
- Codifica el texto mediante el algoritmo DES (CBC) usando como clave
0123456789ABCDEF.
- Como el resultado que nos da es binario y no texto, vamos a convertirlo a texto
mediante la codificación Base64 para poder enviarlo por email (se encuentra en
Procedimientos Individuales -> Herramientas -> Códigos).
- Enviar el texto en Base64 por email a un compañero (enviarme a mí una copia).
- Copiar el texto en Base64 que hemos recibido de otro compañero en un nuevo
documento.
- Decodificar de Base64 y luego decodificar con DES.
Indica el texto que has elegido, su versión codificada en Base64, el compañero con el
que has intercambiado el texto, el texto que has recibido en Base64 y el texto
descifrado.
7. Ahora que ya somos unos maestros de la encriptación, vamos a hacer algo más
complicado.
- Bájate de internet una foto (que no sea NSFW) de un tamaño no muy grande (2030KB ya está bastante bien).
- Ábrela con CrypTool (sí, deja abrir archivos binarios).
- Codifica los datos mediante DES (CBC) con la clave que tú elijas.
- Codifica el resultado mediante Base64.
- Envía los datos codificados por correo electrónico a un compañero (no te olvides
de enviar también la clave) (y envíame a mí una copia).
- Descodifica los datos que has recibido de tu compañero.
Como resultado del ejercicio, copia y pega las dos imágenes (la tuya que has enviado y
la que has recibido).
Cifrado Asimétrico
Para la realización de esta parte de las prácticas usaremos la herramienta GnuPG que viene de
serie con la mayoría de las distribuciones de Linux o usando la versión para Windows que
podéis encontrar en: http://www.gpg4win.org/
Como se hará todo en línea de comandos, ve copiando todas las órdenes que vayas usando en
un fichero de texto que luego me tendrás que subir.
8. Genera una pareja de llaves (privada y pública) con GnuPG que nos servirá para
codificar y firmar en el resto de ejercicios. Para ello, usa las instrucciones que se
encuentran en: http://www.gnupg.org/gph/es/manual.html
De las opciones de generación de claves, elige la que pone “RSA” y “RSA”, que nos
generará claves para firmar y también para encriptar.
Una vez generadas, comprueba que estén guardadas correctamente (usando --list-keys
y --list-secret-keys) y exporta la llave pública e intercambiala con al menos un
compañero (expórtala en formato ASCII para que su contenido sea más fácil de ver).
Importa la llave pública que hayas recibido de tu compañero.
Comprueba que se ha importado correctamente.
9. Encripta un fichero de texto e intercámbialo con tu compañero. Necesitarás su clave
pública para poder hacerlo (para que él lo pueda desencriptar con su llave privada).
Intercámbialo y desencripta el que él te mande (necesitarás escribir la contraseña que
protege tu llave privada). Comprueba que haya llegado bien.
Para comprobar que funciona igual de bien con ficheros binarios, encripta e
intercambia también una imagen (pequeña).
Guarda los ficheros originales, los encriptados, los que has recibido y los que has
desencriptado para entregármelos luego.
10. Firma un fichero de texto e intercámbialo con tu compañero. Vamos a utilizar primero
la opción --clearsign que nos da un fichero ASCII que contiene el documento y también
la firma. Comprueba el fichero que te ha mandado tu compañero con --verify.
Firma el mismo fichero de texto con la opción --sign e intercámbialo. Esto nos dará un
fichero binario que contiene el fichero original y la firma.
Firma el mismo fichero de texto con la opción --detach-sign. Esto nos dará un fichero
que sólo tiene la firma. Tendrás que intercambiar tanto el fichero original como el que
contiene la firma.
Por último, encripta y firma el fichero de texto (usando tanto --sign como --encrypt en
la misma orden). Esto nos permitirá que nadie pueda interceptar el mensaje (va
encriptado con la llave pública del destinatario y sólo él tiene la llave privada para
desencriptarlo) y que el receptor sepa que el mensaje ha llegado bien (porque va
firmado) y quién lo ha enviado (porque va firmado con la llave privada que sólo tiene
el emisor). Intercámbialo y comprueba que todo va bien.
Coge el fichero de texto con las órdenes que has usado en las prácticas 8, 9 y 10, los ficheros
de la práctica 9 (en una carpeta) y los de la 10 (en otra), comprímelos en .zip o .rar y súbelos.
Descargar