De Fermat a RSA

Descobreix, omplint una taula de potències, un patró que Fermat va observar el 1640. Després construeix amb ell un sistema de xifratge de clau pública sencer —claus incloses— i xifra una paraula de veritat.

El petit teorema de Fermat diu una cosa que sembla massa bonica per ser certa: si p és primer i a no és múltiple de p, aleshores

ap−1≡1(modp)

Sigui quina sigui la base. Eleva 2, 3, 4… a la potència p−1 i divideix per p: sempre sobra 1. La taula de la primera vista ho fa evident: la columna p−1 surt tota d'uns.

Euler ho va generalitzar a mòduls no primers substituint p−1 per φ(n), la quantitat de números menors que n que no comparteixen cap factor amb ell. I aquesta generalització és, literalment, la peça sobre la qual descansa RSA: xifres elevant a una potència e, desxifres elevant a una altra potència d, i el teorema d'Euler és el que garanteix que tornes al punt de partida.

Fins al 1976 hi havia un problema que semblava insalvable: per parlar en secret amb algú calia haver-se posat d'acord abans en una clau, i posar-se d'acord en secret requeria… un canal segur. Un peix que es mossega la cua, i el motiu pel qual la criptografia era cosa de diplomàtics i militars amb valisa.

La clau pública el trenca. Publiques una clau que serveix només per tancar, i te'n guardes una altra que serveix per obrir. Qualsevol pot enviar-te un missatge xifrat sense haver-te vist mai, i ningú més el pot llegir.

RSA ho aconsegueix amb una asimetria de l'aritmètica: multiplicar dos primers grans és immediat, i desfer el producte és, fins on sabem, inabastable. La teva clau pública conté n = p·q; la privada necessita conèixer p i q. Tothom veu n, però ningú no en sap treure els factors.

Això és el que protegeix, ara mateix, el cadenat del navegador, les signatures del programari que instal·les, els passaports biomètrics i les actualitzacions del teu telèfon.

  1. Vista «El teorema»: tria un mòdul i arrossega la barra de l'exponent. Cada posició il·lumina una columna de la taula, i el comptador et diu quantes bases hi donen 1.
  2. Arrossega fins que el comptador s'ompli del tot. Amb un mòdul primer, això passa exactament a l'exponent p−1: acabes de trobar el teorema de Fermat tu mateix.
  3. Prova ara un mòdul compost (9 o 15). El patró es trenca: les files de bases que comparteixen un factor amb el mòdul no arriben mai a 1, i la primera columna plena arriba abans de n−1.
  4. Vista «Les claus»: tria dos primers p i q. Es calculen n = p·q i φ(n) = (p−1)(q−1). Tria una e vàlida i mira com surt la d amb Euclides estès, pas a pas.
  5. Vista «Xifrar»: escriu una paraula. Cada lletra es converteix en un número, es xifra amb la clau pública i es desxifra amb la privada. A sota tens el càlcul complet d'una lletra per quadrats repetits.
  6. En Repte hi ha tres preguntes: trencar una clau petita factoritzant n, calcular potències enormes fent servir el teorema, i trobar φ(n).

Aquesta càpsula explica com una observació que Fermat va anotar en una carta el 1640, sense demostrar-la i sense cap aplicació a la vista, es va convertir tres-cents anys després en la peça que protegeix pràcticament totes les comunicacions d'internet. El camí passa per Euler, per un problema que semblava lògicament impossible, i per una asimetria de l'aritmètica que encara no sabem si és real o només un límit del nostre enginy.

1. El problema que semblava insoluble

Durant milers d'anys, tota la criptografia va compartir una mateixa forma: emissor i receptor comparteixen un secret —una clau— i el fan servir tots dos, un per tancar i l'altre per obrir. El xifratge del Cèsar, la màquina Enigma i els sistemes moderns de clau simètrica funcionen així.

Això arrossega un problema que es coneix com el problema de la distribució de claus, i és més greu del que sembla. Per parlar en secret amb algú, primer cal haver acordat una clau en secret. I per acordar-la en secret cal… un canal segur, que és exactament el que encara no tens. Durant segles l'única solució va ser física: valises diplomàtiques, missatgers, llibres de codis lliurats en mà.

