Alat pengembang · SHA kalkulator hash
Dari SHA-0 hingga SHA-3: Bagaimana Standar Hash Aman NIST Berkembang
· Latar belakang
sha-256 kriptografi browser-apis
SHA-1, SHA-2 dan SHA-3 merupakan tiga generasi dengan asal usul yang berbeda. Postingan ini menelusuri Standar Hash Aman dari penarikan SHA-0 hingga kompetisi Keccak dan menjelaskan mengapa SHA-2 masih mendominasi.
Apa arti angka-angka itu? — mengapa SHA-256 adalah SHA-2 tetapi SHA-3 adalah sesuatu yang sama sekali berbeda
Pengembang melihat SHA-1, SHA-256, dan SHA-3 dan menganggapnya sebagai perkembangan linier. Sebenarnya tidak. Angka-angka tersebut memiliki arti yang berbeda dalam konteks yang berbeda, dan memahami riwayat keluarga menjelaskan mengapa SHA-256 adalah pilihan yang masuk akal untuk aplikasi baru, mengapa SHA-1 hanya warisan meskipun telah diterapkan secara luas, dan mengapa SHA-3 merupakan desain terpisah dan bukan evolusi.
Saat NIST pertama kali memublikasikan fungsi hash aman, mereka menyebutnya SHA dan kemudian SHA-0, versi yang berumur sangat pendek sehingga sebagian besar pengembang belum pernah mendengarnya. SHA-0 ditarik dalam beberapa tahun karena cacat yang tidak disebutkan secara spesifik dan tidak pernah diungkapkan kepada publik. Penarikan ini terjadi secara diam-diam, dan algoritme yang mengikutinya menimbulkan kebingungan penamaan. Setelah SHA-0 ditarik, NIST menerbitkan SHA-1, yang menjadi standar selama dua puluh tahun.
Alat ini mencakup SHA-1 dan SHA-2; riwayat SHA-0 yang terperinci berada di luar bukti penyimpanan
SHA-1 adalah fungsi hash 160-bit yang menghasilkan keluaran heksadesimal 40 karakter. Hal ini didasarkan pada konstruksi Merkle – Damgård, di mana fungsi kompresi memproses masukan blok demi blok, merangkai keadaan ke depan. Desainnya bagus saat diterbitkan, dan tidak ada serangan praktis selama bertahun-tahun. Namun, tahun 2005 membawa terobosan kriptanalitik. Sebuah tim yang dipimpin oleh Xiaoyun Wang menerbitkan serangan tabrakan pada SHA-1, menunjukkan bahwa menemukan dua pesan berbeda dengan hash yang sama dapat dilakukan dengan menggunakan teknik yang jauh lebih efisien daripada pendekatan brute force.
Bertahun-tahun kemudian, di 2017, sebuah tim bernama SHAttered mendemonstrasikan tabrakan praktis pertama, menggunakan sekelompok GPU untuk menemukan dua file PDF berbeda dengan hash SHA-1 yang sama. Dalam 2020, makalah lanjutan menunjukkan bahwa tabrakan dengan awalan yang dipilih—varian yang lebih berbahaya—dapat diterima. SHA-1 tidak lagi sekadar lemah; itu rusak. Tanggapan terhadap jeda SHA-1 adalah dengan memperkenalkan SHA-2, kumpulan empat fungsi: SHA-224, SHA-256, SHA-384, dan SHA-512.
SHA-2 — keluarga awal tahun 2000-an (224, 256, 384, 512 dan kemudian 512/224 dan 512/256) yang terpotong dibangun di atas konstruksi yang sama
Keempatnya beroperasi pada ukuran negara bagian dan ukuran blok berbeda, namun menggunakan konstruksi dasar yang sama seperti SHA-1. Keluarga SHA-2 diterbitkan di 2001, beberapa tahun sebelum terobosan besar di SHA-1, namun tidak diadopsi secara luas sampai keruntuhan SHA-1 menjadi nyata. SHA-256 menghasilkan hash 256-bit dan sekarang menjadi pilihan standar untuk aplikasi baru. SHA-512 menghasilkan hash 512-bit dan sering kali lebih cepat pada prosesor 64-bit karena beroperasi pada kata-kata 64-bit, bukan pada kata-kata 32-bit.
Konvensi penamaan untuk SHA-2 adalah sumber kebingungan. Fungsi tersebut disebut SHA-256, SHA-384 dan SHA-512, dan semuanya merupakan bagian dari keluarga SHA-2. Ketika seseorang mengatakan SHA-2, yang mereka maksud adalah filosofi desain dan konstruksi Merkle–Damgård, bukan algoritma tunggal. Angka-angka dalam nama adalah lebar keluaran dalam bit, bukan skema versi. SHA-256 bukan merupakan pembaruan untuk SHA-1; ini adalah desain kontemporer yang menggunakan kerangka yang sama tetapi dengan properti keamanan yang lebih baik.
Dokumen repositori menunjukkan SHA-1 tabrakan tanpa merekonstruksi sejarah teoretis tanpa sumber
Di dalam konstruksi Merkle–Damgård yang digunakan SHA-1 dan SHA-2, fungsi kompresi memproses input blok demi blok. Status diteruskan dari satu blok ke blok berikutnya, dan status akhir dikeluarkan sebagai intisari. Fungsi kompresi SHA-256 menggunakan operasi 32-bit dan status 256-bit, sehingga memproses blok 512-bit. Fungsi kompresi SHA-512 menggunakan operasi 64-bit dan status 512-bit, sehingga memproses blok 1024-bit. Pilihan ini memengaruhi performa dan bandwidth—SHA-512 sering kali lebih cepat karena aritmatika 64-bit bersifat bawaan pada perangkat keras modern.
Keputusan antara SHA-256 dan SHA-512 untuk sistem baru biasanya didasarkan pada pengujian kinerja dan batasan ruang, bukan keamanan, karena keduanya masih aman pada awal tahun 2020-an. Kalkulator hash ToolAcre SHA menyediakan SHA-256, SHA-384 dan SHA-512, dan ketika pembaca membandingkan intisari secara berdampingan, mereka melihat perbedaan empat karakter antara SHA-256 (64 karakter hex) dan SHA-512 (128 karakter hex).
SHA-3 berada di luar API yang didukung; riwayat kompetisi tidak ditegaskan dari bukti penyimpanan
Motivasi untuk mengganti SHA-1 sudah jelas pada awal tahun 2000an, jadi NIST memulai proses seleksi SHA-3. Daripada merancang penggantinya secara terpisah, NIST membuka kompetisi untuk komunitas riset kriptografi. Tujuannya adalah untuk memilih fungsi hash yang secara fundamental berbeda dari konstruksi Merkle – Damgård, untuk mendapatkan kepercayaan dari keragaman desain. Beberapa tim mengajukan proposal, dan selama beberapa tahun, kompetisi tersebut memilih Keccak sebagai pemenang. Keccak adalah konstruksi spons, cara berbeda untuk membangun fungsi hash yang belum pernah digunakan sebelumnya dalam standar.
SHA-3 adalah NIST standardisasi Keccak, diselesaikan pada 2015. Berbeda dengan SHA-2, yang merupakan kumpulan algoritme, SHA-3 biasanya disebut sebagai algoritme tunggal, meskipun algoritme tersebut juga memiliki banyak lebar. SHA-3 belum diterapkan secara luas, hal ini cukup mengejutkan mengingat ini telah menjadi standar selama hampir satu dekade. Alasannya adalah SHA-2 tidak rusak. Tidak ada alasan keamanan yang mendesak untuk meningkatkan versi dari SHA-2 ke SHA-3. Kripto Web browser API mengimplementasikan SHA-1 dan SHA-2 tetapi tidak SHA-3, itulah sebabnya kalkulator hash ToolAcre SHA tidak menawarkan SHA-3.
SHA-2 tetap menjadi alat default; artikel ini menghindari klaim keamanan universal yang tidak didukung
Mengapa SHA-2 masih ada dimana-mana adalah pertanyaan utama dalam pilihan algoritma hash. SHA-2 tidak diketahui adanya benturan praktis. Implementasi perangkat keras sudah matang. Setiap bahasa pemrograman dan platform mendukungnya. Mengubah algoritme hash suatu sistem merupakan hal yang mengganggu: setiap hash yang disimpan harus dimigrasikan atau dipertahankan untuk verifikasi, setiap titik integrasi harus diperbarui, dan pengujian harus dilakukan untuk memastikan algoritme baru berfungsi dengan setiap sistem hilir.
Untuk sistem yang SHA-2 masih aman, gangguan ini tidak dapat dibenarkan. Untuk sistem baru dan protokol baru, SHA-2 adalah default yang masuk akal. Kalkulator hash ToolAcre SHA menunjukkan SHA-256 dan SHA-512 di posisi yang menonjol karena itulah yang harus digunakan oleh aplikasi baru. SHA-1 terdaftar sebagai warisan saja. SHA-384 ditampilkan untuk kelengkapan dan untuk kasus penggunaan yang secara khusus diperlukan.
Apa yang tidak tercakup dalam hal ini — bagian dalam Keccak, yang layak mendapat jabatan tersendiri
Masa depan standar hash masih belum jelas saat ini. SHA-3 aman dan matang, serta memberikan alternatif jika SHA-2 rusak. Komputasi kuantum menimbulkan ancaman jangka panjang terhadap semua fungsi hash saat ini, namun desain fungsi hash yang tahan kuantum adalah area penelitian terbuka. NIST sedang mengadakan kompetisi Kriptografi Pasca-Kuantum, memilih algoritme yang dimaksudkan untuk menahan serangan kuantum, namun fungsi hash tidak menjadi prioritas dalam kompetisi tersebut dibandingkan dengan sistem kunci publik.
Untuk aplikasi praktis di tahun 2020-an, SHA-256 adalah jawaban dari pertanyaan "hash mana yang harus saya gunakan?" Untuk verifikasi integritas, pengalamatan konten, dan sidik jari, SHA-256 adalah standarnya. Untuk sistem yang memerlukan intisari yang lebih luas, SHA-512 biasanya lebih cepat pada perangkat keras 64-bit. SHA-384 paling umum dalam spesifikasi cipher suite TLS. SHA-1 hanya untuk verifikasi lama. Kalkulator hash ToolAcre SHA menyediakan keempat algoritme Kripto Web sehingga pengembang dapat melihat keluarannya.
Kesimpulan: tiga generasi, satu nama keluarga — kalkulator hash ToolAcre SHA mencakup algoritma SHA-1 dan SHA-2 yang disediakan browser
Memahami sejarah SHA memperjelas mengapa angka dan nama mempunyai arti dan mengapa pilihan yang dibuat pada tahun 1990an dan 2000an masih menentukan apa yang dilakukan aplikasi baru saat ini. SHA-0 ditarik secara diam-diam, SHA-1 dipatahkan oleh serangan praktis, SHA-2 masih aman, dan SHA-3 adalah desain alternatif yang dipilih untuk ketahanan di masa depan. Kode baru harus menggunakan SHA-256 untuk hashing tujuan umum. Sistem lama masih menggunakan SHA-1, dan interoperabilitas dengan sistem tersebut memerlukan kemampuan untuk menghitung hash SHA-1.
Kalkulator hash ToolAcre SHA mewujudkan perspektif ini: ia menawarkan SHA-256 sebagai default, SHA-512 sebagai opsi yang lebih luas, SHA-384 untuk persyaratan tertentu, dan SHA-1 diberi label sebagai warisan. Hal ini memberi pengembang alat yang akurat dan pelabelan yang akurat. Implementasi Web Crypto browser menyediakan algoritma ini, dan ToolAcre menggunakan implementasi tersebut secara langsung daripada mengirimkan kode khusus. Pilihan tersebut mencerminkan evolusi kriptografi selama beberapa dekade dan praktik saat ini.