Bahasa Indonesia

Alat pengembang · SHA kalkulator hash

SHA-256 vs SHA-512: Ukuran Kata, Bentuk Bulat, dan Alasan 512 Bisa Lebih Cepat

· Cara kerjanya

sha-256 kriptografi pertunjukan browser-apis

Perbandingan berdampingan kata 32-bit dan 64-bit, putaran 64 versus 80, dan bit keluaran 256, 384 dan 512
Ilustrasi vektor ToolAcre asli

SHA-512 menghasilkan intisari yang lebih panjang namun sering kali berjalan lebih cepat pada perangkat keras 64-bit. Postingan ini menjelaskan perbedaan struktural antara keduanya dan bagaimana SHA-384 cocok, sehingga Anda dapat memilih berdasarkan fakta.

Hash lebih panjang, lari lebih cepat? — observasi kontra-intuitif yang memulai perbandingan

SHA-512 menghasilkan intisari yang lebih panjang namun sering kali berjalan lebih cepat daripada SHA-256 pada perangkat keras 64-bit. Pengamatan kontra-intuitif berasal dari desain CPU: prosesor yang dioptimalkan untuk aritmatika 64-bit mengeksekusi operasi 64-bit lebih cepat daripada operasi 32-bit pada data yang sama. SHA-256 beroperasi pada 32-bit kata, sedangkan SHA-512 beroperasi pada 64-bit kata. Pada 64-bit CPU, yang terakhir lebih cocok dengan perangkat keras dan menghabiskan lebih sedikit waktu pada konversi dan padding ukuran kata.

Hal ini tidak membuat SHA-512 secara inheren lebih baik untuk setiap kasus penggunaan. Intisari yang lebih panjang membutuhkan lebih banyak penyimpanan dan bandwidth. Pilihan di antara keduanya harus dibuat berdasarkan persyaratan ukuran keluaran dan platform Anda, bukan atas dasar "lebih baru" atau "lebih kuat".

32-bit versus 64-bit kata — perbedaan struktural inti dan mengapa ini cocok untuk CPU modern

SHA-256 beroperasi pada 32-bit kata di seluruh algoritme. Jadwal pesan memperluas 16 32-bit kata menjadi 64 32-bit kata. Setiap putaran memperbarui delapan variabel kerja 32-bit. Blok pesannya adalah 512 bits (enam belas 32-bit kata). Outputnya adalah 256 bits (delapan 32-bit kata). Semua aritmatika dilakukan pada nilai 32-bit, dengan pembungkusan overflow pada 2^32.

SHA-512 beroperasi pada 64-bit kata. Jadwal pesan memperluas 16 64-bit kata menjadi 80 64-bit kata (bukan 64, seperti pada SHA-256). Setiap putaran memperbarui delapan variabel kerja 64-bit. Blok pesannya adalah 1024 bits (enam belas 64-bit kata). Outputnya adalah 512 bits (delapan 64-bit kata). Semua aritmatika dilakukan pada nilai 64-bit, dengan pembungkusan overflow pada 2^64.

64 putaran versus 80, 512-bit versus 1024-bit blok — apa yang berubah per blok dan per byte

SHA-256 menjalankan 64 putaran per blok; SHA-512 menjalankan 80 putaran per blok. Ini berarti SHA-512 melakukan lebih banyak pencampuran per blok. Sekilas, ini terdengar lebih lambat. Namun ukuran kata dan ukuran blok yang lebih besar berarti SHA-512 memproses lebih banyak bit per putaran. Untuk file 1-megabyte, SHA-256 memproses 1048576 / 512 = 2048 blok, masing-masing dengan 64 putaran, dengan total 131072 putaran. SHA-512 memproses 1048576 / 1024 = 1024 blok, masing-masing dengan 80 putaran, dengan total 81920 putaran. SHA-512 melakukan lebih sedikit putaran secara total, meskipun melakukan lebih banyak putaran per blok.

Perbedaan waktu jam dinding bergantung pada pengoptimalan CPU untuk ukuran kata. CPU dengan 64-bit ALU (unit logika aritmatika) akan menjalankan operasi 64-bit secara efisien. Jika CPU yang sama harus memecah operasi 32-bit SHA-256 menjadi beberapa operasi mikro atau menjalankannya pada unit eksekusi yang lebih kecil, biaya per operasi akan lebih tinggi. Prosesor modern mengoptimalkan operasi 64-bit, membuat SHA-512 sering kali lebih cepat meskipun terdapat putaran tambahan per blok.

Ukuran blok dan jumlah putaran menjelaskan pekerjaan per byte; throughput aktual memerlukan tolok ukur platform

Aritmatika blok menjelaskan mengapa output yang lebih panjang tidak berarti lebih banyak pekerjaan per byte. SHA-256 melakukan enam puluh empat putaran untuk setiap blok 512-bit, sementara SHA-512 melakukan delapan puluh putaran untuk setiap blok 1,024-bit. Desain kedua melakukan lebih banyak putaran pada setiap blok tetapi mengkonsumsi input dua kali lebih banyak setiap kali memproses satu blok.

Perbandingan struktural tersebut tidak memprediksi tolok ukur browser tertentu. Web Crypto dapat menggunakan instruksi asli, perpustakaan sistem operasi atau kode lain yang dioptimalkan, dan panjang input mengubah bagian yang dihabiskan untuk pengaturan. Ukur lingkungan target sebenarnya ketika throughput penting; repositori hanya mendukung klaim kualitatif bahwa kata-kata yang lebih luas dapat disesuaikan dengan perangkat keras 64-bit.

