कुंजी व्युत्पन्न फंक्शन

क्रिप्टोग्राफी में एक कुंजी व्युत्पत्ति कार्य (केडीएफ) एक क्रिप्टोग्राफ़िक एल्गोरिथ्म है जो एक गुप्त मान से एक या एक से अधिक कुंजी (क्रिप्टोग्राफी) प्राप्त करता है जैसे मास्टर कुंजी एक पासवर्ड या छद्म यादृच्छिक कार्य (जो सामान्यतः एक क्रिप्टोग्राफ़िक का उपयोग करता है) का उपयोग करके पदबंध हैश कार्य या ब्लॉक सिफर)।  केडीएफ का उपयोग कुंजी को लंबी कुंजी में फैलाने या आवश्यक प्रारूप की कुंजी प्राप्त करने के लिए किया जा सकता है जैसे उन्नत एन्क्रिप्शन मानक के उपयोग के लिए डिफी-हेलमैन कुंजी रूपांतरण का परिणाम एक समूह तत्व को एक सममित कुंजी में परिवर्तित करना एचएमएसी प्रमुख व्युत्पत्ति के लिए उपयोग किए जाने वाले छद्म आयामी कार्यों के लोकप्रिय उदाहरण हैं।

इतिहास
पहला जानबूझकर धीमा (की स्ट्रेचिंग) पासवर्ड-आधारित कुंजी व्युत्पत्ति कार्य को क्रिप्ट (या क्रिप्ट (3) इसके मैनुअल पेज (यूनिक्स) के बाद) कहा जाता था और 1978 में रॉबर्ट मॉरिस (क्रिप्टोग्राफर) द्वारा इसका आविष्कार किया गया था। यह एक एन्क्रिप्ट करेगा निरंतर (शून्य) एक संशोधित डेटा एन्क्रिप्शन मानक एन्क्रिप्शन एल्गोरिदम के 25 पुनरावृत्तियों को निष्पादित करके कुंजी के रूप में उपयोगकर्ता के पासवर्ड के पहले 8 वर्णों का उपयोग करके (जिसमें रीयल-टाइम कंप्यूटर घड़ी से पढ़ा गया 12-बिट नंबर परेशान करने के लिए उपयोग किया जाता है) गणना) परिणामी 64-बिट संख्या को 11 प्रिंट करने योग्य वर्णों के रूप में एन्कोड किया गया है और फिर यूनिक्स पासवर्ड फ़ाइल में संग्रहीत किया गया है। जबकि यह उस समय एक बड़ी प्रगति थी, पीडीपी-11 युग के बाद से प्रोसेसर की गति में वृद्धि ने क्रिप्ट के विपरीत क्रूर-बल के हमलों को संभव बना दिया है, और संचयन में प्रगति ने 12-बिट साल्ट को अपर्याप्त बना दिया है। क्रिप्ट कार्य का डिज़ाइन भी उपयोगकर्ता पासवर्ड को 8 वर्णों तक सीमित करता है जो कीस्पेस को सीमित करता है और शक्तिशाली पासफ़्रेज़ को असंभव बनाता है।

चूँकि उच्च थ्रूपुट सामान्य-उद्देश्य वाले हैश कार्यों में एक वांछनीय गुण है पासवर्ड सुरक्षा अनुप्रयोगों में विपरीत सच है जिसमें क्रूर-बल क्रैकिंग के विपरीत बचाव एक प्राथमिक चिंता है। बड़े मापदंड पर समानांतर हार्डवेयर जैसे जीपीयू, एफपीजीए, और यहां तक ​​​​कि एएसआईसी के ब्रूट-फोर्स क्रैकिंग के बढ़ते उपयोग ने एक उपयुक्त एल्गोरिदम के चयन को और भी महत्वपूर्ण बना दिया है क्योंकि अच्छे एल्गोरिदम को न केवल कम्प्यूटेशनल निवेश की एक निश्चित मात्रा को प्रयुक्त करना चाहिए किन्तु सीपीयू किन्तु ऐसे कार्यों के लिए आधुनिक व्यापक-समानांतर प्लेटफार्मों की निवेश/प्रदर्शन लाभों का भी विरोध करते हैं। इस उद्देश्य के लिए विशेष रूप से विभिन्न एल्गोरिदम तैयार किए गए हैं, जिनमें बीक्रिप्ट, स्क्रिप्ट और, वर्तमान ही में, लायरा2 और आर्गन2 (बाद वाला पासवर्ड हैशिंग प्रतियोगिता का विजेता है) सम्मिलित है। बड़े मापदंड पर एशले मैडिसन डेटा उल्लंघन जिसमें हमलावरों द्वारा लगभग 36 मिलियन पासवर्ड हैश चुरा लिए गए थे, पासवर्ड सुरक्षित करने में एल्गोरिदम चयन के महत्व को दर्शाते हैं। चूँकि बीक्रिप्ट को हैश की सुरक्षा के लिए नियोजित किया गया था (बड़े मापदंड पर ब्रूट-फोर्स क्रैकिंग महंगी और समय लेने वाली), समझौता किए गए डेटा में खातों के एक महत्वपूर्ण हिस्से में तेज़ सामान्य-उद्देश्य एमडी5 एल्गोरिथ्म के आधार पर एक पासवर्ड हैश भी सम्मिलित था जिसने बनाया कुछ ही हफ्तों में 11 मिलियन से अधिक पासवर्ड को क्रैक करना संभव है।

