Por @Alvy

Cómo esconder mensajes de 45 caracteres en una baraja de naipes mezclada adecuadamente

Quién esté interesado en los códigos y la criptografía o el intrigante mundillo de las combinaciones y permutaciones encontrará interesante esta anotación del blog de Asher Falcon titulado Hiding messages in playing cards, donde explica sus disquisiciones acerca de cómo se podría usar la ordenación de los naipes de una baraja para esconder un mensaje.

Simplificando el tema, y descartando opciones poco óptimas como usar solo los colores, palos o números, lo importante es considerar que el número de permutaciones de las 52 cartas de la baraja es 52! (esto es, factorial de 52, osea: 52 × 51 × 50 × … 2 × 1). Esto son unos 8×1067 permutaciones distintas, que en binario serían unos ⌊log₂ (8×1067)⌋ = 225 bits. Usando códigos de 5 bits (esto es 32 combinaciones) da para un alfabeto de 26 caracteres; suficiente para esconder mensajes. Y a las letras también se le podrían añadir otros 6 códigos especiales como espacio, punto, coma, barra, interrogación o «final de mensaje».

Del dicho al hecho (en Python)

Asher ha llevado esto a un código de programación en Python que básicamente convierte el mensaje de texto en un número grande (llamado factorádico) que se puede descodificar nuevamente en los caracteres originales. Para que no todo sea tan obvio se puede añadir una clave, que cifra con un XOR (OR exclusivo) el texto en claro, así que sirve como «segunda capa» si acaso se necesita más seguridad.

El factorádico está muy relacionado con el código Lehmer que sirve para precisamente esto: numerar cada posible permutación de una secuencia.

Todo esto recuerda bastante a lo que el mismísimo Bruce Schneier hizo con Solitaire hace décadas, a petición del novelista Neal Stephenson para su famosa novela ciberpunk Criptononicón. En la versión de Asher el código y las condiciones son un poco diferentes (un baraja sin comodines en vez de una con comodines), pero ahí quedan ambas ideas y métodos. Hay quien dice que hay gente que usa varias barajas para guardar sus claves/palabras de carteras de bitcoin… aunque suena un poco arriesgado porque como alguien abra la caja y las desordene, ¡adiós claves!

Compartir en Flipboard Publicar