Page 1

Treball de recerca

Desxifrant l’enigma de la criptografia )!),$%'!,/!]&>>@[$!%'.%>)=&#]).!-

Paolo Gnutti Sandiumenge Dirigit per Isabel ValderrĂĄbano 2n de Batxillerat 1 INS Montserrat 5 de novembre de 2015


Agraïments Vull agrair totes les persones que m’han ajudat en un moment o altre al llarg de tota la realització del treball de recerca. La tutora que m’ha dirigit el treball, la Isabel Valderrábano, per la seva dedicació i el seu temps. La Iolanda Guevara, tècnica de l'àmbit matemàtic de la Direcció General de l'ESO i el Batxillerat, que m'ha proporcionat fonts d'informació i contactes. L'Antonio Pérez Sanz, autor de l'article Alant Turing y la manzana envenenada, pel seu assessorament i els seus consells. El Xavier Roca, que m'ha orientat i m'ha ensenyat a programar. El meu germà, Gerard Gnutti, que m'ha ajudat en la programació. I, finalment, els meus pares, Rudy Gnutti i Teresa Sandiumenge, pel seu suport.

2


ÍNDEX

1.

Preàmbul ............................................................................................................................... 5 1.1. Motivacions ........................................................................................................................ 5 1.2. Hipòtesi .............................................................................................................................. 6 1.3. Estructura ........................................................................................................................... 6

2. La criptologia ............................................................................................................................ 8 3. Criptografia ............................................................................................................................... 9 3.1. Introducció ......................................................................................................................... 9 3.2. Història i evolució ............................................................................................................. 11 3.3. Conceptes bàsics .............................................................................................................. 18 3.4. Criptografia clàssica.......................................................................................................... 20 3.4.1.Transposició ............................................................................................................... 20 3.4.2. Substitució ................................................................................................................. 21 3.5. Criptografia moderna ....................................................................................................... 22 3.5.1. Criptografia simètrica ................................................................................................ 23 3.5.2. Criptografia asimètrica .............................................................................................. 24 4. Criptografia a la Segona Guerra Mundial .............................................................................. 26 4.1. Context històric ................................................................................................................ 26 4.2. La màquina Enigma .......................................................................................................... 26 4.2.1. La seva creació .......................................................................................................... 27 4.2.2. Funcionament ........................................................................................................... 28 4.2.3. Transmissió de missatges .......................................................................................... 31 4.2.4 Desxifrant Enigma ...................................................................................................... 33 4.2.5. Biografia d’Alan Turing .............................................................................................. 37 5. Creació d’un programa ........................................................................................................... 39 5.1. Descripció ......................................................................................................................... 39 5.2. Esquema ........................................................................................................................... 41 5.3. Pas a pas ........................................................................................................................... 43 5.4. Manual per utilitzar el programa ..................................................................................... 48 5.5. Proves ............................................................................................................................... 49

3


6. Conclusions ............................................................................................................................. 51 7. Bibliografia .............................................................................................................................. 52 Annex......................................................................................................................................... 54 Programa ............................................................................................................................... 54

4


1.

Preàmbul

1.1. Motivacions Durant tota l'etapa de l’ESO pensava que era injust que tots els treballs que fèiem fossin de temes concrets i no trobava lògic que no poguéssim investigar sobre allò que ens agradava. Per això sempre que sentia parlar sobre el Treball de Recerca pensava que era una oportunitat per fer el que volgués, que ningú m’impediria poder aprendre i explorar el tema que fos.

Però llavors vaig començar el primer de Batxillerat, i lògicament, ja tenia el TR al cap, donant voltes als diferents temes sobre els quals podia treballar, però no tenia cap idea clara. El temps passava i jo no acabava de trobar el tema ideal, un tema no donava prou per fer un treball tan llarg, l’altre era un tema massa general... Veia com molts dels meus companys ja avançaven en els seus treballs i que jo m’estava quedant enrere i el temps se’m menjava, en aquest moment va ser quan vaig descobrir que tot el que pensava durant els anys anteriors no era tan cert, haver d’escollir un tema qualsevol no era tan magnífic com semblava. Més aviat el contrari, em va semblar la cosa més difícil del món, se’m feia una muntanya pensar que havia de triar el tema ideal, en el qual hagués de treballar durant gairebé un any. Per a mi va ser i és una de les parts més difícil del Treball de Recerca. Al principi de tot pensava en temes que m’atraguessin i em motivessin, i a mi el que sempre m’ha agradat és el futbol, però vaig descartar aquest tema perquè no veia per on podia tirar. Llavors vaig centrar-me a trobar algun tema relacionat amb una assignatura que m’agradés, aquesta assignatura és Matemàtiques. A partir d’aquí vaig començar a buscar diversos temes fins que vaig descobrir la ciència de la criptologia i des del primer moment em va atreure molt. Però aquí no es va acabar el problema, ja que dins la criptologia hi havia moltíssim material del qual podia parlar. Vaig decidir tirar cap a la branca de la criptografia, i dins d’aquesta havia de buscar un tema concret en el qual centrar-me. Per casualitat aquell mes es va estrenar al cinema una pel·lícula sobre la Màquina Enigma i el seu desxifrador, Alan Turing, i després de veure-la vaig saber que aquell apartat de la criptografia havia de 5


ser el punt en el qual m’havia de centrar, ja que va ser una etapa importantíssima per a aquesta ciència. I ho vaig tenir clar, aquest era el tema que havia de fer! Era un tema que m’interessava i que desconeixia, que m’agradaria aprendre’n i del qual no em cansaria quan hi treballés; i d’altra banda, era assequible quant a conceptes que havia d'investigar.

1.2. Hipòtesi La hipòtesi del meu treball és: la criptografia actualment és tan complexa que algú com jo, amb els coneixements bàsics sobre aquesta ciència, seria incapaç de crear un mètode i implementar-lo en un programa informàtic.

1.3.

Estructura

Un dels meus objectius en saber quin tema tractaria en el meu treball era poder trobar un apartat de la criptografia en el qual em pogués centrar, i després de veure la pel·lícula Desxifrant Enigma (The imitation game) ho vaig tenir clar. Em volia endinsar en la importància que havia tingut la criptografia en una guerra tan important com la Segona Guerra Mundial, i concretament a Alemanya; tot i que hi ha molts altres països que també la van utilitzar, en aquest treball no ho tractaré.

Crec que era important estudiar en profunditat la criptografia per després poder entendre tot el que va passar a la guerra i per què va tenir tanta transcendència, ja que aquella etapa va marcar un abans i un després en la criptografia.

I d’altra banda, i relacionat amb la hipòtesi concreta del meu treball, era necessari assolir els coneixements per poder crear un mètode criptogràfic i implementar-lo en un programa, per poder comprovar aquesta hipòtesi. Sabent tot això, havia de pensar com estructurar-ho tot perquè s’entengués bé i fos interessant alhora. Llavors vaig pensar a fer primer una part per aprendre i assolir 6


diferents conceptes, perquè així la segona i tercera parts del treball fossin més intel·ligibles.

En el primer apartat he introduït la criptologia i seguidament m’he centrat en la disciplina més coneguda d’aquesta ciència: la criptografia. Dins d’aquesta, he explicat els conceptes bàsics i com ha evolucionat al llarg de la història, fins a arribar a ser la ciència que coneixem actualment. En la segona part del treball ja m’endinso en la importància de la criptografia durant la Segona Guerra Mundial a Alemanya, i concretament m’he centrat en la màquina Enigma i la repercussió que va tenir en el desenvolupament de la guerra.

L’última part és la pràctica, en què he creat un programa informàtic. Primerament explico el mètode i com treballa el programa, i després comprovo que funciona correctament.

7


2. La criptologia L’Enciclopèdia Catalana defineix la criptologia com: “Disciplina científica que es dedica a l’estudi de l’escriptura secreta, és a dir, que estudia els missatges que, processats d’una determinada manera, es converteixen en difícils o impossibles de llegir per entitats no autoritzades.” A partir d’aquesta definició podem saber que aquesta ciència estudia tot el que envolta l’escriptura secreta.

La criptologia va néixer en el mateix moment en què es va començar a usar l’escriptura. En totes els temps hi ha hagut la necessitat d'amagar informació als enemics. Això va fer que sorgís una altra necessitat: poder descobrir la informació secreta que amagaven aquests enemics.

Aquestes dues maneres de treballar, divideixen aquesta disciplina en dos grans apartats: -

La criptografia: s’ocupa d’estudiar la manera d’encriptar missatges perquè sigui impossible poder-los llegir sense estar autoritzat. Aquesta ciència és la que estudiarem en aquest treball.

-

El criptoanàlisi: És el conjunt de tècniques utilitzades per a desxifrar codis encriptats sense conèixer el sistema emprat per a la codificació. Típicament, això es tradueix en desxifrar un missatge o en aconseguir la clau secreta de xifrat. El terme criptoanàlisi també s’utilitza de manera general per referir-se a qualsevol intent de trencar la seguretat d’altres tipus d’algoritmes i protocols criptogràfics. El terme no inclou els atacs que no es basen en els punts febles de la criptografia utilitzada a la codificació.

També

formen

part

d’aquesta

ciència

dos

camps

més,

l’esteganografia

i

l’estegoanàlisi. Els dos tenen els mateixos objectius que les ciències anteriors, però els missatges no són visibles, sinó que els amaguen en vídeos, imatges, àudios… En aquest treball no s'hi entrarà.

8


3. Criptografia