जून 2017 में, यू.एस. राष्ट्रीय मानक और प्रौद्योगिकी संस्थान (एनआईएसटी) ने अपने डिजिटल प्रमाणीकरण दिशानिर्देशों का एक नया संशोधन जारी किया एनआईएसटी एसपी 800-63बी-3, यह बताते हुए कि: सत्यापनकर्ता कंठस्थ रहस्यों को संग्रहित करेंगे [अर्थात पासवर्ड] एक ऐसे रूप में जो ऑफ़लाइन हमलों के लिए प्रतिरोधी है। याद किए गए रहस्यों को एक उपयुक्त एक तरफ़ा कुंजी व्युत्पत्ति कार्य का उपयोग करके साल्ट और हैश किया जाएगा। कुंजी व्युत्पत्ति कार्य इनपुट के रूप में एक पासवर्ड एक साल्ट और एक निवेश कारक लेते हैं और फिर एक पासवर्ड हैश उत्पन्न करते हैं। उनका उद्देश्य एक हमलावर द्वारा प्रत्येक पासवर्ड का अनुमान लगाने का परीक्षण करना है जिसने एक पासवर्ड हैश फ़ाइल प्राप्त की है और इसलिए अनुमान लगाने की निवेश उच्च या निषेधात्मक है।

आधुनिक पासवर्ड-आधारित कुंजी व्युत्पत्ति कार्य, जैसे पीबीकेडीएफ2 ([rfc:2898 आरएफसी2898] में निर्दिष्ट), एक मान्यता प्राप्त क्रिप्टोग्राफ़िक हैश पर आधारित हैं, जैसे एसएचए-2, अधिक साल्ट (कम से कम 64 बिट्स और व्यवस्थित विधि से चुने गए) और एक उच्च पुनरावृत्ति गणना का उपयोग करते हैं। एनआईएसटी 10,000 की न्यूनतम पुनरावृति संख्या की अनुशंसा करता है। विशेष रूप से महत्वपूर्ण कुंजियों के लिए या बहुत शक्तिशाली प्रणालियों या प्रणालियों के लिए जहां उपयोगकर्ता-कथित प्रदर्शन महत्वपूर्ण नहीं है, 10,000,000 की पुनरावृत्ति संख्या उपयुक्त हो सकती है।

कुंजी व्युत्पत्ति
केडीएफ के लिए मूल उपयोग कुंजी व्युत्पत्ति है गुप्त पासवर्ड या पासफ़्रेज़ से कुंजियों का निर्माण इस विषय पर बदलाव में सम्मिलित हैं:


 * एक सामान्य गुप्त मूल्य (जिसे कभी-कभी कुंजी विविधीकरण भी कहा जाता है) से एक या अधिक कुंजी प्राप्त करने के लिए गैर-गुप्त पैरामीटर के संयोजन के साथ। इस तरह के उपयोग से एक हमलावर को रोका जा सकता है जो इनपुट गुप्त मूल्य या किसी अन्य व्युत्पन्न कुंजी के बारे में उपयोगी जानकारी सीखने से व्युत्पन्न कुंजी प्राप्त करता है। एक केडीएफ का उपयोग यह सुनिश्चित करने के लिए भी किया जा सकता है कि व्युत्पन्न कुंजियों में अन्य वांछनीय गुण हैं, जैसे कि कुछ विशिष्ट एन्क्रिप्शन प्रणाली में अशक्त कुंजियों से बचना है।
 * मल्टीपार्टी कुंजी-समझौता प्रोटोकॉल के घटकों के रूप में ऐसे प्रमुख व्युत्पत्ति कार्यों के उदाहरणों में केडीएफ1, आईईईई पी1363 आईईईई एसटीडी 1363-2000 में परिभाषित, और एएनएसआई X9.42 में समान कार्य सम्मिलित हैं।
 * गुप्त पासवर्ड या पासफ़्रेज़ (एक पासवर्ड-आधारित केडीएफ) से कुंजी प्राप्त करने के लिए।
 * प्रदान की गई कुंजियों से अलग-अलग लंबाई की कुंजी प्राप्त करने के लिए: इस उद्देश्य के लिए डिज़ाइन किए गए केडीएफ का एक उदाहरण एचकेडीएफ है।
 * कुंजी स्ट्रेचिंग और कुंजी स्ट्रेंथनिंग।

की स्ट्रेचिंग और की स्ट्रेंथनिंग
कुंजी व्युत्पत्ति कार्यों का उपयोग अनुप्रयोगों में गुप्त पासवर्ड या पासफ़्रेज़ से कुंजी प्राप्त करने के लिए भी किया जाता है जिसमें सामान्यतः क्रिप्टोग्राफ़िक कुंजी के रूप में सीधे उपयोग किए जाने वाले वांछित गुण नहीं होते हैं। ऐसे अनुप्रयोगों में सामान्यतः यह अनुशंसा की जाती है कि कुंजी व्युत्पत्ति कार्य को जानबूझकर धीमा किया जाए जिससे पासवर्ड या पासफ़्रेज़ इनपुट मान पर ब्रूट-फ़ोर्स आक्रमण या शब्दकोश हमला को विफल किया जा सकता है ।

