RSA एल्गोरिदम एक पब्लिक-की सिग्नेचर एल्गोरिदम है जिसे रॉन रिवेस्ट, एडी शमीर और लियोनार्ड एडलमैन द्वारा स्थापित किया गया था। RSA सामान्य डेटा को एन्क्रिप्ट और डिक्रिप्ट करके सुरक्षित रूप से सूचना का आदान-प्रदान करने और डिजिटल सिग्नेचर वेरिफिकेशन के प्रबंधन के साथ भी कर सकता है।
RSA एल्गोरिदम बड़ी संख्याओं के फैक्टराइजेशन में निहित जटिलता पर आधारित है। RSA एल्गोरिदम इस तथ्य पर निर्भर करता है कि बहुत बड़ी संख्याओं को फैक्टर करने की कोई प्रभावी विधि नहीं है। इसलिए, RSA कुंजी का अनुमान लगाने में बड़ी मात्रा में समय और प्रोसेसिंग पावर लगेगी।
RSA एल्गोरिदम असममित क्रिप्टोग्राफी एल्गोरिदम है क्योंकि यह दो अलग-अलग कुंजियों जैसे पब्लिक की और प्राइवेट की पर काम करता है। पब्लिक की सभी के लिए उपलब्ध होती है, और प्राइवेट की गुप्त रहती है। पब्लिक की में दो संख्याएँ शामिल होती हैं, जिनमें से एक दो बड़ी अभाज्य संख्याओं का गुणनफल होती है।
RSA एन्क्रिप्शन में, एक संदेश को एक कोड के साथ एन्क्रिप्ट किया जाता है जिसे पब्लिक की के रूप में जाना जाता है, जिसे छिपाने की आवश्यकता नहीं होती। RSA एल्गोरिदम के गणितीय गुणों के आधार पर, क्योंकि एक संदेश को पब्लिक की के साथ एन्क्रिप्ट किया गया है, इसे केवल दूसरी कुंजी द्वारा डिक्रिप्ट किया जा सकता है, जिसे प्राइवेट की के रूप में जाना जाता है। इसलिए, ऐसी संदेशों को पढ़ने के लिए कुंजियों का एक सेट, जो पब्लिक और प्राइवेट कुंजियाँ हैं, आवश्यक है।
RSA एल्गोरिदम में निम्नलिखित चरण हैं:
- कुंजियाँ जनरेट करना
- दो बड़ी अभाज्य संख्याएँ चुनें, जैसे P और Q। अभाज्य संख्याएँ बड़ी होनी चाहिए ताकि उन्हें समझना किसी के लिए जटिल हो।
- N = P × Q की गणना करें
- पब्लिक की (यानी एन्क्रिप्शन की) E चुनें जैसे कि यह (P-1) और (Q-1) का गुणनखंड न हो।
- प्राइवेट की (यानी डिक्रिप्शन की) D चुनें जैसे कि निम्न समीकरण सत्य हो:
(D × E) mod (P - 1) × (Q - 1) = 1 - एन्क्रिप्शन के लिए, प्लेन टेक्स्ट (PT) से सिफर टेक्स्ट (CT) की गणना करें:
CT = PTE mod N - सिफर टेक्स्ट के रूप में CT को रिसीवर को भेजें।
- डिक्रिप्शन के लिए, सिफर टेक्स्ट (CT) से प्लेन टेक्स्ट (PT) की गणना करें:
PT = CTD mod N
एन्क्रिप्शन/डिक्रिप्शन फंक्शन - एक बार कुंजियाँ जनरेट हो जाने के बाद, पैरामीटर्स को उन फंक्शन्स को पास किया जा सकता है जो संबंधित कुंजी का उपयोग करके सिफरटेक्स्ट और प्लेनटेक्स्ट की गणना करते हैं।
- यदि प्लेनटेक्स्ट m है, तो सिफरटेक्स्ट = me mod n।
- यदि सिफरटेक्स्ट c है, तो प्लेनटेक्स्ट = cd mod n
उदाहरण के लिए, जहाँ p = 17 और q = 13। e का मान 5 हो सकता है क्योंकि यह शर्त 1 < e < (p-1)(q-1) को संतुष्ट करता है।
N = p × q = 91
D = e⁻¹ mod (p-1)(q-1) = 29
पब्लिक की पेयर = (91, 5)
प्राइवेट की पेयर = (91, 29)
यदि प्लेनटेक्स्ट (m) का मान 10 है, तो इसे सूत्र me mod n = 82 का उपयोग करके एन्कोड किया जा सकता है।
इस सिफरटेक्स्ट (c) को मूल डेटा पर वापस डिक्रिप्ट करने के लिए, सूत्र cd mod n = 29 का उपयोग करना चाहिए।