3.1. Introducció La criptografia, del grec kρυπτός (kryptos) que significa ‘ocult’ i γραφή (graphien) que podem traduir com a ‘escriure’, és l’estudi dels mètodes utilitzats per enviar missatges de manera encoberta per tal que només el receptor (autoritzat per l’emissor) sigui capaç de llegir-los i entendre’ls. La definició clàssica d’aquesta ciència és “art d’escriure missatges en clau secreta”. Però aquesta concepció de la criptografia que es tenia fa anys com un art ha desaparegut i actualment ja la podem considerar una branca de les matemàtiques. A partir de l’any 1949, quan Claude E. Shannon va publicar el llibre La teoria de les comunicacions secretes, podem parlar de la criptografia com una disciplina purament científica, però amb profundes arrels humanístiques de caràcter filosòfic, històric, lingüístic i religiós. Aquesta disciplina ha estat present durant molts anys en la història, des de l’època egípcia, en què s’encriptaven missatges a través de jeroglífics, fins avui dia, en què està molt evolucionada. Més endavant faré un repàs de les diferents civilitzacions en les quals ha tingut més importància, per veure les diferències que hi ha en cadascuna d’elles, ja que durant tot aquest temps ha estat protagonista directa de diversos esdeveniments històrics relacionats amb la guerra i la pau, l’espionatge, la diplomàcia i la caiguda i el ressorgiment d’imperis i civilitzacions.

Aquesta ciència aplicada ha crescut tant que actualment estem envoltats de sistemes que utilitzen la criptografia per ocultar informació i que nosaltres ni ens n’adonem. Per exemple, cada vegada que mantenim una conversa a través d’un mòbil de tecnologia GSM: La nostra veu es digitalitza; és a dir, es transforma en una seqüència d’uns i zeros. Aquesta seqüència d’uns i zeros es transmet, per ones, des del telèfon de l’emissor a una estació intermèdia, i aquesta estació la redirigeix cap al telèfon receptor. Aquestes dues transmissions poden ser fàcilment escoltades i intervingudes per un agent extern 9


no autoritzat, per això s’utilitza alguna tècnica criptogràfica, per distorsionar la freqüència fent que sigui segura.

El telèfon mòbil emissor, abans de transmetre la conversa, la protegeix mitjançant una xifra de flux. L’estació, quan rep la seqüència, la desxifra. Ambdós processos, xifratge i desxifratge, depenen d’una única clau que ha de ser coneguda només pel telèfon emissor i per l’estació intermediària. El procés es repeteix en la segona part de la transmissió: l’estació aplica una xifra de flux a la seqüència i l’envia al receptor, que la desxifra. També en aquest cas ha d’existir una única clau compartida únicament per l’estació i el telèfon receptor. Tot aquest procés es pot veure esquematitzat a la figura següent.

Il·lustració 1. Esquema sobre el procés criptogràfic.

Com veiem, la feina de l’estació és importantíssima, ja que treballa en els dos processos i per fer-ho ha de conèixer ambdues claus, la del receptor i la de l’emissor. Aquesta estació és capaç de conèixer totes les claus, ja que és propietat de l’empresa que hi hem assignat el contracte de la telefonia mòbil. I quan formalitzem aquest contracte, se’ns proporciona una clau que queda impresa en la targeta intel·ligent inserida en el nostre aparell.

Aquest exemple només és un dels molts que hi ha en la nostra vida quotidiana. He volgut explicar aquest cas perquè és entenedor i ens permet comprendre una mica millor de què tracta aquesta ciència i com treballa.

Però cal especificar que en la criptografia existeix una desconfiança o perill que el missatge que es vol transmetre sigui interceptat per una tercera persona que no estigui autoritzada a poder veure el missatge. Aquest enemic, si és que existeix, intentarà 10


desxifrar els missatges secrets amb tots els mitjans que pugui. Amb aquest propòsit emprarà un conjunt de tècniques i mètodes que constitueixen una ciència coneguda com a criptoanàlisi, la qual no tractaré en aquest treball, ja que s’escapa del seu abast.

3.2. Història i evolució La criptografia va néixer en el mateix moment en què es va començar a utilitzar l’escriptura. L’art de codificar missatges per enganyar els enemics i l’art de descodificar els missatges captats, ha anat canviant d’estratègies i mètodes al llarg de la història fins a arribar a convertir-se en el que és avui dia: una ciència que fa servir les matemàtiques com a eina perfecta per als seus interessos.

No es pot saber exactament qui van ser els primers a utilitzar el llenguatge criptogràfic, hi ha teories que diuen que els egipcis ja s’enviaven missatges secrets a través dels jeroglífics, però no hi ha la convicció total que fossin intents seriosos de comunicació secreta.

En aquest apartat faré una breu descripció dels mètodes de xifratge que crec que són més significatius al llarg de la història i evolució de la criptografia, des dels seus inicis fins a la Primera Guerra Mundial. Més endavant parlaré dels sistemes criptogràfics utilitzats pels alemanys en la Segona Guerra Mundial (als quals dedico tot un capítol) i de la criptografia moderna. ●

Escitala espartana

El que sí podem saber del cert és que l'origen d'aquesta ciència (si els egipcis no la utilitzaven) el trobem l'any 400 a.C. S’utilitzava a l'antiga Grècia pels espartans, que s'enviaven missatges ocults entre les tropes militars quan estaven en guerra amb els atenencs.

Els espartans van crear un mètode criptogràfic anomenat Escitala, que consistia a escriure el missatge en una cinta enrotllada al voltant d'un llistó de fusta, fent que al desenrotllar la cinta només es pogués llegir un missatge sense sentit. Però el receptor

11


només havia de tornar a enrotllar la cinta en un llistó del mateix diàmetre per poder llegir el missatge ocult.

Va ser el primer mètode basat en la transposició.

Il·lustració 2. Escitala espartana.

Il·lustració 3. Resultat en enrotllar la cinta en el llistó.

El Xifratge de Cèsar

Com es pot deduir del seu nom, aquest mètode va ser creat per la necessitat que tenia d'ocultar missatges l'exèrcit de Juli Cèsar l’any 100 a.C.

Aquest un mètode de xifratge per substitució; això vol dir que cada lletra del text original se substitueix per una altra lletra de l'alfabet. En aquest xifratge cada lletra se substituïa per una lletra 3 posicions més endavant; al nostre alfabet, una A se substituiria per un D i una B, per una E. Tenint en compte que l’alfabet romà només tenia 21 lletres, el xifratge de Cèsar es basa en les següents substitucions:

A B C D E FG H I J K L M N O P Q R S T V X D E F G H I J K LM NO P Q R S T V X A B C

Disc d'Alberti

En el segle XV, Leon Battista Alberti, un humanista polifacètic, va inventar el primer sistema criptogràfic de xifratge per substitució polialfabètic. Aquesta idea, que va descriure en el seu tractat De Cifris, la va aplicar a la pràctica creant el Disc d'Alberti. 12


Aquest disc permet transformar texts sense que existeixi una correspondència única entre l'alfabet del missatge i l'alfabet utilitzat per encriptar. Amb aquest sistema cada lletra que es desitgi xifrar es correspon amb un caràcter diferent cada vegada que s'utilitzi una clau secreta diferent.

Com podem veure en la il·lustració 4, el Disc d'Alberti està format per dos discos, un d'extern i un d’intern. El gran, que envolta el petit, està compost per 24 caselles i comprèn els 20 caràcters en llatí (excepte la H, J, K, Ñ, U, W, Y) i els nombres 1, 2, 3 i 4. És fix, no es mou en cap moment. En canvi, el disc interior és mòbil i conté els 24 caràcters en llatí i també el símbol & pel text xifrat.

Il·lustració 4. Disc d’Alberti.

El funcionament d'aquest mètode és molt senzill, ja que cada lletra del disc de l'interior li correspon el caràcter del disc exterior, però com que és mòbil fa que pugui haver-hi fins a 24 substitucions diferents.

Cal destacar que es considera Leon Battista Alberti com el pare de la criptologia, tant per aquest invent com pels treballs que va fer com a criptoanalista, on va destacar més.

13


Xifratge de Vigenère

