चाचा20-पॉली1305 (ChaCha20-Poly1305)

चाचा20-पॉली1305 (ChaCha20-Poly1305) अतिरिक्त डेटा (AEAD) एल्गोरिदम के साथ प्रमाणित एन्क्रिप्शन है, जो ChaCha20 स्ट्रीम सिफर को पॉली1305 संदेश अभिप्रमाणन कोड के साथ जोड़ता है। IETF प्रोटोकॉल में इसका उपयोग RFC 8439 में मानकीकृत है। इसमें तीव्र सॉफ्टवेयर प्रदर्शन है, और हार्डवेयर त्वरण के बिना, आमतौर पर AES-GCM से तीव्रतर है।

इतिहास
निर्माण के दो मूलभूत अंग, एल्गोरिदम पॉली1305 और ChaCha20, दोनों स्वतंत्र रूप से 2005 और 2008 में, डैनियल जे बर्नस्टीन द्वारा रूपांकित किए गए थे |

2013-2014 में, मूल ChaCha20 एल्गोरिथ्म का एक प्रकार (वैरियंट) (32-बिट काउंटर और 96-बिट नॉन का उपयोग करके) और मूल पॉली1305 (2 शृंखलाओं को प्रमाणित करना) का एक प्रकार TLS और DTLS में उपयोग किए जाने वाले IETF प्रारूप में संयुक्त किया गया था, और गूगल द्वारा सुरक्षा और प्रदर्शन कारणों से एक नए समर्थित सिफर के रूप में चुना गया है। TLS के लिए गूगल के स्वीकरण के तुरंत बाद, ChaCha20, पॉली1305 और संयुक्त AEAD मोड को chacha20-poly1305@openssh.com प्रमाणित एन्क्रिप्शन सिफर के माध्यम से OpenSSH में जोड़ा गया, लेकिन ChaCha20 एल्गोरिथम के लिए मूल 64-बिट काउंटर और 64-बिट नॉन को रखा गया है।

2015 में, AEAD एल्गोरिथ्म को RFC 7539 और RFC 7905 में TLS 1.2 और DTLS 1.2 और RFC 7634 में IPsec में उपयोग करने के लिए मानकीकृत किया गया है। उसी वर्ष, यह क्लाउडफ्लेयर में एक वैकल्पिक सिफरसुइट के रूप में एकीकृत है।

जून 2018 में, RFC 7539 को अद्यतन किया गया और RFC 8439 द्वारा प्रतिस्थापित किया गया था।

विवरण
RFC 8439 में वर्णित ChaCha20-पॉली1305 एल्गोरिथ्म 128-बिट (अंकितक आकार) के सिफरटेक्स्ट विस्तार के साथ एक सादे पाठ (प्लेनटेक्स्ट) को एन्क्रिप्ट करने के लिए इनपुट के रूप में 256-बिट मुख्य और 96-बिट अस्थायी रूप से लेता है। ChaCha20-पॉली1305 निर्माण में, ChaCha20 का उपयोग काउंटर मोड में एक प्रमुख प्रवाह को प्राप्त करने के लिए किया जाता है जो सादे पाठ के साथ XORed है। सिफरटेक्स्ट और संबंधित डेटा को तब पॉली1305 के एक प्रकार का उपयोग करके प्रमाणित किया जाता है जो पहले दो श्रृंखलाओं को एक में कोडन करता है।

XChaCha20-पॉली1305 - विस्तारित गैर संस्करण
XChaCha20-पॉली1305 निर्माण तथा ChaCha20-पॉली1305 निर्माण का एक विस्तारित 192-बिट गैर संस्करण है, जिसमें ChaCha20 के बजाय XChaCha20 का उपयोग कर रहा है। यादृच्छिक अस्थायी रूप से चुनते समय, XChaCha20-पॉली1305 निर्माण मूल निर्माण की तुलना में बेहतर सुरक्षा की अनुमति देता है। निर्माण के मानकीकरण का प्रारूप प्रयास जुलाई 2020 में समाप्त हो गया था।

साल्सा20-पॉली1305 और एक्ससालसा20-पॉली1305
साल्सा20-पॉली1305 और एक्ससालसा20-पॉली1305 ChaCha20-पॉली1305 और XChaCha20-पॉली1305 एल्गोरिद्म के वेरिएंट हैं, जिसमें ChaCha20 और XChaCha20 के स्थान पर साल्सा20 और एक्ससालसा20 का उपयोग किया गया है। वे NaCl और लिबसोडियम में लागू होते हैं लेकिन मानकीकृत नहीं होते हैं। अभ्यास में चाचा का उपयोग करने वाले वेरिएंट को प्राथमिकता दी जाती है क्योंकि वे सालसा की तुलना में प्रति चक्कर (राउंड) बेहतर विसरण प्रदान करते हैं।

प्रयोग
ChaCha20-पॉली1305 का उपयोग IPsec, SSH, TLS 1.2, DTLS 1.2, TLS 1.3, वायरगार्ड, S/MIME 4.0, OTR v4 और कई अन्य प्रोटोकॉल में किया जाता है। इसका उपयोग सॉफ्टवेयर जैसे .0 में मानक डेटा एन्क्रिप्शन के रूप में किया जाता है। दूसरों के बीच, इसे OpenSSL और लिबसोडियम में लागू किया गया है।

प्रदर्शन
ChaCha20-पॉली1305 आमतौर पर प्रणाली पर अधिक प्रचलित AES-GCM एल्गोरिदम की तुलना में बेहतर प्रदर्शन प्रदान करता है जहां CPU(s) AES-NI निर्देश सेट विस्तार की सुविधा नहीं देता है। परिणामस्वरूप, ChaCha20-पॉली1305 को कभी-कभी AES-GCM पर सुरक्षा के समान स्तर के कारण और मोबाइल उपकरणों से जुड़ी कुछ उपयोग स्थितियों में पसंद किया जाता है, जो ज्यादातर ARM आधारित CPUs का उपयोग करते हैं।

सुरक्षा
ChaCha20-पॉली1305 निर्माण एकल और बहु-उपयोगकर्ता सेटिंग के लिए मानक मॉडल और आदर्श क्रमचय मॉडल में सुरक्षित सिद्ध हुआ है। हालाँकि, GCM के समान, सुरक्षा एन्क्रिप्टेड प्रत्येक संदेश के लिए एक अद्वितीय अस्थायी रूप से चुनने पर निर्भर करती है। AES-GCM की तुलना में, ChaCha20-पॉली1305 के क्रियान्वयन समय के आक्षेप के प्रति कम असुरक्षित है।

यह भी देखें

 * प्रमाणित एन्क्रिप्शन
 * गाल्वा / काउंटर मोड
 * सालसा20
 * पॉली1305

बाहरी संबंध

 * RFC 8439: ChaCha20 and पॉली1305 for IETF Protocols
 * RFC 7634: ChaCha20, पॉली1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec
 * RFC 7905: ChaCha20-पॉली1305 Cipher Suites for Transport Layer Security (TLS)
 * RFC 8103: Using ChaCha20-पॉली1305 Authenticated Encryption in the Cryptographic Message Syntax (CMS)