CRIPTOSISTEMAS CLÁSICOS
Enviado por smilodon • 13 de Diciembre de 2011 • 4.632 Palabras (19 Páginas) • 477 Visitas
CRIPTOSISTEMAS CLÁSICOS
La palabra código alude a un tipo muy particular de comunicación secreta, que ha ido cayendo en desuso a lo largo de los siglos. En un código, una palabra o una frase es reemplazada por una palabra, un número o un símbolo. Por ejemplo, los agentes secretos tienen nombres codificados, palabras que se utilizan en vez de sus verdaderos nombres para enmascarar su identidad. La alternativa al código es la cifra, una técnica que funciona a un nivel más básico, reemplazando letras en vez de palabras enteras. Por ejemplo, cada letra de una frase podría reemplazarse por la siguiente letra del alfabeto.
Tipos de Cifrados Clásicos
Se puede hacer una gran división de los cifrados según el tipo de operación que se realiza en el cifrado. Dada la característica finita del alfabeto y la hipótesis de no variación de la longitud del texto, existen dos opciones para el cifrado. La primera, llamada sustitución, consiste en sustituir las unidades del texto original por otras; la segunda llamada transposición, consiste en crear el texto cifrado simplemente desordenando las unidades que forman el texto original. Los algoritmos de sustitución y los códigos, preservan el orden de los símbolos en claro, pero los disfrazan. A diferencia de éstos, los algoritmos de transposición, reordenan las letras pero no las disfrazan.
Ejemplo de transposición:
TU SECRETO ES TU PRISIONERO; SI LO SUELTAS, TÚ ERES SU PRISIONERO
Ejemplo de sustitución:
ENCONTRÉMONOS A MEDIANOCHE
A D H I K M O R S U W Y Z
V X B G J C Q L N E F P T
USMQZLUCQSQN V CUXGVSQMBU
Este es un ejemplo ilustrativo claro de una función matemática; a cada letra del alfabeto llano (elemento del dominio) le hace corresponder una letra del alfabeto cifrado (elemento del rango o conjunto imagen de la función). Por otra parte, para el proceso de descifrado es necesario contar con que la función sea biyectiva para poder ser inversible. Los sistemas criptográficos donde la clave de descifrado se pueden deducir de la clave de cifrado se llaman simétricos o de clave secreta.
Los criptógrafos a menudo piensan en términos de alfabeto llano o claro, el alfabeto que se usa para el mensaje original, y alfabeto cifrado, las letras que sustituyen a las del alfabeto llano.
Cada una de las cifras puede ser considerada en términos de un método de codificación general, conocido como el algoritmo, y una clave, que especifica los detalles exactos de una codificación particular. En los casos siguientes, el algoritmo conlleva sustituir cada letra del alfabeto llano por una letra del alfabeto cifrado y el alfabeto cifrado puede consistir de cualquier combinación del alfabeto llano.
El algoritmo de transposición más común es el de tipo columnar; la clave del cifrado debe ser una palabra que no tenga ninguna letra repetida, en el ejemplo que se presenta a continuación la clave es la palabra MEGABUCK. El propósito de la clave es el de numerar las diferentes columnas que se formarán, de forma que la columna 1 es aquella que queda bajo la letra de la clave más próxima al principio del alfabeto y así sucesivamente. El texto en claro se escribe debajo de la clave en renglones horizontales; el texto cifrado se lee por columnas, comenzando por la columna cuya letra clave tiene el menor valor.
Texto llano: please transfer one million dollars to my
Clave de cifrado: M E G A B U C K
M E G A B U C K
7 4 5 1 2 8 3 6
p l e a s e t r
a n s f e r o n
e m i l l i o n
d o l l a r s t
o m y a b c d e
Texto cifrado: afllaselabtoosdlnmomesilyrnntepaedoerirc
Para desbaratar un cifrador de transposición, el criptoanalista debe estar primero enterado de que se trata efectivamente de un cifrado de transposición. Esto puede comprobarse de una forma relativamente sencilla, observando la frecuencia de las letras e, t, a, o, i, n, ... ya que en los cifrados de este tipo se cambia de lugar las letras, pero no se cambian las letras propiamente, por lo que si la frecuencia de aparición de las letras se corresponde con la observada para el lenguaje natural, es decir, la e es la que más aparece, ... entonces se podría afirmar con mucha seguridad que el cifrador es de transposición y no de sustitución.
El siguiente paso consistiría en determinar cuál es el número de columnas. En muchos casos una palabra o frase probable, puede llegar a adivinarse a partir del contexto del mensaje. Si el criptoanalista sabe, o supone que una determinada palabra o frase está contenida en el mensaje, entonces no le costará mucho esfuerzo determinar el número de columnas.
El último paso consistiría en ordenar las columnas.
Cifrado de Cesar
El algoritmo de César, llamado así porque es el que empleaba Julio César para enviar mensajes secretos, es uno de los algoritmos criptográficos más simples. Es un algoritmo de sustitución que consiste en sumar 3 al número de orden de cada letra. De esta forma a la A le corresponde la D, a la B la E, y así sucesivamente. Si asignamos a cada letra un número (A = 0, B = 1. . . ), y consideramos un alfabeto de 27 letras, la transformación criptográfica sería:
y = T3(x) = (x + 3) mod 27
Obsérvese que este algoritmo ni siquiera posee clave, puesto que la transformación siempre es la misma. Obviamente, para descifrar basta con restar 3 al número de orden de las letras del criptograma. (o en términos de funciones inversas: T3-1(x) = (x – 3) mod 27)
NOTA IMPORTANTE: La elección del tamaño del alfabeto es una decisión que tiene implicaciones. En la práctica es conveniente contar con un alfabeto con un número primo de letras.
A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
vamos a cifrar el siguiente mensaje:
Texto llano: ZAPATO
Podemos hacerlo manualmente ó utilizado la fórmula anteriormente dada:
1. Reemplazar x por el valor de la primera letra, en este caso Z equivale a 26.
2. Realizar la operación indicada:
T3(Z) = (26 + 3) mod 27 = 2 = C
3. Realizar la operación con las letras restantes.
Texto cifrado: CDSDWR
El sistema anterior se generaliza de forma evidente a Tn(x) = (x + n) mod 27
Cifrado Afín
Es el caso general del algoritmo de César. Su transformación sería:
T(a,b) (x) = (ax + b) mod N
siendo a y b dos números enteros menores que el cardinal N del alfabeto, y cumpliendo que mcd(a, N) = 1. La clave de cifrado k viene entonces
...