मॉड्यूलर घातांक कैलकुलेटर

Square-and-Multiply · BigInt Support · RSA · Diffie-Hellman

Fast binary (right-to-left) algorithm का उपयोग करके arbitrarily large integers के लिए ab mod m की गणना करें। चरण-दर-चरण तालिका, binary विज़ुअलाइज़ेशन, और cryptographic अनुप्रयोग।

त्वरित उदाहरण (Quick Examples)

मॉड्यूलर घातांक (Modular Exponentiation) क्या है?

मॉड्यूलर घातांक ab mod m की गणना है — आधार a को घातांक b तक उठाना और modulus m से विभाजित करने पर शेष रखना। यह operation आधुनिक संख्या सिद्धांत और public-key cryptography की आधारशिला है। a और b कितने भी बड़े हों, परिणाम हमेशा [0, m−1] श्रेणी में एक पूर्णांक होता है।

उदाहरण के लिए, 3644 mod 645 = 36। जबकि intermediate value 3644 एक astronomically large संख्या है (300 से अधिक decimal digits), उत्तर केवल 36 है।

Naive Computation क्यों विफल होती है

सीधा approach — पहले ab compute करें, फिर remainder लें — बड़े exponents के लिए पूरी तरह अव्यावहारिक है। 21000 में पहले से 300 से अधिक decimal digits हैं। RSA हजारों bits के exponents का उपयोग करता है, इसलिए naive intermediate value में observable universe के atoms से अधिक digits होंगे।

मुख्य insight यह है कि हम हर single multiplication के बाद mod m reduce कर सकते हैं, सभी intermediate values को m2 से नीचे रख सकते हैं। इसे square-and-multiply trick के साथ combine करने से O(b) multiplications घटकर O(log b) हो जाते हैं।

Square-and-Multiply (Binary Exponentiation) Algorithm

एल्गोरिदम b के binary प्रतिनिधित्व को LSB से MSB तक process करता है। चरण k (b के bit k के अनुरूप) पर:

  • हमेशा square करें: base = base × base mod m compute करें (यह positional value 2k के लिए account करता है)
  • यदि bit k = 1: result = result × base mod m भी multiply करें
  • यदि bit k = 0: multiplication छोड़ें

O(log b) Complexity

एल्गोरिदम ठीक ⌊log2 b⌋ squarings और (popcount(b) − 1) multiplications करता है। चूँकि दोनों O(log b) हैं, modular multiplications की कुल संख्या O(log b) है। प्रत्येक multiplication में m2 आकार की संख्याएं शामिल हैं, इसलिए total bit complexity O(log b × (log m)2) है।

2048-bit RSA parameters के लिए इसका मतलब लगभग 2000 multiplications है — किसी भी आधुनिक processor पर milliseconds में पूरी तरह feasible।

RSA Encryption और Decryption

RSA सबसे व्यापक रूप से deploy किया गया public-key cryptosystem है। Key generation दो large primes p और q का चयन करती है, n = p × q compute करती है, और public exponent e को φ(n) = (p−1)(q−1) के coprime चुनती है।

  • Encryption: C = Me mod n
  • Decryption: M = Cd mod n

दोनों operations pure modular exponentiation हैं। RSA की security इस fact पर निर्भर है कि n को factor करना computationally hard है।

Diffie-Hellman Key Exchange

Diffie-Hellman (1976) पहला practical public-key cryptographic protocol था। दो parties publicly एक large prime p और primitive root g पर सहमत होते हैं। Shared secret gab mod p है, जिसे प्रत्येक party दूसरे के public value से compute करती है। एक eavesdropper जो दोनों public values देखता है, discrete logarithm problem को हल किए बिना shared secret compute नहीं कर सकता।

Fermat का छोटा प्रमेय

Fermat का छोटा प्रमेय कहता है: यदि p prime है और gcd(a, p) = 1, तो ap−1 ≡ 1 (mod p)। यह primality के लिए एक आवश्यक शर्त है (हालांकि पर्याप्त नहीं — Carmichael numbers इसे सभी bases के लिए satisfy करते हैं जबकि composite होते हैं)।

संदर्भ तालिका: उदाहरण गणनाएँ

abmab mod mb binary मेंSquarings
36446453610100001009
21010002410103
72561391000000008
2103143211001116
562381102
1234567896991110010008

अक्सर पूछे जाने वाले प्रश्न

मॉड्यूलर घातांक क्या है?
मॉड्यूलर घातांक ab mod m की गणना है — आधार a को घातांक b तक उठाना और m से विभाजित करने पर remainder लेना। परिणाम हमेशा [0, m−1] में होता है। यह RSA, Diffie-Hellman, ElGamal, और कई primality tests में central operation है।
ab compute करके फिर mod लेना क्यों काम नहीं करता?
Large exponents (RSA में 65537 या अधिक) के लिए ab में millions digits होते हैं। कोई computer इसे store नहीं कर सकता। Square-and-multiply algorithm प्रत्येक multiplication के बाद mod m reduce करता है, intermediate values को m2 से नीचे रखता है, इसलिए सभी arithmetic tractable रहता है।
Square-and-Multiply एल्गोरिदम कैसे काम करता है?
एल्गोरिदम b के binary digits को LSB से MSB तक scan करता है। प्रत्येक चरण k पर: (1) current base को mod m square करें। (2) यदि b का bit k 1 है, तो running result को current base से mod m multiplied करें। यह binary decomposition b = ∑ bk × 2k का उपयोग करता है।
मॉड्यूलर घातांक की time complexity क्या है?
एल्गोरिदम O(log b) modular multiplications का उपयोग करता है — ⌊log2 b⌋ squarings और अधिकतम ⌊log2 b⌋ extra multiplications। m से कम numbers पर प्रत्येक multiplication का cost O((log m)2) bit operations है, जो total bit complexity O(log b × (log m)2) देता है।
RSA में मॉड्यूलर घातांक का उपयोग कैसे होता है?
RSA encryption C = Me mod n है और decryption M = Cd mod n है। दोनों modular exponentiation हैं। Exponents e और d large integers हैं (real usage में क्रमशः 17 bits और 2048 bits)। Square-and-multiply algorithm इन operations को इतना fast बनाता है कि वे practical हों।
Fermat का छोटा प्रमेय क्या है?
Fermat का छोटा प्रमेय कहता है कि यदि p prime है और gcd(a, p) = 1, तो ap-1 ≡ 1 (mod p)। यह RSA के लिए मौलिक है (exponent को mod (p-1)(q-1) चुना जाता है) और Miller-Rabin primality test को underpin करता है। यह primality की आवश्यक शर्त है लेकिन पर्याप्त नहीं।
Diffie-Hellman key exchange क्या है?
Diffie-Hellman एक cryptographic protocol है जो दो parties को असुरक्षित channel पर shared secret establish करने देता है। Alice secret a चुनकर A = ga mod p भेजती है। Bob secret b चुनकर B = gb mod p भेजता है। Shared key gab mod p है। Security discrete logarithm problem पर निर्भर करती है — carefully chosen p और g के लिए computationally hard।