डेटा एन्क्रिप्शनची प्रक्रिया (अच्युत गोडबोले)

achyut godbole
achyut godbole

समजा अनंताला बंड्यासाठी काही संदेश पाठवायचा असेल, तर बंड्या अनंताकडे आपली पब्लिक की पाठवतो. यानंतर अनंता ती वापरून आपला संदेश एन्क्रिप्ट करतो आणि तो बंड्याला पाठवतो. बंड्याकडे तो संदेश आल्यावर बंड्या आपल्याकडच्या प्रायव्हेट कीनं तो डिक्रिप्ट करून वाचतो. मधल्या कुणाला तो संदेश मिळाला तरी त्याच्याकडे बंड्याची प्रायव्हेट की नसल्यामुळे त्यांना तो वाचता येतच नाही. कारण बंड्याची पब्लिक की वापरून एन्क्रिप्ट केलेला मजकूर बंड्याच्या प्रायव्हेट कीशिवाय डिक्रिप्ट होऊच शकत नाही. आणि बंड्याची प्रायव्हेट की फक्त बंड्याकडेच असते. अशा तऱ्हेनं की डिस्ट्रीब्युशनचा प्रश्न सोडवला जातो.

आत्तापर्यंत इतिहासात हजारो लोकांनी गुप्त संदेश पाठवले आहेत आणि अमेरिकेतल्या एनएसए (NSA) आणि रशियातल्या केजीबी (KGB) अशा संघटनांपासून कित्येक व्यक्तींनी आणि गणितज्ञांनी ते ब्रेक करण्याचे प्रयत्नही केले आहेत. हा लपंडाव आणि चोर-शिपायांचा खेळ गेली अनेक शतकं/सहस्रकं चालला आहे. या इतिहासातल्या काही कोडभाषा अजून ब्रेक झालेल्या नाहीयेत. काही गुप्त संदेश प्रेमिकांनी एकमेकांना पाठवलेले होते, तर काही संदेश खून झालेल्या मृतांच्या खिशामध्ये मिळाले आहेत. ते संदेश आणि त्या खुनांची कारणं अजूनही गुप्तच राहली आहेत. अशांचा इतिहास खूपच रोमांचकारी आहे.

आजकाल कॉम्प्युटरमधले सगळा डेटा किंवा माहिती ० आणि १ च्याच भाषेत असते. मग तो मजकूर (टेक्स्ट) असो, ध्वनी असो, फोटो असो किंवा व्हिडिओ असो. तो एन्क्रिप्ट करण्यासाठी अनेक वेगवेगळ्या युक्त्या वापरतात. सगळ्यात सोपी युक्ती म्हणजे बिट्स उलटे करणं. म्हणजे ० च्या जागी १ आणि १ च्या जागी ० करणं. पण हे ब्रेक किंवा डीकोड करणं सगळ्यात सोपं आहे. आणखी एक म्हणजे कुठली तरी डिजिटल की घ्यायची (उदाहरणार्थ, सहा बिट्सची ०१००११) आणि ती प्लेनटेक्स्टच्या दर सहा बिट्समध्ये मिळवत किंवा वजा करत जायची. मात्र, अशा तऱ्हेचे अल्गॉरिदम्स ब्रेक करणं फार कठीण नसतं. यामुळे मग एक लांबलचक की घेऊन संदेशातल्या बिट्सवर खूप गुंतागुंतीची गणितं वापरून तो एन्क्रिप्ट करतात. या गणितामध्ये ‘मॉड्युलर मॅथेमॅटिक्स’चा आणि प्राईम नंबर्सचा वापर मोठ्या प्रमाणावर होत असतो. म्हणूनच क्रिप्टोग्राफीच्या क्षेत्रामध्ये अनेक गणितज्ञ काम करत असतात. ही की आणि त्यावर गुंतागुंतीचं गणित वापरून सायफरटेक्स्टचे जे बिट्स मिळतील ते मग दुसरीकडे पाठवले जातात. मग त्या ठिकाणी पुन्हा तशीच पद्धत (अल्गॉरिदम) वापरून तो संदेश डिक्रिप्ट करता येतो. आता मध्येच कोणी टॅप करून तो संदेश जरी मिळवला तरी ती की आणि तो अल्गॉरिदम माहीत असल्याशिवाय त्याला तो संदेश वाचता येत नाही. या बिट्सवर दोन तऱ्हेचे सायफर्स वापरता येतात. एक म्हणजे स्ट्रीम सायफर्स आणि दुसरे म्हणजे ब्लॉक सायफर्स. स्ट्रीम सायफर्समध्ये सर्वसाधारणपणे या बिट्सपैकी प्रत्येक बाईटचं एन्क्रिप्शन करून तो पुढे पाठवला जातो. दुसऱ्या बाजूला त्याच पद्धतीनं प्रत्येक बाईट वेगळा करून तो डिक्रिप्ट करून शेवटी तो संदेश डिक्रिप्ट करता येतो. RC४ हा एक प्रसिद्ध स्ट्रीम सायफर होता; पण तो ब्रेक करणं फारसं अवघड नव्हतं.

