कुछ डेटा को एन्क्रिप्ट करने के बीच अंतर क्या है कुछ डेटा पर हस्ताक्षर (आरएसए का उपयोग करके)?
एन्क्रिप्शन संदेश की गोपनीयता ("कुछ डेटा") को संरक्षित करता है, जबकि हस्ताक्षर गैर-प्रतिपूर्ति प्रदान करता है: अर्थात केवल उस इकाई जिसने हस्ताक्षर किया था, उस पर हस्ताक्षर कर सकता था। कार्यात्मक अंतर भी हैं; पढ़ते रहिये।
क्या यह सार्वजनिक-निजी कुंजी की भूमिका को उलट देता है?
बिलकुल नहीं। हस्ताक्षर और डिक्रिप्शन के लिए एक ही निजी कुंजी का उपयोग (या, इसी तरह, सत्यापन और एन्क्रिप्शन के लिए एक ही सार्वजनिक कुंजी ) पर फेंक दिया जाता है, क्योंकि आपको उद्देश्य मिश्रण नहीं करना चाहिए। यह इतना गणितीय मुद्दा नहीं है (आरएसए अभी भी सुरक्षित होना चाहिए), लेकिन मुख्य प्रबंधन के साथ एक समस्या , जहां उदाहरण के लिए हस्ताक्षर करने वाली कुंजी को थोड़ा जीवित होना चाहिए और इसका उपयोग करने से पहले अधिक सुरक्षा होनी चाहिए।
उसी संदेश के लिए, आपको हस्ताक्षर करने के लिए प्रेषकों की निजी कुंजी और एन्क्रिप्शन के लिए रिसीवर को विश्वसनीय सार्वजनिक कुंजी का उपयोग करना चाहिए। आमतौर पर साइन-तब-एन्क्रिप्ट का उपयोग किया जाता है अन्यथा एक प्रतिवादी अपने स्वयं के साथ हस्ताक्षर की जगह ले सकता है। इसी तरह आपको डिक्रिप्शन के लिए रिसीवर की निजी कुंजी और सत्यापन के लिए प्रेषक की विश्वसनीय सार्वजनिक कुंजी का उपयोग करना चाहिए ।
इसके अलावा, आपको यह समझना चाहिए कि हस्ताक्षर पीढ़ी "निजी कुंजी के साथ एन्क्रिप्शन" का उपयोग नहीं करती है। यद्यपि सभी आरएसए ऑपरेशन मॉड्यूलर घातांक पर आधारित होते हैं, लेकिन पैडिंग योजना हस्ताक्षर निर्माण के लिए पूरी तरह से अलग है। इसके अलावा, सार्वजनिक कुंजी में RSA के सभी व्यावहारिक उपयोगों में RSA निजी कुंजी की तुलना में पूरी तरह से अलग गुण हैं।
उदाहरण के लिए, मैं संदेश उत्पन्न करने के लिए अपनी निजी कुंजी का उपयोग करना चाहता हूं ताकि केवल मैं ही प्रेषक हो सकूं।
यह गैर-प्रतिवाद संपत्ति है, जिसे हस्ताक्षर करके प्राप्त किया जा सकता है।
मैं चाहता हूं कि संदेशों को पढ़ने के लिए मेरी सार्वजनिक कुंजी का उपयोग किया जाए और मुझे परवाह नहीं है कि कौन उन्हें पढ़ता है।
सार्वजनिक कुंजी को सभी द्वारा ज्ञात किया जाना चाहिए। यदि आप चाहते हैं कि हर कोई संदेशों को पढ़े, तो आप बस उन्हें एन्क्रिप्ट नहीं करेंगे।
हस्ताक्षर आम तौर पर संदेश की सामग्री को प्रभावित नहीं करेंगे। संदेश को हस्ताक्षरों से अलग माना जाता है। आधिकारिक तौर पर ऐसे हस्ताक्षर "परिशिष्ट के साथ हस्ताक्षर" के रूप में जाने जाते हैं जहां परिशिष्ट संदेश है। यह थोड़ा अजीब नाम है क्योंकि संदेश को इस पर हस्ताक्षर से अधिक महत्वपूर्ण माना जाता है, लेकिन हाँ। केवल कुछ हस्ताक्षर प्रस्ताव (आंशिक) संदेश पुनर्प्राप्ति; वे अब और अधिक उपयोग नहीं किए जाते हैं और आमतौर पर पदावनत माना जाता है।
ध्यान दें कि सीएमएस जैसे हस्ताक्षर प्रोटोकॉल एक कंटेनर प्रारूप को तैनात कर सकते हैं जिसमें संदेश और हस्ताक्षर दोनों शामिल हैं। उस स्थिति में आपको सबसे पहले कंटेनर के बाहर - अभी भी अनएन्क्रिप्टेड - मैसेज की आवश्यकता होगी, जो किसी सादे .zip संग्रह से फ़ाइल को खोलना पसंद है। इसलिए संदेश देखने से छिपा हो सकता है और उस स्थिति में सीधे उपयोग नहीं किया जा सकता है।
मैं कुछ जानकारी को एन्क्रिप्ट करने और अपने सॉफ़्टवेयर के लिए उत्पाद-कुंजी के रूप में उपयोग करने में सक्षम होना चाहता हूं। मुझे केवल इस बात की परवाह है कि मैं ही एक ऐसा व्यक्ति हूं जो इन्हें उत्पन्न कर सकता है।
एन्क्रिप्शन का उपयोग गोपनीयता प्राप्त करने के लिए किया जाता है। पूर्व में आरएसए हस्ताक्षर पीढ़ी को अक्सर "निजी कुंजी के साथ एन्क्रिप्शन" के रूप में सोचा जाता था। हालाँकि, ऑपरेशन बहुत अलग हैं जैसा कि ऊपर बताया गया है, और बाद के मानक पूरी तरह से कोशिश करते हैं और एन्क्रिप्शन और हस्ताक्षर पीढ़ी को अलग करते हैं।
मैं कुंजी के हस्ताक्षर को डिक्रिप्ट / पढ़ने के लिए अपनी सार्वजनिक कुंजी को अपने सॉफ़्टवेयर में शामिल करना चाहूंगा। मुझे परवाह नहीं है कि कुंजी में डेटा कौन पढ़ सकता है, मुझे केवल यह ध्यान है कि मैं केवल एक ही सत्यापन योग्य हूं जो उन्हें उत्पन्न कर सकता है।
हां, इसे पब्लिक की में ट्रस्ट की स्थापना कहा जाता है । हालाँकि, आपके प्रोग्राम कोड की सुरक्षा संदेशों की रक्षा करने से बहुत अलग है। आप कोड हस्ताक्षर कर सकते हैं लेकिन फिर आपको अपने कोड के बाहर हस्ताक्षर की जांच करने के लिए कुछ की आवश्यकता होगी । ऑपरेटिंग सिस्टम हैं जो इसे प्रदान करते हैं।
उदाहरण के लिए Microsoft प्रमाणक है। IStore और Android ऐप स्टोर जैसे एप्लिकेशन स्टोर कोड साइनिंग का उपयोग कर सकते हैं या नहीं भी कर सकते हैं, लेकिन वे कुछ आश्वासन देते हैं कि आपका आवेदन क्लोन नहीं किया गया है या कम से कम स्टोर के भीतर क्लोन नहीं किया गया है। क्रिप्टोग्राफी हमेशा सब के बाद समाधान नहीं है।
अपने कोड को क्लोन किए जाने / बिल्कुल बदल दिए जाने से बहुत मुश्किल है, और यदि आप इस तरह से जाते हैं तो आप DRM क्षेत्र में ठोस रूप से शामिल होंगे।
क्या इस परिदृश्य में हस्ताक्षर करना उपयोगी है?
हाँ बिल्कुल। यह निश्चित रूप से यह सुनिश्चित करने में मदद कर सकता है कि संदेशों को केवल आपके द्वारा हस्ताक्षरित किया गया था, अगर सार्वजनिक कुंजी में विश्वास है। यदि यह आपके एप्लिकेशन कोड को प्रमाणित करने के लिए सहायक हो सकता है / एकीकृत सार्वजनिक कुंजी पूरी तरह से उस पर्यावरण पर निर्भर करती है, जिसमें आप कोड को चलाने की अपेक्षा करते हैं।