2015-03-12 14 views
8

मैं एक प्राइम परिमित क्षेत्र में एक अनौपचारिक बहुपद की जड़ें खोजने के लिए एक त्वरित एल्गोरिदम की तलाश में हूं।एक बहुपद मोड की जड़ें एक प्राइम

यह है कि f = a0 + a1x + a2x2 + ... + anxn (n> 0) तो एक एल्गोरिदम है जो किसी दिए गए प्राइम पी के लिए r < p संतोषजनक f(r) = 0 mod p पाता है।

मुझे चीन्स खोज एल्गोरिदम https://en.wikipedia.org/wiki/Chien_search मिला लेकिन मैं कल्पना नहीं कर सकता कि यह 20 बिट्स से अधिक प्राइम के लिए तेज़ है। क्या किसी को भी चेन के खोज एल्गोरिदम के साथ अनुभव है या एक तेज़ तरीका पता है? क्या इसके लिए एक सिम्पी मॉड्यूल है?

+0

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.133.1907&rep=rep1&type=pdf उस बिंदु को बनाता है जो परिमित क्षेत्रों में बहुपदों को हल करना उन्हें फैक्टरिंग का एक विशेष मामला है, और वहां हैं परिमित क्षेत्रों पर फैक्टरिंग बहुपदों के लिए यादृच्छिक बहुपद समय एल्गोरिदम (उदाहरण के लिए http://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields) देखें। यह कहता है कि यह रूट-खोज के लिए निर्धारिती बहुपद समय एल्गोरिदम का वर्णन करने के लिए चला जाता है, लेकिन मैंने इसे अभी तक नहीं पढ़ा है। – mcdowella

उत्तर

12

यह अच्छी तरह से अध्ययन किया जाता है, क्योंकि एमसीडॉवेला की टिप्पणी इंगित करती है। यहां बताया गया है कि Cantor-Zassenhaus random algorithm उस मामले के लिए कैसे काम करता है जहां आप अधिक सामान्य कारक के बजाय बहुपद की जड़ों को ढूंढना चाहते हैं।

ध्यान दें कि गुणांक मॉड पी के साथ बहुपदों की अंगूठी में, उत्पाद x (x-1) (x-2) ... (x-p + 1) में सभी संभावित जड़ें हैं, और x^px के बराबर होती है Fermat's Little Theorem और इस अंगूठी में अद्वितीय कारककरण।

सेट जी = जीसीडी (एफ, एक्स^पी-एक्स)। दो बहुपदों की जीसीडी की गणना करने के लिए Euclid's algorithm का उपयोग सामान्य रूप से तेज़ है, अधिकतम डिग्री में लॉगरिदमिक कई कदम उठाते हैं। यह आपको बहुपदों को कारक करने की आवश्यकता नहीं है। जी में समान जड़ें फ़ील्ड में एफ हैं, और कोई दोहराया कारक नहीं है।

x^px के विशेष रूप के कारण, केवल दो nonzero शर्तों के साथ, यूक्लिड के एल्गोरिदम का पहला चरण repeated squaring द्वारा किया जा सकता है, लगभग 2 log_2 (p) चरणों में केवल डिग्री के बहुपदों से जुड़े दो बार से अधिक नहीं होते हैं। गुणांक mod ​​पी के साथ एफ की डिग्री। हम x mod f, x^2 mod f, x^4 mod f, आदि की गणना कर सकते हैं, फिर x^p mod f की गणना करने के लिए पी के बाइनरी विस्तार में nonzero स्थानों से संबंधित शर्तों को एक साथ गुणा करें, और अंततः x घटाएं।

बार-बार निम्न कार्य करें: Z/p में यादृच्छिक डी चुनें। आर_डी = (एक्स + डी)^((पी -1)/2) -1 के साथ जी की जीसीडी की गणना करें, जिसे हम पहले चरण पर बार-बार स्क्वायरिंग का उपयोग करके यूक्लिड के एल्गोरिदम द्वारा तेजी से गणना कर सकते हैं। यदि इस जीसीडी की डिग्री सख्ती से 0 और जी की डिग्री के बीच है, तो हमें जी का एक गैर-कारक कारक मिला है, और हम तब तक रिकर्स कर सकते हैं जब तक हमें रैखिक कारक नहीं मिलते हैं इसलिए जी की जड़ें और इस प्रकार एफ।

यह कितनी बार काम करता है? r_d में जड़ों की संख्या जड़ें हैं जो एक nonzero वर्ग mod p से कम हैं। जी, ए और बी की दो अलग-अलग जड़ों पर विचार करें, इसलिए (एक्स-ए) और (एक्स-बी) जी के कारक हैं। यदि एक + डी एक nonzero वर्ग है, और बी + डी नहीं है, तो (xa) जी और r_d का एक आम कारक है, जबकि (xb) नहीं है, जिसका अर्थ है जीसीडी (जी, आर_डी) जी का एक अनिवार्य कारक है । इसी तरह, यदि बी + डी एक nonzero वर्ग है जबकि एक + डी नहीं है, तो (x-b) जी और r_d का एक सामान्य कारक है जबकि (x-a) नहीं है। संख्या सिद्धांत के अनुसार, एक मामला या दूसरा डी के लिए संभावित विकल्पों में से आधे के करीब होता है, जिसका अर्थ है कि औसत पर यह जी के एक गैर-कारक कारक को खोजने से पहले डी की लगातार संख्या लेता है, वास्तव में एक अलग (xa) से (एक्सबी)।

+0

बहुपद जीसीडी जितना तेज़ नहीं है उतना तेज़ है। चरणों की संख्या छोटे बहुपद की डिग्री से घिरा हुआ है, जो यहां काफी अच्छा है। –

1

आपके उत्तर अच्छे हैं, लेकिन मुझे लगता है कि मुझे जड़ मॉड्यूलो को किसी भी संख्या को खोजने का एक शानदार तरीका मिला: यह विधि "लैटिकस" पर आधारित है। चलो आरआर की आधुनिक पी एक रूट होना। हम एक और समारोह जैसे h (x) ऐसी है कि बड़ी नहीं है और आर खोजने होंगे की जड़ है। जाली विधि इस समारोह को ढूंढें।पहली बार, हमें जाली के लिए बहुपद का आधार बनाना चाहिए और फिर, "एलएलएल" एल्गोरिदम के साथ, हमें एक "सबसे छोटा वेक्टर" मिलता है जिसमें रूट आर मॉड्यूल पी के बिना रूट है। वास्तव में, हम इस तरह से modulo पी को खत्म करते हैं।

अधिक स्पष्टीकरण के लिए, "कॉपरस्मिथ डी। छोटे डिग्री बहुपदों के लिए छोटे समाधान ढूंढना। क्रिप्टोग्राफी और जालसाजी में" देखें।

संबंधित मुद्दे