Apa itu SHA-256 sebenarnya Cuadernos Lacre · Konsep · 19 Mei 2026 https://solo2.net/ms/buku-nota/articulos/apa-itu-sha-256-yang-sebenarnya.html Cap jari matematik yang memuatkan enam puluh empat aksara dan berubah sepenuhnya jika satu koma dalam teks asal dialihkan. Mengapa kita memanggilnya meterai lakri digital. --- Idea ringkas di sebalik nama teknikal Bayangkan sebuah mesin dengan satu slot dan satu skrin. Anda memasukkan teks melalui slot tersebut: sepatah perkataan, sebaris ayat, atau sebuah novel lengkap. Di skrin muncul, sejurus selepas itu, urutan tepat enam puluh empat aksara. Urutan tersebut, bagi pembaca profesional kami memanggilnya hash atau ringkasan kriptografi; bagi pembaca umum, buat masa ini kita boleh memanggilnya cap jari matematik teks tersebut, sebagaimana cap jari bagi manusia. Jika anda memasukkan teks yang sama dua kali, mesin menunjukkan cap jari yang sama kedua-dua kali. Jika anda memasukkan teks yang sedikit berbeza —satu koma dialihkan, huruf besar menjadi huruf kecil— mesin menunjukkan cap jari yang sama sekali berbeza daripada yang pertama. Bukan hampir sama: tetapi berbeza terus. Kedua-dua sifat ini bersama —determinisme dan sensitiviti— adalah idea ringkasnya. Segala-galanya tentang SHA-256 adalah mekanisme yang memastikan ia dipatuhi dengan baik. Adalah wajar untuk menyatakan sejak awal apa yang mesin tersebut tidak lakukan. Ia tidak menyulitkan teks. Ia tidak menyembunyikannya. Ia tidak menyimpannya. Mesin tersebut melihat teks, mengira cap jari, dan melupakan teks tersebut. Cap jari tersebut tidak membenarkan pembinaan semula teks yang menghasilkannya; ia hanya membenarkan, berdasarkan teks calon, untuk menyemak sama ada ia sepadan dengan yang asal atau tidak. Itulah sebabnya kita katakan ia adalah ringkasan satu hala: ia pergi, dan tidak kembali. Hash tidak sama dengan menyulit (encrypt) Kekeliruan sering berlaku dan wajar diperjelaskan: menyulit (encrypt) dan melakukan hash adalah operasi yang berbeza. Menyulit melibatkan penukaran teks supaya hanya pemegang kunci yang boleh mengembalikannya kepada bentuk asal. Melakukan hash melibatkan penghasilan cap jari teks yang mana teks asal tidak dapat dipulihkan lagi, sama ada dengan kunci atau tanpa kunci. Yang pertama adalah boleh balik (reversible) mengikut reka bentuk; yang kedua, tidak boleh balik (irreversible) mengikut reka bentuk. Kesan praktikalnya adalah penting. Apabila sebuah aplikasi berkata «kami menyimpan kata laluan anda yang disulitkan», ada seseorang yang mempunyai kunci untuk menyahsulitnya — dalam apa jua keadaan, aplikasi itu sendiri. Apabila sebuah aplikasi berkata «kami menyimpan kata laluan anda yang di-hash», aplikasi itu sendiri tidak dapat membaca kata laluan asal walaupun ia mahu; ia hanya boleh menyemak sama ada apa yang anda tulis menghasilkan cap jari yang sama semula. Model kedua, jika dilakukan dengan betul, adalah jauh lebih baik daripada yang pertama untuk menyimpan kata laluan. Kita akan melihat kemudian mengapa «dilakukan dengan betul» memerlukan sesuatu yang lebih daripada sekadar SHA-256 sahaja. Empat sifat yang menjadikan hash kriptografi berguna Fungsi hash yang layak dipanggil kriptografi memenuhi empat sifat: 1. Determinisme. Input yang sama sentiasa menghasilkan cap jari yang sama. 2. Kesan runtuhan (Avalanche effect). Perubahan kecil pada input menghasilkan cap jari yang sama sekali berbeza, tanpa sebarang persamaan yang kelihatan dengan yang sebelumnya. 3. Rintangan terhadap penyongsangan. Berdasarkan cap jari, adalah tidak berdaya maju secara komputasi untuk mencari teks yang menghasilkannya. 4. Rintangan terhadap perlanggaran. Adalah tidak berdaya maju secara komputasi untuk mencari dua teks berbeza yang menghasilkan cap jari yang sama. «Tidak berdaya maju secara komputasi» tidak bermakna «mustahil secara matematik». Ia bermakna kos dari segi masa, tenaga dan wang untuk mencapainya melebihi magnitud jumlah keseluruhan kapasiti pengkomputeran yang tersedia secara munasabah. Bagi SHA-256, had tersebut diukur dalam ribuan trilion tahun walaupun untuk pendekatan paling optimis dengan perkakasan khas. Yang mana, untuk tujuan praktikal pembaca, adalah sama dengan «tidak boleh dilakukan». SHA-256 secara khusus Namanya sudah menjelaskan segalanya. SHA bermaksud Secure Hash Algorithm: algoritma hash selamat. Nombor 256 menunjukkan saiz cap jari dalam bit: dua ratus lima puluh enam bit, iaitu tiga puluh dua bait, yang dipaparkan dalam bentuk heksadesimal adalah enam puluh empat aksara yang pembaca sudah kenali. Standard ini diterbitkan oleh NIST Amerika Syarikat, badan yang menstandardkan fungsi jenis ini, pada tahun 2001 sebagai sebahagian daripada keluarga SHA-2; versi standard yang sedang berkuat kuasa, FIPS 180-4, adalah dari tahun 2015. Dimensinya layak diberi perhatian sejenak. Dua ratus lima puluh enam bit membenarkan dua kuasa dua ratus lima puluh enam nilai berbeza: sebuah nombor dengan tujuh puluh lapan digit perpuluhan, beberapa magnitud lebih besar daripada anggaran jumlah atom dalam alam semesta yang boleh diperhatikan. Setiap teks di dunia —setiap buku, setiap e-mel, setiap mesej— jatuh pada salah satu daripada nilai tersebut. Kebarangkalian untuk dua teks berbeza bertindih secara kebetulan adalah, untuk tujuan praktikal, tidak dapat dibezakan daripada sifar. Bagaimana ia kelihatan dalam kod Mengapa kami memanggilnya meterai lakri Dalam surat-menyurat Eropah dari abad ke-15 hingga ke-19, lakri menutup surat tersebut. Setitis lilin cair, sebentuk meterai ditekan di atasnya, dan surat itu ditandakan dengan cara yang tidak boleh diulang. Ia tidak melindungi kandungan daripada pengintip yang gigih —kertas tersebut boleh dibaca dengan menembusi cahaya, lakri tersebut boleh dipecahkan— tetapi ia memberi bukti. Sebarang gangguan pada penutup adalah jelas kepada penerima sebelum kertas itu dibuka. Lakri tidak menghalang kerosakan; ia mengisytiharkannya. SHA-256 pada badan setiap Cuaderno memenuhi fungsi yang sama dalam versi digitalnya. Jika sepatah perkataan pun dalam artikel ini berubah antara masa ia diterbitkan dan masa anda membacanya, meterai heksadesimal di kaki teks tidak lagi akan sepadan dengan SHA-256 teks yang ada di hadapan anda. Mana-mana pembaca dengan lima baris kod boleh menyemaknya. Penerbitan tidak boleh menulis semula sejarahnya tanpa meterai tersebut mendedahkannya. Ia tidak melindungi daripada kerosakan; ia menjadikannya boleh disahkan. Apa yang bukan fungsi hash Empat kegunaan kadangkala diminta daripada SHA-256 yang sebenarnya tidak sesuai untuknya: 1. Menyulit (Encrypt). Hash meringkaskan; ia tidak menyembunyikan. Jika anda mahu teks tersebut tidak boleh dibaca, anda perlu menyulitkannya, bukan melakukan hash. 2. Mengesahkan pengarang. Hash tidak memberitahu siapa yang menulis teks tersebut, hanya teks apa yang di-hash. Untuk mengaitkan kepengarangan, tandatangan kriptografi diperlukan di atas hash tersebut, bukan sekadar hash sahaja. 3. Menyimpan kata laluan. Di sini terdapat perangkap yang perlu difahami. SHA-256 direka untuk menjadi sangat pantas —yang mana ia bagus untuk banyak perkara, tetapi buruk untuk tujuan ini. Penyerang dengan perkakasan khas boleh mencuba berbilion kata laluan sesaat terhadap hash SHA-256 sehingga menemui milik anda. Untuk menyimpan kata laluan, fungsi terbitan kunci yang sengaja dilambatkan seperti Argon2, scrypt atau bcrypt mesti digunakan, digabungkan dengan sal (data rawak unik bagi setiap pengguna, yang menghalang dua orang dengan kata laluan yang sama daripada mempunyai hash yang sama). 4. Membaca hash sebagai pengecam pengarang. Ia bukan begitu. Hash mengenal pasti kandungan. Jika dua orang melakukan hash pada perkataan hola dengan SHA-256, kedua-duanya mendapat ringkasan yang sama — dan itu adalah sifat utamanya, bukannya kecacatan: jika ia adalah ringkasan yang berbeza, kita tidak akan dapat mengesahkan persamaan antara apa yang diterbitkan dan apa yang diterima. Di mana SHA-256 muncul dalam kehidupan seharian anda Walaupun anda tidak melihatnya, SHA-256 menyokong sebahagian besar daripada apa yang anda gunakan setiap hari di internet. Rantai blok Bitcoin dibina dengan merantai SHA-256 setiap blok kepada blok seterusnya; mengubah blok yang lalu memaksa pengiraan semula keseluruhan rantai seterusnya. Git, sistem yang digunakan untuk versi kod sebahagian besar dunia, mengenal pasti setiap pengesahan (commit) melalui SHA-256 (dalam versi terkini) atau melalui pendahulunya SHA-1 (dalam versi lama) daripada keseluruhan kandungannya. Sijil HTTPS yang mengesahkan identiti sesebuah laman web apabila anda melayarinya membawa cap jari SHA-256 yang dikaitkan. Muat turun perisian sering kali disertakan dengan SHA-256 yang diterbitkan oleh pembangun supaya anda boleh mengesahkan bahawa fail tersebut tidak diubah semasa dalam perjalanan. Dan, seperti yang telah kami katakan, di kaki setiap Cuaderno Lacre. Untuk pembaca profesional Empat peringatan operasi bagi sesiapa yang membuat keputusan atau mengaudit sistem: 1. Hash bukan penyulitan. Jika pembekal mengelirukan kedua-dua istilah tersebut dalam dokumentasi teknikal mereka, adalah wajar untuk bertanya apa sebenarnya yang mereka maksudkan. 2. Untuk menyimpan kata laluan, jangan sesekali menggunakan SHA-256 sahaja. SHA-256 terlalu pantas untuk tugas ini (lihat perkara 3 dalam Apa yang bukan fungsi hash). Standard semasa ialah Argon2id: lambat mengikut reka bentuk, boleh dikonfigurasi mengikut kapasiti pelayan, digabungkan dengan sal (salt) rawak yang berbeza bagi setiap pengguna. 3. Untuk integriti dokumen —kontrak, fail, arkib— SHA-256 kekal sebagai standard rujukan. Ia digunakan oleh pembekal meterai masa berkelayakan di EU. 4. Untuk pemeliharaan jangka panjang (berdekad), adalah wajar untuk mengira dan mengarkibkan juga SHA-3 atau SHA-512 bersama-sama SHA-256; kebijaksanaan kriptografi mengesyorkan supaya tidak bergantung pada satu fungsi sahaja untuk arkib yang bertahan berabad-abad. Bayangkan anda telah membina litar domino yang paling rumit di dunia: beribu-ribu kepingan, berpuluh-puluh simpangan, jambatan mekanikal dan tanjakan yang merentasi seluruh bilik, disusun dengan teliti satu demi satu. Jika anda menyentuh kepingan pertama, rantaian itu akan jatuh dalam urutan yang tepat dan boleh diulang. Susunan yang sama, sentuhan permulaan yang sama → corak akhir kepingan yang jatuh adalah identik, berkali-kali. Di sinilah letaknya keunikan: gerakkan hanya satu kepingan setengah sentimeter ke tepi sebelum bermula dan sentuh semula. Tanjakan yang sepatutnya diaktifkan kekal tidak bergerak, jambatan tidak jatuh, simpangan berbeza tercetus. Corak akhir kepingan di lantai adalah benar-benar tidak dapat dikenali berbanding yang pertama. Secara matematik, SHA-256 adalah litar ini. Teks yang anda tulis adalah kedudukan awal kepingan domino. Algoritma adalah sentuhan yang melepaskan lata tersebut. Dan hasil akhir — apa yang kita panggil hash — adalah foto pegun lantai apabila semuanya telah berhenti. Ubah satu koma daripada teks asal dan foto tersebut akan menjadi radikal berbeza. Begitu mudah, dan begitu drastik. --- Jika anda kembali ke kaki artikel ini, anda akan melihat meterai heksadesimal enam puluh empat aksara. Ia adalah SHA-256 bagi teks yang baru anda baca, dalam bahasa ini. Jika kami menterjemah artikel ini, meterainya akan berbeza; jika sepatah perkataan dalam versi Sepanyol berubah, meterai Sepanyol akan berubah. Meterai tersebut tidak melindungi kandungan —terdapat alat lain untuk itu— sebaliknya ia mengenal pasti kandungan secara unik. Dan itu, walaupun kedengaran sederhana, sudah memadai supaya tiada langkah dalam rantaian editorial boleh mengubah apa yang dikatakan tanpa disedari. Selebihnya —menyulit, menandatangani, mengenal pasti— dibina di atas idea ringkas ini. Sumber dan bacaan lanjut - NIST — FIPS PUB 180-4: Secure Hash Standard (SHS), Ogos 2015. Spesifikasi rasmi keluarga SHA-2, termasuk SHA-256. - RFC 6234 — US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF), IETF, Mei 2011. Versi normatif untuk pembangun. - Ferguson, N.; Schneier, B.; Kohno, T. — Cryptography Engineering: Design Principles and Practical Applications (Wiley, 2010). Bab 5 dan 6 merangkumi fungsi hash serta kegunaannya yang sah dan tidak sah. - Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Contoh praktikal penggunaan SHA-256 untuk merantai blok dalam struktur yang tidak boleh diubah mengikut binaannya. - Peraturan (UE) 910/2014 (eIDAS) — rangka kerja bagi pembekal meterai masa berkelayakan. SHA-256 adalah fungsi rujukan bagi tandatangan dan meterai elektronik berkelayakan yang dikeluarkan di EU. - Implementasi rujukan dalam Zig: std.crypto.hash.sha2.Sha256 dalam repositori rasmi bahasa tersebut (github.com/ziglang/zig → lib/std/crypto/sha2.zig). Ia adalah versi yang dioptimumkan dan diaudit yang sebenarnya digunakan oleh Solo2. Berguna untuk membandingkan dengan implementasi didaktik dalam lampiran. --- Cuadernos Lacre · Penerbitan daripada Menzuri Gestión S.L. · ditulis oleh R.Eugenio · disunting oleh pasukan Solo2. https://solo2.net/ms/buku-nota/