Pitjor encara: amb N persones que vulguin parlar entre elles dues a dues calen N(N−1)/2 claus diferents. Per a mil persones, mig milió de claus. Per a internet, la xifra deixa de tenir sentit.

El 1976, Whitfield Diffie i Martin Hellman van publicar un article que proposava una idea que semblava contradictòria: una clau que serveix per tancar però no per obrir. Si existís, la podries publicar al diari. Qualsevol et podria enviar missatges secrets, i tu series l'únic capaç de llegir-los. Diffie i Hellman van descriure què hauria de fer un sistema així, però no en van trobar cap. El van trobar, un any després, Ron Rivest, Adi Shamir i Leonard Adleman.

2. L'eina bàsica: elevar a potències en aritmètica modular

Tot el que ve depèn d'una operació: calcular ak mod n. Fer-ho ingènuament —multiplicar a per si mateix k vegades— és inviable quan k té centenars de xifres. La solució és l'exponenciació per quadrats repetits, i és molt més eficient del que sembla.

La idea: en comptes de pujar d'un en un, vas quadrant. Amb a, a², a⁴, a⁸, a¹⁶… arribes a exponents enormes en molt pocs passos, i qualsevol exponent es reconstrueix sumant-ne uns quants, perquè cada número s'escriu en binari.

Exemple · 17²⁷ mod 55
27 en binari és 11011, és a dir 16 + 8 + 2 + 1.
Calculem quadrats successius mòdul 55: 17¹ = 17, 17² = 289 ≡ 14, 17⁴ ≡ 14² = 196 ≡ 31, 17⁸ ≡ 31² = 961 ≡ 26, 17¹⁶ ≡ 26² = 676 ≡ 16.
Multipliquem els que toquen: 17¹⁶ · 17⁸ · 17² · 17¹ ≡ 16 · 26 · 14 · 17, tot mòdul 55, i dona 8.
Nou operacions en lloc de 27. Amb exponents de 2.048 bits la diferència és entre uns milers d'operacions i més que àtoms té l'univers.

Una cosa que convé notar: els números mai creixen. Es redueix mòdul n a cada pas, així que tot es manté per sota de n encara que l'exponent sigui astronòmic. Aquesta és la raó per la qual RSA és computable.

3. El petit teorema de Fermat

El 18 d'octubre de 1640, Fermat va escriure a Bernard Frénicle de Bessy explicant-li que si p és primer i a no és múltiple de p, aleshores p divideix ap−1 − 1. Va afegir que li n'enviaria la demostració «si no temés ser massa llarg». No la va enviar mai, i com passa sovint amb Fermat, no se n'ha trobat cap rastre.

La primera demostració publicada és d'Euler, gairebé un segle després, el 1736. I n'hi ha una que val la pena veure perquè és purament combinatòria:

La demostració per reordenació. Pren els residus 1, 2, …, p−1 i multiplica'ls tots per a mòdul p. El resultat és la mateixa llista, reordenada: cap producte pot donar 0 (p és primer i no divideix ni a ni cap dels factors) i no n'hi pot haver dos d'iguals (si a·i ≡ a·j, com que a és invertible, i ≡ j). Multiplicant tota la llista de les dues maneres: ap−1·(p−1)! ≡ (p−1)! (mod p). Com que (p−1)! no és divisible per p, es pot cancel·lar, i queda ap−1 ≡ 1.

Fixa't que la cancel·lació final és el pas delicat, i és exactament on entra la primalitat: mòdul un número compost no sempre es pot cancel·lar. És el mateix punt que trencava el teorema xinès del residu amb mòduls no coprimers.

4. La generalització d'Euler i la funció φ

Euler no es va aturar a demostrar-lo: el va estendre a mòduls qualssevol. Per fer-ho va definir φ(n), la quantitat d'enters entre 1 i n que no comparteixen cap factor amb n. Aleshores, per a tot a coprimer amb n:

aφ(n)≡1(modn)

Quan n = p és primer, tots els números de 1 a p−1 hi són coprimers, φ(p) = p−1, i es recupera Fermat com a cas particular.

El que fa φ utilitzable és que es calcula a partir de la factorització: és multiplicativa sobre factors coprimers, cosa que surt del teorema xinès del residu. Per a n = p·q amb p i q primers diferents:

φ(pq)=(p−1)(q−1)

