इंटरनेट: एन्क्रिप्शन और सार्वजानिक कुंजी
नमस्ते, मेरा नाम मिया गिल-एपनर है, मैं यूसी बर्कले से कंप्यूटर साइंस पढ़ रही हूँ और मैं रक्षा विभाग के लिए काम करती हूँ, जहां मैं जानकारी
को सुरक्षित रखने की कोशिश करती हूँ । इंटरनेट एक खुली और
सार्वजनिक प्रणाली है। हम सभी शेयर्ड वायर और कनेक्शन पर जानकारी भेजते और
प्राप्त करते हैं। लेकिन भले ही यह एक खुली प्रणाली है, हम फिर भी बहुत सारे निजी डेटा का आदान-प्रदान
करते हैं। क्रेडिट कार्ड नंबर, बैंक जानकारी, पासवर्ड और ईमेल जैसी चीजें। तो
इन सभी निजी चीज़ों को कैसे गुप्त रखा जाता है? किसी भी प्रकार के डेटा को एन्क्रिप्शन नामक प्रक्रिया
से गुप्त रखा जा सकता है, मूल टेक्स्ट को छिपाने के लिए संदेश को स्क्रैम्बलिंग या
बदलना। अब डिक्रिप्शन अन-स्क्रैम्बलिंग की प्रक्रिया है जो इसे पठनीय बनाने के लिए संदेश देता है। यह एक
सरल विचार है, और लोग इसे सदियों से कर रहे हैं। एन्क्रिप्शन के पहले ज्ञात
तरीकों में से एक सीज़र का साइफर था। जूलियस सीज़र के नाम पर रखा गया,
एक रोमन जनरल जिसने अपने सैन्य आदेशों को यह सुनिश्चित करने के लिए एन्क्रिप्ट किया था कि यदि कोई संदेश
दुश्मनों द्वारा इंटरसेप्ट किया जाता है, तो वे इसे पढ़ नहीं पाएंगे। सीज़र साइफर एक एल्गोरिथ्म है
जो मूल संदेश के प्रत्येक अक्षर को वर्णमाला में कुछ अक्षरों के बाद आने वाले
अक्षर से बदल देती है। यदि नंबर केवल प्रेषक और प्राप्तकर्ता जानते हैं, तो इसे कुंजी
कहा जाता है। यह पाठक को गुप्त संदेश अनलॉक करने देता है। उदाहरण के
लिए, यदि आपका मूल संदेश ‘HELLO ’है तो 5 कुंजी के साथ सीजर साइफर एल्गोरिदम का उपयोग कर
एन्क्रिप्टेड संदेश होगा... संदेश को डिक्रिप्ट करने के लिए, प्राप्तकर्ता प्रक्रियाओं को उलटने के लिए कुंजी का
उपयोग करेगा। लेकिन सीज़र साइफर के साथ एक बड़ी समस्या यह है, कोई भी हर संभव कुंजी इस्तेमाल करके आसानी से एन्क्रिप्ट
किए गए संदेश को ब्रेक या क्रैक कर सकता है, और अंग्रेजी वर्णमाला में
केवल 26 अक्षर हैं, जिसका अर्थ है कि आपको संदेश डिक्रिप्ट करने के लिए केवल 26 कुंजी को
आजमाना होगा। अब 26 संभावित कुंजियों को आजमाना बहुत कठिन नहीं है, इसमें अधिकतम एक
या दो घंटे लगेंगे। तो चलिए इसे कठिन बनाते हैं। प्रत्येक अक्षर को एक ही अमाउंट से स्थानांतरित करने के बजाय,
प्रत्येक अक्षर को एक अलग अमाउंट से स्थानांतरित करते हैं। इस उदाहरण में दस अंकों की कुंजी से पता चलता है कि एक लंबे
संदेश को एन्क्रिप्ट करने के लिए प्रत्येक क्रमिक अक्षर को कितनी पोजीशन पर बदला जाएगा। इस कुंजी का अनुमान लगाना वास्तव
में कठिन होगा। 10 अंकों के एन्क्रिप्शन का उपयोग करने से 10 बिलियन संभव कुंजी समाधान हो सकते हैं।
जाहिर है कि यह मनुष्य के हल करने की क्षमता से कहीं अधिक हो सकता है और इसमें कई शताब्दियां लगेंगी।
लेकिन आज एक औसत कंप्यूटर, सभी 10 बिलियन संभावनाओं को आज़माने में महज कुछ सेकंड का समय लेगा।
तो आधुनिक दुनिया में बुरे लोग पेंसिल के बजाय कंप्यूटर से लैस हैं, तो आप संदेशों को इतना सुरक्षित रूप से कैसे एन्क्रिप्ट
कर सकते हैं कि उनके लिए उसे क्रैक करना मुश्किल हो जाए? अब बहुत
मुश्किल का अर्थ है कि उचित समय में गणना करने के लिए बहुत अधिक संभावनाएं हैं। आज के
सुरक्षित संचार 256 बिट कुंजियों का उपयोग करके एन्क्रिप्ट किए जाते हैं। इसका अर्थ है कि एक बुरे व्यक्ति का
कंप्यूटर जो आपके संदेश को एन्क्रिप्ट करता है, उसे कई संभव विकल्पों को आज़माना होगा ... जब तक वे कुंजी पता
लगाकर संदेश क्रैक नहीं कर लेते। यहां तक कि अगर आपके पास 100,000 सुपर कंप्यूटर थे और उनमें से प्रत्येक एक
मिलियन बिलियन कुंजियों को आजमाने में सक्षम था, तो हर विकल्प को आज़माने के लिए अरबों-खरबों
साल लगेंगे, 256 बिट एन्क्रिप्शन के साथ संरक्षित किसी संदेश को क्रैक करने के लिए।
बेशक कंप्यूटर चिप्स हर साल दो गुना तेज बनती हैं और उनका आकार कम होता जाता है। यदि घातीय
प्रगति की यह गति जारी रहती है, तो आज की असंभव समस्याएं भविष्य में सिर्फ
कुछ सौ वर्षों में हल हो जाएंगी और 256 बिट्स सुरक्षा के लिए पर्याप्त नहीं होंगे। वास्तव में
हमने पहले ही कंप्यूटर की गति से मेल खाने के लिए मानक कुंजी की लंबाई बढ़ाई है।
अच्छी खबर यह है कि लंबी कुंजी इस्तेमाल करना संदेशों को एन्क्रिप्ट करना बहुत कठिन नहीं बनाता, लेकिन यह
उन अनुमानों की संख्या को बढ़ा देता है, जो साइफर को क्रैक करने के लिए लगाये जाएंगे। जब प्रेषक
और प्राप्तकर्ता किसी संदेश को स्क्रैम्बल और अन- स्क्रैम्बल करने के लिए एक ही कुंजी साझा करते हैं, तो इसे
सिमेट्रिक एन्क्रिप्शन कहा जाता है। सीज़र साइफर की तरह सिमेट्रिक एन्क्रिप्शन के साथ, गुप्त कुंजी पर समय से पहले
दो लोगों द्वारा निजी रूप से सहमत होना पड़ता है। इसलिए यह लोगों
के लिए बहुत अच्छा है, लेकिन इंटरनेट खुला और सार्वजनिक है इसलिए दो कंप्यूटरों के लिए गुप्त कुंजी पर सहमत होने के लिए निजी
रूप से "मिलना" असंभव है। इसके बजाय कंप्यूटर एसिमेट्रिक एन्क्रिप्शन कुंजियों का उपयोग करते हैं, एक सार्वजनिक कुंजी
जिसे किसी के साथ भी बदला जा सकता है और एक निजी कुंजी जिसे साझा नहीं किया जाता है। सार्वजनिक कुंजी का उपयोग डेटा को एन्क्रिप्ट करने के लिए किया
जाता है और कोई भी इसका उपयोग गुप्त संदेश बनाने के लिए कर सकता है, लेकिन गुप्त को केवल कंप्यूटर द्वारा निजी
कुंजी तक पहुंच के साथ डिक्रिप्ट किया जा सकता है। यह किस गणित पर काम करता है, इसे हम
अभी नहीं समझ सकते। इसे इस तरह से सोचें, कल्पना करें कि आपके पास एक व्यक्तिगत मेलबॉक्स है,
जहां कोई भी मेल जमा कर सकता है, लेकिन उन्हें इसे करने के लिए एक कुंजी की आवश्यकता है। अब आप जमा कुंजी की कई प्रतियां बना
सकते हैं और एक अपने दोस्त को भेज सकते हैं या इसे सार्वजनिक रूप से भी उपलब्ध करा सकते हैं। आपका
मित्र या कोई अजनबी आपके डिपाजिट स्लॉट तक पहुंचने और संदेश छोड़ने के लिए सार्वजनिक कुंजी का उपयोग कर
सकता है, लेकिन केवल आप प्राप्त गुप्त संदेशों तक पहुँचने के लिए अपनी निजी
कुंजी से मेलबॉक्स खोल सकते हैं। और आप सार्वजनिक जमा कुंजी इस्तेमाल करके अपने मित्र को उसके मेलबॉक्स
में एक सुरक्षित संदेश भेज सकते हैं। इस तरह लोग निजी कुंजी पर सहमत होने की आवश्यकता के बिना
सुरक्षित संदेशों का आदान-प्रदान कर सकते हैं। सार्वजनिक कुंजी क्रिप्टोग्राफी खुले
इंटरनेट पर सुरक्षित संदेश भेजने की नींव है। जिसमें एसएसएल और टीएलएस नामक सुरक्षा प्रोटोकॉल शामिल
हैं, जो वेब ब्राउज़ करते समय हमारी रक्षा करते हैं। आपका कंप्यूटर आज इसका उपयोग करता है, कभी भी
आप अपने ब्राउज़र के एड्रेस बार में छोटा लॉक या अक्षर https
देखते हैं। इसका अर्थ है कि आपका कंप्यूटर सार्वजनिक कुंजी एन्क्रिप्शन का उपयोग कर रहा है ताकि आप जिस वेबसाइट पर हैं, उसके साथ
सुरक्षित रूप से डेटा का आदान-प्रदान कर सकें। जैसे-जैसे अधिक से अधिक लोग इंटरनेट पर आते हैं, अधिक से अधिक
निजी डेटा संचारित किया जाएगा, और उस डेटा को सुरक्षित करना और भी अधिक महत्वपूर्ण होगा।
और जैसे-जैसे कंप्यूटर तेज और तेज होते जाएंगे, हमें कंप्यूटर को ब्रेक करनेके लिए एन्क्रिप्शन को बहुत कठिन बनाने के
लिए नए तरीके विकसित करने होंगे। यह मैं अपने काम के साथ करती हूँ और यह हमेशा बदलता रहता है।