Cifrados clasicos y modernos

52
Leonardo Mayorga v Cifrados clásicos: Playfair Solitario Cifrados moderno: rc4

Transcript of Cifrados clasicos y modernos

Page 1: Cifrados clasicos y modernos

Leonardo Mayorga v

Cifrados clásicos:PlayfairSolitario

Cifrados moderno:rc4

Page 2: Cifrados clasicos y modernos

CIFRADO DE PLAYFAIREl cifrado de Playfair se basa en un algoritmo desarrollado por Charles Wheatstone en 1854, es un ejemplo de sustitución donde un par de letras de un texto sin codificar se convierten en otro par distinto

Cifrado de un texto

Reglas para cifrar 2 caracteres m1 m2:

1. Si m1 y m2 de la misma fila, coger c1 y c2 de su derecha (circularmente)

2. Si m1 y m2 de la misma columna, coger c1 y c2 de debajo (circularmente)

3. Si m1 y m2 de distintas filas y columnas, coger c1 y c2 de diagonal opuesta

4. Si m1 = m2, insertar carácter sin significado entre m1 y m2 para evitar su repetición, después aplicar reglas 1-3

Page 3: Cifrados clasicos y modernos

Proceso de cifrado

Creación de la matriz de cifrado

En esta sustitución digrámica la clave viene dada por una matriz de cifrado de 5x5 caracteres (sin las letras J ni Ñ, en el caso de la j puede ser cualquier letra, solo tiene que se especificado de antemano que letra es excluida, se ase esto para poder ajustar la matriz) aunque puede ser de 6 x 6, con j y números incluidos . Para empezar, colocamos en la primera fila de la matriz la palabra clave sin letras repetidas.

Ejemplo:

Clave: NORIA

Matriz de cifrado resultante:

N O R I A

B C D E F

G H K L M

P Q S T U

V W X Y z

Page 4: Cifrados clasicos y modernos

Si el número de letras es impar, añadir una sin significado al final del texto

Por lo tanto, si tenemos p.ej. este texto en claro: AT AQ UE CE RO HO RA SX (la X la ponemos al final porque al ser el texto de número de letras impar, colocamos allí una letra sin significado para rellenar y volver a la paridad). También podrían ponerse letras sin significado al final de cada palabra para evitar confusiones o hacer más claro el texto resultante.

Criptograma resultante: IU OU TF DF IR QC IN XR

Page 5: Cifrados clasicos y modernos

CIFRADO "SOLITARIO"• Es un algoritmo de cifrado para ser usado por gente que no

puede tener acceso a ordenadores, fue desarrollado por Bruce Schneier (nacido el 15 de enero de 1963) es un criptógrafo, experto en seguridad informática, y escritor. Es el autor de diversos libros de seguridad informática y criptografía, y es el fundador y oficial jefe tecnológico de Counterpane Internet Security

• Solitario obtiene su seguridad de la aleatoriedad inherente a las cartas bien barajadas con 2.31*10^71 o 6.5531569919989807613739606270871e+96 posibles ordenamientos de la baraja. Manipulando la baraja, un comunicante puede crear una cadena de letras "aleatorias" que luego combina con su mensaje. Por supuesto Solitario puede ser simulado con un ordenador, pero está diseñado para ser utilizado a mano.

Page 6: Cifrados clasicos y modernos

BARAJA DE CARTAS

Page 7: Cifrados clasicos y modernos

• Solitario puede parecer "low-tech", pero se pretende que su seguridad sea "high-tech". Solitario fue diseñado para que fuera seguro incluso contra adversarios militares bien financiados, con los ordenadores más potentes y los criptoanalistas más inteligentes. Por supuesto, no existe ninguna garantía de que alguien encuentre un ataque contra Solitario, pero el algoritmo es ciertamente mejor que cualquier otro cifrado de lápiz y papel que haya visto nunca.

• No es rápido, no obstante. El cifrar o descifrar un mensaje razonablemente largo puede llevar una tarde.

Page 8: Cifrados clasicos y modernos

Cifrar con Solitario

