यापूर्वी - कूटनतंत्राची (एन्क्रिप्शन) तोंडओळख - १
मागील भागात माझ्यात आणि माझ्या मित्रात जो 'गुप्त' संवाद चालू केला होता, तो येथे चालू ठेवूया. जे वाक्य, जो मजकूर मला मित्राला पाठवायचा होता - रात्री आठ वाजता कट्ट्यावर भेट - त्याला कूटनतंत्राच्या परिभाषेत प्लेन टेक्स्ट (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), त्याच्या क्लिष्टतेवर अवलंबून आहे, तसेच त्यात वापरल्या जाणार्या 'की' वर सुद्धा. ही 'की' हे काय प्रकरण आहे, ते पुढील भागात पाहूया.
या भागातील स्मरणीय गोष्टी -
१. प्लेन टेक्स्ट, सायफर टेक्स्ट, एन्क्रिप्शन्/डिक्रिप्शन, एन्क्रिप्शन/डिक्रिप्शन अल्गोरिदम
२. सब्स्टिट्यूशन सायफर, कॉलमर सायफर
३. एन्क्रिप्शन्/डिक्रिप्शन कीBook traversal links for कूटनतंत्राची (एन्क्रिप्शन) तोंडओळख - २
प्रतिक्रिया
एमडी फाइवची पण तोंडओळख असायला हवी होती असे वाटले.
हॅशिंग बद्दल लिहेन, त्या भागात लिहितो :)
(हॅशर)बेसनलाडू
वेग आणि सोपे करून सांगायची पद्धत. खूप खूप आवड्तेय.
एमडी फाइव नको .. शा वन सम पाहीजे :P
आणि डीईएस पण..
पुढच्या भागात 'की' बद्दलच्या विवेचनानंतर येतील.
(क्रमवार)बेसनलाडू
आय मीन त्येचे यक्दम अॅक्यूरेट डीक्रीप्शन होऊ शकते ?
हॅश आहे रे बाबा .. ती डीक्रिप्ट न्हाय करता येत.
परंतू आनंदयात्री साहेबांनी इथेच एमडी फाइवची तोंडओळख मागीतली म्हणून वाटले की मलाच ते कसे डीक्रिप्ट करायचे माहीत नाही की काय . [ काळाच्या मागे रहून चालणार नाही, अपडेट करत राहीले पाहीजे ;) ]
हॅन्ड इन हॅन्ड. कारण की अशी हॅश फंक्श्न्स क्रिप्टोग्राफी ची मुळतत्वे आणि तशा टाईप्स चे अल्गोरिदम्स वापरून बनवलेली असतात. पण एन्क्रिपशन हे टू वे तर हॅशिंग हे वन वे असते.
मस्त रे बेलाशेठ. एकदम सहज सोप्प करुन सांगतोयस :)
आवडत आहे.
चांगलं समजावताय, आधिक मोठे भाग येऊ द्यात.
वाचतोय.
दोन्ही भाग वाचलेत..
अगदी सोप्या भाषेत समजावुन सांगीतलेले आवडले..
पुढचे भाग अजुन सविस्तर येउ द्या..
दोन्ही भाग आताच वाचले.. खुपच मेहनत घेवुन वेळ काढुन लिहिल आहे...
स्तुत्य उपक्रम.. वाचनखुणेची सोय झाल्यास हि मालीका नक्किच नोंद करुन ठेवेन.
--टुकुल
मस्त मालिका. उत्सुकतेने वाचतो आहे.
- सूर्य
अगदी हेच म्हणतो.अजून येऊ द्यात.
अभिज्ञ.
दोन्ही भाग सोपे आहेत समजायला!
वाचत आहे!
:)
अप्रतिम.
तुमची समजून सांगायची पद्धत फारच सुंदर आहे. पुढचे भाग लवकर लवकर प्रकाशित करा म्हणजे आधीच्या लेख मालेतील संदर्भ लक्षात असल्यामुळे पुढील लेख लवकर कळतील.
पुनश्च धन्यवाद......
मस्त रे बेला.
लेखमाला रोचक वाटते आहे आणि पुढच्या भागाची वाट पहातो आहे.
खास करुन 'सायफर' हे प्रकरण वाचण्यास उत्सुक.
ह्यावरुन डॅन ब्राऊनची 'डिजीटल फोर्ट्रेस' ही कादंबरी आठवली, ती अशाच कोड्सवर लिहली आहे असे वाटते.
- छोटा डॉन
सुरवात उत्तम
कॉलमर सायफरचं उदाहरण बहुतेक अर्धवट आहे .....
(ओळींची संख्या माहित असल्याशिवाय डिक्रीप्शन अवघड आहे)
चेतन
कॉलमर सायफर डिक्रिप्ट कसे करायचे याबद्दल स्पष्टीकरण लिहिले नसल्याने उदाहरण अर्धवट झाले आहे, हा तुमचा मुद्दा मान्य. ओळींची संख्या माहीत असल्याशिवाय डिक्रिप्शन अवघड आहे, हे सुद्धा मान्य.
(अर्धवट)बेसनलाडू
यापुढील लेखनात असे काही सुटणार नाही किंवा अर्धवट राहणार नाही, याकडे लक्ष देईन.
(आश्वासक)बेसनलाडू
इंजिनियरिंग ची आठवण ताजी झाली ... एक इन्क्रिप्टेड लव्ह लेटर लिहिलं होतं .. पण ते काय त्या पोरी ला समजलंच नाय .. आणि आमचा पोपट झाला :)
-(एमडी३ ) टारझन
अतिशय छान आणि सोप्या भाषेत लिहिले आहे.
पुढच्या भागाची आतुरतेने वाट बघतो आहे...
स्तुत्य उपक्रम.
कूटनाचे यशापयश जसे कूटन कृतीक्रमावर (encryption algorithm), त्याच्या क्लिष्टतेवर अवलंबून आहे, तसेच त्यात वापरल्या जाणार्या 'की' वर सुद्धाआणि पाठवलेल्या संवादावर पण? म्हणजे encrypted message आहे- L MA HLJX, HLX .इथे L हे अक्षर आहे. संवाद इंग्रजीत असला तर काही ठोकताळा बांधता येतो. म्हणजे L हे अक्षर मूळचे A किंवा I असले पाहिजे.आणि मग जिथे जिथे L आहे तिकडे A किंवा I घालून पाहायचे. म्हणून substitution cipher पूर्णपणे 'सूरक्षित' समजले जात नाही.संगणकाच्या साहाय्याने समर्याद वेळेत मूळ संवाद काढता येईल. 'की' वापरण्यामागे हेच कारण आहे का?
हा संदेश इंग्रजीत आहे हे गृहीत धरता, a आणि I हे दोनच एकाक्षरी शब्द इंग्रजीत आहेत या निरीक्षणाच्या आधारे, वरील संदेशात Lच्या जागी यांपैकी प्रत्येक अक्षर वापरून कोड क्रॅक करण्याचा प्रयत्न करता येईल, हे मान्य.
याला उपाय म्हणून स्पेसलाही कूटनाच्या कक्षेत आणून काहीतरी सबस्टिट्यूट दिले तर? (अर्थात तरीही पूर्णपणे सुरक्षित होणार नाही. कारण, मूळ भाषा इंग्रजी आहे हे गृहीत धरता, एखादे अक्षर खूपच जास्त वेळा येऊ लागले, तर ते एक तर E तरी आहे, किंवा स्पेस तरी आहे, असा तर्क लढवता येईल. पण तरीही, एक पायरी पुढे.)
"First they ignore you. Then they laugh at you. Then they imitate you. Then you win." (- महात्मा गांधींची क्षमा मागून.)
लेखात म्हटल्याप्रमाणे वास्तवात स्पेस तसेच इतर चिन्हांना कूटनकक्षेत सामावून घेतले जातेच. तरीही एकंदर एखादे अक्षर 'किती वेळा' येते आहे (वारंवारता/अकरन्स) यावरूनही 'काहीतरी' ओळखता येऊ शकतेच, हे खरे.
(अंदाजपंचे)बेसनलाडू
पंगांनी वरच्या प्रतिसादात म्हटल्याप्रमाणे 'इंग्रजी' भाषेतील मजकूर काही ठोकताळे (त्या भाषेत एकाक्षरी शब्द किती, दोन अक्षरी शब्द किती इ.) बांधून थोडाबहुत डिक्रिप्ट करता येईल, या तुमच्या मुद्द्याशी सहमत आहे.
(सहमत)बेसनलाडू
क्रिप्टोग्राफिक अल्गोरिदम (कृतीक्रम) आणि 'की' समर्याद वेळेत, संगणकाच्या साहाय्याने ओळखणे (ब्रेकिंग किंवा क्रिप्टॅनालिसिस) शक्य तितके कठीण व्हावे, अशा पद्धतीने 'की' निवडायची असते. कृतीक्रमांचे प्रमाणीकरण (स्टॅन्डर्डायजेशन) झाल्यावर खरे आव्हान 'की' ओळखणे हेच आहे. त्यामुळे राक्षसाचा/राजाचा जीव जसा एखाद्या पोपटात तसा कोणत्याही क्रिप्टोग्राफिक सिस्टमचा जीव खरे तर तिच्या 'की' मध्ये आहे असे म्हटल्यास वावगे ठरू नये.
(क्रिप्टॅनालिस्ट्)बेसनलाडू
सुंदर सोप्या भाषेतला लेख. आवडले
इथे स्पेलिंगचे सात सात चे गट केलेले आहेत.
हे असे गट वाढत्या भाजणीत केल्यास ते लेखन अधीकच क्लिष्ट होईल.
( उदा पहिल्या ओळीत ७ अक्षरे दुसर्यात ८ तिसर्यात ९ चौथ्यात १० वगैरे )
ळाळी माघ इशढवा
-लाझेस
इतक्या सोप्या पध्दतीनं आजवर कोणी हा क्लिष्ट विषय उलगडून सांगितला नसेल.
लेखमालिका उत्तम होणार ह्यात संशयच नाही. चिअर्स म्यान! यु रॉक.
हॅशिंगची वाट पाहतोय. :)
अवांतरः का कोण जाणे, अचानक Ken Follett च्या Key to Rebecca मधल्या कोडींग-डिकोडींगची आठवण झाली. :)
वाचतो आहे....
मागच्या सेमीस्टरमध्येच हा विषय होता आम्हाला. मार्क स्टँम्पच्या पुस्तकात फक्त 'अॅलिस','बॉब' आणि 'ट्रुडी' होते. इथे बेला आणि त्यांचा मित्र आहे :) मराठीत वाचताना मजा येतेय. पुढील भागाच्या प्रतिक्षेत.
आत्ताच वाचले, सुरुवात आवडली..
पुढील भागाच्या प्रतिक्षेत,
स्वाती
दोन्ही भाग मस्तच झालेत, पुढील लेखाच्या प्रतिक्षेत
बेला मस्त लिहितोयस.. आवडलंच..
डॉ. जॉन नॅशच्या ब्युटिफूल माईंड ची आठवण झाली बघ..
चार वर्षांचा अनुभव बोलतोय रे बाबा !
सोप्या भाषेतली ही लेखमाला अजूनतरी समजतेय :)
छान लेखमाला. आवडली.
एन्क्रिप्शनची पद्धत ही पेटंट केलेली असते का? का पेटंट होऊ शकत नाहीत?
कूटन कृतीक्रमाचे उद्दिष्ट प्लेन टेक्स्ट मधून सायफर टेक्स्ट तयार करणे (आणि अकूटनाचे सायफर टेक्स्ट मधून प्लेन टेक्स्ट परत मिळवणे), असे असले तरी किती वेगाने/कमीत कमी किती वेळात हे करणे शक्य आहे (पर्फॉर्मन्स), यासाठी लागणारी, वापरली जाणारी संगणकीय स्मरणशक्ती (मेमरी) किती कमी/जास्त लागते इ. बाबींवर आधारीत पेटंट्स असू शकतात, आहेत. प्रमाणित कृतीक्रमांमध्ये वरील उद्दिष्टे डोळ्यांसमोर ठेवून बदल करणे आणि अशा सुधारीत, 'वेल पर्फॉर्मिंग' कृतीक्रमाचे पेटंट मिळवणे, हा प्रकार व्यावसायिक (कंपन्या) करतच असतात. मग त्यायोगे येणारी पेटंट्सची उल्लंघने, एकमेकांना कोर्टात खेचणे व त्यायोगे व्यावसायिक फायदा नि बौद्धिक संपदेचे (इन्टलेक्च्युअल प्रॉपर्टी) रक्षण इ. (नेहमीचेच) प्रकारही होतच असतात. उदा. सोनी च्या प्ले स्टेशन्स मध्ये वापरला जाणारा कूटन-अकूटन कृतीक्रम हे सर्टिकॉम या कंपनीच्या पेटंटचे उल्लंघन असल्याचे सांगत सर्टिकॉमने सोनी ला कोर्टात खेचल्याचे उदाहरण झाले आहे.
(माहीतगार)बेसनलाडू
छान मालिका सुरु आहे. पुढील भागाची वाट बघतोय..
- (एन्क्रिप्टेड) पिंगू
मस्त रे बेला .....हा माझा आवडता विषय .....पु.भा प्र
बेश्ट रे बेश्ट