चाचा20-पॉली1305 (ChaCha20-Poly1305)
ChaCha20-Poly1305 एक प्रमाणित एन्क्रिप्शन है। अतिरिक्त डेटा (AEAD) एल्गोरिदम के साथ प्रमाणित एन्क्रिप्शन, जो Poly1305 संदेश प्रमाणीकरण कोड के साथ Salsa20#ChaCha वेरिएंट स्ट्रीम सिफर को जोड़ता है। IETF प्रोटोकॉल में इसका उपयोग RFC 8439 में मानकीकृत है।[1] इसमें तेज सॉफ्टवेयर प्रदर्शन है, और हार्डवेयर त्वरण के बिना, आमतौर पर एईएस-जीसीएम से तेज है।[2]
इतिहास
निर्माण के दो बिल्डिंग ब्लॉक्स, एल्गोरिदम Poly1305 और ChaCha20, दोनों स्वतंत्र रूप से डिज़ाइन किए गए थे, 2005 और 2008 में, डैनियल जे बर्नस्टीन द्वारा।[3][4]
2013-2014 में, मूल ChaCha20 एल्गोरिथ्म का एक प्रकार (32-बिट काउंटर और 96-बिट नॉन का उपयोग करके) और मूल Poly1305 (2 स्ट्रिंग्स को प्रमाणित करना) के एक संस्करण को IETF ड्राफ्ट में जोड़ा गया था[5][6] परिवहन परत सुरक्षा और डेटाग्राम ट्रांसपोर्ट लेयर सुरक्षा में इस्तेमाल होने के लिए,[7] और Google द्वारा सुरक्षा और प्रदर्शन कारणों से एक नए समर्थित सिफर के रूप में चुना गया है।[8] TLS के लिए Google के अपनाने के तुरंत बाद, ChaCha20, Poly1305 और संयुक्त AEAD मोड को OpenSSH के माध्यम से जोड़ा जाता हैchacha20-poly1305@openssh.com
प्रमाणित एन्क्रिप्शन सिफर[9][10] लेकिन ChaCha20 एल्गोरिथम के लिए मूल 64-बिट काउंटर और 64-बिट नॉन को रखा।
2015 में, AEAD एल्गोरिथ्म को RFC 7539 में मानकीकृत किया गया है।[11] और RFC 7905[12] TLS 1.2 और DTLS 1.2 और RFC 7634 में उपयोग करने के लिए[13] IPsec में उपयोग करने के लिए। उसी वर्ष, यह क्लाउडफ्लेयर में एक वैकल्पिक सिफरसुइट के रूप में एकीकृत है।[14] जून 2018 में, RFC 7539 को अपडेट किया गया और उसकी जगह RFC 8439 ने ले ली।[15]
विवरण
ChaCha20-Poly1305 एल्गोरिथ्म जैसा कि RFC 8439 में वर्णित है[1]128-बिट (टैग आकार) के सिफरटेक्स्ट विस्तार के साथ एक प्लेनटेक्स्ट को एन्क्रिप्ट करने के लिए इनपुट के रूप में 256-बिट कुंजी और 96-बिट क्रिप्टोग्राफ़िक अस्थायी लेता है। ChaCha20-Poly1305 निर्माण में, ChaCha20 का उपयोग काउंटर मोड में एक प्रमुख धारा को प्राप्त करने के लिए किया जाता है जो कि प्लेटेक्स्ट के साथ बिटवाइज़ ऑपरेशन #XOR है। सिफरटेक्स्ट और संबंधित डेटा को तब Poly1305 के एक संस्करण का उपयोग करके प्रमाणित किया जाता है जो पहले दो स्ट्रिंग्स को एक में एन्कोड करता है।
वेरिएंट
XChaCha20-Poly1305 - विस्तारित गैर संस्करण
XChaCha20-Poly1305 निर्माण ChaCha20-Poly1305 निर्माण का एक विस्तारित 192-बिट नॉन वेरिएंट है, जिसमें साल्सा20#चाचा संस्करण के बजाय साल्सा20#XChaCha का उपयोग किया गया है। बेतरतीब ढंग से गैर चुनते समय, XChaCha20-Poly1305 निर्माण मूल निर्माण की तुलना में बेहतर सुरक्षा की अनुमति देता है। निर्माण के मानकीकरण का मसौदा प्रयास जुलाई 2020 में समाप्त हो गया।[16]
साल्सा20-पॉली1305 और एक्ससालसा20-पॉली1305
Salsa20-Poly1305 और XSalsa20-Poly1305 ChaCha20-Poly1305 और #XChaCha20-Poly1305 - विस्तारित नॉन वैरिएंट के वेरिएंट हैं। XChaCha20-Poly1305 एल्गोरिदम, ChaCha20 और XChaCha के स्थान पर 192-बिट नॉन के साथ Salsa20 और Salsa20#XSalsa20 का उपयोग करते हुए 20. वे NaCl (सॉफ्टवेयर) में लागू होते हैं[17] और लिबसोडियम[18] लेकिन मानकीकृत नहीं। अभ्यास में चाचा का उपयोग करने वाले रूपों को प्राथमिकता दी जाती है क्योंकि वे सालसा की तुलना में बेहतर भ्रम और प्रसार # प्रसार प्रति दौर प्रदान करते हैं।[3]
प्रयोग
ChaCha20-Poly1305 इप्सेक्ट्रेस में प्रयोग किया जाता है,[2]एसएसएच,[1]ट्रांसपोर्ट लेयर सिक्योरिटी#TLS 1.2|TLS 1.2, डेटाग्राम ट्रांसपोर्ट लेयर सिक्योरिटी 1.2, ट्रांसपोर्ट लेयर सिक्योरिटी#TLS 1.3|TLS 1.3,[12],[1] वायरगार्ड,[19] एस/माइम|एस/माइम 4.0,[20] -द-रिकॉर्ड मैसेजिंग v4[21] और कई अन्य प्रोटोकॉल। इसका उपयोग Borg_(backup_software)|.0 जैसे सॉफ्टवेयर में किया जाता है[22] मानक डेटा एन्क्रिप्शन के रूप में। दूसरों के बीच, इसे ओपनएसएसएल और लिबसोडियम में लागू किया गया है।
प्रदर्शन
ChaCha20-Poly1305 आमतौर पर सिस्टम पर अधिक प्रचलित उन्नत एन्क्रिप्शन मानक-गैलोइस/काउंटर मोड एल्गोरिदम की तुलना में बेहतर प्रदर्शन प्रदान करता है जहां सीपीयू एईएस निर्देश सेट की सुविधा नहीं देता है। एईएस-एनआई निर्देश सेट एक्सटेंशन।[2]नतीजतन, ChaCha20-Poly1305 को कभी-कभी एईएस-जीसीएम पर सुरक्षा के समान स्तर के कारण और मोबाइल उपकरणों से जुड़े कुछ उपयोग मामलों में पसंद किया जाता है, जो ज्यादातर एआरएम वास्तुकला सीपीयू का उपयोग करते हैं।
सुरक्षा
ChaCha20-Poly1305 निर्माण एकल और बहु-उपयोगकर्ता सेटिंग के लिए मानक मॉडल (क्रिप्टोग्राफी) और रैंडम ऑरेकल#आदर्श क्रमपरिवर्तन में सुरक्षित साबित हुआ है।[23] हालाँकि, गैलोज़/काउंटर मोड के समान, सुरक्षा एन्क्रिप्टेड प्रत्येक संदेश के लिए एक अद्वितीय क्रिप्टोग्राफ़िक नॉन चुनने पर निर्भर करती है। AES-GCM की तुलना में, ChaCha20-Poly1305 का क्रियान्वयन समय के हमलों के प्रति कम संवेदनशील है।
यह भी देखें
- प्रमाणित एन्क्रिप्शन
- गाल्वा / काउंटर मोड
- सालसा20
- पॉली1305
बाहरी संबंध
- RFC 8439: ChaCha20 and Poly1305 for IETF Protocols
- RFC 7634: ChaCha20, Poly1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec
- RFC 7905: ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS)
- RFC 8103: Using ChaCha20-Poly1305 Authenticated Encryption in the Cryptographic Message Syntax (CMS)
संदर्भ
- ↑ 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.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.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.
- ↑ 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
- ↑ Langley, Adam (September 2013). ChaCha20 and Poly1305 based Cipher Suites for TLS. I-D draft-agl-tls-chacha20poly1305-00.
- ↑ Nir, Yoav (27 January 2014). ChaCha20 and Poly1305 for IETF protocols. I-D draft-nir-cfrg-chacha20-poly1305-00.
- ↑ Langley, Adam; Chang, Wan-Teh; Mavrogiannopoulos, Nikos; Strombergson, Joachim; Josefsson, Simon (24 January 2014). परिवहन परत सुरक्षा के लिए चाचा स्ट्रीम सिफर. I-D draft-mavrogiannopoulos-chacha-tls-01.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ Nir, Yoav; Langley, Adam (May 2015). ChaCha20 and Poly1305 for IETF Protocols. doi:10.17487/RFC7539. RFC 7539.
- ↑ 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.
- ↑ Nir, Yoav (August 2015). ChaCha20, Poly1305, and Their Use in the Internet Key Exchange Protocol (IKE) and IPsec. doi:10.17487/RFC7634. RFC 7634.
- ↑ "Do the ChaCha: better mobile performance with cryptography". The Cloudflare Blog (in English). 2015-02-23. Retrieved 2021-12-28.
- ↑ Nir, Yoav; Langley, Adam (June 2018). ChaCha20 and Poly1305 for IETF Protocols. doi:10.17487/RFC8439. RFC 8439.
- ↑ Arciszewski, Scott (10 January 2020). XChaCha: eXtended-nonce ChaCha and AEAD_XChaCha20_Poly1305. I-D draft-irtf-cfrg-xchacha.
- ↑ "NaCl: Networking and Cryptography library - Secret-key authenticated encryption". Archived from the original on 2009-06-30.
- ↑ "libsodium - प्रमाणित एन्क्रिप्शन". Archived from the original on 2020-08-04.
- ↑ Donenfeld, Jason A. "प्रोटोकॉल और क्रिप्टोग्राफी - वायरगार्ड". www.wireguard.com (in English). Retrieved 2021-12-28.
- ↑ Housley, Russ (February 2017). Using ChaCha20-Poly1305 Authenticated Encryption in the Cryptographic Message Syntax (CMS). doi:10.17487/RFC8103. RFC 8103.
- ↑ OTRv4, OTRv4, 2021-12-25, retrieved 2021-12-28
- ↑ borg rcreate, borgbackup, 2022-08-03, retrieved 2023-01-28
- ↑ 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