आपके बारे में क्या बात कर रहे हैं बहुत बहुत बहुत शिथिल नेट ढांचे में पाया एक असममित एन्क्रिप्शन एल्गोरिथ्म का एक और कार्यान्वयन की तरह दिखता है।
.Net असममित एन्क्रिप्शन के लिए दो शाखाओं को नियोजित करता है !!!
- आरएसए ** ग्रैंड मैक सभी विषम ENC 'उद्देश्यों के लिए इस्तेमाल पिताजी।
- डीएसए ** लेखक को सत्यापित करने के लिए डिजिटल हस्ताक्षर का उपयोग और निर्माण करने से अधिक संबंधित है।
दोनों
दोनों बहुत वे कैसे काम करने के लिए और कैसे एक डेवलपर उन्हें लागू करता है, लेकिन नीचे मैं पढ़ लिया है कि दो बहुत अलग एल्गोरिदम मौजूद के रूप में एक-दूसरे से मिलते-जुलते सार हैं।
आप विकल्प को बात कर रहे हैं 2.
नेट एक वर्ग है जो आप एक मूल्य है कि आमतौर पर हस्ताक्षर के रूप में जाना जाता है के साथ अपने डेटा को टैग की अनुमति देता है DSACryptoServiceProvider कहा जाता है प्रदान करता है।
एमएस आधिकारिक पाठ्यक्रम पाठ्यपुस्तक के मुताबिक यह लगभग काम करता है।
डाटा >>> हैश Alg >>> हैश मूल्य >>>>>>>>> Asymm 'Alg >>>> हस्ताक्षर प्रेषक की PVT.KEY >>>
नीचे दिखाता है कि कैसे जांच कर सकते हैं बॉब यह देखने के लिए कि ऐलिस वास्तव में प्रेषक है या नहीं।
डेटा >>> हैश अल्ग >>> हैश वैल्यू || Decrypted हस्ताक्षर < < < Asymm 'Alg < < < हस्ताक्षर < < < प्रेषक की PUB.KEY ? ==?
जैसा कि आप देख सकते हैं कि बॉब को जेनरेटेड हैश और डिक्रिप्टेड हस्ताक्षर की तुलना करना है ताकि यह सत्यापित किया जा सके कि ऐलिस प्रेषक है। DSACrypto 'श्रेणी में 4 विधियां हैं जो का उपयोग यहां किया जा सकता है लेकिन केवल दो प्रभावी रूप से बोल रहे हैं। कुछ ही समय में इस बिंदु पर, यह सब बॉब, कर सकते हैं अगर उसकी सार्वजनिक कुंजी ऐलिस की सार्वजनिक कुंजी नहीं है, तो अनिवार्य रूप से सॉफ्टवेयर अनुप्रयोग किसी भी आगे बढ़ने से बॉब के रूप में एक फर्जी सार्वजनिक कुंजी जब उपयोग करने के लिए कोशिश कर रहा है से अपने पटरियों में मृत बॉब बंद कर देना चाहिए है ऐलिस के साथ संवाद करने की कोशिश कर रहा है। यह लगाया गया रिश्ता है और सार्वजनिक कुंजी के महत्व पर बल दिया गया है। हस्ताक्षर आपको सार्वजनिक कुंजी मालिक को सत्यापित करने की अनुमति देता है।
यहां क्यों? ::
यदि बॉब के पास ऐलिस की सार्वजनिक कुंजी है तो वह .VerifyHash या VerifyData विधियों का उपयोग करके एन्क्रिप्टेड डेटा को डिक्रिप्ट करने के लिए उसी एल्गोरिदम का उपयोग कर सकता है। सीधे इस संदर्भ को दिया जाना चाहिए कि वे क्या करते हैं। एलिस की सार्वजनिक कुंजी का उपयोग करके यह सब किया गया है। केवल ऐलिस साइनहाश और साइनडाटा विधियों का उपयोग कर सकते हैं क्योंकि उन्हें ऐलिस की निजी कुंजी की आवश्यकता होती है।
आप ऊपर देख सकते हैं, कार्यक्षमता का एक निश्चित स्तर पहले से ही DSA और आरएसए CryptoServiceProvider कक्षाओं के अंदर समझाया गया है। एलआईएस एल्गोरिदम के रूप में एलिस को प्रेषक के रूप में सत्यापित करने के लिए आप उन्हें कितनी अच्छी तरह कार्यान्वित करते हैं, यह साबित करता है कि आप जेनरेट आउटपुट से मेल करके प्रेषक को प्रमाणित करने की अनुमति देते हैं। एक निश्चित हस्ताक्षर और हैश का मिलान होना चाहिए, यदि वे संक्षेप में करते हैं तो डीएसए ने आपको बॉब और एलिस के बीच गोपनीयता का एक निश्चित स्तर दिया है।
तो तुम सार्वजनिक कुंजी के सभी बाइट्स सत्यापित करने की आवश्यकता? क्या कुंजी का एक विशिष्ट हिस्सा है जिसे आप यह सुनिश्चित करने के लिए देख सकते हैं कि यह आपके बीच असली है? क्या फिंगरप्रिंट मिलान करने के लिए पर्याप्त है? – tbarbe
नहीं, आप सार्वजनिक कुंजी का उपयोग संदेश (हस्ताक्षर) के हैश डिक्रिप्ट करने के लिए है, तो रिसीवर के रूप में संदेश हैश खुद। यदि हैश मैच है, तो आप जानते हैं कि यह ऐलिस द्वारा भेजा गया था। http://en.wikipedia.org/wiki/Digital_signature – Nathan
आह हाँ ... md5 या SHA-1 - हाँ? तो एक बार जब गंतव्य गंतव्य पर आता है - यह सब ठीक करने का तरीका एमडी 5 और एसएचए -1 की तुलना करना है .... मेरे पास मौजूद कॉर्ट - इन दोनों को दिखाएं ...और मुझे लगता है कि मैं 'बैंड से बाहर की तुलना' के बारे में पढ़ रहा हूं - जिसका मतलब यह एक असुरक्षित सेट पर नहीं करता है? – tbarbe