Generator Hash cSHAKE128
Hitung cSHAKE128 dengan nama fungsi N, string kustomisasi S, dan panjang output berapa pun. Diverifikasi dengan contoh NIST SP 800-185, berjalan di browser.
Kelipatan 8, dari 8 hingga 16384 bit.
Biasanya dibiarkan kosong. Dicadangkan oleh NIST untuk fungsi yang dibangun di atas cSHAKE.
Label pemisah domain opsional, misalnya nama aplikasi Anda. String yang berbeda menghasilkan output yang tidak berkaitan.
Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.
Apa itu Generator Hash cSHAKE128?
cSHAKE128 adalah versi SHAKE128 yang dapat dikustomisasi, didefinisikan dalam NIST SP 800-185. Fungsi ini menambahkan nama fungsi N dan string kustomisasi S sehingga pesan yang sama, bila di-hash untuk tujuan berbeda, menghasilkan output yang tidak berkaitan. Alat ini memungkinkan Anda mengatur N, S, dan panjang output.
Cara menggunakan Generator Hash cSHAKE128
- Ketik atau tempel input Anda ke Teks yang akan di-hash — digest diperbarui saat Anda mengetik (kotak kosong menampilkan hash dari input kosong).
- Pilih Encoding input: Teks (UTF-8) meng-hash karakter sebagai UTF-8, sedangkan Byte heksadesimal atau Base64 meng-hash byte mentah hasil dekode.
- Atur Panjang output (bit) (bawaan 256).
- Jika perlu, isi Nama fungsi (N) (biasanya kosong) dan String kustomisasi (S), misalnya nama aplikasi atau protokol Anda.
- Pilih Format output (heksadesimal huruf kecil, huruf besar, atau Base64) lalu klik Salin.
Contoh
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 256 bits
c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5
Contoh cSHAKE NIST SP 800-185 #1.
Kapan menggunakan Generator Hash cSHAKE128
Gunakan cSHAKE128 ketika Anda membutuhkan pemisahan domain: beberapa hash yang diturunkan dari data yang sama untuk tujuan berbeda (label derivasi kunci, transkrip protokol, tagged hash). Gunakan SHAKE128 biasa jika tidak perlu kustomisasi, dan KMAC128 jika melibatkan kunci rahasia. N dicadangkan untuk fungsi yang didefinisikan NIST; aplikasi biasanya cukup memakai S.
Cara kerja Generator Hash cSHAKE128
cSHAKE128 (NIST SP 800-185) adalah SHAKE128 dengan pemisahan domain. Sebelum pesan, fungsi ini menyerap bytepad(encode_string(N) || encode_string(S), 168) — nama fungsi N dan string kustomisasi S, masing-masing diawali panjang bitnya — lalu memberi padding dengan sufiks 00 alih-alih 1111 milik SHAKE. Jika N dan S sama-sama kosong, cSHAKE128 didefinisikan sama dengan SHAKE128. Nilai N atau S yang berbeda menghasilkan fungsi yang independen. N dan S dimasukkan sebagai teks dan di-encode sebagai UTF-8.
Kasus Penggunaan Umum
- Mereproduksi test vector cSHAKE dari NIST SP 800-185
- Menurunkan nilai terpisah untuk konteks yang berbeda dari satu input
- Mengimplementasikan atau men-debug KMAC, TupleHash, atau ParallelHash yang dibangun di atas cSHAKE
- Meng-hash pesan protokol dengan label khusus aplikasi
Catatan Keamanan
cSHAKE128 menawarkan keamanan 128 bit seperti SHAKE128. String kustomisasi bersifat publik, bukan kunci — gunakan KMAC128 untuk autentikasi. Perhitungan dilakukan secara lokal di browser Anda.
Pertanyaan Umum
Apa yang terjadi jika N dan S sama-sama kosong?
Menurut definisi, cSHAKE128 kemudian sama dengan SHAKE128; untuk abc dengan 256 bit Anda mendapat 5881092dd818bf5c…, sama seperti SHAKE128.
Apa perbedaan N dan S?
N (nama fungsi) dicadangkan untuk fungsi yang didefinisikan NIST, seperti "KMAC" atau "TupleHash". S adalah string kustomisasi bebas untuk aplikasi. Dalam praktiknya Anda mengisi S dan membiarkan N kosong.
Bagaimana N dan S di-encode?
Sebagai byte UTF-8, diawali panjangnya dalam bit (left_encode), lalu diberi padding hingga sepanjang rate sesuai ketentuan SP 800-185.