बैरेट रिडक्शन: Difference between revisions
(Created page with "मॉड्यूलर अंकगणित में, बैरेट रिडक्शन 1986 में पी.डी. द्वारा शुरू किया...") |
No edit summary |
||
Line 1: | Line 1: | ||
[[मॉड्यूलर अंकगणित]] में | [[मॉड्यूलर अंकगणित]] में '''बैरेट रिडक्शन''' 1986 में पी.डी. द्वारा प्रारम्भ किया गया एक रिडक्शन [[कलन विधि]] है। बैरेट<ref name = Barrett1986> | ||
{{Cite book | last1 = Barrett | first1 = P. | chapter = Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor | doi = 10.1007/3-540-47721-7_24 | title = Advances in Cryptology – CRYPTO' 86 | series = Lecture Notes in Computer Science | volume = 263 | pages = 311–323 | year = 1986 | isbn = 978-3-540-18047-0 }} | {{Cite book | last1 = Barrett | first1 = P. | chapter = Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor | doi = 10.1007/3-540-47721-7_24 | title = Advances in Cryptology – CRYPTO' 86 | series = Lecture Notes in Computer Science | volume = 263 | pages = 311–323 | year = 1986 | isbn = 978-3-540-18047-0 }} | ||
</ref> | </ref> कंप्यूटिंग का सरल उपाय | ||
कंप्यूटिंग का | |||
:<math>c = a \,\bmod\, n \, </math> | :<math>c = a \,\bmod\, n \, </math> | ||
इस प्रकार यह तेज़ [[विभाजन एल्गोरिथ्म]] का उपयोग करना होगा। बैरेट रिडक्शन एल्गोरिदम है। जिसे इस ऑपरेशन को अनुकूलित करने के लिए डिज़ाइन किया गया है, इसमे <math>n</math> स्थिर है और <math>a<n^2</math> भाग को गुणन से प्रतिस्थापित करना है। | |||
ऐतिहासिक रूप से | |||
ऐतिहासिक रूप से वैल्यू के लिए <math>a, b < n</math>, बैरेट रिडक्शन <math>a b \, \bmod\, n \, </math> को संचालित करके सम्पूर्ण प्रोडक्ट ab की गणना की गई। हाल ही में यह दिखाया गया कि यदि हम किसी ऑपरेंड पर पूर्वगणना कर सकते हैं। तो पूर्ण उत्पाद अनावश्यक होता है।<ref name="ShoupNTL"> | |||
हाल ही में | {{cite web | ||
{{ | |||
cite web | |||
| last = Shoup | first = Victor | | last = Shoup | first = Victor | ||
| title = Number Theory Library | | title = Number Theory Library | ||
| url = https://libntl.org | | url = https://libntl.org | ||
}} | }} | ||
</ref><ref name = NeonNTT2022> | </ref><ref name="NeonNTT2022"> | ||
{{citation | {{citation | ||
| last1 = Becker | first1 = Hanno | | last1 = Becker | first1 = Hanno | ||
Line 30: | Line 27: | ||
}} | }} | ||
</ref> | </ref> | ||
Line 41: | Line 39: | ||
के सामान्य विकल्प <math>\left[\,\right]</math> [[फर्श समारोह]], [[छत समारोह]] और [[ गोलाई ]] फ़ंक्शन हैं। | के सामान्य विकल्प <math>\left[\,\right]</math> [[फर्श समारोह]], [[छत समारोह]] और [[ गोलाई ]] फ़ंक्शन हैं। | ||
आम तौर पर, बैरेट गुणन दो पूर्णांक सन्निकटन निर्दिष्ट करके | आम तौर पर, बैरेट गुणन दो पूर्णांक सन्निकटन निर्दिष्ट करके प्रारम्भ होता है <math>\left[\,\right]_0, \left[\,\right]_1</math> और एक यथोचित निकट सन्निकटन की गणना करता है <math>ab \, \bmod \, n</math> जैसा | ||
:<math> a b - \left[ \frac{a \, \left[ \frac{b R}{n} \right]_0 }{R} \right]_1 n</math>. | :<math> a b - \left[ \frac{a \, \left[ \frac{b R}{n} \right]_0 }{R} \right]_1 n</math>. | ||
Line 51: | Line 49: | ||
== एकल-शब्द बैरेट कमी == | == एकल-शब्द बैरेट कमी == | ||
जब मान मशीनी शब्दों में फिट होते हैं तो बैरेट ने | जब मान मशीनी शब्दों में फिट होते हैं तो बैरेट ने प्रारम्भ में उपरोक्त एल्गोरिदम के पूर्णांक संस्करण पर विचार किया। | ||
हम फ़्लोर-फ़ंक्शन केस के विचार का वर्णन करते हैं। | हम फ़्लोर-फ़ंक्शन केस के विचार का वर्णन करते हैं। | ||
Revision as of 02:00, 8 August 2023
मॉड्यूलर अंकगणित में बैरेट रिडक्शन 1986 में पी.डी. द्वारा प्रारम्भ किया गया एक रिडक्शन कलन विधि है। बैरेट[1] कंप्यूटिंग का सरल उपाय
इस प्रकार यह तेज़ विभाजन एल्गोरिथ्म का उपयोग करना होगा। बैरेट रिडक्शन एल्गोरिदम है। जिसे इस ऑपरेशन को अनुकूलित करने के लिए डिज़ाइन किया गया है, इसमे स्थिर है और भाग को गुणन से प्रतिस्थापित करना है।
ऐतिहासिक रूप से वैल्यू के लिए , बैरेट रिडक्शन को संचालित करके सम्पूर्ण प्रोडक्ट ab की गणना की गई। हाल ही में यह दिखाया गया कि यदि हम किसी ऑपरेंड पर पूर्वगणना कर सकते हैं। तो पूर्ण उत्पाद अनावश्यक होता है।[2][3]
सामान्य विचार
हम एक फ़ंक्शन कहते हैं एक पूर्णांक सन्निकटन यदि . एक मापांक के लिए और एक पूर्णांक सन्निकटन , हम परिभाषित करते हैं जैसा
- .
के सामान्य विकल्प फर्श समारोह, छत समारोह और गोलाई फ़ंक्शन हैं।
आम तौर पर, बैरेट गुणन दो पूर्णांक सन्निकटन निर्दिष्ट करके प्रारम्भ होता है और एक यथोचित निकट सन्निकटन की गणना करता है जैसा
- .
मामला पी.डी. द्वारा पेश किया गया था बैरेट [1]फ़्लोर-फ़ंक्शन मामले के लिए . के लिए सामान्य मामला संख्या सिद्धांत पुस्तकालय में पाया गया था।[2]पूर्णांक सन्निकटन दृश्य और मोंटगोमरी गुणन और बैरेट गुणन के बीच पत्राचार की खोज हनो बेकर, विंसेंट ह्वांग, मैथियास जे. कन्नविशर, बो-यिन यांग और शांग-यी यांग द्वारा की गई थी।[3]
एकल-शब्द बैरेट कमी
जब मान मशीनी शब्दों में फिट होते हैं तो बैरेट ने प्रारम्भ में उपरोक्त एल्गोरिदम के पूर्णांक संस्करण पर विचार किया। हम फ़्लोर-फ़ंक्शन केस के विचार का वर्णन करते हैं।
गणना करते समय अहस्ताक्षरित पूर्णांकों के लिए, स्पष्ट एनालॉग के लिए विभाजन का उपयोग करना होगा :
func reduce(a uint) uint {
q:= a / n // Division implicitly returns the floor of the result.
return a - q * n
}
हालाँकि, विभाजन महंगा हो सकता है और, क्रिप्टोग्राफ़िक सेटिंग्स में, कुछ सीपीयू पर एक निरंतर-समय निर्देश नहीं हो सकता है, जो ऑपरेशन को समय पर हमला के अधीन करता है। इस प्रकार बैरेट कमी अनुमानित है एक मूल्य के साथ क्योंकि विभाजन द्वारा यह सिर्फ एक राइट-शिफ्ट है, और इसलिए यह सस्ता है।
के लिए सर्वोत्तम मूल्य की गणना करने के लिए दिया गया विचार करना:
के लिए पूर्णांक होने के लिए, हमें पूर्णांक बनाना होगा किसी तरह। निकटतम पूर्णांक तक पूर्णांकित करने से सर्वोत्तम सन्निकटन मिलेगा, लेकिन इसका परिणाम हो सकता है से बड़ा होना , जो अंडरफ्लो का कारण बन सकता है। इस प्रकार अहस्ताक्षरित अंकगणित के लिए उपयोग किया जाता है।
इस प्रकार हम निम्नलिखित के साथ उपरोक्त फ़ंक्शन का अनुमान लगा सकते हैं:
func reduce(a uint) uint {
q := (a * m) >> k // ">> k" denotes bitshift by k.
return a - q * n
}
हालाँकि, जब से , का मान है q
उस फ़ंक्शन में अंत में एक बहुत छोटा हो सकता है, और इस प्रकार a
केवल भीतर होने की गारंटी है इसके बजाय जैसा कि आम तौर पर आवश्यक है. एक सशर्त घटाव इसे ठीक करेगा:
func reduce(a uint) uint {
q := (a * m) >> k
a -= q * n
if a >= n {
a -= n
}
return a
}
एकल-शब्द बैरेट गुणन
कल्पना करना पूर्व से ज्ञात है. यह हमें पूर्व-गणना करने की अनुमति देता है तक पहुँचने से पहले . बैरेट गुणन गणना , के उच्च भाग का अनुमान लगाता है साथ
,
और सन्निकटन को घटा देता है। तब से
का गुणज है ,
परिणामी मूल्य
का प्रतिनिधि है .
बैरेट और मोंटगोमरी गुणन के बीच पत्राचार
याद रखें कि अहस्ताक्षरित मोंटगोमरी गुणन एक प्रतिनिधि की गणना करता है जैसा
- .
वास्तव में, यह मान बराबर है .
हम दावे को इस प्रकार साबित करते हैं।
आम तौर पर, पूर्णांक सन्निकटन के लिए , अपने पास
- .[3]
बैरेट गुणन की सीमा
हमने आउटपुट को इससे बांध दिया है .
अन्य प्रकार के पूर्णांक सन्निकटन कार्यों के लिए भी समान सीमाएँ लागू होती हैं। उदाहरण के लिए, यदि हम चुनते हैं , गोलाई समारोह फ़ंक्शन, तो हमारे पास हैं
बहु-शब्द बैरेट कमी
कटौती पर विचार करने के लिए बैरेट की प्राथमिक प्रेरणा आरएसए (क्रिप्टोसिस्टम) का कार्यान्वयन था, जहां प्रश्न में मूल्य लगभग निश्चित रूप से एक मशीन शब्द के आकार से अधिक होगा। इस स्थिति में, बैरेट ने एक एल्गोरिदम प्रदान किया जो उपरोक्त एकल-शब्द संस्करण का अनुमान लगाता है लेकिन बहु-शब्द मानों के लिए। विवरण के लिए एप्लाइड क्रिप्टोग्राफी की हैंडबुक का खंड 14.3.3 देखें।[4]
बहुपदों के लिए बैरेट एल्गोरिथ्म
बहुपदों को उलट कर और एक्स-एडिक अंकगणित का उपयोग करके, बहुपद विभाजन के लिए बैरेट एल्गोरिथ्म का उपयोग करना भी संभव है।[5]
यह भी देखें
- मोंटगोमरी कमी एक और समान एल्गोरिदम है।
संदर्भ
- ↑ 1.0 1.1 Barrett, P. (1986). "Implementing the Rivest Shamir and Adleman Public Key Encryption Algorithm on a Standard Digital Signal Processor". Advances in Cryptology – CRYPTO' 86. Lecture Notes in Computer Science. Vol. 263. pp. 311–323. doi:10.1007/3-540-47721-7_24. ISBN 978-3-540-18047-0.
- ↑ 2.0 2.1 Shoup, Victor. "Number Theory Library".
- ↑ 3.0 3.1 3.2 Becker, Hanno; Hwang, Vincent; Kannwischer, Matthias J.; Yang, Bo-Yin; Yang, Shang-Yi, "Neon NTT: Faster Dilithium, Kyber, and Saber on Cortex-A72 and Apple M1", Transactions on Cryptographic Hardware and Embedded Systems, 2022 (1): 221–244
- ↑ Menezes, Alfred; Oorschot, Paul; Vanstone, Scott (1997). एप्लाइड क्रिप्टोग्राफी की हैंडबुक. ISBN 0-8493-8523-7.
- ↑ "बहुपदों के लिए बैरेट न्यूनीकरण". www.corsix.org. Retrieved 2022-09-07.
स्रोत
- Bosselaers, A.; Govaerts, R.; Vandewalle, J. (1993). "Comparison of Three Modular Reduction Functions". In Stinson, Douglas R. (ed.). क्रिप्टोलॉजी में प्रगति - क्रिप्टो'93. Lecture Notes in Computer Science. Vol. 773. Springer. pp. 175–186. CiteSeerX 10.1.1.40.3779. ISBN 3540483292.
- Hasenplaugh, W.; Gaubatz, G.; Gopal, V. (2007). "Fast Modular Reduction" (PDF). कंप्यूटर अंकगणित पर 18वीं आईईईई संगोष्ठी (ARITH'07). pp. 225–229. doi:10.1109/ARITH.2007.18. ISBN 978-0-7695-2854-0. S2CID 14801112.
श्रेणी:कंप्यूटर अंकगणित श्रेणी:मॉड्यूलर अंकगणित