Màquina Enigma

De Viquipèdia
Dreceres ràpides: navegació, cerca
Màquina Enigma

L'Enigma era una màquina portàtil per a encriptar i desencriptar missatges. Més exactament, "Enigma" era una família de màquines criptogràfiques electromecàniques de rotor, desenvolupades i utilitzades durant la primera meitat del segle xx. Foren inventades per l'enginyer alemany Arthur Scherbius a finals de la Primera Guerra Mundial,[1] i els primers models es van utilitzar en l'àmbit comercial a principis dels anys vint, tot i que diversos països adoptaren la màquina per emprar-la en l'àmbit governamental i militar, com és el cas de l'Alemanya nazi d'abans i durant la Segona Guerra Mundial.[2] Es van produir diversos models d'aquesta màquina, però els models alemanys emprats per la Wehrmacht són els més populars.

Malgrat que els alemanys creien que era inviolable, els aliats van trencar-ne la clau i en van desxifrar molts missatges.

Descripció[modifica | modifica el codi]

El cablejat de l'Enigma mostra el seu funcionament. La tecla "A" serà codificada a una "D". D dóna com a resultat A, però A mai no dóna A. Aquesta propietat fa més segura la transmissió de missatges, però podia ser aprofitada pels criptoanalistes.
Es mostra l'acció combinada dels rotors de l'Enigma per a dues lletres consecutives. El corrent passa cap a un seguit de rotors, entra i surt del reflector, i torna a passar pels rotors. Les línies grises són unes altres possibles rutes de cada rotor. La lletra A dóna un resultat diferent quan es prem la tecla dos o més cops. La primera vegada és una G, la segona una C. Això és perquè el rotor dret ha fet una passa endavant i envia el corrent per un camí diferent. Els altres rotors també avancen però més a poc a poc, no a cada tecla que es premi.

Com les altres màquines de rotor, la màquina Enigma és un conjunt de subsistemes mecànics i elèctrics. El mecànic és un teclat alfanumèric, i un seguit de discos giratoris anomenats rotors units a un eix. Hi ha uns mecanismes que fan avançar un o més rotors quan es toca una tecla. El mecanisme per a avançar pot ser diferent segons el model. El més habitual era que el rotor dret fes una passa cada vegada que es premia una tecla, i els altres ho feien ocasionalment. Per tant, si es prem la mateixa tecla dos o més cops seguits, el resultat és diferent cada vegada. Cada cop es fa un circuit elèctric diferent.

Quan es prem una tecla, es tanca un circuit, el corrent passa pels diferents components i al final encén la bombeta de la lletra resultant. Per exemple, per encriptar un missatge que comença per ANX..., l'operador hauria primer de prémer la tecla A, i s'encendria la lletra Z. Per tant, la Z seria la primera lletra del text codificat. Després es prem la N, després la X i així. Com que les rutes elèctriques a dins de l'Enigma canviaven constantment a causa de la rotació del rotors, l'encriptació era polialfabètica i això feia l'Enigma molt segura.

La màquina[modifica | modifica el codi]

Funcionament[modifica | modifica el codi]

La màquina Enigma va ser dispositiu electromecànic, que significa que utilitzava una combinació de parts mecàniques i elèctriques. El mecanisme estava construït fonamentalment per un teclat similar al de les màquines de escriure on les seves tecles eren interruptors elèctrics, un engranatge mecànic i un paper de llums amb les lletres de l’alfabet.

La part elèctrica consistia en una bateria que encenia una làmpada d’una sèrie d’elles, que representaven cadascuna de les diferents lletres de l’alfabet. Es pot observar a la part inferior de la imatge adjunta el teclat, i las làmpades són els circuits que apareixen amunt d’aquest.

El cor de la màquina Enigma era mecànic i constava de diversos rotors connectats entre si. Cada rotor era un disc circular pla amb 26 contactes elèctric a cada cara, un per cada lletra de l’alfabet. Cada contacte d’una cara estava connectat o cablejat a un contacte diferent de la cara contraria. Per exemple, a un rotor en particular, el contacte numero 1 d’una cara podia estar connectat amb el contacte numero 14 de l’altra cara i el contacte numero 5 d’una cara amb el numero 22 de l’altre. Cadascun dels cinc rotors proporcionats amb la màquina Enigma estava cablejat d’una manera diferent i els rotors utilitzats per l’exercit alemany posseïen un cablejat diferent als models comercials.