I aquí hi ha la trampa que fa possible RSA: calcular φ(n) és tan difícil com factoritzar n. Si saps que 55 = 5·11, φ(55) = 4·10 = 40 és immediat. Si només veus 55 i no en coneixes els factors, no tens cap drecera.

Un detall que la taula revela. A la primera vista veuràs que amb mòduls compostos la primera columna que surt tota d'uns arriba abans de φ(n). Amb n = 15, φ = 8, però ja a l'exponent 4 totes les bases coprimeres donen 1. Aquest exponent més petit té nom propi: és la funció de Carmichael λ(n), el mínim comú múltiple dels ordres. Sempre divideix φ(n), i per a mòduls primers hi coincideix. RSA funciona igualment amb qualsevol dels dos, i les implementacions modernes fan servir λ precisament perquè dona una clau privada més petita.

5. Per què funciona RSA

Amb Euler a la mà, la construcció és sorprenentment curta.

La construcció completa
1. Tria dos primers diferents p i q. Calcula n = p·q i φ(n) = (p−1)(q−1).
2. Tria una e coprimera amb φ(n). El parell (n, e) és la clau pública: es publica.
3. Calcula d, l'invers de e mòdul φ(n), amb Euclides estès. El parell (n, d) és la clau privada: no surt d'aquí.
4. Xifrar: c = me mod n. Desxifrar: m = cd mod n.

Que desxifrar desfaci exactament el xifratge és el que cal comprovar. Per construcció, e·d ≡ 1 (mod φ(n)), és a dir e·d = 1 + k·φ(n) per a algun enter k. Aleshores:

cd=(me)d=m1+kφ(n)=m·(mφ(n))k

I pel teorema d'Euler el parèntesi val 1, així que tot plegat és m. El missatge torna intacte.

Un detall tècnic honest: aquest argument suposa que m és coprimer amb n. Quan no ho és —quan m és múltiple de p o de q— el teorema d'Euler no s'aplica directament, però el resultat continua sent cert. Es demostra amb el teorema xinès del residu, comprovant la igualtat per separat mòdul p i mòdul q. És per això que RSA necessita que n sigui producte de primers diferents.

6. Què fem a l'element interactiu

Les tres vistes recorren el camí sencer, i cadascuna alimenta la següent.

A «El teorema» hi ha la taula de totes les potències ak mod n. Arrossegant la barra de l'exponent il·lumines una columna i el comptador et diu quantes bases hi donen 1. Amb un mòdul primer, el comptador s'omple de cop justament a l'exponent p−1. Amb un de compost, les files de bases no coprimeres es marquen en vermell i no arriben mai a 1 —són exactament les que el teorema exclou—, i la primera columna plena apareix abans, a λ(n).

A «Les claus» tries p i q i es construeix tot el sistema: n, φ(n), les e vàlides, i la d calculada amb Euclides estès escrit pas a pas. Les caselles estan acolorides per recordar què és públic (verd) i què és secret (vermell).

A «Xifrar» escrius una paraula i veus cada lletra convertida en número, xifrada i desxifrada. A sota hi ha el càlcul complet d'una lletra per quadrats repetits, amb tots els quadrats intermedis.

7. Recorregut complet: construir un sistema i xifrar

Pas a pas, amb p = 5 i q = 11
1. A la vista «El teorema», posa el mòdul a 11 i arrossega l'exponent. A k = 10 el comptador marca 10 de 10: totes les bases donen 1. Acabes de veure que φ(11) = 10.
2. Passa a «Les claus» i tria p = 5, q = 11. Surt n = 55 i φ(n) = 4 · 10 = 40.
3. Tria e = 3. És vàlida perquè mcd(3, 40) = 1. La clau pública és (55, 3).
4. El panell calcula d amb Euclides estès: 40 = 13·3 + 1, i d'aquí 1 = 40 − 13·3, que mòdul 40 diu −13·3 ≡ 1. Com que −13 ≡ 27, surt d = 27. Comprovació: 3 · 27 = 81 = 2·40 + 1 ✓.
5. Ves a «Xifrar» i escriu HOLA. La H és la lletra 8, i es xifra com 8³ = 512 = 9·55 + 17, o sigui c = 17.
6. Per desxifrar cal 17²⁷ mod 55. Amb quadrats repetits: 17, 14, 31, 26, 16, i combinant-los surt 8. Hem recuperat la H.
7. Ara la part important: qualsevol que vegi la clau pública (55, 3) i el missatge xifrat pot trencar-lo, perquè 55 es factoritza mentalment. Torna a «Les claus» i observa que tota la seguretat es redueix a una pregunta: saps trobar p i q a partir de n?

