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

achyut godbole
achyut godbole

बऱ्याच वेळा आपल्याला काही विशिष्ट माहिती गुप्त ठेवायची असते. उदाहरणार्थ, आपला बॅंक बॅलन्स. लष्करामध्ये आणि सैन्यामध्ये तर अनेक संदेश गुप्तच ठेवावे लागतात. ज्यांना तो संदेश पाठवलाय ते सोडून इतर कुणीही तो वाचता कामा नये अशी लष्करी अधिकाऱ्यांची इच्छा असते. आपण सैन्य कुठून कसं हलवणार आहोत ही माहिती शत्रूच्या किंवा दहशतवाद्यांच्या हातात पडली, तर खूपच गोंधळ उडू शकतो. एवढंच कशाला आपण आपल्या मित्राला किंवा मैत्रिणीला पाठवलेला ई-मेलही इतर कोणी वाचावा असं आपल्याला वाटत नाही. या सगळ्यामुळे इंटरनेटवरचे बरेचसे संवाद पाठवताना "एन्क्रिप्शन'ची पद्धती वापरतात.

एन्क्रिप्शन म्हणजेच "च'ची भाषा वापरणं. लहान मुलांसमोर बोलताना मोठी माणसं "च'ची भाषा वापरतात. उदाहरणार्थ "मी तिकडे येतो'ऐवजी "चमी चडेतिक चतोये' असं काहीतरी बोलतात. हे झालं एन्क्रिप्शन. लहान मुलांना ते बोलणं कळत नाही; पण ऐकणारा त्या वाक्‍यातून "च' काढून काही अक्षरं फिरवतो आणि मग त्याला मूळ वाक्‍य कळतं. हे झालं "डिक्रिप्शन.' आपल्या उदाहरणात "च' म्हणजेच "किल्ली किंवा की' आणि ती वापरण्याची पद्धत म्हणजेच अल्गॉरिदम. तो वापरून एन्क्रिप्शन/डिक्रिप्शन होतं.

आपल्याला केबल किंवा सॅटलाईट टीव्हीवर प्रोग्रॅम येतो तो एन्क्रिप्ट होऊनच येतो. आपण जे चॅनेल्स निवडलेले असतात, तेच प्रोग्रॅम्स डिक्रिप्ट होऊन आपल्याला दिसतात. तसंच आपण जेव्हा https:// वापरून कुठल्याही एका वेबसाईटवर जातो, तेव्हा एन्क्रिप्शनच वापरत असतो. याचप्रमाणे आपण जर पासवर्ड वापरून झिप फाईल तयार केली, तर त्यातही एन्क्रिप्शन वापरत असतो. फक्त हे सगळं आपल्याला नकळत होत असतं एवढंच.

या एन्क्रिप्शन आणि डिक्रिप्शन या दोन्ही प्रक्रियेत एकच म्हणजे तीच "की' वापरली असेल, तर त्याला "सिमेट्रिक की अल्गॉरिदम' असं म्हणतात; आणि जर त्यासाठी वेगवेगळ्या कीज वापरल्या तर त्याला "एसिमेट्रिक अल्गॉरिदम' असं म्हणतात.
या सगळ्याची सुरवात खूप पूर्वी झाली होती. एका (दंत)कथेप्रमाणे यातली एक पद्धत फारच गंमतशीर होती. आपल्याला एखादा संदेश दुसऱ्याला पाठवायचा असेल, तर म्हणे एक निरोप्या पकडायचा, त्याचे केस कापायचे आणि चमन केलेल्या डोक्‍यावरती संदेश लिहायचा. त्यानंतर त्याचे केस वाढू द्यायचे आणि नंतर त्या निरोप्याला योग्य ठिकाणी पाठवायचं. मग त्या ठिकाणी त्याचे केस पुन्हा कापून तो संदेश वाचायचा म्हणे! मात्र, आंघोळीच्या वेळी धुतली जाणार नाही अशी कोणती शाई तो संदेश लिहिताना वापरली जायची किंवा निरोप्याला तो निरोप योग्य ठिकाणी पोचेपर्यंत आंघोळीची परवानगीच नसायची का याचे या दंतकथेत उल्लेख नाहीत. त्यामुळे ती कितपत खरी आहे कोण जाणे; पण समजा ती खरी असली तर किती गोंधळ माजेल याची कल्पना न केलेलीच बरी! एकतर असे अनेक वेळेला अनेक जणांना गुप्त संदेश पाठवायचे असतील, तर किती लोकांना चमन करावं लागेल कोण जाणे! याशिवाय यात इतरही गोंधळ होतेच. उदाहरणार्थ, ही पद्धती शत्रूपक्षाच्या लक्षात आल्यानंतर, कुठल्याही माणसाचा तो निरोप्या असल्याचा संशय आला की त्याचे केस कापून त्याच्या डोक्‍यावर काही संदेश आहे का हे तपासायला त्यांनी सुरवात केली, तर या सगळ्या गोंधळात अनेक निरपराधी माणसं उगाचच चमन करून रस्त्यावर फिरताना दिसायला लागतील. या सगळ्यामुळे ही पद्धती फारशी लोकप्रिय झाली नसावी.
ख्रिस्तपूर्व 1900च्या सुमारास इजिप्तमध्ये थडग्यांमध्येही काही मजकूर कोडभाषेत लिहिला होता. कोडभाषेत लिहिलेली ती माहिती गुप्तपणे दुसरीकडे पाठवण्यासाठी नसली, तरी कोडभाषेची (क्रिप्टोग्राफीची) ती सुरवात होती हे नक्कीच. ख्रिस्तपूर्व 1500 च्या सुमारास मेसापोटेमियामध्ये अशीच कोडभाषा वापरली असल्याचे पुरावे मिळाले आहेत. ख्रिस्तपूर्व 600 ते 500 मध्ये हिब्रू लोकांनी "सब्स्टिटयूशन सायफर'चा वापर केला होता. "सब्स्टिटयूशन सायफर'मध्ये एक "की' योजलेली असते. उदाहरणार्थ, जर आपल्याला "DEFEND' हा शब्द एन्क्रिप्ट करायचा असेल, आणि आपली D, E, F आणि N या इंग्रजी अक्षरांसाठी की जर पुढच्या आकृतीप्रमाणे S, P, Z, आणि K अशी असेल :
D E F N