इस तरह के उपयोग को $DK = KDF(key, salt, iterations)$ के रूप में व्यक्त किया जा सकता है, जहां $DK$ व्युत्पन्न कुंजी है, $KDF$ कुंजी व्युत्पन्न कार्य है, $key$ मूल कुंजी या पासवर्ड है, $salt$ एक यादृच्छिक संख्या है जो क्रिप्टोग्राफिक साल्ट के रूप में कार्य करती है, और $iterations$ एक उप-कार्य के पुनरावृत्तियों की संख्या को संदर्भित करती हैं। प्रणाली की कुंजी के रूप में मूल कुंजी या पासवर्ड के अतिरिक्त व्युत्पन्न कुंजी का उपयोग किया जाता है। साल्ट के मान और पुनरावृत्तियों की संख्या (यदि यह तय नहीं है) को हैश किए गए पासवर्ड के साथ संग्रहीत किया जाता है या एक एन्क्रिप्टेड संदेश के साथ क्लीयरटेक्स्ट (अनएन्क्रिप्टेड) ​​के रूप में भेजा जाता है।

पुनरावृत्तियों की संख्या के साथ क्रूर बल के हमले की कठिनाई बढ़ जाती है। पुनरावृति गणना पर एक व्यावहारिक सीमा उपयोगकर्ताओं की अनिच्छा है जो कंप्यूटर में लॉग इन करने या डिक्रिप्ट किए गए संदेश को देखने में एक प्रत्यक्ष देरी को सहन करने के लिए है। साल्ट (क्रिप्टोग्राफी) का उपयोग हमलावरों को व्युत्पन्न कुंजी के शब्दकोश को प्रीकंप्यूटिंग करने से रोकता है।

एक वैकल्पिक दृष्टिकोण जिसे कुंजी सुदृढ़ीकरण कहा जाता है यादृच्छिक साल्ट के साथ कुंजी को बढ़ाता है किन्तु फिर (कुंजी खींचने के विपरीत) साल्ट को सुरक्षित रूप से हटा देता है। यह हमलावर और वैध उपयोगकर्ताओं दोनों को साल्ट मूल्य के लिए क्रूर-बल खोज करने के लिए विवश करता है। चूँकि वह पेपर जिसने की स्ट्रेचिंग की प्रारंभिक की इस पहले की विधि को संदर्भित किया गया है और जानबूझकर एक अलग नाम चुना गया है, शब्द की शक्ति अब अधिकांशतः (यकीनन गलत विधि से) की स्ट्रेचिंग को संदर्भित करने के लिए उपयोग की जाती है।

पासवर्ड हैशिंग
कुंजी व्युत्पत्ति के लिए उनके मूल उपयोग के अतिरिक्त केडीएफ संभवतः पासवर्ड हैशिंग (क्रिप्टोग्राफ़िक हैश कार्य या पासवर्ड सत्यापन) में उनके उपयोग के लिए जाने जाते हैं जैसा कि पासवर्ड फ़ाइल या छाया पासवर्ड फ़ाइल द्वारा उपयोग किया जाता है। क्रूर-बल के हमलों के स्थिति में गणना करने के लिए पासवर्ड हैश कार्य अपेक्षाकृत मूल्यवान होना चाहिए और इस विशेषता को प्रदान करने के लिए केडीएफ की प्रमुख स्ट्रेचिंग होती है। इस संदर्भ में गैर-गुप्त मापदंडों को साल्ट (क्रिप्टोग्राफी) कहा जाता है।

2013 में पासवर्ड हैशिंग के लिए एक नया मानक एल्गोरिदम चुनने के लिए एक पासवर्ड हैशिंग प्रतियोगिता की घोषणा की गई थी। 20 जुलाई 2015 को प्रतियोगिता समाप्त हो गई और आर्गन2 को अंतिम विजेता घोषित किया गया। चार अन्य एल्गोरिदम को विशेष पहचान मिली: कैटेना, लाइरा2, मकवा और येसक्रिप्ट।

मई 2023 तक ओडब्ल्यूएएसपी पासवर्ड हैशिंग के लिए निम्नलिखित केडीएफ की पक्षसमर्थन करता है जो प्राथमिकता के क्रम में सूचीबद्ध हैं:

1. आर्गन2आईडी

2. यदि आर्गन2आईडी अनुपलब्ध है तो स्क्रीप्ट करें

3. लीगेसी प्रणाली के लिए बीक्रिप्ट

4. पीबीकेडीएफ2 यदि एफ़आईपीएस-140 अनुपालन आवश्यक है

पुनरावृत्तियों की संख्या के साथ क्रूर बल के हमले की कठिनाई बढ़ जाती है। पुनरावृको सह

अग्रिम पठन

 * Key Derivation Functions
 * Key Derivation Functions