• Solitario es un cifrado "stream", en modo "output-feedback" (salida- retroalimentación). Algunas veces se les llama generadores de claves ("Key-Generator", KG en la jerga militar de EE.UU.). La idea básica es que Solitario genera una ristra de números, llamada "keystream" (ristra o secuencia de clave), entre 1 y 26. Para cifrar, se genera una ristra de longitud igual al texto original. Seguidamente se suman, módulo 26, letra a letra al texto original, para crear el texto cifrado. Para descifrar, se genera la misma ristra y se resta, módulo 26, del texto cifrado

Page 9: Cifrados clasicos y modernos

• Por ejemplo, para "DO NOT USE PC":

• Divide el mensaje original en grupos de cinco letras (No hay nada mágico respecto a los grupos de cinco letras, es sólo tradición). Usa "X" para completar el último grupo. Así, si el mensaje es "DO NOT USE PC", el texto se transformará en:

• DONOT USEPC

• Usa Solitario para generar una ristra de letras (los detalles se dan más tarde). Supongamos que son:

• KDWUP ONOWT

Page 10: Cifrados clasicos y modernos

• Convertimos el mensaje original de letras a números, A=1, B=2, etc:

• 4 15 14 15 20 21 19 5 16 3

• Convertimos la ristra de Solitario de forma similar: • 11 4 23 21 16 15 14 15 23 20

• Sumamos los números de mensaje original con los correspondientes de la ristra Solitario, módulo 26. Es decir, si suman más de 26, restamos 26 de resultado. Por ejemplo, 1+1=2, 26+1=27, y 27-26=1, así que 26+1=1.

• 15 19 11 10 10 10 7 20 13 23

• Convertimos los números de nuevo a letras: • OSKJJ JGTMW

Page 11: Cifrados clasicos y modernos

Descifrar con Solitario

• La idea básica consiste en generar la misma ristra, y restarla del texto cifrado.

• Toma el mensaje cifrado y divídelo en grupos de cinco letras (ya debería estar en ese formato).

• OSKJJ JGTMW

• Usa Solitario para generar la ristra. Si el receptor usa la misma clave que el transmisor, la ristra será la misma.

• KDWUP ONOWT

Page 12: Cifrados clasicos y modernos

• Convierte el mensaje cifrado a números: • 15 19 11 10 10 10 7 20 13 23

• Convierte la ristra de forma similar: • 11 4 23 21 16 15 14 15 23 20

• Resta a cada número del texto cifrado el número correspondiente de la ristra, módulo 26: for ejempo, 22-1=21, 1-22=5. Es fácil. Si el primer número es menor o igual que el segundo, sumamos 26 al primer número antes de restar. Así, 1-22 se convierte en 27-22=5.

• 4 15 14 15 20 21 19 5 16 3

Page 13: Cifrados clasicos y modernos

• Convierte los números a letras:

• DONOT USEPC

• Como puedes ver, descifrar es igual que cifrar, salvo que al mensaje cifrado se le resta la ristra obtenida con Solitario.

Page 14: Cifrados clasicos y modernos

Generar las letras de la secuencia de clave• Solitario genera la ristra utilizando una baraja de cartas.

Puedes pensar en una baraja de 54 cartas (no olvides los dos comodines) como una permutación de 54 elementos [El texto original en inglés se refiere, evidentemente, a una baraja de póker. N. del T.].

• Para utilizar Solitario, se necesita una baraja con las 52 cartas y los dos comodines. Llámalo a uno comodín A y al otro comodín B.

Page 15: Cifrados clasicos y modernos

1. Encuentra el comodín A. Intercámbialo con la carta que tiene debajo. Si el comodín está al final de la baraja, ponlo debajo de la primera carta.

2. Encuentra el comodín B. Muévelo bajo la carta que está debajo de la que tiene debajo. Si el comodín está al final de la baraja, muévelo debajo de la segunda carta. Si el comodín es la penúltima carta, muévelo debajo de la primera carta. Básicamente asume que la baraja es un bucle,Si un comodín es la última carta, imagínatela como si fuera la primera carta, antes de empezar a contar.

Page 16: Cifrados clasicos y modernos

