Perill cibernètic imminent

Repte 2

Perill imminent a la xarxa!

A partir d'ara oblideu-vos que sou alumnes de primària, ja que ara formeu part d'una organització de ciber-espies que es dedica a desxifrar els missatges criptogràfics que corren per internet. Formeu part d'una organització secreta que intenta capturar a uns pirates informàtics que estan tramant un atac a un banc molt important.





Tot i que els pirates es comuniquen utilitzant el correu electrònic i la nostra organització ha estat capaç de capturar-ne un parell, els missatges estan xifrats de forma que a primera vista no hi ha forma d'entendre'n el seu contingut, i només utilitzant una clau es pot veure el missatge que contenen. Per exemple, un dels últims missatges interceptats deia:

SHYLBUPVLYHHSIHYKLSHJHUAVUHKHKLSIHUJ

En aquest cas, la nostra organització va poder desxifrar aquest correu electrònic utilitzant una programa informàtic que el servei d'intel.ligència informàtica va dissenyar i que es mostra a continuació:

Resulta que la clau per desxifrar el missatge era el nombre 7. Un cop desxifrat el missatge, vàrem veure que deia:

LA REUNIO SERA AL BAR DE LA CANTONADA DEL BANC!

Malauradament, els pirates informàtics són molt llestos i tenen un sistema que detecta quan un missatge ha estat interceptat abans que el destinatari el rebi. Per això, cada cop que envien un missatge electrònic canvien el sistema de xifratge i la clau. Tot i això, el nostre servei d'intel.ligència té alguna idea de per on pot anar el sistema de xifratge. A continuació es detalla el que el nostre servei d'intel.ligència sap:

Quina és la vostra missió?

El vostre objectiu és desxifrar els últims missatges que s'han interceptat, i que estem quasi segurs de que s'ha codificat amb el mètode que acabem de veure. El missatges, tal com s'han interceptat diuen el següent:

missatge 1: PE QMWWMS WIVE HMPPYRW

missatge 2: GUVKIWGW CVGPVU

missatge 3: HIHUKVULB SH IHZL

missatge 4: KTY KYVOKT

Com que la nostra organització compta amb una sèrie d'espies (vosaltres), ens han demanat que cada espia s'encarregui d'un missatge diferent, ja que creiem que podria ser que els pirates haguessin utilitzat una clau numèrica diferent per cada un d'ells.

Evidentment aquesta tasca no té res a veure amb els jocs del CodeClub, però degut a la importància de la tasca i a la serietat del problema, els responsables de la organització pensen que amb els coneixements que heu obtingut fins ara ens podreu ajudar a desxifrar el misteriós missatge. Els responsables de la nostra organització secreta han promès 10 punts positius i la medalla de l'honor del CodeClub per cada un dels espies que hagi estat capaç d'entregar un programa que desxifri el seu tros de missatge criptogràfic.

Degut a la importància de l'assumpte, els responsables de l'organització ens han dit que podeu demanar ajuda als pares, germans, etcètera. Un cop el resoleu, només caldrà que us poseu en contacte amb als caps de club, i automàticament us donaran la tant merescuda recompensa.

.

Ajuda:

Us recomanem que utilitzeu les següents indicacions:

  1. Crear una llista anomenada llista_alfabet:


  2. Emplenar cada una de les posicions amb les lletres de l'abecedari per ordre: primer la A, llavors la B, fins a arribar a la Z. Això ho podeu fer o bé amb el signe + que hi ha a sota de la llista, o utilitzant el bloc afegeix [] a llista_alfabet. També hi ha la opció d'importar a dins de la llista el següent fitxer que ja conté tot l'abecedari.


  3. A continuació, aprendrem a moure'ns pels elements de la llista. El següent programa llegeix cada una de les lletres de la llista i les mostra per pantalla. És molt important que enteneu que està fent aquest programa. Fixeu-vos que primer fem servir una variable numero_calaix on li anem posant el número de calaix on hi ha cada lletra. El bloc repeteix [] vegades es repeteix tantes vegades com calaixos té la llista, o sigui, el nombre que ens retorna llargada de llista_alfabet.

  4. També podem fer que el programa accedeixi només a les lletres que nosaltres volem. Per exemple, aquest programa només mostra per pantalla les paraules que estan en un calaix parell, o sigui en el 2,4,6,8,10,12 i fins al 26.


  5. Com que tenim la llista_alfabet, podem crear una nova llista amb cada un dels números de calaix (índexs) de les lletres que componen el missatge secret a la llista_alfabet. Per exemple, si tenim el missatge xifrat IPMB, les posicions del calaix seran la 9 (I), 16 (P), 13 (M), i 2 (B). Per tant, crearem una llista amb aquests elements:


  6. Utilitzant la llista posicions_xifrades que conté les posicions de les lletres de la paraula xifrada, accediu a l'abecedari per comprovar que els índexs són correctes. El següent programa recorre els calaixos de la llista posicions_xifrades, guarda el valor de cada calaix a la variable calaix_actual, i mostra per pantalla la paraula de l'abecedari que coincideix amb el calaix calaix_actual.


  7. El problema principal aquí és que mostrar per pantalla lletra a lletra no es ajuda a desxifrar el missatge. Per tant, podem modificar un xic el programa anterior per fer-lo que guardi la paraula resultant en una variable i després la mostri per pantalla. Fixeu-vos com fer-ho:


A partir d'aquí, tot està a les vostres mans. Necessitem que cada un de vosaltres desxifri el tros de missatge secret que li hem encomanat. Ajudeu-nos si us plau, estem en un perill imminent!!!

Estratègia

Penseu que no fa masses anys, els espies secrets com vosaltres, resolien aquest tipus de reptes amb plantilles com aquestes. Potser us serveix d'ajuda per pensar una estratègia.

El programa del punt 7 us pot ser de gran ajuda per desxifrar el missatge. Només cal crear una llista amb els índexs del missatge xifrat com al pas 5, i modificar el programa perquè provi diferents claus. Penseu com ho han fet els pirates informàtics per xifrar el missatge.

Probablement la vostra tasca sigui desfer el procediment que ells han fet per xifrar...

Ànims ciberespies! Us espera una recompensa important! I recordeu que podeu demanar ajuda a casa, o als amics!!!