Dins de la màquina havia, a la majoria de les versions, tres ranures per albergar els rotors. Cadascun dels rotors encaixava a la ranura corresponent de manera que els seus contactes de sortia connectaven, a la majoria dels casos, a un reflector que connectava el contacte de sortida del tercer rotor amb un altre contacte del mateix rotor per realitzar el mateix procés però en sentit contrari i per una ruta diferent. L’existència del reflector diferencia la màquina Enigma d’altres màquines de xifrat de la època basades en rotors. Aquest element, que no estava inclòs a les primeres versions, possibilitava que la clau utilitzada pel xifrat es pogués utilitzar al desxifrat del missatge. Es poden observar a la part superior de la imatge els tres rotors amb les seves corresponents protuberàncies dentades que permetien girar-los a ma, col·locant-los en una posició determinada.

Quan es premia una tecla al teclat, per exemple, la corresponent a la lletra A, la corrent elèctrica procedent de la bateria es dirigia fins el contacte corresponent a la lletra A del primer rotor. La corrent travessava el cablejat intern del primer rotor i es situava, per exemple, en el contacte corresponent a la lletra J al costat contrari. Suposem que aquest contacte del primer rotor estava alineat amb el contacte corresponent a la lletra X del segon rotor. La corrent arribava al segon rotor i seguia el seu camí a traves del segon i tercer rotor, el reflector i de nou a traves dels tres rotors al camí de tornada. Al final del trajecte, la sortida del primer rotor es connectava a la làmpada corresponent a una lletra, distinta de la A, al panel de llums. El missatge de xifrat s’obtenia per tant substituint les lletres del text original per les proporcionades per la màquina.

Cada cop que s’introduïa una lletra al missatge original, prement la tecla corresponent al teclat, la posició dels rotors variava. Degut a aquesta variació, a dues lletres idèntiques al missatge origina, per exemple AA, els hi corresponien dues lletres diferents en el missatge de xifrat, per exemple QL. A la majoria de les versions de la màquina, el primer rotor avançava a una posició amb cada lletra. Quan s’havien introduït 26 lletres i per tant el primer rotor havia completat una volta sencera, s’avançava una osca la posició del segon rotor, i quan aquest acabava la seva volta, es variava la posició del tercer rotor. El numero de passos provocava aquest avanç de cascun dels rotors, era un paràmetre configurable per l’operari.

Com que el cablejat de cada rotor era diferent, la seqüència exacta dels alfabets de substitució variava segons quins rotors estaven instal·lats a les ranures (cada màquina disposava de cinc), el seu ordre d’instal·lació i la posició inicial de cadascun. Aquestes dades eren conegudes amb el nom de configuració inicia, i eren distribuïdes, mensualment al principi i amb més freqüència a mesura que avançava la guerra, en llibres als usuraris de les màquines.

El funcionament de les versions més comuns de la màquina Enigma era simètric en el sentit de que el procés de desxifrat era anàleg al procés de xifrat. Per obtenir el missatge original només s’havia d’introduir les lletres del missatge a la màquina i aquest retornava una a una les lletres del missatge original, sempre i quan la configuració inicial de la màquina fos idèntica a la utilitzada per xifrar la informació.


Criptoanàlisi bàsic[modifica | modifica el codi]

Els xifrats poden ser desxifrats i la manera més efectiva depèn del mètode de xifrat. Al començament de la Primera Guerra Mundial els departaments de desxifrat eren suficientment avançats com per poder descobrir la majoria dels xifrats. Gran part d’aquestes tècniques es basaven en aconseguir suficients textos xifrats amb una clau particular. A partir d’aquests textos, amb suficient anàlisi estadístic, es podien reconèixer patrons en incloure la clau.

En la tècnica de la anàlisis de freqüències, les lletres i els patrons de les lletres son la pista. Donat que a cada idioma apareixen certes lletres amb molta més freqüència que d’altres, contar el numero de vegades que apareix cada lletra en el text de xifrat generalment desvela la informació sobre probables substitucions en els xifrats utilitzats de manera freqüent en la substitució.

Máquina Enigma a bordo de un Sd.KFz 251 de Heinz Guderian.

Els analistes cerquen normalment algunes lletres i combinacions freqüents. Per exemple, en anglès, E, T, A, O, I, N i S són generalment fàcils d’identificar per ser molt freqüents. Un cop s’identifiquen alguns o tots aquests elements, el missatge es desxifra parcialment, revelant més informació sobre altres substitucions probables. L’anàlisi de freqüència simple confia en que una lletra es substituïda sempre per una altra lletra del text original en el text xifrat; si aquest no és el cas, la substitució és més difícil.

