La màquina Enigma

En un altre article us explicava la història de la María Estuardo, de com va utilitzar el xifrat de substitució i com la van agafar perquè el criptoanalista, en Thomas Phelippes, coneixia els mètodes estadístics necessaris per a desxifrar els seus missatges. Avui donarem un pas més en el que al xifrat de missatges que culminarà en la màquina de codificació més temible i famosa de la Segona Guerra Mundial: la màquina Enigma.

[@more@]

Primer de tot, haig d’explicar-vos el xifrat de Vigenère. Bàsicament consisteix en un xifrat de substitució, com el citat anteriorment de l’article de la María Estuardo, però diferent per a cada lletra en funció d’una clau. Però anem a pams. Us mostro a continuació la taula de Vigenère:

QUadre de Vigenère

És una taula amb els alfabets començant cada vegada per una lletra posterior. La millor forma de veure com funciona és explicant un exemple. Seguiré el mateix de la Wikipedia.

misstage:         P A R I S   V A U T  B I E N    U N E  M E S S E
clau:               L O U P L   O U P L  O U P L   O U P  L O U P L
criptograma:    A O L X D    J U J E   P C T Y  I H T   X S M H P

La clau és LOUP i així es va repetint lletra rere lletra. Anem a codificar la primera P. Prenem aquesta P (del text) de la primera fila i la L (de la clau) de la primera columna. Veiem que es tallen a l’A i aquesta és la primera lletra xifrada (està destacat en vermell en el gràfic anterior). Ara anem a xifrar l’A. Anàlogament, prenem l’A de la primera fila i l’O de la primera columna: tenim l’O. Per a la R, la prenem també de la primera fila i l’U de la primera columna i veiem que es creuen a la L (destacat en blau en el gràfic anterior). I així successivament.

Si algú intercepta el missatge no podrà desxifrar-lo a priori sense conèixer la clau; encara que sàpiga que és una codificació de Vigenère. Els mètodes estadístics no serveixen, ja que la mateixa lletra pot ser codificada de formes diferents. A primera vista, sembla impossible de desxifrar, però els criptoanalistes són gent molt hàbil. I ho van aconseguir. Resulta que si coneixem la longitud de la clau ja podem atacar el problema. Suposem, com en aquest cas, que sabem que la longitud de la clau és 4 (LOUP). L’únic que cal fer és una anàlisi estadística per a les posicions 1, 5, 9 …, ; un altre per a 2, 6, 10 …, ; un altre per a 3, 7, 11 …, ; i finalment altre per a 4, 8, 12 … , ja que el xifrat es repeteix cada quatre posicions i, per tant, cada quatre posicions, tenim una substitució simple resoluble amb els mètodes estadístics.

Per a esbrinar la longitud podem fer-lo a través de la recerca de repeticions en el text (requereix una explicació, i la trobareu en el llibre que poso al final). Recordeu que sempre estem pensant en un text suficientment llarg. Ja podeu intuir que el secret de la xifra Vigenère està en la llargària de la clau: a clau més llarga, més dificultat.

Aquesta codificació és obra, òbviament, de Blaise de Vigenère i estic parlant d’allà per l’any 1585.

Anem ara a l’any 1918 en el qual l’inventor alemany Arthur Scherbius i el seu íntim amic Richard Ritter van fundar la companyia Scherbius i Ritter, una innovadora empresa d’enginyeria que englobava tot, des de turbines fins a coixins elèctrics. Un dels projectes de Scherbius era substituir els inadequats sistemes de criptografia utilitzats a la Primera Guerra Mundial. Enlloc d’utilitzar llapis i paper calia treure partit a la tecnologia de l’època, i amb aquesta idea va desenvolupar la màquina Enigma.

Va ser una obra mestra de l’enginyeria. És gairebé impossible explicar-la per complet, però sí es pot tenir una idea del seu funcionament. Bàsicament, tenim un teclat per a escriure el text que volem xifrar, una unitat modificadora i un tauler expositor per a mostrar el resultat de la codificació. La part més interessant és aquesta unitat modificadora. En la figura següent veiem una de les rodes que la componien però amb un alfabet de sis lletres per a simplificar el dibuix (en minúscules, el text sense xifrar; en majúscules, el text xifrat):

