मॉड्यूलर घातांक कैलकुलेटर
Square-and-Multiply · BigInt Support · RSA · Diffie-Hellman
Fast binary (right-to-left) algorithm का उपयोग करके arbitrarily large integers के लिए ab mod m की गणना करें। चरण-दर-चरण तालिका, binary विज़ुअलाइज़ेशन, और cryptographic अनुप्रयोग।
त्वरित उदाहरण (Quick Examples)
b का Binary प्रतिनिधित्व
हरा = bit 1 (multiply & square)। धूसर = bit 0 (केवल square)। LSB बाईं ओर, MSB दाईं ओर। 32 bits तक सीमित।
एल्गोरिदम अवलोकन
चरण-दर-चरण Squaring तालिका
b के LSB से MSB तक columns process किए जाते हैं। हरी पंक्तियाँ: bit = 1, result पर multiplication लागू। धूसर पंक्तियाँ: bit = 0, केवल squaring।
| चरण | Bit (LSB→MSB) | Current Base a2k mod m | Result | Operation |
|---|
RSA Encryption और Decryption
मॉड्यूलर घातांक के माध्यम से public-key cryptography
RSA एक message M को C = Me mod n के रूप में encrypt करता है। Decryption M = Cd mod n के माध्यम से M recover करती है। दोनों operations बिल्कुल मॉड्यूलर घातांक हैं।
इसे आज़माएं: calculator में Quick Example "2103 mod 143 (toy RSA)" उपयोग करें।
Diffie-Hellman Key Exchange
असुरक्षित channel पर shared secret
Alice और Bob एक prime p और generator g पर सहमत होते हैं। Alice A = ga mod p और Bob B = gb mod p compute करते हैं। Shared key K = gab mod p है।
Security: A = ga mod p से a ज्ञात करना discrete logarithm problem है — large p के लिए computationally hard।
Fermat Primality Test
मॉड्यूलर घातांक का उपयोग करके probabilistic prime detection
Fermat का छोटा प्रमेय: यदि p prime है और gcd(a, p) = 1, तो ap-1 ≡ 1 (mod p)। Fermat primality test कई random bases के लिए इस शर्त की जाँच करता है।
मॉड्यूलर घातांक (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 होते हैं)।
संदर्भ तालिका: उदाहरण गणनाएँ
| a | b | m | ab mod m | b binary में | Squarings |
|---|---|---|---|---|---|
| 3 | 644 | 645 | 36 | 1010000100 | 9 |
| 2 | 10 | 1000 | 24 | 1010 | 3 |
| 7 | 256 | 13 | 9 | 100000000 | 8 |
| 2 | 103 | 143 | 2 | 1100111 | 6 |
| 5 | 6 | 23 | 8 | 110 | 2 |
| 123 | 456 | 789 | 699 | 111001000 | 8 |