Durant molt de temps, els criptògrafs van ocultar les freqüències utilitzans diverses substitucions diferents per les lletres més comuns, però això no pot ocultar completament els patrons en les substitucions per les lletres del text original. Aquest codis van ser molt utilitzats al voltant de l’any 1500.

Una tècnica per fer més difícil l’anàlisi de freqüència és utilitzar una substitució diferent per cada lletra, no només les comuns. Aquest procés seria normalment molt costos en temps i requeriria que totes dues parts intercanviessin els seus patrons de substitució abans d’enviar missatges xifrats. A meitat del segle XV una nova tècnica va ser intentada per Alberti, ara coneguda generalment com a xifrat polialfabètic, que va proporcionar una tècnica simple per crear una multiplicitat de patrons de substitució. Les dues parts intercanviaven una quantitat petita d’informació (referida com la clau) i continuaven amb una tècnica senzilla que produïa molts alfabets de substitució, i moltes substitucions diferents per cada lletra del text original. La idea era fàcil i eficaç, però va resultar ser més difícil de lo esperat. Molts xifrats van ser implantacions parcials del concepte, i eren més fàcils de trencar que els anteriors.

Es van trigar centenars d’anys per aconseguir mètodes fiables per trencar xifrats polialfabètics. Les noves tècniques es van basar en la estadística per descobrir informació sobre la clau utilitzada per un missatge. Aquestes tècniques cerquen la repetició dels patrons al text xifrat, que proporcionarà pistes sobre la llargada de la clau. Un cop es sabut això, el missatge, es converteix en una sèrie de missatges, cadascun amb la lleva llargada de la clau, als quals se’ls pot aplicar l’anàlisi de freqüència normal. Charles Babbage, Friedrich Kasiski i William F. Friedman van aportar molta feina per desenvolupar aques tècniques.

Es va recomanar als usuaris dels xifrats utilitzar no només una substitució diferent per cada lletra, sinó també una clau molt llarga, de manera que les noves tècniques de xifrat erressin (o que com a mínim fossin més complicades). Això representa una gran dificultat perquè intercanviar missatges amb claus més grans requereix més esforç i més probabilitat d’error. El xifrat ideal d’aquest tipus és aquell el qual té una clau tan llarga que es pogués generar un patró simple, produint un xifrat en el qual hi haguessin tants alfabets de substitució que el compte d’ocurrències i els atacs estadístics fossin impossibles.

L’ús de rotors múltiples en Enigma va donar un mètode simple per determinar quin alfabet de substitució utilitzar per un missatge en particular (al procés de xifrat) i per un text xifrat (en el desxifrat). En aquest aspecte va ser similar al xifrat polialfabètic. No obstant això, a diferencia de la majoria de les variants del sistema polialfabètic, Enigma no tenia una longitud de clau obvia, degut a que els rotors generaven una nova substitució alfabètica a cada pulsació i tota la seqüència d’alfabets de substitució podia canviar-se fent girar un o més rotors, canviant l’ordre dels rotors, etc., abans de començar una nova codificació. En el sentit més simple, Enigma va tenir un repertori de 26x26x26 = 17.576 alfabets de substitució per qualsevol combinació i ordre dels rotors donats. Mentre el missatge original no fos de més de 17.576 pulsacions, no es repetia cap alfabet de substitució. Però les màquines Enigma van afegir altres possibilitats. La seqüència dels alfabets utilitzats era diferent si els rotors eren col·locats en la posició ABC, en comparació amb ACB; hi havia un anells que rotava a cada rotor que es podria fixar en una posició diferent, i la posició inicial de cada rotor era també variable. I la majoria de les màquines Enigma d’ús militar fan afegir un “stecker” (tauler de interconnexió) que va canviar algunes assignacions de clau (8 o més depenent del model). Aquesta clau es pot comunicar fàcilment amb un altre usuari. Són algunes valors simples: rotors que utilitzar, ordre del rotor, posició dels anells, posició inicial i ajustos del tauler d’interconnexió.

El mètode de xifrat[modifica | modifica el codi]

Si la configuració estigués disponible, un criptoanalista podria posar un equip Enigma amb la mateixa configuració i desxifrar el missatge. Es podrien enviar llibres de configuracions que utilitzar, però podrien interceptar-se. En canvi, els alemanys va establir un sistema que va barrejar els dissenys.

