cSHAKE128 हैश जनरेटर
cSHAKE128 निकालें, फ़ंक्शन नाम N, कस्टमाइज़ेशन स्ट्रिंग S और किसी भी आउटपुट लंबाई के साथ। NIST SP 800-185 नमूनों से सत्यापित, ब्राउज़र में चलता है।
8 का गुणज, 8 से 16384 बिट तक।
आमतौर पर खाली छोड़ा जाता है। NIST ने इसे cSHAKE पर बने फ़ंक्शनों के लिए आरक्षित रखा है।
डोमेन अलग करने के लिए वैकल्पिक लेबल, जैसे आपके ऐप का नाम। अलग स्ट्रिंग से बिल्कुल असंबंधित आउटपुट मिलता है।
पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।
cSHAKE128 हैश जनरेटर क्या है?
cSHAKE128, NIST SP 800-185 में परिभाषित SHAKE128 का कस्टमाइज़ करने योग्य संस्करण है। यह एक फ़ंक्शन नाम N और एक कस्टमाइज़ेशन स्ट्रिंग S जोड़ता है, ताकि अलग-अलग उद्देश्यों के लिए हैश किए गए एक ही संदेश के आउटपुट आपस में असंबंधित हों। इस टूल में आप N, S और आउटपुट लंबाई तय कर सकते हैं।
cSHAKE128 हैश जनरेटर का उपयोग कैसे करें
- अपना इनपुट हैश करने के लिए टेक्स्ट में टाइप या पेस्ट करें; डाइजेस्ट टाइप करते ही अपडेट होता है (खाली बॉक्स खाली इनपुट का हैश दिखाता है)।
- इनपुट एन्कोडिंग चुनें: टेक्स्ट (UTF-8) अक्षरों को UTF-8 मानकर हैश करता है, हेक्स बाइट्स या Base64 डिकोड किए गए रॉ बाइट हैश करते हैं।
- आउटपुट लंबाई (बिट) सेट करें (डिफ़ॉल्ट 256)।
- चाहें तो फ़ंक्शन नाम (N) (आमतौर पर खाली) और कस्टमाइज़ेशन स्ट्रिंग (S) भरें, जैसे अपने एप्लिकेशन या प्रोटोकॉल का नाम।
- आउटपुट फ़ॉर्मैट चुनें (हेक्स छोटे अक्षर, हेक्स बड़े अक्षर या Base64) और कॉपी करें दबाएँ।
उदाहरण
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 256 bits
c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5
NIST SP 800-185 cSHAKE नमूना #1.
cSHAKE128 हैश जनरेटर का उपयोग कब करें
जब डोमेन सेपरेशन चाहिए, यानी एक ही डेटा से अलग-अलग उद्देश्यों के लिए कई हैश निकालने हों (की डेरिवेशन लेबल, प्रोटोकॉल ट्रांसक्रिप्ट, टैग्ड हैश), तब cSHAKE128 का उपयोग करें। अगर कस्टमाइज़ेशन की ज़रूरत नहीं है तो सादा SHAKE128 इस्तेमाल करें, और अगर गुप्त कुंजी शामिल है तो KMAC128। N को NIST द्वारा परिभाषित फ़ंक्शनों के लिए आरक्षित रखा गया है; एप्लिकेशन को आमतौर पर केवल S का उपयोग करना चाहिए।
cSHAKE128 हैश जनरेटर कैसे काम करता है
cSHAKE128 (NIST SP 800-185) डोमेन सेपरेशन वाला SHAKE128 है। संदेश से पहले यह bytepad(encode_string(N) || encode_string(S), 168) को एब्ज़ॉर्ब करता है, यानी फ़ंक्शन नाम N और कस्टमाइज़ेशन स्ट्रिंग S, जिनमें से हर एक के आगे उसकी बिट लंबाई लगी होती है; फिर SHAKE के 1111 की जगह 00 सफ़िक्स से पैड करता है। अगर N और S दोनों खाली हों, तो cSHAKE128 को SHAKE128 के बराबर परिभाषित किया गया है। अलग N या S मान स्वतंत्र फ़ंक्शन देते हैं। N और S टेक्स्ट के रूप में दर्ज किए जाते हैं और UTF-8 में एन्कोड होते हैं।
सामान्य उपयोग मामले
- NIST SP 800-185 के cSHAKE टेस्ट वेक्टर दोहराएँ
- एक ही इनपुट से अलग-अलग संदर्भों के लिए अलग मान निकालें
- cSHAKE पर बने KMAC, TupleHash या ParallelHash को लागू या डीबग करें
- किसी एप्लिकेशन-विशिष्ट लेबल के साथ प्रोटोकॉल संदेश हैश करें
सुरक्षा नोट
cSHAKE128, SHAKE128 की तरह 128-बिट सुरक्षा देता है। कस्टमाइज़ेशन स्ट्रिंग सार्वजनिक होती है, कुंजी नहीं; ऑथेंटिकेशन के लिए KMAC128 का उपयोग करें। गणना आपके ब्राउज़र में ही स्थानीय रूप से होती है।
अक्सर पूछे जाने वाले प्रश्न
अगर N और S दोनों खाली हों तो क्या होता है?
परिभाषा के अनुसार तब cSHAKE128, SHAKE128 के बराबर होता है; abc के लिए 256 बिट पर आपको 5881092dd818bf5c… मिलता है, जो SHAKE128 जैसा ही है।
N और S में क्या अंतर है?
N (फ़ंक्शन नाम) NIST द्वारा परिभाषित फ़ंक्शनों, जैसे "KMAC" या "TupleHash", के लिए आरक्षित है। S एप्लिकेशन के लिए खुली कस्टमाइज़ेशन स्ट्रिंग है। व्यवहार में आप S सेट करते हैं और N खाली छोड़ते हैं।
N और S कैसे एन्कोड होते हैं?
UTF-8 बाइट के रूप में, आगे बिट-लंबाई (left_encode) लगाकर, फिर SP 800-185 में बताए अनुसार रेट तक पैड करके।