8. Per què és segur (i què vol dir «segur» aquí)

Val la pena ser precís sobre què se sap i què no. Ningú ha demostrat que RSA sigui segur. El que se sap és que trencar-lo pel camí evident requereix factoritzar n, i que ningú ha trobat cap manera ràpida de factoritzar.

L'asimetria és brutal. Multiplicar dos primers de 1.024 bits és instantani. El millor algorisme conegut per desfer-ho, el garbell general del cos de nombres, té un cost que creix de manera subexponencial: prou lent perquè, amb claus de 2.048 bits, superi qualsevol capacitat de còmput imaginable amb la tecnologia actual.

Però «no s'ha trobat» no és «no existeix». No hi ha cap demostració que factoritzar sigui difícil. I ja sabem que amb un ordinador quàntic prou gran no ho seria: l'algorisme de Shor, publicat el 1994, factoritza en temps polinòmic. Cap ordinador quàntic actual s'hi acosta ni de lluny, però la possibilitat és el motiu pel qual s'estan estandarditzant sistemes «postquàntics» basats en problemes diferents.

Per què les claus reals són tan grans. A la càpsula, n té dos dígits perquè la taula càpiga a la pantalla. Una clau real de 2.048 bits té uns 617 dígits decimals, i els seus dos factors primers en tenen uns 308 cadascun. El rècord públic de factorització és RSA-250, de 829 bits, aconseguit el 2020 amb unes 2.700 anys-nucli de càlcul. Cada bit afegit a la clau dobla l'espai; la distància entre 829 i 2.048 bits no és una millora incremental, és un abisme.

9. Aparicions fora de les matemàtiques

El cadenat del navegador. Cada connexió HTTPS comença amb un intercanvi de clau pública. Avui la part de xifratge sovint la fan corbes el·líptiques, però l'esquema conceptual —clau pública per acordar, clau simètrica per parlar— és el que van inventar Diffie, Hellman i RSA.

Signatures digitals. El mateix mecanisme al revés: xifres amb la clau privada i qualsevol ho verifica amb la pública. Com que només tu tens la privada, això prova que el missatge ve de tu. És el que fa que el teu telèfon accepti una actualització i rebutgi un programari manipulat.

Passaports i targetes. Els xips dels passaports biomètrics, del DNI electrònic i de les targetes bancàries fan aritmètica modular amb claus RSA per demostrar que són autèntics sense revelar el seu secret.

Test de primalitat. Fora de la criptografia, el teorema de Fermat és la base del test de Fermat: si an−1 ≢ 1 (mod n) per a alguna base a, aleshores n és compost amb tota seguretat, i sense haver-lo factoritzat. És l'avantpassat dels tests de Miller–Rabin que fan servir tots els sistemes que necessiten generar primers grans —incloent-hi, irònicament, la generació de claus RSA.

10. Curiositats

Ja s'havia inventat, però era secret. El 1973, quatre anys abans de RSA, Clifford Cocks va descriure essencialment el mateix sistema mentre treballava al GCHQ britànic. Estava classificat i no es va desclassificar fins al 1997. Cocks no va rebre cap crèdit públic durant vint-i-quatre anys, i el seu descobriment no va tenir cap efecte sobre el món precisament perquè era secret —una ironia notable per a un sistema el propòsit del qual és fer públic el que abans era secret.

Les paraules màgiques són l'aufrany llepafils. El 1977, Martin Gardner va publicar a Scientific American un repte de RSA amb una clau de 129 dígits, i va escriure que trencar-la requeriria una quantitat de temps astronòmica amb els algorismes coneguts. Es va trencar el 1994, amb 600 voluntaris coordinats per internet i vuit mesos de càlcul. El missatge amagat era «the magic words are squeamish ossifrage», una frase escollida perquè fos impossible d'endevinar. Cap dels tres autors de RSA havia previst internet.

