2011-06-10 9 views
21

मैं एक क्रिप्टोग्राफी प्रोटोकॉल के कार्यान्वयन को लिख रहा हूं। अब तक मुझे 1024-बिट से 4096-बिट पूर्णांक (308- से 1233 अंकों की संख्या) के लिए सबसे तेज़ निर्धारक प्रारंभिक परीक्षण खोजने में मुश्किल हो रही है। मुझे कई विकल्पों के बारे में पता है लेकिन मैं असली दुनिया की गति तुलना नहीं कर पा रहा हूं।श्रेणी 2^1024 से 2^4096 में संख्याओं के लिए सबसे तेज़ निर्धारक प्रारंभिक परीक्षण क्या है?

विशेष रूप से, एकेएस परीक्षण इस आकार के सामान्य यादृच्छिक संख्याओं के लिए राबिन-मिलर के निर्धारणवादी संस्करण और एल्लिप्टिक वक्र प्राइमटीटी परीक्षण (और अन्य) की तुलना में कैसे करता है? रिचर्ड पी ब्रेंट द्वारा

primality परीक्षण:

+0

मुझे लगता है कि यह विषय पर है। – dmeister

+0

यह एक दिलचस्प पोस्ट है: http://mathoverflow.net/questions/33304/mareys-problem-generating-all-prime-numbers-in-n-1-n-2 –

+4

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

उत्तर

11

यह लेख आपके सवाल का जवाब है http://cs.anu.edu.au/student/comp4600/lectures/comp4600_primality.pdf

यह जटिलता में तुलना करता है और "वास्तविक दुनिया गति" 3 एल्गोरिदम में।

+0

+1। ब्रेंट सीएस डेमीगोड्स में से एक है। –

+0

+1 बहुत बढ़िया। यह मुझे लास वेगास एल्गोरिदम के बारे में उत्सुक छोड़ देता है। ऐसा लगता है कि गारंटीकृत समय में संभावित प्राइम होने की अपेक्षा, संभवतः अच्छे समय में प्रमाण पत्र होना बेहतर लगता है। – phkahler

+0

केवल एक चीज है जिसे मैं अभी भी नहीं जानता: वे राबिन-मिलर के _deterministic_ संस्करण से तुलना कैसे करते हैं? – jnm2

3

इस आकार अप्रैल होगा के लिए सबसे तेजी से प्रमाण तरीकों -सीएल (उदाहरण के लिए mpz_aprcl) और ईसीपीपी (उदाहरण के लिए Primo या ecpp-dj)। एपीआर-सीएल निर्धारक और लगभग बहुपद समय है, जबकि ईसीपीपी यादृच्छिक है लेकिन लौटाया गया जवाब साबित हुआ है, संभाव्य नहीं। वैकल्पिक रूप से, मूरर के तरीकों या श्वे-टेलर जैसे सिद्ध प्राइम के लिए एक रचनात्मक विधि का उपयोग करें। ये पॉकलिंगटन-स्टाइल सबूतों का निर्माण करके बनाए गए यादृच्छिक एन-बिट प्राइम्स को तेज़ी से उत्पन्न करने के तरीके हैं। एक व्यावहारिक दृष्टिकोण से, यदि आप किसी तीसरे पक्ष से उन्हें प्राप्त करने के बजाय यादृच्छिक उम्मीदवार उत्पन्न कर रहे हैं तो मिलर-राबिन के लिए त्रुटि दर असाधारण रूप से कम है, और इस मामले में लगभग सभी लोग कई मिलर-राबिन परीक्षणों से संतुष्ट हैं यादृच्छिक आधार, संभवतः एक मजबूत लुकास परीक्षण के साथ। संभावित प्राइम परीक्षण के लिए रचनात्मक तरीकों और सिफारिशों पर बहुत सारी जानकारी के लिए FIPS 186-4 देखें।

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

मैंने निर्धारिती एमआर नहीं जोड़ा क्योंकि मुझे लगता है कि आप 64-बिट इनपुट के बारे में बात नहीं कर रहे हैं, और इसके बाद आपको या तो एन/4 बेस का परीक्षण करना होगा या रिमेंन हाइपोथिसिस साबित करना होगा ताकि आपको केवल 2 * लॉग^2 (एन) आधार। हमारे अन्य विकल्पों की तुलना में कोई भी आकर्षक नहीं है, भले ही आप सबूत के बिना बाद में उपयोग करें। व्यावहारिक रूप से बैच संस्करण एकेएस की तुलना में तेज़ है, लेकिन सी + जीएमपी के साथ मेरे परीक्षणों में ईसीपीपी और एपीआर-सीएल से काफी धीमा है। मैंने एसिम्प्टोटिक्स को नहीं देखा है, लेकिन 300 अंकों पर यह 100x से अधिक धीमी है। इसलिए मुझे कोई बिंदु बनाम एपीआर-सीएल नहीं दिखता है (डेट एम-आर धीमा है) या ईसीपीपी (डेट एम-आर धीमा है और ईसीपीपी आपको बूट करने के लिए प्रमाणपत्र देता है)।

ब्रेंट का पेपर इस UMS10 version from 2010 के साथ-साथ a similar version from 2006 में पाया जा सकता है। यह मूल रूप से विभिन्न एल्गोरिदम के सी + जीएमपी में अधिक आधुनिक कार्यान्वयन से जो मिला है उससे सहमत है। एकेएस एक ऐतिहासिक सैद्धांतिक परिणाम है, लेकिन वर्तमान व्यावहारिक उपयोग नहीं है।

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