ब्लॉक सायफरमध्ये प्लेनटेक्स्टमध्ये असलेल्या बिट्सचे ६४ किंवा तत्सम बिट्सचे ब्लॉक्स बनवले जातात आणि हे ब्लॉक्स अनेक वेळा वेगवेगळ्या तऱ्हेनं वेगवेगळे अल्गॉरिदम्स वापरून प्रोसेस केले जातात. यांना बॉक्सिंगमध्ये म्हणतात तसं ‘राउंड्‍ज’ म्हणतात. हॉर्स्ट फीस्टेल (Horst Feistel) या आयबीएममध्ये काम करणाऱ्यानं या प्रकारचा ‘फीस्टेल सायफर’ नावाचा एक सायफर तयार केला. त्यात सुधारणा करून ‘डेटा एन्क्रिप्शन स्टँडर्ड (DES)’ हे स्टँडर्ड तयार झालं. सन १९७७ मध्ये या स्टँडर्डला अमेरिकेनं आणि नंतर सगळ्या जगानं मान्यता दिली. DES मध्ये ६४ बिट्सचे ब्लॉक्स आणि ५६ बिट्सची की वापरली होती. ते डीकोड करणं सोपं नव्हतं; पण सन १९९० च्या दशकात ते ब्रेक झाल्यामुळे ट्रिपल डीईएस किंवा ३ DES हे स्टँडर्ड निघालं. त्यात ‘की’चा आकार तिप्पट करण्याचा इरादा असला, तरी प्रत्यक्षात तो दुप्पट म्हणजे ११२ बिट्स एवढा झाला. तो ब्रेक करायला खूप अवघड होता. उदाहरणार्थ DES ब्रेक करायला जर १ मिनिट लागत असेल, तर ३DES ब्रेक करायला २,६०,६५८ वर्षं लागतील असा अंदाज होता!

सन २००१ मध्ये अमेरिकेतल्या नॅशनल इन्स्टिट्यूट ऑफ स्टँडर्डस् अँड टेक्नॉलॉजी (NIST) यांनी ‘अॅडव्हान्स्ड एन्क्रिप्शन स्टँडर्ड (AES)’ नावाचा आणखी एक सायफर काढला. AES चे ब्लॉक्स १२८ बिट्सचे असतात आणि त्यातल्या कीज १२८, १९२ किंवा २५६ बिट्सच्या असतात. अँड्रोईडमध्ये एईएसचाच वापर केलेला असतो.
आत्तापर्यंत आपण बघितलेले जवळपास सगळेच अल्गॉरिदम्स हे सिमेट्रिक कीचे होते. म्हणजे ज्या ‘की’ आणि अल्गॉरिदमनं तो संदेश एन्क्रिप्ट करायचा तीच की आणि तोच अल्गॉरिदम तो संदेश डिक्रिप्ट करायला वापरावा लागायचा. या स्कीममध्ये एक प्रश्न होता. तो म्हणजे दोन टोकाला असलेलेल्या त्या दोन व्यक्तींनी ती की आणि तो अल्गॉरिदम या गोष्टी एकमेकांबरोबर शेअर कशा करायच्या? एकानं दुसऱ्याकडे जाऊन त्याच्या कानात ती की सांगितली किंवा एका कागदावर त्याला लिहून दिली तर ठीक; पण जर माणसं वेगळ्या ठिकाणी किंवा वेगळ्या खंडांत राहत असली तर काय करायचं? मग ही की आणि वापरायची पद्धती किंवा अल्गॉरिदम फोनवर, पत्रानं किंवा ई-मेलनं पाठवावी लागेल. मात्र, तीही मध्येच कोणी चोरली तर सगळंच ओम फस्स व्हायचं. मग करायचं काय? या प्रश्नाला ‘की डिस्ट्रिब्युशन प्रॉब्लेम’ असं म्हणतात.

