ChaCha20-Poly1305
ChaCha20-Poly1305 अतिरिक्त डेटा (AEAD) एल्गोरिदम के साथ एक प्रमाणित एन्क्रिप्शन है, जो ChaCha20 स्ट्रीम सिफर को पॉली1305 संदेश प्रमाणीकरण कोड के साथ जोड़ता है। आई. ई. टी. एफ. प्रोटोकॉल में इसका उपयोग आर. एफ. सी. 8439 में मानकीकृत है। इसमें तेज़ सॉफ्टवेयर प्रदर्शन है, और हार्डवेयर त्वरण के बिना, आमतौर पर एईएस-जीसीएम की तुलना में तेज़ होता है। निर्माण के दो निर्माण खंड, एल्गोरिदम पॉली1305 और चाचा20, दोनों को 2005 और 2008 में डैनियल जे. बर्नस्टीन द्वारा स्वतंत्र रूप से डिजाइन किया गया था। 2013-2014 में, मूल ChaCha20 एल्गोरिथ्म का एक संस्करण (32-बिट काउंटर और 96-बिट नॉनस का उपयोग करते हुए) और मूल पॉली1305 (2 स्ट्रिंग्स को प्रमाणित करने वाला) के एक संस्करण को TLS और DTLS में उपयोग किए जाने वाले IETF ड्राफ्ट में जोड़ा गया था, और Google द्वारा सुरक्षा और प्रदर्शन कारणों से, एक नए समर्थित साइफर के रूप में चुना गया था। टीएलएस के लिए गूगल द्वारा अपनाए जाने के कुछ ही समय बाद, चाचा20, पॉली1305 और संयुक्त एईएडी मोड को ओपनएसएसएच में thechacha20-poly1305@openssh.com प्रमाणित एन्क्रिप्शन सिफर के माध्यम से जोड़ा जाता है, लेकिन चाचा20 एल्गोरिदम के लिए मूल 64-बिट काउंटर और 64-बिट नॉन्स रखा जाता है। 2015 में, ए. ई. ए. डी. एल्गोरिदम को आर. एफ. सी. 7539 और आर. एफ. सी. 7905 में मानकीकृत किया गया है जिसका उपयोग टी. एल. एस. 1.2 और डी. टी. एल. एस. 1.2 में और आर. एफ. सी. 7634 में आई. पी. एस. ई. सी. में किया जाएगा। उसी वर्ष, इसे क्लाउडफ्लेयर द्वारा एक वैकल्पिक साइफरसूइट के रूप में एकीकृत किया गया था। जून 2018 में, आरएफसी 7539 को अद्यतन किया गया और आरएफसी 8439 द्वारा प्रतिस्थापित किया गया। विवरण आर. एफ. सी. 8439 में वर्णित चाचा20-पॉली1305 एल्गोरिथ्म 128-बिट (टैग आकार) के सिफरटेक्स्ट विस्तार के साथ एक प्लेनटेक्स्ट को एन्क्रिप्ट करने के लिए एक 256-बिट कुंजी और एक 96-बिट नॉन्स को इनपुट के रूप में लेता है। चाचा20-पॉली1305 निर्माण में, चाचा20 का उपयोग काउंटर मोड में एक प्रमुख धारा प्राप्त करने के लिए किया जाता है जो प्लेनटेक्स्ट के साथ एक्सओआर है। सिफरटेक्स्ट और संबंधित डेटा को फिर पॉली1305 के एक प्रकार का उपयोग करके प्रमाणित किया जाता है जो पहले दो स्ट्रिंग्स को एक में कूटबद्ध करता है। जिस तरह से एक सिफर और एक बार के प्रमाणीकरणकर्ता को जोड़ा जाता है, वह सटीक रूप से एईएस-जीसीएम निर्माण के समान है कि कैसे पहले ब्लॉक का उपयोग प्रमाणीकरणकर्ता को जोड़ने के लिए किया जाता है और कैसे सिफरटेक्स्ट को 16-बाइट टैग के साथ प्रमाणित किया जाता है। AES-128 और AES-256 दोनों के साथ 16 बाइट्स (128 बिट) की तुलना में ChaCha20 के साथ मुख्य बाहरी अंतर इसका 64 बाइट्स (512 बिट) ब्लॉक आकार है। बड़ा ब्लॉक आकार आधुनिक सीपीयू पर उच्च प्रदर्शन को सक्षम बनाता है और 32 बिट काउंटर ओवरफ्लो से पहले बड़ी धाराओं के लिए अनुमति देता है। वैरिएंट XChaCha20-Poly1305-विस्तारित नॉनस वैरिएंट XChaCha20-Poly1305 निर्माण ChaCha20-Poly1305 निर्माण का एक विस्तारित 192-बिट नॉनस वैरिएंट है, जिसमें ChaCha20 के बजाय XChaCha20 का उपयोग किया गया है। यादृच्छिक रूप से नॉनसेस का चयन करते समय, XChaCha20-Poly1305 निर्माण मूल निर्माण की तुलना में बेहतर सुरक्षा की अनुमति देता है। निर्माण को मानकीकृत करने का प्रयास जुलाई 2020 में समाप्त हो गया। साल्सा20-पॉली1305 और एक्ससाल्सा20-पॉली1305 साल्सा20-पॉली1305 और एक्ससाल्सा20-पॉली1305 चाचा20-पॉली1305 और एक्ससाल्सा20-पॉली1305 एल्गोरिदम के प्रकार हैं, जो चाचा20 और एक्ससाल्सा20 के स्थान पर साल्सा20 और एक्ससाल्सा20 का उपयोग करते हैं। वे एन. ए. सी. एल. और लिबसोडियम में लागू किए जाते हैं लेकिन मानकीकृत नहीं होते हैं। चाचा का उपयोग करने वाले रूपों को व्यवहार में पसंद किया जाता है क्योंकि वे साल्सा की तुलना में प्रति दौर बेहतर प्रसार प्रदान करते हैं। ChaCha20-Poly1305 का उपयोग आई. पी. एस. ई. सी., एस. एस. एच., टी. एल. एस. 1.2, डी. टी. एल. एस. 1.2, टी. एल. एस. 1.3, वायरगार्ड, एस/एम. आई. एम. ई. 4, ओटीआरवी. 4 और कई अन्य प्रोटोकॉल में किया जाता है। इसका उपयोग बोर्ग जैसे सॉफ्टवेयर में मानक डेटा एन्क्रिप्शन के रूप में किया जाता है। अन्य में, इसे ओपनएसएसएल और लिबसोडियम में लागू किया जाता है। प्रदर्शन ChaCha20-Poly1305 आमतौर पर अधिक प्रचलित AES-GCM एल्गोरिदम की तुलना में बेहतर प्रदर्शन प्रदान करता है, यहां तक कि उन प्रणालियों पर भी जहां CPU (s) में AES-NI निर्देश सेट एक्सटेंशन होता है। सॉफ्टवेयर कार्यान्वयन के साथ एन्क्रिप्शन और डिक्रिप्शन की गति पहले से ही 1 GB/s से ऊपर होती है जब एक एकल कोर पर किया जाता है, लगभग रैखिक रूप से स्केलिंग अगर अधिक कोर समानांतर में उपयोग किए जाते हैं। एईएस-एनआई एकल कोर पर लगभग एक ही गति तक पहुँचता है लेकिन कई सीपीयू के साथ-साथ स्केल नहीं करता है, और निर्देश सेट विस्तार के बिना इसे कुशलता से लागू करना मुश्किल है। नतीजतन, चाचा20-पॉली1305 को कभी-कभी सुरक्षा के समान स्तरों और मोबाइल उपकरणों से जुड़े कुछ उपयोग के मामलों में, जो ज्यादातर ए. आर. एम.-आधारित सी. पी. यू. का उपयोग करते हैं, के कारण एई. एस.-जी. सी. एम. पर प्राथमिकता दी जाती है। सुरक्षा चाचा20-पॉली1305 निर्माण एकल और बहु-उपयोगकर्ता सेटिंग के लिए मानक मॉडल और आदर्श क्रमपरिवर्तन मॉडल में सुरक्षित साबित हुआ है। हालाँकि, जी. सी. एम. के समान, सुरक्षा एन्क्रिप्टेड प्रत्येक संदेश के लिए एक अद्वितीय नोन्स चुनने पर निर्भर करती है। एईएस-जीसीएम की तुलना में, चाचा20-पॉली1305 के कार्यान्वयन समय के हमलों के प्रति कम संवेदनशील हैं। आई. ई. टी. एफ. प्रोटोकॉल आर. एफ. सी. 7634 के लिए प्रमाणित कूटलेखन गैलोइस/काउंटर मोड साल्सा20 पॉली1305 बाहरी लिंक आर. एफ. सी. 8439: चाचा20 और पॉली1305: चाचा20, पॉली1305, और इंटरनेट कुंजी विनिमय प्रोटोकॉल (आई. के. ई.) और आई. पी. एस. सी. आर. एफ. सी. 7905 में उनका उपयोगः परिवहन परत सुरक्षा (टी. एल. एस.) आर. एफ. सी. 8103 के लिए चाचा20-पॉली1305 साइफर सुइटः क्रिप्टोग्राफिक संदेश वाक्यविन्यास (सी. एम. एस.) संदर्भ में चाचा20-पॉली1305 प्रमाणित कूटलेखन का उपयोग संदेश-कूटलेखन प्रणालियाँ संदेश प्रमाणीकरण कोड स्ट्रीम साइफर