3. Corta la baraja en tres, intercambiando las cartas antes del primer comodín con las cartas que están detrás del segundo comodín

• "Primer" y "segundo" comodín se refiere al comodín que está más arriba o más abajo respecto al extremo de la baraja. Ignora el hecho de que un comodín es "A" y otro es "B", en este paso.

• Recuerda que los comodines y las cartas entre ellos no se mueven.

Page 17: Cifrados clasicos y modernos

4. Mira la última carta. Conviértela a un número de 1 a 53 (usa el orden normal: tréboles, diamantes, corazones y picas. Cuenta el valor obtenido empezando en la carta superior. Corta tras esa carta, dejando la última carta de la baraja a final. Si la baraja es:

• Una baraja con un comodín como última carta queda igual tras este paso. No hay cambios.

• Asegúrate de no invertir el orden cuando cuentes las cartas.

Page 18: Cifrados clasicos y modernos

5. Mira la primera carta. Conviértela en un número de 1 a 53, de la misma manera que en el paso 4. Cuenta esas cartas (la primera carta es la uno). Escribe la carta tras la que hayas terminado en un papel; no la quites de la baraja. Si la carta es un comodín, no la apuntes, y vuelve al paso 1. Este paso no modifica el estado de la baraja.

6. Convierte la carta del paso anterior en un número. Del As de tréboles al Rey de tréboles se cuentan del 1 a 13. Del As de diamantes al Rey de diamantes se cuentan como 14-26. Del As de corazones al Rey de corazones se cuentan como 1 a 13. Por último, del As de picas al Rey de picas se cuentan como 14 a 26. Necesitamos ir de 1 a 26, no de 1 a 52, para poder convertir a letras.

Page 19: Cifrados clasicos y modernos

Introducir una clave en la baraja• Antes de empezar a generar la ristra, es necesario

"introducir" una clave en la baraja. Ésta es, probablemente, la parte más importante de toda la operación, y en la que se basa toda la seguridad del sistema. Solitario es sólo tan seguro como lo sea su clave. Es decir, la forma más fácil de romper Solitario es imaginarse qué clave se está utilizando. Si no tienes una buena clave, el resto no importa. He aquí algunas sugerencias para realizar el intercambio de claves:

Page 20: Cifrados clasicos y modernos

1. Utiliza dos mazos barajados de la misma manera. Las claves aleatorias son las mejores. Uno de los comunicantes puede barajar un mazo de forma aleatoria, y luego copiar la distribución de las cartas en el otro mazo (para así obtener dos mazos iguales). Uno de los mazos es empleado por el emisor, y el otro por el receptor. La mayoría de la gente no son buenos barajando, así que baraja el mazo al menos seis veces. Ambas partes deben tener otra baraja adicional ordenada de la misma forma, porque si se comete algún error nunca se podrá descifrar el mensaje. Recuerda también que la clave corre peligro mientras exista.

Page 21: Cifrados clasicos y modernos

2. Usa un orden de Bridge. La descripción de una mano de bridge en un periódico o en un libro de bridge constituye una clave de aproximadamente 95 bits. Ponte de acuerdo con el otro comunicante en la forma de convertir el diagrama en un orden concreto para tu baraja. Luego ponte de acuerdo sobre la forma de meter los dos comodines en el mazo.

• Puedes intentar acordar alguna convención sobre qué columna de bridge utilizar; por ejemplo "usar la columna en el periódico local de tu ciudad natal correspondiente al día que se cifre el mensaje", o algo por el estilo. O una lista de palabras clave en el web del New York Times, y usar la columna de bridge del día del artículo que aparezca cuando buscas esas palabras clave. Si se encuentran las palabras clave, o son interceptadas, parecerán una "frase de paso

Page 22: Cifrados clasicos y modernos

3. Usa una "frase de paso" para ordenar la baraja. Este método utiliza el algoritmo Solitario para crear un ordenamiento inicial del mazo. Ambos, el emisor y el receptor, comparten una frase de paso (por ejemplo, "CLAVE SECRETA"). Empezar con el mazo en un orden fijo; de la carta más baja a la más alta, con los palos en el orden visto previamente, y con los dos comodines al final, primero el A y luego el B. Ahora utilizamos Solitario, tal cual, pero al llegar al paso 5 contamos según el número que corresponda a la primera letra de la frase de paso. En otras palabras, volvemos a realizar el paso 4, pero usando el número que corresponda a la primera letra de la palabra de paso, en vez de usar el número correspondiente a la última carta de la baraja. Recuerda poner las cartas de arriba justo debajo de la última carta de la baraja, como antes.

Page 23: Cifrados clasicos y modernos

• Repetimos los cinco pasos de Solitario tantas veces como letras tenga la palabra de paso. Es decir, la segunda vez utilizaremos la segunda letra, la tercera vez la tercera letra, etc.

• Recuerda, no obstante, que sólo hay unos 1.4 bits de aleatoriedad por cada letra, en el inglés estándar [el castellano es similar. N. del T.]. Necesitarás frase de paso de al menos 64 caracteres para hacerlo seguro. Yo recomendaría emplear al menos 80 letras, sólo por si las moscas. Lo siento; no puedes tener buena seguridad con claves más cortas.

Page 24: Cifrados clasicos y modernos

CIFRADO RC4• El algoritmo de criptografía RC4 fue diseñado por Ron Rivest

de la RSA Security en el año 1987; su nombre completo es Rivest Cipher 4, teniendo el acrónimo RC un significado alternativo al de Ron's Code utilizado para los algoritmos de cifrado RC2, RC5 y RC6.

• RC4 es el sistema de cifrado de flujo Stream cipher más utilizado RC4 fue excluido enseguida de los estándares de alta seguridad por los criptógrafos y algunos modos de usar el algoritmo de criptografía RC4 lo han llevado a ser un sistema de criptografía muy inseguro, No está recomendado su uso en los nuevos sistemas, sin embargo, algunos sistemas basados en RC4 son lo suficientemente seguros para un uso común.

Page 25: Cifrados clasicos y modernos

• Inicialmente el algoritmo era un secreto registrado, pero en septiembre de 1994 una descripción del algoritmo fue posteada anónimamente en una lista de correo de Cypherpunks. Enseguida pasó al grupo de correo sci.crypt y de ahí fue publicado en numerosos sitios de Internet. Debido al conocimiento del algoritmo, éste dejó de ser un secreto registrado. Sin embargo RC4 aún es una marca registrada. Actualmente la implementación no oficial de RC4 es legal, pero no puede ser utilizada con el nombre de RC4. Por este motivo, y con el fin de evitar problemas legales a raíz de la marca registrada, a menudo podemos verlo nombrado como ARCFOUR, ARC4 o Alleged-RC4. RSA Security nunca ha liberado el algoritmo de su RC4.

Page 26: Cifrados clasicos y modernos

Descripción del algoritmo

• consiste en 2 algoritmos:

1-Key Scheduling Algorithm (KSA)

2-Pseudo-Random Generation Algorithm (PRGA).

Page 27: Cifrados clasicos y modernos

• Ambos usan 8-by-8 S-box, funciones para generar números aleatorios de 256 bits, mod y técnicas para el manejo y conversión de caracteres, pero básicamente son solo un array de 256 números en el cual ambos son únicos en cuanto a rango y su valor va desde 0 hasta 255. Todos los números de 0 a 255 existen dentro del array, pero están solo mezclados de diferentes maneras, el KSA se encarga de realizar la primera mezcla en el S-Box, basado en el valor de la semilla dada dentro de él, y esta "semilla" puede ser de 256 bits de largo.

Page 28: Cifrados clasicos y modernos

KSA• Primero, el S-box array es llenado con valores secuenciales

desde 0-255. Este array será llamado simplemente S. Entonces, el otro array de 256-bits es llenado con el valor de la "semilla", repitiendo como sea necesario hasta que todo el array es llenado. Este array será llamado K, entonces el array S es mezclado usando el siguiente pseudocódigo.

j=0;

for i = 0 to 255

{

j = (j+S[i] + K[i]) mod 256;

intercambia S[i] and S[j];

}

Page 29: Cifrados clasicos y modernos

PRGAUna vez que eso es hecho, la S-box es intercambiada basándose en el valor de la "semilla". Esa es la "Key" programada para el algoritmo.

Ahora cuando el keystream data es necesitado, el Pseudo-Random Generation Algorithm (PRGA) es usado. Este algoritmo tiene 2 contadores, el i y la j, en el cual ambos son inicializados en 0 para comenzar. Después de eso, cada bit de keystream data es usado en el siguiente Pseudo-Code:

i = (i + 1) mod 256;

j = (j + S[i]) mod 256;

intercambia S[i] and S[j];

t = (S[i] + S[j] mod 256;

Exponer valor de S[t];

Page 30: Cifrados clasicos y modernos

El valor expuesto del byte de S[t] es el primer byte del keystream. Este algoritmo es repetido para conseguir bytes adicionales de keystream. RC4 es simplemente suficiente, que puede ser fácilmente memorizado e implementado en el aire, y puede llegar a ser un poco "más" seguro si es usado apropiadamente.

Page 31: Cifrados clasicos y modernos

Esta operación a veces se llama módulo de 2 suma (o resta, que es idéntico). Con esta lógica, una cadena de texto se pueden cifrar mediante la aplicación del operador XOR bit a bit a cada personaje con una determinada clave. Para descifrar la salida, más que volver a aplicar la función XOR con la clave se eliminará el sistema de cifrado.

Page 32: Cifrados clasicos y modernos

ejemplo

• Inicialización:• 1. Si = i, i=0,1,...,255• 2. Rellenar el array Ki i=0,1,...,255 con la semilla de

clave secreta,• 3. semilla=2,5• 4. f=0• 5. Desde i = 0 hasta 255 hacer:• f = (f + Si + Ki) mod 256• Intercambiar Si y Sf

Page 33: Cifrados clasicos y modernos

Estado inicial de arreglo “S”• S=[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,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 34: Cifrados clasicos y modernos

Introducir la semilla al arreglo “K”2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

5 2 5 2 5 2 5 2 5 2 5 2 5 2 5

2 5 2 5 2 5 2 5 2 5 2 5 2 5 2

Page 35: Cifrados clasicos y modernos

Primera interacción [0]

• I=0 <= 255• F=0• S[i] = S [0] = 0• K[i] = K [0] = 2• f = (f + Si + Ki) mod 256 = (0+0+2) mod 256 = 2• Antes de Intercambiar Si y Sf • S [i] = S [0] = 0• S [f] = S [2] = 2• Después de intercambiar Si y Sf• S [i] = S [0] = 2• S [f] = S [2] = 0

Page 36: Cifrados clasicos y modernos

Primera interacción [0]• S=[2,1,0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,

26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 37: Cifrados clasicos y modernos

Segunda interacción [1]

• I=1 <= 255• F=2• S [i] = S [1] =1• K [i] = k [1] =5• f = (f + Si + Ki) mod 256 = (2+1+5) mod 256 = 8• Antes de Intercambiar Si y Sf • S [i] = S [1] = 1• S [f] = S [8] = 8 • Después de intercambiar Si y Sf• S [i] = S [1] = 8• S [f] = S [8] = 1

Page 38: Cifrados clasicos y modernos

Segunda interacción [1]• S=[2,8,0,3,4,5,6,7,1,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,

26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 39: Cifrados clasicos y modernos

Tercera interacción [2]

• I=2 <= 255• F=8• S [i] = S [2] = 0• K [i] = K [2] = 2• f = (f + Si + Ki) mod 256 = (8+0+2) mod 256 = 10• Antes de Intercambiar Si y Sf • S [i] = S [2] = 0• S [f] = S [10] = 10• Después de intercambiar Si y Sf• S [i] = S [2] = 10• S [f] = S [10] = 0

Page 40: Cifrados clasicos y modernos

Tercera interacción [2]• S=[2,1,10,3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,

26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 41: Cifrados clasicos y modernos

Cuarta interacción [3]

• I=3 <= 255• F=10• S [i] = S [3] = 3• K [i] = K [3] = 5• f = (f + Si + Ki) mod 256 = (10+3+5) mod 256 = 18• Antes de Intercambiar Si y Sf • S [i] = S [3] = 3• S [f] = S [18] = 18• Después de intercambiar Si y Sf• S [i] = S [3] = 18• S [f] = S [18] = 3

Page 42: Cifrados clasicos y modernos

Cuarta interacción [3]• S=[2,1,10,18,4,5,6,7,8,9,0,11,12,13,14,15,16,17,3,19,20,21,22,23,24,25,

26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 43: Cifrados clasicos y modernos

Quinta interacción [4]

• I=4 <= 255• F=18• S [i] = S [4] = 4• K [i] = K [4] = 2• f = (f + Si + Ki) mod 256 = (18+4+2) mod 256 = 24• Antes de Intercambiar Si y Sf • S [i] = S [4] = 4• S [f] = S [24] = 24• Después de intercambiar Si y Sf• S [i] = S [4] = 24• S [f] = S [24] = 4

Page 44: Cifrados clasicos y modernos

Quinta interacción [4]• S=[2,1,10,18,24,5,6,7,8,9,0,11,12,13,14,15,16,17,3,19,20,21,22,23,4,25,

26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 45: Cifrados clasicos y modernos

Sexta interacción [5]

• I=5 <= 255• F=24• S [i] = S [5] = 5• K [i] = K [5] = 5• f = (f + Si + Ki) mod 256 = (24+5+5) mod 256 = 34• Antes de Intercambiar Si y Sf • S [i] = S [5] = 5• S [f] = S [34] = 34• Después de intercambiar Si y Sf• S [i] = S [5] = 34• S [f] = S [34] = 5

Page 46: Cifrados clasicos y modernos

Sexta interacción [5]• S=[2,1,10,18,24,34,6,7,8,9,0,11,12,13,14,15,16,17,3,19,20,21,22,23,4,2

5,26,27,28,29,30,31,32,33,5,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 47: Cifrados clasicos y modernos

Séptima interacción [6]

• I=6 <= 255• F=34• S [i] = S [6] = 6• K [i] = K [6] = 2• f = (f + Si + Ki) mod 256 = (34+6+2) mod 256 = 42• Antes de Intercambiar Si y Sf • S [i] = S [6] = 6• S [f] = S [42] = 42• Después de intercambiar Si y Sf• S [i] = S [6] = 42• S [f] = S [42] = 6

Page 48: Cifrados clasicos y modernos

Séptima interacción [6]• S=[2,1,10,18,24,34,42,7,8,9,0,11,12,13,14,15,16,17,3,19,20,21,22,23,4,

25,26,27,28,29,30,31,32,33,5,35,36,37,38,39,40,41,6,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]

Page 49: Cifrados clasicos y modernos

Interacción final

• Al final S nos quedara así:• S= [2, 133, 10, 77, 204, 34, 187, 54, 51, 71, 73,

98, 147,..., 178, 250, 59, 74, 153, 91]

Page 50: Cifrados clasicos y modernos

Generación de secuencia cifrante:

• I, F=0• Cada byte St de la secuencia cifrante se calcula

mediante:1. i = (i + 1) mod 256;

f = (f + Si) mod 256;2. Intercambiar Si y Sf3. t = (Si + Sf) mod 256

Page 51: Cifrados clasicos y modernos

Generación de secuencia cifrante y Cifrado:

• Byte 1 de secuencia cifrante: Salida= S[88]= 144: 10010000

• Byte 1 de texto original: Entrada: M[1]=1: 00000001• Byte 1 de texto cifrado, Salida= C[1]= 145: 10010001• • Byte 2 de secuencia cifrante: Salida= S[182]= 14:

00001110• Byte 2 de texto original: Entrada: M[2]=32: 00100000• Byte 2 de texto cifrado, Salida= C[2]= 46: 00101110

Page 52: Cifrados clasicos y modernos

• La presente salida trabajo con números enteros y decimales para simplificar la operación aunque perfectamente se puede trabajar con hexadecimales octales e incluso con caracteres en assqui, depende de cómo decida programarse