यापूर्वी - कूटनतंत्राची (एन्क्रिप्शन) तोंडओळख - १
मागील भागात माझ्यात आणि माझ्या मित्रात जो 'गुप्त' संवाद चालू केला होता, तो येथे चालू ठेवूया. जे वाक्य, जो मजकूर मला मित्राला पाठवायचा होता - रात्री आठ वाजता कट्ट्यावर भेट - त्याला कूटनतंत्राच्या परिभाषेत प्लेन टेक्स्ट (plaintext) किंवा क्लिअर टेक्स्ट (cleartext) असे म्हणतात. तो मजकूर ठराविक प्रक्रियेतून गेल्यावर (शब्दांमधील अक्षरांचा क्रम उलटे करणे ही ती प्रक्रिया) त्याचे रुपांतर ज्यात झाले त्याला - टभे रवट्ट्याक ताजवा ठआ त्रीरा याला - सायफर टेक्स्ट (ciphertext) असे म्हणतात. प्लेन टेक्स्टचे सायफर टेक्स्ट मध्ये रुपांतर करणे - अर्थात एन्सायफर (encipher) - याला कूटन किंवा एन्क्रिप्शन (encryption) म्हणातात. आणि त्याचाच व्यत्यास म्हणजे सायफर टेक्स्ट पासून मूळ मजकूर अर्थात प्लेन टेक्स्ट परत मिळवणे याला डिसायफर (decipher) किंवा डिक्रिप्शन (decryption) अर्थात अकूटन म्हणतात.
प्लेन टेक्स्ट ---> (कूटन प्रक्रिया) ---> सायफर टेक्स्ट ---> (अकूटन प्रक्रिया) ---> प्लेन टेक्स्ट असा हा साधासरळ प्रवास आहे.
मग या प्रवासातील गोम कशात आहे? ती आहे कूटन/अकूटन प्रक्रियेत. माझ्या आणि माझ्या मित्रामधील संवादात ही प्रक्रिया होती शब्दांमधील अक्षरांचा क्रम उलट करून मी वाक्य लिहिणे. आणि असे वाक्य मित्राच्या हाती पडले की त्याने वाक्यातील शब्दातील अक्षरे उलट क्रमाने वाचून मूळ वाक्य परत मिळवणे व त्याचा अर्थ समजणे. या कूटन/अकूटन प्रक्रियेला एन्क्रिप्शन/डिक्रिप्शन अल्गोरिदम (encryption/decryption algorithm) म्हणतात. हा कृतीक्रम (अल्गोरिदम) जितका परिपूर्ण, सुरक्षित तितकी तुमची कूटन/अकूटन प्रक्रिया परिपूर्ण, सुरक्षित.
वास्तव दुनियेत वरील प्रक्रियेचे सुरक्षामूल्य शून्य आहे. कारण ती वास्तवात अतिशय सोपी, कुणाही सोम्यागोम्याला चटकन समजू येणारी प्रक्रिया आहे. वाक्यातील शब्दांमधील अक्षरे उलट्या क्रमाने लिहिण्याला कोणाला फार डोके लढवायला लागत नाही; आणि अशा वाक्यामधील शब्द उलट्या क्रमाने वाचून मूळ वाक्य परत मिळवून त्याचा अर्थ समजून घ्यायलाही फार कष्ट पडत नाहीत. वास्तव जगात अर्थात असे सरळसोट, सोपे कूटन कृतीक्रम निश्चितच वापरले जात नाहीत. पण कूटनतंत्र जेव्हा बाल्यावस्थेत होते, तेव्हा जे सरळसोट कृतीक्रम तयार झाले होते, ते आज या तंत्राची तोंडओळख करून घेताना निश्चितच उपयोगी पडतात. त्यातलेच एक, दोन येथे स्पष्ट करतो.
पहिला आहे सब्स्टिट्यूशन सायफर. नावावरूनच समजले असेल, हा कृतीक्रम काय करत असावा, नाही का? मजकुरातील प्रत्येक अक्षराच्या जागी दुसरेच एखादे अक्षर योजायचे. म्हणजे अ च्या ऐवजी त्याच्याच पुढचा आ, क च्या ऐवजी ख या प्रमाणे. उदाहरणार्थ आधीचेच वाक्य घेऊ - रात्री आठ वाजता कट्ट्यावर भेट. दिलेल्या अक्षराच्या ऐवजी त्याच्या पुढचे अक्षर योजायचे (बाराखडीमधील क्रम मात्र तसाच ठेवायचा; म्हणजे रा च्या ऐवजी ला, भे च्या ऐवजी मे, ट च्या ऐवजी ठ असे लिहायचे). हे लक्षात घेता आपले वाक्य असे लिहिता येईल - लाथ्ली इड शाझथा खठ्ठ्राशल मेठ.
तुलनात्मकरित्या पाहिले तर लाथ्ली इड शाझथा खठ्ठ्राशल मेठ हे टभे रवट्ट्याक ताजवा ठआ त्रीरा पेक्षा निश्चितच कठीण आहे, नाही का? येथे आपण जे सब्स्टिट्यूशन केले, ते अगदीच सोपे आहे - मूळ अक्षराच्या पुढचे अक्षर घेणे, पण बाराखडीतील क्रम तसाच ठेवणे. वास्तव दुनियेत इतके सोपे सब्स्टिट्यूशन कुचकामी ठरणार, हे निश्चित. वास्तव दुनियेतील सब्स्टिट्यूशन्स अतिक्लिष्ट, सहजपणे न समजून येणारी, अशी असतात.
सब्स्टिट्यूशन सायफरचे आणखी एक बर्यापैकी सोपे, मात्र मागच्या उदाहरणापेक्षा थोडे कठीण, असे उदाहरण पाहू; म्हणजे संकल्पना पूर्ण स्पष्ट होईल. मूळ मजकूर आहे - I AM FINE, SIR.
यात काय सब्स्टिट्यूट करायचे? प्रत्येक इंग्रजी अक्षराच्या जागी वर्णमालेतील दुसरे कोणतेतरी अक्षर योजायचे. पण दुसरे कोणतेतरी म्हणजे नक्की कोणते? उदा. मूळ मजकुरातील इंग्रजी अक्षराचा वर्णमालेत जो क्रमांक आहे, त्याला १० ने गुणायचे; २६ ने भागायचे आणि जी बाकी येईल त्या क्रमांकाचे वर्णमालेतील अक्षर मूळ अक्षराच्या जागी योजायचे. मात्र पूर्ण भाग गेला नि बाकी शून्य आली, तर पहिले अक्षर म्हणजे A योजायचे उदा. I चा इंग्रजी वर्णमालेतील क्रमांक ९. ९ गुणिले १० म्हणजे ९०. ९० भागिले २६ = ३, बाकी १२. वर्णमालेतील १२व्या क्रमांकाचे अक्षर = L. थोडक्यात, I च्या ऐवजी L सब्स्टिट्यूट करायचा. तसेच A च्या जागी J (१ गुणिले १० = १०, भागिले २६ = ०, बाकी १०) नि M च्या जागी A (१३ गुणिले १० = १३०, भागिले २६ = ५, बाकी शून्य; म्हणून पहिले अक्षर A योजायचे) सब्स्टिट्यूट करता येतील नि मूळ वाक्य असे लिहिता येईल - L MA HLJX, HLX.
तुमच्या लक्षात आलेच असेल की या ठिकाणी क्लिष्टशा सब्स्टिट्यूशन प्रक्रियेवर या कूटनाचे यशापयश अवलंबून आहे. या ठिकाणी एन्क्रिप्शन अल्गोरिदम कोणता? मूळ मजकुरातील इंग्रजी अक्षराचा वर्णमालेत जो क्रमांक आहे, त्याला १० ने गुणायचे; २६ ने भागायचे आणि जी बाकी येईल त्या क्रमांकाचे वर्णमालेतील अक्षर मूळ अक्षराच्या जागी योजायचे. मात्र पूर्ण भाग गेला नि बाकी शून्य आली, तर पहिले अक्षर म्हणजे A योजायचे. याद्वारे तयार झालेली सब्स्टिट्यूशन्स एका तक्त्यात मांडली आणि तो तक्ता माझ्या मित्राकडे दिला की माझे काम झाले. माझी चिठ्ठी मिळाल्यावर मित्र त्या चिठ्ठीतील कूट मजकूर (सायफर टेक्स्ट) आणि मी दिलेला सब्स्टिट्यूशन तक्ता यांच्या मदतीने मूळ मजकूर सहज शोधू शकेल.
असेच दुसरे बर्यापैकी सोपे कूटन म्हणजे कॉलमर सायफर. या प्रक्रियेत मूळ मजकुरातील कोणतेही अक्षर सब्स्टिट्यूट केले जात नाही, तर त्या अक्षरांची पुनर्रचना करून (अक्षरांचा क्रम बदलणे, मजकुरातील ओळी स्तंभरूपात लिहून तयार झालेल्या तक्त्यातील ओळी एकापुढे एक लिहून पाठवणे इ.) मजकूर पाठवला जातो. उदा. मूळ मजकूर I AM FINE SIR, THANK YOU. AND HOW ARE YOU? असा आहे, असे मानू. या मजकुरातील अक्षरांचे ७-७ अक्षरांचे गट करा. ही सात अक्षरे एका ओळीत लिहा; पुढची ७ अक्षरे पुढच्या ओळीत, त्यापुढील ७ अक्षरे त्यापुढच्या ओळीत याप्रमाणे करा. ७ चा गट करण्यासाठी काही अक्षरे कमी पडल्यास त्या जागी X अक्षर घाला. मूळ मजकूर आता असा दिसेल -
I A M F I N E
S I R T H A N
K Y O U A N D
H O W A R E Y
O U X X X X X
आता मित्राला चिठ्ठी लिहिताना वरील तक्त्यातील स्तंभ (कॉलम्स) क्रमाने एकापुढे एक लिहा. म्हणजे मित्राला पाठवायचा मजकूर असा दिसेल - I SK HOAI YOU, MROWX FTU. AXI HAR XNA NEX? ENDYX
(या उदाहरणात तसेच सब्स्टिट्यूशन सायफरच्या मागील उदाहरणात केवळ अक्षरांशीच खेळ केला आहे; विरामचिन्हांशी - जसे स्वल्पविराम, प्रश्नचिन्ह इ. - खेळ केलेला नाही. वास्तवात अक्षरे, अ़म, विरामचिन्हे, मोकळ्या जागा (ब्लॅन्क स्पेसेस), इतर चिन्हे (जसे $, #, @ इ.) या सगळ्यांशीच खेळ केला जातो.)
पुन्हा लक्षात घ्या, की येथे एका अक्षराऐवजी दुसरे अक्षर योजले आहे, असे काही केलेले नाही. तर मूळ मजकुरातील अक्षरांची स्तंभरूपात पुनर्रचना करून तो मजकूर पाठवला आहे.
कूटनाचे यशापयश जसे कूटन कृतीक्रमावर (encryption algorithm), त्याच्या क्लिष्टतेवर अवलंबून आहे, तसेच त्यात वापरल्या जाणार्या 'की' वर सुद्धा. ही 'की' हे काय प्रकरण आहे, ते पुढील भागात पाहूया.
या भागातील स्मरणीय गोष्टी -
१. प्लेन टेक्स्ट, सायफर टेक्स्ट, एन्क्रिप्शन्/डिक्रिप्शन, एन्क्रिप्शन/डिक्रिप्शन अल्गोरिदम
२. सब्स्टिट्यूशन सायफर, कॉलमर सायफर
३. एन्क्रिप्शन्/डिक्रिप्शन की
वाचने
8203
प्रतिक्रिया
42
मिसळपाव
प्रतिक्रिया
बेश्ट रे बेश्ट
हॅशिंग
In reply to बेश्ट रे बेश्ट by आनंदयात्री
खतरनाक
In reply to हॅशिंग by बेसनलाडू
आणि डीईएस पण..
In reply to खतरनाक by गोगोल
डीईएस, ३डीईएस आणि एईएस
In reply to आणि डीईएस पण.. by प्राची
यमडी फायव डीक्रीप्ट करता येते ?
In reply to बेश्ट रे बेश्ट by आनंदयात्री
यमडी फायव
In reply to यमडी फायव डीक्रीप्ट करता येते ? by आत्मशून्य
असेच म्हणतो
In reply to यमडी फायव by गोगोल
हॅश आणि एन्क्रिपशन गो
In reply to असेच म्हणतो by आत्मशून्य
मस्त रे बेलाशेठ. एकदम सहज
आवडत आहे.
सुस्पष्ट वर्णन..
चांगले आहे
दोन्ही भाग वाचलेत.. अगदी
+१ हेच म्हणतो.
In reply to दोन्ही भाग वाचलेत.. अगदी by निखिल देशपांडे
मस्त मालिका. उत्सुकतेने वाचतो
अगदी हेच म्हणतो.अजून येऊ
In reply to मस्त मालिका. उत्सुकतेने वाचतो by सूर्य
दोन्ही
अप्रतिम
मस्त ...
उत्तम
बरोबर
In reply to उत्तम by चेतन
मस्त धागा मालिका रे बेला
मस्त
छान
एक प्रयत्न
In reply to छान by चिरोटा
"First they ignore you. Then they laugh at you. Then they imitate you. Then you win." (- महात्मा गांधींची क्षमा मागून.)
स्पेस आणि इतर चिन्हे
In reply to एक प्रयत्न by पंगा
कृतीक्रम आणि 'की' ओळखणे
In reply to छान by चिरोटा
सुंदर सोप्या भाषेतला लेख.
इथे स्पेलिंगचे सात सात चे गट
ळाळी माघ इशढवा -लाझेस
वा!
वाचतो आहे
मागच्या सेमीस्टरमध्येच हा
दोन्ही भाग
दोन्ही भाग मस्तच झालेत, पुढील
मस्तच..
तुझे पदव्युत्तर शिक्षण आणि
मस्त!
पेटंट्स <--> प्रमाणित कृतीक्रम आणि बदल (वेरिएशन्स)
In reply to मस्त! by चित्रा
छान मालिका सुरु आहे. पुढील
मस्त रे बेला .....हा माझा