Ce este de fapt SHA-256 Cuadernos Lacre · Concept · 19 mai 2026 https://solo2.net/ro/caiete/articulos/ce-este-de-fapt-sha-256.html O amprentă matematică ce încape în șaizeci și patru de caractere și care se schimbă complet dacă se mișcă o singură virgulă din textul original. De ce îl numim sigiliu de ceară digital. --- Ideea simplă din spatele numelui tehnic Imaginează-ți că există o mașină cu o singură fantă și un singur ecran. Prin fantă introduci un text: un cuvânt, o frază, un roman întreg. Pe ecran apare, clipe mai târziu, o secvență de exact șaizeci și patru de caractere. Acea secvență, pentru cititorul profesionist, o numim hash sau rezumat criptografic; pentru cititorul general, o putem numi deocamdată o amprentă matematică a textului, așa cum amprenta digitală este a unei persoane. Dacă introduci același text de două ori, mașina arată aceeași amprentă de ambele dăți. Dacă introduci un text ușor diferit — o singură virgulă mutată, o majusculă care devine minusculă — mașina arată o amprentă complet diferită de prima. Nu asemănătoare: diferită. Aceste două proprietăți împreună — determinismul și sensibilitatea — reprezintă ideea simplă. Tot restul SHA-256 este mecanismul care le face să funcționeze bine. Merită spus de la început ce nu face mașina. Nu criptează textul. Nu îl ascunde. Nu îl salvează. Mașina se uită la text, calculează amprenta și uită textul. Amprenta nu permite reconstruirea textului care a produs-o; permite doar, dat fiind un text candidat, să verifici dacă acesta coincide sau nu cu originalul. De aceea spunem că este un rezumat într-o singură direcție: pleacă, nu se mai întoarce. Un hash nu este același lucru cu criptarea Confuzia este frecventă și merită clarificată: criptarea și hash-uirea sunt operațiuni diferite. Criptarea constă în transformarea unui text astfel încât doar posesorul cheii să îl poată readuce la forma sa originală. Hash-uirea constă în producerea unei amprente a textului din care textul original nu mai poate fi recuperat niciodată, nici cu cheie, nici fără ea. Prima este reversibilă prin design; a doua este ireversibilă prin design. Consecința practică contează. Când o aplicație spune „îți păstrăm parola criptată”, există cineva care are cheia pentru a o decripta — în orice caz, aplicația însăși. Când o aplicație spune „îți păstrăm parola hash-uită”, aplicația însăși nu poate citi parola originală chiar dacă ar vrea; poate doar să verifice dacă ceea ce scrii tu produce din nou aceeași amprentă. Al doilea model, făcut bine, este de preferat primului pentru stocarea parolelor. Mai târziu vom vedea de ce „făcut bine” necesită ceva mai mult decât SHA-256 simplu. Cele patru proprietăți care fac util un hash criptografic O funcție hash care merită adjectivul criptografic îndeplinește patru proprietăți: 1. Determinism. Aceeași intrare produce întotdeauna aceeași amprentă. 2. Efect de avalanșă. O schimbare mică în intrare produce o amprentă complet diferită, fără nicio asemănare vizibilă cu cea anterioară. 3. Rezistență la inversare. Dată fiind o amprentă, nu este fezabil din punct de vedere computațional să găsești textul care a produs-o. 4. Rezistență la coliziuni. Nu este fezabil din punct de vedere computațional să găsești două texte diferite care să producă aceeași amprentă. „Nu este fezabil din punct de vedere computațional” nu înseamnă „este matematic imposibil”. Înseamnă că costul în timp, energie și bani pentru a realiza acest lucru depășește cu ordine de mărime suma întregii capacități de calcul disponibile în mod rezonabil. Pentru SHA-256, această limită se măsoară în mii de miliarde de ani chiar și pentru cele mai optimiste abordări cu hardware specializat. Ceea ce, pentru scopurile practice ale cititorului, este același lucru cu „nu se poate”. SHA-256, în mod concret Numele spune totul. SHA este acronimul pentru Secure Hash Algorithm: algoritm de hash securizat. Numărul 256 indică dimensiunea amprentei în biți: două sute cincizeci și șase de biți, adică treizeci și doi de octeți, care, afișați în hexazecimal, sunt cele șaizeci și patru de caractere pe care cititorul le recunoaște deja. Standardul a fost publicat de NIST-ul american, organismul care normalizează acest tip de funcții, în 2001, ca parte a familiei SHA-2; versiunea actuală a standardului, FIPS 180-4, este din 2015. Dimensiunile merită un moment de atenție. Două sute cincizeci și șase de biți permit două la puterea două sute cincizeci și șase de valori diferite: un număr cu șaptezeci și opt de cifre zecimale, cu câteva ordine de mărime mai mare decât numărul estimat de atomi din universul observabil. Fiecare text din lume — fiecare carte, fiecare e-mail, fiecare mesaj — cade pe una dintre aceste valori. Probabilitatea ca două texte diferite să coincidă din întâmplare este, practic, imposibil de distins de zero. Cum arată în cod De ce îl numim sigiliu de ceară În corespondența europeană din secolele al XV-lea până la al XIX-lea, ceara de sigiliu închidea scrisoarea. O picătură de ceară topită, un sigiliu presat deasupra, iar scrisoarea rămânea marcată într-un mod irepetabil. Nu proteja conținutul de curioșii hotărâți — hârtia putea fi citită în lumină, ceara putea fi spartă — dar îl evidenția. Orice alterare a închiderii era vizibilă destinatarului înainte chiar de a deschide hârtia. Ceara nu împiedica dauna; o declara. SHA-256 al corpului fiecărui Cuaderno îndeplinește aceeași funcție în versiunea sa digitală. Dacă un singur cuvânt din articol s-ar schimba între momentul în care a fost publicat și momentul în care îl citești, sigiliul hexazecimal de la subsolul textului nu ar mai coincide cu SHA-256 al textului pe care îl ai în față. Orice cititor cu cinci linii de cod ar putea verifica acest lucru. Publicația nu își poate rescrie istoria fără ca sigiliul să o dea de gol. Nu protejează împotriva daunei; o face verificabilă. Ce nu este un hash Patru utilizări sunt cerute uneori de la SHA-256, deși nu îi corespund: 1. Criptarea. Un hash rezumă; nu ascunde. Dacă vrei ca textul să nu poată fi citit, trebuie să îl criptezi, nu să îl hashuiești. 2. Autentificarea autorului. Un hash nu spune cine a scris textul, ci doar ce text a fost hashuit. Pentru a asocia paternitatea, este nevoie de o semnătură criptografică peste hash, nu de hash simplu. 3. Stocarea parolelor. Aici există o capcană care merită înțeleasă. SHA-256 este conceput să fie foarte rapid — ceea ce este bine pentru multe lucruri, dar rău pentru acesta. Un atacator cu hardware specializat poate testa miliarde de parole pe secundă împotriva unui hash SHA-256 până când o găsește pe a ta. Pentru a salva parole, trebuie folosite funcții de derivare a cheii deliberat lente, precum Argon2, scrypt sau bcrypt, combinate cu un salt (o dată aleatorie unică per utilizator, care împiedică ca două persoane cu aceeași parolă să aibă același hash). 4. Citirea hash-ului ca identificator al autorului. Nu este așa. Un hash identifică conținutul. Dacă două persoane hashuiesc cuvântul salut cu SHA-256, ambele obțin același rezumat — și aceasta este proprietatea centrală, nu un defect: dacă ar fi rezumate diferite, nu am putea verifica coincidența între ceea ce a fost publicat și ceea ce a fost primit. Unde apare SHA-256 în viața de zi cu zi Deși nu îl vezi, SHA-256 susține o bună parte din ceea ce folosești zilnic pe internet. Blockchain-ul Bitcoin este construit prin înlănțuirea SHA-256 al fiecărui bloc cu următorul; alterarea unui bloc trecut obligă la recalcularea întregului lanț ulterior. Git, sistemul cu care se versionează codul a jumătate din lume, identifică fiecare commit prin SHA-256 (în versiunile recente) sau prin predecesorul său SHA-1 (în versiunile mai vechi) al conținutului său complet. Certificatele HTTPS care verifică identitatea unui site web atunci când intri au o amprentă SHA-256 asociată. Descărcările de software sunt adesea însoțite de un SHA-256 publicat de dezvoltator pentru a verifica dacă fișierul nu a fost alterat pe drum. Și, așa cum am spus, la subsolul fiecărui Cuadernos Lacre. Pentru cititorul profesionist Patru memento-uri operative pentru cine decide sau auditează sisteme: 1. Hash-ul nu este criptare. Dacă un furnizor confundă cei doi termeni în documentația sa tehnică, merită întrebat ce vrea să spună exact. 2. Pentru stocarea parolelor nu trebuie folosit niciodată SHA-256 simplu. SHA-256 este prea rapid pentru această sarcină (vezi punctul 3 din Ce nu este un hash). Standardul actual este Argon2id: lent prin design, configurabil în funcție de capacitatea serverului, combinat cu un salt aleatoriu diferit per utilizator. 3. Pentru integritatea documentelor — contracte, dosare, fișiere — SHA-256 rămâne standardul de referință. Este cel folosit de furnizorii de servicii de marcare temporală calificată din UE. 4. Pentru conservarea pe termen lung (zeci de ani), merită calculat și arhivat și un SHA-3 sau un SHA-512 alături de SHA-256; prudența criptografică recomandă să nu te bazezi pe o singură funcție în cazul arhivelor centenare. Imaginează-ți că ai montat cel mai elaborat circuit de domino din lume: mii de piese, zeci de ramificații, poduri mecanice și rampe care traversează întreaga cameră, așezate cu grijă piesă cu piesă. Dacă dai un impuls primei piese, lanțul cade într-o secvență precisă și repetabilă. Aceeași configurație, același impuls inițial → model final identic de piese căzute, de fiecare dată. Iată ce este interesant: mută o singură piesă jumătate de centimetru într-o parte înainte de a începe și atinge-o din nou. O rampă care trebuia să se activeze rămâne inertă, un pod nu cade, o ramificație diferită se declanșează. Modelul final de piese de pe podea este complet de nerecunoscut comparativ cu primul. SHA-256 este, din punct de vedere matematic, acest circuit. Textul pe care îl scrii este poziția inițială a pieselor. Algoritmul este impulsul care eliberează cascada. Iar rezultatul final — ceea ce numim hash — este fotografia fixă a podelei când totul s-a oprit. Schimbă o singură virgulă din textul original și fotografia va fi radical diferită. Atât de simplu și atât de drastic. --- Dacă te întorci la subsolul acestui articol, vei vedea un sigiliu hexazecimal de șaizeci și patru de caractere. Este SHA-256 al textului pe care tocmai l-ai citit, în această limbă. Dacă am traduce articolul, sigiliul ar fi altul; dacă s-ar schimba un cuvânt din versiunea spaniolă, sigiliul spaniol s-ar schimba. Sigiliul nu protejează conținutul — pentru asta există alte instrumente — ci îl identifică în mod unic. Și asta, oricât de modest ar suna, este suficient pentru ca nicio etapă a lanțului editorial să nu poată altera ceea ce s-a spus fără să se observe. Restul — criptarea, semnarea, identificarea — se construiește pe această idee simplă. Surse și lecturi suplimentare - NIST — FIPS PUB 180-4: Secure Hash Standard (SHS), august 2015. Specificația oficială a familiei SHA-2, inclusiv SHA-256. - RFC 6234 — US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF), IETF, mai 2011. Versiune normativă pentru implementatori. - Ferguson, N.; Schneier, B.; Kohno, T. — Cryptography Engineering: Design Principles and Practical Applications (Wiley, 2010). Capitolele 5 și 6 acoperă funcțiile hash și utilizările lor legitime și ilegitime. - Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Exemplu practic de utilizare a SHA-256 pentru înlănțuirea blocurilor într-o structură imuabilă prin construcție. - Regulamentul (UE) 910/2014 (eIDAS) — cadrul furnizorilor de servicii de marcare temporală calificată. SHA-256 este funcția de referință pentru semnăturile și sigiliile electronice calificate emise în UE. - Implementarea de referință în Zig: std.crypto.hash.sha2.Sha256 în depozitul oficial al limbajului (github.com/ziglang/zig → lib/std/crypto/sha2.zig). Este versiunea optimizată și auditată pe care o folosește de fapt Solo2. Utilă pentru a contrasta cu implementarea didactică din anexă. --- Cuadernos Lacre · O publicație a Menzuri Gestión S.L. · scrisă de R.Eugenio · editată de echipa Solo2. https://solo2.net/ro/caiete/