S P Z K
तर DEFEND ऐवजी आपल्याला SPZPKS असा मजकूर मिळेल. यातल्या DEFEND या मूळ मजकुराला "प्लेनटेक्‍स्ट' असं म्हणतात; आणि SPZPKS ला "सायफरटेक्‍स्ट' असं म्हणतात. ज्याला हा मजकूर पाठवायचाय, त्याला एन्क्रिप्ट करण्यासाठी ही "की' माहीत असावी लागते. त्यामुळे मग हीच "की' एन्क्रिपटेड मेसेजवर (सायफरटेक्‍स्ट) उलट्या तऱ्हेनं वापरून तो मूळ मजकूर (प्लेनटेक्‍स्ट) मिळवू शकतो. एन्क्रिप्शन आणि डिक्रिप्शन या दोघांसाठी तीच की वापरली असल्यामुळे हाही एक "सिमेट्रिक की अल्गॉरिदम'च होतो.

सब्स्टिटयूशन सायफर सारखीची "ट्रान्सपोझिशन सायफर' म्हणूनही एक पद्धती प्रसिद्ध आहे. "सब्स्टिटयूशन सायफर'मध्ये मूळ मजकुरातली अक्षरंच बदलली जातात; पण ट्रान्सपोझिशन सायफरमध्ये ती अक्षरं न बदलता, त्यांचा फक्त क्रम बदलतात. उदाहरणार्थ, यामध्ये DEFENDच्या ऐवजी आपण अक्षरं उलट्या बाजूनं वापरून ×DNEFED असं लिहू शकतो किंवा हेच आपण प्लेनटेक्‍स्टमधली विषम अक्षरं (1, 3, 5...) ही पहिल्या ओळीत आणि सम अक्षरं (2, 4, 6...) दुसऱ्या ओळीत अशी दोन ओळीत खालीलप्रमाणे लिहू शकतो.
D F N
E E D
यानंतर त्यातल्या दोन ओळी एकमेकांसमोर ठेवल्या, तर DFNEED असं सायफरटेक्‍स्ट होईल. इथंही एन्क्रिप्शन ज्या पद्धतीनं (म्हणजेच अल्गॉरिदमनं) केलं तीच पद्धत म्हणजेच अल्गॉरिदम उलट तऱ्हेनं वापरून डिक्रिप्शन करता येतं. म्हणून हाही सिमेट्रिक अल्गॉरिदमच झाला.
खूप पूर्वी ग्रीकांनी "स्कायटेल ट्रान्सपोझिशन सायफर' आणि "पॉलिबस स्क्वेअर' नावाच्या गमतिदार पद्धती वापरायला सुरुवात केली होती. ग्रीकांप्रमाणे रोममध्येही क्रिप्टोग्राफीचा वापर सुरू होता. ज्युलियस सीझरला सिसेरोला काही संदेश पाठवायचा असेल, तर तो एका विशिष्ट पद्धतीचा वापर करायचा. त्यात तो अक्षरं काही जागांनी हलवायचा. उदाहरणार्थ, जर प्रत्येक अक्षर तीन घरं डावीकडे सरकवलं, तर D ऐवजी A होईल आणि E ऐवजी B होईल. याप्रमाणे DEFEND या प्लेनटेक्‍स्टचं ABCBKA असं सायफरटेक्‍स्ट होईल. यालाच "सीझर्स सायफर' असं म्हणतात. हा सब्स्टिटयूशन सायफरचाच एक प्रकार आहे. जर यातलं प्रत्येक अक्षर 13 घरांनी हलवलं तर त्याला "ROT 13' पद्धती म्हणतात.

