Coffee bytes

Apuntes de desarrollo web con GNU/Linux, Python y Javascript

Aprender Python con criptografía reseña de Cracking Codes with Python

El miércoles, 15 de julio de 2020

por Eduardo Zepeda

Tiempo de lectura: 3 minutos

¿A quién no han intentado convencer de invertir en un marketing multi nivel de Bitcoin? A mi sí, pero ojalá a ti nunca te pase. Gracias a Bitcoin, la criptografía está en boca de todos últimamente, sobre todo en el discurso de vendedores sin escrúpulos, pero la criptografía no es reciente, tiene siglos utilizándose; la programación y el código solo la volvieron mucho más rápida y eficiente. La primera vez que leí sobre criptografía fue en la novela Criptonomicón, donde ya se barajaba la idea de las criptomonedas desde mucho antes de la aparición de Bitcoin. Hoy vengo a hablarte de Cracking Codes with Python, un libro que usa la criptografía para explicar Python. Este libro te enseña Python básico desde cero mientras das un repaso de la criptografía a través de la historia, con todo y Alan Turing incluido.

Si no tienes ni idea de que es la criptografía puedes tomar esta definición bastante simple: la criptografía es la práctica de crear y entender códigos que mantienen la información en secreto. Muy al estilo de las películas «Una mente brillante», «El código enigma» (The imitation game) o del ya mencionado Criptonomicón.

Aprender python con criptografía

¿Códigos con información secreta? ¿Cómo mensajes secretos? Sí, mensajes que si alguien leyera no podría saber que significan. Mira estos ejemplos, ¿ya sabes cual es el mensaje que oculta cada uno?

# Cifrado César
Ujsiyru bq gqbqriq kfcqku ud bfj sfcudkqiyfj jy gltyjku tujsyviqi ub kuñkf

El de arriba es muy sencillo de descifrar. Este es más complicado aún pero pan comido para cualquier computadora moderna. Cada texto se creó usando un diferente método de cifrado.

# Cifrado Vigenère
Mbza btx cj i yomncm oom gfzr ihggtvitnvl gnth kpr vkymqbal iem. Culn kpr qxs zv gnx wfuzkgnj.

En el libro del que vengo a platicarte hoy el autor te explica diferentes métodos de cifrado que han sido usados a lo largo de la historia, tales como el cifrado César, Vigenère, transposición, transformación afín, cuadernos de un solo uso o el famoso y actualmente usado cifrado RSA. El autor te mostrará como usar Python para crear mensajes cifrados y, una vez creados, te enseñará a descifrarlos por fuerza bruta, análisis léxico y otros métodos más sofisticados.

Cracking Codes with Python parte del supuesto de que no sabes absolutamente nada de Python, usará la criptografía para enseñarte lo básico sobre cadenas de texto, listas, diccionarios, funciones, conjuntos, así como sus respectivos métodos. Esto hace que la introducción al lenguaje sea mucho más amena, pues no es un repaso a la documentación, sino una aplicación completamente práctica. Sin embargo, debido a que el libro se centra únicamente en la parte criptográfica, no verás nada interfaces gráficas, web scraping, ni creación de API, ni librerías externas de Python (salvo pyperclip), ni ninguna otra de las aplicaciones modernas del lenguaje.

Este libro se encuentra completamente gratis para que lo leas completo, para leerlo entra en la página web oficial del autor.

Mi opinión

En mi opinión Cracking Codes with Python es un material bueno si se cumple alguno de los siguientes supuestos:

  • Quieres aprender lo básico de Python
  • Deseas conocer la historia de la criptografía
  • Eres un entusiasta de la historia y la tecnología

Por otro lado, independientemente de lo anterior, te recomiendo leer el capítulo del cifrado RSA pues considero que el funcionamiento de llaves públicas y privadas es algo que toda persona que se dedique al desarrollo web debería conocer.

Conocimientos previos recomendados: Matemáticas básicas
Recomendado para leerlo: 6/10
Idiomas: Inglés

Entra en mi entrada sobre inmersión en Python para leer sobre otro libro genial para aprender Python desde cero.

¿Quieres aprender más?

Sígueme en Twitter y te aviso cuando tenga nuevo contenido disponible. ¡Es gratis!

¿Te pareció útil esta información?

Recibe más contenido como este en tu correo electrónico. Suscríbete, te toma unos segundos, es gratis, y puedes cancelar cuando quieras

* Campo obligatorio