Supongamos que tenemos una matriz invertible A (la matriz de
codificación) y un texto que queremos cifrar.
Transformamos el texto a una secuencia de números, dando a
cada carácter un valor numérico único; a continuación, formamos una matriz
mediante la agrupación de los números en columnas de acuerdo al orden de la
matriz A (la cantidad de elementos en cada columna debe ser igual al orden de
la matriz). Llamemos a esta matriz B (la matriz plana). Multipliquemos la
matriz A por la matriz B:
C = A•B
La matriz C es la matriz cifrada.
Para descifrar el mensaje, sólo debe multiplicarse (A)-1•C,
donde (A)-1 es la matriz inversa de A.
Nótese que:
(A)-1•C = (A)-1•A•B = I•B = B
El texto plano original se puede hallar nuevamente tomando
la matriz resultante y uniendo sus vectores columna, de manera que formen una
secuencia, para luego convertir los números en los caracteres respectivos.
En muchos artículos, los autores utilizan solamente las 26
letras del alfabeto Inglés, a veces 29 si se incluye el espacio, el signo de
interrogación y el punto. En estos casos una sencilla asignación de las letras
y símbolos adicionales a los primeros números enteros, y el uso de la
aritmética modular, permite con el uso de este método, obtener un mensaje
cifrado compuesto por los mismos números enteros, que se pueden asignar
nuevamente a sus correspondientes letras y símbolos.
En este post no vamos a hacer ninguna consideración sobre
cuales letras o símbolos se pueden utilizar, de esta manera cualquier texto,
sin importar idiomas o símbolos, se pueden cifrar utilizando este método. Para
transformar caracteres en números, vamos a utilizar el valor Unicode del
carácter.
La matriz cifrada C, se puede mostrar como una secuencia de
números, uniendo sus vectores columna, de la misma manera que hay que hacer
para obtener el texto plano original; pero no se pueden convertir los números a
letras utilizando el método anterior, debido a que los números resultantes
pueden oscilar en un conjunto numérico más amplio. Si lo prefiere, se puede
transformar en un texto asociando los dígitos, el signo de menos y el separador
de listas a diferentes caracteres. Es este ejemplo utilizamos sencillas
funciones de mapeo para hacer eso.
No hay comentarios:
Publicar un comentario