Un modificador

Per a codificar el text pla, l’operador prem una lletra i el gruixut disc de goma plagat de cables fa una funció que la transforma abans de sortir en el tauler. En aquest cas, el missatge "cafè" seria codificat com "DBCE". Si fora només així, tindríem una codificació de substitució i ja sabem com desxifrar-la.

La idea de Scherbius era que cada vegada que es codifiqués una lletra, aquesta roda girés un sisè de volta (un veintisisena part per a un alfabet complet de 26 lletres). Al donar aquest sisè de vola, la codificació de la següent lletra serà diferent i no la que tenia al principi. En el nostre cas, la primera vegada que codifiquéssim la b obtindríem l’A, però just després, el modificador gira i si tornem a codificar la b obtindrem la C; i la següent vegada obtindrem la I (observeu els cables que les uneixen).

Modificador rotant

Problema: a la qual s’hagin fet 6 lletres, el cicle torna a començar i tornem a tenir la posició inicial. Tenim un xifrat de Vigenère amb una clau de 6 lletres (en el cas real de 26 lletres): una clau massa petita.

Per a resoldre aquest problema, Scherbius va posar un segon disc modificador de manera que, quan el primer disc feia un volt completa, el segon girava una posició. Aquí us mostro dues posicions amb dues modificadors que el segon modificador està en la mateixa posició, però la del primer ha canviat:

Dos modificdorsDos modificadors 2

Ara, enlloc de tenir 6 possibles canvis de lletra, tenim 6*6=36 canvis. Recordo que el 6 era a manera simple i per a simplificar; en realitat, hem passat a una clau de 26 a 26*26=676 posicions. No content amb això, Scherbius va afegir un tercer modificador: quan el segon disc havia fet una volta, el tercer avançava una posició. Així que tenim 26*26*26=17.576 disposicions diferents dels modificadors, o sigui, un xifrat de Vigenère amb una clau de longitud 17.576.

I fixeu-vos en la gràcia de la màquina: no només tenim un bon xifrat sinó que, a més, la clau va en funció de la posició inicial dels tres rotors; si canviem la posició inicial dels rotors el xifrat és totalment diferent. Encara que descobríssim la posició inicial un dia, podien canviar-la a l’endemà i tornaríem a estar en el mateix problema.

Per fi, hi ha un afegit més que és el reflector (ara explico la seva utilitat) abans d’arribar al tauler.

Modificadors i reflector

Per a codificar un missatge, necessitàvem un operador amb una màquina Enigma que ho introduïa i cada vegada que premia una lletra els discos es movien i donava el missatge xifrat en el tauler.

Posteriorment, el missatge xifrat il·legible per a l’enemic arribava a la destinació on tenien altra màquina Enigma esperant amb els rotors posats en la mateixa posició de partida que la màquina que ho va generar. Tot seguit, s’introduïa el missatge xifrat i, gràcies al reflector, reproduïa el missatge original. No us sembla un invent fantàstic?

El potent d’aquesta màquina és que, encara que l’enemic fos capaç de tenir una, no podia fer res sense conèixer les posicions inicials dels modificadors. Si algú interceptava un missatge i tenia una Enigma, havia d’anar provant alguna de les 17.576 posicions inicials dels modificadors i veure si sortia algun missatge intel·ligible; si no, provar una segona i així successivament. Si el desxifrador pogués provar una combinació per minut i treballar dia i nit li duria dues setmanes esbrinar el missatge. Impossible de desxifrar en un temps acceptable?

