RSA पब्लिक-की एन्क्रिप्शन के लिए एक क्रिप्टोसिस्टम है, और असुरक्षित नेटवर्क (इंटरनेट सहित) पर भेजी जाने वाली संवेदनशील जानकारी को सुरक्षित करने के लिए व्यापक रूप से उपयोग किया जाता है।
RSA क्रिप्टोग्राफी में, पब्लिक और प्राइवेट दोनों कुंजियाँ एक संदेश को एन्क्रिप्ट कर सकती हैं; एन्क्रिप्ट करने के लिए उपयोग की गई कुंजी से विपरीत कुंजी का उपयोग इसे डिक्रिप्ट करने के लिए किया जाता है। यह विशेषता एक कारण है कि RSA सबसे व्यापक रूप से उपयोग किया जाने वाला असममित एल्गोरिदम बन गया है। यह डिजिटल संचार और डेटा स्टोरेज की गोपनीयता, अखंडता, प्रामाणिकता और गैर-अस्वीकृति (non-repudiation) सुनिश्चित करने का एक तरीका प्रदान करता है।
की जनरेशन के लिए RSA को एक मल्टीप्लिकेटिव ग्रुप G = < Zφn, *, X > की आवश्यकता होती है। यह ग्रुप केवल गुणा और भाग प्रदान करता है, जो पब्लिक और प्राइवेट कुंजियों की जनरेशन के लिए आवश्यक हैं। यह ग्रुप पब्लिक से गुप्त रखा जाता है क्योंकि इसका मॉड्यूलस, φ(n), पब्लिक से छिपा होता है।
पब्लिक और प्राइवेट की-जनरेशन एल्गोरिदम RSA क्रिप्टोग्राफी का सबसे कठिन तत्व है। रैबिन-मिलर प्राइमरी टेस्ट एल्गोरिदम का उपयोग करके दो बड़ी अभाज्य संख्याएँ, p और q, उत्पन्न की जाती हैं।
p और q को गुणा करके एक मॉड्यूलस n की गणना की जाती है। इस संख्या का उपयोग पब्लिक और प्राइवेट दोनों कुंजियों द्वारा किया जा सकता है और उनके बीच संबंध का समर्थन करता है। इसकी लंबाई, आमतौर पर बिट्स में परिभाषित, की लंबाई के रूप में जानी जाती है।
पब्लिक की में मॉड्यूलस n और एक पब्लिक एक्सपोनेंट e शामिल होता है, जिसे आमतौर पर 65537 पर सेट किया जाता है, क्योंकि यह एक अभाज्य संख्या है जो बहुत बड़ी नहीं है। e आंकड़े को निजी तौर पर चुनी गई अभाज्य संख्या होने की आवश्यकता नहीं है क्योंकि पब्लिक की सभी के साथ साझा की जाती है।
प्राइवेट की में मॉड्यूलस n और प्राइवेट एक्सपोनेंट d शामिल होता है, जिसकी गणना एक्सटेंडेड यूक्लिडियन एल्गोरिदम का उपयोग करके n के टोटिएंट के संबंध में मल्टीप्लिकेटिव इनवर्स का पता लगाकर की जाती है।
अंकगणित मॉड्यूलो n पर विचार करते हुए, मान लें कि e एक पूर्णांक है जो n के टोटिएंट φ(n) का सह-अभाज्य (co-prime) है। इसके अलावा, यह कहा जा सकता है कि d, φ(n) मॉड्यूलो e का मल्टीप्लिकेटिव इनवर्स है। सुविधा के लिए कई प्रतीकों की परिभाषाएँ नीचे सूचीबद्ध हैं:
- n = मॉड्यूलर अंकगणित के लिए एक मॉड्यूलस
- φ(n) = n का टोटिएंट
- e = एक पूर्णांक जो φ(n) के सह-संबद्ध रूप से अभाज्य है [यह गारंटी देता है कि e के पास φ(n) मॉड्यूलो एक मल्टीप्लिकेटिव इनवर्स होगा]
- d = एक पूर्णांक जो φ(n) मॉड्यूलो e का मल्टीप्लिकेटिव इनवर्स है
की जनरेशन के कम्प्यूटेशनल चरण
- p और q सहित दो अलग-अलग अभाज्य संख्याएँ उत्पन्न करें।
- मॉड्यूलस n = p × q की गणना करें।
- टोटिएंट φ(n) = (p - 1) × (q - 1) की गणना करें।
- पब्लिक एक्सपोनेंट के लिए एक पूर्णांक e चुनें जैसे कि 1 < e < φ(n) और gcd(φ(n), e) = 1।
- प्राइवेट एक्सपोनेंट के लिए एक मान d की गणना करें जैसे कि d = e⁻¹ mod φ(n)।
- पब्लिक की = [e, n]
- प्राइवेट की = [d, n]