भारतही क्रिप्टोग्राफीत मागे नव्हता. ख्रिस्तपूर्व 400 ते इसवीसन 200 या काळात "म्लेच्छिता विकल्प' म्हणजेच क्रिप्टोग्राफीचा वापर सुरू झाला होता. दोन प्रेमींनी एकमेकांबरोबर कोडभाषेत कसा संवाद साधावा याविषयी आपल्याला कामसूत्रमध्ये वाचायला मिळतं.
मध्यमयुगात अरब जगात क्रिप्टोग्राफीचा बराच विकास झाला. अल-खलिल (इसवीसन 717-786) यानं तर "बुक ऑफ क्रिप्टोग्राफिक मेसेजेस' नावाचं एक पुस्तकही लिहिलं होतं. त्यात अरबी मुळाक्षरांची पर्म्युटेशन्स आणि कॉम्बिनेशन्स वापरून कोडभाषांच्या अनेक पद्धती वर्णिल्या होत्या. याउलट कोडभाषेतला एन्क्रिप्टेड मजकूर वाचून मूळ मजकूर कसा मिळवायचा (डिक्रिप्शन) यावर अल-किंडा (इसवीसन 800) यानं एक पुस्तकही लिहिलं होतं.

आता ही कोडभाषा कुणाला तरी मधल्यामध्ये त्याच्याकडे "की' नसताना वाचायची असेल, तर ते करायचं तरी कसं? यासाठी वापरल्या जाणाऱ्या अनेक पद्धतींपैकी एक पद्धत म्हणजे फ्रीक्वेन्सी ऍनेलेसिस. यामध्ये आपल्या संवादात सर्वसाधारणपणे कुठली अक्षरं, कुठले शब्द आणि कुठली वाक्‍यं किंवा फ्रेजेस किती वेळा येतात, यांची वारंवारिता (फ्रीक्वेन्सी) काढली जाते. उदाहरणार्थ, E किंवा T ही अक्षरं जास्त वेळा येतात आणि त्याच्या खालोखाल A आणि O ही अक्षरं येतात. एका अभ्यासावरून सर्वसाधारणपणे कुठल्याही रॅन्डम मजकुरात E अक्षर 12.02% वेळा, T हे अक्षर 9.01% वेळा, A हे अक्षर 8.12% वेळा आणि O हे अक्षर 7.68% वेळा येतं. तसंच The हा शब्द वारंवार येतो. यांना "क्रिब्ज' असं म्हणतात. मग कोडभाषेत (सायफरटेक्‍स्ट) जर X हे अक्षर बरेचदा येत असेल, तर ते प्लेनटेक्‍स्टमध्ये E असलं पाहिजे असा अंदाज बांधता येतो. तसंच जर कोडभाषेत irx हासुद्धा शब्द वारंवार येत असेल, तर तो The आहे असं अनुमान काढता येतं. तसंच इंग्रजी भाषेत कित्येक शब्दांच्या शेवटी ing (उदाहरणार्थ, putting, saying...) ही अक्षरं येतात. यामुळे जर plc ही अक्षरं सायफरटेक्‍स्टमधल्या अनेक शब्दांच्या शेवटी येत असतील, तर ती अक्षरं प्लेनटेक्‍स्टमधली ing असतील असा अंदाज बांधता येतो. असे अनेक शब्दांविषयी अंदाज बांधल्यानंतर मग इतर शब्दांच्याविषयी ट्रायल अँड एरर पद्धतीनं अनेकदा प्रयत्न करून शेवटी तो मजकूर डिक्रिप्ट किंवा डिसिफायर करून मूळ मजकूर मिळवता येतो. पूर्वी हे डोळ्यांनी वाचून करावं लागायचं, आता हे फ्रीक्वेन्सी ऍनेलेसिस आणि डिक्रिप्शन कॉम्प्युटरच करतो.

