TEMES

Alfabets, aritmètica modular i espies

Models matemàtics d’àlgebra lineal: aprenent de hacker II

En aquest article us parlaré de com representar missatges en format alfabètic.

A la realitat disposem d’alfabets amb una quantitat finita d’elements; només cal observar l’anomenat codi ASCII, que compta amb 256 caràcters per designar qualsevol lletra, nombre o símbol del llenguatge. Caldrà, doncs, associar de manera coherent una quantitat finita de nombres enters a cada alfabet.

Per fixar idees, el primer que s’ha de fixar són els caràcters i les seves equivalències numèriques. En l’alfabet de la figura inferior podem veure que s’associa a cada lletra el valor numèric que marca la posició de cada lletra:

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

A partir d’aquí, suposem que prenem com a matriu clau per codificar la matriu

 

i que, per exemple, el missatge per codificar és la paraula “CODI”.

Si prenem el conveni d’escriure la paraula de forma matricial com

M =  

el missatge codificat es converteix en  · .

Per tant, l’emissor envia la paraula CODI, però per la xarxa circula 11, 34, -3, -16.

Per descodificar el missatge, només cal calcular la matriu inversa de A, que és

 

i llavors:

.

En aquest exemple hem vist que el missatge original l’escrivim en paraules i que circula per la xarxa codificat en números. Però si el que ens interessa és que el missatge circuli també en caràcters alfabètics, llavors caldrà utilitzar aritmètica modular, en aquest cas en mòdul 27, i aleshores podrem escriure la seqüència 11, 34, -3, -16 com

11=11 (27), 34 ≡7 (27), -3 ≡ -3+0≡ -3+5 = 2 (27), -16 ≡ -16+27=11 (27) 

que correspondria a les lletres KGBK. Així, un hipotètic espia podria interceptar la seqüència alfabètica KGBK o bé la seqüència numèrica 11,34,-3,-16.

Un aclariment: Quan diem “en mòdul 27” volem dir que el nombre 28 torna a ser la A, el 29 la B i així successivament; aquest fet l’expressem amb el símbol ≡.

En tots dos casos, si el descodificador no canvia d’aritmètica, llavors el missatge que rep és erroni, perquè només es pot trobar el missatge original si s’usa la matriu inversa.

Aquest fet ens permet d’introduir qualsevol variant en l’alfabet, fins i tot aplicar prèviament el codi Cèsar. També cal tenir en compte la longitud dels missatges, els espais en blanc, distingir majúscules i minúscules, etc.

En el proper article, mostraré un cas bastant general aplicat a qualsevol alfabet, anomenat codi Hill, que recull en bona part la codificació en matrius usant aritmètica modular.

Contacta amb Divulcat