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

From Vigyanwiki

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


इतिहास

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

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

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

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


विवरण

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

वेरिएंट

XChaCha20-पॉली1305 - विस्तारित गैर संस्करण

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


साल्सा20-पॉली1305 और एक्ससालसा20-पॉली1305

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


प्रयोग

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

प्रदर्शन

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

सुरक्षा

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


संदर्भ

  1. 1.0 1.1 1.2 1.3 Nir, Yoav; Langley, Adam (June 2018). ChaCha20 and Poly1305 for IETF Protocols. doi:10.17487/RFC8439. RFC 8439. Cite error: Invalid <ref> tag; name ":1" defined multiple times with different content
  2. 2.0 2.1 2.2 Nir, Yoav; Langley, Adam (June 2018). "Performance Measurements of ChaCha20". ChaCha20 and Poly1305 for IETF Protocols. sec. B. doi:10.17487/RFC8439. RFC 8439.
  3. 3.0 3.1 Bernstein, D. J. (January 2008). ChaCha, a variant of Salsa20 (PDF). The State of the Art of Stream Ciphers. Vol. 8. pp. 3–5.
  4. Bernstein, Daniel J. (2005), "The Poly1305-AES Message-Authentication Code", Fast Software Encryption, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. 32–49, doi:10.1007/11502760_3, ISBN 978-3-540-26541-2
  5. Langley, Adam (September 2013). ChaCha20 and Poly1305 based Cipher Suites for TLS. I-D draft-agl-tls-chacha20poly1305-00.
  6. Nir, Yoav (27 January 2014). ChaCha20 and Poly1305 for IETF protocols. I-D draft-nir-cfrg-chacha20-poly1305-00.
  7. Langley, Adam; Chang, Wan-Teh; Mavrogiannopoulos, Nikos; Strombergson, Joachim; Josefsson, Simon (24 January 2014). परिवहन परत सुरक्षा के लिए चाचा स्ट्रीम सिफर. I-D draft-mavrogiannopoulos-chacha-tls-01.
  8. Bursztein, Elie (24 April 2014). "Android पर Chrome के लिए HTTPS कनेक्शन की गति बढ़ाना और उसे मज़बूत करना". Google Online Security Blog (in English). Archived from the original on 2016-09-28. Retrieved 2021-12-27.
  9. Miller, Damien. "Super User's BSD Cross Reference: /OpenBSD/usr.bin/ssh/PROTOCOL.chacha20poly1305". bxr.su. Archived from the original on 2013-12-13. Retrieved 2021-12-28.
  10. Miller, Damien (29 November 2013). "ChaCha20 and Poly1305 in OpenSSH" (in British English). Archived from the original on 2013-12-13. Retrieved 2021-12-28.
  11. Nir, Yoav; Langley, Adam (May 2015). ChaCha20 and Poly1305 for IETF Protocols. doi:10.17487/RFC7539. RFC 7539.
  12. 12.0 12.1 Langley, Adam; Chang, Wan-Teh; Mavrogiannopoulos, Nikos; Strombergson, Joachim; Josefsson, Simon (June 2016). ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS). doi:10.17487/RFC7905. RFC 7905.
  13. Nir, Yoav (August 2015). ChaCha20, Poly1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec. doi:10.17487/RFC7634. RFC 7634.
  14. "Do the ChaCha: better mobile performance with cryptography". The Cloudflare Blog (in English). 2015-02-23. Retrieved 2021-12-28.
  15. Nir, Yoav; Langley, Adam (June 2018). ChaCha20 and Poly1305 for IETF Protocols. doi:10.17487/RFC8439. RFC 8439.
  16. Arciszewski, Scott (10 January 2020). XChaCha: eXtended-nonce ChaCha and AEAD_XChaCha20_Poly1305. I-D draft-irtf-cfrg-xchacha.
  17. "NaCl: Networking and Cryptography library - Secret-key authenticated encryption". Archived from the original on 2009-06-30.
  18. "libsodium - प्रमाणित एन्क्रिप्शन". Archived from the original on 2020-08-04.
  19. Donenfeld, Jason A. "प्रोटोकॉल और क्रिप्टोग्राफी - वायरगार्ड". www.wireguard.com (in English). Retrieved 2021-12-28.
  20. Housley, Russ (February 2017). Using ChaCha20-Poly1305 Authenticated Encryption in the Cryptographic Message Syntax (CMS). doi:10.17487/RFC8103. RFC 8103.
  21. OTRv4, OTRv4, 2021-12-25, retrieved 2021-12-28
  22. borg rcreate, borgbackup, 2022-08-03, retrieved 2023-01-28
  23. Degabriele, Jean Paul; Govinden, Jérôme; Günther, Felix; Paterson, Kenneth G. (2021-11-12), "The Security of ChaCha20-Poly1305 in the Multi-User Setting", Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security, New York, NY, USA: Association for Computing Machinery, pp. 1981–2003, doi:10.1145/3460120.3484814, ISBN 978-1-4503-8454-4, retrieved 2021-12-27