Alat pembangun · SHA kalkulator cincang
Daripada SHA-0 kepada SHA-3: Bagaimana NIST's Secure Hash Standard Evolved
· Latar belakang
sha-256 kriptografi pelayar-apis
SHA-1, SHA-2 dan SHA-3 ialah tiga generasi dengan asal usul yang berbeza. Siaran ini mengesan Piawaian Hash Selamat daripada SHA-0 yang ditarik balik kepada pertandingan Keccak dan menerangkan sebab SHA-2 masih mendominasi.
Apakah maksud nombor? — mengapa SHA-256 ialah SHA-2 tetapi SHA-3 ialah sesuatu yang lain sepenuhnya
Pembangun melihat SHA-1, SHA-256 dan SHA-3 dan menganggap ia adalah janjang linear. Mereka tidak. Angka-angka itu bermaksud perkara yang berbeza dalam konteks yang berbeza dan memahami sejarah keluarga menerangkan sebab SHA-256 ialah pilihan yang wajar untuk aplikasi baharu, sebab SHA-1 adalah warisan sahaja walaupun digunakan secara meluas dan sebab SHA-3 ialah reka bentuk yang berasingan dan bukannya evolusi.
Apabila NIST mula-mula menerbitkan fungsi cincang selamat, mereka memanggilnya SHA dan kemudiannya SHA-0, versi yang sangat singkat sehingga kebanyakan pembangun tidak pernah mendengarnya. SHA-0 telah ditarik balik dalam masa beberapa tahun kerana kecacatan yang tidak ditentukan yang tidak pernah didedahkan secara terbuka. Penarikan diri ini berlaku secara senyap-senyap, dan algoritma yang diikuti menimbulkan kekeliruan penamaan. Selepas SHA-0 ditarik balik, NIST menerbitkan SHA-1, yang menjadi standard selama dua puluh tahun.
Alat ini meliputi SHA-1 dan SHA-2; sejarah SHA-0 terperinci adalah di luar bukti repositori
SHA-1 ialah fungsi cincang 160-bit yang menghasilkan output heksadesimal aksara 40. Ia berdasarkan pembinaan Merkle–Damgård, di mana fungsi mampatan memproses blok input demi blok, merantai keadaan ke hadapan. Reka bentuknya bagus apabila diterbitkan, dan tidak ada serangan praktikal selama bertahun-tahun. Walau bagaimanapun, tahun 2005 membawa kejayaan kriptanalitik. Pasukan yang diketuai oleh Xiaoyun Wang menerbitkan serangan perlanggaran pada SHA-1, menunjukkan bahawa mencari dua mesej berbeza dengan cincangan yang sama boleh dilaksanakan menggunakan teknik yang jauh lebih cekap daripada pendekatan kekerasan.
Bertahun-tahun kemudian, dalam 2017, pasukan yang dipanggil SHAttered menunjukkan perlanggaran praktikal pertama, menggunakan sekumpulan GPU untuk mencari dua fail PDF berbeza dengan cincangan SHA-1 yang sama. Dalam 2020, kertas susulan menunjukkan bahawa perlanggaran awalan yang dipilih—varian yang lebih berbahaya—adalah berpatutan. SHA-1 tidak lagi lemah; ia telah rosak. Sambutan kepada pemecahan SHA-1 adalah untuk memperkenalkan SHA-2, keluarga empat fungsi: SHA-224, SHA-256, SHA-384 dan SHA-512.
SHA-2 - keluarga awal tahun 2000-an (224, 256, 384, 512 dan kemudiannya dipotong 512/224 dan 512/256) dibina di atas binaan yang sama
Keempat-empat ini beroperasi pada saiz keadaan yang berbeza dan saiz blok yang berbeza, tetapi mereka menggunakan pembinaan asas yang sama seperti SHA-1. Keluarga SHA-2 telah diterbitkan dalam 2001, beberapa tahun sebelum pecah besar pada SHA-1, tetapi ia tidak diterima pakai secara meluas sehingga SHA-1 runtuh menjadi konkrit. SHA-256 menghasilkan cincangan 256-bit dan kini menjadi pilihan standard untuk aplikasi baharu. SHA-512 menghasilkan cincangan 512-bit dan selalunya lebih pantas pada pemproses 64-bit kerana ia beroperasi pada perkataan 64-bit dan bukannya perkataan 32-bit.
Konvensyen penamaan untuk SHA-2 ialah punca kekeliruan. Fungsi ini dipanggil SHA-256, SHA-384 dan SHA-512, dan semuanya adalah sebahagian daripada keluarga SHA-2. Apabila seseorang menyebut SHA-2, ia bermaksud falsafah reka bentuk dan pembinaan Merkle–Damgård, bukan satu algoritma. Nombor dalam nama adalah lebar output dalam bit, bukan skema versi. SHA-256 bukan kemas kini kepada SHA-1; ia adalah reka bentuk kontemporari menggunakan rangka kerja yang sama tetapi dengan ciri keselamatan yang lebih baik.
Dokumen repositori menunjukkan SHA-1 perlanggaran tanpa membina semula sejarah teori tanpa sumber
Di dalam binaan Merkle–Damgård yang SHA-1 dan SHA-2 gunakan, fungsi mampatan memproses blok input demi blok. Keadaan dibawa ke hadapan dari satu blok ke seterusnya, dan keadaan akhir adalah output sebagai ringkasan. Fungsi mampatan SHA-256 menggunakan operasi 32-bit dan keadaan 256-bit, jadi ia memproses blok 512-bit. Fungsi mampatan SHA-512 menggunakan operasi 64-bit dan keadaan 512-bit, jadi ia memproses blok 1024-bit. Pilihan ini mempengaruhi prestasi dan lebar jalur—SHA-512 selalunya lebih pantas kerana 64-bit aritmetik adalah asli pada perkakasan moden.
Keputusan antara SHA-256 dan SHA-512 untuk sistem baharu biasanya berdasarkan ujian prestasi dan kekangan ruang berbanding keselamatan, kerana kedua-duanya masih selamat pada awal 2020-an. ToolAcre SHA kalkulator hash menyediakan SHA-256, SHA-384 dan SHA-512, dan apabila pembaca membandingkan cernaan sebelah menyebelah, mereka melihat perbezaan empat aksara antara SHA-256 (64 aksara hex) dan SHA-512 (128 aksara hex).
SHA-3 berada di luar API yang disokong; sejarah persaingan tidak ditegaskan daripada bukti repositori
Motivasi untuk menggantikan SHA-1 adalah jelas pada awal tahun 2000-an, jadi NIST memulakan proses pemilihan SHA-3. Daripada mereka bentuk pengganti secara berasingan, NIST membuka persaingan kepada komuniti penyelidikan kriptografi. Matlamatnya adalah untuk memilih fungsi cincang yang pada asasnya berbeza daripada pembinaan Merkle-Damgård, untuk mendapatkan keyakinan daripada kepelbagaian reka bentuk. Beberapa pasukan mengemukakan cadangan, dan selama beberapa tahun, pertandingan memilih Keccak sebagai pemenang. Keccak ialah binaan span, cara yang berbeza untuk membina fungsi cincang yang tidak pernah digunakan sebelum ini dalam standard.
SHA-3 ialah NIST penyeragaman Keccak, dimuktamadkan pada 2015. Tidak seperti SHA-2, yang merupakan keluarga algoritma, SHA-3 biasanya dirujuk sebagai algoritma tunggal, walaupun ia juga mempunyai berbilang lebar. SHA-3 belum digunakan secara meluas lagi, yang menarik memandangkan ia telah menjadi standard selama hampir sedekad. Sebabnya ialah SHA-2 tidak rosak. Tiada sebab keselamatan yang mendesak untuk menaik taraf daripadanya SHA-2 kepada SHA-3. Kripto Web pelayar API melaksanakan SHA-1 dan SHA-2 tetapi tidak SHA-3, itulah sebabnya ToolAcre SHA kalkulator hash tidak menawarkan SHA-3.
SHA-2 kekal sebagai alat lalai; artikel ini mengelakkan tuntutan keselamatan sejagat yang tidak disokong
Mengapa SHA-2 masih ada di mana-mana ialah persoalan utama pilihan algoritma cincang. SHA-2 tidak mempunyai perlanggaran praktikal yang diketahui. Pelaksanaan perkakasan adalah matang. Setiap bahasa pengaturcaraan dan platform menyokongnya. Menukar algoritma cincang sistem adalah mengganggu: setiap cincang yang disimpan perlu dipindahkan atau dikekalkan untuk pengesahan, setiap titik penyepaduan perlu dikemas kini dan ujian perlu dilakukan untuk memastikan algoritma baharu berfungsi dengan setiap sistem hiliran.
Untuk sistem yang SHA-2 masih selamat, gangguan ini tidak wajar. Untuk sistem baharu dan protokol baharu, SHA-2 ialah lalai yang wajar. Kalkulator cincang ToolAcre SHA menunjukkan SHA-256 dan SHA-512 dalam kedudukan yang menonjol kerana ia adalah perkara yang harus digunakan oleh aplikasi baharu. SHA-1 disenaraikan sebagai warisan sahaja. SHA-384 ditunjukkan untuk kesempurnaan dan untuk kes penggunaan yang diperlukan secara khusus.
Perkara ini tidak meliputi — orang dalaman Keccak, yang berhak mendapat jawatan mereka sendiri
Masa depan piawaian cincang tidak jelas pada masa ini. SHA-3 selamat dan matang, dan ia menyediakan alternatif jika SHA-2 pernah rosak. Pengkomputeran kuantum menimbulkan ancaman jangka panjang kepada semua fungsi cincang semasa, tetapi reka bentuk fungsi cincang tahan kuantum ialah kawasan penyelidikan terbuka. NIST sedang menjalankan pertandingan Kriptografi Pasca Kuantum, memilih algoritma yang bertujuan untuk menentang serangan kuantum, tetapi fungsi cincang bukanlah keutamaan dalam persaingan itu berbanding sistem kunci awam.
Untuk aplikasi praktikal pada tahun 2020-an, SHA-256 ialah jawapan kepada soalan "cincangan yang manakah harus saya gunakan?" Untuk pengesahan integriti, pengalamatan kandungan dan cap jari, SHA-256 ialah standard. Untuk sistem yang memerlukan pencernaan yang lebih luas, SHA-512 biasanya lebih pantas pada perkakasan 64-bit. SHA-384 adalah yang paling biasa dalam TLS spesifikasi suite sifir. SHA-1 sahaja untuk pengesahan warisan. Kalkulator cincang ToolAcre SHA menyediakan keempat-empat algoritma Web Crypto supaya pembangun dapat melihat output mereka.
Bawa pulang: tiga generasi, satu nama keluarga — ToolAcre SHA kalkulator cincang meliputi algoritma SHA-1 dan SHA-2 yang disediakan oleh pelayar
Memahami sejarah SHA menjelaskan mengapa nombor dan nama itu bermakna apa yang mereka lakukan dan sebab pilihan yang dibuat pada tahun 1990-an dan 2000-an masih menentukan perkara yang dilakukan oleh aplikasi baharu hari ini. SHA-0 telah ditarik balik secara senyap, SHA-1 telah dipatahkan oleh serangan praktikal, SHA-2 masih selamat dan SHA-3 ialah reka bentuk alternatif yang dipilih untuk keteguhan masa hadapan. Kod baharu harus menggunakan SHA-256 untuk pencincangan tujuan umum. Sistem warisan masih menggunakan SHA-1 dan kesalingoperasian dengan sistem tersebut memerlukan keupayaan untuk mengira cincangan SHA-1.
Kalkulator cincang ToolAcre SHA merangkumi perspektif ini: ia menawarkan SHA-256 sebagai lalai, SHA-512 sebagai pilihan yang lebih luas, SHA-384 untuk keperluan khusus dan SHA-1dilabelkan sebagai lega_5. Ini memberikan pembangun alat yang tepat dan pelabelan yang tepat. Pelaksanaan Web Crypto pelayar menyediakan algoritma ini dan ToolAcre menggunakan pelaksanaan tersebut secara langsung dan bukannya menghantar kod tersuai. Pilihan itu mencerminkan dekad evolusi kriptografi dan keadaan amalan semasa.