आपल्याला आज वाचून आश्‍चर्य वाटेल; पण प्रसिद्ध लेखक एडगार ऍलन पो यानं सन 1840 मध्ये कोडभाषेतला मजकूर डिक्रिप्ट करायची एक पद्धत शोधून काढली होती. तो तर मुद्दामहून लोकांकडून कोडभाषेतला मजकूर मागवायचा आणि मग तो डिक्रिप्ट करून दाखवायचा. यामुळे सगळ्या जनतेत त्यानं खळबळ माजवली होती. त्यानं त्यावर एक निबंध आणि "द गोल्ड बग'×नावाची एक कथाही लिहिली होती. सन 1840 मध्ये त्यानं कोडभाषेतली दोन सायफरटेक्‍स्ट देऊन ती डिक्रिप्ट करायचं आव्हान दिलं. त्यातला एक चक्क 150 वर्षांनंतर 1992 मध्ये टेरेन्स व्हेलन या शिकागोमधल्या लिनॉय युनिव्हर्सिटीमधल्या एकानं सोडवला. दुसरा सोडवण्यासाठी मग 2500 डॉलर्सचं बक्षीस ठेवण्यात आलं. तो शेवटी 1998 च्या सुमाराला ब्रोझा नावाच्या सॉफ्टवेअर इंजिनिअरनं सोडवला.

पहिल्या महायुद्धात (1914-1918) जर्मनीनं मेक्‍सिकोमधल्या आपल्या हेन्रिच फॉन एरवार्डट या वकिलाला अमेरिकन वकिलातीमार्फत कोडभाषेतला एक टेलिग्राम पाठवला. याला "झिमरमन टेलिग्राम' असं म्हणतात. तो ब्रिटिशांनी डिक्रिप्ट करून वाचला आणि त्यामुळेच अमेरिका युद्धात उतरली. सन 1917मध्ये टेलिग्राम पाठवताना आपोआपच तो एन्क्रिप्ट होईल अशी यंत्रंही निघाली.
दुसऱ्या महायुद्धापूर्वीच जर्मनीनं क्रिप्टोग्राफीचा मोठ्या प्रमाणात वापर सुरू केला. त्यासाठी त्यांनी "एनिग्मा' नावाचं एक रोटर मशीन निर्माण केलं. डिसेंबर 1932 मध्ये मारियन रेजेव्हस्की या पोलंडच्या कोडभाषाकेंद्रातल्या गणितज्ञानं त्यातले संदेश डिक्रिप्ट करण्यात यश मिळवलं. डेव्हिड काहन या इतिहासकाराच्या मते हा त्यापूर्वीच्या एक हजार वर्षांमधला एक मोठाच ब्रेकथ्रू होता. मात्र, यानंतर जर्मन मंडळी आपल्या कोडभाषेत सुधारणा आणि बदल करतच राहिली आणि रेजेव्हस्की आणि त्याची टीम ते डिक्रिप्ट करण्याचे प्रयत्न करतच राहिले. शेवटी ते काम इतकं अवघड होऊन बसलं, की त्यात फ्रेंच आणि ब्रिटिश तज्ज्ञही सामील झाले.

ता. 1 सप्टेंबर 1939 ला जर्मनीनं पोलंडवर हल्ला केला; आणि 17 सप्टेंबरला सोव्हिएत युनियननं पोलंडवर पूर्वेकडून हल्ला केला. यामुळे मग पोलंडमधले कोडभाषातज्ज्ञ पॅरिसला पोचले, आणि तिथून त्यांनी एनिग्माची कोडभाषा ब्रेक करण्याचे प्रयत्न सुरूच ठेवले. मात्र, या सगळ्यात यश ब्रिटिशांना आलं. त्यात गॉर्डन वेल्शमन, मॅक्‍स न्यूमन आणि ऍलन ट्यूरिंग यांच्यासारखे बुद्धिबळपटू आणि गणितज्ञ होते. ऍलन ट्यूरिंगनं शेवटी एनिग्माची कोडभाषा कशी ब्रेक केली आणि खरंतर त्यामुळेच ब्रिटन दुसरं महायुद्ध कसं जिंकू शकला हा इतिहास आता प्रसिद्धच आहे. त्यावरचा "एनिग्मा' हा चित्रपटही गाजला. ऍलन ट्यूरिंगनंच आधुनिक कॉम्प्युटर्सचा पाया घातला. विशेष म्हणजे दुसऱ्या महायुद्धात या कोडब्रेकिंगमध्ये चक्क हजारो स्त्रियांनी भाग घेतला होता!

ब्रेक घ्या, डोकं चालवा, कोडे सोडवा!

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