Al començament de cada mes es donava als operadors d’Enigma un nou llibre que contenia les configuracions inicials per la màquina. Per exemple, en un dia les configuracions podien ser posar el rotor 1 en la esquerda 7, el 2 en la 4 i el 3 en la 6. Llavors, l’esquerda 1 estaria a la lletra X, la 2 a la J i la 3 a la A. Com tots els rotors podien permutar entre ells a la màquina, amb tres rotors en tres esquerdes s’obtenien 3x2x1 = 6 combinacions per considerar, per donar un total de 105.456 alfabets possibles.

L’operador seleccionaria algunes altres configuracions pels rotors, només definit les posicions dels rotors. Un operador en particular podria seleccionar ABC i aquests es convertien en la configuració del missatge per aquesta sessió de xifrat. Els alemanys, creient que tindrien més seguretat al procés, teclejaven dos cops, però això es va esbrinar com una de les esquerdes de seguretat per trencar Enigma. Els resultats serien codificats per a que la seqüència ABC teclejada dos cops es convertís en XHTLOA. L’operador llavors girava els rotors a la configuració del missatge ABC. Es tecleja la resta del missatge i s’envia per radio.

A l’extrem receptor, el funcionament s’inverteix. L’operador posa la màquina en la configuració inicial e introdueix les primeres sis lletres del missatge. Al fer això veia ABCABC a la màquina. Llavors girava els rotors a ABC e introduïa la resta del missatge xifrat, desxifrant-lo.

Aquest sistema era excel·lent perquè el criptoanalista es basava en algun tipus d’anàlisis de freqüències. Tot i que s’enviessin molts missatges en qualsevol dia amb sis lletres a partir de la configuració inicial, s’assumia que aquestes lletres eren al atzar. Mentre que un atac en el propi xifrat era possible, a cada missatge es va utilitzar un xifrat diferent, cosa que va fer que la anàlisis de freqüència fos inútil a la practica.

La màquina Enigma va ser molt segura, tant que els alemanys van confiar molt en ella. El tràfic xifrat amb Enigma va incloure de tot, des de missatges d’alt nivell sobre les tàctiques i plans, a trivialitats com informes de climatologia, i fins i tot, felicitacions d’aniversaris.

Exemple de xifrat[modifica | modifica el codi]

Aquest és un missatge real enviat el 7 de juliol del 1941 per la Divisió SS-Totenkopf sobre la campanya contra Rússia, en la Operació Barbarroja. El missatge (enviat en dos parts) va ser desxifrat per Geof Sullivan i Frode Weierud, dos membres del Crypto Sumilation Group (CSG).

1840 - 2TLE 1TL 179 - WXC KCH
RFUGZ EDPUD NRGYS ZRCXN
UYTPO MRMBO FKTBZ REZKM
LXLVE FGUEY SIOZV EQMIK
UBPMM YLKLT TDEIS MDICA
GYKUA CTCDO MOHWX MUUIA
UBSTS LRNBZ SZWNR FXWFY
SSXJZ VIJHI DISHP RKLKA
YUPAD TXQSP INQMA TLPIF
SVKDA SCTAC DPBOP VHJK
2TL 155 - CRS YPJ
FNJAU SFBWD NJUSE GQOBH
KRTAR EEZMW KPPRB XOHDR
OEQGB BGTQV PGVKB VVGBI
MHUSZ YDAJQ IROAX SSSNR
EHYGG RPISE ZBOVM QIEMM
ZCYSG QDGRE RVBIL EKXYQ
IRGIR QNRDN VRXCY YTNJR
SBDPJ BFFKY QWFUS

El missatge va ser xifrat per el model de 3 rotors amb el reflector B (s’ha d’utilitzar el mateix model o un compatible per desxifrar-lo). Per desxifrar el missatge, primer s’ha de configurar la màquina amb la informació diària especificada als llibres de codis alemanys per a aquells mes. Pel dia 7 de juliol de 1941 era:

Tag  Walzenlage  Ringstellung  ---- Steckerverbindungen ----
  7  II  IV  V     02 21 12    AV BS CG DL FU HZ IN KM OW RX

