Vistas de página en total

domingo, 18 de diciembre de 2011

Un mensaje cifrado

http://www.elpais.com/videos/sociedad/mensaje/cifrado/despedida/elpepusoc/20111215elpepusoc_1/Ves/

Queremos transmitir un mensaje secreto. Para eso vamos a transformar un texto, que está escrito en el alfabeto castellano de 27 letras, de la A a la Z (incluyendo Ñ y W), en otro texto que se escribe usando solo 9 símbolos: los números del 1 al 9. Veamos como lo hacemos y lo ilustraremos con dos ejemplos.
Primero numeramos las letras por orden del 0 al 26, A=0, B=1, C=2, D=3,..., N=13, Ñ=14,..., W=23, X=24, Y=25, Z=26. Por ejemplo:
HOLA-> 7,15,11,0
PEDRO->16,4,3,18,15
A continuación escribimos cada uno de esos números como un número de tres cifras en base 3. Recordemos lo que esto quiere decir: Los números los escribimos normalmente en base 10, usando unidades (1=10^0), decenas (10=10^1), centenas (100=10^2), etc. Así, 3418 representa el número 3x10^3+4x10^2+1x10+8. Para escribir en base 3 usamos potencias de 3, y sólo necesitamos las cifras 0, 1 y 2. Por ejemplo, la expresión 212 en base 3 representa la cantidad 2x3^2+1x3+2, que en base 10 se escribiría como 23.
Nuestras letras quedarán entonces representadas por A=000, B=001, C=002, D=010, ..., N=111, Ñ= 112,..., W=212, X=220, Y=221, Z=222. Siguiendo con nuestros ejemplos:
HOLA-> 7,15,11,0 -> 021120102000
PEDRO->16,4,3,18,15 -> 121011010200120
Obsérvese que hemos escrito 3 cifras por cada número (no hemos quitado los ceros a la izquierda) y, también, que hemos escrito todos los números seguidos, sin las comas que los separaban antes. Ahora viene la parte secreta. Haciendo algo que no os vamos a decir, porque descubrirlo es precisamente el desafío, transformamos finalmente nuestros textos en otros escritos usando sólo los números del 1 al 9. En los ejemplos:
HOLA-> 7,15,11,0 -> 021120102000 -> 357471
PEDRO->16,4,3,18,15 -> 121011010200120 -> 64523161
El desafío consiste en leer el siguiente mensaje, que ha sido cifrado usando el procedimiento que hemos descrito, incluida la parte secreta:
47175413325413337313226277154179412371521522771

El primer paso es tal como se cuenta codificar en base 3 las letras que al considerarse un conjunto de 27 quedan tres dígitos ternarios por cada una. Si a continuación se dice que se utilizan los dígitos del 1 al 9 o sea base 9, tenemos que dos dígitos ternarios se convierten en uno de base 9. Ello por ser 9 potencia de 3. Es como pasar de binario a base 4, 8 o 16. Dos dígitos binarios se convierten en 1 en base 4, tres binarios en 1 en octal, y cuatro binarios en 1 en hexadecimal.
Ya está resuelto. salvo que no se usa el cero y por tanto sumamos 1 a cada valor.


Al descifrar restamos 1 a cada valor y tenemos:
47175413325413337313226277154179412371521522771
36064302214302226202115166043068301260410411660
Ahora lo pasamos a ternario dígito a dígito:
1020002011100002020111100002020220020002010112012020001110002022100001022000110100110101202000
102 000 201 110 000 202 011 110 000 202 022 002 000 201 011 201 202 000 111 000 202 210 000 102 200 011 010 011 010 120 200 0

Asignamos a cada letra un valor numérico en orden
000 A
001 B
002 C
010 D
011 E
012 F
020 G
021 H
022 I
100 J
101 K
102 L
110 M

111 N
112 Ñ
120 O
121 P
122 Q
200 R
201 S
202 T
210 U
211 V
212 W
220 X
221 Y
222 Z

LASMATEMATICASESTANATUALREDEDOR

Si el mensaje tiene N letras hará falta C cifras = Parte entera de (N * 3 /2      +     0.5)
Si hay C cifras el mensaje contiene N letras = Parte entera de ( C *  2 / 3)

No hay comentarios:

Publicar un comentario