APLICACIÓN CON LOS MÉTODOS
CLÁSICOS DE ENCRIPTACIÓN
(POLYBIOS Y STREAM)
Encriptación
Es el proceso mediante el cual cierta información o texto sin formato es cifrado de
forma que el resultado sea ilegible a menos que se conozcan los datos necesarios
para su interpretación.
Es una medida de seguridad utilizada para que al momento de almacenar o
transmitir información sensible ésta no pueda ser obtenida con facilidad por
terceros.
Opcionalmente puede existir además un proceso de desencriptación a través del
cual la información puede ser interpretada de nuevo a su estado original, aunque
existen métodos de encriptación que no pueden ser revertidos.
El término encriptación es traducción literal del inglés y no existe en el idioma
español. La forma más correcta de utilizar este término sería cifrado.
Criptografía clásica
El cifrado de textos es una actividad que ha sido ampliamente usada a lo largo de la
historia, sobre todo en el campo militar y en aquellos otros en los que es necesario
enviar mensajes con información confidencial y sensible a través de medios no
seguros.
Aunque en cierta forma el sistema de jeroglíficos egipcio puede considerarse ya
una forma de criptografía (sólo podían ser entendidos por personas con
conocimientos suficientes), el primer sistema criptográfico como tal conocido de
debe a Julio Cesar.
EL CIFRADOR DE POLYBIOS Polybios ideo un sistema de cifrado por sustitución que consistía en asignar a cada
letra del alfabeto un par de letras.
El sistema establece una matriz de dos dimensiones de 5x5 en la que cada letra del
alfabeto se representa por sus coordenadas dentro de la matriz. Esta matriz deberá
ser conocida tanto por el emisor como por el receptor del mensaje. Es el Cifrador por sustitución de caracteres más antiguo que se conoce (siglo II
a.C.) pero duplica el tamaño. Este cifrado fue realizado en la antigua Grecia, usaba
el alfabeto Griego, pero para su utilidad ha sido adaptado a otros lenguajes.
Existen dos tipos de matrices que se pueden utilizar en el Cifrador de
Polybios, la primera opción es colocando en sus dimensiones vertical y
horizontal letras de A-E, la segunda opción es colocando en sus dimensiones
vertical y horizontal letras de 1-5. Sin embargo, la manera adecuada de
utilizar este método es con la segunda opción, ya que si la hiciéramos con la
primera, el método se parecería al método Playfair.
La matriz debe de ser cuadrada por lo que se trata de ubicar en la matriz
todas las letras del abecedario, según el lenguaje que se esté utilizando.
Un gran problema de este tipo de cifrado es que el tamaño del mensaje se
duplica, lo cual no siempre es deseable.
ESPECIFICACIONES Y MODIFICACIONES REALIZADAS AL MÉTODO
La matriz que utilizaremos para el desarrollo de nuestra aplicación es una
matriz con dimensión 5x5, la cual en el encabezado vertical y horizontal se
colocarán números, los mismos que representarán a los caracteres que
serán parte del texto cifrado.
En el encabezado vertical se colocarán números impares (1, 3, 5, 7, 9), en el
encabezado horizontal se colocarán números del 1-5.
El lenguaje que utilizaremos será el basado en el alfabeto español, que
contiene de A-Z, pero si colocamos todas las letras que correspondes a
dicho alfabeto no nos daría una matriz cuadrada, por lo que toda letra que
sea “j”, será sustituida por la “i”. En el caso de la letra “ñ”, será sustituida por
la “n”. De esta manera lograremos tener una matriz cuadrada con 25
caracteres.
Matriz a utilizar en el desarrollo de la aplicación:
1 2 3 4 5
1 a b c d E
3 f g h i k
5 l m n o p
7 q r s t u
9 v w x y z
Como se puede observar en esta matriz ya no se colocan ni la letra “j” ni la
“ñ”. Puesto que se explicó anteriormente que esas letras tendrán su
correspondiente sustitución.
El método, consiste en corresponder la letra que se desea ocultar con otras
dos según la fila y la columna de la matriz a la que pertenece. Por ejemplo, la
letra “a” sería “11”, la “s” sería “73”.
Cuando vamos a Encriptar un texto que contenga tanto letras como
números, el programa recibirá todo el texto plano (texto a Encriptar), pero
solo encriptará todos aquellos caracteres que sean letras, además obviará
los espacios en blanco.
Cuando vamos a Desencriptar un texto Cifrado debe contener solo
números, el programa recibirá todo el texto Cifrado (texto a Desencriptar),
pero solo Desencriptará todos aquellos caracteres que sean números,
cuando se ingrese algún texto con letras se presentara un mensaje de error
“texto ilegible”, además obviará los espacios en blanco.
MODELO
VARIABLES
x= Encabezado Horizontal (1, 2, 3, 4, 5)
y= Encabezado Vertical (1, 3, 5, 7, 9)
A= (a, b, c, d, e, f, g, h, i, k, l ,m, n, o, p, q, r, s, t, u, v, x, y, z)
Z=xy
xy=A
X Y Texto Cifrado Texto Descifrado
Texto Plano A A Xy A
DIAGRAMA DE SUCESOS
ENCRIPTAR
DESENCRIPTAR
11
Texto Plano Cifrar Texto CiTfrado
POLYBIOS
a
a [x, y]
Texto Cifrado Descifrar Texto Plano
POLYBIOS
11
11 [x, y] a
EL ALGORITMO STREAM Este algoritmo se basa en la suma de valores de los caracteres del texto plano y de
la clave. De esta forma el valor del primer carácter del texto cifrado es el de la suma
del valor del primer carácter del texto plano y el del primero de la clave, el valor
del segundo carácter del texto cifrado es el de la suma del segundo carácter del
texto plano y el del segundo de la clave, etc...
Texto plano: E S T O E S U N S E C R E T ...
Valor: 5 20 21 16 5 20 22 14 20 5 3 19 5 21 ...
Clave: P U E R T A P U E R T A P U ...
Valor 17 22 5 19 21 1 17 22 5 19 21 1 17 22 ...
Suma: 22 42 26 35 26 27 39 36 25 24 24 20 22 43 ...
Módulo (27): 22 15 26 8 26 27 12 9 25 24 24 20 22 16 ...
Texto cifrado: U Ñ Y H Y Z L I X W W S U O ...
Utilizaremos un módulo, de forma que cuando un valor excede el módulo se
lo restamos.
El valor del módulo depende del tipo de lenguaje que estemos utilizando, en
nuestro caso es el Lenguaje Español.
Con una clave aleatoria y tan larga como el propio texto plano este
algoritmo es, en teoría y en la práctica, inviolable, pues cualquier texto
plano de la misma longitud es un posible candidato.
Una forma práctica de generar una clave tan larga como se desee es recurrir
a un libro que sería nuestra clave.
ESPECIFICACIONES Y MODIFICACIONES REALIZADAS AL MÉTODO
Al momento de ingresar un texto plano, el usuario ingresa con espacios, sin
embargo todos los caracteres se tomarán en cuenta como un solo texto.
El módulo según nuestro alfabeto español contiene 27 letras. Valor que será
restado en caso de que la suma del valor de los caracteres tanto del texto
plano como de la clave excedan el valor de dicho módulo.
La clave que se utilice en la aplicación puede ser elegida por el usuario, el
programa compara si el texto a Encriptar es menor a clave, en caso de ser
cierto la clave se adapta al texto reduciéndola. Si el texto a Encriptar es
mayor a clave, entonces la clave se adapta al texto duplicándola o
incrementando caracteres de la propia clave, hasta que el tamaño de los
caracteres del texto plano y de la clave sean iguales.
Cuando vamos a Encriptar un texto que contenga tanto letras como
números, el programa recibirá todo el texto plano (texto a Encriptar), pero
solo encriptará todos aquellos caracteres que sean letras, además obviará
los espacios en blanco.
Cuando vamos a Desencriptar un texto Cifrado debe contener solo números,
el programa recibirá todo el texto Cifrado (texto a Desencriptar), pero solo
Desencriptará todos aquellos caracteres que sean números, además obviará
los espacios en blanco.
MODELO
VARIABLES
x= Valor Texto Plano (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13…, 27)
y=Valor Clave (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13…, 27)
z= Suma
A= (a, b, c, d, e, f, g, h, i, k, l ,m, n, o, p, q, r, s, t, u, v, x, y, z)
Z=x+y
x+y=A
X Y Z Z>27 Z<27 Texto
Cifrado Descifrado (z+y)>27 (z+y)<27
Texto
Descifrado
Texto
Plano A A x+y Z--27 Z Z=A Z+Y (z+y)--27 (z+y) A
DIAGRAMA DE SUCESOS
ENCRIPTAR
DESENCRIPTAR
Clave
A
Texto Plano Cifrar Texto Cifrado
STREAM
x
x=1; y=2
y
x+y
A
y
Texto Cifrado Descifrar Texto Plano
STREAM
Z+Y
x
Top Related