सर्पेन्ट (सिफर): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Use dmy dates|date=October 2019}}{{Infobox block cipher
{{Use dmy dates|date=अक्टूबर 2019}}{{Infobox block cipher
| name          = Serpent
| name          = सर्पेंट
| image        = [[File:Serpent-linearfunction.svg|200px|center]]
| image        = [[File:Serpent-linearfunction.svg|200px|center]]
| caption      = Serpent's linear mixing stage
| caption      = सर्पेंट की रेखीय मिश्रण अवस्था
| designers    = [[Ross J. Anderson|Ross Anderson]], [[Eli Biham]], [[Lars Knudsen]]
| designers    = [[रॉस जे. एंडरसन|रॉस एंडरसन]], [[एली बिहम]], [[लार्स नुडसन]]
| publish date  = 1998-08-21
| publish date  = 1998-08-21
| derived from  = [[Square (cipher)|Square]]
| derived from  = [[स्क्वायर (सिफर)|स्क्वायर]]
| related to    =
| related to    =
| certification = [[AES finalist]]
| certification = [[एईएस फाइनलिस्ट]]
| key size      = 128, 192 or 256 bits
| key size      = 128, 192 or 256 बिट्स
| block size    = 128 bits
| block size    = 128 बिट्स
| structure    = [[Substitution–permutation network]]
| structure    = [[प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क]]
| rounds        = 32
| rounds        = 32
| cryptanalysis =
| cryptanalysis =
All publicly known attacks are computationally infeasible, and none of them affect the full 32-round Serpent.  A 2011 attack breaks 11 round Serpent (all key sizes) with 2<sup>116</sup> known plaintexts, 2<sup>107.5</sup> time and 2<sup>104</sup> memory (as described in<ref name=acisp-2011 />).
सभी सार्वजनिक रूप से ज्ञात हमले कम्प्यूटेशनल रूप से अव्यावहारिक हैं, और उनमें से कोई भी पूरे 32-राउंड सर्पेंट को प्रभावित नहीं करता है। 2011 के एक हमले ने 2<sup>116</sup> ज्ञात प्लेनटेक्स्ट, 2<sup>107.5</sup> समय और 2<sup>104</sup> मेमोरी के साथ 11 राउंड सर्पेंट (सभी प्रमुख आकार) तोड़ दिए (जैसा कि इसमें वर्णित है <रेफरी नाम = एसीएसपी-2011 />)


The same paper also describes two attacks which break 12 rounds of Serpent-256. The first requires 2<sup>118</sup> known plaintexts, 2<sup>228.8</sup> time and 2<sup>228</sup> memory. The other attack requires 2<sup>116</sup> known plaintexts and 2<sup>121</sup> memory but also requires 2<sup>237.5</sup> time.
इसी पेपर में दो हमलों का भी वर्णन है जो सर्पेंट -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>
सर्पेंट [[सममित कुंजी|सममित की]] [[ब्लॉक सिफर]] है जो [[उन्नत एन्क्रिप्शन मानक प्रक्रिया]] (एईएस) प्रतियोगिता में निणार्यक था, जहां इसे [[रिजंडैल]] के बाद दूसरा स्थान दिया गया था।<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
अन्य उन्नत एन्क्रिप्शन मानक प्रस्तुतियाँ की समान , सर्पेंट के पास [[ब्लॉक आकार (क्रिप्टोग्राफी)]] 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-बिट [[वर्ड (कंप्यूटर आर्किटेक्चर)]] के ब्लॉक पर काम करता है। प्रत्येक दौर समानांतर में 32 बार आठ 4-बिट से 4-बिट [[एस-बॉक्स]] में से एक पर लागू होता है। सर्पेंट को डिजाइन किया गया था जिससे कि 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" />फाइनल वोटिंग में, सर्पेंट के फाइनल में सबसे कम नकारात्मक वोट थे, किन्तु कुल मिलाकर दूसरा स्थान हासिल किया क्योंकि रिजेंडेल के पास काफी अधिक सकारात्मक वोट थे, निर्णायक कारक यह था कि रिजेंडेल ने कहीं अधिक कुशल सॉफ्टवेयर कार्यान्वयन की अनुमति दी थी।{{citation needed|date=June 2016}}
सर्पेंट ने सुरक्षा के लिए रूढ़िवादी दृष्टिकोण अपनाया, बड़े सुरक्षा सीमा का चयन किया गया था। डिजाइनरों ने 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 मुख्य चरण होते हैं। पहले चरण में यदि आवश्यक हो तो पैडिंग जोड़कर कुंजी को इनिशियलाइज़ किया जाता है। यह 256-बिट्स की लंबी कुंजियों के लिए लघु कुंजी मानचित्र बनाने के लिए किया जाता है, 1 बिट को छोटी कुंजी के अंत में 0 बिट्स के बाद जोड़ा जाता है जब तक कि छोटी कुंजी को लंबी कुंजी लंबाई में मैप नहीं किया जाता है।<ref name=":0" />
सर्पेंट की अनुसूची में 3 मुख्य चरण होते हैं। पहले चरण में यदि आवश्यक हो तो पैडिंग जोड़कर की को आरंभीकृत किया जाता है। यह 256-बिट्स की लंबी की के लिए लघु की मानचित्र बनाने के लिए किया जाता है, "1" बिट को छोटी की के अंत में "0" बिट्स के बाद जोड़ा जाता है जब तक कि छोटी की को लंबी की लंबाई में मानचित्र नहीं किया जाता है।<ref name=":0" />


अगले चरण में, पहले से आरंभ की गई कुंजी का उपयोग करके प्रीकीज़ को प्राप्त किया जाता है। 32-बिट प्रमुख भाग XORed, FRAC जो कि [[ सुनहरा अनुपात |सुनहरा अनुपात]] का अंश है और राउंड इंडेक्स को प्रमुख भागों के साथ XORed किया जाता है, [[एकमात्र]] ऑपरेशन के परिणाम को 11 से बाईं ओर घुमाया जाता है। FRAC और राउंड इंडेक्स को इसमें जोड़ा गया था राउंड के दौरान कीज़ बिट्स का समान वितरण प्राप्त करें।<ref name=":0" />
अगले चरण में, "परेकीस " पहले से आरंभ की गई की का उपयोग करके प्राप्त की जाती हैं। 32-बिट प्रमुख भाग एक्सओरेड, एफआरएसी जो कि [[ सुनहरा अनुपात |सुवर्णमय अनुपात]] का अंश है और प्रमुख भागों के साथ राउंड सूचकांक एक्सओरेड है, [[एकमात्र|एक्सओआर]] ऑपरेशन के परिणाम को 11 से बाईं ओर घुमाया जाता है। एफआरएसी और राउंड इंडेक्स को राउंड के पर्यन्त की बिट्स के समान वितरण को प्राप्त करने के लिए जोड़ा गया था।<ref name=":0" />


अंत में उपकुंजियों को पहले उत्पन्न की गई कुंजी से प्राप्त किया जाता है। इसका परिणाम कुल 33 128-बिट उपकुंजियों में होता है।<ref name=":0" />
अंत में "उप की" पहले से उत्पन्न "परेकीस " से ली गई हैं। इसका परिणाम कुल 33 128-बिट "उप की" में होता है।<ref name=":0" />


अंत में कुंजी बिट्स को सही कॉलम में रखने के लिए प्रारंभिक क्रमपरिवर्तन आईपी में गोल कुंजी या उपकुंजी रखी जाती है।<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:


== एस-बॉक्स ==
== एस-बॉक्स ==
सर्पेंट एस-बॉक्स 4-बिट क्रमचय हैं, और निम्नलिखित गुणों के अधीन हैं:
सर्पेंट S-बॉक्स 4-बिट क्रमपरिवर्तन हैं और निम्नलिखित गुणों के अधीन हैं।


* 1-बिट इनपुट अंतर कभी भी 1-बिट आउटपुट अंतर नहीं देगा, अंतर विशेषता की संभावना 1:4 या उससे कम होती है।<ref name="algeb-2009" />
* 1-बिट इनपुट अंतर कभी भी 1-बिट आउटपुट अंतर की ओर नहीं ले जाएगा, एक विभेदक विशेषता में 1:4 या उससे कम की संभावना होती है।<ref name="algeb-2009" />


* रैखिक विशेषताओं की संभावना 1:2 और 1:4 के बीच होती है, इनपुट और आउटपुट बिट्स के बीच रैखिक संबंध की संभावना 1:2 और 1:8 के बीच होती है।<ref name="algeb-2009" />
* रैखिक विशेषताओं की संभावना 1:2 और 1:4 के बीच होती है, इनपुट और आउटपुट बिट्स के बीच रैखिक संबंध की संभावना 1:2 और 1:8 के बीच होती है।<ref name="algeb-2009" />


* इनपुट बिट्स के कार्य के रूप में आउटपुट बिट्स का गैर-रैखिक क्रम 3 है। हालांकि ऐसे आउटपुट बिट्स पाए गए हैं जो इनपुट बिट्स के कार्य में केवल 2 का क्रम रखते हैं।<ref name="algeb-2009" />
* इनपुट बिट्स के कार्य के रूप में आउटपुट बिट्स का गैर-रैखिक क्रम 3 है। चूंकि ऐसे आउटपुट बिट्स पाए गए हैं जो इनपुट बिट्स के कार्य में केवल 2 का क्रम रखते हैं।<ref name="algeb-2009" />


डेटा एन्क्रिप्शन मानक एस-बॉक्स की 32 पंक्तियों के आधार पर सर्पेंट एस-बॉक्स का निर्माण किया गया है। इन्हें अदला-बदली प्रविष्टियों द्वारा रूपांतरित किया गया था, जिसके परिणामस्वरूप वांछित गुणों वाले सरणियों को सर्पेंट एस-बॉक्स के रूप में संग्रहीत किया गया था। यह प्रक्रिया तब तक दोहराई गई जब तक कि कुल 8 एस-बॉक्स नहीं मिल गए। इस प्रक्रिया में निम्नलिखित कुंजी का उपयोग किया गया था: <code>"sboxesforserpent"</code>.<ref name=":0" />
डेटा एन्क्रिप्शन मानक S-बॉक्स की 32 पंक्तियों के आधार पर सर्पेंट S-बॉक्स का निर्माण किया गया है। इन्हें अदला-बदली प्रविष्टियों द्वारा रूपांतरित किया गया था, जिसके परिणामस्वरूप वांछित गुणों वाले सरणियों को सर्पेंट S-बॉक्स के रूप में संग्रहीत किया गया था। यह प्रक्रिया तब तक पुनरावृत्त हुई जब तक कि कुल 8 S-बॉक्स नहीं मिल गए। इस प्रक्रिया में निम्नलिखित <code>"sboxesforserpent"</code> की का उपयोग किया गया था।<ref name=":0" />




Line 101: Line 101:


=== प्रारंभिक क्रमचय (आईपी) ===
=== प्रारंभिक क्रमचय (आईपी) ===
प्रारंभिक क्रमचय 128 बिट्स पर समय में बिट्स को घुमाने पर काम करता है।<syntaxhighlight lang="cpp">
प्रारंभिक क्रमचय 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 बिट्स पर काम करता है जो समय में बिट्स को घुमाता है।<syntaxhighlight lang="cpp">
अंतिम क्रमपरिवर्तन 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:


=== रैखिक परिवर्तन (एलटी) ===
=== रैखिक परिवर्तन (एलटी) ===
एक्सओआर, एस-बॉक्स, बिट शिफ्ट लेफ्ट और बिट रोटेट लेफ्ट ऑपरेशंस से मिलकर बनता है। ये ऑपरेशन 4 32-बिट शब्दों पर किए जाते हैं।<syntaxhighlight lang="cpp">
एक्सओआर, 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 बिट के प्रमुख आकार के साथ। सर्पेंट प्रतिस्थापन-क्रमपरिवर्तन नेटवर्क है जिसमें बत्तीस राउंड होते हैं, साथ ही  प्रारंभिक और अंतिम क्रमचय अनुकूलित कार्यान्वयन को सरल बनाने के लिए। रिजेंडेल में गोल कार्य में तीन भाग होते हैं:  गैर-रेखीय परत, रैखिक मिश्रण परत और कुंजी-मिश्रण XOR परत। सर्पेंट में राउंड फ़ंक्शन में की-मिक्सिंग एक्सओआर, समान 4×4 एस-बॉक्स के बत्तीस समानांतर अनुप्रयोग और रैखिक परिवर्तन शामिल है, अंतिम दौर को छोड़कर, जिसमें अन्य की-मिक्सिंग एक्सओआर रैखिक परिवर्तन को बदल देता है। रिजेंडेल में नॉनलाइनियर परत 8 × 8 एस-बॉक्स का उपयोग करती है जबकि सर्पेंट आठ अलग-अलग 4 × 4 एस-बॉक्स का उपयोग करता है। 32 राउंड का मतलब है कि रिजेंडेल की तुलना में सर्पेंट के पास उच्च सुरक्षा मार्जिन है; हालाँकि, 10 राउंड के साथ रिजेंडेल छोटे ब्लॉकों के लिए तेज़ और आसान है।<ref>{{cite journal
रिजेंडेल की आकार के आधार पर दस, बारह या चौदह राउंड के साथ एक प्रतिस्थापन-रैखिक परिवर्तन नेटवर्क है और स्वतंत्र रूप से निर्दिष्ट 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 वि0 सर्प-1==
==सर्पेंट-0 विरूद्ध सर्पेंट-1==
मूल सर्पेंट, सर्पेंट-0, [[फास्ट सॉफ्टवेयर एन्क्रिप्शन]] पर 5वीं कार्यशाला में प्रस्तुत किया गया था, किन्तु कुछ हद तक संशोधित संस्करण, सर्पेंट-1, एईएस प्रतियोगिता में प्रस्तुत किया गया था। एईएस प्रस्तुतियाँ पेपर परिवर्तनों पर चर्चा करता है, जिसमें की-शेड्यूलिंग अंतर शामिल हैं।
मूल सर्पेंट, सर्पेंट-0, [[फास्ट सॉफ्टवेयर एन्क्रिप्शन]] पर 5वीं कार्यशाला में प्रस्तुत किया गया था, किन्तु सर्पेंट-1 का कुछ सीमा तक संशोधित संस्करण एईएस प्रतियोगिता में प्रस्तुत किया गया था। एईएस प्रस्तुतियाँ पेपर परिवर्तनों पर चर्चा करता है, जिसमें की -निर्धारण अंतर सम्मलित हैं।


== सुरक्षा ==
== सुरक्षा ==
XSL हमला, यदि प्रभावी हो, तो सर्पेंट को कमजोर कर देगा (हालांकि उतना नहीं जितना कि यह रिजेंडेल को कमजोर करेगा, जो उन्नत एन्क्रिप्शन मानक बन गया)। हालांकि, कई क्रिप्टो विश्लेषकों का मानना ​​है कि बार कार्यान्वयन संबंधी विचारों को ध्यान में रखा जाता है तो [[एक्सएसएल हमला]] क्रूर बल के हमले से अधिक महंगा होगा।{{Citation needed|date=July 2010}}
एक्सएसएल अटैक , यदि प्रभावी होता है, तो सर्पेंट को दुर्बल कर देगा (चूंकि उतना नहीं जितना कि यह रिजेंडेल को दुर्बल करेगा, जो उन्नत एन्क्रिप्शन मानक बन गया)। चूंकि, कई क्रिप्टो विश्लेषकों का मानना ​​है कि एक बार कार्यान्वयन संबंधी विचारों को ध्यान में रखा जाता है तो [[एक्सएसएल हमला|एक्सएसएल अटैक]] क्रूर बल के अटैक से अधिक महंगा होगा।


2000 में, कोहनो एट अल द्वारा पेपर। सर्पेंट के 32 राउंड में से 6 के खिलाफ मीट-इन-द-बीच हमला और सर्पेंट में 32 राउंड में से 9 के खिलाफ  प्रवर्धित बूमरैंग हमला प्रस्तुत करता है।<ref>{{cite journal
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 का हमला  रेखीय क्रिप्ट विश्लेषण हमला प्रस्तुत करता है जो 2 के साथ सर्पेंट-128 के 32 राउंड में से 10 को तोड़ता है।<sup>118</sup> ज्ञात सादे पाठ और 2<sup>89</sup> समय, और सर्प-192/256 के 11 चक्कर 2 के साथ<sup>118</sup> ज्ञात सादे पाठ और 2<sup>187</sup> समय।<ref name=linear-2001>{{cite journal
 
एली बिहाम, [[ऑर डंकलमैन]] और नाथन केलर द्वारा 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 के पेपर में देखा गया है कि सर्पेंट एस-बॉक्स का गैर-रैखिक क्रम 3 नहीं था जैसा कि डिजाइनरों द्वारा दावा किया गया था।<ref name=algeb-2009>{{cite journal
 
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 का हमला, रैखिक क्रिप्ट विश्लेषण का उपयोग करते हुए, 2 के साथ सर्पेंट -128 के 11 राउंड को तोड़ता है<sup>116</sup> ज्ञात प्लेनटेक्स्ट, 2<sup>107.5</sup> समय और 2<sup>104</sup> मेमोरी।<ref name=acisp-2011>{{cite book
 
होंगजुन वू, हुआक्सिओनग वांग और फुओंग हा गुयेन द्वारा 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> समय।
 
इसी पेपर में दो अटैक का भी वर्णन है जो सर्प-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: नि: शुल्क सिफर]] [[Category: सोर्स कोड के साथ पब्लिक डोमेन सॉफ्टवेयर]] [[Category: मुफ्त सॉफ्टवेयर]]


[[Category: Machine Translated Page]]
[[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

सर्पेंट
Serpent-linearfunction.svg
सर्पेंट की रेखीय मिश्रण अवस्था
General
Designersरॉस एंडरसन, एली बिहम, लार्स नुडसन
First published1998-08-21
Derived fromस्क्वायर
Certificationएईएस फाइनलिस्ट
Cipher detail
Key sizes128, 192 or 256 बिट्स
Block sizes128 बिट्स
Structureप्रतिस्थापन-क्रमपरिवर्तन नेटवर्क
Rounds32
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. 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.
  2. "नागिन होम पेज".{{cite web}}: CS1 maint: url-status (link)
  3. 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.
  4. "नागिन.pdf" (PDF). Retrieved 25 April 2022.
  5. Serpent Holds the Key to Internet Security – Finalists in world-wide encryption competition announced (1999)
  6. 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. 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)
  8. 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)
  9. Tadayoshi Kohno; John Kelsey & Bruce Schneier (2000). "Preliminary Cryptanalysis of Reduced-Round Serpent". {{cite journal}}: Cite journal requires |journal= (help)
  10. 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)
  11. 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.

अग्रिम पठन


बाहरी संबंध

  • No URL found. Please specify a URL here or add one to Wikidata.
  • 256 bit ciphers – SERPENT Reference implementation and derived code