हा प्रश्न सोडवण्याचा एक महत्त्वाचा प्रयत्न म्हणजे ‘एसिमेंट्रिक की एन्क्रिप्शन.’ यामध्ये दोन वेगवेगळ्या कीज वापरतात. एक एन्क्रिप्शनसाठी आणि दुसरी डिक्रिप्शनसाठी; पण या कीज वाटेल तशा नसतात. यामध्ये प्राईम नंबर्सच्या गणिताचा वापर करून दोन खूप लांबलचक कीजच्या जोड्या अशा तऱ्हेनं निवडल्या जातात, की त्यातल्या एका कीनं जर संदेश एन्क्रिप्ट केला तर तो फक्त आणि फक्त त्या दुसऱ्याच, पण वेगळ्या कीनंच डिक्रिप्ट होऊ शकतो. अगदी पहिल्या कीनंही नाही! याच तत्त्वावर ‘पब्लिक की एन्क्रिप्शन’ आखलं आहे. नोव्हेंबर १९७६ मध्ये IEEE जर्नलमध्ये ‘न्यू डायरेक्शन्स इन क्रिप्टोग्राफी’ हा एक पेपर प्रकाशित झाला. तेव्हापासून याची सुरवात झाली.

रॉन रिव्हेस्ट, अडी शमीर, आणि लेन अॅडलेमन या एमआयटीमधल्या तिघांनी सन १९७७ मध्ये पहिली पब्लिक की क्रिप्टोग्राफीची पद्धत काढली. या पद्धतीला ‘रिव्हेस्ट-शमीर-अॅडलेमन (आरएसए)’ असं म्हणतात. मोठ्या प्राईम नंबर्सच्या गणिताचा यामध्ये वापर केला आहे. ही पद्धती खूपच लोकप्रिय झाली.

प्रत्यक्षात कुठलीही पब्लिक की एन्क्रिप्शनची पद्धती जरी गुंतागुंतीची असली, तरी कळण्यासाठी आपण इथं ती सोपी करून सांगण्याचा प्रयत्न करणार आहोत. यामध्ये ज्यांना ज्यांना संदेश पाठवायचे किंवा रिसिव्ह करायचे आहेत, त्यापैकी प्रत्येकाकडे स्वत:ची अशी दोन कीजची एक जोडी असते. त्यातली एक म्हणजे पब्लिक की आणि दुसरी म्हणजे प्रायव्हेट की असते. यातला प्रत्येक जण आपली पब्लिक की जाहीर करतो. म्हणूनच याला ‘पब्लिक की’ म्हणतात. दुसरी की मात्र तो स्वत:कडे गुप्त ठेवतो. म्हणून याला ‘प्रायव्हेट की’ म्हणतात. आता जर समजा अनंताला बंड्यासाठी काही संदेश पाठवायचा असेल, तर बंड्या अनंताकडे आपली पब्लिक की पाठवतो. यानंतर अनंता ती वापरून आपला संदेश एन्क्रिप्ट करतो आणि तो बंड्याला पाठवतो. बंड्याकडे तो संदेश आल्यावर बंड्या आपल्याकडच्या प्रायव्हेट कीनं तो डिक्रिप्ट करून वाचतो. मधल्या कुणाला तो संदेश मिळाला तरी त्याच्याकडे बंड्याची प्रायव्हेट की नसल्यामुळे त्यांना तो वाचता येतच नाही. कारण बंड्याची पब्लिक की वापरून एन्क्रिप्ट केलेला मजकूर बंड्याच्या प्रायव्हेट कीशिवाय डिक्रिप्ट होऊच शकत नाही. आणि बंड्याची प्रायव्हेट की फक्त बंड्याकडेच असते. अशा तऱ्हेनं की डिस्ट्रीब्युशनचा प्रश्न सोडवला जातो.

यामध्ये एक प्रश्न मात्र असतो. समजा आपल्याला एका बँकेकडून एक ‘पब्लिक की’ आली, तर आपल्याला ती खरंच त्या बँकेकडूनच आली आहे याची खात्री कशी पटायची? नाही तर आपण आपली माहिती कुणालाही पाठवायला सुरू करू. ही खात्री पटवण्यासाठी जी सोय असते, त्याला ‘डिजिटल सर्टिफिकेट्‍स’ असं म्हणतात. डिजिटल सर्टिफिकेटस् म्हणजे आपल्या आधार कार्डांसारखंच असतं. आधार कार्ड जसं सरकार देतं, तसंच डिजिटल सर्टिफिकेट्‍स देण्यासाठी ‘सर्टिफिकेशन ऑथॉरिटी (CA)’ असते. ती एक प्रसिद्ध संघटना असते. सरकारी पोस्ट ऑफिस, एखादी प्रसिद्ध वित्तसंस्था किंवा एखादी सॉफ्टवेअरची मोठी कंपनी हे काम करते. जगभर व्हेरीसाइन आणि भारतात NIC आणि TCS या सर्टिफाईंग ऑथॉरिटीज आहेत. ही संघटना कुठल्याही व्यक्तीची, संस्थेची किंवा कंपनीची माहिती पडताळून पाहते आणि मगच ही डिजिटल सर्टिफिकेटस् त्यांना देते. त्यामुळे एखादी बँक आपल्याला त्यांची पब्लिक की पाठवते तेव्हा त्याबरोबर आपलं डिजिटल सर्टिफिकेटही पाठवते. ते पडताळून बघितलं, की मग बँकेची ओळख पटते.

