परिमित क्षेत्र अंकगणित: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Arithmetic in a field with a finite number of elements}} गणित में, परिमित क्षेत्र अंकगणित ए...")
 
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Arithmetic in a field with a finite number of elements}}
{{Short description|Arithmetic in a field with a finite number of elements}}
गणित में, [[परिमित क्षेत्र]] [[अंकगणित]] एक परिमित क्षेत्र में अंकगणित है (एक [[क्षेत्र (गणित)]] जिसमें तत्वों की एक परिमित संख्या (गणित) होती है) एक क्षेत्र में अंकगणित के विपरीत होता है, जिसमें अनंत संख्या में तत्व होते हैं, जैसे परिमेय संख्याओं का क्षेत्र।
गणित में, '''[[परिमित क्षेत्र]] [[अंकगणित]]''' एक परिमित क्षेत्र में अंकगणित है एक [[क्षेत्र (गणित)]] जिसमें तत्वों की एक परिमित संख्या (गणित) होती है एक क्षेत्र में अंकगणित के विपरीत होता है, जिसमें अनंत संख्या में तत्व होते हैं, जैसे परिमेय संख्याओं का क्षेत्र होता है।


असीम रूप से कई अलग-अलग परिमित क्षेत्र हैं। उनकी [[प्रमुखता]] अनिवार्य रूप से 'पी' के रूप में है<sup>n</sup> जहां p एक [[अभाज्य संख्या]] है और n एक धनात्मक पूर्णांक है, और समान आकार के दो परिमित क्षेत्र समरूपता हैं। अभाज्य p को क्षेत्र की [[विशेषता (बीजगणित)]] कहा जाता है, और [[सकारात्मक पूर्णांक]] n को इसकी विशेषता (बीजगणित) # क्षेत्रों के मामले में क्षेत्र का [[आयाम (वेक्टर स्थान)]] कहा जाता है।
अपरिमित रूप से अनेक भिन्न परिमित क्षेत्र हैं। उनके तत्वों की संख्या आवश्यक रूप से ''p<sup>n</sup>'' के रूप में होती है जहाँ p एक अभाज्य संख्या है और n एक धनात्मक पूर्णांक है, और समान आकार के दो परिमित क्षेत्र समरूपी होते हैं। अभाज्य p को क्षेत्र की विशेषता कहा जाता है, और धनात्मक पूर्णांक n को इसके अभाज्य क्षेत्र पर क्षेत्र का आयाम कहा जाता है।


टूर्नामेंट शेड्यूलिंग में उन्नत एन्क्रिप्शन मानक (उन्नत एन्क्रिप्शन मानक) एन्क्रिप्शन एल्गोरिदम जैसे [[क्रिप्टोग्राफी]] एल्गोरिदम में [[बीसीएच कोड]] और रीड-सोलोमन त्रुटि सुधार जैसे [[रैखिक ब्लॉक कोड]] में शास्त्रीय [[कोडिंग सिद्धांत]] सहित विभिन्न प्रकार के अनुप्रयोगों में परिमित फ़ील्ड का उपयोग किया जाता है। , और प्रयोगों के डिजाइन में।
परिमित क्षेत्रों का उपयोग विभिन्न प्रकार के अनुप्रयोगों में किया जाता है, जिसमें बीसीएच कोड जैसे रैखिक ब्लॉक कोड में उत्कृष्ट कोडिंग सिद्धांत और क्रिप्टोग्राफी एल्गोरिदम में रीड-सोलोमन त्रुटि संशोधन जैसे प्रतियोगिता नियोजन और प्रयोगों के डिजाइन में रिजेंडेल (एईएस) एन्क्रिप्शन एल्गोरिदम सम्मिलित हैं।


== प्रभावी बहुपद प्रतिनिधित्व ==
== प्रभावी बहुपद प्रतिनिधित्व ==
पी के साथ परिमित क्षेत्र<sup>n</sup> तत्वों को दर्शाया गया है GF(p<sup>n</sup>) और इसे क्रम p का 'गैलोइस फील्ड' भी कहा जाता है<sup>n</sup>, परिमित क्षेत्र सिद्धांत के संस्थापक, Évariste Galois के सम्मान में। GF(p), जहाँ p एक अभाज्य संख्या है, केवल पूर्णांकों का वलय (बीजगणित) है [[मॉड्यूलर अंकगणित]]ीय p। अर्थात्, कोई पूर्णांक पर सामान्य ऑपरेशन का उपयोग करके संचालन (जोड़, घटाव, गुणा) कर सकता है, जिसके बाद घटाव मोडुलो पी हो सकता है। उदाहरण के लिए, GF(5) में, {{nowrap|1=4 + 3 = 7}} को घटाकर 2 मॉडुलो 5 कर दिया गया है। डिवीजन व्युत्क्रम मोडुलो पी द्वारा गुणा है, जिसे विस्तारित [[विस्तारित यूक्लिडियन एल्गोरिथ्म]] उपयोग करके गणना की जा सकती है।
''p<sup>n</sup>'' तत्वों के साथ परिमित क्षेत्र को GF(''p<sup>n</sup>'') कहा जाता है और इसे परिमित क्षेत्र सिद्धांत के संस्थापक इवरिस्ट गैलोइस के सम्मान में क्रम ''p<sup>n</sup>'' का गैलोइस क्षेत्र भी कहा जाता है। GF (''p''), जहाँ p एक अभाज्य संख्या है, वह केवल पूर्णांक मापांक p का वलय है। अर्थात्, कोई पूर्णांक पर सामान्य संक्रिया का उपयोग करके संचालन (जोड़, व्यवकलन, गुणा) कर सकता है, जिसके बाद संशोधन मापांक ''p'' हो सकता है। उदाहरण के लिए, GF(5) में, 4 + 3 = 7 को घटाकर 2 मापांक 5 कर दिया गया है। विभाजन व्युत्क्रम मापांक p द्वारा गुणन है, जिसकी गणना विस्तारित यूक्लिडियन एल्गोरिथम का उपयोग करके की जा सकती है।


एक विशेष मामला [[GF(2)]] है, जहां योग XOR गेट (XOR) है और गुणन AND गेट है। चूंकि केवल उलटा तत्व 1 है, विभाजन पहचान कार्य है।
एक विशेष स्थिति GF(2) है, जहां योग विशेष OR (XOR) है और गुणन AND है। चूंकि केवल प्रतिवर्त तत्व 1 होता है, विभाजन समरूपता फलन है।


जीएफ के तत्व (पी<sup>n</sup>) को GF(p) पर n से सख्ती से कम डिग्री के [[बहुपद]] के रूप में दर्शाया जा सकता है। संचालन तब मोडुलो आर किया जाता है जहां आर जीएफ (पी) पर डिग्री एन का एक इरेड्यूसबल बहुपद है, उदाहरण के लिए बहुपद लंबे विभाजन का उपयोग करना। दो बहुपदों P और Q का योग हमेशा की तरह किया जाता है; गुणन निम्नानुसार किया जा सकता है: गणना करें {{nowrap|1=''W'' = ''P'' · ''Q''}} हमेशा की तरह, फिर शेष मॉडुलो आर की गणना करें। बहुपद गुणांक के संदर्भ में इस प्रतिनिधित्व को एक [[मोनोमियल आधार]] (उर्फ 'बहुपद आधार') कहा जाता है।
GF(''p<sup>n</sup>'') के तत्वों को GF(p) पर n से दृढ़ता से कम घात के बहुपदों के रूप में प्रदर्शित किया जा सकता है। संक्रियक तब मापांक R किया जाता है जहां R, GF(p) पर घात n का एक अखंडनीय बहुपद है, उदाहरण के लिए बहुपद विस्तृत विभाजन का उपयोग करना। दो बहुपदों P और Q का योग सदैव की तरह किया जाता है; गुणन निम्नानुसार किया जा सकता है: सदैव की तरह W = P · Q की गणना करें, फिर शेष मापांक R की गणना करें। बहुपद गुणांक के संदर्भ में इस प्रतिनिधित्व को एक एकपदीय आधार (उर्फ 'बहुपद आधार') कहा जाता है।


GF के तत्वों के अन्य निरूपण हैं (p<sup>एन</sup>); कुछ उपरोक्त बहुपद प्रतिनिधित्व के लिए समरूप हैं और अन्य काफी भिन्न दिखते हैं (उदाहरण के लिए, मेट्रिसेस का उपयोग करके)। [[सामान्य आधार]] का उपयोग करने से कुछ संदर्भों में लाभ हो सकता है।
GF(''p<sup>n</sup>'') के तत्वों के अन्य निरूपण हैं; कुछ उपरोक्त बहुपद प्रतिनिधित्व के लिए समरूप हैं और (उदाहरण के लिए, आव्यूह का उपयोग करके) अन्य अपेक्षाकृत अधिक भिन्न दिखते हैं। सामान्य आधार का उपयोग करने से कुछ संदर्भों में लाभ हो सकता है।


जब अभाज्य संख्या 2 होती है, तो पारंपरिक रूप से GF(p<sup>n</sup>) द्विआधारी अंक प्रणाली के रूप में, बहुपद में प्रत्येक शब्द के गुणांक के साथ संबंधित तत्व की बाइनरी अभिव्यक्ति में एक बिट द्वारा दर्शाया गया है। ब्रेसेस ( { और } ) या इसी तरह के सीमांकक आमतौर पर बाइनरी नंबरों या उनके हेक्साडेसिमल समकक्षों में जोड़े जाते हैं, यह इंगित करने के लिए कि मान फ़ील्ड के आधार के गुणांक देता है, इस प्रकार फ़ील्ड के एक तत्व का प्रतिनिधित्व करता है। उदाहरण के लिए, निम्नलिखित विशेषता 2 परिमित क्षेत्र में समान मान के समतुल्य प्रतिनिधित्व हैं:
जब अभाज्य संख्या 2 होती है, तो पारंपरिक रूप से GF(p<sup>n</sup>) द्विआधारी अंक प्रणाली के रूप में, बहुपद में प्रत्येक शब्द के गुणांक के साथ संबंधित तत्व की बाइनरी अभिव्यक्ति में एक बिट द्वारा दर्शाया गया है। ब्रेसेस ( { and } ) या इसी तरह के सीमांकक सामान्य रूप से बाइनरी संख्याओ या उनके हेक्साडेसिमल ( षोडश आधारी) समकक्षों में जोड़े जाते हैं, यह इंगित करने के लिए कि मान क्षेत्र के आधार के गुणांक देता है, इस प्रकार क्षेत्र के एक तत्व का प्रतिनिधित्व करता है। उदाहरण के लिए, निम्नलिखित विशेषता 2 परिमित क्षेत्र में समान मान के समतुल्य प्रतिनिधित्व हैं:


{| class="wikitable"
{| class="wikitable"
|-
|-
! Polynomial
! बहुपदीय
| ''x''<sup>6</sup> + ''x''<sup>4</sup> + ''x'' + 1
| ''x''<sup>6</sup> + ''x''<sup>4</sup> + ''x'' + 1
|-
|-
! Binary
! बाइनरी
| {01010011}
| {01010011}
|-
|-
! Hexadecimal
! हेक्साडेसिमल
| {53}
| {53}
|}
|}