L’operador de la màquina devia col·locar aquesta configuració abans d’enviar o rebre el primer missatge del dia. Agafava els rotors (Walzenlage) 2, 4 i 5 (en aquest ordre) i movia l’anell de cada rotor a las posicions 2, 21 i 12 respectivament, com s’indica en Ringstellung (a vegades la configuració es podia veure en les lletres corresponents a la posició de l’anell, en aquest cas serien B U L), i els inseriria a la màquina. També devia col·locar els cables connectors unint a la part baixa de la màquina les posicions que s’indiquen en Steckerverbindungen, unint A amb V, B amb S, C amb G, etc. Aquesta configuració es mantindrà en tots els missatges del dia, i amb ella ja es pot començar a desxifrar missatges. El missatge original es va enviar en 2 parts (ja que la mida màxima per cada missatge eren de 250 lletres). Cada missatge tenia una capçalera, que s’enviava sense xifrar (i era l’única part del missatge que podia contenir números), en aquest cas:

1840 - 2TLE 1TL 179 - WXC KCH
2TL 155 - CRS YPJ

A la capçalera s’indicava l’hora a la que s’enviava el missatge (en aquest cas 1840 representava les 18:40), quantes parts componien el missatge (seguit de TLE, de “Teile”) i quina part era (seguit de TL, de “Teil”) si hi havia més d’una, la midadel text xifrat i dos grups de lletres (que eren diferents i aleatòries a cada missatge), el primer grup era la configuració inicial, i el segon la clau xifrada del missatge. L’operador movia els 3 rotors a la lletra indicada pel primer grup (W X C) i teclejava l’altre grup, la clau xifrada (K C H), que li donarà a l’operador la clau sense xifrar, (en aquest cas B L A). A continuació posarà els 3 rotors en les posicions B L A i teclejarà la resta del missatge xifrat tenint en compte que les 5 primeres lletres corresponen al 'Kenngruppe, que indicarà qui pot llegir el missatge (en aquest cas es pot ignorar).

AUFKL XABTE ILUNG XVONX
KURTI NOWAX KURTI NOWAX
NORDW ESTLX SEBEZ XSEBE
ZXUAF FLIEG ERSTR ASZER
IQTUN GXDUB ROWKI XDUBR
OWKIX OPOTS CHKAX OPOTS
CHKAX UMXEI NSAQT DREIN
ULLXU HRANG ETRET ENXAN
GRIFF XINFX RGTX

Fent el mateix procediment amb l’altra part del missatge el resultat és:

DREIG EHTLA NGSAM ABERS
IQERV ORWAE RTSXE INSSI
EBENN ULLSE QSXUH RXROE
MXEIN SXINF RGTXD REIXA
UFFLI EGERS TRASZ EMITA
NFANG XEINS SEQSX KMXKM
XOSTW XKAME NECXK

Unint els dos missatges i usant les “X” com espais (alguns espais falten al missatge origina) i algunes abreviatures (entre claudàtors) queda:

AUFKL[AERUNG] ABTEILUNG VON KURTINOWA KURTINOWA
NORDWESTL[ICH] SEBEZ SEBEZ UAF FLIEGERSTRASZE
RIQTUNG DUBROWKI DUBROWKI OPOTSCHKA OPOTSCHKA UM
EINS AQT DREI NULL UHR ANGETRETEN ANGRIFF INF RGT
DREI GEHT LANGSAM ABER SIQER VORWAERTS EINS SIEBEN NULL
SEQS UHR ROEM[ISCHEN ZIFFER] EINS INF RGT DREI
AUF FLIEGERSTRASZE MIT ANFANG EINS SEQS KM KM
OSTW[EST] KAMENEC K

Els noms propis es posaven dues vegades seguides (per exemple, KURTINOWA) i algunes combinacions de lletres es substituïen, per exemple, CH per Q (en SIQER, que és sicher), i els números s’havien d’escriure amb lletres. El text traduït seria:

Unitat de reconeixement de Kurtinowa, nord-est de Sebez al corredor de vol en direcció a Dubrowki, Opotschka. Va començar a moure’s a les 18:30. Ataqui. Regiment d'infanteria 3 avança a poc a poc però segur. Hora 17:06, I (nombre romà) Regiment d'infanteria 3 en el corredor de vol començant a 16 Km aquest-oest de Kamenec. Comandant de Divisió.

Vegeu també[modifica | modifica el codi]

Dispositiues de xifrat de la Segona Guerra Mundial::

En el cine:

Referències[modifica | modifica el codi]

  1. Singh, Simon. The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography. Londres: Fourth Estate, p. 127. ISBN 1-85702-879-1. 
  2. Lord, Bob. «1937 Enigma Manual by: Jasper Rosal – English Translation», 1998–2010. [Consulta: 31 maig 2011].

Enllaços externs[modifica | modifica el codi]