Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

दी गई संख्या की अभाज्यता जांचने के लिए मिलर-रैबिन एल्गोरिदम क्या है?


मिलर रैबिन बड़ी संख्याओं की अभाज्यता का परीक्षण करने का एक तेज़ दृष्टिकोण है। इस एल्गोरिदम को रैबिन-मिलर अभाज्यता परीक्षण कहा जाता है और यह एल्गोरिदम तय करता है कि संख्या अभाज्य है या नहीं जो फर्मेट अभाज्यता परीक्षण और सोलोवे-स्ट्रासेन अभाज्यता परीक्षण जैसे अन्य परीक्षणों के समान है।

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

यह एल्गोरिदम सबसे उपयोगी ज्ञात अभाज्यता परीक्षण एल्गोरिदम है और विभिन्न सॉफ्टवेयर लाइब्रेरी में उपयोग किया जा सकता है जो RSA एन्क्रिप्शन पर आधारित हैं और सबसे अच्छा उदाहरण OpenSSL है।

मिलर रैबिन मान्य करता है कि संख्या मिश्रित है। इसलिए इसे अभाज्यता परीक्षण के बजाय मिश्रितता परीक्षण कहा जाता है। मिलर रैबिन परीक्षण सभी मिश्रित संख्याओं की पहचान करता है। प्रत्येक मिश्रित संख्या n के लिए, कम से कम 3/4 (मिलर रैबिन) संख्याएं a, n की मिश्रितता के गवाह हो सकती हैं।

मिलर रैबिन फर्मेट के छोटे प्रमेय का अपेक्षाकृत सरल विस्तार है जो हमें फर्मेट के छोटे प्रमेय की तुलना में बहुत बड़ी संभावना के साथ अभाज्यता के लिए परीक्षण करने में सक्षम बनाता है।

एल्गोरिदम: मिलर-रैबिन परीक्षण के लिए छद्म कोड:

Miller-Rabin-Test (n, a) // n संख्या है; a आधार है {    m और k ढूंढें जैसे कि n - 1 = m x 2k    T ← am mod n    If (T = ±1) return "एक अभाज्य"    for (i ← 1 to k - 1) // k - 1 अधिकतम चरणों की संख्या है    {       T ← T2 mod n       if (T = ±1) return "एक मिश्रित"       if (T = -1) return "एक अभाज्य"    }    return "एक मिश्रित" }

एक सबूत मौजूद है कि हर बार जब कोई संख्या मिलर-रैबिन परीक्षण पास करती है, तो इसकी संभावना कि यह अभाज्य नहीं है ¼ है। यदि संख्या m परीक्षण पास करती है (m अलग पास के साथ), तो इसकी संभावना कि यह अभाज्य नहीं है (1/4)m है।

उदाहरण: आधार 2 का उपयोग करके मिलर-रैबिन एल्गोरिदम लागू करें ताकि यह परीक्षण किया जा सके कि संख्या 341 मिश्रित है या नहीं।

समाधान: मिलर-रैबिन एल्गोरिदम का उपयोग करके, हम संख्या 341 का परीक्षण निम्नानुसार कर सकते हैं:

चरण 1: 341 - 1 = 2² x 85। इस प्रकार p = 341, k = 2 और q = 85

चरण 2: x = 2 (दिया गया)

चरण 3: S = xq mod p

= 285 mod 341 = (210) x 25 mod 341 8

= 210 mod 341 x 213 mod 341

= 1 x 8192 mod 341 = 8192 mod 341

= 8

चरण 4: चूंकि 8 ≠ 1, हम अगले चरण पर जाते हैं।

चरण 5: j = 1 के लिए, S = x2q mod p

= 2170 mod 341 = (220)8 x 210 mod 341

= 220 mod 341 x 28 mod 341 x 210 mod 341

= 1 x 256 x 1 = 256

अब, = 256 ≠ 1

और परिणाम अनिर्णायक है

तो, 341 मिश्रित संख्या नहीं है।

फायदे

  • इस एल्गोरिदम का उपयोग उच्च संख्याओं की अभाज्यता के लिए परीक्षण करने के लिए किया जा सकता है।

  • अन्य अभाज्यता परीक्षणों की तुलना में गति में इसके लाभ के कारण, मिलर रैबिन परीक्षण कई क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए पसंद का परीक्षण होगा।

  • यूलर और सोलोवे-स्ट्रासेन परीक्षणों की तुलना में, मिलर रैबिन अधिक गतिशील है और आवश्यक पहलू यह है कि विफलता की संभावना कम हो जाती है।

  • फर्मेट परीक्षण के अनुसार सभी कार्माइकल संख्याओं n के लिए बहुत सारे झूठे हैं, त्रुटि संभावना 1 के करीब है, यह नुकसान मिलर रैबिन में रोका जाता है।


  1. - ब्लोफिश एल्गोरिदम के संचालन क्या हैं?

    ब्लोफिश एक सममित ब्लॉक सिफर एल्गोरिदम है और यह एक समय में 64-बिट्स के ब्लॉक जानकारी को एन्क्रिप्ट करता है। यह फिस्टेल नेटवर्क का पालन करता है और इस एल्गोरिदम की कार्य प्रक्रिया दो भागों में विभाजित है। सबकी जनरेशन - यह प्रक्रिया 448 बिट्स तक लंबी कुंजी को 4168 बिट्स जोड़ने वाली सबकी में बदल देती है

  1. - मिलर-रैबिन अभाज्यता परीक्षण की प्रक्रिया क्या है?

    मिलर-रैबिन अभाज्यता परीक्षण एक क्लासिक विधि में फर्मेट परीक्षण और फर्मेट रूट परीक्षण को जोड़ता है एक मजबूत छद्म-अभाज्य खोजने के लिए। इस परीक्षण में, यह n - 1 को एक विषम संख्या m और 2 की शक्ति के गुणनफल के रूप में लिख सकता है: $$\mathrm{n-1=m\, x\, 2^{k}}$$ आधार a में फर्मेट परीक्षण इस प्रकार लिखा जा

  1. - किसी संख्या के विषम स्थानों पर स्थित अंकों के योग की अभाज्यता जांच C++ में

    इस समस्या में, हमें एक संख्या N दी गई है। हमारा कार्य यह जांचना है कि उस संख्या के विषम स्थानों पर स्थित अंकों का योग एक अभाज्य संख्या देता है या नहीं। अभाज्यता परीक्षण (Primality Test) वह एल्गोरिदम है जिसका उपयोग यह जांचने के लिए किया जाता है कि दी गई संख्या अभाज्य है या नहीं। आइए एक उदाहरण से इस