Criptografı́a - 2016 . 1. Cifrado de Vernam Es un cifrado binario que plantea el uso de códigos alfanuméricos para el cifrado. Fue inventado por Gilbert Vernam, un ingeniero de los laboratorios Bell de la AT&T en 1919. Usando el código de Baudot para teletipos patentó la operación de sustitución primitiva de los actuales sistema de cifrado: la XOR (aunque no a nivel de bits sı́ a nivel de relé). Es un sistema seguro pues la clave es aleatoria y de un solo uso (one-time pad). 001010 ⊕ 000001 001011 110000 110101 000101 101001 011011 110010 110001 111100 001101 100101 000011 100110 110010 001111 111101 101101 000010 101111 100101 110001 010100) El mensaje cifrado es c = B5nDbxkK. 1.2. Descifrado En este caso, la operación lógica se realiza entre la clave y el texto cifrado. 1.1. Cifrado La clave debe ser del mismo largo que el mensaje; de lo contrario ésta se repite tantas veces hasta cubrir la longitud del mensaje. Cada sı́mbolo del mensaje y de la clave se sustituye por su equivalente en ASCII (o cualquier otro código binario alfanumérico), y se operan sı́mbolo a sı́mbolo por medio de la operación lógica XOR. Ejemplo. Se cifrará el texto m = Alemania con la clave k = 1pQw3F 2m. El primer paso será emparejar el mensaje con cada sı́mbolo de la clave. En este caso, la clave es aleatoria y del mismo tamaño del mensaje. A l 1 p e Q m w a n 3 F i 2 000 001 010 011 100 101 110 111 001 8 9 A B C D E F 010 G H I J K L M N 011 Ñ O P Q R S T U 100 V W X Y Z a b c 101 d e f g h i j k Al convertir los caracteres en binario y cifrar: A l 1 p 1 e Q m w a n 3 F i 2 s o ⊕ t K 9 6 C v H Q Y B G 9 111000 111001 001001 001100 010001 100011 010000 110100 010100 000110 111011 011011 001011 001001 001100 101101 001111 110111 001010 101000 011001 El texto plano es c = CiF rAdO. a m Para este ejemplo, se utilizará el código binario alfanumérico de la siguiente tabla: 000 0 1 2 3 4 5 6 7 Ejemplo. Se descifrará c = st9CHY G con la clave k = oK6vQB9, trabajando del mismo modo que en el cifrado, pero ahora con la clave y el texto cifrado: a m 110 l m n ñ o p q r 111 s t u v w x y z 2. Permutación por Renglones/Columnas Permite fragmentar el mensaje en renglones (o columnas) para ocultar el significado del mensaje al revolver las letras. La clave será el número de renglones (o columnas) a utilizar, y a partir de ella se escribe el mensaje original. 2.1. Cifrado Consiste en escribir el texto plano de arriba a abajo e izquierda a derecha (de izquierda a derecha y arriba a abajo para columnas) a lo largo de los renglones. De esta forma se creará una matriz que si no es llenada completamente, se agregan caracteres poco usados. Una vez completa la matriz, se concatenan los renglones (o columnas) uno tras otro comenzando por el renglón superior (o la columna más hacia la izquierda). Ing. Aldo Jiménez Arteaga Criptografı́a - 2016 Ejemplo. Al cifrar el mensaje m = HOY ES DIA F ERIADO con 4 renglones, el texto cifrado quedará como: R1 R2 R3 R4 H O Y E S D I A F E R I A D ⇒ c = R1 R2 R3 R4 O X 3. Transposición por Renglones/Columnas con Clave Aplica en la misma forma que la transposición, excepto que el número de renglones (columnas) está determinado por una clave, y que el orden alfabético dentro de las letras de clave indica el orden de la concatenación. La clave no debe contener letras repetidas. ∴ c = HSF AODEDY IROEAIX 2.2. 3.1. Descifrado Cifrado Se divide la longitud del texto cifrado entre el número de renglones (columnas); el resultado será el número de columnas (renglones). El texto cifrado se divide en bloques del tamaño del número de columnas (renglones) y se escriben en la matriz. Finalmente, se lee el texto plano según el sentido de cifrado. Se llena la matriz de cifrado, y el mensaje se coloca al lado (o debajo) de cada letra de la clave. Se reordenan los renglones (columnas) atendiendo al orden alfabético de la palabra clave; la concatenación se realiza con base en esta nueva disposición. Ejemplo. Para descifrar el texto cifrado c=FRTOIOIMCSTXHIUWENLK por medio de 5 columnas, se obtiene el número de renglones de la matriz: Ejemplo. Con la clave k CIU DAD DE M EXICO. |c| = 20 ⇒ B C D X 20 =4 5 Entonces el texto cifrado se divide en bloques de cuatro letras, cada uno de las cuales es una columna de la matriz: c = F RT O IOIM CST X ⇓ C1 C2 C3 F I C R O S T I T O M X ∴ m = F ICHERO C4 H I U W SIN HIU W Si la transposición se realiza utilizando dos renglones, el sistema se conoce como transposición simple y no es necesario completar la matriz. Otro caso es cuando se realiza el cifrado más de una vez; es decir, el texto cifrado entra a una nueva transposición. En este caso el sistema se conoce como transposición múltiple. 2 L U E C O D M O BALON se cifrará el mensaje m N A A I ⇒ E D W I B C D X L U E C N A E W = O D M O ∴ c = IDICDXU ECAEW DM O EN LK C5 E N L K T IT U LO A I D I = 3.2. Descifrado Se realiza de la misma forma que en transposición por renglones (columnas), pero el primer grupo será el correspondiente a la primera letra de la clave en orden alfabético, el segundo grupo a la segunda letra y ası́ sucesivamente. Ejemplo. Para este caso se descifrará el mensaje c=EOOÑÑJUMAWATATKMSSNA con k = ROM A por renglones. |c| 20 = ⇒5 |k| 4 Ing. Aldo Jiménez Arteaga Criptografı́a - 2016 4.2. Con cinco columnas se forma la matriz A M O R E J A M O U T S O M A S e R N O W ⇒ M K A A e N A T N M A J E S T U O S A M O N T A e N A K W e N eA ∴ M = M AJEST U OSA M ON T AN 4. Descifrado El texto cifrado se dividirá en grupos del tamaño de la permutación, y se obtiene la permutación inversa. Para la inversa se ordenan los elementos de la permutación al mismo tiempo que se desordenan sus posiciones; las posiciones en desorden son la permutación inversa. Con la inversa se procede de igual forma que el cifrado. Ejemplo. Descı́frese el mensaje c = DEASP CN EAM OP W ZOAID con la permutación k = 625314. La permutación inversa se calcula antes del descifrado: 6 2 5 3 1 4 1 2 3 4 5 6 ⇒ ∴ k −1 = 524631 1 2 3 4 5 6 5 2 4 6 3 1 Transposición por Grupos Este tipo de transposición utiliza una permutación; es decir, una reordenación de las letras de subgrupos de tamaño fijo dentro del texto plano. Ahora, se trabaja con el mensaje: DEASP C 4.1. Cifrado El texto plano se divide en tantos grupos como sea posible, atendiendo al número de elementos de la permutación. Cada grupo se reordena siguiendo la permutación de manera independiente, sin alterar el orden en que aparecen en el mensaje original. Si es necesario, se rellena algún bloque incompleto. Ejemplo. Cı́frese el mensaje m = JARDIN BOT AN ICO con la permutación k = 45231. La permutación tiene cinco elementos, entonces cada bloque tendrá cinco letras, rellenándose el último. m = JARDI N BOT A N EAM OP Bloque 1: D 1 E 2 A 3 S 4 P 5 Bloque 2: N 1 E 2 A 3 M 4 O 5 Bloque 3: W 1 Z 2 O 3 A 4 I 5 C 6 W ZOAID ⇒ P 5 E 2 S 4 P 6 ⇒ O 5 E 2 M 4 D 6 ⇒ I 5 Z 2 A 4 C 6 A 3 P 6 D 6 A 3 O 3 D 1 N 1 W 1 Por lo que el texto plano es m = P ESCADO EM P AN IZADO. N ICOX Cada letra se numera atendiendo a su posición dentro del bloque, y se reordena según la permutación k = 45231: Bloque 1: J 1 A 2 R 3 Bloque 2: N 1 B 2 O 3 Bloque 3: N 1 I 2 C 3 D 4 I 5 ⇒ D 4 I 5 A 2 R 3 J 1 T 4 A 5 ⇒ T 4 A 5 B 2 O 3 N 1 O 4 X 5 ⇒ O 4 X 5 I 2 C 3 N 1 Entonces, el texto cifrado es c = DIARJT ABON OXICN . 3 Ing. Aldo Jiménez Arteaga