Què és realment SHA-256 Cuadernos Lacre · Concepte · 19 de maig de 2026 https://solo2.net/ca/quaderns/articulos/que-es-realment-sha-256.html Una empremta matemàtica que cap en seixanta-quatre caràcters i que canvia sencera si una sola coma del text original es mou. Per què en diem segell de lacre digital. --- La idea senzilla darrere del nom tècnic Imagina que existeix una màquina amb una sola ranura i una sola pantalla. Per la ranura introdueixes un text: una paraula, una frase, una novel·la sencera. A la pantalla apareix, instants després, una seqüència exactament de seixanta-quatre caràcters. Aquesta seqüència, al lector professional en diem hash o resum criptogràfic; al lector general, podem anomenar-la per ara una empremta matemàtica del text, com l'empremta dactilar ho és d'una persona. Si introdueixes el mateix text dues vegades, la màquina mostra la mateixa empremta les dues vegades. Si introdueixes un text lleugerament diferent —una sola coma desplaçada, una majúscula que passa a minúscula— la màquina mostra una empremta completament diferent de la primera. No semblant: diferent. Aquestes dues propietats juntes —el determinisme i la sensibilitat— són la idea senzilla. Tota la resta del SHA-256 és la maquinària que les fa complir bé. Convé dir des del principi el que la màquina no fa. No xifra el text. No l'oculta. No el guarda. La màquina mira el text, calcula l'empremta, i s'oblida del text. L'empremta no permet reconstruir el text que la va produir; només permet, donat un text candidat, comprovar si coincideix o no amb l'original. Per això diem que és un resum d'una sola direcció: s'hi va, no se'n torna. Un hash no és el mateix que xifrar La confusió és freqüent i convé aclarir-la: xifrar i hashejar són operacions distintes. Xifrar consisteix a transformar un text de manera que només el posseïdor de la clau pugui retornar-lo a la seva forma original. Hashejar consisteix a produir una empremta del text de la qual el text original no es pot recuperar mai, ni amb clau ni sense. La primera és reversible per disseny; la segona, irreversible per disseny. La conseqüència pràctica importa. Quan una aplicació diu «guardem la teva contrasenya xifrada», hi ha algú que té la clau per desxifrar-la — l'aplicació mateixa, en qualsevol cas. Quan una aplicació diu «guardem la teva contrasenya hashejada», l'aplicació mateixa no pot llegir la contrasenya original encara que vulgui; només pot comprovar si la que tu escrius torna a produir la mateixa empremta. El segon model, fet bé, és molt preferible al primer per emmagatzemar contrasenyes. Més endavant veurem per què «fet bé» exigeix alguna cosa més que SHA-256 a seques. Les quatre propietats que fan útil un hash criptogràfic Una funció hash que mereix l'adjectiu criptogràfic compleix quatre propietats: 1. Determinisme. La mateixa entrada produeix sempre la mateixa empremta. 2. Efecte avalanxa. Un canvi petit en l'entrada produeix una empremta completament diferent, sense semblança visible amb l'anterior. 3. Resistència a la inversió. Donada una empremta, no és viable computacionalment trobar el text que la va produir. 4. Resistència a col·lisions. No és viable computacionalment trobar dos textos diferents que produeixin la mateixa empremta. «No és viable computacionalment» no significa «és matemàticament impossible». Significa que el cost en temps, energia i diners d'aconseguir-ho excedeix en ordres de magnitud la suma de tota la capacitat de càlcul raonablement disponible. Per al SHA-256, aquesta cota es mesura en milers de bilions d'anys fins i tot per als plantejaments més optimistes amb maquinari especialitzat. La qual cosa, a efectes pràctics del lector, és el mateix que «no es pot». SHA-256, en concret El nom ho diu tot. SHA són les sigles de Secure Hash Algorithm: algorisme de hash segur. El número 256 indica la mida de l'empremta en bits: dos-cents cinquanta-sis bits, és a dir trenta-dos bytes, que mostrats en hexadecimal són els seixanta-quatre caràcters que el lector ja reconeix. L'estàndard el va publicar el NIST nord-americà, l'organisme que normalitza aquest tipus de funcions, el 2001 com a part de la família SHA-2; la versió vigent de l'estàndard, FIPS 180-4, és de 2015. Les dimensions mereixen un instant. Dos-cents cinquanta-sis bits permeten dos elevat a dos-cents cinquanta-sis valors diferents: un número amb setanta-vuit dígits decimals, diversos ordres de magnitud major que el número estimat d'àtoms en l'univers observable. Cada text del món —cada llibre, cada correu electrònic, cada missatge— cau sobre un d'aquests valors. La probabilitat que dos textos diferents coincideixin per atzar és, a efectes pràctics, indistingible de zero. Com es veu en codi Per què en diem segell de lacre En la correspondència europea dels segles quinze al dinou, el lacre tancava la carta. Una gota de cera fosa, un segell pressionat a sobre, i la carta quedava marcada de forma irrepetible. No protegia el contingut del xafarder decidit —el paper es podia llegir a contrallum, el lacre es podia trencar— però sí que l'evidenciava. Qualsevol alteració del tancament era visible per al destinatari abans fins i tot d'obrir el paper. El lacre no impedia el dany; el declarava. El SHA-256 del cos de cada Cuaderno compleix la mateixa funció en la seva versió digital. Si una sola paraula de l'article canviés entre el moment en què es va publicar i el moment en què tu el llegeixes, el segell hexadecimal al peu del text ja no coincidiria amb el SHA-256 del text que tens davant. Qualsevol lector amb cinc línies de codi podria comprovar-ho. La publicació no pot reescriure la seva història sense que el segell la delati. No protegeix contra el dany; el fa verificable. El que un hash no és Quatre usos se li demanen de vegades al SHA-256 que no li corresponen: 1. Xifrar. Un hash resumeix; no oculta. Si vols que el text no es pugui llegir, necessites xifrar-lo, no hashejar-lo. 2. Autenticar l'autor. Un hash no diu qui va escriure el text, només quin text es va hashejar. Per associar autoria cal una signatura criptogràfica a sobre del hash, no el hash a seques. 3. Emmagatzemar contrasenyes. Aquí hi ha una trampa que convé entendre. El SHA-256 està dissenyat per ser molt ràpid —la qual cosa és bona per a moltes coses, però dolenta per a aquesta. Un atacant amb maquinari especialitzat pot provar milers de milions de contrasenyes per segon contra un hash SHA-256 fins a trobar la teva. Per guardar contrasenyes cal usar funcions de derivació de clau deliberadament lentes com Argon2, scrypt o bcrypt, combinades amb una sal (una dada aleatòria única per usuari, que evita que dues persones amb la mateixa contrasenya tinguin el mateix hash). 4. Llegir el hash com a identificador de l'autor. No ho és. Un hash identifica el contingut. Si dues persones hashegen la paraula hola amb SHA-256, totes dues obtenen el mateix resum — i això és la propietat central, no un defecte: si fossin resums diferents, no podríem comprovar coincidència entre el que s'ha publicat i el que s'ha rebut. On apareix SHA-256 en el teu dia a dia Encara que no ho vegis, el SHA-256 sosté bona part del que uses a diari a internet. La cadena de blocs de Bitcoin es construeix encadenant SHA-256 de cada bloc al següent; alterar un bloc passat obliga a recalcular tota la cadena posterior. Git, el sistema amb què es versiona el codi de mig món, identifica cada confirmació pel SHA-256 (en versions recents) o pel seu predecessor SHA-1 (en versions més antigues) del seu contingut complet. Els certificats HTTPS que verifiquen la identitat d'un lloc web quan entres porten una empremta SHA-256 associada. Les descàrregues de programari s'acompanyen sovint d'un SHA-256 publicat pel desenvolupador perquè verifiquis que el fitxer no s'ha alterat pel camí. I, com hem dit, al peu de cada Cuadernos Lacre. Per al lector professional Quatre recordatoris operatius per a qui decideix o audita sistemes: 1. Hash no és xifrat. Si un proveïdor confon els dos termes en la seva documentació tècnica, convé preguntar què vol dir exactament. 2. Per emmagatzemar contrasenyes mai no s'ha d'usar SHA-256 a seques. SHA-256 és massa ràpid per a aquesta tasca (vegeu punt 3 de El que un hash no és). L'estàndard actual és Argon2id: lent per disseny, configurable segons la capacitat del servidor, combinat amb una sal aleatòria diferent per usuari. 3. Per a integritat de documents —contractes, expedients, fitxers— SHA-256 continua sent l'estàndard de referència. És el que usen els segelladors temporals qualificats a la UE. 4. Per a conservació a llarg termini (decennis) convé calcular i arxivar també un SHA-3 o un SHA-512 al costat del SHA-256; la prudència criptogràfica recomana no recolzar-se en una sola funció durant arxius centenaris. Imagina que has muntat el circuit de dominó més elaborat del món: milers de fitxes, desenes de bifurcacions, ponts mecànics i rutes que creuen tota l'habitació, curosament col·locades peça a peça. Si dones un toc a la primera fitxa, la cadena cau en una seqüència precisa i repetible. Mateix muntatge, mateix toc inicial → idèntic patró final de fitxes caigudes, un cop i un altre. Aquí hi ha l'interès: mou una sola fitxa mig centímetre a un costat abans de començar i torna a tocar. Una ruta que s'havia d'activar es queda inerta, un pont no cau, una bifurcació distinta es dispara. El patró final de fitxes a terra és completament irrecognoscible comparat amb el primer. SHA-256 és matemàticament aquest circuit. El text que escrius és la posició inicial de les fitxes. L'algoritme és el toc que llibera la cascada. I el resultat final —el que anomenem hash— és la foto fixa del terra quan s'ha aturat tot. Canvia una sola coma del text original i la foto serà radicalment distinta. Així de simple, i així de dràstic. --- Si tornes al peu d'aquest article, veuràs un segell hexadecimal de seixanta-quatre caràcters. És el SHA-256 del text que acabes de llegir, en aquest idioma. Si traduíssim l'article, el segell seria un altre; si canviés una paraula de la versió catalana, el segell català canviaria. El segell no protegeix el contingut —per a això hi ha altres eines— sinó que l'identifica unívocament. I això, per modest que soni, n'hi ha prou perquè cap pas de la cadena editorial pugui alterar el que s'ha dit sense que es noti. Tota la resta —xifrar, signar, identificar— es construeix a sobre d'aquesta idea senzilla. Fonts i lectura addicional - NIST — FIPS PUB 180-4: Secure Hash Standard (SHS), agost de 2015. Especificació oficial de la família SHA-2, incloent-hi SHA-256. - RFC 6234 — US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF), IETF, maig de 2011. Versió normativa per a implementadors. - Ferguson, N.; Schneier, B.; Kohno, T. — Cryptography Engineering: Design Principles and Practical Applications (Wiley, 2010). Capítols 5 i 6 cobreixen funcions hash i els seus usos legítims i il·legítims. - Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Exemple pràctic de l'ús de SHA-256 per encadenar blocs en una estructura immutable per construcció. - Reglament (UE) 910/2014 (eIDAS) — marc dels segelladors temporals qualificats. SHA-256 és la funció de referència per a les signatures i segells electrònics qualificats emesos a la UE. - Implementació de referència en Zig: std.crypto.hash.sha2.Sha256 en el repositori oficial del llenguatge (github.com/ziglang/zig → lib/std/crypto/sha2.zig). És la versió optimitzada i auditada que de fet usa Solo2. Útil per contrastar amb la implementació didàctica de l'apèndix. --- Cuadernos Lacre · Una publicació de Menzuri Gestión S.L. · escrita per R.Eugenio · editada per l'equip de Solo2. https://solo2.net/ca/quaderns/