Tanmateix, en Scherbius no va quedar satisfet. Podria haver afegit més modificadors, ja que cadascun d’ells augmentava la dificultat multiplicant per 26, però això hagués engrandit el tamany de la màquina. Així que va afegir dues coses noves. El primer va ser que els modificadors fossin intercanviables, és a dir, que podia posar, per exemple, el tercer rotor en primer lloc, el segon en tercer lloc, etc. Hi ha sis maneres de posar tres modificadors, de manera que el nombre de claus augmenta. El segon tret va ser la introducció d’un claviller que podia intercanviar lletres en grups de 6.

Resumint: tenim 26*26*26=17.576 possibles combinacions dels tres modificadors i si afegim les 6 formes de poder posar els modificadors i el claviller amb el que podem intercanviar 6 parells de lletres entre 26 possibles tenim de l’ordre de bilions de claus possibles.

Ja haureu notat que la part que més contribuïx al nombre de claus és el claviller. Per què no posar senzillament un caviller? Doncs perquè, per si mateix, fa de substitució monoalfabètica i mitjançant una anàlisi de freqüència seria caçat ràpidament; però combinant-lo amb els modificadors, les anàlisis de freqüència no ens serveixen.

Scherbius va obtenir una patent en 1918. Els alemanys van concloure que era la millor solució per a les seves comunicacions. A partir de 1925 i durant les dues dècades següents, l’exèrcit alemany va comprar més de 30.000 màquines Enigma, el que els va proporcionar el sistema de xifrat més segur del món. En esclatar la Segona Guerra Mundial les seves comunicacions estaven protegides per un nivell de codificació sense precedents.

L'Enigma en acció

El taló d’Aquil·les era que acabessin descobrint la clau, així que els alemanys van optar per canviar-la cada dia. Els aliats, per tant, tenien un dia per a esbrinar-la. A l’endemà, canviaven la clau i tornem-hi. És clar, les claus de cada dia havien de ser conegudes tant per emissor com per receptor. Per a això, tenien un llibre de codis que deia les diferents posicions inicials dels modificadors així com els canvis de parells de lletres del claviller.

I per si tot això no fos suficient, van prendre la precaució de transmetre una nova clau per a cada missatge. O sigui, aprofitant la clau del dia es transmetien una nova clau. Imaginem, per exemple, que la clau del dia dels modificadors era QCW. Doncs utilitzant aquesta posició es transmetien PGHPGH (ho feien dues vegades per a assegurar-se que es rebia correctament la nova clau) i el receptor rebia, per exemple KIVBJE (recordo que les lletres canviaven a cada pulsació). En aquest moment, ambdós canviaven els modificadors a la nova posició PGH i començava el missatge xifrat real.

Tal com els francesos van donar la batalla del desxiframent per perduda, els polonesos no. El seu Biuro Szyfrów va organitzar un curs de criptografia i va convidar a 20 matemàtics que sabien parlar alemany. Els van prendre jurament i van escollir a tres d’ells per les seves aptituds. El qual més va destacar va ser un jove de 23 anys que es deia Marian Rejewski. Era tímid, amb ulleres però treballant totalment sol, amb una Enigma en les seves mans i amb la informació que us he donat va ser capaç de desxifrar els missatges dels alemanys.

Que com va fer això?

Crec que ho deixarem per a altra història.

 
Fonts:

Quant a omalaled

Me llamo Fernando y soy un apasionado de la ciencia y admirador de los científicos y ténicos de todas las épocas. Espero disfrutéis sabiendo un poquito más de ellos.
Aquesta entrada ha esta publicada en General. Afegeix a les adreces d'interès l'enllaç permanent.

2 respostes a La màquina Enigma

  1. Joan diu:

    Sempre havia volgut saber com anava l’Enigma però no ho havia buscat mai.

    La veritat és que ho trobo fascinant, quina idea més bona! A veure quan ens expliques com s’ho van fer.

    En l’encriptació de de Vigenère hi ha una O enlloc d’una U que pot portar a la confusió (en la substitució de la R).

  2. omalaled diu:

    Ja l’he corregit, gràcies.

    Si t’agrada la història de la criptografia, et recomano el llibre de Simon Singh que hi posso a “Fonts”. És una passada.

    salut!

Els comentaris estan tancats.