== आदिम बहुपद ==
== प्राथमिक बहुपद ==
ऐसे कई इर्रिड्यूसिबल बहुपद हैं (कभी-कभी बहुपद को कम करना कहा जाता है) जिनका उपयोग परिमित क्षेत्र उत्पन्न करने के लिए किया जा सकता है, लेकिन वे सभी क्षेत्र के समान प्रतिनिधित्व को जन्म नहीं देते हैं।
ऐसे कई अखंडनीय बहुपद हैं (कभी-कभी बहुपद को कम करने वाले कहा जाता है) जिनका उपयोग एक सीमित क्षेत्र उत्पन्न करने के लिए किया जा सकता है, लेकिन वे सभी क्षेत्र के समान प्रतिनिधित्व को उत्पन्न नहीं करते हैं।


डिग्री का एक [[मोनिक बहुपद]] अलघुकरणीय बहुपद {{math|''n''}} परिमित क्षेत्र GF में गुणांक वाले ({{math|''q''}}), कहाँ {{math|1=''q'' = ''p''<sup>''t''</sup>}} कुछ प्राइम के लिए {{mvar|p}} और सकारात्मक पूर्णांक {{mvar|t}}, आदिम बहुपद कहलाता है यदि इसकी सभी जड़ें GF( का [[आदिम तत्व (परिमित क्षेत्र)]] हैं{{math|''q<sup>n</sup>''}}).<ref>The roots of such a polynomial must lie in an [[extension field]] of GF({{mvar|q}}) since the polynomial is irreducible, and so, has no roots in GF({{mvar|q}}).</ref><ref>{{harvnb|Mullen|Panario|2013|loc=p. 17}}</ref> परिमित क्षेत्र के बहुपद प्रतिनिधित्व में, इसका तात्पर्य है कि {{mvar|x}} आदिम तत्व है। जिसके लिए कम से कम एक अलघुकरणीय बहुपद है {{mvar|x}} आदिम तत्व है।<ref>{{Cite book|title=प्रयोगों का डिजाइन और विश्लेषण|date=August 8, 2005|publisher=John Wiley & Sons, Ltd|pages=716–720|doi=10.1002/0471709948.app1}}</ref> दूसरे शब्दों में, एक आदिम बहुपद के लिए, की शक्तियाँ {{math|''x''}} क्षेत्र में प्रत्येक अशून्य मान उत्पन्न करें।
परिमित क्षेत्र GF(q) में गुणांक वाले डिग्री n का एक एकगुणांकी अखंडनीय बहुपद, जहां q = pt कुछ अभाज्य p और धनात्मक पूर्णांक t के लिए, एक पूर्वग बहुपद कहलाता है, यदि इसकी सभी जड़ें GF(''p<sup>n</sup>'') के पूर्वग बहुपद हैं।<ref>The roots of such a polynomial must lie in an [[extension field]] of GF({{mvar|q}}) since the polynomial is irreducible, and so, has no roots in GF({{mvar|q}}).</ref><ref>{{harvnb|Mullen|Panario|2013|loc=p. 17}}</ref> परिमित क्षेत्र के बहुपद प्रतिनिधित्व में, इसका तात्पर्य है कि {{mvar|x}} प्राथमिक तत्व है। जिसके लिए कम से कम एक अलघुकरणीय बहुपद है {{mvar|x}} प्राथमिक तत्व है।<ref>{{Cite book|title=प्रयोगों का डिजाइन और विश्लेषण|date=August 8, 2005|publisher=John Wiley & Sons, Ltd|pages=716–720|doi=10.1002/0471709948.app1}}</ref> दूसरे शब्दों में, एक प्रारम्भिक बहुपद के लिए, x की घातें क्षेत्र में प्रत्येक शून्येतर मान उत्पन्न करती हैं।


