martes, 7 de marzo de 2017

'Habemus' Troll

¡Ya era hora!.

Tras exactamente 2.434 días de que naciera este modesto blog, con 352 entradas y 370 comentarios hasta el momento, al fin y como cualquier blog que se precie,

¡Ya tenemos nuestro propio Troll!.

Pero, antes que nada, veamo la definición de Troll en la wikipedia:

"Un troll o trol es un vocablo de Internet que describe a una persona que sólo busca provocar intencionadamente a los usuarios o lectores, creando controversia, provocar reacciones predecibles, especialmente por parte de usuarios novatos, con fines diversos, desde el simple divertimento hasta interrumpir o desviar los temas de las discusiones, también trollean páginas de wikipedia o bien provocar flamewars, enfadando a sus participantes y enfrentándolos entre sí. El troll puede ser más o menos sofisticado, desde mensajes groseros, ofensivos o fuera de tema, sutiles provocaciones o mentiras difíciles de detectar, con la intención en cualquier caso de confundir o provocar la reacción de los demás".

Aunque el origen etimológico de este término parece que nada tiene que ver con "El Señor de los anillos", tal y como nos aclara también la wikipedia: su origen más probable es el de «morder el anzuelo» o «morder el anzuelo mucho más» (troll es un tipo de pesca en inglés), permítaseme la licencia de las imágenes que ilustran este post, ya que soy un fan de Tolkien y porque creo que estos seres encajarían mejor como origen etimológico de este término.

Pues bien, como decía, ya nos empezábamos a preocupar ("¡menuda mierda de blog que tenemos, no comenta ni un solo Troll!"), pero esto se acabó: ¡Ya tenemos nuestro propio Troll!. He borrado sus comentarios y no voy a reproducirlos porque, como todos sabemos, hay que tener mucho cuidado a la hora de alimentarles, es más, no se les debe dar de comer nunca porque mutan a subespecies que dan mucho más la tabarra.

Pero veamos, en concreto, a qué subespecie pertenece este Troll. Para ello fijémonos en varias de las características definitorias que nos pueden dar pistas para su catalogación: se ampara en el anonimato, sólo sabe poner groserías y carece de educación. Basándome en estas apreciaciones objetivas, yo diría que se trata de un Troll "tontolano" (bueno, ya sé que no es muy académico, pero es que no me encajaba exactamente en ninguna de las subespecies descritas hasta la fecha). En definitiva, creo que estamos ante una nueva subespecie aún sin catalogar y a la que me permito bautizar.  

Por favor, querido Troll (tú y yo sabemos quién eres), apúntate el número 1 para que cuando vuelvas a comentar en este blog te identifiques como Troll#1, así todos sabremos que eres tú otra vez, para no equivocarte con otros miembros de tu misma especie que nos visiten, ya que para nosotros tú siempre serás nuestro Troll.

En la medida que vayan visitándonos otros especímenes que pululan por Internet iremos escribiendo nuevos posts de bienvenida, catalogándoles y distinguiéndoles con el número correspondiente.

lunes, 6 de marzo de 2017

Criptografía (LI): el algoritmo DES (III)

En el post anterior puse un ejemplo de cifrado utilizando el algoritmo DES y decía que en éste, para ver si lo he comprendido y he hecho correctamente, voy a descifrar el criptograma que obtuve.

De forma análoga que en el cifrado, como paso previo al descifrado debemos obtener, a partir de la clave (K), de 64 bits, las 16 subclaves (Ki), de 48 bits cada una, que se emplearán en las 16 rondas de la red de Feistel de las que consta este algoritmo, una subclave por ronda.

Ya expliqué en un post anterior como hacerlo, siendo la clave de nuestro ejemplo y las subclaves calculadas a partir de ésta las siguientes:
Y ya estamos en disposición de descifrar el criptograma, para lo que hay que recordar que en este post decía que basta con aplicar las sucbclaves (Ki) en orden inverso que en el cifrado. En nuestro ejemplo el criptograma obtenido es el siguiente:

- En binario:

C = 1001101111111011111110111111010011010000111110010001011000000100

- En hexadecimal:

C = 9BFBFBF4D0F91604


1.- Permutación inicial (IP) de los bits del bloque del criptograma a descifrar:
2.- Red de Feistel de 16 rondas (aplicando las subclaves en el orden inverso al cifrado):

2.1.- Primera iteración:
2.2.- Segunda iteración:
2.3.- Tercera iteración:
2.4.- Cuarta iteración:
2.5.- Quinta iteración:
2.6.- Sexta iteración:
2.7.- Séptima iteración:
2.8.- Octava iteración:
2.9.- Novena iteración:
2.10.- Décima iteración:
2.11.- Undécima iteración:
2.12.- Duodécima iteración:
2.13.- Decimotercera iteración:
2.14.- Decimocuarta iteración:
2.15.- Decimoquinta iteración:
2.16.- Decimosexta iteración:
3.- Permutación final (IP-1) de los bits de la concatenación R16 || L16:
Con lo que el texto en claro (M) sería:

- En binario:

M = 0100010101001010010001010100110101010000010011000100111101001101

- En hexadecimal:

M = 454A454D504C4F4D

Como se observa, he obtenido el mismo texto en claro (M) que en el post anterior, por lo que concluyo que tanto el cifrado como el descifrado son correctos.

jueves, 2 de marzo de 2017

Criptografía (L): el algoritmo DES (II)

En el post anterior decía que iba a completar el ejemplo que puse de cifrado utilizando el algoritmo DES. Lo intento, pero bien entendido que sólo concluiré que es correcto, más o menos, cuando en el siguiente post consiga descifrar el criptograma (C) que obtengo en éste. Si no lo consigo algo habré hecho mal y corregiré este post y el anterior.

Como paso previo al cifrado debemos obtener, a partir de la clave (K), de 64 bits, las 16 subclaves (Ki), de 48 bits cada una, que se emplearán en las 16 rondas de la red de Feistel de las que consta este algoritmo, una subclave por ronda.

Ya expliqué en el post anterior como hacerlo, siendo la clave de nuestro ejemplo y las subclaves calculadas a partir de ésta las siguientes:
Y ya estamos en disposición de cifrar un texto en claro, para lo que hay que recordar que este algoritmo se aplica sobre bloques de 64 bits del mismo. En nuestro ejemplo proponía cifrar el siguiente bloque:

- En binario:

M = 0100010101001010010001010100110101010000010011000100111101001101

- En hexadecimal:

M = 454A454D504C4F4D

1.- Permutación inicial (IP) de los bits del bloque a cifrar:
2.- Red de Feistel de 16 rondas:

2.1.- Primera iteración:
2.2.- Segunda iteración:
2.3.- Tercera iteración:
2.4.- Cuarta iteración:
2.5.- Quinta iteración:
2.6.- Sexta iteración:
2.7.- Séptima iteración:
2.8.- Octava iteración:
2.9.- Novena iteración:
2.10.- Décima iteración:
2.11.- Undécima iteración:
2.12.- Duodécima iteración:
2.13.- Decimotercera iteración:
2.14.- Decimocuarta iteración:
2.15.- Decimoquinta iteración:
2.16.- Decimosexta iteración:
3.- Permutación final (IP-1) de los bits de la concatenación R16 || L16:
Con lo que el criptograma (C) sería:

- En binario:

C = 1001101111111011111110111111010011010000111110010001011000000100

- En hexadecimal:

C = 9BFBFBF4D0F91604


Lo dicho, en el siguiente post, para comprobar si lo he comprendido y he hecho correctamente, realizaré el descifrado de este criptograma.