Quantcast
Channel: El blog de García Larragan y Cía
Viewing all articles
Browse latest Browse all 639

Criptografía (CXCIX): Reto 43

$
0
0

Pongo otra entrada sobre lamáquina Enigma, de la que, evidentemente, soy un auténtico fan; muy torpe, pero fan al fin y al cabo. La máquina de cifrado más famosa de la historia; la utilizada por el ejército alemán durante la Segunda Guerra Mundial.

En este caso se trata de un desafío que se refiere a un enfoque más "moderno" sobre su criptoanálisis, el contenido en el artículo 'Ciphertext-only cryptanalysis of Enigma' de James Gillogly publicado en la revista 'Cryptologia' (Octubre 1995). Y digo "moderno" no sólo porque fue publicado hace ya unos 25 años, sino porque el ataque se basa en la estadística del lenguaje, técnicas que ya se conocían de hace mucho tiempo.

Tal y como diré en el post de solución a este reto, no es que se trate de un método precisamente muy eficaz, ni siquiera creo que se hubiera podido utilizar en su época por falta de la potencia de cálculo necesaria, aunque ahora queda perfectamente al alcance de cualquier PC sin demasiadas prestaciones, pero me ha parecido muy interesante por dos circunstancias: en primer lugar, porque viene a demostrar que, en ocasiones, es posible el criptoanálisis de los mensajes de la máquina Enigma sin más que tener el texto cifrado de los mismos ('Ciphertext-only cryptanalysis'), sin necesidad de probar todas las configuraciones posibles de la máquina (una absoluta locura) o de conocer parte del texto en claro correspondiente al texto cifrado del que se dispone ('Known-plaintext attack'), y aplicar a éste técnicas de estadística del lenguaje (algo que incluso se suponía que no era posible, aunque es verdad que falla con bastante o mucha frecuencia, ya que presenta dos factores críticos de éxito: la longitud del criptograma, que debe ser suficientemente largo, y el número de conectores en el tablero de conexiones, más probabilidad de éxito cuantas menos sean), y, en segundo lugar, porque ha servido de base para desarrollar métodos mucho más eficaces utilizando dichas técnicas.

Dicho todo lo anterior, en este post pongo otro reto de criptografía en el que se ve involucrada la máquina enigma.

Como siempre, se admiten soluciones en forma de comentarios a esta entrada. Pasado un tiempo iré proporcionando pistas para su resolución, un máximo de tres, y posteriormente actualizaré este post con la solución.

Reto 43: "¿Coincidencia?".

Otto, operador alemán de la máquina enigma en la Wehrmacht, es un tanto vago e indisciplinado, y nunca ha entendido eso de limitar la longitud de los mensajes a enviar a 300 caracteres como máximo, y tener que dividir aquellos que sean más largos en varias partes y cifrar estas últimas con claves diferentes. Piensa: "¡Menudo trabajo, lo meto todo en uno y listo!". ¿Puedes descifrar el mensaje que se proporciona como recurso asociado al reto y que Otto envió allá por 1936?

Dificultad:
Tipo:       Criptografía.

Recursos:
Texto cifrado:

FHJIA GXUMG LESXR QPULE ZWQYN EQXJZ OWHMO AWJRR LMKDW RKHUT OBGNG KSXXL PZQXO XBYJO QROJD TUCTJ UHMCR RBSWT QTMJM CLOCI WDMSM XKRZG VYOBL QVTRC MKCFD SOIAD LTQKM POEUF TASLK KMKAQ HHSVR RBUOR ZETBT PABYD HMFLB ECVJY BAKXV MXNWN GZDRF CCVCK PUCTZ JTLNB BYJQX CSDYY SLSMV JSUOU NYWVU XNJQP UIDBC IWYEE IZMHC RCETL HQJDQ ERURL LXPCB KWKAB UBPZY VAULX SXTFM SWICC EGPYK YXMLT VGTJT IXBIZ ATYHD XEBCK UHMOH CQSMY WZPWB XIIRX XFQSN JACRD HFSUA CULFX HMGCU KISAE ULIRP AXMYL SPWDL CSYHJ RPYZT EOEPV WJBZG YHOEF ANCBA BDBYS ZIMGF YSLIP SAHRS ONJBH VWGOE DXCOM DJATM OUTKC JCYVR CDKRG ZINVE JHBMU AKGCG XOYRB UGOCD AEXIY FIPGO IIQNW FKASI PHHBF UFSGV AYDGI TJZJW WXZLC TFHKB VSVBI FRVMY WAFMO NIQNS NSIOC TCGQI RCQXU RHNAT HCOGU IHLHR KRCGY BLOMA QWTAO XRLXC MXMLS KYPLK NXJBG CMNVT CAQFS CAINE ZMERE PZQWI DYPBO JGRMT LVJLG MJAUF XSHSA UKJKA IJDTV DLZXX QEEUB ITLUY ZRBKG ELHPE ULPUR GHXCC KGPHK SROIN GBVOR FBKDB VLGGL JWDRJ FWYNZ XKUIQ AMQSI VNOSK QIELK MUOLM QHWQT QFXFJ VKSPX HGHEV AIYBG JRYTO ACQVE SZXPL QOBUO QXKKT RWZLB MCHXJ VMHKU KOBUN AYIFD LTHYY SQNWV COMCR BDLNB OECZV XHBEQ IDDWH VUVXT BRLCS MTGYH ULUNX CIBMU LXBPJ UHSMB PAPSL ISNZD MBGGD FVJGR XUPGF HTVKV WHRLY VQGEK IUIEK FDPHY DUJBF CBKYH RGJOX TDBHO VNXNO FJAUC PPXKF DDEPO ZIJUV SNQPQ XAJXK TOPZA UACPP KPJMV OLRCI UOEAB XBPMO EWHOW MDLON IOYYA FKVTU STAOB YVOQJ JIUIX YIGFQ KPANQ ZHRDD OIUAY BQPTF VBXLE XKZXL XCUWB RACZU PKFDM IKOFZ KXZMP KHAJI

********
 10/10/2021
Pista 1:    El indicador en el que se basa el método de James Gillogly para el criptoanálisis de los mensajes de la máquina Enigma, considerando única y exclusivamente el texto cifrado del que se dispone ('Ciphertext-only cryptanalysis'), es el índice de coincidencia (IC).

Ya expliqué en una entrada de este blog qué es el índice de coincidencia (IC), pero lo vuelvo a hacer muy brevemente: es la probabilidad de que dos letras tomadas al azar de un texto sean iguales.

Todo idioma tiene un IC estándar propio (por ejemplo: el español de aproximadamente 0,0775, el alemán de 0,0762, etc.), mientras que en un texto "aleatorio", como el obtenido al cifrar un texto en claro con una máquina Enigma, el IC es de aproximadamente 0,0385

Es decir, es como si el IC fuera una "huella" mediante la cual podemos saber si un texto, lo suficientemente largo para que su cálculo sea significativo, está escrito en un idioma (e incluso, en qué idioma) o, por el contrario, se trata de un texto "aleatorio", y, por tanto, la idea en este método de criptoanálisis se basa en ir obteniendo paulatinamente textos parcialmente descifrados con el IC más alto, considerando por separado los parámetros de la clave de una máquina Enigma, de tal forma que éste se vaya aproximando a lo esperado para un texto en claro escrito en alemán.

El primer paso del método de James Gillogly consiste en obtener el IC mayor del descifrado del criptograma para todos los posibles órdenes de los rotores y, dentro de cada uno de ellos, todas las posiciones iniciales de cada rotor, fijando el ajuste de los anillos en 1 - 1 - 1 (A - A  - A) y con el tablero de conexiones sin ningún conector puesto. El orden de los rotores con el IC más alto así obtenido sería aquél con el que se obtuvo el texto cifrado que se está criptoanalizando.

Recuerdo que el IC se calcula de la siguiente manera:

Donde: fi  es la frecuencia o número de ocurrencias del carácter i en el texto, en este caso el texto cifrado a criptoanalizar, y N es el tamaño del texto cifrado (en este caso, 1.175 caracteres).

******** __/__/____
Solución: Por publicar.

******** PRÓXIMO RETO
Reto 44:   Por publicar.

Viewing all articles
Browse latest Browse all 639

Trending Articles