Els números que enganyen el test de Fermat. Hi ha compostos que passen el test de Fermat per a totes les bases coprimeres: es diuen nombres de Carmichael. El més petit és 561 = 3·11·17. Són prou rars perquè el test sigui útil a la pràctica, però prou reals perquè calgui una versió més forta (Miller–Rabin). El tercer nombre de Carmichael és 1729, el mateix número del taxi que Ramanujan va reconèixer des del llit d'hospital com el més petit expressable com a suma de dos cubs de dues maneres diferents.

Fermat no va demostrar res. El «petit» teorema es diu així per distingir-lo del «gran» o «últim» teorema de Fermat, aquell que va anotar al marge dient que en tenia una demostració meravellosa que no hi cabia. Del petit tampoc no en va donar cap demostració —i en aquest cas la comunitat matemàtica només va haver d'esperar 96 anys, no 358.

El nom hauria pogut ser un altre. L'ordre dels cognoms a «RSA» es va decidir alfabèticament. Adleman, de fet, va estar a punt de demanar que no el hi posessin: considerava que la seva contribució havia estat sobretot trencar les propostes prèvies de Rivest i Shamir fins que una va resistir.

11. Connexió amb altres àrees

Aquesta càpsula tanca el bloc recollint-ne totes les peces. El sedàs i el ritme dels primers proporciona la matèria primera: RSA necessita primers grans, i el fet que n'hi hagi molts —conseqüència directa del teorema dels nombres primers— és el que fa possible generar-ne a l'atzar en mil·lisegons. Si els primers fossin escassos, el sistema no existiria.

Rellotges que encaixen hi apareix dues vegades: per demostrar que φ és multiplicativa i, sobretot, en el pas final de la demostració de correcció, quan el missatge no és coprimer amb n. A la pràctica, el teorema xinès del residu també és el que fa que desxifrar sigui unes quatre vegades més ràpid, calculant per separat mòdul p i mòdul q.

Reciprocitat quadràtica comparteix el terreny: els residus quadràtics mòdul un primer són el cas e = 2, i entendre quan una cosa és quadrat mòdul n és una peça de molts altres criptosistemes.

Cap a l'àlgebra, el marc natural de tot això és la teoria de grups. Els invertibles mòdul n formen un grup de φ(n) elements, i el teorema d'Euler no és més que el teorema de Lagrange aplicat a aquest grup: l'ordre de qualsevol element divideix l'ordre del grup, i per tant elevar a φ(n) torna a la identitat. Quan a Taules de Cayley comprovis que elevar un element a l'ordre del grup dona sempre l'element neutre, estaràs demostrant el teorema de Fermat sense saber-ho.

Vista:
Mòdul: Els mòduls en negre són primers i el teorema de Fermat s'hi compleix. Els marcats amb ⚠ són compostos: hi apareixen files vermelles que no arriben mai a 1.
Tria la durada del repte:
120s
Temps120s
Puntuació0
Ratxa0
k = 1
Arrossega la barra de l'exponent i mira quan s'omple el comptador.

Si p és primer i a no n'és múltiple, a^(p−1) ≡ 1 (mod p). La columna p−1 surt tota d'uns.

1
El teorema
Busca l'exponent que ho posa tot a 1.
De l'observació al criptosistema
Petit teorema de Fermat
ap−1≡1(modp)
Enunciat el 1640 en una carta, sense demostració. Multiplicar tots els residus per a els reordena sense repetir-ne cap: d'aquí surt el teorema en tres línies.
Teorema d'Euler
aφ(n)≡1(modn)
La versió per a mòduls qualssevol, amb φ(n) en lloc de p−1. Calcular φ(n) és tan difícil com factoritzar n: aquí és on neix la seguretat.
RSA
e·d ≡ 1 (mod φ(n))
Xifrar és elevar a e; desxifrar, elevar a d. Que una operació desfaci l'altra és exactament el teorema d'Euler aplicat a m^(1+kφ(n)).
💡 Recorda: la clau pública i la privada són el mateix tipus d'objecte —un exponent i un mòdul— i el que les separa és només qui coneix p i q. Tota la seguretat de RSA es redueix a una pregunta oberta: ningú ha demostrat que factoritzar sigui difícil.
🧮 Practica a GeoGebra: Criptografia RSA: els nombres primers ens protegeixen ↗