Evolució de la criptografia, des del Xifrat Cèsar fins al TLS (Transport Layer Security)
Publicat el dia
Protocol criptogràfic i seguretat a Internet
Alguna vegada us heu preguntat que significa aquest cadenat?
Sí el cadenat que apareix als navegadors quan accedim a un web de forma segura. Per entendre el seu significat, hem de retrocedir en el temps diversos mil·lennis.
Des dels inicis de la comunicació escrita, l’ésser humà s’ha enfrontat a un dels majors problemes en aquest àmbit. Com podem mantenir una comunicació privada? Aquest és un problema que s’ha estès durant els passats segles, i que com veurem, la seva solució actual es quedarà obsoleta abans del que pensàvem.
De quina manera podem convertir un missatge en alguna cosa indesxifrable per un estrany, però a la mateixa vegada mantenint el seu sentit original per al destinatari?
Els primers criptògrafs – Criptografia simètrica
Els primers indicis de criptografia es remunten a l’imperi romà, quan l’emperador Juli Cèsar va manar crear un mètode per mantenir els missatges segurs en cas que un enemic els interceptés. Aquest mètode, anomenat Xifrat César, consisteix a desplaçar les lletres de l’abecedari un nombre determinat de vegades.
El nombre de vegades que desplacem una lletra és la clau, ja que qualsevol persona que conegui aquesta clau pot desxifrar el missatge. En aquests casos, quan la clau utilitzada per xifrar un missatge és la mateixa que s’utilitza per al procés de desencriptació, parlem de criptografia simètrica.
Aquesta mateixa propietat implica un gran problema, ja que hem d’enviar la clau que farem servir al destinatari abans d’enviar el missatge. Si durant la transmissió la clau és robada, l’encriptació ja no ens servirà de res.
Un altre dels grans problemes són els anomenats atacs de força bruta. Encara que una persona no conegui la clau, si coneix l’algoritme utilitzat per a l’encriptació del missatge pot provar totes les claus possibles fins a trobar la correcta. En el Xifrat César les claus possibles són 26, fent-lo un algoritme vulnerable a aquest tipus d’atacs.
Actualment els algoritmes utilitzats per a l’encriptació simètrica de dades són molt més complicats que el Xifrat César, convertint els atacs per força bruta completament inviables. Un dels algoritmes més coneguts és: AES que té una clau que oscil·la entre els 128 i 256 bits.
La solució a la criptografia simètrica – Criptografia asimètrica
La solució als problemes de la criptografia simètrica l’aporta la criptografia asimètrica. Aquesta té dues claus: la clau pública i la clau privada. Les dues es troben relacionades per propietats matemàtiques i es generen simultàniament, per això també es diuen keypair o parell de claus.
Els keypairs tenen unes propietats molt especials que solucionen molts dels problemes de la criptografia simètrica:
- La clau pública pot xifrar missatges, però no pot desencriptar-los.
- La clau privada pot desencriptar missatges encriptats utilitzant la clau pública de la seva keypair.
- És gairebé impossible obtenir la clau privada a partir de la clau pública.
Aquesta darrera propietat es basa en un dels problemes matemàtics sense solució en l’actualitat: la descomposició d’un nombre en la multiplicació de nombres primers. Per exemple, si algú ens demana descompondre el nombre 21 en els seus nombres primers, fàcilment sabrem veure a prova i error que:
7 * 3 = 21
On 7 i 3 són nombres primers. Però si el nombre a descompondre és un molt més gran, ens adonarem que no hi ha un mètode definit per trobar els seus nombres primers. Com més gran el nombre més difícil és trobar la solució, fins a arribar a un punt on els ordinadors contemporanis tampoc són capaços de trobar la solució a prova i error.
Si volem enviar un missatge segur utilitzant criptografia asimètrica succeirà el següent:
- Notificarem al destinatari que li volem enviar un missatge.
- El destinatari genera un keypair i ens enviarà la seva clau pública.
- Encriptarem el missatge amb la clau pública i l’hi enviarem.
- El destinatari desencriptarà el missatge amb la seva clau privada.
- Si el destinatari vol contestar, ens demanarà que generem una keypair i que li enviem la nostra clau pública.
¿Sembla tot perfecte, no? Doncs, aquest seria el mètode d’encriptació definitiva actual si no fos per una gran limitació del mateix.
L’algoritme de criptografia asimètrica més utilitzat i conegut és el RSA i té una clau de 2048 bits en la majoria de casos. El problema es dóna en el mateix algoritme, que provoca que per cada bloc de dades encriptades, aquest augmenti la seva mida en un bit. A més, RSA és molt poc eficient per a la desencriptació de missatges molt grans. Un missatge gran provocaria un augment de les dades tan significatiu que faria inviable el fet de desxifrar-lo legalment, a causa de les ineficiències de l’algoritme.
En una societat on les dades ja es distribueixen en milions de bytes per segon, l’encriptació mitjançant RSA és una solució inadequada.
Què passa quan apareix el cadenat?
Llavors, quina solució es fa servir per a xifrar les comunicacions de segle XXI? S’anomena TLS (Transport Layer Security) i la coneixem pel cadenat que apareix en els navegadors d’Internet.
Aquesta solució és una combinació de les dues tecnologies explicades: la criptografia simètrica i la criptografia asimètrica. Principalment s’utilitza una clau simètrica (AES, per exemple) per xifrar i desxifrar les dades. Per altra banda s’utilitza criptografia asimètrica (RSA, per exemple) per transmetre la clau simètrica de manera segura, ja que la mateixa té una mida molt petit (menor d’ 1KB). La creació d’una connexió mitjançant TLS s’executa de la següent manera (procés simplificat):
- El servidor genera un keypair RSA-2048 i envia la clau pública al navegador.
- El navegador genera una clau simètrica AES-256, i l’envia al servidor encriptada amb la clau pública que aquest mateix li ha enviat.
- El servidor desxifra el missatge que conté la clau simètrica AES-256 generada pel navegador, mitjançant la clau privada de l’keypair.
Una vegada arribats a aquest punt, els missatges són encriptades i desencriptats amb la clau simètrica que s’ha transferit amb seguretat del navegador al servidor, generant un canal de comunicacions totalment segur.
El futur de l’encriptació
Com indicava al principi d’aquest article, en un futur no molt llunyà, aquest tipus de protocol es quedarà obsolet. El motiu: l’aparició dels ordinadors quàntics. Ordinadors amb una capacitat de computació tan elevada que faran possible factoritzar els nombres en la seva multiplicació de nombres primers de manera molt ràpida. D’aquesta manera es pot accedir a les claus privades d’un keypair tenint només la clau pública del mateix. Per tant, els ordinadors quàntics poden desxifrar la clau simètrica d’una connexió i posteriorment els missatges de la mateixa.
Però, ara per ara, la pròxima vegada que vegis el cadenat pensa en tota l’enginyeria, matemàtiques i esforç, de milers de persones, necessaris perquè les nostres connexions siguin segures i es quedin fora de l’abast de mirades desconegudes.