KMAC256 मैसेज ऑथेंटिकेशन कोड जनरेटर
अपनी कुंजी (टेक्स्ट या हेक्स), कस्टमाइज़ेशन स्ट्रिंग और आउटपुट लंबाई के साथ KMAC256 मैसेज ऑथेंटिकेशन कोड निकालें। NIST SP 800-185 नमूनों से मेल खाता है।
8 का गुणज, 8 से 16384 बिट तक।
डोमेन अलग करने के लिए वैकल्पिक लेबल, जैसे आपके ऐप का नाम। अलग स्ट्रिंग से बिल्कुल असंबंधित आउटपुट मिलता है।
कुंजी खाली है। गुप्त कुंजी के बिना KMAC कुछ भी प्रमाणित नहीं करता।
पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।
KMAC256 जनरेटर क्या है?
KMAC256, NIST SP 800-185 का Keccak-आधारित मैसेज ऑथेंटिकेशन कोड है, जो HMAC का SHA-3 रूप है। गुप्त कुंजी, वैकल्पिक कस्टमाइज़ेशन स्ट्रिंग और आउटपुट लंबाई देने पर यह ऐसा टैग बनाता है जिसे केवल कुंजी रखने वाले ही निकाल सकते हैं। यह टूल टेक्स्ट या रॉ बाइट का KMAC256 निकालता है।
KMAC256 जनरेटर का उपयोग कैसे करें
- डेटा संदेश में लिखें; बाइनरी डेटा के लिए इनपुट एन्कोडिंग में हेक्स बाइट्स या Base64 चुनें।
- गुप्त कुंजी दर्ज करें और उसकी कुंजी एन्कोडिंग चुनें (टेक्स्ट (UTF-8) या हेक्स बाइट्स)।
- चाहें तो कस्टमाइज़ेशन स्ट्रिंग (S) दर्ज करें और आउटपुट लंबाई (बिट) बदलें (डिफ़ॉल्ट 512)।
- आउटपुट फ़ॉर्मैट चुनें और टैग इस्तेमाल करने के लिए कॉपी करें दबाएँ।
उदाहरण
Message 00010203 (Hex bytes), key 404142…5E5F (32 bytes, hex), S = "My Tagged Application", 512 bits
20c570c31346f703c9ac36c61c03cb64c3970d0cfc787e9b79599d273a68d2f7f69d4cc3de9d104a351689f27cf6f5951f0103f33f4f24871024d9c27773a8dd
NIST SP 800-185 KMAC नमूना #4.
KMAC256 जनरेटर का उपयोग कब करें
SHA-3 पर बने सिस्टम में संदेशों को ऑथेंटिकेट करने या कुंजियाँ निकालने के लिए, या किसी स्पेसिफ़िकेशन या दूसरे इम्प्लीमेंटेशन के KMAC टैग जाँचने के लिए KMAC256 का उपयोग करें। अगर दूसरा पक्ष HMAC-SHA256 की उम्मीद करता है, तो KMAC साथ नहीं चलेगा; वहाँ HMAC इस्तेमाल करें। खाली या आसानी से अनुमान लगने वाली कुंजी का उपयोग न करें; MAC उतना ही मज़बूत है जितनी उसकी कुंजी।
KMAC256 जनरेटर कैसे काम करता है
KMAC256 (NIST SP 800-185) फ़ंक्शन नाम "KMAC" वाला cSHAKE256 है। यह bytepad(encode_string(K), 136) एब्ज़ॉर्ब करता है, यानी पूरे ब्लॉक तक पैड की गई कुंजी, फिर संदेश, फिर माँगी गई आउटपुट लंबाई L के साथ right_encode(L), और L बिट स्क्वीज़ करता है। क्योंकि L इनपुट का हिस्सा है, इसलिए एक ही डेटा का 256-बिट और 512-बिट KMAC आपस में असंबंधित होते हैं (SHAKE के उलट)। स्पंज डिज़ाइन के कारण सीधा की-प्रीफ़िक्स तरीका सुरक्षित है, इसलिए KMAC को HMAC जैसी नेस्टेड संरचना नहीं चाहिए।
सामान्य उपयोग मामले
- NIST SP 800-185 के KMAC टेस्ट वेक्टर जाँचें
- किसी दूसरी भाषा में KMAC इम्प्लीमेंटेशन डीबग करें
- SHA-3 आधारित प्रोटोकॉल में किसी API या संदेश के लिए ऑथेंटिकेशन टैग बनाएँ
- टेस्टिंग के लिए KMAC को KDF (SP 800-108 शैली) की तरह इस्तेमाल करके कुंजी निकालें
सुरक्षा नोट
जब कुंजी यादृच्छिक हो और कम से कम 32 बाइट लंबी हो, तब KMAC256 256-बिट तक की सुरक्षा देता है। ताज़ा, गुप्त कुंजी इस्तेमाल करें और अपने कोड में टैग की तुलना constant time में करें। प्रोडक्शन कुंजियाँ ऐसे टूल में कभी पेस्ट न करें जिन पर आपको भरोसा नहीं; यह टूल स्थानीय रूप से चलता है और कुछ नहीं भेजता।
अक्सर पूछे जाने वाले प्रश्न
KMAC256, HMAC से कैसे अलग है?
HMAC, SHA-2 की लेंथ-एक्सटेंशन समस्याओं से बचने के लिए हैश को दो बार लपेटता है। Keccak लेंथ एक्सटेंशन के प्रति संवेदनशील नहीं है, इसलिए KMAC सीधे पैड की गई कुंजी को आगे जोड़ देता है। नतीजे एक-दूसरे की जगह इस्तेमाल नहीं हो सकते।
आउटपुट लंबाई बदलने पर सारे बिट क्यों बदल जाते हैं?
आउटपुट लंबाई L इनपुट में एन्कोड होती है, इसलिए 256 और 512 बिट वाले KMAC स्वतंत्र मान हैं; छोटा मान लंबे मान का उपसर्ग नहीं होता।
बाइनरी कुंजी कैसे दर्ज करूँ?
कुंजी एन्कोडिंग को हेक्स बाइट्स पर सेट करें और कुंजी हेक्स में पेस्ट करें (स्पेस चलते हैं)। टेक्स्ट (UTF-8) में अक्षर खुद कुंजी के बाइट के रूप में इस्तेमाल होते हैं।
क्या मेरी कुंजी कहीं भेजी जाती है?
नहीं। कुंजी और संदेश केवल आपके ब्राउज़र में प्रोसेस होते हैं।