El xifratge de Vigenère, també conegut com a quadre de Vigenère, va aparèixer en el segle XVI, en què es va començar a generalitzar l’ús de la criptografia. Aquest xifratge va seguir els passos de l’avenç que havia fet Alberti amb la seva descoberta (el disc d'Alberti), però alhora el va millorar gràcies als estudis realitzats per Giovan Batista Belas, tot i que erròniament li van atribuir el mèrit a Blaise de Vigenère, i d’aquí ve el nom del xifratge. La millora de Vigenère va ser crear una substitució polialfabètica a partir d’una paraula clau. El procés per enviar un missatge de manera segura i secreta amb aquest sistema és el següent: -

Primer de tot, es busca una paraula clau amb la qual xifrar el missatge. Per exemple, MAPA.

-

S'escriu el missatge (“On han anat”) i a sota s' escriu repetidament la paraula clau tants cops com lletres té el missatge. Exemple:

Missatge Clau

O M

N A

H P

A A

N M

A A

N P

Ara s'utilitza el quadre de Vigenère per poder encriptar el missatge.

Il·lustració 5. Quadre de Vigenère.

14

A A

T M


Com es veu en la il·lustració 5, les lletres estan ordenades en files i columnes. Cal agafar la primera lletra del missatge i mirar quina fila li correspon. Seguidament es mira la columna que li correspon la lletra situada a sota de la clau i on coincideixin serà la lletra del missatge ocult. Es repeteix el procediment tantes vegades com lletres hi hagi per encriptar el missatge complet.

En el nostre exemple, que és l'utilitzat a la imatge, podem veure que la primera lletra del missatge ocult serà la A, perquè és on coincideixen la fila i la columna de les dues primeres lletres, la M i la O. Hem repetit el procés fins a arribar al missatge que volem enviar.

Text encriptat: A N W A Z A C A F

Com podem veure, el text que hem encriptat no té cap sentit ni té res a veure amb el missatge que volíem enviar (“On han anat”). Un cop enviat el text encriptat, el receptor, sabent la clau, ha de fer el procés invers del que hem fet per trobar les lletres del missatge original.

El xifratge ADFGVX Ja ens situem al segle XX. A finals de la Primera Guerra Mundial s’inventa un dels últims mètodes criptogràfics que s’encriptaven i es desencriptaven a mà, ja que els següents anys es comença a utilitzar la tecnologia per enviar missatges ocults.

Per poder encriptar un missatge amb aquest xifratge cal fer una quadrícula de 7 x 7 i a la primera fila i a la primera columna s’ha d’escriure A, D, F, G, V i X. Els 36 quadrats de l’interior es completen amb lletres de l’alfabet de manera aleatòria i els 10 nombres, del 0 al 9.

El procediment de la disposició de la quadrícula forma part de la clau, ja que si no saps l’ordre en què s’han de col·locar les lletres, no pots desxifrar el missatge.

15


La primera fase del procés per encriptar un missatge és semblant a les anteriors; si la teva primera lletra és la a, com veiem a la il·lustració 6, s'ha de substituir pel parell de lletres que li correspon a la seva línia i columna. En el nostre cas, la a seria DD.

Il·lustració 6. Taula de xifratge ADFGVX.

A la fase número dos és on es troba la innovació d’aquest sistema. Primer de tot s’ha de buscar una paraula clau que el receptor també conegui, per exemple COOKIE. S’escriu en una nova quadrícula i a sota de la clau, s’escriu el text xifrat de la fase 1. En acabar, es canvia l’ordre de les columnes col·locant-les en ordre alfabètic de la paraula clau. I seguidament, per trobar el text xifrat s'haurà d’escriure les lletres en ordre d’aquesta última quadrícula.

Per exemple si el missatge original és SEGURIDAD DE LA INFORMACIÓN. Seguint el procés explicat, el missatge després de la primera fase quedaria així: XAVDFDAXFXXDAADDAAAAVDVXDDXDAGFVAVFXVFDDVGXDAVAG. Es col·loquen aquestes

lletres en una taula, en horitzontal,

a sota de la clau

(COOKIE), tal com es veu a la primera taula de la il·lustració 7. Ara ordenem les columnes per ordre alfabètic de la paraula clau (CEIKOO), com podem veure a la segona taula de la imatge 7 i agafem les lletres en vertical. El missatge resultant serà: XAAADFVXDDAXGXGGFXAVAFVADXDDDVDVAXAADVFDVXADA. 16


Les cel·les poden quedar-se en blanc, no hi ha problema si no hi ha lletres en alguna d’elles. Finalment, quan tinguem el missatge xifrat no s’envia normal sinó que s’utilitza el codi Morse. Que s’enviï en aquest codi és el motiu de l’elecció de les lletres ADFGVX, no són escollides aleatòriament. La raó per la qual la quadrícula inicial està formada per les lletres ADFGVX és que són lletres fàcilment combinables sense possibilitat d’errors en l’enviament codificat en Morse. El missatge resultant de l’última quadrícula serà el que es convertirà en línies i punts del codi Morse.

Il·lustració 7. Exemple del procés de xifratge ADFGVX.

17


3.3. Conceptes bàsics En aquest apartat em centraré en els conceptes essencials de la criptografia per poder entendre-la millor.

Per començar, plantejaré els diferents principis bàsics de la seguretat de la informació en què es basa la criptografia, que són: la confidencialitat, la integritat, l'autenticitat i la no-repudiació. Confidencialitat: Es tracta d’assegurar que el missatge només pugui ser llegit i entès pel receptor autoritzat i per ningú més. Per exemple, si s'envia una carta i alguna persona l’agafa, obre el sobre i la llegeix, en aquell moment s’estaria trencant la confidencialitat del missatge que hem enviat. Integritat: Cal assegurar que el missatge no s’altera durant la transmissió i arriba a mans del destinatari exactament tal com l’ha enviat l’emissor. Un exemple molt clar és quan fem un dipòsit al banc per Internet. Si la quantitat de diners no és ben capturada, podria causar problemes. La integritat és molt important en les transmissions militars, ja que si arriba un missatge al receptor que no és l’original podria causar greus problemes per a les estratègies. Autenticitat: Es tracta d’evitar la suplantació de personalitat. És a dir, cal que el destinatari d’un missatge tingui una certesa absoluta sobre la identitat de l’emissor. Aquest problema es troba habitualment a Internet, ja que la majoria de transaccions que es fan, es fan a cegues, no es coneix el receptor o emissor corresponent. L’eina que s'utilitzava per evitar la suplantació de personalitat era la signatura manuscrita, però per Internet, com que no es pot utilitzar, es necessita una tècnica per verificar l’autenticitat de les persones i els missatges, que s’anomena signatura digital.

No-repudiació: És un problema complementari. Un cop rebut un missatge i comprovada la identitat del remitent (a través de la signatura digital), el remitent no pot negar de cap manera el fet d'haver enviat aquell missatge. Això fa que sigui impossible falsificar la signatura digital.

18


En la criptografia, la idea fonamental que cal tenir en compte abans de començar qualsevol procés criptogràfic és que sempre hi haurà algun agent extern no autoritzat (o sigui, diferent de l'emissor i el receptor) que, si disposa de prou recursos, serà capaç d'interceptar la comunicació i podrà llegir el missatge. Partint d'aquesta hipòtesi, l'emissor haurà de distorsionar tant com pugui el missatge perquè a l'agent extern li sigui el més difícil possible, quasi impossible, desxifrar-lo.

Per aconseguir aquesta seguretat s'haurà de seguir estrictament un procediment sobre el qual s'hauran de posar d'acord l'emissor i el receptor. Aquesta és la idea central de qualsevol procés criptogràfic.

Aquest procediment dependrà d'una clau. Aquesta clau pot ser un nombre, una paraula, una figura geomètrica, una taula d'equivalències de dos alfabets, un conjunt d'instruccions…que ens permet que l'emissor pugui xifrar el missatge i el receptor el pugui desxifrar per llegir-lo.

El conjunt de tot el procediment i la clau s'anomena criptosistema. Per tant, un criptosistema serà més o menys segur en funció de com sigui de difícil trobar la manera correcta d'invertir el procediment si s'ignora la clau.

Aquest requeriment es coneix com a principi de Kerckhoffs: la seguretat d'un mètode criptogràfic no ha de dependre del fet de mantenir secret el protocol, sinó només de mantenir secreta la clau. Aquest principi és el més important dels sis que va marcar Kerckhoffs, que s'utilitzen i se segueixen sempre a l'hora de crear un sistema criptogràfic, i són: No ha d’existir cap manera de recuperar el text inicial o la clau mitjançant el criptograma. La forma d’escollir la clau ha de ser fàcil de recordar i de modificar. Tot sistema criptogràfic ha d’estar compost per dos tipus d’informació: pública, com pot ser la família d’algoritmes que el defineixen; i privada, com és la clau que s’utilitza en cada xifratge particular. Ha de ser factible la comunicació del criptograma amb els mitjans de transmissió habituals. El sistema ha de ser fàcil d'usar. No ha de requerir coneixements especials ni tenir una llarga sèrie de regles. 19


Tots aquests principis, declarats el 1883, actualment encara són vàlids, tot i que alguns han variat una mica al llarg de la història.

Il·lustració 8. Retrat de Kerckhoffs.

3.4. Criptografia clàssica La criptografia la podem dividir en dos mètodes clàssics de xifratge, que s’han utilitzat des de la seva creació: la transposició i la substitució. A poc a poc han anat evolucionant perquè cada vegada sigui més difícil descodificar el missatge.

3.4.1.Transposició És el primer mètode que es va utilitzar per encriptar un missatge, el van crear a l’antiga Grècia quan van inventar l’Escitala, explicada en l’apartat d’història. La transposició consisteix a alterar l’ordre de les lletres en el missatge. Per exemple, si volem encriptar el missatge “missatge secret”, canviarem l’ordre de les lletres fent que sense saber com s’ha fet, sigui un missatge sense cap sentit.

Agafem el missatge anterior i fem el següent:

m

s i

a s

g t

s e

c e

El missatge encriptat és: msagsceisteert 20

e r

t


Com veiem, hem trastocat totalment el missatge que volem enviar i no té res a veure amb el missatge original. En aquest cas, la clau perquè el receptor pugui desencriptar el missatge és saber la forma en què s’ha desordenat el missatge per fer el procés invers i tornar-lo a ordenar. Si ens fixem en la teoria matemàtica, podem dir que la longitud d’un missatge transcrit és n. És a dir, que n ens dirà el nombre de caràcters que té el text. Gràcies a n també podem saber el nombre de permutacions que podem arribar a fer, perquè el màxim de permutacions possibles és igual al factorial de n: n! = n (n-1) (n-2)...1

Per veure-ho més clar he utilitzat un exemple amb les lletres a, b i c: posem que aquestes tres lletres són les que volem encriptar. O sigui, que el nostre missatge és M = a b c. En saber això, sabem que n = 3. Apliquem la fórmula que hem vist abans, 3! = 3 (3-1) (3-2) = 3·2·1 = 6. Ens ha donat que hi ha 6 possibles permutacions, que efectivament són les següents: abc, acb, bca, bac, cab, cba. Això fa que la probabilitat d’encertar quina permutació s’ha utilitzat sigui 1/n!, és a dir, una probabilitat molt baixa. En el nostre cas és alta perquè és un missatge molt curt. Quan hi ha més caràcters és molt més difícil; fixem-nos que per a un missatge de 10 caràcters, el nombre de transposicions és 10! = 3.628.800 i la probabilitat d’encertar és del 0,00003%.

A la part pràctica del treball veurem com es desordena matemàticament un missatge, ja que utilitzaré la transposició en el meu programa.

3.4.2. Substitució En aquest cas no trobem el primer exemple del mètode fins a l’any 100 aC, quan els romans, amb Juli Cèsar al capdavant, van crear el xifratge de Cèsar. El xifratge per substitució es basa a substituir uns caràcters per d’altres, per fer que el missatge no es pugui comprendre. Per llegir el text encriptat, el receptor haurà de fer el mateix procés de substitució però a la inversa.

21


Hi ha dues maneres d’encriptar el missatge per substitució: la monoalfabètica i la polialfabètica. El xifratge monoalfabètic és molt simple, ja que en aquest cas cada caràcter del text se substitueix per un sol caràcter. Això vol dir que totes les lletres a del text que volguéssim xifrar les substituiríem pel mateix caràcter, per exemple en el missatge encriptat cada a seria una Z. I així per a cada lletra. Exemple:

Alfabet pla: abcdefghijklmnopqrstuvwxyz Alfabet xifrat: ZEBRASCDFGHIJKLMNOPQTUVWXY

Cada lletra se substitueix amb la lletra que hi ha a la seva posició. La a per la Z, la b per la E... Missatge original: substitucio Missatge encriptat: ptepqfqtbfl El xifratge polialfabètic és una mica més complex que l’anterior perquè cada caràcter no se substitueix sempre pel mateix, sinó que en el text xifrat pot aparèixer com a diferents lletres. Per exemple, una a del text original, en el text encriptat la podem llegir com una o i la següent a que trobem, la podem llegir com una i. Un exemple de missatge polialfabètic és el xifratge de Vigenère, que està explicat amb detall a l’apartat d’història.

3.5. Criptografia moderna En els últims anys hem vist com el món de la tecnologia i, sobretot, la informàtica ha crescut molt ràpidament, tant que avui en dia és estrany que algú no utilitzi un ordinador, una tauleta tàctil o un smartphon. Això fa que hi hagi hagut un canvi en com es veu la seguretat dels sistemes criptogràfics, ja que actualment per la xarxa corre moltíssima informació i si es vol tenir privacitat, i que no ho vegi qualsevol, s’ha de protegir molt bé, perquè amb un ordinador és molt més fàcil descobrir una clau, no com en els sistemes clàssics, que era molt complicat trobar una clau si no se sabia. Tot això ha comportat que la criptografia creixés tant que actualment el nivell que s’ha de tenir per utilitzar-la no està a l’abast de tothom. En els sistemes que hem vist en 22


punts anteriors tothom pot entendre més o menys el funcionament, però actualment, només són uns quants que treballen amb la criptografia (matemàtics i informàtics). Així doncs, es pot dir que hi ha hagut d’un abans i un després en la criptografia.

En aquest punt es diferencien dos sistemes criptogràfics: el de clau privada o simètrica, que és conegut perquè és el que només utilitza una clau; i el de clau pública o asimètrica, en què hi ha una clau privada i una que pot conèixer tothom.

3.5.1. Criptografia simètrica Aquest tipus de criptografia utilitza una única clau, és a dir la mateixa clau que utilitza l'emissor per encriptar el missatge serà la que utilitzi el receptor per desencriptar-lo. Aquest fet, justament, és el problema d'aquesta criptografia, ja que com que és la mateixa clau, l'emissor ha de fer arribar aquesta clau al receptor i aquí és on hi ha el risc que es pugui interceptar la clau si el canal de comunicació no és prou segur.

La criptografia simètrica s'ha utilitzat en diferents èpoques, per exemple ja la va utilitzar l'emperador Juli Cèsar, com ja hem vist en punts anteriors. Una altra aplicació de la criptografia simètrica, en aquest cas utilitzada avui en dia, és l'algoritme de xifratge DES, un dels sistemes més utilitzats actualment que utilitza algoritmes a partir de xifratge per blocs.

El procés que se segueix per transmetre un missatge amb un algoritme simètric és el següent:

L'emissor vol fer arribar un document al receptor sense que ningú el pugui interceptar i llegir. Per començar agafa el document que vol enviar i li aplica un algoritme simètric utilitzant una clau única, que també haurà de conèixer el receptor, o sigui que li haurà de fer arribar aquesta clau. El resultat d'aquest procediment és un document xifrat que ja es pot enviar amb tranquil·litat. Quan el receptor rep el document xifrat, li aplicarà el mateix algoritme simètric amb la mateixa clau, però ara, en lloc de xifrar el missatge, el desxifrarà. Si el document no ha estat alterat o modificat durant el recorregut i la clau és la mateixa, el receptor podrà veure el document original.

23


Aquest procés es pot veure molt clar en la imatge següent.

Il·lustració 9. Procés de criptografia simètrica.

3.5.2. Criptografia asimètrica La criptografia asimètrica o de clau pública és el mètode criptogràfic que utilitza dues claus. Aquest mètode és la base de la critpografia moderna, ja que la seva creació, l’any 1976, va marcar una nova manera d’encriptar missatges. Les dues claus són diferents, una és pública i la pot conèixer tothom, i l’altra només la coneixen l’emissor i el receptor.

Il·lustració 10. Esquema del funcionament de la criptografia asimètrica.

A la il·lustració 10 podem veure com funciona aquest sistema. La clau pública és la que s’utilitza per xifrar el missatge, i la privada, la que utilitza el receptor per llegir el text encriptat. 24


Les claus utilitzades en aquest mètode estan relacionades matemàticament. El que una clau xifra, l’altra ho desxifra, i viceversa. Només es podrà desxifrar el que ha xifrat una clau, sigui la privada o la pública, amb la seva complementària. És a dir, si encriptem un missatge amb la clau pública, el receptor no podrà desencriptar-lo amb la mateixa clau, sinó que ho haurà de fer amb la privada. Això ens garanteix tant la identificació com l’autenticitat del receptor. Aquesta és la idea fonamental de la signatura electrònica. Tot i que les claus estiguin relacionades, encara que en coneguis una, no pots deduir l’altra. L’avantatge més important de la criptografia asimètrica és que la distribució de claus és més fàcil i segura. I, a més, que amb aquest mètode es garanteix la confidencialitat, ja que només pot llegir el missatge el que tingui la clau necessària.

Però també té desavantatges: ─ Per a una mateixa longitud de la clau i el missatge es necessita més temps per fer el procés d’encriptació que en la simètrica. ─ Les claus han de ser de major llargada que les de la criptografia simètrica. Normalment arriben a ocupar cinc vegades més o fins i tot més. ─ Finalment, el missatge xifrat és bastant més gran que l’original. Un exemple d’aquest mètode és el sistema RSA. Va ser el primer algorisme que va utilitzar la signatura digital, i un dels primers mètodes de la criptografia de clau pública. Actualment s’utilitza per al comerç electrònic i es considera segur si la clau és prou llarga. El seu nom ve de les inicials dels cognoms dels seus creadors, Ron Rivest, Adi Shamir i Len Adleman, que van descriure l’algoritme a l’Institut de Tecnologia de Massachusetts.

25


4. Criptografia a la Segona Guerra Mundial 4.1. Context històric L’1 de setembre de 1939 Alemanya envaeix Polònia, la qual cosa dóna inici a la que es convertiria en la guerra més devastadora que ha conegut la humanitat, la Segona Guerra Mundial. Va ser un conflicte bèl·lic que va involucrar la majoria de nacions del món, organitzades en dues aliances militars: el Aliats (Gran Bretanya, França, Polònia, Canadà, Sud-àfrica, Austràlia i Nova Zelanda) i les potències de l’Eix (Alemanya, Itàlia i l’Imperi Japonès). Posteriorment, s’hi van afegir els Estats Units i la Unió Soviètica. En els anys previs a la guerra, la inestabilitat colpeix Europa, que veu com Hitler envaeix un a un els països del seu entorn. Per al llavors Imperi Britànic, principal enemic del qual és Alemanya, concentren els seus esforços d’intel·ligència contra ella.

4.2. La màquina Enigma Enigma és una màquina creada pels alemanys i utilitzada per encriptar i desencriptar missatges en la primera meitat del segle XX, sobretot abans i durant la Segona Guerra Mundial. Tenia un funcionament complex, ja que per codificar disposava d’un mecanisme de xifratge rotatori. Aquesta eina per enviar missatges encriptats va marcar un punt d’inflexió entre la criptografia clàssica i la moderna.

Il·lustració 11. Model de la màquina Enigma.

26


Com es veu a la imatge, aquest model consistia en un teclat de màquina d’escriure amb les corresponents lletres de l’alfabet utilitzat, un dispositiu anomenat modificador, que realitzava la codificació, i un taulell de llums on es mostrava el text ja encriptat. Quan l’emissor escrivia una lletra del missatge original al teclat, immediatament veia com s’il·luminava una altra lletra de l’alfabet al taulell de llums, que era la lletra que es podia llegir en el text xifrat. L’emissor apuntava quina lletra era per quan hagués de transmetre el missatge. Així ho feien amb totes les lletres fins a acabar d’encriptar tot el text. Més endavant s'explica detalladament com funciona el procés.

4.2.1. La seva creació El 1917 el nord-americà Edward H. Hebern va idear un sistema mecànic de rotors mitjançant els quals transformava caràcters utilitzant alfabets independents com a mètode de substitució polialfabètica. Però un any després, a finals de la Primera Guerra Mundial, un enginyer alemany, amb el nom d’Arthur Scherbius, va crear una màquina per codificar missatges fixant-se en el sistema de rotors, que va patentar amb el nom d’Enigma.

En aquells moments Scherbius no era conscient del que havia creat ni de la importància que tindria el seu invent en la Segona Guerra Mundial. Ningú no hauria imaginat que aquella màquina seria tan decisiva per a les operacions militars de la primera meitat del segle XX.

Scherbius es va associar amb E.R. Ritter, amb el qual va fundar Scherbius&Ritter, una empresa amb la idea que la màquina es vengués a grans empreses que volguessin que les seves transaccions comercials fossin secretes. Però també estaven convençuts del fet que podria funcionar en les operacions militars, i la van oferir a la marina alemanya, que no va mostrar interès en la proposta. Decebuts pel rebuig, els dos socis van vendre l’empresa a una altra d’Alemanya, que va seguir comercialitzant la màquina però exclusivament per a ús civil. A poc a poc, les 27


màquines Enigma es van començar a conèixer arreu d’Alemanya i Europa, i les investigacions van fer que els nous models fossin més avançats i sofisticats. En aquest moment la marina alemanya s’hi va interessar i va decidir crear els seus propis models, que els van anomenar funkschlussel 4 o simplement M4. Paral·lelament l’exèrcit alemany va crear la màquina Enigma més avançada i poderosa, la van batejar amb el nom de Wehrmacht i va ser considerada un secret d’estat.

La màquina combinava components elèctrics i mecànics enginyosos però no era excessivament complicada d'utilitzar. La dificultat se centrava en la capacitat de canvi de possibilitats d’escriptura i nombre de combinacions que la màquina produïa, si s’ utilitzava adequadament. L’Alemanya nazi va ser la primera que va utilitzar aquest model de màquines, però no van ser els únics. Els exèrcits europeus van començar a elaborar les seves pròpies màquines Enigma. Un any abans que esclatés la guerra real, va començar una guerra d’espionatge industrial, en què tots volien saber com eren les màquines dels altres i si eren millors que les seves, sobretot Alemanya. Es calcula que des de 1933 fins al 1945 es van fabricar més de cent mil unitats de la màquina Enigma.

Això va provocar que la criptografia agafés molta importància en la guerra i acabaria sent decisiva durant la Segona Guerra Mundial.

4.2.2. Funcionament L’Enigma en realitat no és molt complicada, però les seves parts estan col·locades d’una manera enginyosa, que va fer que fos invulnerable i segura durant molts anys. Aquest tipus de màquines van anar evolucionant i se’n van arribar a fer molts models diferents.

En els primers models aquesta màquina contenia només un rotor, que tenia gravats els números de l’1 fins al 26. El rotor girava cada vegada després d’encriptar una lletra 28


i així se substituïa per lletres diferents. Això feia que només hi hagués 26 claus diferents, és a dir, era una màquina molt dèbil. Per això van millorar la màquina afegint dos rotors més.

Il·lustració 12. Rotor descompost de la màquina Enigma.

Aquests rotors estaven connectats entre ells, de manera que el segon rotor no començava a girar fins que el primer no acabava les 26 vegades. I el tercer no girava fins que el segon no finalitzava el seu gir complet. Aquest avenç va provocar que Enigma passés a tenir 26 x 26 x 26 = 17.576 possibles claus, que anaven canviant contínuament amb cada pulsació.

Scherbius no es va aturar aquí, sinó que volia fer la màquina més potent. Llavors va idear una manera que els rotors poguessin ser intercanviables, és a dir, que el rotor 1 es pogués posar en el lloc del 2, el 2 en el del 3 i així successivament. Aquest nou tipus de màquina multiplicava el nombre de claus per 6; per tant, passaven a haver-hi 6 x 17.576 = 105.456 claus.

Però per arribar a un dels últims models i més avançats, se li van introduir dos elements més. Podríem pensar que introduir més rotors faria que es creessin més claus a desxifrar, però això hauria fet que la màquina fos massa pesada i voluminosa. Així que Scherbius va afegir un element per facilitar l’ús de la màquina i un altre perquè fos més difícil desxifrar-la per als criptoanalistes.

29


El primer va ser reflector, que en realitat era un rotor, però que no girava, només es limitava a rebre el senyal que havia passat pels tres rotors i tornar-lo a enviar pels tres rotors, però fent-lo passar per un altre camí, com es pot veure en la següent figura:

Il·lustració 13. Esquema del funcionament d’Enigma amb el reflector.

El segon element, el que va fer que fos pràcticament indesxifrable en el moment, és un tauler de clavilles, on estaven escrites les lletres, i mitjançant una sèrie de cables podien intercanviar parells de lletres abans d’entrar als rotors. És a dir, els operadors que encriptaven els missatges, disposaven de 6 cables per connectar 6 parells de lletres entre les 26 possibles. De manera que per exemple es connectava un cable de la D a la J, així, a l’hora de xifrar un missatge, quan l’operador clicava la D, aquesta no feia el seu recorregut, sinó que feia el de la J.

Il·lustració 14. Tauler de clavilles de la màquina Enigma.

30


Tenint en compte les maneres de connectar 6 parells de lletres entre 26, podem deduir la fórmula següent: N! / (N-n)! x n! x 2n, en què N = 26 i n = 6. Això produeix 100.391.791.500 combinacions possibles, que multiplicades per les que ja teníem, 105.456, ens dóna una xifra realment espectacular i fora de l’abast humà. 100.391.791.500

x

105.456

=

3,283,883,513,796,974,198,700,882,069,882,752,878,379,955,261,095,623,685,444,0 55,315,226,006,433,616,627,409,666,933,182,371,154,802,769,920,000,000,000. Aproximadament, això són 3.284 x 1038 claus amb les quals es podia xifrar el missatge. En el seu moment, es va convertir en una màquina indesxifrable.

4.2.3. Transmissió de missatges Perquè la transmissió de missatges entre emissors i receptors fos possible, el dos havien de conèixer la clau.

En veure el funcionament de la màquina, podem deduir quina era aquesta clau: ─ L’ordre dels rotors (si estaven en la seva posició o en una altra). ─ La posició inicial dels rotors (podien estar des de la posició 1 fins a la 26 que hi havia). ─ Les lletres on es col·locaven els cables del tauler. Cada mes es distribuïa un llibre de claus a tots els operadors d’Enigma. El llibre contenia les diferents claus que havien d’utilitzar cada dia del mes (cada cop que la guerra estava més avançada, repartien més sovint els llibres), de manera que els emissors rebien unes indicacions com les següents: ─ 2-3-1 ─ 16-22-9 ─ A/Y, H/J, O/P, R/B, S/Z, E/L En veure aquest missatge, l’operador sabia que havia de col·locar el rotor 2 en la posició de l’1, el 3 en la del 2 i l’1 en la del 3.

També coneixia la posició en què havia de posar els rotors inicialment, el rotor 2 a la posició 16, el número 3 a la 22 i l’1 a la posició 9.

31


I, finalment, havia de connectar els cables amb les lletres que s’indicava en el llibre, en aquest cas l’operador hauria connectat la A amb Y, la H amb la J, la O amb la P, la R amb la B, la S amb la Z i la E amb la L. Quan acabava aquest procediment, l’emissor ja podia començar a encriptar el missatge. El receptor, per poder desencriptar-lo, també havia de fer el mateix.

Els alemanys van crear una sèrie de normes per fer que fos més segura la transmissió de missatges a través d’Enigma. Les principals normes eren: ─ Quan s’utilitzaven els cables, no es podia connectar una lletra amb la seva anterior o posterior. ─ Un rotor no podia estar més d’un dia en el mateix lloc. ─ Una lletra del missatge original mai podia ser encriptada amb ella mateixa. És a dir, quan en el missatge no xifrat hi havia una D, en el missatge encriptat no podia ser substituïda per una D.

Però la norma més important era que cada missatge tingués la seva pròpia clau, perquè així no es repetia cap vegada la mateixa.

Il·lustració 15. Operador encriptant missatge.

Perquè això fos possible, l’emissor a l’inici del missatge escrivia tres lletres escollides a l’atzar, per exemple ABC. Llavors en el missatge encriptat sortien les lletres que li corresponien, en aquest cas TYU. I girava els rotors des de la seva posició fins a la 32


posició de les lletres elegides, en el nostre cas A = 1, B = 2 i C = 3. Els altres elements els deixava igual i ja podia codificar el missatge. D’aquesta manera, el missatge que es transmetia era TYU, que era l’encriptament de ABC segons la clau del dia i el missatge codificat segons la disposició 1-2-3. El receptor, que també disposava de la clau del dia, s’havia de fixar en les tres primeres lletres, les teclejava (en el nostre exemple TYU) i podia veure ABC. En conèixer-les, col·locava els rotors en les posicions que li marcava l’emissor, és a dir, 12-3. Ara ja podia desencriptar tot el missatge fins a obtenir l’original.

4.2.4. Desxifrant Enigma

Abans que comencés la Segona Guerra Mundial, es considerava que la màquina Enigma era molt segura, tant que ningú s’imaginava que es pogués arribar a desxifrar. Molts països, com França, Anglaterra o els Estats Units, veien tan complicat poder-la desxifrar que no es van plantejar intentar-ho. Però va haver-hi un país que sí que es va decidir a aconseguir-ho: Polònia. Eren conscients del fet que arribar a poder llegir els missatges enviats per Enigma seria una de les maneres de vèncer la gran potència alemanya. Polònia es va posar en marxa. Va organitzar un curs de criptografia, al qual van convidar a participar els matemàtics més importants del país. Els hi van proporcionar algunes màquines Enigma perquè poguessin estudiar-les i analitzar-les. Dins d’aquest grup va destacar un home que passaria a la història, Marian Rejewski, pels avenços que va fer. Per facilitar la feina al grup de criptògrafs polonesos van instal·lar centres per interceptar el major nombre de missatges possible. A la vegada, van tenir la sort que un exmilitar alemany els va vendre informació sobre Enigma. Però els alemanys sospitaven que havien desxifrat alguns codis i van canviar l’estratègia. Milloraven la màquina molt sovint. Tot i això, cada pas que feien els alemanys, també el feien els matemàtics polonesos, que van aconseguir desencriptar els nous codis creats.

33


Després de tots els estudis que havien fet, els polonesos van arribar a la conclusió que no podien seguir descodificant a mà. Havien de desxifrar la màquina amb un altre mètode. D’aquesta manera, Rejewski va crear la màquina Bombe. Però el 1939, a causa dels pocs recursos que tenia Polònia i amb l’atac imminent d’Alemanya, van decidir donar tots els avenços que havien fet a França i Anglaterra. I tot i que els francesos no ho van aprofitar, els anglesos van seguir amb els estudis realitzats fins aquell dia. L’any 1938 Anglaterra va traslladar l’organisme britànic dedicat a la criptografia a Bletchley Park, on es podien dedicar millor a desxifrar Enigma. Bletchley Park era un terreny on van instal·lar la GC&CS (Global Command and Control System) , una organització per desxifrar els codis secrets utilitzats pels alemanys, que substituïa l’anterior organització situada a Londres, la Room 40. Estava situat a la regió de Buckinghamshire, a 50 milles al nord-oest de Londres i es caracteritzava per la preciosa mansió situada al mig del terreny. Per poder fer que hi cabessin totes les persones implicades, van afegir barracons i edificacions auxiliars on treballarien per grups.

Il·lustració 16. Mansió de Bletchley Park.

34


L’1 de setembre de 1939 Alemanya va envair Polònia, fet que va provocar que els estudis que s’estaven realitzant a Bletchley Park s’acceleressin. Dels 200 experts que hi treballaven inicialment, van passar a ser-ne 10.000 a finals de la guerra. Tots els tècnics que col·laboraven en aquell recinte havien de ser de total confiança, no podien dir res a ningú, ni a les seves famílies. Un comentari imprudent podia significar que l’enemic pogués descobrir la missió i que tota la feina no hagués servit de res. Els membres d’aquesta organització havien estat triats de diferents maneres. Les persones que formaven part de la Room 40 seguien treballant-hi. Van triar gent que podia aportar coneixements. Una manera de reclutar experts va ser posant uns mots encreuats al diari i les persones que l’acabaven en menys de 12 minuts eren seleccionades per participar-hi. Un cop reunits prou criptoanalistes, amb l’objectiu de desencriptar el major nombre de missatges amb el menor temps possible, els van organitzar de manera que poguessin rendir al màxim. Van crear grups heterogenis, compostos per matemàtics, enginyers, traductors d’alemany, físics, químics, experts en geografia i història, lingüistes, experts en cultura clàssica, mestres del joc d’escacs, experts a fer mots encreuats, psicòlegs i, fins i tot, filòsofs. Els van dividir en diferents barracons, que s’anomenaven hut. Cada hut tenia una funció diferent, uns interceptaven els missatges, els altres el desxifraven… Així treballaven les 24 hores del dia. La feina que es feia a Bletchley Park els servia en el moment, perquè utilitzant les tècniques poloneses podien desxifrar la clau de cada dia i, conseqüentment, els missatges. Però els anglesos sabien que els alemanys farien més millores i aquestes tècniques ja no els hi servirien. Per això es van adonar que necessitaven algú que fes possible el desxiframent d’Enigma. Aquesta persona seria el matemàtic Alan Turing. Així, el 1939 Turing va ser cridat per treballar a la GC&CS, concretament al Hut 8, amb l’objectiu de trobar nous mètodes per trencar Enigma. El matemàtic anglès i el grup amb el qual treballava van iniciar la millora de la màquina Bombe feta pels polonesos. La primera remodelació de la màquina va ser l’agost de 1940, i es va anomenar Victory, però no funcionava gaire bé, perquè a vegades trigava una setmana a desxifrar la clau. Només van tardar quatre mesos a fer un nou disseny de la Bombe, que es va conèixer com a Spider. Però encara en van crear una altra, el

35


tercer model es deia Jumbo. Es van arribar a fabricar 120 models de la Bombe l’any 1943. La nova màquina Bombe, que també era coneguda com la Bombe de Turing, va passar a ser l’eina més important per llegir amb més precisió i rapidesa els missatges codificats d’Alemanya. Gràcies això, Turing ja era considerat un geni entre els seus companys de Bletchley Park.

Il·lustració 17. Màquina Bombe de Turing.

Paral·lelament, van crear una màquina que ajudava les Bombe a desxifrar els missatges encriptats alemanys. Van inventar-la per poder desencriptar missatges amb més eficiència i, sobretot, més rapidesa. Turing va idear la màquina programable, electrònica i digital. Però va ser Tommy Flowers qui, a partir de la idea inicial d’Alan Turing, va fabricar el primer model de Colossus. La innovació d’aquesta màquina és que utilitzava vàlvules. I es podria dir que va ser el primer ordinador de la història.

36


La Colossus definitiva va ser dissenyada per Maxwell Newman i construïda el 1943. Se’n van fer dos models, Markus 1 i Markus 2. Del segon van arribar a construir-ne 10 a finals de la guerra. Amb les màquines Colossus i Bombe es desxifraven moltíssims missatges, i amb algunes millores més que van fer, podem dir que Enigma va ser definitivament derrotada. Tota la informació que van aconseguir desxifrant els missatges va fer que tinguessin avantatge en el desenvolupament de la guerra, ja que Alemanya no sabia que tenien tanta quantitat d’informació sobre el que farien. Aquest va ser un dels fets importants que va fer que la gran potència alemanya caigués derrotada. La importància del desxiframent d’Enigma la veiem resumida en les paraules de Winston Churchill quan va dir que havia fet que la guerra durés un any menys del que hauria pogut durar. En acabar la guerra, totes les màquines van ser destruïdes i tot el que s’havia aconseguit a Bletchley Park va quedar en secret durant 30 anys. El 1976 es va donar a conèixer tot el que havia succeït durant la Segona Guerra Mundial. No va ser fins llavors que se li va reconèixer la feina feta a Turing, entre d’altres.

4.2.5. Biografia d’Alan Turing

Alan Mathison Turing va néixer el 23 de juny de 1912 a Londres i va morir el 7 de juny de 1954 a Cheshire. Des de molt petit ja va mostrar una gran intel·ligència, i el seu interès pels trencaclosques i els jocs matemàtics. El 1933 s’inicia en els principis lògics matemàtics de Bertrand Russel, filòsof i matemàtic de gran prestigi. Amb l’arribada al poder dels nacionalsocialistes d’Adolf Hitler es va adherir als moviments antibèlics que van esclatar a Anglaterra i a la resta d’Europa. El 1936 obté l’Smith Prize pel seu treball sobre Teoria de Probabilitats anomenat “Sobre la funció d’error de Gauss”, que li va donar un gran prestigi nacional i internacional. Aquell mateix any, viatja als Estats Units per treballar a la Universitat de Princeton, on va fer el seu doctorat en lògica matemàtica, treballant amb el lògic A. Church.

37


El 1937 va publicar un article cèlebre en el qual va definir una màquina calculadora de capacitat infinita (màquina de Turing) que operava basant-se en una sèrie d’instruccions lògiques, que va establir les bases del concepte modern d’algoritme. La Segona Guerra Mundial va oferir un insospitat marc d’aplicació pràctica de les seves teories, en sorgir la necessitat de desxifrar els missatges codificat de la marina alemanya. Turing va dissenyar tant els processos com les màquines que, capaços de fer càlculs combinatoris molt més ràpid que qualsevol ésser humà, van ser decisius en la ruptura final del codi. També va definir un mètode teòric (test de Turing) per identificar l’existència d’intel·ligència en una màquina, si era capaç de resoldre problemes amb més eficàcia i rapidesa que el cervell humà. A més, va fer contribucions a altres branques de la matemàtica aplicada. En l’àmbit personal, la seva condició d’homosexual va ser motiu de constants pressions socials i familiars, fins al punt que s’especula si la seva mort per enverinament va ser accidental o va ser un intent de suïcidi. Se’l van trobar mort al llit i a la tauleta de nit hi havia una poma mossegada, que van descobrir que contenia altes dosis de cianur. És possible que el logotip de la companyia Apple sigui un merescut homenatge al pare de la informàtica. El 1999, la revista Time va publicar la llista de les vint persones més influents del segle XX: Alant Turing, l’home que sabia massa, en formava part.

Il·lustració 18. Alan Turing.

38


APARTAT PRÀCTIC 5. Creació d’un programa

5.1. Descripció La part pràctica del meu treball ha estat dirigida a la creació d’un programa informàtic relacionat amb la criptografia, amb l’objectiu de mostrar una aplicació d’aquesta ciència. He creat un programa encriptador i desencriptador. És a dir, una persona que utilitzi el programa, quan introdueixi un missatge qualsevol, el programa li mostrarà com serà el missatge xifrat. I després el tornarà a desxifrar, donant-li a l’operador el missatge original un altre cop. El mètode que utilitza no és el simulador d’un algoritme existent, sinó que he intentat fer un programa una mica diferent, innovant en la manera com codifica els missatges. S’han aplicat dos mètodes bàsics de la criptografia, que hem vist en la part teòrica, la transposició i la substitució. El canvi que he introduït per distingir el meu programa dels altres és que en la fase de substitució, en comptes de substituir les lletres per altres lletres de l’alfabet, les he canviat per símbols (aquests són alguns exemples: ! ^ ] [ ?¿). La clau del mètode es considera la manera de codificar, és a dir, les possibilitats d’encriptar un missatge és el nombre de claus. Ara deduïm el nombre probable de claus matemàticament, haver estudiat la transposició i la substitució a la part teòrica fa que sigui possible. El deduïm en funció de la longitud del missatge (n). La part de permutació serà igual a n! i la de substitució és igual a 26!, ja que els nostres diccionaris tenen 26 caràcters. Ara multipliquem les dues fórmules perquè ens doni el nombre de claus total, n! x 26!. Veiem que el nombre de claus serà més gran en funció de la longitud del missatge. Per exemple, si escrivíssim el missatge MATES (la longitud és 5), sortirien 5! x 26! = 4,836x1028 claus. Encara que hi hagi moltes claus probables, aquest mètode no és gaire segur.

39


Per poder arribar a la creació d’aquest tipus de programa es necessiten coneixements sobre programació, i amb l’ajuda del Xavier Ros Roca, que coneix aquest món, he pogut arribar a aprendre els conceptes bàsics i aconseguir el programa que volia. No entraré en tot el que envolta la programació, però és necessari saber que per dur a terme un programa d’aquestes característiques hi ha moltíssims llenguatges possibles per fer-ho. En el meu cas, he utilitzat el llenguatge de programació C++.

40


5.2. Esquema Per entendre millor l’estructura del programa l’he dividit en dues fases, xifrar i desxifrar, i dins d’aquestes, dues fases més, com veiem en el següent esquema:

TRANSPOSICIÓ

Entra missatge M; Entra la clau per transposar, Clau T; MT (missatge transposat) = xifrar transposició (M, Clau T); Escriu MT.

XIFRAR

Generació diccionaris Diccionari A: alfabet, de la A a la Z Diccionari B: llista intercanviable de símbols

SUBSTITUCIÓ

Entra MT; Entra clau per substituir, Clau S (substituir de diccionari A a B) MTS (missatge transposat i substituït) = xifrar substitució (MT, Clau S); Escriu MTS.

41


SUBSTITUCIÓ INVERSA Entra MTS; Entra clau per desxifrar substitució, Clau IS (inversa substitució, de B a A); MT = desxifrar substitució (MTS, Clau IS); Escriu MT.

DESXIFRAR

TRANSPOSICIÓ INVERSA Entra MT; Entra clau per desxifrar transposició, Clau IT (inversa transposició); M = desxifrar transposició (MT, Clau IT); Escriu M.

42


5.3. Pas a pas

En aquest apartat explicaré la funció de cada part del treball, per fer-ho utilitzaré un exemple, encriptarem i desencriptarem el missatge MATES. Després a l’apartat de proves mostraré que funciona correctament. En les primeres línies de qualsevol programa es marquen les bases d’aquest. Es defineixen les variables i les funcions que s’utilitzaran durant tot el programa perquè l’ordinador identifiqui tot el que escrivim. En el nostre cas, li hem dit a l’ordinador que utilitzarem vectors i cadenes de caràcters (fila 1 i 2). També marquem que necessitem usar l’input (cin) i l’output (cout) (fila 4). En l’input és on introduirem el missatge, la permutació i el diccionari de símbols (que ho podrem canviar sempre) i en l’output és on veurem els missatges xifrats i desxifrats, a més de totes les dades rellevants. En les línies següents (de la 6 a la 9), declarem vectors i matrius, tant d’enters com de caràcters. En les línies següents declarem: -

Un vector d’enters que li diem P, que serà la permutació que entrarem.

-

Dos vectors de caràcters, D1 i D2, que seran els diccionaris per a la substitució.

-

Dues cadenes de caràcters, M i MX, que són el missatge original i el missatge xifrat.

-

Un enter n, que marca la longitud del missatge.

-

Un enter L, que és igual a 26, i marca la longitud dels diccionaris.

43


En aquest apartat, creem una funció que utilitzarem més endavant en el programa. És la funció que ens permet executar la permutació. Ens demana un missatge M i un vector d’enters que serà l’ordre amb el qual permutarem. El que fa la funció és permutar el missatge que li donem en l’ordre que nosaltres volem.

La següent part del programa és la més important, perquè és on es troba tot el procediment del mètode que hem ideat. Cada programa té un apartat on situa la funció principal, s’escriu int main per identificar-lo. En el nostre programa està situat a la línia 29. Seguidament comencem amb la introducció de dades. Primer de tot, l’escriptura en el cin del missatge que volem xifrar i desxifrar (línia 34) en el nostre cas és MATES. La línia 37 és perquè el missatge surti en el cout.

En les dues línies que veiem, li assignem a n el nombre de caràcters del missatge que hem entrat i fem que el programa imprimeixi quina és la longitud. La longitud de MATES és 5.

44


En aquest bloc, es crea el vector que contindrà la permutació i es demana a qui utilitzi el programa que l’ompli. Després s’imprimeix en el cout. En el nostre exemple utilitzarem la permutació: 4 0 2 1 3.

Utilitzem la funció que hem creat al principi per permutar el missatge. El programa col·locarà cada lletra de MATES en la posició que li correspongui a 4 0 2 1 3, és a dir la M(posició 0), hauria d’estar a la posició 1 , la A(posició 1) hauria d’estar a la 3 i així amb totes les lletres. MATES = 0 1 2 3 4 - 4 0 2 1 3 = S (4) M (0) T (2) A (1) E (3) El missatge encriptat és MX, el nostre seria SMTAE. I s’imprimeix en el cout.

Aquí finalitza la primera fase del programa, la transposició. El següent apartat consisteix a crear els dos diccionaris perquè sigui possible la substitució. El diccionari 1 serà l’alfabet. Per fer-lo, hem assignat a cada component del vector D1 una lletra de l’abecedari (vegeu l’annex, files de 59 a 85). El que veiem a la línia 59 és només la inicialització del vector de caràcters que conté l’alfabet, amb una longitud L.

45


El diccionari 2 és el de símbols. A la línia 88 veiem la inicialització del vector diccionari, que també té longitud L. A diferència de D1, qui omple el vector és l’usuari. Nosaltres hem introduït el diccionari següent :! " # $ % & ' ( ) * +, -. / = < > [ ] { } ~ @ : ;

Imprimim en el cout els dos diccionaris, simplement perquè l’usuari ho entengui millor. Els nostres diccionaris es veurien de la següent manera: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z !

"

#

$ %& '

(

) * +

,

-

.

/

=

< >

[

]

{

}

~ @ :

;

En les següents línies substituïm cada lletra del missatge permutat pel símbol que li correspon. A cada lletra de l’alfabet li assignem el símbol que ocupa la mateixa posició en el diccionari 2. En el nostre missatge transposat (SMTAE), s’hauria de substituir la S per [, la M per -, la A per !, la T per ], i la E per %.

46


Una vegada encriptat, imprimim el missatge transposat i substituït al cout. El nostre missatge quedaria així: [-]!%

Després de xifrar el missatge, toca desxifrar-lo. Entrem a la tercera fase, la desencriptació de la substitució. Si us hi fixeu, fem la inversa de la substitució. El programa recorre el missatge i els diccionaris. I cada símbol del missatge encriptat el canvia per la lletra que li correspon del D1. Substituim [-]!% per les lletres equivalents, que són [=S, -=M, ]=T, !=A i %=E.

Imprimim el missatge, que està mig desxifrat i hauria de ser SMTAE..

Entrem a l’última part del programa, desencriptar la transposició. Primer de tot, a la línia 134, definim el vector P1, que és la inversa del vector que hem utilitzat per transposar al principi. Si el nostre vector P és 4 0 2 1 3, el vector de la transposició inversa serà 1 3 2 4 0. Llavors el programa recorre el missatge i el vector P1 (línies 135 i 136) i la permutació inversa es produeix a la línia 137. Si teníem el missatge SMTAE, la S passa de la posició 0 a la 4, la M de la 1 a la 0, la T de la 2 la 2, la A de la 3 a la 1 i la E de la 4 a la 3.

47


Les últimes línies del programa serveixen per imprimir el missatge desxifrat al complet. En el nostre exemple, hauriem de llegir el missatge MATES en el cout.

5.4. Manual per utilitzar el programa

Per utilitzar el programa correctament cal seguir una sèrie de passos: ─ S’ha d’escriure el missatge

tot en majúscules i sense espais perquè el

programa el pugui llegir. ─ S’ha d’escriure la permutació de la mateixa longitud que el missatge. Però cal tenir en compte que el programa comença a comptar des del 0. S’han de separar els caràcters amb espais perquè si no el programa confondrà els nombres. ─ S’ha d’escriure el D2. Es pot escriure en l’ordre que es vulgui però només es poden utilitzar aquests símbols: ! " # $ % & ' ( ) * + , - . / ; < > [ ] { } ~ @ : = perquè són els que accepta el llenguatge C++. Si s’escriu algun altre que no hi sigui, el programa no funcionarà. Vigila! No repeteixis cap símbol perquè el programa es confondrà i a l’hora de desencriptar et tornarà la primera lletra que li correspongui el símbol repetit. Això evidencia una carència del programa. ─ S’ha d’escriure el missatge, la permutació i el diccionari en aquest ordre.

48


5.5. Proves Hem anat seguint un exemple en el pas a pas per entendre-ho millor, ara veurem si el programa funciona adequadament. La imatge ens mostra el stdin (cin) i el stdout (cout), així podem veure el resultat. En el cin hem escrit MATES (missatge), 4 0 2 1 3 (permutació) i el diccionari 2: ! " # $ %& ' ( ) * + , - . / = < > [ ] { } ~ @ : ; (el de símbols).

49


Ara ens fixem en el cout per comprovar que els resultats siguin correctes:

El missatge a xifrar és MATES

Correcte

La longitud del missatge és 5

Correcte

La permutació que hem entrat és: 4 0 2 1 3

Correcte

El missatge permutat és: SMTAE - La M està situada a la posició 0 Correcte del missatge original i passa a la posició 1 de la nostra permutació (perquè el 0 està a la posició 1). La A passa de la 1 a la 3, la T de la 2 a la 2, la E de la 3 a la 4 i la S de la 4 a la 0 Entre l’abecedari equivalent:

Correcte

ABCDEFGHIJKLMNOPQRSTUVWXYZ ! " # $ %& ' ( ) * + , - . / = < > [ ] { } ~ @ : ; Cada símbol està a sota de la lletra que li correspon El missatge permutat i substituït és: [-]!% El missatge que havíem de Correcte substituir és SMTAE. Mirant l’equivalència dels diccionaris comprovarem que estigui bé. La S se substitueix per [ , la M per - , la T per ] , la A per ! i la E per %. El missatge desxifrat a mitges és: SMTAE. En aquest cas hem de fer Correcte el mateix procés que en la substitució, però a la inversa. Veiem que ens dóna el mateix missatge d’abans de substituir. El missatge desxifrat és: MATES. Ens torna el mateix missatge que Correcte hem escrit al principi.

50


6. Conclusions De la part teòrica, he après moltes coses noves que m’han permès arribar a les següents conclusions: ─ La criptografia ha evolucionat moltíssim a causa de la necessitat d’amagar informació a les guerres. ─ La criptografia va ser vital en el desenvolupament de la Segona Guerra Mundial, tant quan els alemanys s’enviaven missatges que ningú podia entendre, com quan els van desxifrar i la guerra va durar menys del que hagués pogut fer-ho, conseqüentment va salvar moltes vides. ─ L’evolució de la criptografia ha estat tan gran, que actualment és una ciència que estudien pocs per la seva dificultat. ─ Podem considerar Alan Turing el pare de la informàtica. ─ La criptografia permet que tot el que fem quan utilitzem l’ordinador sigui secret i no ho pugui veure qui vulgui. Sense aquesta ciència la nostra vida cibernètica no seria segura i no podríem fer negocis per Internet, per exemple. I de la part pràctica, he arribat a altres conclusions: ─ El món de la programació és molt complex però l’he trobat molt interessant. ─ Implementar un mètode criptogràfic a un programa informàtic no és fàcil i he necessitat ajuda per fer-ho. La conclusió que he tret del meu Treball de Recerca és que la criptografia actual està basada en els sistemes clàssics, i jo, amb coneixements bàsics sobre aquesta ciència, he aconseguit crear un mètode que es podria utilitzar avui en dia, tot i que sigui poc segur.

51


7. Bibliografia Articles ORTIZ MUÑOZ, Juan José. “Criptografía y matemáticas”. Suma+ 61, juny 2009, p. 1726. COLLANTES HERNÁNEZ, Joaquín; PÉREZ SANZ, ANTONIO. “Alan Turing y la manzana envenenada” (1a part). Suma+ 72, març 2013, p. 105-114. COLLANTES HERNÁNEZ, Joaquín; PÉREZ SANZ, Antonio. “Alan Turing y la manzana envenenada” (2a part). Suma+ 73, juliol 2013, p. 109-116.

Llibres JUHER, David. L’art de la comunicació secreta. Editorial Llibres de l’Index. Barcelona, 2004. FÚSTER, Amparo; DE LA GUÍA, Dolores; HERNÁNDEZ, Luis; MONTOYA, Fausto; MUÑOZ, Jaime. Técnicas criptográficas de protección de datos. Editorial Ra-Ma. Madrid, 2004.

Pàgines web http://www.criptohistoria.es/files/manual-enigma.html http://www.criptohistoria.es/files/CIFRAS.pdf http://www.acta.es/medios/articulos/comunicacion_e_informacion/052063.pdf http://www.hacienda.go.cr/centro/datos/Articulo/Criptograf%C3%ADa%20B%C3%A1si ca-Principiantes.pdf http://www.criptored.upm.es/thoth/material/texto/pildora007.pdf http://digital.csic.es/bitstream/10261/24545/1/Flujo_1.pdf http://www.egov.ufsc.br/portal/sites/default/files/la_criptografia_desde_la_antigua_greci a_hasta_la_maquina_enigma1.pdf 52


http://www.xtec.cat/~jjareno/activitats/criptologia/activitat_4.htm http://www-mat.upc.es/~lali/docencia/AMT0506cripto.pdf http://www.sinewton.org/numeros/numeros/30/Articulo02.pdf https://esacosta.files.wordpress.com/2012/09/cripto-ufv-1_0-linea.pdf https://ca.wikipedia.org/wiki/Claude_Elwood_Shannon http://www.acta.es/medios/articulos/comunicacion_e_informacion/052063.pdf http://users.telenet.be/d.rijmenants/historia_enigma.pdf http://www.portierramaryaire.com/arts/enigma_1.php http://www.u-historia.com/uhistoria/tecnico/articulos/enigma/enigma.htm

53


Annex Programa 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

#include <vector> #include <string> using namespace std; #include <iostream> typedef vector <int> VE; typedef vector <VE> ME; typedef vector <char> VC; typedef vector <VC> MC; VE P; VC D1, D2; string M, MX; int n; int L = 26;

17. 18. string permuta(string M, VE P) { 19. string A = M; 20. for (int i = 0; i < n; ++i) { 21. A[i] = M[P[i]]; 22. } 23. //cout <<A <<endl; 24. 25. return A; 26. 27. } 28. 29. int main() { 30. ///////////////////////////////////////////////////////////////// 31. // ENTRADA DE DADES // 32. ///////////////////////////////////////////////////////////////// 33. cout <<"Entra el missatge a xifrar:" <<endl; 34. cin >> M; 35. //el missatge sempre l'entrarem sense espais i sempre en majuscules 36. 37. cout << "El missatge a xifrar ĂŠs: " <<M <<endl <<endl; 38. 39. n = M.size(); 40. cout <<"La longitud del missatges ĂŠs: " << n <<endl <<endl; 41. 42. P = VE(n);

54


43.

cout <<"Entra una permutació de longitud " <<n << " (de 0 a " <<n-1 <<"): " <<endl;

44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91.

for (int i = 0; i < n; ++i) cin >> P[i]; cout <<"La permutació que hem entrat és: "; for (int i = 0; i < n; ++i) cout << P[i] <<" "; cout <<endl <<endl; MX = permuta(M, P); cout <<"El missatge permutat és: " <<MX <<endl <<endl;

///////////////////////////////////////////////////////////////// // GENERACIÓ DEL DICCIONARI ///////////////////////////////////////////////////////////////// // D1 sempre serà igual D1 = VC(L); D1[0] = 'A'; D1[1] = 'B'; D1[2] = 'C'; D1[3] = 'D'; D1[4] = 'E'; D1[5] = 'F'; D1[6] = 'G'; D1[7] = 'H'; D1[8] = 'I'; D1[9] = 'J'; D1[10]= 'K'; D1[11]= 'L'; D1[12]= 'M'; D1[13]= 'N'; D1[14]= 'O'; D1[15]= 'P'; D1[16]= 'Q'; D1[17]= 'R'; D1[18]= 'S'; D1[19]= 'T'; D1[20]= 'U'; D1[21]= 'V'; D1[22]= 'W'; D1[23]= 'X'; D1[24]= 'Y'; D1[25]= 'Z'; // entrada dels símbols D2 = VC(L); cout<<"Entra l’abecedari equivalent: "<<endl; for (int i = 0 ; i < L; ++i) cin >>D2[i];

55

//


92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127.

cout <<"El diccionari és: " <<endl; for (int i = 0; i < L; ++i) cout << D1[i] <<" "; cout <<endl; for (int i = 0; i < L; ++i) cout << D2[i] <<" "; cout <<endl <<endl; for(int i=0; i<n; ++i){ for(int j=0; j<L; ++j){ if(MX[i]==D1[j]){ MX[i]=D2[j]; } } } cout <<endl; cout <<"----------------------------------------------------" <<endl; cout << "El missatge permutat i substituït és: "<< MX <<endl; cout <<"----------------------------------------------------" <<endl; cout <<endl; ///////////////////////////////////////////////////////////////// // DESXIFRAR EL MISSATGE ///////////////////////////////////////////////////////////////// for(int i=0; i<n; ++i){ for(int j=0; j<L; ++j){ if(MX[i]==D2[j]){ MX[i]=D1[j]; } } } cout<< "El missatge desxifrat a mitges és :"<<MX<<endl;

128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140.

VE P1 = P; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (P[j] == i) P1[i] = j; } } for (int i =0; i <n; ++i) cout <<P1[i] <<" "; cout <<endl;

56

//


141. 142. 143. 144.

cout << "El missatge desxifrat ĂŠs: "<< permuta(MX,P1)<< endl; }

145.

57

Profile for Biblioteca Institut Montserrat

Desxifrant l'enigma de la criptografia  

Autor: Paolo Gnutti Sandiumenge | Tutora: Isabel Valderrábano | Tema: criptografia, 2a Guerra Mundial

Desxifrant l'enigma de la criptografia  

Autor: Paolo Gnutti Sandiumenge | Tutora: Isabel Valderrábano | Tema: criptografia, 2a Guerra Mundial

Advertisement