इंटरनेटमध्ये ‘पब्लिक की एन्क्रिप्शन’चा वापर मोठ्या प्रमाणात होतो. इंटरनेट आज क्लाएंट सर्व्हर तत्त्वावर चालतं. आपल्याला कॉम्प्युटरवरचा ‘क्रोम’सारखा ब्राउझर हा यामध्ये ‘क्लाएंट’ असतो आणि इंटरनेटवरचा ‘वेब सर्व्हर’ हा सर्व्हर असतो. आपल्याला जेव्हा एखाद्या वेबसाईटवरचं एखादं पेज हवं असतं, तेव्हा आपला क्लाएंट त्या सर्व्हरला विनंती करतो. तो सर्व्हर मग पाहिजे ते पेज शोधून आपल्याकडे पाठवतो. हे सर्व सुरक्षितपणे होण्यासाठी एसएसएल (SSL) नावाचा प्रोटोकॉल वापरतात. आपण जेव्हा https:// म्हणतो तेव्हा त्यातला ‘S’ हा तेच दर्शवतो.
यामध्ये जेव्हा https वापरून ब्राउझर सर्व्हरशी जोडला जातो, तेव्हा सर्व्हर आपलं डिजिटल सर्टिफिकेट ब्राउझरकडे पाठवतो. या सर्टिफिकेटमध्येच सर्व्हरची ‘पब्लिक की’ असते. ब्राउझर ते सर्टिफिकेट तपासतो आणि मग त्या पब्लिक कीचा वापर करून सर्व्हरला संदेश पाठवतो. सर्व्हर आपली प्रायव्हेट की वापरून तो संदेश डिक्रिप्ट करतो. यानंतर क्लाएंट आणि सर्व्हर यांच्यामध्ये संवाद सुरू होतो आणि सर्व्हर ब्राउझरला पाहिजे ते पेज शोधून ब्राउझरकडे पाठवतो. ब्राउझर मग ते पेज आपल्याला स्क्रीनवर दाखवतो. (प्रत्यक्ष यापेक्षा थोडीशी जास्त गुंतागुंत असते.)

आजकाल इंटरनेटवरून जेव्हा व्यवहार होतात तेव्हा आपण ‘आपणच’ आहोत हे सिद्ध करण्यासाठी ‘डिजिटल सिग्नेचर’ वापरतात. यासाठी संदेश पाठवणारा आपला संदेश (उदाहरणार्थ, बँकेतले पैसे ट्रान्स्फर करण्यासाठीचा) आपल्या प्रायव्हेट कीनं एन्क्रिप्ट करतो. ज्याला तो संदेश मिळतो (उदाहरणार्थ, बँक) तो पाठवणाऱ्याच्या पब्लिक कीनं डिक्रिप्ट करण्यात यशस्वी झाला, तर याचा अर्थ तो संदेश पाठवणाऱ्याच्या प्रायव्हेट कीनंच एन्क्रिप्ट केला गेला असला पाहिजे हे संदेश मिळाणाऱ्या पार्टीला (उदाहरणार्थ, बँकेला) समजतं; आणि मग संदेश पाठवणाऱ्याची ओळख पटते. ही झाली डिजिटल सिग्नेचर. अशा तऱ्हेनं कागदावरच्या सहीची जागा आता डिजिटल सिग्नेचर्स घेताहेत. सन २००० मध्ये भारतातही कायद्यानं त्याला मान्यता दिली आहे. प्रत्यक्षात ही पद्धत थोडीशी गुंतागुंतीची आहे आणि त्यात आरएसए (RSA) अल्गॉरिदमची प्रायव्हेट की वापरतात; पण आपण इथं ही पद्धत थोडीशी सोपी करून सांगितलीय इतकंच!

Read latest Marathi news, Watch Live Streaming on Esakal and Maharashtra News. Breaking news from India, Pune, Mumbai. Get the Politics, Entertainment, Sports, Lifestyle, Jobs, and Education updates. And Live taja batmya on Esakal Mobile App. Download the Esakal Marathi news Channel app for Android and IOS.

Related Stories

No stories found.
Marathi News Esakal
www.esakal.com