Panjang keluaran memengaruhi properti representasi dan keamanan tanpa perkiraan kerja serangan yang tidak bersumber

SHA-384 bukan merupakan algoritma terpisah; itu adalah SHA-512 dengan dua perubahan: konstanta hash awal berbeda, dan output dipotong menjadi 384 bits (48 bytes) alih-alih 512 bits penuh. Pemotongan ini memiliki keuntungan terhadap serangan ekstensi panjang: penyerang tidak dapat memperluas intisari dengan menambahkan data ke pesan asli, karena status 512-bit lengkap tidak diketahui (hanya 384 bits yang diungkapkan).

SHA-256 rentan terhadap serangan ekstensi panjang: jika Anda mengetahui intisari pesan dan mengetahui panjang pesan, Anda dapat menambahkan data ke pesan dan menghitung intisari pesan yang diperluas tanpa mengetahui isi pesan asli. Hal ini penting dalam konteks keamanan tertentu, seperti implementasi HMAC yang menggunakan konstruksi lemah. SHA-384, meskipun didasarkan pada SHA-512, tidak rentan karena kondisi keseluruhannya tidak terekspos. Hal ini membuat SHA-384 berguna dalam konteks di mana SHA-256 dianggap berisiko.

Contoh praktis - melakukan hashing pada satu input dengan ketiganya dan membandingkan panjang intisari secara berdampingan

Ukuran keluaran adalah perbedaan yang paling jelas. SHA-256 menghasilkan 32 bytes (64 karakter hex); SHA-384 menghasilkan 48 bytes (96 karakter hex); SHA-512 menghasilkan 64 bytes (128 karakter hex). Untuk penyimpanan dalam URL atau JSON, intisari yang lebih panjang memerlukan lebih banyak ruang. Untuk ketahanan tumbukan, keluaran yang lebih panjang membuat tumbukan lebih sulit ditemukan secara eksponensial. Output yang lebih luas memberikan ruang hasil yang lebih besar, sementara konsekuensi produk langsungnya lebih mudah diukur: lebih banyak byte dalam penyimpanan, URL, dan bidang protokol. Artikel ini tidak melampirkan perkiraan kerja serangan karena tidak ada yang berasal dari bukti repositori.

Beberapa sistem dan standar menetapkan SHA-256 secara eksplisit; yang lain menggunakan SHA-512 atau memberikan pilihan. SSH sidik jari defaultnya adalah SHA-256; intisari gambar kontainer dapat berupa SHA-256 atau SHA-512. Manajer paket seperti npm menggunakan SHA-512 untuk integritas subsumber daya. Pilihan sering kali ditentukan oleh Anda, namun dengan memahami perbedaannya, Anda dapat memilih dengan bijak saat ingin menyampaikan pendapat.

Apa yang tidak tercakup di sini — angka throughput, yang bergantung pada CPU, compiler dan ukuran input; postingannya tetap kualitatif

Kalkulator hash ToolAcre SHA menawarkan SHA-256, SHA-384 dan SHA-512. Hash masukan yang sama dengan ketiganya dan amati panjang keluarannya. Semua intisari akan sangat berbeda satu sama lain, yang diharapkan: algoritme menggunakan konstanta putaran yang berbeda, jadwal pesan yang berbeda, dan operasi pencampuran yang berbeda. Jumlah byte yang ditampilkan di samping intisari hanya mencerminkan ukuran masukan, bukan ukuran keluaran; ketiga algoritme memproses byte masukan yang sama secara identik melalui urutan putarannya masing-masing.

Pengujian pada perangkat keras Anda sendiri mengungkapkan perbedaan kinerja. Hash file besar (test case multi-megabyte) dengan setiap algoritma dan waktu hasilnya. Pada sistem 64-bit modern, SHA-512 sering kali akan selesai dalam waktu yang lebih singkat, meskipun jumlah byte mungkin menunjukkan sebaliknya. Pada sistem 32-bit atau prosesor tertanam, SHA-256 mungkin lebih cepat karena ALU CPU dioptimalkan untuk operasi 32-bit.

Kesimpulan: pilih berdasarkan ukuran keluaran dan platform — kalkulator hash ToolAcre SHA menawarkan SHA-256, SHA-384 dan SHA-512 sehingga Anda dapat melihat ketiganya pada masukan yang sama

Kekuatan kriptografi terpisah dari kinerja. Repositori tidak menandai SHA-256 sebagai rusak dan memilihnya sebagai default tujuan umum. Bukti produk tersebut tidak membenarkan menyebut produk primitif apa pun aman secara universal; kesesuaiannya masih bergantung pada konstruksi dan model ancaman. Beralih dari SHA-256 ke SHA-512 bukanlah peningkatan keamanan; ini adalah trade-off penyimpanan dan kinerja. Jika sistem Anda menentukan SHA-256 dan Anda memerlukan algoritma yang tepat, gunakanlah. Jika Anda punya pilihan dan ingin penjelasan lebih panjang atau Anda tahu platform Anda 64-bit, SHA-512 adalah pilihan yang valid.

Implementasi Web Crypto browser menghitung ketiganya melalui crypto.subtle.digest. Perangkat Anda, versi browser, dan beban sistem latar belakang semuanya memengaruhi kinerja yang diamati. Namun poin kuncinya tetap: SHA-256 dan SHA-512 tidak bersaing untuk mendapatkan gelar "fungsi hash terbaik". Mereka adalah alat yang dirancang untuk kebutuhan keluaran yang berbeda, dan pilihan di antara keduanya dibuat berdasarkan kebutuhan sistem Anda, bukan berdasarkan klaim kinerja umum.