या आधी - कूटनतंत्राची (एन्क्रिप्शन) तोंडओळख - २
मागील भागात सांगितल्याप्रमाणे कोणत्याही कूटन कृतीक्रमाची परिपूर्णता आणि सुरक्षितता त्यात वापरल्या गेलेल्या 'की' वर खूप अवलंबून असते. आधी सांगितलेल्या सब्स्टिट्यूशन किंवा कॉलमर सायफरमध्ये सरळसोटपणे 'की' वापरली गेलीच नव्हती; त्यामुळे 'की म्हणजे काय आणि ती कूटन कृतीक्रमात कशी वापरली जाते, याची ओळख या भागात करून घेऊया.
संगणकशास्त्र किंवा विद्युत अभियांत्रिकी यांचा अभ्यास केलेल्यांना बूलिअन बीजगणिताबद्दल वेगळे सांगायला नकोच. बूलिअन गणित हे या दोन्ही शास्त्रांचा आणि पर्यायाने विद्युत उपकरणे, संगणक, भ्रमणध्वनी इ. वस्तूंचा पायाच म्हणता येईल. मात्र ज्यांना ही ओळख नाही, त्यांना अगदी थोडक्यातच येथे करून देतो. कारण ही प्राथमिक माहिती असणे 'की'चे कार्य समजण्यासाठी आणि एकंदरच विविध कूटन कृतीक्रम आणि त्यांच्यातील साम्य तसेच फरक समजून घेण्यासाठी खूप उपयुक्त आहे.
हा भाग बूलिअन बीजगणित, त्यातील प्राथमिक प्रक्रिया, अक्षरे व अंकांचे द्विमान पद्धतीमधील (बायनरी सिस्टम) रूप आणि त्या सगळ्याचा 'की' आणि कूटन कृतीक्रमाशी संबंध यांवर केंद्रित असल्याने ज्या वाचकांना याबद्दल आधीच पुरेशी माहिती आहे, त्यांनी हा लेख वरवर चाळला, दुर्लक्षित केला तरी चालण्यासारखे आहे. मात्र उजळणी म्हणून आणि कूटन कृतीक्रमात या सगळ्याचा वापर कसा केला जातो, याबद्दलचे कुतूहल म्हणून वाचण्यास हरकत नसावी!
बूलिअन बीजगणित हे केवळ १ (एक) आणि ० (शून्य) या दोनच अंकांवर आधारलेले आहे. यांना बायनरी डिजिट्स (Binary Digits) - किंवा संक्षिप्त रुपात बिट्स (Bits) - असे म्हणतात. त्यांपैकी १ हा सर्वसाधारणपणे 'हाय वोल्टेज' किंवा एखाद्या सिग्नलचे अस्तित्त्व 'आहे', हे प्रतीत करण्यासाठी वापरला जातो; तर ० हा 'लो वोल्टेज' किंवा सिग्नलचे अस्तित्त्व 'नाही' हे दर्शविण्यासाठी वापरला जातो. अंकगणितात जशा बेरीज, वजाबाकी, गुणाकार, भागाकार या प्राथमिक प्रक्रिया आहेत, त्याप्रमाणे बूलिअन बीजगणितात अॅन्ड (AND), ऑर (OR) आणि नॉट (NOT) या तीन मूलभूत प्रक्रिया आहेत. १, ० आणि त्यांमधील या तीन मूलभूत प्रक्रियांचे निकाल खालील सत्यसरणीत (ज्याला बूलिअन बीजगणिताच्या आणि तर्कशास्त्राच्या परिभाषेत ट्रुथ टेबल म्हणतात) प्रमाणे आहेत (सोयीसाठी AND साठी &, OR साठी | आणि NOT साठी ~ ही चिह्ने वापरली आहेत; तर = या चिह्नाला त्याचा नेहमीचाच अर्थ आहे) -
० & ० = ०, ० | ० = ०
० & १ = ०, ० | १ = १
१ & ० = ०, १ | ० = १
१ & १ = १, १ | १ = १
~ ० = १, ~ १ = ०
या मूलभूत प्रक्रियांच्या जोडीला नॅन्ड (NAND), नॉर (NOR) आणि एक्सॉर (XOR) या प्रक्रिया आहेत. कूटनशास्त्राच्या दृष्टीने एक्सॉर (XOR) ही प्रक्रिया सगळ्यात जास्त महत्त्वाची आहे. एक्सॉर प्रक्रियेचे निकाल आता पाहू. या प्रक्रियेमध्ये निकाल १ तेव्हाच असतो, जेव्हा प्रक्रियेत सामील होणारे दोन्ही अंक १ किंवा ० असतात. दोन्हींपैकी एकच अंक १ किंवा ० असेल, तर निकाल ० असतो. थोडक्यात समान (सेम) 'इनपुट' वरील एक्सॉर प्रक्रियेचा निकाल १ तर अन्य (असमान) 'इन्पुट्स' वरील एक्सॉर प्रक्रियेचा निकाल ० असतो.
एक्सॉर प्रक्रियेची सत्यसारणी (ट्रुथ टेबल) -
० XOR ० = १
० XOR १ = ०
१ XOR ० = ०
१ XOR १ = १
संगणकीय गणनांमध्ये कोणतेही अक्षर, चिह्न, अंक, विरामचिह्ने इ. त्यांच्या द्विमान पद्धतीमधील रुपात वापरली जातात. याचाच अर्थ कोणतेही अक्षर, चिह्न, अंक, विरामचिह्न हे ० आणि १ यांच्या - अर्थात बिट्सच्या - मालगाडीच्या रुपात (string of bits) व्यक्त केले जाते. उदाहरणार्थ A चे द्विमान पद्धतीतील मूल्य ०१०००००१आहे, p चे ०१११०००० आहे, ब्लॅन्क स्पेस चे ००१००००० आहे, > चे ००१११११० आहे तर ८ चे ००१११००० आहे. लक्षात घ्या एकाच अक्षराच्या कॅपिटल आणि स्मॉल लिपीतील रुपाचे द्विमान पद्धतीमधील रूपही वेगवेगळे असते. याचाच अर्थ असा की संगणकाच्या दृष्टीने - तसेच कूटनप्रक्रियेच्या दृष्टीने, 'की'च्या दृष्टीने A आणि a ही दोन वेगळी अक्षरे असतात.
खरे सांगायचे तर 'की' म्हणजे तरी काय हो? 'की' म्हणजे दुसरेतिसरे काही नसून एक साधासोपा अक्षर/चिन्ह/अंक यांचा समूह. मूळ मजकूर आणि 'की' या दोहोंच्या द्विमान पद्धतीमधील रुपांमध्ये एक्सॉर प्रक्रिया करून जे मिळते तेच मूळ मजकुराचे सांकेतिक रूप होय. जो मजकूर सांकेतिक रुपात पाठवायचा आहे तो आणि 'की यांमधील एक्सॉर (XOR) प्रक्रिया हा कूटन कृतीक्रमाचा गाभा आहे. उदाहरणार्थ, मूळ शब्द आहे DOG आणि 'की' आहे KEY, तर मूळ शब्दाचे सांकेतिक रूप काय होईल ते पाहू.
D चे द्विमान रूप - ०१०००१००
O चे द्विमान रूप - ०१००११११
G चे द्विमान रूप - ०१०००१११
त्यामुळे मूळ शब्दाचे अर्थात DOG चे द्विमान रूप होईल - ०१०००१०००१००११११०१०००१११
K चे द्विमान रूप - ०१००१०११
E चे द्विमान रूप - ०१०००१०१
Y चे द्विमान रूप - ०१०११००१
त्यामुळे 'की'चे अर्थात KEY चे द्विमान रूप होईल - ०१००१०११०१०००१०१०१०११००१
मूळ शब्द आणि 'की'च्या द्विमान रूपात एक्सॉर प्रक्रिया करून जे मिळेल, ते मूळ शब्दाच्या सांकेतिक रुपाचे द्विमान पद्धतीतील रूप असेल.
०१०००१०००१००११११०१०००१११ XOR ०१००१०११०१०००१०१०१०११००१ = ११११००००११११०१०११११००००१ अर्थात ðõÁ
अशा प्रकारे आपल्या कूटन कृतीक्रमात DOG चे सांकेतिक रूप आहे ðõÁ आणि की आहे KEY. त्यामुळे जेव्हा तुम्ही तुमच्या मित्राला पाठवायच्या मजकुरात DOG हा शब्द लिहाल तेव्हा मित्राच्या हातात ðõÁ हे पडेल!
पण तुमच्या मित्राला ðõÁ हे म्हणजे DOG आहे, हे कसे बरे कळेल? त्यासाठी तुम्ही जी 'की' वापरलीत, ती तुमच्या मित्रालाही माहीत हवी! मिळालेल्या सांकेतिक मजकुरातून मूळ मजकूर परत मिळवण्यासाठी मित्र फक्त काय करेल, तर सांकेतिक मजकुराचे द्विमान रूप आणि 'की'चे द्विमान रूप यांच्यात एक्सॉर प्रक्रिया!!
सांकेतिक रुपाचे द्विमान रूप = ११११००००११११०१०११११००००१
'की'चे द्विमान रूप = ०१००१०११०१०००१०१०१०११००१
दोहोंमधील एक्सॉर प्रक्रियेचा निकाल =
११११००००११११०१०११११००००१ XOR ०१००१०११०१०००१०१०१०११००१ = ०१०००१०००१००११११०१०००१११
०१०००१०००१००११११०१०००१११????????!!!!!!!! अरेच्चा!! हे तर DOG चे सांकेतिक रूप (वर पहा)!!! हे कसे झाले? हे होण्याचे कारण असे की एक्सॉर प्रक्रिया परावर्तनीय (Reversible) आहे; एक्सॉर प्रक्रियेतील दोन्ही इन्पुट्स पैकी एकाची त्यांच्यातल्या एक्सॉर प्रक्रियेच्या निकालाशी पुन्हा एक्सॉर प्रक्रिया केली, तर दुसरे इन्पुट मिळवता येते!
इन्पुट १ XOR इन्पुट २ = निकाल
इन्पुट १ XOR निकाल = इन्पुट २
इन्पुट २ XOR निकाल = इन्पुट १
आपल्या उदाहरणात इन्पुट १ होते मूळ मजकूर (DOG) आणि इन्पुट २ होते 'की'(KEY) त्यामुळे जर 'की' (इन्पुट २ = KEY) माहीत असेल आणि निकाल (मूळ शब्दाचे सांकेतिक रूप अर्थात आपल्या उदाहरणानुसार ðõÁ) माहीत असेल, तर त्यांच्यातील एक्सॉर (XOR) प्रक्रियेतून इन्पुट १ म्हणजे मूळ शब्द (DOG) नक्कीच शोधून काढता येईल, नाही का!
तुमचा तुमच्या मित्राशी चालू असलेला संवाद तिसर्या कोणालाही 'की' माहीत नसेल तर गुप्तच राहील. कारण त्या तिसर्या दुष्ट मनुष्याचा हाती केवळ ðõÁ लागेल आणि 'की' माहीत नसल्याने त्याला 'की'शी एक्सॉर प्रक्रिया करून त्यातून मूळ मजकूर - अर्थात DOG - परत मिळवता येणार नाही.
म्हणूनच मागच्या भागात लिहिले होते की 'की' ही कोणत्याही कूटन कृतीक्रमाची जान आहे. 'की' ओळखता आली, की तो कूटन कृतीक्रम फसलाच!
या उदाहरणात कूटन तसेच अकूटनासाठी एकच 'की' वापरली आहे. या प्रकारच्या कूटन कृतीक्रमाला 'सिमेट्रिक की' अल्गोरिदम म्हणतात; कारण कूटन आणि अकूटन दोन्हीसाठी एकच, समान 'की' वापरण्यात आली आहे. ज्यावेळी कूटन आणि अकूटनासाठी वेगळ्या 'की' वापरल्या जातात, त्यावेळी त्याला 'असिमेट्रिक की' अल्गोरिदम म्हटले जाते. ज्या कूटनप्रणालीमध्ये कूटन-अकूटनासाठी एकच, समान 'की' वापरली जाते, त्याला 'शेअर्ड सीक्रेट की' अल्गोरिदम असेही म्हटले जाते कारण ज्याने मजकूर पाठवलाय तो (ज्या बाजूस कूटन होते ती) आणि ज्याला मजकूर पाठवला गेलाय तो (ज्या बाजूस अकूटन होते ती) असे दोघेही एकच, समान 'की' 'शेअर करतात'.
जर का अशी 'की' तिसर्याच कोणाच्या हाती पडली, तर मात्र संवाद 'गुप्त' राहू शकणार नाही. दुसरी अशीही गोम आहे की येनकेनप्रकारेण मूळ मजकूर गवसलाच, आणि मूळ मजकूर व त्याचे सांकेतिक रूप अशा दोन्हीचा पुरेसा साठा तयार झाला, तरीही 'की' ओळखता येऊ शकेल. पण प्रस्तुत लेखमाला केवळ तोंडओळख स्वरूपाची असल्याने त्या क्लिष्ट बाजूस आता न गेलेलेच श्रेयस्कर!
पुढील भागात एक-दोन प्रसिद्ध कूटन कृतीक्रम - जे 'सिमेट्रिक की' वापरतात - ते पाहू; आणि 'असिमेट्रिक की' तसेच अशी की वापरून तयार होणारे कूटन कृतीक्रम यांबाबत मूलभूत माहिती मिळवू.
या भागातील स्मरणीय गोष्टी -
१. बूलिअन बीजगणितातील एक्सॉर (XOR )प्रक्रिया, तिचे प्रमुख वैशिष्ट्य आणि कूटनशास्त्रातील तिचे महत्त्व
२. सिमेट्रिक की आणि असिमेट्रिक की
प्रतिक्रिया
26 Feb 2011 - 10:03 am | गोगोल
काही जमला नाही. उगाचच जास्त डिटेल्स मध्ये गेला आहे. आणि किज चं महत्व स्पष्ट झाल नाही.
हे माझे दोन पैसे:
किज च नक्की महत्व समजावून घेण्यासाठी आपण भाग २ मधल्या सब्स्टिट्यूशन सायफर कडे परत जाउ. बेला नि दिलेल्या उदाहारणप्रमाणे सर्वात सोपी आइडिया म्हणजे प्रत्येक अक्षरा ऐवजी त्याच्यापुढचे अक्षर लिहीणे (आणि सगळ्यात शेवटच्या अक्षरा ऐवजी पहिले अक्षर लिहीणे). उदाहरणार्थ:
LOOK AT THE ZEBRA
याचे कूट भाषांतर होईलः
MPPL BU UIF AFCSB
परंतु समजा आपल्या माणसाला हा सीक्रेट मेसेज घेऊन जाताना जर शत्रू ने पकडले आणि त्याला खूप त्रास देऊन जर ही पद्धत काढून घेतली तर केवळ हाच नव्हे तर आज पर्यंत शत्रू कडे असलेले आपले सर्व सीक्रेट मेसेजस एका झटक्यात शत्रू ला सोडवता येतील. मग याच्यावर पर्याय काय शोधायचा? यासाठी एक उपाय शोधला गेला तो म्हणजे आपले मेसेजेस एनक्रिप्ट करण्याची पद्धत सीक्रेट आहे असे मानायचे नाही. शत्रू ला ती पद्धत माहीत आहे असे धरून चालायचे. या केस मध्ये, शत्रू ला आपण सब्स्टिट्यूशन वापरणार आहोत (एका अक्षरा ऐवजी दुसरे अक्षर) हे माहीत आहे असे धरून चालायचे. मग आपण शत्रू चे काम अवघड कसे करायचे तर बरोब्बर पुढचे अक्षर वापरण्या ऐवजी "एका विशिष्ट अंतरावरचे अक्षर" वापरायचे जसे की पाचवे किंवा विसावे. आता या केस मध्ये मध्ये फक्त २६ असे पर्याय उपलब्ध आहेत (असे धरून की आपण इंग्रजी मेसेज एनक्रिप्ट करत आहोत). आता आपला वाटाड्या आपला मेसेज घेऊन जाताना एनक्रिपटेड मेसेज आणि ही "की" (दर पाचवे अक्षर की दर विसावे अक्षर ई) घेऊन जाईल. जर यदा कदाचित शत्रू च्या हाती आपला मेसेज पडला (आणि "की" पडली नाही) तरी देखील त्याला "की" माहीत नसल्यामुळे मूळ मेसेज मिळवायला त्याला बरीच वेगवेगळी अक्षर-अंतरे घालून बघायला लागतील. यामुळे शत्रू चे काम वाढते (बर्याचदा अशा सीक्रेट मेसेजसना वेल बंधने असतात. जसे की मी माझ्या दुसर्या टीम ला आदेश दिला की हल्ला ९:०५ ला करूयात. शत्रू हा मेसेज जरी ९:०० वाजता उलगडला तरी त्याचे तितकेसे महत्वा नाही. हेच जर शतरुणे हा मेसेज ७:०० ला उलगडला तर मात्र माझी खैर नाही कारण की शत्रू माझा हल्ला परतवयची तयारी सहज करू शकतो). या केस मध्ये शत्रू चे नशीब वाईट असेल तर त्याला २५ वेगवेगळी अक्षर अंतरे प्रयत्नून बघायला लागतील मूळ मेसेज मिळवायच्या आधी. या पूर्ण उदाहरणातील सर्वात महत्वाची बाब म्हणजे शत्रू ला आपली एनक्रिप्ट करायची पद्धत माहीत आहे पण त्याला की माहीत नाही. ही की फार छोटी असल्यामुळे सूरकशित ठेवायला फार सोपी असते. त्या ऐवजी पूर्ण कूटन पद्धत सुरक्षित ठेवणे फार फार अवघड असते (जसे की फितुरी मुळे किंवा शत्रू कडील हुशार गणिती तज्ञांमुळे).
खरोखर क्रिप्टोग्रफी मधील सर्वात महत्वाचे आणि सर्वात पहिले प्रिन्सिपल हेच आहे की "शत्रू ला आपण मेसेज कसा एनक्रिप्ट करणार ह्याचा आल्गरिदम माहीत आहे, पण प्रत्येक मेसेज एनक्रिप्ट करण्या आधी आपण ती छोटीशी "की" बदलू शकतो आणि ती की शत्रू ला माहीत नसते."
आता येऊ यात दुसर्या मुद्द्याकडे: या केस मध्ये शत्रूच काम तरी सुद्धा फार सोपे होते .. त्याला फक्त २६ वेगवेगळी अक्षर अंतरे प्रयत्नून बघायची होती. पण त्यामुळे आपला एनक्रिपशन आल्गरिदम फारच अशक्त होता. खर्या जागा मध्ये, असे आल्गरिदम वापरतात की ज्यांची गणिती काठिण्य पातळी (प्रूवेबली) खरोखर खूप खूप अवघड आहे (हा विषय मग जातो पी वर्सेस एन पी कडे). हे झाले दुसरे महत्वाचे प्रिन्सिपल.
26 Feb 2011 - 10:48 am | पाषाणभेद
छान प्रतिसाद दिलास गोगोल
26 Feb 2011 - 1:14 pm | सविता
>हा भाग काही जमला नाही. उगाचच जास्त डिटेल्स मध्ये गेला आहे. आणि किज चं महत्व स्पष्ट झाल नाही
असहमत. उलट तुमचे उदाहरण मागच्या भागात सांगितलेल्या गोष्टी रिपिट करणारं वाटलं
मला हा भाग आवडला.... ऑर,अॅन्ड्,एक्सॉर..... परत सगळ्याची उजळणी झाली...छान वाटले...
आणि दिलेले उदाहरण... कि चे महत्व अधोरेखित करण्यासाठी...तसेच एन्क्रिप्ट्,डिक्रिप्ट करण्यासाठी होणारी एक्सॉर ची मदत समजून घेण्यासाठी मला उत्तम वाटले..
पुढील भागाची वाट पाहात आहे!
26 Feb 2011 - 1:28 pm | सविता
अर्थात काही गोष्टी बद्दल कुतुहल आहे...
उदाहरणार्थ... दिलेल्या उदाहरणात की आहे "KEY"....व मूळ शब्द आहे..."DOG".... दोन्ही तीन अक्षरी शब्द आहेत ज्यांचे द्विमान रूप समान लांबीचे (१ किंवा ०, दोन्ही मिळून होणारी आकड्यांची एकूण संख्या) आहे त्यामुळे एक्सॉर करणे सुलभ होते, जिथे ही अक्षरांची संख्या समान नसेल तिथे हे तंत्र कसे काम करेल?
उदाहरणार्थ शब्द आहे "BULLET" व की अजून ही "KEY" आहे,
कि चे द्विमान रूप आहे
०१००१०११०१०००१०१०१०११००१
तर शब्दाचे द्विमान रूप काहीतरी
०१००१०११०१००१००१०११०१०००१०१०१०११००१००१०१०१०११००१
याचे एक्सॉर केल्यानंतर येणारे द्विमान रूप परत "की" शी एक्सॉर केले तर जुना शब्द परत मिळेल की नाही याची शंका वाटते.
अर्थात कदाचित याचे सोपे उत्तर असेल पण शिकून बरीच वर्षे झाल्याने मला आठवत असेल.
26 Feb 2011 - 1:49 pm | गोगोल
असले पाहिजेत अस काही नसत. आता या पर्टिक्युलर उदाहरणात दोन शक्यता आहेत.
१. कि ची लाम्बी वाढवून ती टेक्स्ट ईतकी करणे (रिपिटिशनी)
BULLET:
०१००१०११०१००१००१०११०१०००१०१०१०११००१००१०१०१०११००१
KEY:
०१००१०११०१०००१०१०१०११००१०१००१०११०१०००१०१०१०११००१
ठळक केलेला भाग रिपिट केलेला आहे. आता तुम्ही त्याचा xor घेउ शकता.
२. नवीन कि शोधून काढणे कि ज्याची लाम्बी टेक्स्ट ईतकीच असेल. या प्रकाराला "one time pad" असे म्हणतात.
28 Feb 2011 - 9:58 am | सविता
तरी पण थोडी शंका आहेच.
"this is a test message"
हा माझा संदेश आहे. प्रत्येक शब्दात अक्षरांची संख्या वेगळी आहे, मग प्रत्येक शब्दाला वेगळी की शोधायची?
28 Feb 2011 - 12:02 pm | बेसनलाडू
यासाठी अनेक पर्याय आहेत -
१. पॅडींग - मूळ मजकुरापेक्षा 'की'ची लांबी कमी असेल, तर दोन्हींच्या लांब्या समान करण्यासाठी गोगोल यांनी म्हटल्यानुसार, लांब्या समान होईपर्यंत 'की'ची पुनरावृत्ती किंवा ० अथवा १ यांचे समूह यांची पुनरावृत्ती. उदा. मूळ मजकुराचे द्विमान रूप आहे १००१०१० आणि 'की'चे द्विमान रूप आहे १११, तर मूळ मजकूर कूटित स्वरूपात आणण्यासाठी पुढीलपैकी कोणातीही 'की' चालेल - १११०००० (मूळ 'की'च्या पुढे मूळ मजकुराच्या लांबीइतकी 'की'ची लांबी होण्यासाठी जितके ० लागतील तितके लिहिणे), १११११११ (मूळ 'की'च्या पुढे मूळ मजकुराच्या लांबीइतकी 'की'ची लांबी होण्यासाठी जितके १ लागतील तितके लिहिणे), १११११११ (मूळ मजकूर आणि 'की' यांची लांबी समान होईतोवर 'की'च्या पुढे 'की' लिहिणे) याला पॅडिंग म्हणतात. 'की'प्रमाणेच मूळ मजकुरातही पॅडिंग करता येतेच.
यशस्वी अकूटनासाठी ज्याला गुप्त संदेश पाठवायचा आहे, त्याला की किंवा मजकूर किंवा दोन्ही याला कसे काय पॅडिंग लागणार आहे, याची माहिती अर्थात लागेलच.
२. मूळ मजकुराची 'की'च्या लांबीइतक्या मजकूरसमूहात विभागणी आणि मग तो प्रत्येक समूह एकाच मूळ 'की'ने कूटित करायचा.
३. संदेश जास्तीत जास्त सुरक्षित करण्यासाठी एका ठराविक 'की'समूहातील एकेक 'की' एकेका शब्दासाठी अगर वाक्यासाठी वापरणे हे सुद्धा शक्य आहे. 'की'समूह पुरेसा मोठा असेल, तर तुमचा कूटित संदेश शत्रूच्या हाती पडून आणि त्याला 'की'समूह माहीत असूनही काही फायदा नाही. तुम्ही घेतलेलेच उदाहरण घेऊ. तुमच्या मजकुरात ५ शब्द आहेत. हे ५ शब्द कूटित करण्यासाठी मी जर ५००० किंवा ५००००० 'की' वापरल्या, तर सरासरी प्रत्येक शब्द अकूटित करण्यासाठी १००० ते १००००० की वापरल्या पाहिजेत. शत्रूच्या दृष्टीने अर्थातच हे कंटाळवाणे, कटकटीचे, जिकीरीचे काम आहे. मूळ संवाद ज्याच्याशी साधला जात आहे, त्याला ते तितके कटकटीचे नाही; कारण कोणत्या कूटित शब्दासाठी उपलब्ध 'की'संचातील कोणती 'की' वापरायची हे त्याला आधीच माहीत आहे.
थोडक्यात प्रत्येक शब्दासाठी वेगळी 'की' का वापरायची? तर शत्रूच्या हाती तुमचे कूटित शब्द पडलेच, आणि त्याला 'की' समूह माहीत आहे पण नक्की कोणती 'की' वापरायची आहे, हे माहीत नाही; अशा स्थितीत त्याचे अकूटनाचे प्रयत्न शक्य तितके जिकीरीचे, कंटाळवाणे, कटकटीचे (मनःस्तापाचे!!) व्हावे आणि त्याने अकूटनाचा नाद सोडावा! :)
यापुढे जाऊन मी असेही म्हणेन की प्रत्येक शब्दासाठी वेगळी की कधी/कुठे वापरावी? तर ज्या वातावरणात शत्रूच्या हाती तुमचे जास्तीत जास्त कूटित संदेश पडण्याची शक्यता आहे आणि त्याला तुम्ही वापरत असलेल्या 'की समूहाबद्दल 'बर्यापैकी' (किती 'की' आहेत, 'की'ची लांबी साधारण किती आहे इत्यादी) माहिती आहे, त्या वातावरणात.
(बहुपर्यायी)बेसनलाडू
28 Feb 2011 - 1:42 pm | सविता
धन्यवाद.
26 Feb 2011 - 5:42 pm | आत्मशून्य
हा हा हा, थोडक्यात काय तर लेख जस जसे अड्वान्स होत जातील तस तसे त्याला फक्त हे आधीच शीकलेले अथवा शिकून बरीच वर्षे झालेले अशाच लोकांच्या प्रतीक्रीया येत जातील असे वाटून गेले.....
26 Feb 2011 - 1:42 pm | गोगोल
>> असहमत. उलट तुमचे उदाहरण मागच्या भागात सांगितलेल्या गोष्टी रिपिट करणारं वाटलं
किज च नक्की महत्व समजावून घेण्यासाठी आपण भाग २ मधल्या सब्स्टिट्यूशन सायफर कडे परत जाउ.
26 Feb 2011 - 10:28 am | सूर्य
चांगली माहीती मिळाली. पुढील भागाच्या प्रतिक्षेत.
- सूर्य.
26 Feb 2011 - 10:40 am | पाषाणभेद
आधिचे दोन्ही व हा लेखही उत्तम झाला आहे. पुढील भागाच्या प्रतिक्षेत आहे.
26 Feb 2011 - 1:53 pm | आत्मशून्य
.
26 Feb 2011 - 6:28 pm | स्वाती२
वाचत आहे.
27 Feb 2011 - 5:01 pm | शाहरुख
लाडू, वचन दिल्यानुसार झोपून उठताच तिन्ही भाग वाचले आहेत..अतिशय सोप्या भाषेत समजावले आहे..आवडले !
28 Feb 2011 - 8:26 am | बेसनलाडू
वरील लेखातील एक्सॉर प्रक्रियेची सत्यसारणी चुकीची लिहिली गेली आहे. योग्य तक्ता पुढीलप्रमाणे -
० एक्सॉर ० = ०
० एक्सॉर १ = १
१ एक्सॉर ० = १
१ एक्सॉर १ = ०
थोडक्यात, समान इन्पुट्सवरील एक्सॉर प्रक्रियेचा निकाल ० तर असमान इन्पुट्स वरील एक्सॉर प्रक्रियेचा निकाल १ असतो.
या दुरुस्तीमुळे लेखातील उदाहरणातील द्विमान रूपे बदलणार नाहीत; पण सांकेतिक रूप (व त्याचे द्विमान रूप) फक्त बदलेल. तसेच एक्सॉर प्रक्रियेच्या परावर्तनीय गुणधर्मावर काही फरक पडणार नाही.
(शास्त्रशुद्ध)बेसनलाडू
लेखातील मूलभूत चुकीबद्दल दिलगीर आहे.
(दिलगीर)बेसनलाडू
चूक लक्षात आणून दिल्याबद्दल पंगांचे अनेक आभार.
(आभारी)बेसनलाडू
28 Feb 2011 - 1:19 pm | गणपा
छान चालली आहे मालिका.
वाचतोय...