cSHAKE256 हैश जनरेटर

cSHAKE256 निकालें, फ़ंक्शन नाम N, कस्टमाइज़ेशन स्ट्रिंग S और किसी भी आउटपुट लंबाई के साथ। NIST SP 800-185 नमूनों से सत्यापित, ब्राउज़र में चलता है।

8 का गुणज, 8 से 16384 बिट तक।

आमतौर पर खाली छोड़ा जाता है। NIST ने इसे cSHAKE पर बने फ़ंक्शनों के लिए आरक्षित रखा है।

डोमेन अलग करने के लिए वैकल्पिक लेबल, जैसे आपके ऐप का नाम। अलग स्ट्रिंग से बिल्कुल असंबंधित आउटपुट मिलता है।

cSHAKE256

पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।

cSHAKE256 हैश जनरेटर क्या है?

cSHAKE256, NIST SP 800-185 में परिभाषित SHAKE256 का कस्टमाइज़ करने योग्य संस्करण है। यह एक फ़ंक्शन नाम N और एक कस्टमाइज़ेशन स्ट्रिंग S जोड़ता है, ताकि अलग-अलग उद्देश्यों के लिए हैश किए गए एक ही संदेश के आउटपुट आपस में असंबंधित हों। इस टूल में आप N, S और आउटपुट लंबाई तय कर सकते हैं।

cSHAKE256 हैश जनरेटर का उपयोग कैसे करें

  1. अपना इनपुट हैश करने के लिए टेक्स्ट में टाइप या पेस्ट करें; डाइजेस्ट टाइप करते ही अपडेट होता है (खाली बॉक्स खाली इनपुट का हैश दिखाता है)।
  2. इनपुट एन्कोडिंग चुनें: टेक्स्ट (UTF-8) अक्षरों को UTF-8 मानकर हैश करता है, हेक्स बाइट्स या Base64 डिकोड किए गए रॉ बाइट हैश करते हैं।
  3. आउटपुट लंबाई (बिट) सेट करें (डिफ़ॉल्ट 512)।
  4. चाहें तो फ़ंक्शन नाम (N) (आमतौर पर खाली) और कस्टमाइज़ेशन स्ट्रिंग (S) भरें, जैसे अपने एप्लिकेशन या प्रोटोकॉल का नाम।
  5. आउटपुट फ़ॉर्मैट चुनें (हेक्स छोटे अक्षर, हेक्स बड़े अक्षर या Base64) और कॉपी करें दबाएँ।

उदाहरण

इनपुट
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 512 bits
आउटपुट
d008828e2b80ac9d2218ffee1d070c48b8e4c87bff32c9699d5b6896eee0edd164020e2be0560858d9c00c037e34a96937c561a74c412bb4c746469527281c8c

NIST SP 800-185 cSHAKE नमूना #3.

cSHAKE256 हैश जनरेटर का उपयोग कब करें

जब डोमेन सेपरेशन चाहिए, यानी एक ही डेटा से अलग-अलग उद्देश्यों के लिए कई हैश निकालने हों (की डेरिवेशन लेबल, प्रोटोकॉल ट्रांसक्रिप्ट, टैग्ड हैश), तब cSHAKE256 का उपयोग करें। अगर कस्टमाइज़ेशन की ज़रूरत नहीं है तो सादा SHAKE256 इस्तेमाल करें, और अगर गुप्त कुंजी शामिल है तो KMAC256। N को NIST द्वारा परिभाषित फ़ंक्शनों के लिए आरक्षित रखा गया है; एप्लिकेशन को आमतौर पर केवल S का उपयोग करना चाहिए।

cSHAKE256 हैश जनरेटर कैसे काम करता है

cSHAKE256 (NIST SP 800-185) डोमेन सेपरेशन वाला SHAKE256 है। संदेश से पहले यह bytepad(encode_string(N) || encode_string(S), 136) को एब्ज़ॉर्ब करता है, यानी फ़ंक्शन नाम N और कस्टमाइज़ेशन स्ट्रिंग S, जिनमें से हर एक के आगे उसकी बिट लंबाई लगी होती है; फिर SHAKE के 1111 की जगह 00 सफ़िक्स से पैड करता है। अगर N और S दोनों खाली हों, तो cSHAKE256 को SHAKE256 के बराबर परिभाषित किया गया है। अलग N या S मान स्वतंत्र फ़ंक्शन देते हैं। N और S टेक्स्ट के रूप में दर्ज किए जाते हैं और UTF-8 में एन्कोड होते हैं।

सामान्य उपयोग मामले

  • NIST SP 800-185 के cSHAKE टेस्ट वेक्टर दोहराएँ
  • एक ही इनपुट से अलग-अलग संदर्भों के लिए अलग मान निकालें
  • cSHAKE पर बने KMAC, TupleHash या ParallelHash को लागू या डीबग करें
  • किसी एप्लिकेशन-विशिष्ट लेबल के साथ प्रोटोकॉल संदेश हैश करें

सुरक्षा नोट

cSHAKE256, SHAKE256 की तरह 256-बिट सुरक्षा देता है। कस्टमाइज़ेशन स्ट्रिंग सार्वजनिक होती है, कुंजी नहीं; ऑथेंटिकेशन के लिए KMAC256 का उपयोग करें। गणना आपके ब्राउज़र में ही स्थानीय रूप से होती है।

अक्सर पूछे जाने वाले प्रश्न

अगर N और S दोनों खाली हों तो क्या होता है?

परिभाषा के अनुसार तब cSHAKE256, SHAKE256 के बराबर होता है; abc के लिए 512 बिट पर आपको 483366601360a877… मिलता है, जो SHAKE256 जैसा ही है।

N और S में क्या अंतर है?

N (फ़ंक्शन नाम) NIST द्वारा परिभाषित फ़ंक्शनों, जैसे "KMAC" या "TupleHash", के लिए आरक्षित है। S एप्लिकेशन के लिए खुली कस्टमाइज़ेशन स्ट्रिंग है। व्यवहार में आप S सेट करते हैं और N खाली छोड़ते हैं।

N और S कैसे एन्कोड होते हैं?

UTF-8 बाइट के रूप में, आगे बिट-लंबाई (left_encode) लगाकर, फिर SP 800-185 में बताए अनुसार रेट तक पैड करके।

और श्रेणियाँ देखें