/ / जीपीयू पर बंद पूर्णांक गुणा और अतिरिक्त [बंद] - सी, एल्गोरिदम, cuda

जीपीयू [बंद] पर बड़े पूर्णांक गुणा और अतिरिक्त - सी, एल्गोरिदम, cuda

मैं जीपीयू पर एक एन्क्रिप्शन एल्गोरिदम विकसित कर रहा हूं। इस एल्गोरिदम के लिए बहुत बड़े पूर्णांक के अतिरिक्त और गुणा की आवश्यकता होती है। इन संख्याओं की अनुमानित 150,000 बिट या उससे अधिक की लंबाई है। इन संख्याओं की अलग-अलग लंबाई होती है। इन संख्याओं के अतिरिक्त और गुणा करने के लिए क्या एल्गोरिदम का उपयोग किया जा सकता है? कृपया मुझे अपनी जानकारी दें। धन्यवाद।

उत्तर:

जवाब के लिए 2 № 1

बड़ा पूर्णांक अतिरिक्त अपेक्षाकृत सरल है: जैकॉलनटर ने पहले ही पोस्ट को लिंक प्रदान किया है। असल में यह सिर्फ समांतर उपसर्ग योग के माध्यम से प्रचार प्रसार कर रहा है।

CUDA पर बड़े-पूर्णांक गुणा के लिए, मेरे दिमाग में दो तरीके आते हैं:

  • पूर्णांक को आरएनएस में बदलें (अवशेष संख्यासिस्टम): फिर गुणा और जोड़ समानांतर में किया जा सकता है (जब तक आरएनएस आधार पर्याप्त बड़ा हो)। जब भी आपको संख्याओं की तुलना करने की आवश्यकता होती है तो आप उन्हें मिश्रित रेडिक्स सिस्टम में परिवर्तित कर सकते हैं (देखें, उदा। एक अवशिष्ट संख्या प्रणाली से एक मिश्रित रेडिक्स सिस्टम में कैसे परिवर्तित करें?)। अंत में, आप नंबरों को स्थितित्मक संख्या प्रणाली में बदलने के लिए सीआरटी (चीनी रिमेन्डरिंग) का उपयोग कर सकते हैं

  • बड़े-पूर्णांक गुणा को सीधे लागू करेंगुणा के बाद से एफएफटी का उपयोग अनुक्रमों के विश्वकोश संकल्प के रूप में देखा जा सकता है (150 केबीटी लंबाई एफएफटी के लिए इतना नहीं है लेकिन पहले से ही आपको कुछ गति प्रदान कर सकती है)। अभी भी जीएनयू एमपी 1 एमबीटी या उससे भी अधिक से शुरू होने वाली एफएफटी गुणात्मक दिनचर्या में स्विच करता है। फिर एफएफटी के माध्यम से गुणा के लिए दो विकल्प हैं:

    1. फ्लोटिंग-पॉइंट डबल-प्रेसिजन एफएफटी का उपयोग करें और मंटिसा में बड़े-पूर्णांक बिट्स को एन्कोड करें (कार्यान्वित करने में आसान)

    2. तथाकथित संख्या-सैद्धांतिक परिवर्तन (परिमित क्षेत्र पर एफएफटी) का उपयोग करें

वैसे भी, इन चीजों के पीछे सिद्धांत का एक गुच्छा है। आप मेरा पेपर भी देख सकते हैं सीयूडीए में एफएफटी मुल। लेकिन विशेष रूप से क्रिप्टोग्राफी क्षेत्र में इस विषय पर कई शोध पत्र भी हैं।