निम्नलिखित उदाहरणों में यह सबसे अच्छा है कि बहुपद निरूपण का उपयोग अर्थ के रूप में न किया जाए {{math|''x''}} उदाहरणों के बीच परिवर्तन। मोनिक इरेड्यूसिबल बहुपद {{math|''x''<sup>8</sup> + ''x''<sup>4</sup> + ''x''<sup>3</sup> + ''x'' + 1}} GF(2) से अधिक आदिम नहीं है। होने देना {{math|''λ''}} इस बहुपद की जड़ हो (बहुपद प्रतिनिधित्व में यह होगा {{math|''x''}}), वह है, {{math|1=''λ''<sup>8</sup> + ''λ''<sup>4</sup> + ''λ''<sup>3</sup> + ''λ'' + 1 = 0}}. अब {{math|1=''λ''<sup>51</sup> = 1}}, इसलिए {{math|''λ''}} GF का आदिम तत्व नहीं है (2<sup>8</sup>) और क्रम 51 का गुणक उपसमूह उत्पन्न करता है।<ref name=LN>{{harvnb|Lidl|Niederreiter|1983|loc=p. 553}}</ref> फील्ड तत्व पर विचार करें {{math|''λ'' + 1}} (बहुपद प्रतिनिधित्व में यह होगा {{math|''x'' + 1}}). अब {{math|1=(''λ''+1)<sup>8</sup> + (''λ''+1)<sup>4</sup> + (''λ''+1)<sup>3</sup> + (''λ''+1)<sup>2</sup> + 1 = ''λ''<sup>8</sup> + ''λ''<sup>4</sup> + ''λ''<sup>3</sup> + ''λ'' + 1 = 0}}. चूंकि इस आदिम बहुपद की सभी जड़ें आदिम तत्व हैं, {{math|''λ'' + 1}} GF का आदिम तत्व है (2<sup>8</sup>) ({{math|1=(''λ'' + 1)<sup>255</sup> = 1}} और कोई छोटी शक्ति नहीं है)। जीएफ (2<sup>8</sup>) में 128 जनरेटर हैं (देखें आदिम तत्व (परिमित क्षेत्र)#आदिम तत्वों की संख्या)। रखना {{math|''x''}} एक परिमित क्षेत्र के लिए एक जनरेटर के रूप में कई कम्प्यूटेशनल गणितीय कार्यों के लिए फायदेमंद है।
निम्नलिखित उदाहरणों में बहुपद प्रतिनिधित्व का उपयोग नहीं करना सबसे अच्छा है, क्योंकि उदाहरणों के बीच x का अर्थ बदल जाता है। GF(2) पर एकगुणांकी अखंडनीय बहुपद ''x''<sup>8</sup> + ''x''<sup>4</sup> + ''x''<sup>3</sup> + ''x'' + 1 पूर्वग नहीं है। मान लीजिए λ इस बहुपद का (बहुपद प्रतिनिधित्व में यह x होगा) वर्गमूल है, जो कि ''λ''<sup>8</sup> + ''λ''<sup>4</sup> + ''λ''<sup>3</sup> + ''λ'' + 1 = 0 है। अब ''λ''<sup>51</sup> = 1, इसलिए λ, GF(2<sup>8</sup>) का प्रारम्भिक तत्व नहीं है और क्रम 51 का गुणक उपसमूह उत्पन्न करता है।<ref name=LN>{{harvnb|Lidl|Niederreiter|1983|loc=p. 553}}</ref> क्षेत्र तत्व λ + 1 पर विचार करें, बहुपद प्रतिनिधित्व में यह x + 1 होगा। अब (''λ''+1)<sup>8</sup> + (''λ''+1)<sup>4</sup> + (''λ''+1)<sup>3</sup> + (''λ''+1)<sup>2</sup> + 1 = ''λ''<sup>8</sup> + ''λ''<sup>4</sup> + ''λ''<sup>3</sup> + ''λ'' + 1 = 0 है। जैसा कि इस प्रारम्भिक बहुपद के सभी वर्गमूल प्रारम्भिक तत्व हैं, GF(2<sup>8</sup>) ((''λ'' + 1)<sup>255</sup> = 1 और कोई छोटी घात नहीं है। GF(2<sup>8</sup>) में 128 जनित्र हैं प्रारम्भिक तत्वों की संख्या देखें। एक परिमित क्षेत्र के लिए एक जनित्र के रूप में x का होना कई संगणनात्मक गणितीय फलनों के लिए लाभदायक है।


== जोड़ और घटाव ==
== जोड़ना और घटाना ==
इन बहुपदों में से दो को एक साथ जोड़कर या घटाकर जोड़ और घटाव किया जाता है, और परिणाम मॉड्यूल को कम करके विशेषता को कम किया जाता है।
इन बहुपदों में से दो को एक साथ जोड़कर या घटाकर जोड़ और घटाना किया जाता है, और परिणाम मापांक को कम करके विशेषता को कम किया जाता है।


विशेषता 2 के साथ परिमित क्षेत्र में, अतिरिक्त मॉड्यूल 2, घटाव मॉड्यूल 2, और एक्सओआर समान हैं। इस प्रकार,
विशेषता 2 के साथ परिमित क्षेत्र में, अतिरिक्त मापांक 2, व्यवकलन मापांक 2, और एक्सओआर समान हैं। इस प्रकार,


{| class="wikitable"
{| class="wikitable"
|-
|-
! Polynomial
! बहुपदीय
| (''x''<sup>6</sup> + ''x''<sup>4</sup> + ''x'' + 1) + (''x''<sup>7</sup> + ''x''<sup>6</sup> + ''x''<sup>3</sup> + ''x'') = ''x''<sup>7</sup> + ''x''<sup>4</sup> + ''x''<sup>3</sup> + 1
| (''x''<sup>6</sup> + ''x''<sup>4</sup> + ''x'' + 1) + (''x''<sup>7</sup> + ''x''<sup>6</sup> + ''x''<sup>3</sup> + ''x'') = ''x''<sup>7</sup> + ''x''<sup>4</sup> + ''x''<sup>3</sup> + 1
|-
|-
! Binary
! बाइनरी
| {01010011} + {11001010} = {10011001}
| {01010011} + {11001010} = {10011001}
|-
|-
! Hexadecimal
! हेक्साडेसिमल
| {53} + {CA} = {99}
| {53} + {CA} = {99}
|}
|}
बहुपदों के नियमित जोड़ के तहत योग में 2x शब्द होगा<sup>6</उप>यह शब्द 0x बन जाता है<sup>6</sup> और जब उत्तर घटाया जाता है तो मॉड्यूल 2 को छोड़ दिया जाता है।
बहुपदों के नियमित संकलन के अंतर्गत, योग में 2''x''<sup>6</sup> पद होगा। यह पद 0''x''<sup>6</sup> हो जाता है और उत्तर कम होने पर मापांक 2 को हटा दिया जाता है।
 
यहाँ सामान्य बीजगणितीय योग और कुछ बहुपदों के अभिलाक्षणिक 2 परिमित क्षेत्र योग दोनों के साथ एक तालिका है:


यहां सामान्य बीजगणितीय योग और कुछ बहुपदों की विशेषता 2 परिमित क्षेत्र योग दोनों के साथ एक सारणी है
{| class="wikitable"
{| class="wikitable"
  |-
  |-
  ! rowspan=2 | ''p''<sub>1</sub>
  ! rowspan=2 | ''p''<sub>1</sub>
  ! rowspan=2 | ''p''<sub>2</sub>
  ! rowspan=2 | ''p''<sub>2</sub>
  ! colspan=2 | ''p''<sub>1</sub> + ''p''<sub>2</sub> under...
  ! colspan=2 | ''p''<sub>1</sub> + ''p''<sub>2</sub> के अंतर्गत
  |-
  |-
  ! [[Polynomial ring|K[''x'']]]
  ! [[Polynomial ring|K[''x'']]]
Line 91: Line 90:
  | 0
  | 0
  |}
  |}
कंप्यूटर विज्ञान अनुप्रयोगों में, विशेषता 2 के परिमित क्षेत्रों के लिए संचालन को सरल किया जाता है, जिसे GF(2<sup>n</sup>) Galois क्षेत्र, इन क्षेत्रों को अनुप्रयोगों के लिए विशेष रूप से लोकप्रिय विकल्प बनाते हैं।
कंप्यूटर विज्ञान अनुप्रयोगों में, विशेषता 2 के परिमित क्षेत्रों के लिए संचालन को सरल किया जाता है, जिसे GF(2<sup>''n''</sup>) गैलोज़ क्षेत्र भी कहा जाता है, जिससे ये क्षेत्र अनुप्रयोगों के लिए विशेष रूप से लोकप्रिय विकल्प बन जाते हैं।


== गुणन ==
== गुणन ==
<!-- Please do not change the examples to use a finite field besides x8 + x4 + x3 + x + 1; the Rijndael page links here and so people are expecting to get help figuring out Rijndael's finite field form this article -->
 
परिमित क्षेत्र में गुणन गुणन [[तुल्यता संबंध]] परिमित क्षेत्र को परिभाषित करने के लिए उपयोग किया जाने वाला एक अलघुकरणीय बहुपद अपचायक बहुपद है। (अर्थात्, यह गुणन है जिसके बाद भाजक के रूप में घटते हुए बहुपद का उपयोग करते हुए विभाजन होता है—शेष गुणनफल होता है।) प्रतीक • का उपयोग परिमित क्षेत्र में गुणन को निरूपित करने के लिए किया जा सकता है।
परिमित क्षेत्र में गुणन गुणन [[तुल्यता संबंध]] परिमित क्षेत्र को परिभाषित करने के लिए उपयोग किया जाने वाला एक अलघुकरणीय बहुपद अपचायक बहुपद है। अर्थात्, यह गुणन है जिसके बाद भाजक के रूप में घटते हुए बहुपद का उपयोग करते हुए विभाजन होता है—शेष गुणनफल होता है। प्रतीक • का उपयोग परिमित क्षेत्र में गुणन को निरूपित करने के लिए किया जा सकता है।


=== [[रिजंडैल]] (एईएस) परिमित क्षेत्र ===
=== [[रिजंडैल]] (एईएस) परिमित क्षेत्र ===
रिजेंडेल (एईएस के रूप में मानकीकृत) 256 तत्वों के साथ विशेषता 2 परिमित क्षेत्र का उपयोग करता है, जिसे गैलोइस फील्ड GF(2) भी कहा जा सकता है।<sup>8</sup>). यह गुणन के लिए निम्न अपचायक बहुपद का प्रयोग करता है:
रिजेंडेल (एईएस के रूप में मानकीकृत) 256 तत्वों के साथ विशेषता 2 परिमित क्षेत्र का उपयोग करता है, जिसे गैलोइस क्षेत्र GF(2<sup>8</sup>) भी कहा जा सकता है। यह गुणन के लिए निम्न बहुपद को कम करने का प्रयोग करता है:


:एक्स<sup>8</sup> + एक्स<sup>4</sup> + x<sup>3</sup> + x + 1।
:''x''<sup>8</sup> + ''x''<sup>4</sup> + ''x''<sup>3</sup> + ''x'' + 1.


उदाहरण के लिए, रिजेंडेल के क्षेत्र में {53} • {CA} = {01} क्योंकि
उदाहरण के लिए, रिजेंडेल के क्षेत्र में {53} • {CA} = {01} क्योंकि
Line 126: Line 125:
| = || 1 (decimal)
| = || 1 (decimal)
|}
|}
उत्तरार्द्ध को लंबे विभाजन के माध्यम से प्रदर्शित किया जा सकता है (द्विआधारी संकेतन का उपयोग करके दिखाया गया है, क्योंकि यह कार्य के लिए अच्छी तरह से उधार देता है। ध्यान दें कि विशेष या # सत्य तालिका उदाहरण में लागू होती है और अंकगणितीय घटाव नहीं, जैसा कि कोई ग्रेड-स्कूल लंबे विभाजन में उपयोग कर सकता है। .):
उत्तरार्द्ध को विस्तृत विभाजन के माध्यम से प्रदर्शित किया जा सकता है बाइनरी संकेतन का उपयोग करके दिखाया गया है, क्योंकि यह फलन को अच्छी तरह से प्रदान करता है। ध्यान दें कि विशेष OR को उदाहरण में प्रयुक्त किया गया है और अंकगणितीय व्यवकलन नहीं है, जैसा कि कोई प्राथमिक-स्कूल विस्तृत विभाजन में उपयोग कर सकता है।:
               
  11111101111110 (mod) 100011011
  ^100011011
  01110000011110
  ^100011011
  0110110101110
  ^100011011
  010101110110
  ^100011011
  00100011010
  ^100011011
  000000001
तत्व {53} और {CA} एक दूसरे के गुणात्मक व्युत्क्रम हैं क्योंकि उनका गुणनफल 1 है।


          <यू> </यू>
इस विशेष परिमित क्षेत्र में गुणा "कृषक एल्गोरिथ्म" के एक संशोधित संस्करण का उपयोग करके भी किया जा सकता है। प्रत्येक बहुपद को उपरोक्त के समान बाइनरी संकेत का उपयोग करके दर्शाया गया है। आठ बिट पर्याप्त हैं क्योंकि प्रत्येक (कम) बहुपद के संदर्भ में केवल घात 0 से 7 संभव हैं।
          11111101111110 (आधुनिक) 100011011
          <यू>^100011011 </यू>
          01110000011110
          ^<यू>100011011</यू>
            0110110101110
            <यू>^100011011 </यू>
            010101110110
            <यू>^100011011 </यू>
              00100011010
              <यू>^100011011 </यू>
                000000001


(तत्व {53} और {CA} एक दूसरे के गुणक व्युत्क्रम हैं क्योंकि उनका गुणनफल [[1 (संख्या)]] है।)
यह एल्गोरिदम तीन चर (कंप्यूटर प्रोग्रामिंग अर्थ में) का उपयोग करता है, प्रत्येक में आठ-बिट प्रतिनिधित्व होता है। '''a''' और '''b''' को गुना के साथ आरंभ किया जाता है; '''p''' गुणनफल को संग्रहीत करता है और इसे 0 से प्रारंभ किया जाना चाहिए।


इस विशेष परिमित क्षेत्र में गुणन भी गुणन एल्गोरिथम#रूसी ​​किसान गुणन|किसान एल्गोरिथम के एक संशोधित संस्करण का उपयोग करके किया जा सकता है। प्रत्येक बहुपद को उपरोक्त के समान बाइनरी नोटेशन का उपयोग करके दर्शाया गया है। आठ बिट पर्याप्त हैं क्योंकि प्रत्येक (कम) बहुपद के संदर्भ में केवल डिग्री 0 से 7 संभव हैं।
एल्गोरिदम के प्रारंभ और अंत में, और प्रत्येक पुनरावृत्ति के प्रारंभ और अंत में, यह [[अपरिवर्तनीय (कंप्यूटर विज्ञान)]] सत्य है: '''a b + p''' गुणनफल है। एल्गोरिदम प्रारंभ होने पर यह स्पष्ट रूप से सत्य है। जब एल्गोरिदम समाप्त हो जाता है, तो '''a''' या b शून्य होगा इसलिए p में गुणनफल होगा।


यह एल्गोरिथ्म तीन [[चर (प्रोग्रामिंग)]] का उपयोग करता है (कंप्यूटर प्रोग्रामिंग अर्थ में), प्रत्येक में आठ-बिट प्रतिनिधित्व होता है। a और b को गुण्य के साथ आरंभ किया जाता है; p उत्पाद को जमा करता है और इसे 0 से प्रारंभ किया जाना चाहिए।
* निम्नलिखित लूप को आठ बार (प्रति बिट एक बार) सक्रिय करे। पुनरावृत्ति से पहले '''a''' या '''b''' शून्य होने पर रोकना सही है:


एल्गोरिदम की शुरुआत और अंत में, और प्रत्येक पुनरावृत्ति की शुरुआत और अंत में, यह [[अपरिवर्तनीय (कंप्यूटर विज्ञान)]] सत्य है: ए बी + पी उत्पाद है। एल्गोरिदम शुरू होने पर यह स्पष्ट रूप से सच है। जब एल्गोरिदम समाप्त हो जाता है, तो ए या बी शून्य होगा इसलिए पी में उत्पाद होगा।
# यदि '''b''' का सबसे दाहिना बिट विशेष या गुणन '''p''' को '''a''' के मान से निर्धारित किया गया है। यह बहुपद जोड़ है। '''edit'''
#'''b''' को एक बिट को दाईं ओर विस्थापित करें, सबसे दाहिने बिट को हटा दें, और बाईं ओर के बिट को शून्य मान दें। यह ''x''<sup>0</sup> पद को हटाते हुए बहुपद को x से विभाजित करता है।
#इस बात पर ध्यान रखें कि क्या बाईं ओर का बिट '''a''' पर समायोजित है और इस मान को घात कहते हैं।
#'''a''' बिट को बाईं ओर विस्थापित करें, सबसे बाएं बिट को हटा दें, और नए को सबसे दाएं बिट को शून्य बना दें। यह बहुपद को x से गुणा करता है, लेकिन हमें अभी भी घात की गणना करनी होगी जो x7 के गुणांक का प्रतिनिधित्व करता है।
#यदि घात का मान एक, विशेष या हेक्साडेसिमल संख्या 0x1b (बाइनरी में 00011011) के साथ होता है। 0x1b अलघुकरणीय बहुपद से समान है जिसमें उच्च पद का हटाया जाता है। संकल्पनात्मक रूप से, अलघुकरणीय बहुपद का उच्च पद और मॉड्यूल 2 से 0 जोड़ते हैं।


* निम्नलिखित लूप को आठ बार चलाएं (प्रति बिट एक बार)। पुनरावृत्ति से पहले a या b शून्य होने पर रोकना ठीक है:
* '''p''' के पास गुणन है
*# यदि b का सबसे दाहिना बिट सेट किया गया है, अनन्य या उत्पाद p a के मान से। यह बहुपद जोड़ है।
* # एक बिट को दाईं ओर शिफ्ट करें, सबसे दाहिने बिट को हटा दें, और बाईं ओर के बिट को शून्य मान दें। यह ''x'' को हटाते हुए बहुपद को x से विभाजित करता है<sup>0</sup> अवधि।
*# इस बात का ध्यान रखें कि क्या बाईं ओर का बिट एक पर सेट है और इस मान को कैरी करें।
*# एक बिट को बाईं ओर शिफ्ट करें, सबसे बाएं बिट को हटा दें, और नए को सबसे दाएं बिट को शून्य बना दें। यह बहुपद को x से गुणा करता है, लेकिन हमें अभी भी कैरी का हिसाब रखना होगा जो '' x '' के गुणांक का प्रतिनिधित्व करता है।<sup>7</उप>।
*# यदि कैरी का मान एक, अनन्य या हेक्साडेसिमल संख्या के साथ था <code>0x1b</code> (00011011 बाइनरी में)। <code>0x1b</code> अलघुकरणीय बहुपद के संगत उच्च पद को समाप्त कर दिया गया है। संकल्पनात्मक रूप से, अलघुकरणीय बहुपद का उच्च पद और मॉड्यूल 2 से 0 जोड़ते हैं।
* p के पास अब गुणनफल है


यह एल्गोरिथ्म विशेषता 2 के अन्य क्षेत्रों में गुणा करने के लिए आसानी से सामान्यीकृत करता है, , बी, और पी की लंबाई और मान को बदलता है <code>0x1b</code> उचित रूप से।
यह एल्गोरिथ्म विशेषता 2 के अन्य क्षेत्रों में गुणा करने के लिए आसानी से सामान्यीकृत करता है, '''a''', '''b''', और '''p''' की लंबाई और मान 0x1b को उपयुक्त रूप से बदलता है।


== गुणक व्युत्क्रम ==
== गुणात्मक प्रतिलोम ==
{{See also|Itoh–Tsujii inversion algorithm}}
{{See also|इटोह-त्सुजी प्रतिलोम एल्गोरिथ्म}}


एक परिमित क्षेत्र के तत्व a के गुणक व्युत्क्रम की गणना कई अलग-अलग तरीकों से की जा सकती है:
एक परिमित क्षेत्र के तत्व a के गुणक व्युत्क्रम की गणना कई अलग-अलग तरीकों से की जा सकती है:


* फ़ील्ड में प्रत्येक संख्या से गुणा करके जब तक गुणनफल एक न हो जाए। यह एक [[क्रूर-बल खोज]] है।
* क्षेत्र में प्रत्येक संख्या से गुणा करके जब तक गुणन एक न हो जाए। यह एक पशु बल खोज है।
* चूँकि GF के अशून्य तत्व(''p<sup>n</sup>) गुणन के संबंध में एक [[परिमित समूह]] बनाते हैं, {{nowrap|1=''a''{{i sup|''p<sup>n</sup>''−1}} = 1}} (के लिए {{nowrap|''a'' ≠ 0}}), इस प्रकार a का व्युत्क्रम a है{{i sup|''p<sup>n</sup>''−2}}.
* चूंकि GF(''p<sup>n</sup>'') के शून्येतर तत्व गुणा के संबंध में एक परिमित समूह बनाते हैं, ''a<sup>pn</sup>''<sup>−1</sup> = 1 ( ''a'' ≠ 0 के लिए), इस प्रकार a का व्युत्क्रम ''a<sup>pn</sup>''<sup>−2</sup> है।
* विस्तारित यूक्लिडियन [[लोगारित्म]] का उपयोग करके।
* विस्तारित यूक्लिडियन एल्गोरिथम का उपयोग करके प्राप्त करता है।
* परिमित क्षेत्र के लिए लघुगणक और [[घातांक]] सारणी बनाकर, p से लघुगणक घटाना<sup>n</sup> − 1 और परिणाम को प्रतिपादित करना।
* परिमित क्षेत्र के लिए लघुगणक और घातांक सारणी बनाकर, pn − 1 से लघुगणक घटाकर और परिणाम को घातांक बनाता है।
* परिमित क्षेत्र के लिए एक मॉड्यूलर गुणात्मक व्युत्क्रम तालिका बनाकर और एक लुकअप करके।
* परिमित क्षेत्र के लिए एक मॉड्यूलर गुणक व्युत्क्रम सारणी बनाकर और जांच कर रहा है।
* एक परिमित क्षेत्र अंकगणित # समग्र क्षेत्र में मानचित्रण करके जहां व्युत्क्रम सरल है, और वापस मानचित्रण करना।
* एक समग्र क्षेत्र में मानचित्रण करके जहां प्रतिलोम सरल होता है, और वापस मानचित्रण करता है।
* एक विशेष पूर्णांक (प्राइम ऑर्डर के परिमित क्षेत्र के मामले में) या एक विशेष बहुपद (गैर-प्राइम ऑर्डर के परिमित क्षेत्र के मामले में) का निर्माण करके और इसे से विभाजित करके।<ref>{{citation|last1=Grošek|first1= O.|last2=Fabšič|first2= T.|year= 2018|title= Computing multiplicative inverses in finite fields by long division|journal= Journal of Electrical Engineering|volume= 69|issue=5|pages=400–402|url= https://www.degruyter.com/downloadpdf/j/jee.2018.69.issue-5/jee-2018-0059/jee-2018-0059.pdf|doi=10.2478/jee-2018-0059|s2cid= 115440420|doi-access= free}}</ref>
* अभाज्य कोटि के परिमित क्षेत्र की स्थितियों में एक विशेष पूर्णांक का निर्माण करके या गैर-अभाज्य क्रम के परिमित क्षेत्र की स्थितियों में एक विशेष बहुपद का निर्माण करके और इसे a से विभाजित करके प्राप्त किया जाता है।<ref>{{citation|last1=Grošek|first1= O.|last2=Fabšič|first2= T.|year= 2018|title= Computing multiplicative inverses in finite fields by long division|journal= Journal of Electrical Engineering|volume= 69|issue=5|pages=400–402|url= https://www.degruyter.com/downloadpdf/j/jee.2018.69.issue-5/jee-2018-0059/jee-2018-0059.pdf|doi=10.2478/jee-2018-0059|s2cid= 115440420|doi-access= free}}</ref>




== कार्यान्वयन के गुर ==


=== जेनरेटर आधारित टेबल ===
== कार्यान्वयन युक्ति ==
छोटे गैलोइस क्षेत्रों पर गैलोइस क्षेत्र की गणना के लिए एल्गोरिदम विकसित करते समय, एक सामान्य प्रदर्शन अनुकूलन दृष्टिकोण एक समूह के जनरेटिंग सेट को खोजना है # पूरी तरह से उत्पन्न समूह जी और पहचान का उपयोग करना:
 
=== जनित्र आधारित सारणी ===
छोटे गैलोइस क्षेत्रों पर गैलोइस क्षेत्र गणना के लिए एल्गोरिदम विकसित करते समय, एक सामान्य प्रदर्शन अनुकूलन दृष्टिकोण जनित्र g को जाँचना और पहचान का उपयोग करना है:


:<math>ab = g^{\log_g(ab)} = g^{\log_g(a) + \log_g (b)}</math>
:<math>ab = g^{\log_g(ab)} = g^{\log_g(a) + \log_g (b)}</math>
लॉग के लिए टेबल लुकअप के अनुक्रम के रूप में गुणन को लागू करने के लिए<sub>''g''</sub>() और जी<sup>y</sup> फ़ंक्शन और एक पूर्णांक जोड़ ऑपरेशन। यह उस संपत्ति का शोषण करता है जिसमें प्रत्येक परिमित क्षेत्र में जनरेटर होते हैं। रिजेंडेल क्षेत्र उदाहरण में, बहुपद {{nowrap|''x'' + 1}} (या {03}) एक ऐसा जनरेटर है। एक बहुपद के लिए एक जनरेटर होने के लिए एक आवश्यक लेकिन पर्याप्त नहीं है इरेड्यूसिबल बहुपद होना।
log<sub>''g''</sub>(''a'') और ''g<sup>y</sup>'' फलनों और एक पूर्णांक जोड़ संक्रिया के लिए सारणी जांच के अनुक्रम के रूप में गुणन को कार्यान्वित करने के लिए है। यह उस गुण का उपयोग करता है जिसमें प्रत्येक परिमित क्षेत्र में जनित्र होते हैं। रिजेंडेल क्षेत्र के उदाहरण में, बहुपद x + 1 (या {03}) एक ऐसा जनित्र है। एक बहुपद के जनित्र होने के लिए एक आवश्यक लेकिन पर्याप्त शर्त नहीं है कि वह अलघुकरणीय हो।


या बी के शून्य होने के विशेष मामले के लिए एक कार्यान्वयन का परीक्षण होना चाहिए, क्योंकि उत्पाद भी शून्य होगा।
a या b के शून्य होने के विशेष स्थितियों के लिए एक कार्यान्वयन का परीक्षण होना चाहिए, क्योंकि गुणनफल भी शून्य होगा।


पहचान के साथ गुणात्मक व्युत्क्रम निर्धारित करने के लिए इसी रणनीति का उपयोग किया जा सकता है:
पहचान के साथ गुणात्मक व्युत्क्रम निर्धारित करने के लिए इसी योजना का उपयोग किया जा सकता है:


:<math>a^{-1} = g^{\log_g\left(a^{-1}\right)} = g^{-\log_g(a)} = g^{|g| - \log_g(a)}</math>
:<math>a^{-1} = g^{\log_g\left(a^{-1}\right)} = g^{-\log_g(a)} = g^{|g| - \log_g(a)}</math>
यहाँ, जनरेटर का क्रम (समूह सिद्धांत), {{abs|''g''}}, क्षेत्र के गैर-शून्य तत्वों की संख्या है। जीएफ के मामले में (2<sup>8</sup>) यह है {{nowrap|1=2<sup>8</sup> − 1 = 255}}. यही कहना है, रिजेंडेल उदाहरण के लिए: {{nowrap|1=(''x'' + 1)<sup>255</sup> = 1}}. तो यह दो लुक अप टेबल और एक पूर्णांक घटाव के साथ किया जा सकता है। घातांक के लिए इस विचार का उपयोग करने से भी लाभ मिलता है:
यहाँ, जनित्र का क्रम (समूह सिद्धांत), {{abs|''g''}}, क्षेत्र के गैर-शून्य तत्वों की संख्या है। GF(2<sup>8</sup>) की स्थितियों में यह 28 − 1 = 255 है। अर्थात, रिजेंडेल उदाहरण के लिए: {{nowrap|1=(''x'' + 1)<sup>255</sup> = 1}} है। तो यह दो अवलोकन सारणी और एक पूर्णांक व्यवकलन के साथ किया जा सकता है। घातांक के लिए इस विचार का उपयोग करने से भी लाभ मिलता है:


:<math>a^n = g^{\log_g\left(a^n\right)} = g^{n\log_g(a)} = g^{n\log_g(a) \pmod{|g|}}</math>
:<math>a^n = g^{\log_g\left(a^n\right)} = g^{n\log_g(a)} = g^{n\log_g(a) \pmod{|g|}}</math>
इसके लिए दो टेबल लुक अप, एक पूर्णांक गुणन और एक पूर्णांक मॉडुलो ऑपरेशन की आवश्यकता होती है। विशेष मामले के लिए फिर से एक परीक्षण {{nowrap|1=''a'' = 0}} किया जाना चाहिए।
इसके लिए दो सारणी अवलोकन, एक पूर्णांक गुणन और एक पूर्णांक मापांक संक्रिया की आवश्यकता होती है। विशेष स्थितियों के लिए पुनः एक परीक्षण {{nowrap|1=''a'' = 0}} किया जाना चाहिए।


हालाँकि, क्रिप्टोग्राफ़िक कार्यान्वयन में, ऐसे कार्यान्वयन से सावधान रहना होगा क्योंकि कई माइक्रोप्रोसेसरों के CPU कैश मेमोरी एक्सेस के लिए परिवर्तनशील समय की ओर ले जाते हैं। इससे ऐसे कार्यान्वयन हो सकते हैं जो एक टाइमिंग हमले के प्रति संवेदनशील हैं।
हालाँकि, क्रिप्टोग्राफ़िक कार्यान्वयन में, ऐसे कार्यान्वयन से सावधान रहना होगा क्योंकि कई माइक्रोप्रोसेसरों के सीपीयू कैश मेमोरी अभिगम्य के लिए परिवर्तनशील समय की ओर ले जाते हैं। इससे ऐसे कार्यान्वयन हो सकते हैं जो समय आक्षेप के प्रति संवेदनशील हैं।


=== कैरीलेस गुणा ===
=== घात-रहित गुणा ===
बाइनरी फ़ील्ड्स के लिए GF(2<sup>n</sup>), फ़ील्ड गुणन को CLMUL अनुदेश सेट जैसे कैरीलेस गुणा का उपयोग करके कार्यान्वित किया जा सकता है, जो n ≤ 64 के लिए अच्छा है। एक गुणन एक उत्पाद का उत्पादन करने के लिए एक कैरीलेस गुणा का उपयोग करता है (2n - 1 बिट तक), दूसरा भागफल = ⌊उत्पाद / (फ़ील्ड बहुपद)⌋, क्षेत्र बहुपद द्वारा भागफल का गुणा, फिर एक xor: परिणाम = उत्पाद ⊕ ((फ़ील्ड बहुपद) ⌊ उत्पाद / (फ़ील्ड बहुपद)⌋). पिछले 3 चरणों (pclmulqdq, pclmulqdq, xor) का उपयोग x[[86]] pclmulqdq निर्देश का उपयोग करके CRC की तीव्र संगणना के लिए बैरेट रिडक्शन चरण में किया जाता है।<ref>{{cite web |url=https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf |title=PCLMULQDQ निर्देश का उपयोग करके सामान्य बहुपदों के लिए तेज़ CRC संगणना|date=2009 |website=www.intel.com |access-date=2020-08-08}}</ref>
बाइनरी क्षेत्र्स GF(2n) के लिए, क्षेत्र गुणन को घात-रहित गुणन जैसे सीएलएमयूएल निर्देश समुच्चय का उपयोग करके कार्यान्वित किया जा सकता है, जो n ≤ 64 के लिए अच्छा है। एक गुणन एक उत्पाद का उत्पादन करने के लिए एक घात-रहित गुणा (2n - 1 बिट तक) का उपयोग करता है, भागफल = ⌊उत्पाद / (क्षेत्र बहुपद)⌋, क्षेत्र बहुपद द्वारा भागफल का गुणा, फिर एक xor: परिणाम = उत्पाद ⊕ ((क्षेत्र बहुपद) ⌊उत्पाद / (क्षेत्र बहुपद)⌋) उत्पन्न करने के लिए क्षेत्र बहुपद के पूर्व-गणना किए गए व्युत्क्रम का एक अन्य घात-रहित गुणा है। पिछले 3 चरणों (पीसीएलएमयूएलक्यूडीक्यू, पीसीएलएमयूएलक्यूडीक्यू,, xor) का उपयोग x86 पीसीएलएमयूएलक्यूडीक्यू निर्देश का उपयोग करके सीआरसी की तेजी से गणना के लिए बैरेट न्यून चरण में किया जाता है।<ref>{{cite web |url=https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf |title=PCLMULQDQ निर्देश का उपयोग करके सामान्य बहुपदों के लिए तेज़ CRC संगणना|date=2009 |website=www.intel.com |access-date=2020-08-08}}</ref>




=== समग्र क्षेत्र ===
=== संयुक्त क्षेत्र ===
जब k एक [[समग्र संख्या]] है, तो बाइनरी फ़ील्ड GF(2<sup>k</sup>) इसके एक सबफ़ील्ड के एक्सटेंशन फ़ील्ड में, यानी GF((2<sup>मी</sup>)<sup>n</sup>) जहां {{nowrap|1=''k'' = ''m'' ''n''}}. इन समरूपताओं में से एक का उपयोग गणितीय विचारों को सरल बना सकता है क्योंकि विस्तार की डिग्री व्यापार के साथ छोटी होती है कि तत्व अब एक बड़े उपक्षेत्र में प्रदर्शित होते हैं।<ref>{{cite web |url=http://www.ccs.neu.edu/home/alina/papers/tos-gf.pdf |title=Efficient Software Implementations of Large FiniteFieldsGF(2n) for Secure Storage Applications |website=www.ccs.neu.edu |access-date=2020-08-08}}</ref> हार्डवेयर कार्यान्वयन के लिए गेट काउंट को कम करने के लिए, प्रक्रिया में कई नेस्टिंग शामिल हो सकते हैं, जैसे GF(2<sup>8</sup>) से GF(((2<sup>2</sup>)<sup>2</sup>)<sup>2</sup>).<ref>{{Cite web|url=https://github.com/bpdegnan/aes|title=bpdegnan/aes|website=GitHub}}</ref> एक कार्यान्वयन बाधा है, दो अभ्यावेदन में संचालन संगत होना चाहिए, इसलिए समरूपता के स्पष्ट उपयोग की आवश्यकता है। अधिक सटीक रूप से, समरूपता को मानचित्र () द्वारा निरूपित किया जाएगा, यह एक आक्षेप है जो GF (2) के एक तत्व को मैप करता है<sup>k</sup>) से GF((2<sup>मी</sup>)<sup>n</sup>), संतोषजनक: {{nowrap|1=map(''a'' + ''b'') = map(''a'') + map(''b'')}} और {{nowrap|1=map(''a'' ''b'') = map(''a'') map(''b'')}}, जहां बाईं ओर संचालन GF(2<sup>k</sup>) मानचित्रण से पहले और दाईं ओर संचालन GF में होता है ((2<sup>मी</sup>)<sup>n</sup>) मैपिंग के बाद।<ref>[https://web.stanford.edu/class/ee392d/Chap7.pdf]{{dead link|date=August 2020}}</ref> आइसोमोर्फिज्म को आमतौर पर k बिट मैट्रिक्स द्वारा k पंक्ति के साथ कार्यान्वित किया जाता है, जिसका उपयोग GF(2) के एक तत्व के GF(2) पर मैट्रिक्स गुणा करने के लिए किया जाता है।<sup>k</sup>) को 1 बिट मैट्रिक्स द्वारा k पंक्ति के रूप में माना जाता है। α को GF के आदिम तत्व के रूप में परिभाषित करें (2<sup>k</sup>), और β GF के आदिम तत्व के रूप में ((2<sup>मी</sup>)<sup>एन</sup>). फिर बी<sup>जे = नक्शा (ए<sup>j</sup>) और ए<sup>j</sup> = map<sup>-1</sup>(बी<sup>जे </सुप>). Α और β के मान मैपिंग मैट्रिक्स और इसके व्युत्क्रम को निर्धारित करते हैं। चूँकि वास्तविक गणित GF में किया जाता है ((2<sup>मी</sup>)<sup>n</sup>), GF के लिए अपचायक बहुपद ((2<sup>मी</sup>)<sup>n</sup>) आमतौर पर आदिम होता है और GF में β = x ((2<sup>मी</sup>)<sup>एन</sup>). जोड़ और गुणा के लिए अनुकूलता बाधा को पूरा करने के लिए, GF(2) के किसी आदिम तत्व α को चुनने के लिए एक खोज की जाती है<sup>k</sup>) जो बाधा को पूरा करेगा। मामले में जहां जीएफ के लिए बहुपद को कम करना (2<sup>k</sup>) आदिम है, एक वैकल्पिक मानचित्रण विधि संभव है: GF(2) के लिए घटते बहुपद के 1 बिट गुणांक<sup>k</sup>) को GF(2) के m बिट तत्वों 0 या 1 के रूप में समझा जाता है<sup>m</sup>), और डिग्री n के m आदिम कारक होंगे, जिनमें से कोई भी GF के लिए घटते बहुपद के रूप में उपयोग किया जा सकता है ((2<sup>मी</sup>)<sup>एन</sup>). एक समग्र क्षेत्र में मैपिंग को जीएफ (पी<sup>k</sup>) एक समग्र क्षेत्र जैसे कि GF((p<sup>मी</sup>)<sup>n</sup>), p के लिए कोई अभाज्य।
जब k एक सम्मिश्र संख्या है, तो बाइनरी क्षेत्र GF(2<sup>''k''</sup>) से इसके एक उपक्षेत्र के विस्तार क्षेत्र, अर्थात GF((2<sup>''m''</sup>)<sup>''n''</sup>) में समरूपता सम्मिलित होगी, जहाँ k = m n है। इन समरूपताओं में से एक का उपयोग गणितीय विचारों को सरल बना सकता है क्योंकि विस्तार की घात समंजन के साथ छोटी होती है कि तत्वों को अब एक बड़े उपक्षेत्र में दर्शाया जाता है।<ref>{{cite web |url=http://www.ccs.neu.edu/home/alina/papers/tos-gf.pdf |title=Efficient Software Implementations of Large FiniteFieldsGF(2n) for Secure Storage Applications |website=www.ccs.neu.edu |access-date=2020-08-08}}</ref> हार्डवेयर कार्यान्वयन के लिए गेट गणना को कम करने के लिए, प्रक्रिया में कई नेस्टिंग सम्मिलित हो सकते हैं, जैसे GF(2<sup>8</sup>) to GF(((2<sup>2</sup>)<sup>2</sup>)<sup>2</sup>) में मानचित्रित होती है।<ref>{{Cite web|url=https://github.com/bpdegnan/aes|title=bpdegnan/aes|website=GitHub}}</ref> एक कार्यान्वयन बाधा है, दो अभ्यावेदन में संचालन संगत होना चाहिए, इसलिए समरूपता के स्पष्ट उपयोग की आवश्यकता है। अधिक सटीक रूप से, समरूपता को मानचित्र () द्वारा निरूपित किया जाएगा, यह एक आक्षेप है जो GF(2<sup>''k''</sup>) के एक तत्व को GF((2<sup>''m''</sup>)<sup>''n''</sup>) में मानचित्रित करता है, परिणामस्वरूप: map(''a'' + ''b'') = map(''a'') + map(''b'') और map(''a'' ''b'') = map(''a'') map(''b'') जहां मानचित्रण से पहले GF(2<sup>''k''</sup>) में बाईं ओर के संचालन होते हैं और मानचित्रण के बाद दाईं ओर के संचालन GF((2<sup>''m''</sup>)<sup>''n''</sup>) में होते हैं।<ref>[https://web.stanford.edu/class/ee392d/Chap7.pdf]{{dead link|date=August 2020}}</ref> समाकृतिकता को सामान्य रूप से k बिट आव्यूह द्वारा k रो के साथ प्रयुक्त किया जाता है, जिसका उपयोग GF(2<sup>''k''</sup>) के एक तत्व के GF (2) से गुणा करने के लिए किया जाता है, जिसे 1 बिट आव्यूह द्वारा k रो के रूप में माना जाता है। α को GF(2<sup>''k''</sup>) के प्रारम्भिक तत्व के रूप में परिभाषित करें, और β को GF((2<sup>''m''</sup>)<sup>''n''</sup>) के प्रारम्भिक तत्व तब ''β<sup>j</sup>'' = map(''α<sup>j</sup>'') और map<sup>−1</sup>(''β<sup>j</sup>'') के रूप में परिभाषित करें। Α और β के मान मानचित्रण आव्यूह और इसके व्युत्क्रम को निर्धारित करते हैं। चूंकि वास्तविक गणित GF((2<sup>''m''</sup>)<sup>''n''</sup>) में किया जाता है, GF((2<sup>''m''</sup>)<sup>''n''</sup>) के लिए कम करने वाला बहुपद सामान्य रूप से प्रारम्भिक होता है और GF((2<sup>''m''</sup>)<sup>''n''</sup>) में β = x होता है। जोड़ और गुणा के लिए अनुकूलता बाधा को पूरा करने के लिए, GF(2<sup>''k''</sup>) के किसी भी प्रारम्भिक तत्व α को चयन करने के लिए खोज की जाती है जो बाधा को पूरा करेगा। ऐसी स्थितियों में जहां GF(2<sup>''k''</sup>) के लिए बहुपद को कम करना प्रारम्भिक है, एक वैकल्पिक मानचित्रण विधि संभव है: GF(2<sup>''k''</sup>) के लिए कम करने वाले बहुपद के 1 बिट गुणांक की व्याख्या GF(2m) के m बिट तत्वों 0 या 1 के रूप में की जाती है, और घात n के m प्रारम्भिक कारक होंगे, जिनमें से कोई भी GF((2<sup>''m''</sup>)<sup>''n''</sup>) के लिए कम करने वाले बहुपद के रूप में उपयोग किया जा सकता है। एक समग्र क्षेत्र में मानचित्रण को GF(''p<sup>k</sup>'') को किसी भी अभाज्य के लिए GF((''p<sup>m</sup>'')<sup>''n''</sup>) जैसे समग्र क्षेत्र में मानचित्रण करने के लिए सामान्यीकृत किया जा सकता है।


== प्रोग्राम उदाहरण ==
== प्रोग्राम उदाहरण ==


=== [[सी (प्रोग्रामिंग भाषा)]] ===
=== [[सी (प्रोग्रामिंग भाषा)|C (प्रोग्रामिंग भाषा)]] ===
यहाँ कुछ C (प्रोग्रामिंग लैंग्वेज) कोड दिया गया है जो ऑर्डर 2 की विशेषता 2 परिमित क्षेत्र में संख्याओं को जोड़ और गुणा करेगा<sup>8</sup>, उदाहरण के लिए रिजेंडेल एल्गोरिथम या रीड-सोलोमन द्वारा उपयोग किया जाता है, प्राचीन मिस्री गुणा#रूसी ​​किसान गुणन का उपयोग करते हुए:
यहाँ कुछ C (प्रोग्रामिंग भाषा) कोड दिया गया है जो क्रम 2 की विशेषता 2 परिमित क्षेत्र में संख्याओं को जोड़ और गुणा करेगा<sup>8</sup>, उदाहरण के लिए रिजेंडेल एल्गोरिथम या रीड-सोलोमन द्वारा उपयोग किया जाता है, रूसी कृषक गुणन एल्गोरिथ्म का उपयोग करते हुए:


<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
Line 230: Line 230:
}
}
</syntaxhighlight>
</syntaxhighlight>
इस उदाहरण में टाइमिंग अटैक | कैश, टाइमिंग, और ब्रांच प्रेडिक्शन साइड-चैनल लीक है, और क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त नहीं है।
इस उदाहरण में कैशे, समय, और शाखा भविष्यवाणी पार्श्व-प्रणाली प्रदर्शित है, और क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त नहीं है।


=== डी प्रोग्रामिंग उदाहरण ===
=== D प्रोग्रामिंग उदाहरण ===
यह [[डी (प्रोग्रामिंग भाषा)]] प्रोग्राम रिजेंडेल के परिमित क्षेत्र में संख्याओं को गुणा करेगा और नेटपीबीएम प्रारूप # पीजीएम उदाहरण छवि उत्पन्न करेगा:
यह [[डी (प्रोग्रामिंग भाषा)|D (प्रोग्रामिंग भाषा)]] प्रोग्राम रिजेंडेल के परिमित क्षेत्र में संख्याओं को गुणा करेगा और पीजीएम छवि उत्पन्न करेगा:
<syntaxhighlight lang="D">
<syntaxhighlight lang="D">
/**
/**
Line 265: Line 265:
         }
         }
}</syntaxhighlight>
}</syntaxhighlight>
साइड चैनल से बचने के लिए यह उदाहरण किसी भी शाखा या टेबल लुकअप का उपयोग नहीं करता है और इसलिए क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त है।
पार्श्व-प्रणाली से संरक्षण के लिए यह उदाहरण किसी भी शाखा या सारणी अवलोकन का उपयोग नहीं करता है और इसलिए क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त है।


== यह भी देखें ==
== यह भी देखें ==
* जेक का लघुगणक
* ज़ेच का लघुगणक


==संदर्भ==
==संदर्भ==
Line 284: Line 284:
* {{cite web|url=http://web.eecs.utk.edu/~plank/plank/papers/CS-07-593/|title=Fast Galois Field Arithmetic Library in C/C++|first1=James S.|last1=Planck|year=2007}}
* {{cite web|url=http://web.eecs.utk.edu/~plank/plank/papers/CS-07-593/|title=Fast Galois Field Arithmetic Library in C/C++|first1=James S.|last1=Planck|year=2007}}
* [[Wikiversity:Reed–Solomon codes for coders#Finite field arithmetic|Wikiversity: Reed–Solomon for Coders – Finite Field Arithmetic]]
* [[Wikiversity:Reed–Solomon codes for coders#Finite field arithmetic|Wikiversity: Reed–Solomon for Coders – Finite Field Arithmetic]]
[[Category: अंकगणित]] [[Category: परिमित क्षेत्र | अंकगणित]] [[Category: उदाहरण डी कोड वाले लेख]] [[Category: उदाहरण सी कोड वाले लेख]]


[[Category: Machine Translated Page]]
[[Category:All articles with dead external links]]
[[Category:Articles with dead external links from August 2020]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Created On 02/06/2023]]
[[Category:Created On 02/06/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:अंकगणित]]
[[Category:उदाहरण डी कोड वाले लेख]]
[[Category:उदाहरण सी कोड वाले लेख]]
[[Category:परिमित क्षेत्र| अंकगणित]]

Latest revision as of 08:55, 15 June 2023

गणित में, परिमित क्षेत्र अंकगणित एक परिमित क्षेत्र में अंकगणित है एक क्षेत्र (गणित) जिसमें तत्वों की एक परिमित संख्या (गणित) होती है एक क्षेत्र में अंकगणित के विपरीत होता है, जिसमें अनंत संख्या में तत्व होते हैं, जैसे परिमेय संख्याओं का क्षेत्र होता है।

अपरिमित रूप से अनेक भिन्न परिमित क्षेत्र हैं। उनके तत्वों की संख्या आवश्यक रूप से pn के रूप में होती है जहाँ p एक अभाज्य संख्या है और n एक धनात्मक पूर्णांक है, और समान आकार के दो परिमित क्षेत्र समरूपी होते हैं। अभाज्य p को क्षेत्र की विशेषता कहा जाता है, और धनात्मक पूर्णांक n को इसके अभाज्य क्षेत्र पर क्षेत्र का आयाम कहा जाता है।

परिमित क्षेत्रों का उपयोग विभिन्न प्रकार के अनुप्रयोगों में किया जाता है, जिसमें बीसीएच कोड जैसे रैखिक ब्लॉक कोड में उत्कृष्ट कोडिंग सिद्धांत और क्रिप्टोग्राफी एल्गोरिदम में रीड-सोलोमन त्रुटि संशोधन जैसे प्रतियोगिता नियोजन और प्रयोगों के डिजाइन में रिजेंडेल (एईएस) एन्क्रिप्शन एल्गोरिदम सम्मिलित हैं।

प्रभावी बहुपद प्रतिनिधित्व

pn तत्वों के साथ परिमित क्षेत्र को GF(pn) कहा जाता है और इसे परिमित क्षेत्र सिद्धांत के संस्थापक इवरिस्ट गैलोइस के सम्मान में क्रम pn का गैलोइस क्षेत्र भी कहा जाता है। GF (p), जहाँ p एक अभाज्य संख्या है, वह केवल पूर्णांक मापांक p का वलय है। अर्थात्, कोई पूर्णांक पर सामान्य संक्रिया का उपयोग करके संचालन (जोड़, व्यवकलन, गुणा) कर सकता है, जिसके बाद संशोधन मापांक p हो सकता है। उदाहरण के लिए, GF(5) में, 4 + 3 = 7 को घटाकर 2 मापांक 5 कर दिया गया है। विभाजन व्युत्क्रम मापांक p द्वारा गुणन है, जिसकी गणना विस्तारित यूक्लिडियन एल्गोरिथम का उपयोग करके की जा सकती है।

एक विशेष स्थिति GF(2) है, जहां योग विशेष OR (XOR) है और गुणन AND है। चूंकि केवल प्रतिवर्त तत्व 1 होता है, विभाजन समरूपता फलन है।

GF(pn) के तत्वों को GF(p) पर n से दृढ़ता से कम घात के बहुपदों के रूप में प्रदर्शित किया जा सकता है। संक्रियक तब मापांक R किया जाता है जहां R, GF(p) पर घात n का एक अखंडनीय बहुपद है, उदाहरण के लिए बहुपद विस्तृत विभाजन का उपयोग करना। दो बहुपदों P और Q का योग सदैव की तरह किया जाता है; गुणन निम्नानुसार किया जा सकता है: सदैव की तरह W = P · Q की गणना करें, फिर शेष मापांक R की गणना करें। बहुपद गुणांक के संदर्भ में इस प्रतिनिधित्व को एक एकपदीय आधार (उर्फ 'बहुपद आधार') कहा जाता है।

GF(pn) के तत्वों के अन्य निरूपण हैं; कुछ उपरोक्त बहुपद प्रतिनिधित्व के लिए समरूप हैं और (उदाहरण के लिए, आव्यूह का उपयोग करके) अन्य अपेक्षाकृत अधिक भिन्न दिखते हैं। सामान्य आधार का उपयोग करने से कुछ संदर्भों में लाभ हो सकता है।

जब अभाज्य संख्या 2 होती है, तो पारंपरिक रूप से GF(pn) द्विआधारी अंक प्रणाली के रूप में, बहुपद में प्रत्येक शब्द के गुणांक के साथ संबंधित तत्व की बाइनरी अभिव्यक्ति में एक बिट द्वारा दर्शाया गया है। ब्रेसेस ( { and } ) या इसी तरह के सीमांकक सामान्य रूप से बाइनरी संख्याओ या उनके हेक्साडेसिमल ( षोडश आधारी) समकक्षों में जोड़े जाते हैं, यह इंगित करने के लिए कि मान क्षेत्र के आधार के गुणांक देता है, इस प्रकार क्षेत्र के एक तत्व का प्रतिनिधित्व करता है। उदाहरण के लिए, निम्नलिखित विशेषता 2 परिमित क्षेत्र में समान मान के समतुल्य प्रतिनिधित्व हैं:

बहुपदीय x6 + x4 + x + 1
बाइनरी {01010011}
हेक्साडेसिमल {53}


प्राथमिक बहुपद

ऐसे कई अखंडनीय बहुपद हैं (कभी-कभी बहुपद को कम करने वाले कहा जाता है) जिनका उपयोग एक सीमित क्षेत्र उत्पन्न करने के लिए किया जा सकता है, लेकिन वे सभी क्षेत्र के समान प्रतिनिधित्व को उत्पन्न नहीं करते हैं।

परिमित क्षेत्र GF(q) में गुणांक वाले डिग्री n का एक एकगुणांकी अखंडनीय बहुपद, जहां q = pt कुछ अभाज्य p और धनात्मक पूर्णांक t के लिए, एक पूर्वग बहुपद कहलाता है, यदि इसकी सभी जड़ें GF(pn) के पूर्वग बहुपद हैं।[1][2] परिमित क्षेत्र के बहुपद प्रतिनिधित्व में, इसका तात्पर्य है कि x प्राथमिक तत्व है। जिसके लिए कम से कम एक अलघुकरणीय बहुपद है x प्राथमिक तत्व है।[3] दूसरे शब्दों में, एक प्रारम्भिक बहुपद के लिए, x की घातें क्षेत्र में प्रत्येक शून्येतर मान उत्पन्न करती हैं।

निम्नलिखित उदाहरणों में बहुपद प्रतिनिधित्व का उपयोग नहीं करना सबसे अच्छा है, क्योंकि उदाहरणों के बीच x का अर्थ बदल जाता है। GF(2) पर एकगुणांकी अखंडनीय बहुपद x8 + x4 + x3 + x + 1 पूर्वग नहीं है। मान लीजिए λ इस बहुपद का (बहुपद प्रतिनिधित्व में यह x होगा) वर्गमूल है, जो कि λ8 + λ4 + λ3 + λ + 1 = 0 है। अब λ51 = 1, इसलिए λ, GF(28) का प्रारम्भिक तत्व नहीं है और क्रम 51 का गुणक उपसमूह उत्पन्न करता है।[4] क्षेत्र तत्व λ + 1 पर विचार करें, बहुपद प्रतिनिधित्व में यह x + 1 होगा। अब (λ+1)8 + (λ+1)4 + (λ+1)3 + (λ+1)2 + 1 = λ8 + λ4 + λ3 + λ + 1 = 0 है। जैसा कि इस प्रारम्भिक बहुपद के सभी वर्गमूल प्रारम्भिक तत्व हैं, GF(28) ((λ + 1)255 = 1 और कोई छोटी घात नहीं है। GF(28) में 128 जनित्र हैं प्रारम्भिक तत्वों की संख्या देखें। एक परिमित क्षेत्र के लिए एक जनित्र के रूप में x का होना कई संगणनात्मक गणितीय फलनों के लिए लाभदायक है।

जोड़ना और घटाना

इन बहुपदों में से दो को एक साथ जोड़कर या घटाकर जोड़ और घटाना किया जाता है, और परिणाम मापांक को कम करके विशेषता को कम किया जाता है।

विशेषता 2 के साथ परिमित क्षेत्र में, अतिरिक्त मापांक 2, व्यवकलन मापांक 2, और एक्सओआर समान हैं। इस प्रकार,

बहुपदीय (x6 + x4 + x + 1) + (x7 + x6 + x3 + x) = x7 + x4 + x3 + 1
बाइनरी {01010011} + {11001010} = {10011001}
हेक्साडेसिमल {53} + {CA} = {99}

बहुपदों के नियमित संकलन के अंतर्गत, योग में 2x6 पद होगा। यह पद 0x6 हो जाता है और उत्तर कम होने पर मापांक 2 को हटा दिया जाता है।

यहां सामान्य बीजगणितीय योग और कुछ बहुपदों की विशेषता 2 परिमित क्षेत्र योग दोनों के साथ एक सारणी है

p1 p2 p1 + p2 के अंतर्गत
K[x] GF(2n)
x3 + x + 1 x3 + x2 2x3 + x2 + x + 1 x2 + x + 1
x4 + x2 x6 + x2 x6 + x4 + 2x2 x6 + x4
x + 1 x2 + 1 x2 + x + 2 x2 + x
x3 + x x2 + 1 x3 + x2 + x + 1 x3 + x2 + x + 1
x2 + x x2 + x 2x2 + 2x 0

कंप्यूटर विज्ञान अनुप्रयोगों में, विशेषता 2 के परिमित क्षेत्रों के लिए संचालन को सरल किया जाता है, जिसे GF(2n) गैलोज़ क्षेत्र भी कहा जाता है, जिससे ये क्षेत्र अनुप्रयोगों के लिए विशेष रूप से लोकप्रिय विकल्प बन जाते हैं।

गुणन

परिमित क्षेत्र में गुणन गुणन तुल्यता संबंध परिमित क्षेत्र को परिभाषित करने के लिए उपयोग किया जाने वाला एक अलघुकरणीय बहुपद अपचायक बहुपद है। अर्थात्, यह गुणन है जिसके बाद भाजक के रूप में घटते हुए बहुपद का उपयोग करते हुए विभाजन होता है—शेष गुणनफल होता है। प्रतीक • का उपयोग परिमित क्षेत्र में गुणन को निरूपित करने के लिए किया जा सकता है।

रिजंडैल (एईएस) परिमित क्षेत्र

रिजेंडेल (एईएस के रूप में मानकीकृत) 256 तत्वों के साथ विशेषता 2 परिमित क्षेत्र का उपयोग करता है, जिसे गैलोइस क्षेत्र GF(28) भी कहा जा सकता है। यह गुणन के लिए निम्न बहुपद को कम करने का प्रयोग करता है:

x8 + x4 + x3 + x + 1.

उदाहरण के लिए, रिजेंडेल के क्षेत्र में {53} • {CA} = {01} क्योंकि

(x6 + x4 + x + 1)(x7 + x6 + x3 + x)
= (x13 + x12 + x9 + x7) + (x11 + x10 + x7 + x5) + (x8 + x7 + x4 + x2) + (x7 + x6 + x3 + x)
= x13 + x12 + x9 + x11 + x10 + x5 + x8 + x4 + x2 + x6 + x3 + x
= x13 + x12 + x11 + x10 + x9 + x8 + x6 + x5 + x4 + x3 + x2 + x

और

x13 + x12 + x11 + x10 + x9 + x8 + x6 + x5 + x4 + x3 + x2 + x mod x8 + x4 + x3 + x1 + 1
= (11111101111110 mod 100011011)
= {3F7E mod 11B} = {01}
= 1 (decimal)

उत्तरार्द्ध को विस्तृत विभाजन के माध्यम से प्रदर्शित किया जा सकता है बाइनरी संकेतन का उपयोग करके दिखाया गया है, क्योंकि यह फलन को अच्छी तरह से प्रदान करता है। ध्यान दें कि विशेष OR को उदाहरण में प्रयुक्त किया गया है और अंकगणितीय व्यवकलन नहीं है, जैसा कि कोई प्राथमिक-स्कूल विस्तृत विभाजन में उपयोग कर सकता है।:

 11111101111110 (mod) 100011011
 ^100011011 
 01110000011110
 ^100011011 
 0110110101110
 ^100011011 
 010101110110
 ^100011011 
 00100011010
 ^100011011 
 000000001

तत्व {53} और {CA} एक दूसरे के गुणात्मक व्युत्क्रम हैं क्योंकि उनका गुणनफल 1 है।

इस विशेष परिमित क्षेत्र में गुणा "कृषक एल्गोरिथ्म" के एक संशोधित संस्करण का उपयोग करके भी किया जा सकता है। प्रत्येक बहुपद को उपरोक्त के समान बाइनरी संकेत का उपयोग करके दर्शाया गया है। आठ बिट पर्याप्त हैं क्योंकि प्रत्येक (कम) बहुपद के संदर्भ में केवल घात 0 से 7 संभव हैं।

यह एल्गोरिदम तीन चर (कंप्यूटर प्रोग्रामिंग अर्थ में) का उपयोग करता है, प्रत्येक में आठ-बिट प्रतिनिधित्व होता है। a और b को गुना के साथ आरंभ किया जाता है; p गुणनफल को संग्रहीत करता है और इसे 0 से प्रारंभ किया जाना चाहिए।

एल्गोरिदम के प्रारंभ और अंत में, और प्रत्येक पुनरावृत्ति के प्रारंभ और अंत में, यह अपरिवर्तनीय (कंप्यूटर विज्ञान) सत्य है: a b + p गुणनफल है। एल्गोरिदम प्रारंभ होने पर यह स्पष्ट रूप से सत्य है। जब एल्गोरिदम समाप्त हो जाता है, तो a या b शून्य होगा इसलिए p में गुणनफल होगा।

  • निम्नलिखित लूप को आठ बार (प्रति बिट एक बार) सक्रिय करे। पुनरावृत्ति से पहले a या b शून्य होने पर रोकना सही है:
  1. यदि b का सबसे दाहिना बिट विशेष या गुणन p को a के मान से निर्धारित किया गया है। यह बहुपद जोड़ है। edit
  2. b को एक बिट को दाईं ओर विस्थापित करें, सबसे दाहिने बिट को हटा दें, और बाईं ओर के बिट को शून्य मान दें। यह x0 पद को हटाते हुए बहुपद को x से विभाजित करता है।
  3. इस बात पर ध्यान रखें कि क्या बाईं ओर का बिट a पर समायोजित है और इस मान को घात कहते हैं।
  4. a बिट को बाईं ओर विस्थापित करें, सबसे बाएं बिट को हटा दें, और नए को सबसे दाएं बिट को शून्य बना दें। यह बहुपद को x से गुणा करता है, लेकिन हमें अभी भी घात की गणना करनी होगी जो x7 के गुणांक का प्रतिनिधित्व करता है।
  5. यदि घात का मान एक, विशेष या हेक्साडेसिमल संख्या 0x1b (बाइनरी में 00011011) के साथ होता है। 0x1b अलघुकरणीय बहुपद से समान है जिसमें उच्च पद का हटाया जाता है। संकल्पनात्मक रूप से, अलघुकरणीय बहुपद का उच्च पद और मॉड्यूल 2 से 0 जोड़ते हैं।
  • p के पास गुणन है

यह एल्गोरिथ्म विशेषता 2 के अन्य क्षेत्रों में गुणा करने के लिए आसानी से सामान्यीकृत करता है, a, b, और p की लंबाई और मान 0x1b को उपयुक्त रूप से बदलता है।

गुणात्मक प्रतिलोम

एक परिमित क्षेत्र के तत्व a के गुणक व्युत्क्रम की गणना कई अलग-अलग तरीकों से की जा सकती है:

  • क्षेत्र में प्रत्येक संख्या से गुणा करके जब तक गुणन एक न हो जाए। यह एक पशु बल खोज है।
  • चूंकि GF(pn) के शून्येतर तत्व गुणा के संबंध में एक परिमित समूह बनाते हैं, apn−1 = 1 ( a ≠ 0 के लिए), इस प्रकार a का व्युत्क्रम apn−2 है।
  • विस्तारित यूक्लिडियन एल्गोरिथम का उपयोग करके प्राप्त करता है।
  • परिमित क्षेत्र के लिए लघुगणक और घातांक सारणी बनाकर, pn − 1 से लघुगणक घटाकर और परिणाम को घातांक बनाता है।
  • परिमित क्षेत्र के लिए एक मॉड्यूलर गुणक व्युत्क्रम सारणी बनाकर और जांच कर रहा है।
  • एक समग्र क्षेत्र में मानचित्रण करके जहां प्रतिलोम सरल होता है, और वापस मानचित्रण करता है।
  • अभाज्य कोटि के परिमित क्षेत्र की स्थितियों में एक विशेष पूर्णांक का निर्माण करके या गैर-अभाज्य क्रम के परिमित क्षेत्र की स्थितियों में एक विशेष बहुपद का निर्माण करके और इसे a से विभाजित करके प्राप्त किया जाता है।[5]


कार्यान्वयन युक्ति

जनित्र आधारित सारणी

छोटे गैलोइस क्षेत्रों पर गैलोइस क्षेत्र गणना के लिए एल्गोरिदम विकसित करते समय, एक सामान्य प्रदर्शन अनुकूलन दृष्टिकोण जनित्र g को जाँचना और पहचान का उपयोग करना है:

logg(a) और gy फलनों और एक पूर्णांक जोड़ संक्रिया के लिए सारणी जांच के अनुक्रम के रूप में गुणन को कार्यान्वित करने के लिए है। यह उस गुण का उपयोग करता है जिसमें प्रत्येक परिमित क्षेत्र में जनित्र होते हैं। रिजेंडेल क्षेत्र के उदाहरण में, बहुपद x + 1 (या {03}) एक ऐसा जनित्र है। एक बहुपद के जनित्र होने के लिए एक आवश्यक लेकिन पर्याप्त शर्त नहीं है कि वह अलघुकरणीय हो।

a या b के शून्य होने के विशेष स्थितियों के लिए एक कार्यान्वयन का परीक्षण होना चाहिए, क्योंकि गुणनफल भी शून्य होगा।

पहचान के साथ गुणात्मक व्युत्क्रम निर्धारित करने के लिए इसी योजना का उपयोग किया जा सकता है:

यहाँ, जनित्र का क्रम (समूह सिद्धांत), |g|, क्षेत्र के गैर-शून्य तत्वों की संख्या है। GF(28) की स्थितियों में यह 28 − 1 = 255 है। अर्थात, रिजेंडेल उदाहरण के लिए: (x + 1)255 = 1 है। तो यह दो अवलोकन सारणी और एक पूर्णांक व्यवकलन के साथ किया जा सकता है। घातांक के लिए इस विचार का उपयोग करने से भी लाभ मिलता है:

इसके लिए दो सारणी अवलोकन, एक पूर्णांक गुणन और एक पूर्णांक मापांक संक्रिया की आवश्यकता होती है। विशेष स्थितियों के लिए पुनः एक परीक्षण a = 0 किया जाना चाहिए।

हालाँकि, क्रिप्टोग्राफ़िक कार्यान्वयन में, ऐसे कार्यान्वयन से सावधान रहना होगा क्योंकि कई माइक्रोप्रोसेसरों के सीपीयू कैश मेमोरी अभिगम्य के लिए परिवर्तनशील समय की ओर ले जाते हैं। इससे ऐसे कार्यान्वयन हो सकते हैं जो समय आक्षेप के प्रति संवेदनशील हैं।

घात-रहित गुणा

बाइनरी क्षेत्र्स GF(2n) के लिए, क्षेत्र गुणन को घात-रहित गुणन जैसे सीएलएमयूएल निर्देश समुच्चय का उपयोग करके कार्यान्वित किया जा सकता है, जो n ≤ 64 के लिए अच्छा है। एक गुणन एक उत्पाद का उत्पादन करने के लिए एक घात-रहित गुणा (2n - 1 बिट तक) का उपयोग करता है, भागफल = ⌊उत्पाद / (क्षेत्र बहुपद)⌋, क्षेत्र बहुपद द्वारा भागफल का गुणा, फिर एक xor: परिणाम = उत्पाद ⊕ ((क्षेत्र बहुपद) ⌊उत्पाद / (क्षेत्र बहुपद)⌋) उत्पन्न करने के लिए क्षेत्र बहुपद के पूर्व-गणना किए गए व्युत्क्रम का एक अन्य घात-रहित गुणा है। पिछले 3 चरणों (पीसीएलएमयूएलक्यूडीक्यू, पीसीएलएमयूएलक्यूडीक्यू,, xor) का उपयोग x86 पीसीएलएमयूएलक्यूडीक्यू निर्देश का उपयोग करके सीआरसी की तेजी से गणना के लिए बैरेट न्यून चरण में किया जाता है।[6]


संयुक्त क्षेत्र

जब k एक सम्मिश्र संख्या है, तो बाइनरी क्षेत्र GF(2k) से इसके एक उपक्षेत्र के विस्तार क्षेत्र, अर्थात GF((2m)n) में समरूपता सम्मिलित होगी, जहाँ k = m n है। इन समरूपताओं में से एक का उपयोग गणितीय विचारों को सरल बना सकता है क्योंकि विस्तार की घात समंजन के साथ छोटी होती है कि तत्वों को अब एक बड़े उपक्षेत्र में दर्शाया जाता है।[7] हार्डवेयर कार्यान्वयन के लिए गेट गणना को कम करने के लिए, प्रक्रिया में कई नेस्टिंग सम्मिलित हो सकते हैं, जैसे GF(28) to GF(((22)2)2) में मानचित्रित होती है।[8] एक कार्यान्वयन बाधा है, दो अभ्यावेदन में संचालन संगत होना चाहिए, इसलिए समरूपता के स्पष्ट उपयोग की आवश्यकता है। अधिक सटीक रूप से, समरूपता को मानचित्र () द्वारा निरूपित किया जाएगा, यह एक आक्षेप है जो GF(2k) के एक तत्व को GF((2m)n) में मानचित्रित करता है, परिणामस्वरूप: map(a + b) = map(a) + map(b) और map(a b) = map(a) map(b) जहां मानचित्रण से पहले GF(2k) में बाईं ओर के संचालन होते हैं और मानचित्रण के बाद दाईं ओर के संचालन GF((2m)n) में होते हैं।[9] समाकृतिकता को सामान्य रूप से k बिट आव्यूह द्वारा k रो के साथ प्रयुक्त किया जाता है, जिसका उपयोग GF(2k) के एक तत्व के GF (2) से गुणा करने के लिए किया जाता है, जिसे 1 बिट आव्यूह द्वारा k रो के रूप में माना जाता है। α को GF(2k) के प्रारम्भिक तत्व के रूप में परिभाषित करें, और β को GF((2m)n) के प्रारम्भिक तत्व तब βj = map(αj) और map−1(βj) के रूप में परिभाषित करें। Α और β के मान मानचित्रण आव्यूह और इसके व्युत्क्रम को निर्धारित करते हैं। चूंकि वास्तविक गणित GF((2m)n) में किया जाता है, GF((2m)n) के लिए कम करने वाला बहुपद सामान्य रूप से प्रारम्भिक होता है और GF((2m)n) में β = x होता है। जोड़ और गुणा के लिए अनुकूलता बाधा को पूरा करने के लिए, GF(2k) के किसी भी प्रारम्भिक तत्व α को चयन करने के लिए खोज की जाती है जो बाधा को पूरा करेगा। ऐसी स्थितियों में जहां GF(2k) के लिए बहुपद को कम करना प्रारम्भिक है, एक वैकल्पिक मानचित्रण विधि संभव है: GF(2k) के लिए कम करने वाले बहुपद के 1 बिट गुणांक की व्याख्या GF(2m) के m बिट तत्वों 0 या 1 के रूप में की जाती है, और घात n के m प्रारम्भिक कारक होंगे, जिनमें से कोई भी GF((2m)n) के लिए कम करने वाले बहुपद के रूप में उपयोग किया जा सकता है। एक समग्र क्षेत्र में मानचित्रण को GF(pk) को किसी भी अभाज्य के लिए GF((pm)n) जैसे समग्र क्षेत्र में मानचित्रण करने के लिए सामान्यीकृत किया जा सकता है।

प्रोग्राम उदाहरण

C (प्रोग्रामिंग भाषा)

यहाँ कुछ C (प्रोग्रामिंग भाषा) कोड दिया गया है जो क्रम 2 की विशेषता 2 परिमित क्षेत्र में संख्याओं को जोड़ और गुणा करेगा8, उदाहरण के लिए रिजेंडेल एल्गोरिथम या रीड-सोलोमन द्वारा उपयोग किया जाता है, रूसी कृषक गुणन एल्गोरिथ्म का उपयोग करते हुए:

/* Add two numbers in the GF(2^8) finite field */
uint8_t gadd(uint8_t a, uint8_t b) {
	return a ^ b;
}

/* Multiply two numbers in the GF(2^8) finite field defined 
 * by the modulo polynomial relation x^8 + x^4 + x^3 + x + 1 = 0
 * (the other way being to do carryless multiplication followed by a modular reduction)
 */
uint8_t gmul(uint8_t a, uint8_t b) {
	uint8_t p = 0; /* accumulator for the product of the multiplication */
	while (a != 0 && b != 0) {
        if (b & 1) /* if the polynomial for b has a constant term, add the corresponding a to p */
            p ^= a; /* addition in GF(2^m) is an XOR of the polynomial coefficients */

        if (a & 0x80) /* GF modulo: if a has a nonzero term x^7, then must be reduced when it becomes x^8 */
            a = (a << 1) ^ 0x11b; /* subtract (XOR) the primitive polynomial x^8 + x^4 + x^3 + x + 1 (0b1_0001_1011) – you can change it but it must be irreducible */
        else
            a <<= 1; /* equivalent to a*x */
        b >>= 1;
	}
	return p;
}

इस उदाहरण में कैशे, समय, और शाखा भविष्यवाणी पार्श्व-प्रणाली प्रदर्शित है, और क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त नहीं है।

D प्रोग्रामिंग उदाहरण

यह D (प्रोग्रामिंग भाषा) प्रोग्राम रिजेंडेल के परिमित क्षेत्र में संख्याओं को गुणा करेगा और पीजीएम छवि उत्पन्न करेगा:

/**
Multiply two numbers in the GF(2^8) finite field defined
by the polynomial x^8 + x^4 + x^3 + x + 1.
*/
ubyte gMul(ubyte a, ubyte b) pure nothrow {
    ubyte p = 0;

    foreach (immutable ubyte counter; 0 .. 8) {
        p ^= -(b & 1) & a;
        auto mask = -((a >> 7) & 1);
        // 0b1_0001_1011 is x^8 + x^4 + x^3 + x + 1.
        a = cast(ubyte)((a << 1) ^ (0b1_0001_1011 & mask));
        b >>= 1;
    }

    return p;
}

void main() {
    import std.stdio, std.conv;
    enum width = ubyte.max + 1, height = width;

    auto f = File("rijndael_finite_field_multiplication.pgm", "wb");
    f.writefln("P5\n%d %d\n255", width, height);
    foreach (immutable y; 0 .. height)
        foreach (immutable x; 0 .. width) {
            immutable char c = gMul(x.to!ubyte, y.to!ubyte);
            f.write(c);
        }
}

पार्श्व-प्रणाली से संरक्षण के लिए यह उदाहरण किसी भी शाखा या सारणी अवलोकन का उपयोग नहीं करता है और इसलिए क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त है।

यह भी देखें

  • ज़ेच का लघुगणक

संदर्भ

  1. The roots of such a polynomial must lie in an extension field of GF(q) since the polynomial is irreducible, and so, has no roots in GF(q).
  2. Mullen & Panario 2013, p. 17
  3. प्रयोगों का डिजाइन और विश्लेषण. John Wiley & Sons, Ltd. August 8, 2005. pp. 716–720. doi:10.1002/0471709948.app1.
  4. Lidl & Niederreiter 1983, p. 553
  5. Grošek, O.; Fabšič, T. (2018), "Computing multiplicative inverses in finite fields by long division" (PDF), Journal of Electrical Engineering, 69 (5): 400–402, doi:10.2478/jee-2018-0059, S2CID 115440420
  6. "PCLMULQDQ निर्देश का उपयोग करके सामान्य बहुपदों के लिए तेज़ CRC संगणना" (PDF). www.intel.com. 2009. Retrieved 2020-08-08.
  7. "Efficient Software Implementations of Large FiniteFieldsGF(2n) for Secure Storage Applications" (PDF). www.ccs.neu.edu. Retrieved 2020-08-08.
  8. "bpdegnan/aes". GitHub.
  9. [1][dead link]


स्रोत

  • Lidl, Rudolf; Niederreiter, Harald (1983), Finite Fields, Addison-Wesley, ISBN 0-201-13519-1 (कैम्ब्रिज यूनिवर्सिटी प्रेस द्वारा 1984 में पुनः जारी ISBN 0-521-30240-4).
  • Mullen, Gary L.; Panario, Daniel (2013), Handbook of Finite Fields, CRC Press, ISBN 978-1-4398-7378-6

बाहरी संबंध