सर्पेन्ट (सिफर): Difference between revisions
No edit summary |
No edit summary |
||
(21 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Use dmy dates|date= | {{Use dmy dates|date=अक्टूबर 2019}}{{Infobox block cipher | ||
| name = | | name = सर्पेंट | ||
| image = [[File:Serpent-linearfunction.svg|200px|center]] | | image = [[File:Serpent-linearfunction.svg|200px|center]] | ||
| caption = | | caption = सर्पेंट की रेखीय मिश्रण अवस्था | ||
| designers = [[ | | designers = [[रॉस जे. एंडरसन|रॉस एंडरसन]], [[एली बिहम]], [[लार्स नुडसन]] | ||
| publish date = 1998-08-21 | | publish date = 1998-08-21 | ||
| derived from = [[ | | derived from = [[स्क्वायर (सिफर)|स्क्वायर]] | ||
| related to = | | related to = | ||
| certification = [[ | | certification = [[एईएस फाइनलिस्ट]] | ||
| key size = 128, 192 or 256 | | key size = 128, 192 or 256 बिट्स | ||
| block size = 128 | | block size = 128 बिट्स | ||
| structure = [[ | | structure = [[प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क]] | ||
| rounds = 32 | | rounds = 32 | ||
| cryptanalysis = | | cryptanalysis = | ||
सभी सार्वजनिक रूप से ज्ञात हमले कम्प्यूटेशनल रूप से अव्यावहारिक हैं, और उनमें से कोई भी पूरे 32-राउंड सर्पेंट को प्रभावित नहीं करता है। 2011 के एक हमले ने 2<sup>116</sup> ज्ञात प्लेनटेक्स्ट, 2<sup>107.5</sup> समय और 2<sup>104</sup> मेमोरी के साथ 11 राउंड सर्पेंट (सभी प्रमुख आकार) तोड़ दिए (जैसा कि इसमें वर्णित है <रेफरी नाम = एसीएसपी-2011 />)। | |||
इसी पेपर में दो हमलों का भी वर्णन है जो सर्पेंट -256 के 12 चक्कर तोड़ते हैं। पहले के लिए 2<sup>118</sup> ज्ञात प्लेनटेक्स्ट, 2<sup>228.8</sup> समय और 2<sup>228</sup> मेमोरी की आवश्यकता होती है। दूसरे हमले के लिए 2<sup>116</sup> ज्ञात प्लेनटेक्स्ट और 2<sup>121</sup> मेमोरी की आवश्यकता होती है लेकिन इसके लिए 2<sup>237.5</sup> समय की भी आवश्यकता होती है। | |||
}} | }} | ||
सर्पेंट [[सममित कुंजी]] [[ब्लॉक सिफर]] है जो [[उन्नत एन्क्रिप्शन मानक प्रक्रिया]] (एईएस) प्रतियोगिता में | सर्पेंट [[सममित कुंजी|सममित की]] [[ब्लॉक सिफर]] है जो [[उन्नत एन्क्रिप्शन मानक प्रक्रिया]] (एईएस) प्रतियोगिता में निणार्यक था, जहां इसे [[रिजंडैल]] के बाद दूसरा स्थान दिया गया था।<ref name=":1">{{Cite journal |last1=Nechvatal |first1=J. |last2=Barker |first2=E. |last3=Bassham |first3=L. |last4=Burr |first4=W. |last5=Dworkin |first5=M. |last6=Foti |first6=J. |last7=Roback |first7=E. |date=May 2001 |title=उन्नत एन्क्रिप्शन मानक (एईएस) के विकास पर रिपोर्ट|url=https://doi.org/10.6028/jres.106.023 |journal=Journal of Research of the National Institute of Standards and Technology |volume=106 |issue=3 |pages=511–577 |doi=10.6028/jres.106.023 |issn=1044-677X |pmc=4863838 |pmid=27500035}}</ref> सर्पेंट को [[रॉस एंडरसन]], [[एली बिहम]] और [[लार्स नुडसन]] द्वारा डिज़ाइन किया गया था ।<ref>{{Cite web |title=नागिन होम पेज|url=https://www.cl.cam.ac.uk/~rja14/serpent.html |url-status=live}}</ref> | ||
अन्य उन्नत एन्क्रिप्शन मानक प्रस्तुतियाँ की | अन्य उन्नत एन्क्रिप्शन मानक प्रस्तुतियाँ की समान , सर्पेंट के पास [[ब्लॉक आकार (क्रिप्टोग्राफी)]] 128 बिट्स का है और 128, 192 या 256 बिट्स के प्रमुख आकार का समर्थन करता है।<ref name=":0">{{cite web | ||
| url=http://www.cl.cam.ac.uk/~rja14/serpent.html | | url=http://www.cl.cam.ac.uk/~rja14/serpent.html | ||
| title=Serpent: A Candidate Block Cipher for the Advanced Encryption Standard | | title=Serpent: A Candidate Block Cipher for the Advanced Encryption Standard | ||
Line 27: | Line 27: | ||
| date=2006-10-23 | | date=2006-10-23 | ||
| publisher=[[University of Cambridge Computer Laboratory]] | | publisher=[[University of Cambridge Computer Laboratory]] | ||
| access-date=2013-01-14}}</ref> [[ सिफ़र |सिफ़र]] 32-राउंड प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क है जो चार 32-बिट [[वर्ड (कंप्यूटर आर्किटेक्चर)]] के ब्लॉक पर | | access-date=2013-01-14}}</ref> [[ सिफ़र |सिफ़र]] 32-राउंड प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क है जो चार 32-बिट [[वर्ड (कंप्यूटर आर्किटेक्चर)]] के ब्लॉक पर कार्य करता है। प्रत्येक दौर समानांतर में 32 बार आठ 4-बिट से 4-बिट S[[एस-बॉक्स|-बॉक्स]] में से एक पर लागू होता है। सर्पेंट को डिजाइन किया गया था जिससे कि 32 [[बिट स्लाइसिंग|बिट स्लाइस]] का उपयोग करके [[समानांतर कंप्यूटिंग]] में सभी कार्यों को निष्पादित किया जा सकेता है। यह समानता को अधिकतम करता है, किन्तु [[डेटा एन्क्रिप्शन मानक]] पर किए गए व्यापक [[क्रिप्ट विश्लेषण]] कार्य के उपयोग की भी अनुमति देता है। | ||
सर्पेंट ने सुरक्षा के लिए रूढ़िवादी दृष्टिकोण अपनाया, बड़े सुरक्षा सीमा का चयन | सर्पेंट ने सुरक्षा के लिए रूढ़िवादी दृष्टिकोण अपनाया, बड़े सुरक्षा सीमा का चयन किया गया था। डिजाइनरों ने 16 राउंड को ज्ञात प्रकार के अटैक के लिए पर्याप्त माना, किन्तु 32 राउंड को क्रिप्ट विश्लेषण में भविष्य की खोजों के विरुद्ध बीमा के रूप में निर्दिष्ट किया।<ref>{{Cite web |title=नागिन.pdf|url=https://www.cl.cam.ac.uk/~rja14/Papers/नागिन.pdf|access-date=25 April 2022}}</ref> एईएस प्रतियोगिता पर आधिकारिक एनआईएसटी रिपोर्ट ने सर्पेंट को आरसी6 और रिजेंडेल (वर्तमान में एईएस) के पर्याप्त सुरक्षा सीमा के विपरीत [[मार्स]] और [[ट्वोफिश]] के साथ उच्च सुरक्षा सीमा के रूप में वर्गीकृत किया।<ref name=":1" />अंतिम मतदान में, सर्पेंट के अंतिम में सबसे कम नकारात्मक मतदान थे, किन्तु कुल मिलाकर दूसरा स्थान प्राप्त किया क्योंकि रिजेंडेल के पास अधिक सकारात्मक मतदान थे, निर्णायक कारक यह था कि रिजेंडेल ने कहीं अधिक कुशल सॉफ्टवेयर कार्यान्वयन की अनुमति दी थी। | ||
सर्पेंट सिफर एल्गोरिथम सार्वजनिक डोमेन में है और इसका [[पेटेंट]] नहीं कराया गया है।<ref>[http://www.cl.cam.ac.uk/~rja14/serpentpr.html Serpent Holds the Key to Internet Security – Finalists in world-wide encryption competition announced] (1999)</ref> संदर्भ कोड [[सार्वजनिक डोमेन सॉफ्टवेयर]] है और अनुकूलित कोड [[GPL|जीपीएल]] के अंतर्गत है।<ref>[http://www.cl.cam.ac.uk/~rja14/serpent.html SERPENT – A Candidate Block Cipher for the Advanced Encryption Standard ] ''"Serpent is now completely in the public domain, and we impose no restrictions on its use. This was announced on the 21st August at the First AES Candidate Conference. The optimised implementations in the submission package are now under the General Public License (GPL), although some comments in the code still say otherwise. You are welcome to use Serpent for any application. If you do use it, we would appreciate it if you would let us know!"'' (1999)</ref> इसके उपयोग के संबंध में कोई प्रतिबंध या बाधा नहीं है। परिणाम स्वरुप , कोई भी लाइसेंस शुल्क का भुगतान किए बिना सर्पेंट को अपने सॉफ़्टवेयर (या हार्डवेयर कार्यान्वयन) में सम्मलित करने के लिए स्वतंत्र है। | सर्पेंट सिफर एल्गोरिथम सार्वजनिक डोमेन में है और इसका [[पेटेंट]] नहीं कराया गया है।<ref>[http://www.cl.cam.ac.uk/~rja14/serpentpr.html Serpent Holds the Key to Internet Security – Finalists in world-wide encryption competition announced] (1999)</ref> संदर्भ कोड [[सार्वजनिक डोमेन सॉफ्टवेयर]] है और अनुकूलित कोड [[GPL|जीपीएल]] के अंतर्गत है।<ref>[http://www.cl.cam.ac.uk/~rja14/serpent.html SERPENT – A Candidate Block Cipher for the Advanced Encryption Standard ] ''"Serpent is now completely in the public domain, and we impose no restrictions on its use. This was announced on the 21st August at the First AES Candidate Conference. The optimised implementations in the submission package are now under the General Public License (GPL), although some comments in the code still say otherwise. You are welcome to use Serpent for any application. If you do use it, we would appreciate it if you would let us know!"'' (1999)</ref> इसके उपयोग के संबंध में कोई प्रतिबंध या बाधा नहीं है। परिणाम स्वरुप , कोई भी लाइसेंस शुल्क का भुगतान किए बिना सर्पेंट को अपने सॉफ़्टवेयर (या हार्डवेयर कार्यान्वयन) में सम्मलित करने के लिए स्वतंत्र है। | ||
== मुख्य अनुसूची == | == मुख्य अनुसूची == | ||
सर्पेंट की अनुसूची में 3 मुख्य चरण होते हैं। पहले चरण में यदि आवश्यक हो तो पैडिंग जोड़कर | सर्पेंट की अनुसूची में 3 मुख्य चरण होते हैं। पहले चरण में यदि आवश्यक हो तो पैडिंग जोड़कर की को आरंभीकृत किया जाता है। यह 256-बिट्स की लंबी की के लिए लघु की मानचित्र बनाने के लिए किया जाता है, "1" बिट को छोटी की के अंत में "0" बिट्स के बाद जोड़ा जाता है जब तक कि छोटी की को लंबी की लंबाई में मानचित्र नहीं किया जाता है।<ref name=":0" /> | ||
अगले चरण में, पहले से आरंभ की गई | अगले चरण में, "परेकीस " पहले से आरंभ की गई की का उपयोग करके प्राप्त की जाती हैं। 32-बिट प्रमुख भाग एक्सओरेड, एफआरएसी जो कि [[ सुनहरा अनुपात |सुवर्णमय अनुपात]] का अंश है और प्रमुख भागों के साथ राउंड सूचकांक एक्सओरेड है, [[एकमात्र|एक्सओआर]] ऑपरेशन के परिणाम को 11 से बाईं ओर घुमाया जाता है। एफआरएसी और राउंड इंडेक्स को राउंड के पर्यन्त की बिट्स के समान वितरण को प्राप्त करने के लिए जोड़ा गया था।<ref name=":0" /> | ||
अंत में | अंत में "उप की" पहले से उत्पन्न "परेकीस " से ली गई हैं। इसका परिणाम कुल 33 128-बिट "उप की" में होता है।<ref name=":0" /> | ||
अंत में | अंत में की बिट्स को सही कॉलम में रखने के लिए राउंड की या "उप की" को "प्रारंभिक क्रमपरिवर्तन आईपी" में रखा जाता है।<ref name=":0" /> | ||
=== | === की अनुसूची स्यूडो कोड === | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
#define FRAC 0x9e3779b9 // fractional part of the golden ratio | #define FRAC 0x9e3779b9 // fractional part of the golden ratio | ||
Line 87: | Line 87: | ||
== एस-बॉक्स == | == एस-बॉक्स == | ||
सर्पेंट | सर्पेंट S-बॉक्स 4-बिट क्रमपरिवर्तन हैं और निम्नलिखित गुणों के अधीन हैं। | ||
* 1-बिट इनपुट अंतर कभी भी 1-बिट आउटपुट अंतर नहीं | * 1-बिट इनपुट अंतर कभी भी 1-बिट आउटपुट अंतर की ओर नहीं ले जाएगा, एक विभेदक विशेषता में 1:4 या उससे कम की संभावना होती है।<ref name="algeb-2009" /> | ||
* रैखिक विशेषताओं की संभावना | * रैखिक विशेषताओं की संभावना 1:2 और 1:4 के बीच होती है, इनपुट और आउटपुट बिट्स के बीच रैखिक संबंध की संभावना 1:2 और 1:8 के बीच होती है।<ref name="algeb-2009" /> | ||
* इनपुट बिट्स के कार्य के रूप में आउटपुट बिट्स का गैर-रैखिक क्रम 3 है। | * इनपुट बिट्स के कार्य के रूप में आउटपुट बिट्स का गैर-रैखिक क्रम 3 है। चूंकि ऐसे आउटपुट बिट्स पाए गए हैं जो इनपुट बिट्स के कार्य में केवल 2 का क्रम रखते हैं।<ref name="algeb-2009" /> | ||
डेटा एन्क्रिप्शन मानक | डेटा एन्क्रिप्शन मानक S-बॉक्स की 32 पंक्तियों के आधार पर सर्पेंट S-बॉक्स का निर्माण किया गया है। इन्हें अदला-बदली प्रविष्टियों द्वारा रूपांतरित किया गया था, जिसके परिणामस्वरूप वांछित गुणों वाले सरणियों को सर्पेंट S-बॉक्स के रूप में संग्रहीत किया गया था। यह प्रक्रिया तब तक पुनरावृत्त हुई जब तक कि कुल 8 S-बॉक्स नहीं मिल गए। इस प्रक्रिया में निम्नलिखित <code>"sboxesforserpent"</code> की का उपयोग किया गया था।<ref name=":0" /> | ||
Line 101: | Line 101: | ||
=== प्रारंभिक क्रमचय (आईपी) === | === प्रारंभिक क्रमचय (आईपी) === | ||
प्रारंभिक क्रमचय 128 बिट्स पर समय में बिट्स | प्रारंभिक क्रमचय 128 बिट्स पर समय में बिट्स रोटेट पर कार्य करता है।<syntaxhighlight lang="cpp"> | ||
for i in 0 .. 127 | for i in 0 .. 127 | ||
swap( bit(i), bit((32 * i) % 127) ) | swap( bit(i), bit((32 * i) % 127) ) | ||
Line 108: | Line 108: | ||
=== अंतिम क्रमपरिवर्तन (एफपी) === | === अंतिम क्रमपरिवर्तन (एफपी) === | ||
अंतिम क्रमपरिवर्तन 128 बिट्स पर | अंतिम क्रमपरिवर्तन 128 बिट्स पर कार्य करता है जो समय में बिट्स को रोटेट करता है।<syntaxhighlight lang="cpp"> | ||
for i in 0 .. 127 | for i in 0 .. 127 | ||
swap( bit(i), bit((2 * i) % 127) ) | swap( bit(i), bit((2 * i) % 127) ) | ||
Line 115: | Line 115: | ||
=== रैखिक परिवर्तन (एलटी) === | === रैखिक परिवर्तन (एलटी) === | ||
एक्सओआर, | एक्सओआर, S-बॉक्स, बिट शिफ़्ट बाएँ और बिट रोटेट लेफ्ट ऑपरेशंस से मिलकर बनता है। ये ऑपरेशन 4 32-बिट शब्दों पर किए जाते हैं।<syntaxhighlight lang="cpp"> | ||
for (short i = 0; i < 4; i++) { | for (short i = 0; i < 4; i++) { | ||
X[i] = S[i][B[i] ^ K[i]]; | X[i] = S[i][B[i] ^ K[i]]; | ||
Line 137: | Line 137: | ||
== रिजेंडेल | == रिजेंडेल विरूद्ध सर्प == | ||
रिजेंडेल दस, बारह | रिजेंडेल की आकार के आधार पर दस, बारह या चौदह राउंड के साथ एक प्रतिस्थापन-रैखिक परिवर्तन नेटवर्क है और स्वतंत्र रूप से निर्दिष्ट 128 बिट्स, 192 बिट्स या 256 बिट्स के प्रमुख आकारों के साथ सर्पेंट प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क है जिसमें एक अनुकूलित कार्यान्वयन को सरल बनाने के लिए बत्तीस राउंड और एक प्रारंभिक और अंतिम क्रमचय है। रिजेंडेल में राउंड कार्य में तीन भाग होते हैं। गैर-रेखीय परत, रैखिक मिश्रण परत और की -मिश्रण एक्सओआर परत। सर्पेंट में राउंड फ़ंक्शन में ही 4 × 4 S-बॉक्स के की -मिश्रण एक्सओआर बत्तीस समानांतर अनुप्रयोग होते हैं और अंतिम दौर को छोड़कर रैखिक परिवर्तन होता है, जिसमें अन्य की -मिश्रण एक्सओआर रैखिक परिवर्तन को बदल देता है । रिजेंडेल में नॉनलाइनियर परत 8 × 8 S-बॉक्स का उपयोग करती है जबकि सर्पेंट आठ अलग-अलग 4 × 4 S-बॉक्स का उपयोग करता है। 32 राउंड का अर्थ है कि रिजेंडेल की तुलना में सर्पेंट के पास उच्च सुरक्षा सीमा है; चूँकि, 10 राउंड के साथ रिजेंडेल छोटे ब्लॉकों के लिए तेज़ और सरल है।<ref>{{cite journal | ||
| title=The Twofish Team's Final Comments on AES Selection | | title=The Twofish Team's Final Comments on AES Selection | ||
|author1=Bruce Schneier |author2=John Kelsey |author3=Doug Whiting |author4=David Wagner |author5=Chris Hall. Niels Fergusonk |author6=Tadayoshi Kohno |author7=Mike Stay | year=2000 | |author1=Bruce Schneier |author2=John Kelsey |author3=Doug Whiting |author4=David Wagner |author5=Chris Hall. Niels Fergusonk |author6=Tadayoshi Kohno |author7=Mike Stay | year=2000 | ||
| url=https://www.schneier.com/paper-twofish-final.pdf}}</ref> इसलिए, एईएस प्रतियोगिता में रिजेंडेल को विजेता के रूप में चुना गया था। | | url=https://www.schneier.com/paper-twofish-final.pdf}}</ref> इसलिए, एईएस प्रतियोगिता में रिजेंडेल को विजेता के रूप में चुना गया था। | ||
== | ==सर्पेंट-0 विरूद्ध सर्पेंट-1== | ||
मूल सर्पेंट, सर्पेंट-0, [[फास्ट सॉफ्टवेयर एन्क्रिप्शन]] पर 5वीं कार्यशाला में प्रस्तुत किया गया था, किन्तु कुछ | मूल सर्पेंट, सर्पेंट-0, [[फास्ट सॉफ्टवेयर एन्क्रिप्शन]] पर 5वीं कार्यशाला में प्रस्तुत किया गया था, किन्तु सर्पेंट-1 का कुछ सीमा तक संशोधित संस्करण एईएस प्रतियोगिता में प्रस्तुत किया गया था। एईएस प्रस्तुतियाँ पेपर परिवर्तनों पर चर्चा करता है, जिसमें की -निर्धारण अंतर सम्मलित हैं। | ||
== सुरक्षा == | == सुरक्षा == | ||
एक्सएसएल अटैक , यदि प्रभावी होता है, तो सर्पेंट को दुर्बल कर देगा (चूंकि उतना नहीं जितना कि यह रिजेंडेल को दुर्बल करेगा, जो उन्नत एन्क्रिप्शन मानक बन गया)। चूंकि, कई क्रिप्टो विश्लेषकों का मानना है कि एक बार कार्यान्वयन संबंधी विचारों को ध्यान में रखा जाता है तो [[एक्सएसएल हमला|एक्सएसएल अटैक]] क्रूर बल के अटैक से अधिक महंगा होगा। | |||
2000 में, कोहनो एट अल द्वारा पेपर। सर्पेंट के 32 राउंड में से 6 के विरुद्ध | 2000 में, कोहनो एट अल द्वारा पेपर। सर्पेंट के 32 राउंड में से 6 के विरुद्ध बीच-बीच में अटैक और सर्पेंट में 32 राउंड में से 9 के विरुद्ध प्रवर्धित प्रतीगामी अटैक प्रस्तुत करता है।<ref>{{cite journal | ||
| title=Preliminary Cryptanalysis of Reduced-Round Serpent | | title=Preliminary Cryptanalysis of Reduced-Round Serpent | ||
| url=https://www.schneier.com/paper-serpent-aes.html | | url=https://www.schneier.com/paper-serpent-aes.html | ||
|author1=Tadayoshi Kohno |author2=John Kelsey |author3=Bruce Schneier |name-list-style=amp | year=2000}}</ref> | |author1=Tadayoshi Kohno |author2=John Kelsey |author3=Bruce Schneier |name-list-style=amp | year=2000}}</ref> | ||
एली बिहाम, [[ऑर डंकलमैन]] और नाथन केलर द्वारा 2001 का | |||
एली बिहाम, [[ऑर डंकलमैन]] और नाथन केलर द्वारा 2001 का अटैक रेखीय क्रिप्ट अटैक प्रस्तुत करता है जो 2<sup>118</sup> ज्ञात सादे पाठ के साथ सर्पेंट -128 के 32 राउंड में से 10 को तोड़ता है और 2<sup>89</sup> समय और सर्पेंट -192/256 के 11 राउंड को 2<sup>118</sup> ज्ञात सादे पाठ और 2<sup>187</sup> समय के साथ तोड़ता है।<ref name="linear-2001">{{cite journal | |||
| title=Linear Cryptanalysis of Reduced Round Serpent | | title=Linear Cryptanalysis of Reduced Round Serpent | ||
|author1=Eli Biham, [[Orr Dunkelman]] |author2=Nathan Keller | |author1=Eli Biham, [[Orr Dunkelman]] |author2=Nathan Keller | ||
Line 159: | Line 160: | ||
| publisher=[[Fast Software Encryption|FSE]] 2001 | | publisher=[[Fast Software Encryption|FSE]] 2001 | ||
|citeseerx=10.1.1.78.6148 }}</ref> | |citeseerx=10.1.1.78.6148 }}</ref> | ||
2009 के पेपर में देखा गया है कि सर्पेंट | |||
2009 के पेपर में देखा गया है कि सर्पेंट S-बॉक्स का गैर-रैखिक क्रम 3 नहीं था जैसा कि डिजाइनरों द्वारा प्रमाणित किया गया था।<ref name="algeb-2009">{{cite journal | |||
| title=On Algebraic Relations of Serpent S-boxes | | title=On Algebraic Relations of Serpent S-boxes | ||
|author1=Bhupendra Singh |author2=Lexy Alexander |author3=Sanjay Burman | year= 2009 | |author1=Bhupendra Singh |author2=Lexy Alexander |author3=Sanjay Burman | year= 2009 | ||
| url= https://eprint.iacr.org/2009/038.pdf}}</ref> | | url= https://eprint.iacr.org/2009/038.pdf}}</ref> | ||
होंगजुन वू, हुआक्सिओनग वांग और फुओंग हा गुयेन द्वारा 2011 | |||
होंगजुन वू, हुआक्सिओनग वांग और फुओंग हा गुयेन द्वारा 2011 के एक अटैक में, रैखिक क्रिप्टैनालिसिस का उपयोग करते हुए, 2<sup>116</sup> ज्ञात सादे पाठ, 2<sup>107.5</sup> समय और 2<sup>104</sup> मेमोरी के साथ सर्पेंट-128 के 11 राउंड को तोड़ता है ।<ref name="acisp-2011">{{cite book | |||
| chapter=Improving the Algorithm 2 in Multidimensional Linear Cryptanalysis | | chapter=Improving the Algorithm 2 in Multidimensional Linear Cryptanalysis | ||
|author1=Huaxiong Wang, Hongjun Wu |title=सूचना सुरक्षा और गोपनीयता|volume=6812 |pages=61–74 |author2=Phuong Ha Nguyen | |author1=Huaxiong Wang, Hongjun Wu |title=सूचना सुरक्षा और गोपनीयता|volume=6812 |pages=61–74 |author2=Phuong Ha Nguyen | ||
Line 170: | Line 173: | ||
| chapter-url=http://www3.ntu.edu.sg/home/wuhj/research/publications/2011_ACISP_MLC.pdf | | chapter-url=http://www3.ntu.edu.sg/home/wuhj/research/publications/2011_ACISP_MLC.pdf | ||
| doi=10.1007/978-3-642-22497-3_5 |series=Lecture Notes in Computer Science |isbn=978-3-642-22496-6 }}</ref> | | doi=10.1007/978-3-642-22497-3_5 |series=Lecture Notes in Computer Science |isbn=978-3-642-22496-6 }}</ref> | ||
इसी पेपर में दो | |||
इसी पेपर में दो अटैक का भी वर्णन है जो सर्प-256 के 12 चक्कर तोड़ते हैं। पहले के लिए 2<sup>118</sup> ज्ञात सादे पाठ, 2<sup>228.8</sup> समय और 2<sup>228</sup> मेमोरी की आवश्यकता होती है। दूसरे अटैक के लिए 2<sup>116</sup> ज्ञात सादे पाठ और 2<sup>121</sup> मेमोरी की आवश्यकता होती है किन्तु इसके लिए 2<sup>237.5</sup> समय की भी आवश्यकता होती है। | |||
== यह भी देखें == | == यह भी देखें == | ||
* [[ | * [[टाइगर]] - एक ही लेखक द्वारा हैश फ़ंक्शन | ||
== फुटनोट्स == | == फुटनोट्स == | ||
Line 215: | Line 219: | ||
{{Cryptography navbox|block}} | {{Cryptography navbox|block}} | ||
[[Category: | [[Category:Articles with invalid date parameter in template]] | ||
[[Category:Block ciphers]] | |||
[[Category:CS1 errors]] | |||
[[Category:CS1 maint]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 11/05/2023]] | [[Category:Created On 11/05/2023]] | ||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Use dmy dates from अक्टूबर 2019]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:नि]] | |||
[[Category:ब्लॉक सिफर]] | |||
[[Category:मुफ्त सॉफ्टवेयर]] | |||
[[Category:सोर्स कोड के साथ पब्लिक डोमेन सॉफ्टवेयर]] |
Latest revision as of 11:09, 30 May 2023
General | |
---|---|
Designers | रॉस एंडरसन, एली बिहम, लार्स नुडसन |
First published | 1998-08-21 |
Derived from | स्क्वायर |
Certification | एईएस फाइनलिस्ट |
Cipher detail | |
Key sizes | 128, 192 or 256 बिट्स |
Block sizes | 128 बिट्स |
Structure | प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क |
Rounds | 32 |
Best public cryptanalysis | |
सभी सार्वजनिक रूप से ज्ञात हमले कम्प्यूटेशनल रूप से अव्यावहारिक हैं, और उनमें से कोई भी पूरे 32-राउंड सर्पेंट को प्रभावित नहीं करता है। 2011 के एक हमले ने 2116 ज्ञात प्लेनटेक्स्ट, 2107.5 समय और 2104 मेमोरी के साथ 11 राउंड सर्पेंट (सभी प्रमुख आकार) तोड़ दिए (जैसा कि इसमें वर्णित है <रेफरी नाम = एसीएसपी-2011 />)। इसी पेपर में दो हमलों का भी वर्णन है जो सर्पेंट -256 के 12 चक्कर तोड़ते हैं। पहले के लिए 2118 ज्ञात प्लेनटेक्स्ट, 2228.8 समय और 2228 मेमोरी की आवश्यकता होती है। दूसरे हमले के लिए 2116 ज्ञात प्लेनटेक्स्ट और 2121 मेमोरी की आवश्यकता होती है लेकिन इसके लिए 2237.5 समय की भी आवश्यकता होती है। |
सर्पेंट सममित की ब्लॉक सिफर है जो उन्नत एन्क्रिप्शन मानक प्रक्रिया (एईएस) प्रतियोगिता में निणार्यक था, जहां इसे रिजंडैल के बाद दूसरा स्थान दिया गया था।[1] सर्पेंट को रॉस एंडरसन, एली बिहम और लार्स नुडसन द्वारा डिज़ाइन किया गया था ।[2]
अन्य उन्नत एन्क्रिप्शन मानक प्रस्तुतियाँ की समान , सर्पेंट के पास ब्लॉक आकार (क्रिप्टोग्राफी) 128 बिट्स का है और 128, 192 या 256 बिट्स के प्रमुख आकार का समर्थन करता है।[3] सिफ़र 32-राउंड प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क है जो चार 32-बिट वर्ड (कंप्यूटर आर्किटेक्चर) के ब्लॉक पर कार्य करता है। प्रत्येक दौर समानांतर में 32 बार आठ 4-बिट से 4-बिट S-बॉक्स में से एक पर लागू होता है। सर्पेंट को डिजाइन किया गया था जिससे कि 32 बिट स्लाइस का उपयोग करके समानांतर कंप्यूटिंग में सभी कार्यों को निष्पादित किया जा सकेता है। यह समानता को अधिकतम करता है, किन्तु डेटा एन्क्रिप्शन मानक पर किए गए व्यापक क्रिप्ट विश्लेषण कार्य के उपयोग की भी अनुमति देता है।
सर्पेंट ने सुरक्षा के लिए रूढ़िवादी दृष्टिकोण अपनाया, बड़े सुरक्षा सीमा का चयन किया गया था। डिजाइनरों ने 16 राउंड को ज्ञात प्रकार के अटैक के लिए पर्याप्त माना, किन्तु 32 राउंड को क्रिप्ट विश्लेषण में भविष्य की खोजों के विरुद्ध बीमा के रूप में निर्दिष्ट किया।[4] एईएस प्रतियोगिता पर आधिकारिक एनआईएसटी रिपोर्ट ने सर्पेंट को आरसी6 और रिजेंडेल (वर्तमान में एईएस) के पर्याप्त सुरक्षा सीमा के विपरीत मार्स और ट्वोफिश के साथ उच्च सुरक्षा सीमा के रूप में वर्गीकृत किया।[1]अंतिम मतदान में, सर्पेंट के अंतिम में सबसे कम नकारात्मक मतदान थे, किन्तु कुल मिलाकर दूसरा स्थान प्राप्त किया क्योंकि रिजेंडेल के पास अधिक सकारात्मक मतदान थे, निर्णायक कारक यह था कि रिजेंडेल ने कहीं अधिक कुशल सॉफ्टवेयर कार्यान्वयन की अनुमति दी थी।
सर्पेंट सिफर एल्गोरिथम सार्वजनिक डोमेन में है और इसका पेटेंट नहीं कराया गया है।[5] संदर्भ कोड सार्वजनिक डोमेन सॉफ्टवेयर है और अनुकूलित कोड जीपीएल के अंतर्गत है।[6] इसके उपयोग के संबंध में कोई प्रतिबंध या बाधा नहीं है। परिणाम स्वरुप , कोई भी लाइसेंस शुल्क का भुगतान किए बिना सर्पेंट को अपने सॉफ़्टवेयर (या हार्डवेयर कार्यान्वयन) में सम्मलित करने के लिए स्वतंत्र है।
मुख्य अनुसूची
सर्पेंट की अनुसूची में 3 मुख्य चरण होते हैं। पहले चरण में यदि आवश्यक हो तो पैडिंग जोड़कर की को आरंभीकृत किया जाता है। यह 256-बिट्स की लंबी की के लिए लघु की मानचित्र बनाने के लिए किया जाता है, "1" बिट को छोटी की के अंत में "0" बिट्स के बाद जोड़ा जाता है जब तक कि छोटी की को लंबी की लंबाई में मानचित्र नहीं किया जाता है।[3]
अगले चरण में, "परेकीस " पहले से आरंभ की गई की का उपयोग करके प्राप्त की जाती हैं। 32-बिट प्रमुख भाग एक्सओरेड, एफआरएसी जो कि सुवर्णमय अनुपात का अंश है और प्रमुख भागों के साथ राउंड सूचकांक एक्सओरेड है, एक्सओआर ऑपरेशन के परिणाम को 11 से बाईं ओर घुमाया जाता है। एफआरएसी और राउंड इंडेक्स को राउंड के पर्यन्त की बिट्स के समान वितरण को प्राप्त करने के लिए जोड़ा गया था।[3]
अंत में "उप की" पहले से उत्पन्न "परेकीस " से ली गई हैं। इसका परिणाम कुल 33 128-बिट "उप की" में होता है।[3]
अंत में की बिट्स को सही कॉलम में रखने के लिए राउंड की या "उप की" को "प्रारंभिक क्रमपरिवर्तन आईपी" में रखा जाता है।[3]
की अनुसूची स्यूडो कोड
#define FRAC 0x9e3779b9 // fractional part of the golden ratio
#define ROTL(A, n) (A << n) | (A >> (32 - n))
uint32_t key[8] // k
uint32_t words[132]; // w
uint32_t subkey[33][4] // sk
/* key schedule: get prekeys */
void w(uint32_t *w, uint32_t *k) {
uint32_t imm[140];
for (short i = 0; i < 8; i++){
imm[i]=k[i];
}
for (short i = 8; i < 140; i++) {
imm[i] = ROTL((w[i - 8] ^ w[i - 5] ^ w[i - 3] ^ w[i - 1] ^ FRAC ^ (i - 8)), 11);
w[i-8] = imm[i]
}
}
/* key schedule: get subkeys */
void k(uint32_t *w, uint32_t (*sk)[4]) {
uint8_t i, p, j, s, k;
for (i = 0; i < 33; i++) {
p = (32 + 3 - i) % 32;
for (k = 0; k < 32; k++) {
s = S[p % 8][((w[4 * i + 0] >> k) & 0x1) << 0 |
((w[4 * i + 1] >> k) & 0x1) << 1 |
((w[4 * i + 2] >> k) & 0x1) << 2 |
((w[4 * i + 3] >> k) & 0x1) << 3 ];
for (j = 0; j < 4; j++) {
sk[i][j] |= ((s >> j) & 0x1) << k;
}
}
}
}
एस-बॉक्स
सर्पेंट S-बॉक्स 4-बिट क्रमपरिवर्तन हैं और निम्नलिखित गुणों के अधीन हैं।
- 1-बिट इनपुट अंतर कभी भी 1-बिट आउटपुट अंतर की ओर नहीं ले जाएगा, एक विभेदक विशेषता में 1:4 या उससे कम की संभावना होती है।[7]
- रैखिक विशेषताओं की संभावना 1:2 और 1:4 के बीच होती है, इनपुट और आउटपुट बिट्स के बीच रैखिक संबंध की संभावना 1:2 और 1:8 के बीच होती है।[7]
- इनपुट बिट्स के कार्य के रूप में आउटपुट बिट्स का गैर-रैखिक क्रम 3 है। चूंकि ऐसे आउटपुट बिट्स पाए गए हैं जो इनपुट बिट्स के कार्य में केवल 2 का क्रम रखते हैं।[7]
डेटा एन्क्रिप्शन मानक S-बॉक्स की 32 पंक्तियों के आधार पर सर्पेंट S-बॉक्स का निर्माण किया गया है। इन्हें अदला-बदली प्रविष्टियों द्वारा रूपांतरित किया गया था, जिसके परिणामस्वरूप वांछित गुणों वाले सरणियों को सर्पेंट S-बॉक्स के रूप में संग्रहीत किया गया था। यह प्रक्रिया तब तक पुनरावृत्त हुई जब तक कि कुल 8 S-बॉक्स नहीं मिल गए। इस प्रक्रिया में निम्नलिखित "sboxesforserpent"
की का उपयोग किया गया था।[3]
क्रमपरिवर्तन और परिवर्तन
प्रारंभिक क्रमचय (आईपी)
प्रारंभिक क्रमचय 128 बिट्स पर समय में बिट्स रोटेट पर कार्य करता है।
for i in 0 .. 127
swap( bit(i), bit((32 * i) % 127) )
अंतिम क्रमपरिवर्तन (एफपी)
अंतिम क्रमपरिवर्तन 128 बिट्स पर कार्य करता है जो समय में बिट्स को रोटेट करता है।
for i in 0 .. 127
swap( bit(i), bit((2 * i) % 127) )
रैखिक परिवर्तन (एलटी)
एक्सओआर, S-बॉक्स, बिट शिफ़्ट बाएँ और बिट रोटेट लेफ्ट ऑपरेशंस से मिलकर बनता है। ये ऑपरेशन 4 32-बिट शब्दों पर किए जाते हैं।
for (short i = 0; i < 4; i++) {
X[i] = S[i][B[i] ^ K[i]];
}
X[0] = ROTL(X[0], 13);
X[2] = ROTL(X[2], 3 );
X[1] = X[1] ^ X[0] ^ X[2];
X[3] = X[3] ^ X[2] ^ (X[0] << 3);
X[1] = ROTL(X[1], 1 );
X[3] = ROTL(X[3], 7 );
X[0] = X[0] ^ X[1] ^ X[3];
X[2] = X[2] ^ X[3] ^ (X[1] << 7);
X[0] = ROTL(X[0], 5 );
X[2] = ROTL(X[2], 22);
for (short i = 0; i < 4; i++) {
B[i + 1] = X[i];
}
रिजेंडेल विरूद्ध सर्प
रिजेंडेल की आकार के आधार पर दस, बारह या चौदह राउंड के साथ एक प्रतिस्थापन-रैखिक परिवर्तन नेटवर्क है और स्वतंत्र रूप से निर्दिष्ट 128 बिट्स, 192 बिट्स या 256 बिट्स के प्रमुख आकारों के साथ सर्पेंट प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क है जिसमें एक अनुकूलित कार्यान्वयन को सरल बनाने के लिए बत्तीस राउंड और एक प्रारंभिक और अंतिम क्रमचय है। रिजेंडेल में राउंड कार्य में तीन भाग होते हैं। गैर-रेखीय परत, रैखिक मिश्रण परत और की -मिश्रण एक्सओआर परत। सर्पेंट में राउंड फ़ंक्शन में ही 4 × 4 S-बॉक्स के की -मिश्रण एक्सओआर बत्तीस समानांतर अनुप्रयोग होते हैं और अंतिम दौर को छोड़कर रैखिक परिवर्तन होता है, जिसमें अन्य की -मिश्रण एक्सओआर रैखिक परिवर्तन को बदल देता है । रिजेंडेल में नॉनलाइनियर परत 8 × 8 S-बॉक्स का उपयोग करती है जबकि सर्पेंट आठ अलग-अलग 4 × 4 S-बॉक्स का उपयोग करता है। 32 राउंड का अर्थ है कि रिजेंडेल की तुलना में सर्पेंट के पास उच्च सुरक्षा सीमा है; चूँकि, 10 राउंड के साथ रिजेंडेल छोटे ब्लॉकों के लिए तेज़ और सरल है।[8] इसलिए, एईएस प्रतियोगिता में रिजेंडेल को विजेता के रूप में चुना गया था।
सर्पेंट-0 विरूद्ध सर्पेंट-1
मूल सर्पेंट, सर्पेंट-0, फास्ट सॉफ्टवेयर एन्क्रिप्शन पर 5वीं कार्यशाला में प्रस्तुत किया गया था, किन्तु सर्पेंट-1 का कुछ सीमा तक संशोधित संस्करण एईएस प्रतियोगिता में प्रस्तुत किया गया था। एईएस प्रस्तुतियाँ पेपर परिवर्तनों पर चर्चा करता है, जिसमें की -निर्धारण अंतर सम्मलित हैं।
सुरक्षा
एक्सएसएल अटैक , यदि प्रभावी होता है, तो सर्पेंट को दुर्बल कर देगा (चूंकि उतना नहीं जितना कि यह रिजेंडेल को दुर्बल करेगा, जो उन्नत एन्क्रिप्शन मानक बन गया)। चूंकि, कई क्रिप्टो विश्लेषकों का मानना है कि एक बार कार्यान्वयन संबंधी विचारों को ध्यान में रखा जाता है तो एक्सएसएल अटैक क्रूर बल के अटैक से अधिक महंगा होगा।
2000 में, कोहनो एट अल द्वारा पेपर। सर्पेंट के 32 राउंड में से 6 के विरुद्ध बीच-बीच में अटैक और सर्पेंट में 32 राउंड में से 9 के विरुद्ध प्रवर्धित प्रतीगामी अटैक प्रस्तुत करता है।[9]
एली बिहाम, ऑर डंकलमैन और नाथन केलर द्वारा 2001 का अटैक रेखीय क्रिप्ट अटैक प्रस्तुत करता है जो 2118 ज्ञात सादे पाठ के साथ सर्पेंट -128 के 32 राउंड में से 10 को तोड़ता है और 289 समय और सर्पेंट -192/256 के 11 राउंड को 2118 ज्ञात सादे पाठ और 2187 समय के साथ तोड़ता है।[10]
2009 के पेपर में देखा गया है कि सर्पेंट S-बॉक्स का गैर-रैखिक क्रम 3 नहीं था जैसा कि डिजाइनरों द्वारा प्रमाणित किया गया था।[7]
होंगजुन वू, हुआक्सिओनग वांग और फुओंग हा गुयेन द्वारा 2011 के एक अटैक में, रैखिक क्रिप्टैनालिसिस का उपयोग करते हुए, 2116 ज्ञात सादे पाठ, 2107.5 समय और 2104 मेमोरी के साथ सर्पेंट-128 के 11 राउंड को तोड़ता है ।[11]
इसी पेपर में दो अटैक का भी वर्णन है जो सर्प-256 के 12 चक्कर तोड़ते हैं। पहले के लिए 2118 ज्ञात सादे पाठ, 2228.8 समय और 2228 मेमोरी की आवश्यकता होती है। दूसरे अटैक के लिए 2116 ज्ञात सादे पाठ और 2121 मेमोरी की आवश्यकता होती है किन्तु इसके लिए 2237.5 समय की भी आवश्यकता होती है।
यह भी देखें
- टाइगर - एक ही लेखक द्वारा हैश फ़ंक्शन
फुटनोट्स
- ↑ 1.0 1.1 Nechvatal, J.; Barker, E.; Bassham, L.; Burr, W.; Dworkin, M.; Foti, J.; Roback, E. (May 2001). "उन्नत एन्क्रिप्शन मानक (एईएस) के विकास पर रिपोर्ट". Journal of Research of the National Institute of Standards and Technology. 106 (3): 511–577. doi:10.6028/jres.106.023. ISSN 1044-677X. PMC 4863838. PMID 27500035.
- ↑ "नागिन होम पेज".
{{cite web}}
: CS1 maint: url-status (link) - ↑ 3.0 3.1 3.2 3.3 3.4 3.5 Ross J. Anderson (23 October 2006). "Serpent: A Candidate Block Cipher for the Advanced Encryption Standard". University of Cambridge Computer Laboratory. Retrieved 14 January 2013.
- ↑ "नागिन.pdf" (PDF). Retrieved 25 April 2022.
- ↑ Serpent Holds the Key to Internet Security – Finalists in world-wide encryption competition announced (1999)
- ↑ SERPENT – A Candidate Block Cipher for the Advanced Encryption Standard "Serpent is now completely in the public domain, and we impose no restrictions on its use. This was announced on the 21st August at the First AES Candidate Conference. The optimised implementations in the submission package are now under the General Public License (GPL), although some comments in the code still say otherwise. You are welcome to use Serpent for any application. If you do use it, we would appreciate it if you would let us know!" (1999)
- ↑ 7.0 7.1 7.2 7.3 Bhupendra Singh; Lexy Alexander; Sanjay Burman (2009). "On Algebraic Relations of Serpent S-boxes" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Bruce Schneier; John Kelsey; Doug Whiting; David Wagner; Chris Hall. Niels Fergusonk; Tadayoshi Kohno; Mike Stay (2000). "The Twofish Team's Final Comments on AES Selection" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Tadayoshi Kohno; John Kelsey & Bruce Schneier (2000). "Preliminary Cryptanalysis of Reduced-Round Serpent".
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Eli Biham, Orr Dunkelman & Nathan Keller (2001). "Linear Cryptanalysis of Reduced Round Serpent". FSE 2001. CiteSeerX 10.1.1.78.6148.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Huaxiong Wang, Hongjun Wu & Phuong Ha Nguyen (2011). "Improving the Algorithm 2 in Multidimensional Linear Cryptanalysis" (PDF). सूचना सुरक्षा और गोपनीयता. Lecture Notes in Computer Science. Vol. 6812. ACISP 2011. pp. 61–74. doi:10.1007/978-3-642-22497-3_5. ISBN 978-3-642-22496-6.
अग्रिम पठन
- Anderson, Ross; Biham, Eli; Knudsen, Lars (1998). "Cryptography – 256 bit ciphers: Reference (AES submission) implementation".
- Biham, Eli. "Serpent – A New Block Cipher Proposal for AES".
- Halbfinger, David M (5 May 2008). "In Pellicano Case, Lessons in Wiretapping Skills". The New York Times.
- Stajano, Frank (10 February 2006). "Serpent reference implementation". University of Cambridge Computer Laboratory.
बाहरी संबंध
- No URL found. Please specify a URL here or add one to Wikidata.
- 256 bit ciphers – SERPENT Reference implementation and derived code