सबसे पहले, शब्दावली का एक बिंदु: आप जो वर्णन करते हैं वह सममित एन्क्रिप्शन है , और एक कुंजी जिसे प्रतिभागियों के बीच साझा किया जाता है, आमतौर पर एक गुप्त कुंजी के रूप में जाना जाता है; "निजी कुंजी" का अर्थ आमतौर पर सार्वजनिक-कुंजी क्रिप्टोग्राफी में एक कुंजी का हिस्सा होता है जिसे केवल एक प्रतिभागी जानता है।
एक गुप्त कुंजी को प्रसारित करने के दो तरीके हैं: इसे कुछ शारीरिक रूप से सुरक्षित फैशन में ले जाया जा सकता है, या इसे कुछ अन्य प्रकार के एन्क्रिप्शन, आमतौर पर सार्वजनिक-कुंजी क्रिप्टोग्राफ़ी का उपयोग करके ले जाया जा सकता है।
एक गुप्त कुंजी का आदान-प्रदान करने के तरीके हैं जिनके लिए एक गुप्त संचार चैनल की आवश्यकता नहीं है। सबसे लोकप्रिय डिफी-हेलमैन कुंजी विनिमय प्रोटोकॉल है। डिफी-हेलमैन का सिद्धांत यह है कि प्रत्येक प्रतिभागी अपनी कुंजी जोड़ी बनाता है, और एक गणितीय ऑपरेशन होता है जो एक सार्वजनिक कुंजी और एक निजी कुंजी से बड़ी संख्या का निर्माण करता है। इस गणितीय ऑपरेशन में एक बहुत ही दिलचस्प संपत्ति है: बड़ी संख्या का निर्माण ऐलिस की निजी कुंजी और बॉब की सार्वजनिक कुंजी या बॉब की निजी कुंजी और ऐलिस की सार्वजनिक कुंजी से किया जा सकता है; आपको एक ही नंबर मिलता है। इसलिए ऐलिस और बॉब अपनी सार्वजनिक कुंजी का आदान-प्रदान करते हैं, और दोनों पक्ष बड़ी संख्या में जानते हैं, जिसे बाद में एक गुप्त कुंजी के रूप में इस्तेमाल किया जा सकता है। एक eavesdropper सार्वजनिक कुंजी दोनों का पता लगा सकता है, लेकिन अकेले सार्वजनिक कुंजी से बड़ी संख्या का पता लगाना असंभव है।
डिफी-हेलमैन कुंजी विनिमय दो पक्षों को एक गुप्त विनिमय करने की अनुमति देता है, कोई फर्क नहीं पड़ता कि कौन सुन रहा है। हालांकि, यह ऐलिस को बॉब या इसके विपरीत प्रमाणित नहीं करता है। इसलिए यह एक आदमी के बीच में हमला करने के लिए उत्तरदायी है : मैलोरी ऐलिस के साथ प्रमुख आदान-प्रदान करता है (जो मानता है कि वह बॉब से बात कर रहा है) और बॉब के साथ अलग से (जो मानते हैं कि वह ऐलिस से बात कर रहा है), और इस तरह फैसला करना या कम से कम राज तो जानो।
जब हमलावर संदेशों को इंटरसेप्ट और इंजेक्ट कर सकता है, तो प्रतिभागियों को एक-दूसरे को प्रमाणित करने के लिए अधिक क्रिप्टोग्राफी की आवश्यकता होती है। (एक निष्क्रिय हमलावर प्रभावी रूप से इसका मतलब है कि अंतर्निहित परिवहन प्रोटोकॉल प्रमाणीकरण प्रदान करता है।) आसान तरीका प्रत्येक प्रतिभागी के लिए एक दूसरे की सार्वजनिक कुंजी को पहले से ही जानना है। यदि ऐलिस बॉब की सार्वजनिक कुंजी जानता है:
- ऐलिस बॉब को उसे एक चुनौती भेजकर प्रमाणित कर सकता है: बॉब की सार्वजनिक कुंजी के साथ एन्क्रिप्ट किया गया एक यादृच्छिक मूल्य (एक नॉनस )। अगर बॉब उस मूल्य को डिक्रिप्ट कर सकता है और उसे वापस भेज सकता है, तो ऐलिस जानती है कि वह वास्तव में बॉब से बात कर रही है।
- बॉब अपनी सार्वजनिक कुंजी के साथ हस्ताक्षरित एक संदेश भेजकर ऐलिस के साथ प्रमाणित कर सकता है। ऐलिस जाँच करने के लिए हस्ताक्षर की पुष्टि करती है कि वह वास्तव में बॉब से बात कर रही है।
ऐसे कई संस्करण हैं जो इन विधियों में से एक (या अभी तक एक और संस्करण) का एक दिशा में उपयोग करते हैं और या तो एक ही दिशा में या दूसरी दिशा में एक ही विधि या केवल एक दिशा में प्रमाणित करते हैं। उदाहरण के लिए, SSL / TLS (HTTPS, SMTPS, IMAPS, जैसे कई -s प्रोटोकॉल के लिए क्रिप्टोग्राफी परत) कई अलग-अलग सिफर संयोजन का उपयोग कर सकते हैं, और आमतौर पर क्लाइंट को सर्वर प्रमाणित करते हैं, लेकिन क्लाइंट को भी प्रमाणित कर सकते हैं। डिफी-हेलमैन इस एप्लिकेशन के लिए धीमा और बोझिल है; सार्वजनिक वितरण के साथ सबसे व्यापक एल्गोरिथ्म RSA है ।
बेशक, ऐलिस और बॉब एक दूसरे की सार्वजनिक कुंजी को पहले से नहीं जानते होंगे। इसलिए वे इसके बजाय एक विश्वास श्रृंखला पर भरोसा करते हैं: बॉब ऐलिस को अपनी सार्वजनिक कुंजी भेजता है, एक तीसरी पार्टी के हस्ताक्षरित बयान के साथ जो पुष्टि करता है कि यह कुंजी वास्तव में बॉब की सार्वजनिक कुंजी है। इस हस्ताक्षरित बयान को प्रमाणपत्र कहा जाता है और तीसरा पक्ष प्रमाणपत्र प्राधिकारी है । तीसरे पक्ष को बॉब के लिए जाना जा सकता है, या इसकी पहचान की पुष्टि एक चौथे पक्ष द्वारा की जा सकती है, और इसी तरह। आखिरकार विश्वास की यह श्रृंखला (… चार्ली के लिए डोमिनिक वाउच के लिए वाउच जो बॉब के लिए वाउच करता है) को कुछ पार्टी रॉन तक पहुंचना चाहिए जो बॉब पहले से ही भरोसा करते हैं, जिसका अर्थ है कि बॉब के पास रॉन की सार्वजनिक कुंजी है और रॉन को केवल वैध प्रमाण पत्र पर हस्ताक्षर करने के लिए भरोसा है।
ऐसे प्रोटोकॉल हैं जो सार्वजनिक-कुंजी क्रिप्टोग्राफी पर भरोसा नहीं करते हैं। विशेष रूप से, Kerberos प्रोटोकॉल का उपयोग क्लाइंट और सर्वर के बीच संबंध स्थापित करने के लिए यूनिक्स-आधारित और विंडोज-आधारित नेटवर्क दोनों में किया जाता है। Kerberos एक केंद्रीय प्रमाणीकरण सर्वर का उपयोग करता है जिसे कुंजी वितरण केंद्र (KDC) कहा जाता है । KDC के पास उपयोगकर्ता का पासवर्ड डेटाबेस में संग्रहित होना चाहिए, और क्लाइंट आमतौर पर पासवर्ड के लिए उपयोगकर्ता को संकेत देता है। पासवर्ड को उजागर करने से बचने के लिए, प्रोटोकॉल सीधे पासवर्ड का उपयोग नहीं करता है, लेकिन एक क्रिप्टोग्राफिक हैश या अधिक आम तौर पर पासवर्ड के लिए लागू एक प्रमुख व्युत्पन्न फ़ंक्शन है।
इस साझा रहस्य के साथ, क्लाइंट और केडीसी एक सुरक्षित चैनल स्थापित करते हैं और केडीसी क्लाइंट को "टिकट" भेजता है। टिकट में एक सत्र कुंजी (यानी एक नवनिर्मित गुप्त कुंजी) होती है, साथ ही उस कुंजी की एक प्रति भी होती है जिसे KDC और सर्वर के बीच साझा की गई एक अन्य सममित कुंजी के साथ एन्क्रिप्ट किया जाता है जिसे ग्राहक संपर्क करना चाहता है। क्लाइंट तब इस एन्क्रिप्टेड कॉपी को सर्वर पर फॉरवर्ड करता है। सर्वर सत्र कुंजी प्राप्त करने के लिए इस संदेश को डिक्रिप्ट करता है, और एक गैर बनाता है कि यह सत्र कुंजी के साथ एन्क्रिप्ट करता है और क्लाइंट को वापस भेजता है। क्लाइंट तब सर्वर के साथ एक सुरक्षित चैनल शुरू करता है, सत्र कुंजी के साथ एन्क्रिप्ट किया गया है, और यह दिखाते हुए शुरू होता है कि यह नॉनस को डिक्रिप्ट कर सकता है: यह क्लाइंट को सर्वर को प्रमाणित करता है। एक केर्बरोस सत्र की स्थापना नीडम-श्रोएडर प्रोटोकॉल का एक प्रकार है ।
Ographers इस अर्थ में कि क्रिप्टोग्राफर्स ने बहुत कोशिश की है, लेकिन जिस तरह से उन्होंने ऐसा करने के लिए पाया है, उसके लिए कंप्यूटिंग शक्ति की एक अविश्वसनीय राशि की आवश्यकता होती है।