कोड (क्रिप्टोग्राफी): Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Method used to encrypt a message}} {{other uses|Code (disambiguation)}} {{Original research|date=August 2020}} {{More citations needed|date=January 2016}}...")
 
No edit summary
Line 1: Line 1:
{{Short description|Method used to encrypt a message}}
{{Short description|Method used to encrypt a message}}


{{other uses|Code (disambiguation)}}
{{other uses|कोड (बहुविकल्पी)}}
{{Original research|date=August 2020}}
[[File:Ztel2.jpg|thumb|right|[[ब्रिटिश नौसेना खुफिया]] कोडब्रेकर्स द्वारा डिक्रिप्ट किया गया [[ज़िम्मरमैन टेलीग्राम]] का एक भाग। एरिज़ोना वर्ड जर्मन कोडबुक में नहीं था और इसलिए इसे ध्वन्यात्मक वर्ड में विभाजित किया जाना था।]]
{{More citations needed|date=January 2016}}
  [[File:KGB Victory Code pages at National Cryptologic Museum.agr.jpg|thumb|द्वितीय विश्व युद्ध की सोवियत केजीबी की दो-भाग वाली कोडबुक के पन्ने आंशिक रूप से जल गए]][[ कूटलिपि |क्रिप्टोलॉजी]] में, एक कोड एक [[संदेश|मैसेज]] को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली एक विधि है जो अर्थ के लेवल पर संचालित होती है; यानी वर्डों या फ्रेजों को किसी और चीज़ में बदल दिया जाता है। एक कोड परिवर्तन को सीवीजीडीके या कॉकटेल लाउंज में बदल सकता है। अमेरिकी [[राष्ट्रीय सुरक्षा एजेंसी|नेशनल सिक्योरिटी एजेंसी]] ने एक कोड को एक सब्स्टिट्यूशन क्रिप्टोसिस्टम के रूप में परिभाषित किया है जिसमें प्लेन टेक्स्ट तत्व मुख्य रूप से वर्ड, फ्रेज या वाक्य होते हैं, और कोड एक्विवैलेंट्स (जिन्हें कोड समूह कहा जाता है) में सामान्यतः वर्ड या नंबर (या दोनों) होते हैं अन्यथा समान लंबाई के अर्थहीन संयोजन होते हैं। <ref name=boaklectures>[http://www.governmentattic.org/18docs/Hist_US_COMSEC_Boak_NSA_1973u.pdf A History of U.S. Communications Security; the David G. Boak Lectures] {{Webarchive|url=https://web.archive.org/web/20160918020002/http://www.governmentattic.org/18docs/Hist_US_COMSEC_Boak_NSA_1973u.pdf |date=2016-09-18 }}, National Security Agency (NSA), Volumes I, 1973, Volumes II 1981, partially released 2008, additional portions declassified October 14, 2015</ref>{{rp|Vol I, p. 12}} फ्रेजों या वर्डों को एन्क्रिप्ट और डिक्रिप्ट करने के लिए एक [[कोडबुक]] की आवश्यकता होती है।
[[File:Ztel2.jpg|thumb|right|[[ब्रिटिश नौसेना खुफिया]] कोडब्रेकर्स द्वारा डिक्रिप्ट किया गया [[ज़िम्मरमैन टेलीग्राम]] का एक भाग। एरिज़ोना शब्द जर्मन कोडबुक में नहीं था और इसलिए इसे ध्वन्यात्मक अक्षरों में विभाजित किया जाना था।]]
  [[File:KGB Victory Code pages at National Cryptologic Museum.agr.jpg|thumb|द्वितीय विश्व युद्ध की सोवियत केजीबी की दो-भाग वाली कोडबुक के पन्ने आंशिक रूप से जल गए]][[ कूटलिपि ]] में, एक कोड एक [[संदेश]] को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली एक विधि है जो अर्थ के स्तर पर संचालित होती है; यानी शब्दों या वाक्यांशों को किसी और चीज़ में बदल दिया जाता है। एक कोड परिवर्तन को CVGDK या कॉकटेल लाउंज में बदल सकता है। अमेरिकी [[राष्ट्रीय सुरक्षा एजेंसी]] ने एक कोड को एक प्रतिस्थापन क्रिप्टोसिस्टम के रूप में परिभाषित किया है जिसमें सादा पाठ तत्व मुख्य रूप से शब्द, वाक्यांश या वाक्य होते हैं, और कोड समकक्ष (जिन्हें कोड समूह कहा जाता है) में आम तौर पर अक्षर या अंक (या दोनों) होते हैं अन्यथा अर्थहीन संयोजन होते हैं। समान लंबाई.<ref name=boaklectures>[http://www.governmentattic.org/18docs/Hist_US_COMSEC_Boak_NSA_1973u.pdf A History of U.S. Communications Security; the David G. Boak Lectures] {{Webarchive|url=https://web.archive.org/web/20160918020002/http://www.governmentattic.org/18docs/Hist_US_COMSEC_Boak_NSA_1973u.pdf |date=2016-09-18 }}, National Security Agency (NSA), Volumes I, 1973, Volumes II 1981, partially released 2008, additional portions declassified October 14, 2015</ref>{{rp|Vol I, p. 12}} वाक्यांशों या शब्दों को एन्क्रिप्ट और डिक्रिप्ट करने के लिए एक [[कोडबुक]] की आवश्यकता होती है।


इसके विपरीत, [[सिफर]] व्यक्तिगत अक्षरों, या अक्षरों के छोटे समूहों, या यहां तक ​​कि, आधुनिक सिफर, व्यक्तिगत [[ अंश ]]्स के स्तर पर संदेशों को एन्क्रिप्ट करते हैं। संदेशों को पहले एक कोड द्वारा और फिर एक सिफर द्वारा रूपांतरित किया जा सकता है।<ref>{{Cite web|date=2020-01-22|title=16.2: Substitution Ciphers|url=https://math.libretexts.org/Bookshelves/Applied_Mathematics/Math_in_Society_(Lippman)/16%3A_Cryptography/16.02%3A_Substitution_Ciphers|access-date=2021-09-19|website=Mathematics LibreTexts|language=en|archive-date=2021-09-19|archive-url=https://web.archive.org/web/20210919072153/https://math.libretexts.org/Bookshelves/Applied_Mathematics/Math_in_Society_(Lippman)/16:_Cryptography/16.02:_Substitution_Ciphers|url-status=live}}</ref> इस तरह के एकाधिक [[ कूटलेखन ]], या सुपरएन्क्रिप्शन का उद्देश्य क्रिप्टोएनालिसिस को और अधिक कठिन बनाना है।
इसके विपरीत, [[सिफर]] इंडिविजुअल वर्ड, या वर्ड के छोटे ग्रुप, या यहां तक ​​कि, मॉडर्न सिफर, व्यक्तिगत [[ अंश |बिट]] के स्तर पर मैसेजों को एन्क्रिप्ट करते हैं। मैसेजों को पहले एक कोड द्वारा और फिर एक सिफर द्वारा ट्रांसफॉर्म किया जा सकता है। <ref>{{Cite web|date=2020-01-22|title=16.2: Substitution Ciphers|url=https://math.libretexts.org/Bookshelves/Applied_Mathematics/Math_in_Society_(Lippman)/16%3A_Cryptography/16.02%3A_Substitution_Ciphers|access-date=2021-09-19|website=Mathematics LibreTexts|language=en|archive-date=2021-09-19|archive-url=https://web.archive.org/web/20210919072153/https://math.libretexts.org/Bookshelves/Applied_Mathematics/Math_in_Society_(Lippman)/16:_Cryptography/16.02:_Substitution_Ciphers|url-status=live}}</ref> इस तरह के एकाधिक[[ कूटलेखन | कूटलेखन]], या सुपरएन्क्रिप्शन का ऐम क्रिप्टोएनालिसिस को और अधिक कठिन बनाना है।


कोड और सिफर के बीच एक और तुलना यह है कि एक कोड आम तौर पर गणित के उपयोग के बिना सीधे एक अक्षर या अक्षरों के समूह का प्रतिनिधित्व करता है। इस प्रकार संख्याओं को इन तीन मानों का प्रतिनिधित्व करने के लिए कॉन्फ़िगर किया गया है: 1001 = , 1002 = बी, 1003 = सी, ...। परिणामी संदेश, एबीसी को संप्रेषित करने के लिए 1001 1002 1003 होगा। हालाँकि, सिफर अक्षरों या अक्षरों के समूहों का प्रतिनिधित्व करने के लिए गणितीय सूत्र का उपयोग करते हैं। उदाहरण के लिए, = 1, बी = 2, सी = 3, ...। इस प्रकार प्रत्येक अक्षर के मान को 13 से गुणा करने पर संदेश एबीसी प्राप्त होता है। तब संदेश एबीसी 13 26 39 होगा।
कोड और सिफर के बीच एक और तुलना यह है कि एक कोड सामान्यतः गणित के उपयोग के बिना सीधे एक वर्ड या वर्ड ग्रुप का प्रतिनिधित्व करता है। इस प्रकार संख्याओं को इन तीन वैल्यू का प्रतिनिधित्व करने के लिए कॉन्फ़िगर किया गया है: 1001 = A, 1002 = B, 1003 = C, ...। रीसलटिंग मैसेज, एबीसी को कम्यूनिकेट करने के लिए 1001 1002 1003 होगा। हालाँकि, सिफर वर्ड या वर्ड के ग्रुप को रिप्रेजेंट करने के लिए मैथमेटिकल फार्मूला का उपयोग करते हैं। उदाहरण के लिए, A = 1, B = 2, C = 3, ....। इस प्रकार प्रत्येक वर्ड के ग्रुप को 13 से मल्टिप्लाय करने पर मैसेज एबीसी प्राप्त होता है। तब मैसेज एबीसी 13 26 39 होगा।


कोड में कई तरह की कमियां हैं, जिनमें [[क्रिप्ट विश्लेषण]] के प्रति संवेदनशीलता और बोझिल कोडबुक को प्रबंधित करने की कठिनाई शामिल है, इसलिए सिफर अब आधुनिक क्रिप्टोग्राफी में प्रमुख तकनीक है।
कोड में कई तरह की ड्रॉबैक हैं, जिनमें [[क्रिप्ट विश्लेषण|क्रिप्ट एनालिसिस]] के प्रति ससेप्टिबिलिटी और क्युम्बरसम कोडबुक को प्रबंधित करने की कठिनाई सम्मिलित है, इसलिए सिफर अब मॉडर्न क्रिप्टोग्राफी में डोमिनेंट तकनीक है।


इसके विपरीत, क्योंकि कोड प्रतिनिधित्वात्मक होते हैं, वे व्यक्तिगत कोडबुक तत्वों के गणितीय विश्लेषण के लिए अतिसंवेदनशील नहीं होते हैं। उदाहरण में, संदेश 13 26 39 को प्रत्येक संख्या को 13 से विभाजित करके और फिर उन्हें वर्णानुक्रम में क्रमबद्ध करके क्रैक किया जा सकता है। हालाँकि, कोडबुक क्रिप्टोएनालिसिस का फोकस [[आवृत्ति विश्लेषण]] का उपयोग करके सादे पाठ संदेशों के भीतर अक्षरों की समान आवृत्ति से मेल खाने वाले व्यक्तिगत कोड तत्वों की तुलनात्मक आवृत्ति है। उपरोक्त उदाहरण में, कोड समूह, 1001, 1002, 1003, एक से अधिक बार आ सकता है और वह आवृत्ति सादे पाठ संदेशों में एबीसी होने की संख्या से मेल खा सकती है।
इसके विपरीत, क्योंकि कोड रीप्रेसेंटेशनल होते हैं, वे व्यक्तिगत कोडबुक एलिमेंट के मैथमेटिकल एनालिसिस के लिए सससेपटिबल नहीं होते हैं। उदाहरण में, मैसेज 13 26 39 को प्रत्येक संख्या को 13 से विभाजित करके और फिर उन्हें वर्णानुक्रम में क्रमबद्ध करके क्रैक किया जा सकता है। हालाँकि, कोडबुक क्रिप्टोएनालिसिस का फोकस [[आवृत्ति विश्लेषण|आवृत्ति एनालिसिस]] का उपयोग करके प्लेन टेक्स्ट मैसेजों के भीतर वर्ड की समान आवृत्ति से मेल खाने वाले व्यक्तिगत कोड एलिमेंट की तुलनात्मक आवृत्ति है। उपरोक्त उदाहरण में, कोड समूह, 1001, 1002, 1003, एक से अधिक बार आ सकता है और वह आवृत्ति प्लेन पाठ मैसेजों में एबीसी होने की संख्या से मेल खा सकती है।


(अतीत में, या गैर-तकनीकी संदर्भों में, कोड और सिफर का उपयोग अक्सर एन्क्रिप्शन के किसी भी रूप को संदर्भित करने के लिए किया जाता है)।
(अतीत में, या नॉन-टेक्निकल कॉन्टेक्स्ट में, कोड और सिफर का उपयोग प्रायः एन्क्रिप्शन के किसी भी रूप को संदर्भित करने के लिए किया जाता है)।


==एक- और दो-भाग कोड==
==एक-और दो-भाग कोड==
कोड को कोडबुक (भौतिक या काल्पनिक) द्वारा परिभाषित किया जाता है, जो उनके संबंधित सादे पाठ के साथ सूचीबद्ध कोडसमूहों के शब्दकोश होते हैं। कोड में मूल रूप से डिज़ाइन किए गए कोड या एनकोडर की सुविधा के लिए 'प्लेनटेक्स्ट ऑर्डर' में कोडसमूह निर्दिष्ट किए गए थे। उदाहरण के लिए, संख्यात्मक कोड समूहों का उपयोग करने वाले कोड में, a से शुरू होने वाले सादे टेक्स्ट शब्द में कम-मूल्य वाला समूह होगा, जबकि z से शुरू होने वाले शब्द में उच्च-मूल्य वाला समूह होगा। एक ही कोडबुक का उपयोग एक प्लेनटेक्स्ट संदेश को एक कोडित संदेश या कोडटेक्स्ट में एनकोड करने के लिए किया जा सकता है, और एक कोडटेक्स्ट को वापस प्लेनटेक्स्ट संदेश में डीकोड करने के लिए किया जा सकता है।
कोड को कोडबुक (भौतिक या काल्पनिक) द्वारा परिभाषित किया जाता है, जो उनके करेस्पोंडिंग प्लेनटेक्सट के साथ सूचीबद्ध कोडग्रुप के वर्डकोश होते हैं। कोड में मूल रूप से डिज़ाइन किए गए कोड या एनकोडर की कन्वीनिएंस के लिए 'प्लेनटेक्स्ट ऑर्डर' में कोडग्रूप निर्दिष्ट किए गए थे। उदाहरण के लिए, संख्यात्मक कोडग्रुप का उपयोग करने वाले कोड में, a से प्रारम्भ होने वाले प्लेन टेक्स्ट वर्ड में लो-वैल्यू वाला समूह होगा, जबकि z से प्रारम्भ होने वाले वर्ड में हाई-वैल्यू वाला समूह होगा। एक ही कोडबुक का उपयोग एक प्लेनटेक्स्ट मैसेज को एक कोडित मैसेज या कोडटेक्स्ट में एनकोड करने के लिए किया जा सकता है, और एक कोडटेक्स्ट को वापस प्लेनटेक्स्ट मैसेज में डीकोड करने के लिए किया जा सकता है।


कोडब्रेकर्स के जीवन को और अधिक कठिन बनाने के लिए, कोडमेकर्स ने ऐसे कोड डिज़ाइन किए, जिनमें कोडग्रुप और मिलान वाले प्लेनटेक्स्ट के क्रम के बीच कोई पूर्वानुमानित संबंध नहीं था। व्यवहार में, इसका मतलब यह था कि अब दो कोडबुक की आवश्यकता थी, एक एन्कोडिंग के लिए कोडग्रुप खोजने के लिए, दूसरा डिकोडिंग के लिए प्लेनटेक्स्ट खोजने के लिए कोडग्रुप देखने के लिए। ऐसे दो-भाग वाले कोड को विकसित करने के लिए अधिक प्रयास की आवश्यकता होती है, और वितरित करने (और प्रतिस्थापित होने पर सुरक्षित रूप से त्यागने) के लिए दोगुने प्रयास की आवश्यकता होती है, लेकिन उन्हें तोड़ना कठिन होता है। जनवरी 1917 में [[ज़िम्मरमैन टेलीग्राम]] ने जर्मन राजनयिक 0075 दो-भाग कोड प्रणाली का उपयोग किया जिसमें 10,000 से अधिक वाक्यांश और व्यक्तिगत शब्द शामिल थे।<ref>[http://www.tandfonline.com/doi/full/10.1080/01611190600921165 "Zimmermann Telegram: The Original Draft"] {{Webarchive|url=https://web.archive.org/web/20210427224757/https://www.tandfonline.com/doi/full/10.1080/01611190600921165 |date=2021-04-27 }}, 2007, Joachim von zur Gathen, "Cryptologia", Volume 31, Issue 1</ref>
कोडब्रेकर्स के जीवन को और अधिक कठिन बनाने के लिए, कोडमेकर्स ने ऐसे कोड डिज़ाइन किए, जिनमें कोडग्रुप और मिलान वाले प्लेनटेक्स्ट के क्रम के बीच कोई प्रेडिक्टेबल रिलेशनशिप नहीं था। प्रैक्टिस में, इसका अर्थ यह था कि अब दो कोडबुक की आवश्यकता थी, एक एन्कोडिंग के लिए कोडग्रुप खोजने के लिए, दूसरा डिकोडिंग के लिए प्लेनटेक्स्ट खोजने के लिए कोडग्रुप देखने के लिए। ऐसे दो-भाग वाले कोड को डेवलप करने के लिए अधिक प्रयास की आवश्यकता होती है, और डिस्ट्रीब्यूट करने (और प्रतिस्थापित होने पर सुरक्षित रूप से त्यागने) के लिए दोगुने प्रयास की आवश्यकता होती है, लेकिन उन्हें तोड़ना कठिन होता है। जनवरी 1917 में [[ज़िम्मरमैन टेलीग्राम]] ने जर्मन राजनयिक 0075 दो-भाग कोड प्रणाली का उपयोग किया जिसमें 10,000 से अधिक फ्रेज और व्यक्तिगत वर्ड सम्मिलित थे। <ref>[http://www.tandfonline.com/doi/full/10.1080/01611190600921165 "Zimmermann Telegram: The Original Draft"] {{Webarchive|url=https://web.archive.org/web/20210427224757/https://www.tandfonline.com/doi/full/10.1080/01611190600921165 |date=2021-04-27 }}, 2007, Joachim von zur Gathen, "Cryptologia", Volume 31, Issue 1</ref>




==एक बार का कोड==
==एक बार का कोड==
वन-टाइम कोड एक पूर्व-व्यवस्थित शब्द, वाक्यांश या प्रतीक है जिसका उपयोग एक साधारण संदेश देने के लिए केवल एक बार किया जाता है, जो अक्सर किसी योजना को निष्पादित करने या रद्द करने या यह पुष्टि करने के लिए संकेत होता है कि यह सफल या विफल हो गया है। एक-बार के कोड अक्सर एक मासूम बातचीत में शामिल करने के लिए डिज़ाइन किए जाते हैं। ठीक से किए जाने पर उनका पता लगाना लगभग असंभव है, हालांकि एक प्रशिक्षित विश्लेषक जो पहले से ही संदेह पैदा कर चुके किसी व्यक्ति के संचार की निगरानी कर रहा है, वह आंटी बर्था को प्रसव पीड़ा में जाने जैसी टिप्पणी को एक अशुभ अर्थ के रूप में पहचानने में सक्षम हो सकता है। एक बार कोड के प्रसिद्ध उदाहरण में शामिल हैं:
वन-टाइम कोड एक प्रीअरेंज्ड वर्ड, फ्रेज या सिंबल है जिसका उपयोग एक सिंपल मैसेज देने के लिए केवल एक बार किया जाता है, जो प्रायः किसी प्लान को एक्सीक्यूट करने या अबो्र्ट करने या यह कन्फर्म करने के लिए संकेत होता है कि यह सफल या विफल हो गया है। एक-बार के कोड प्रायः एक इनोसेंट कन्वर्सेशन में सम्मिलित करने के लिए डिज़ाइन किए जाते हैं। ठीक से किए जाने पर उनका पता लगाना लगभग असंभव है, हालांकि एक ट्रेन्ड एनालिस्ट जो पहले से ही सस्पिशन अराउस कर चुके किसी व्यक्ति के कम्युनिकेशन को मॉनिटर कर रहा है, वह आंटी बर्था को लेबर पेन में जाने जैसी टिप्पणी को एक ओमिनस मीनिंग के रूप में पहचानने में सक्षम हो सकता है। एक बार कोड के फेमस एक्साम्पल में सम्मिलित हैं:


*बाइबिल में, जोनाथन (1 सैमुअल) [[राजा डेविड]] के साथ एक कोड की व्यवस्था करता है, जो जोनाथन के पिता, राजा शाऊल से छिप रहा है। यदि, तीरंदाजी अभ्यास के दौरान, जोनाथन तीर निकाल रहे नौकर से कहता है कि तीर तुम्हारे इस तरफ हैं, तो डेविड के लिए अदालत में लौटना सुरक्षित है, यदि आदेश है कि तीर तुम्हारे पार हैं, तो डेविड को भागना होगा।<ref>I Samuel 20:20-22</ref> * एक यदि भूमि से; पॉल रेवरे की सवारी (कविता) में समुद्र के द्वारा दो|[[हेनरी वड्सवर्थ लॉन्गफेलो]] की कविता में पॉल रेवरे की सवारी प्रसिद्ध हुई
*बाइबिल में, जोनाथन (1 सैमुअल) [[राजा डेविड]] के साथ एक कोड को प्रीअर्रेंज करता है, जो जोनाथन के पिता, राजा शाऊल से छिप रहा है। यदि, आर्चरी प्रैक्टिस के दौरान, जोनाथन तीर निकाल रहे नौकर से कहता है कि तीर तुम्हारे इस तरफ हैं, तो डेविड के लिए कोर्ट में लौटना सेफ है, यदि आदेश है कि तीर तुम्हारे पार हैं, तो डेविड को भागना होगा।<ref>I Samuel 20:20-22</ref>  
* माउंट नीताका पर चढ़ना - जापानी विमानों को [[पर्ल हार्बर पर हमला]] शुरू करने का संकेत
*वन इफ बी लैंड; टू इफ बाई सी (पोएम) [[हेनरी वड्सवर्थ लॉन्गफेलो]] की पोएम में पॉल रीवेरे राइड प्रसिद्ध हुई
*[[द्वितीय विश्व युद्ध]] के दौरान [[ब्रिटिश ब्रॉडकास्टिंग कॉर्पोरेशन]] की विदेशी सेवा में अक्सर रेडियो लॉन्ड्रेस#कोडित संदेशों को अपने नियमित प्रसारण कार्यक्रम के हिस्से के रूप में शामिल किया जाता था। उद्घोषकों द्वारा पढ़े जाने वाले संदेशों की प्रतीत होने वाली निरर्थक धारा वास्तव में दुश्मन की रेखाओं के पीछे काम करने वाले [[विशेष संचालन कार्यकारी]] (एसओई) एजेंटों के लिए एक बार के कोड थे। एक उदाहरण यह हो सकता है कि राजकुमारी लाल जूते पहनती है या मिमी की बिल्ली मेज़ के नीचे सो रही है। प्रत्येक कोड संदेश को दो बार पढ़ा गया। ऐसे तरीकों से, [[फ्रांसीसी प्रतिरोध]] को [[ डी-दिन ]] से एक रात पहले रेल और अन्य परिवहन लिंक में तोड़फोड़ शुरू करने का निर्देश दिया गया था।
* क्लाइंब माउंट नियतका नीताका - जापानी विवैल्यू को [[पर्ल हार्बर पर हमला|पर्ल हार्बर परअटैक]] प्रारम्भ करने का संकेत
* पूरे स्पेन में, आसमान साफ ​​है, यह 17 जुलाई, 1936 को स्पेनिश गृहयुद्ध#युद्ध के फैलने का संकेत था (रेडियो पर प्रसारित)।
*[[द्वितीय विश्व युद्ध|वर्ल्ड वॉर II]] के दौरान [[ब्रिटिश ब्रॉडकास्टिंग कॉर्पोरेशन]] की विदेशी सर्विस में प्रायः रेडियो लॉन्ड्रेस कोडित मैसेजों को अपने रेग्युलर ब्रॉडकास्ट कार्यक्रम के हिस्से के रूप में सम्मिलित किया जाता था। एनाउंसर द्वारा पढ़े जाने वाले मैसेजों की प्रतीत होने वाली नोंसेंसिकल स्ट्रीम वास्तव में एनिमी लाइन के पीछे काम करने वाले [[विशेष संचालन कार्यकारी|स्पेशल ऑपरेशन्स एग्जीक्यूटिव]] (एसओई) एजेंटों के लिए एक बार के कोड थे। एक उदाहरण यह हो सकता है कि "द प्रिंसेस वेअर्स रेड शूज" या "मिमी कैट इज़ अस्लीप अंडर द टेबल"। प्रत्येक कोड मैसेज को दो बार पढ़ा गया। ऐसे तरीकों से, [[फ्रांसीसी प्रतिरोध|फ्रांसीसी रेजिस्टेंस]] को[[ डी-दिन | डी-डे]] से एक रात पहले रेल और अन्य ट्रांसपोर्ट लिंक में सबोटैगिंग प्रारम्भ करने का निर्देश दिया गया था।
* पूरे स्पेन में, आसमान साफ ​​है, यह 17 जुलाई, 1936 को स्पेनिश वॉर के फैलने का संकेत था (रेडियो पर प्रसारित)।


कभी-कभी संदेश पूर्व-व्यवस्थित नहीं होते हैं और साझा ज्ञान पर निर्भर होते हैं, जो संभवतः केवल प्राप्तकर्ताओं को ज्ञात होता है। एक उदाहरण अमेरिकी राष्ट्रपति [[हैरी ट्रूमैन]] को भेजा गया टेलीग्राम है, फिर [[पॉट्सडैम सम्मेलन]] में सोवियत प्रधान मंत्री [[जोसेफ स्टालिन]] से मिलने के लिए, ट्रूमैन को [[परमाणु बम]] के [[ट्रिनिटी परीक्षण]] के बारे में सूचित किया गया।
कभी-कभी मैसेज प्रीअरेंज्ड नहीं होते हैं और शेयर्ड नॉलेज पर निर्भर होते हैं, जो संभवतः केवल रीसिपिएंट को ज्ञात होता है। एक उदाहरण अमेरिकी राष्ट्रपति [[हैरी ट्रूमैन]] को भेजा गया टेलीग्राम है, फिर [[पॉट्सडैम सम्मेलन]] में सोवियत प्रधान मंत्री [[जोसेफ स्टालिन]] से मिलने के लिए, ट्रूमैन को [[परमाणु बम|एटॉमिक बॉम्ब]] के [[ट्रिनिटी परीक्षण|ट्रिनिटी टेस्ट]] के बारे में सूचित किया गया।
: आज सुबह ऑपरेशन किया गया। निदान अभी तक पूरा नहीं हुआ है लेकिन परिणाम संतोषजनक लग रहे हैं और पहले से ही अपेक्षाओं से अधिक हैं। स्थानीय प्रेस विज्ञप्ति आवश्यक है क्योंकि रुचि काफी दूर तक फैली हुई है। लेस्ली ग्रोव्स|डॉ. ग्रूव्स प्रसन्न। वह कल लौटेगा. मैं तुम्हें तैनात रखूँगा।
: आज सुबह ऑपरेशन किया गया। डायग्नोसिस अभी तक पूरा नहीं हुआ है लेकिन परिणाम सैटिस्फैक्टरी लग रहे हैं और पहले से ही अपेक्षाओं से अधिक हैं। स्थानीय प्रेस विज्ञप्ति आवश्यक है क्योंकि इंटरेस्ट काफी दूर तक फैला हुआ है। वह कल लौटेगा. मैं तुम्हें पोस्टेड रखूँगा।


वन-टाइम पैड, एक असंबंधित साइफर एल्गोरिथम भी देखें
वन-टाइम पैड, एक अनरिलेटेड साइफर एल्गोरिथम भी देखें


==इडियट कोड==
==इडियट कोड==


इडियट कोड एक ऐसा कोड है जो इसका उपयोग करने वाली पार्टियों द्वारा बनाया जाता है। इस प्रकार का संचार क्षेत्र में सेनाओं द्वारा उपयोग किए जाने वाले हाथ के संकेतों के समान है।
इडियट कोड एक ऐसा कोड है जो इसका उपयोग करने वाली पार्टियों द्वारा बनाया जाता है। इस प्रकार का संचार क्षेत्र में सेनाओं द्वारा उपयोग किए जाने वाले हैंड सिग्नल के समान है।


उदाहरण: कोई भी वाक्य जहां 'दिन' और 'रात' का उपयोग किया जाता है उसका अर्थ है 'हमला'निम्नलिखित वाक्य में उल्लिखित स्थान हमला किए जाने वाले स्थान को निर्दिष्ट करता है।
उदाहरण: कोई भी वाक्य जहां 'डे' और 'नाईट' का उपयोग किया जाता है उसका अर्थ 'अटैक' है। निम्नलिखित वाक्य में उल्लिखित स्थान अटैक किए जाने वाले स्थान को निर्दिष्ट करता है।
*सादा पाठ: आक्रमण एक्स.
*प्लेन टेक्स्ट: अटैक एक्स।
*कोडटेक्स्ट: हम दिन-रात सड़कों पर घूमते रहे लेकिन वह नहीं मिला! कल हम एक्स में जाएंगे।
*कोडटेक्स्ट: हम दिन-रात सड़कों पर घूमते रहे लेकिन वह नहीं मिला! कल हम एक्स में जाएंगे।


ऐसा प्रतीत होता है कि इस शब्द का प्रारंभिक उपयोग विज्ञान कथा पुस्तक [[शुक्रवार (उपन्यास)]]उपन्यास) के एक पात्र जॉर्ज पेरौल्ट द्वारा किया गया था।<ref name="FridayP163">''Friday'' (1982) by [[Robert A. Heinlein]]</ref> रॉबर्ट ए. हेनलेन द्वारा:
ऐसा प्रतीत होता है कि इस वर्ड का प्रारंभिक उपयोग साइंस फिक्शन बुक [[शुक्रवार (उपन्यास)]] के एक पात्र जॉर्ज पेरौल्ट द्वारा किया गया था। <ref name="FridayP163">''Friday'' (1982) by [[Robert A. Heinlein]]</ref> रॉबर्ट ए. हेनलेन द्वारा:


:सबसे सरल प्रकार [कोड का] और इसे तोड़ना असंभव है। पहले विज्ञापन में संबंधित व्यक्ति या व्यक्तियों को नंबर सात को आगे बढ़ाने या नंबर सात की अपेक्षा करने के लिए कहा गया था या इसमें सात के रूप में निर्दिष्ट किसी चीज़ के बारे में कुछ कहा गया था। यह कोड आइटम नंबर दस के संबंध में भी यही कहता है। लेकिन संख्याओं का अर्थ सांख्यिकीय विश्लेषण के माध्यम से नहीं निकाला जा सकता है क्योंकि उपयोगी सांख्यिकीय ब्रह्मांड तक पहुंचने से बहुत पहले कोड को बदला जा सकता है। यह एक बेवकूफी भरा कोड है... और एक बेवकूफी भरा कोड कभी नहीं तोड़ा जा सकता, अगर उपयोगकर्ता को बार-बार कुएं में न जाने की अच्छी समझ हो।
:सबसे सरल प्रकार [कोड का] और इसे तोड़ना इम्पॉसिबल है। पहले ऐड में संबंधित व्यक्ति या व्यक्तियों को नंबर सात को आगे बढ़ाने या नंबर सात की अपेक्षा करने के लिए कहा गया था या इसमें सात के रूप में निर्दिष्ट किसी चीज़ के बारे में कुछ कहा गया था। यह कोड आइटम नंबर दस के संबंध में भी यही कहता है। लेकिन संख्याओं का अर्थ सांख्यिकीय एनालिसिस के माध्यम से नहीं निकाला जा सकता है क्योंकि उपयोगी सांख्यिकीय यूनिवर्स तक पहुंचने से बहुत पहले कोड को बदला जा सकता है। यह एक इडियट कोड है... और एक इडियट कोड कभी नहीं तोड़ा जा सकता, अगर उपयोगकर्ता को बार-बार कुएं में न जाने की गुड सेंस हो।


आतंकवाद विशेषज्ञ मैग्नस रैनस्टॉर्प ने कहा कि संयुक्त राज्य अमेरिका पर 11 सितंबर के हमलों को अंजाम देने वाले लोगों ने अपनी योजनाओं पर चर्चा करने के लिए बुनियादी ई-मेल और जिसे वह बेवकूफ कोड कहते हैं, का उपयोग किया था।<ref name="JihadOnline">Radio Free Europe / Radio Liberty: [http://www.rferl.org/featuresarticle/2004/06/a3d6bec4-ace3-4592-a271-f3f9b9c912cd.html "Middle East: Islamic Militants Take Jihad To The Internet" By Jeffrey Donovan] {{Webarchive|url=https://web.archive.org/web/20080115132901/http://www.rferl.org/featuresarticle/2004/06/a3d6bec4-ace3-4592-a271-f3f9b9c912cd.html |date=2008-01-15 }}, 16 June 2004.</ref>
टेररिज्म विशेषज्ञ मैग्नस रैनस्टॉर्प ने कहा कि संयुक्त राज्य अमेरिका पर 11 सितंबर के अटैक को अंजाम देने वाले लोगों ने अपनी योजनाओं पर चर्चा करने के लिए बुनियादी ई-मेल और जिसे वह इडियट कोड कहते हैं, उसका उपयोग किया था।<ref name="JihadOnline">Radio Free Europe / Radio Liberty: [http://www.rferl.org/featuresarticle/2004/06/a3d6bec4-ace3-4592-a271-f3f9b9c912cd.html "Middle East: Islamic Militants Take Jihad To The Internet" By Jeffrey Donovan] {{Webarchive|url=https://web.archive.org/web/20080115132901/http://www.rferl.org/featuresarticle/2004/06/a3d6bec4-ace3-4592-a271-f3f9b9c912cd.html |date=2008-01-15 }}, 16 June 2004.</ref>


=== क्रिप्टएनालिसिस कोड्स ===
जबकि एक [[मोनोअल्फाबेटिक प्रतिस्थापन सिफर|मोनोअल्फाबेटिक सब्स्टिट्यूशन सिफर]] को सॉल्व करना आसान है, एक सिंपल कोड को भी सॉल्व करना कठिन है। किसी कोडित मैसेज को डिक्रिप्ट करना किसी विदेशी भाषा में लिखे गए डॉक्यूमेंट का अनुवाद करने की प्रयास करने जैसा है, जिसमें मूल रूप से कोड ग्रुप और उनके द्वारा दर्शाए गए प्लेन वर्डों का एक कोडग्रूप बनाना सम्मिलित है।


==कोडों [[पालना (क्रिप्ट विश्लेषण)]]
ए'''क सिंपल कोड पर फिंगरहोल्ड त'''थ्य यह है कि कुछ वर्ड दूसरों की तुलना में अधिक सामान्य हैं, जैसे कि अंग्रेजी में या। टेलीग्राफिक मैसेजों में, STOP (यानी, वाक्य या पैराग्राफ का अंत) के लिए कोडग्रुप आमतौर पर बहुत आम होता है। यह मैसेज की संरचना को वाक्यों के संदर्भ में परिभाषित करने में मदद करता है, न कि उनके अर्थ के रूप में, और यह क्रिप्टोएनालिटिक रूप से उपयोगी है।
जबकि एक [[मोनोअल्फाबेटिक प्रतिस्थापन सिफर]] को हल करना आसान है, एक साधारण कोड को भी हल करना मुश्किल है। किसी कोडित संदेश को डिक्रिप्ट करना किसी विदेशी भाषा में लिखे गए दस्तावेज़ का अनुवाद करने की कोशिश करने जैसा है, जिसमें मूल रूप से कोड समूहों और उनके द्वारा दर्शाए गए सादे शब्दों का एक शब्दकोश बनाना शामिल है।
 
एक साधारण कोड पर उंगली उठाने वाला तथ्य यह है कि कुछ शब्द दूसरों की तुलना में अधिक सामान्य हैं, जैसे कि अंग्रेजी में या। टेलीग्राफिक संदेशों में, STOP (यानी, वाक्य या पैराग्राफ का अंत) के लिए कोडग्रुप आमतौर पर बहुत आम होता है। यह संदेश की संरचना को वाक्यों के संदर्भ में परिभाषित करने में मदद करता है, न कि उनके अर्थ के रूप में, और यह क्रिप्टोएनालिटिक रूप से उपयोगी है।


एक ही कोड से एन्क्रिप्ट किए गए कई कोडटेक्स्ट एकत्र करके और फिर अन्य स्रोतों से जानकारी का उपयोग करके एक कोड के विरुद्ध आगे की प्रगति की जा सकती है
एक ही कोड से एन्क्रिप्ट किए गए कई कोडटेक्स्ट एकत्र करके और फिर अन्य स्रोतों से जानकारी का उपयोग करके एक कोड के विरुद्ध आगे की प्रगति की जा सकती है
Line 60: Line 58:
*समाचार पत्र
*समाचार पत्र
*राजनयिक कॉकटेल पार्टी चैट
*राजनयिक कॉकटेल पार्टी चैट
*वह स्थान जहां से संदेश भेजा गया था
*वह स्थान जहां से मैसेज भेजा गया था
*जहां इसे भेजा जा रहा था (यानी, [[यातायात विश्लेषण]])
*जहां इसे भेजा जा रहा था (यानी, [[यातायात विश्लेषण|यातायात एनालिसिस]])
*संदेश भेजे जाने का समय,
*मैसेज भेजे जाने का समय,
*संदेश भेजे जाने से पहले और बाद में होने वाली घटनाएँ
*मैसेज भेजे जाने से पहले और बाद में होने वाली घटनाएँ
*कोडित संदेश भेजने वाले लोगों की सामान्य आदतें
*कोडित मैसेज भेजने वाले लोगों की सामान्य आदतें
*वगैरह।
*वगैरह।


उदाहरण के लिए, एक विशेष कोडग्रुप लगभग विशेष रूप से किसी विशेष सेना के संदेशों में पाया जाता है और कहीं नहीं, उस सेना के कमांडर को बहुत अच्छी तरह से इंगित कर सकता है। एक कोडग्रुप जो किसी विशेष स्थान पर हमले से पहले के संदेशों में दिखाई देता है, वह उस स्थान के लिए बहुत अच्छा हो सकता है।
उदाहरण के लिए, एक विशेष कोडग्रुप लगभग विशेष रूप से किसी विशेष सेना के मैसेजों में पाया जाता है और कहीं नहीं, उस सेना के कमांडर को बहुत अच्छी तरह से इंगित कर सकता है। एक कोडग्रुप जो किसी विशेष स्थान पर हमले से पहले के मैसेजों में दिखाई देता है, वह उस स्थान के लिए बहुत अच्छा हो सकता है।


क्रिब (क्रिप्टएनालिसिस) कोडग्रुप की परिभाषाओं के लिए एक तत्काल रास्ता हो सकता है। जैसे-जैसे कोडसमूह निर्धारित होते हैं, वे धीरे-धीरे एक महत्वपूर्ण समूह का निर्माण कर सकते हैं, संदर्भ और शिक्षित अनुमान से अधिक से अधिक कोडसमूह सामने आते हैं। दो-भाग वाले कोड की तुलना में एक-भाग वाले कोड इस तरह के शिक्षित अनुमान के प्रति अधिक संवेदनशील होते हैं, क्योंकि यदि एक-भाग वाले कोड का कोड नंबर 26839 बुलडोजर के लिए निर्धारित किया जाता है, तो निचला कोड नंबर 17598 संभवतः एक सादे पाठ शब्द के लिए खड़ा होगा जो इससे शुरू होता है ए या बी . कम से कम, सरल एक भाग कोड के लिए।
क्रिब (क्रिप्टएनालिसिस) कोडग्रुप की परिभाषाओं के लिए एक तत्काल रास्ता हो सकता है। जैसे-जैसे कोडसमूह निर्धारित होते हैं, वे धीरे-धीरे एक महत्वपूर्ण समूह का निर्माण कर सकते हैं, संदर्भ और शिक्षित अनुमान से अधिक से अधिक कोडसमूह सामने आते हैं। दो-भाग वाले कोड की तुलना में एक-भाग वाले कोड इस तरह के शिक्षित अनुमान के प्रति अधिक संवेदनशील होते हैं, क्योंकि यदि एक-भाग वाले कोड का कोड नंबर 26839 बुलडोजर के लिए निर्धारित किया जाता है, तो निचला कोड नंबर 17598 संभवतः एक प्लेन पाठ वर्ड के लिए खड़ा होगा जो इससे प्रारम्भ होता है ए या बी . कम से कम, सरल एक भाग कोड के लिए।


[[बागवानी (क्रिप्टोग्राफी)]] या कोडित संदेश में जानकारी डालने के लिए विभिन्न युक्तियों का उपयोग किया जा सकता है, उदाहरण के लिए किसी दुश्मन के खिलाफ किसी विशेष समय और स्थान पर छापा मारना, और फिर छापे के बाद भेजे गए कोड संदेशों की जांच करना। कोडिंग त्रुटियाँ किसी कोड में विशेष रूप से उपयोगी उंगली होती हैं; लोग विश्वसनीय रूप से गलतियाँ करते हैं, कभी-कभी विनाशकारी भी। डेटा प्लांट करना और त्रुटियों का दोहन सिफर के विरुद्ध भी काम करता है।
[[बागवानी (क्रिप्टोग्राफी)]] या कोडित मैसेज में जानकारी डालने के लिए विभिन्न युक्तियों का उपयोग किया जा सकता है, उदाहरण के लिए किसी दुश्मन के खिलाफ किसी विशेष समय और स्थान पर छापा मारना, और फिर छापे के बाद भेजे गए कोड मैसेजों की जांच करना। कोडिंग त्रुटियाँ किसी कोड में विशेष रूप से उपयोगी उंगली होती हैं; लोग विश्वसनीय रूप से गलतियाँ करते हैं, कभी-कभी विनाशकारी भी। डेटा प्लांट करना और त्रुटियों का दोहन सिफर के विरुद्ध भी काम करता है।


* किसी कोड को क्रैक करने का सबसे स्पष्ट और, सिद्धांत रूप में, कम से कम सबसे सरल तरीका रिश्वतखोरी, सेंधमारी या छापेमारी करने वाली पार्टियों के माध्यम से कोडबुक चुराना है - ऐसी प्रक्रियाएं जिन्हें कभी-कभी व्यावहारिक क्रिप्टोग्राफी वाक्यांश द्वारा महिमामंडित किया जाता है - और यह कोड और सिफर दोनों के लिए एक कमजोरी है। हालाँकि, कोडबुक आम तौर पर बड़ी होती हैं और सिफर [[कुंजी (क्रिप्टोग्राफी)]] की तुलना में अधिक समय तक उपयोग की जाती हैं। जबकि एक अच्छे कोड को तोड़ना सिफर की तुलना में कठिन हो सकता है, कोडबुक लिखने और वितरित करने की आवश्यकता गंभीर रूप से परेशानी वाली है।
* किसी कोड को क्रैक करने का सबसे स्पष्ट और, सिद्धांत रूप में, कम से कम सबसे सरल तरीका रिश्वतखोरी, सेंधमारी या छापेमारी करने वाली पार्टियों के माध्यम से कोडबुक चुराना है - ऐसी प्रक्रियाएं जिन्हें कभी-कभी व्यावहारिक क्रिप्टोग्राफी फ्रेज द्वारा महिमामंडित किया जाता है - और यह कोड और सिफर दोनों के लिए एक कमजोरी है। हालाँकि, कोडबुक सामान्यतः बड़ी होती हैं और सिफर [[कुंजी (क्रिप्टोग्राफी)]] की तुलना में अधिक समय तक उपयोग की जाती हैं। जबकि एक अच्छे कोड को तोड़ना सिफर की तुलना में कठिन हो सकता है, कोडबुक लिखने और डिस्ट्रीब्यूट करने की आवश्यकता गंभीर रूप से परेशानी वाली है।


एक नया कोड बनाना एक नई भाषा बनाने और उसके लिए एक शब्दकोश लिखने जैसा है; कंप्यूटर से पहले यह एक विशेष रूप से बड़ा काम था। यदि किसी कोड से छेड़छाड़ की जाती है, तो पूरा कार्य दोबारा करना होगा, और इसका मतलब क्रिप्टोग्राफर्स और कोड उपयोगकर्ताओं दोनों के लिए बहुत सारा काम है। व्यवहार में, जब कोड व्यापक उपयोग में थे, तो कोडब्रेकर्स को निराश करने और चोरी या कॉपी की गई कोडबुक के उपयोगी जीवन को सीमित करने के लिए उन्हें आम तौर पर समय-समय पर बदल दिया जाता था।
एक नया कोड बनाना एक नई भाषा बनाने और उसके लिए एक वर्डकोश लिखने जैसा है; कंप्यूटर से पहले यह एक विशेष रूप से बड़ा काम था। यदि किसी कोड से छेड़छाड़ की जाती है, तो पूरा कार्य दोबारा करना होगा, और इसका अर्थ क्रिप्टोग्राफर्स और कोड उपयोगकर्ताओं दोनों के लिए बहुत सारा काम है। व्यवहार में, जब कोड व्यापक उपयोग में थे, तो कोडब्रेकर्स को निराश करने और चोरी या कॉपी की गई कोडबुक के उपयोगी जीवन को सीमित करने के लिए उन्हें सामान्यतः समय-समय पर बदल दिया जाता था।


एक बार कोड बन जाने के बाद, कोडबुक वितरण तार्किक रूप से अनाड़ी हो जाता है, और संभावना बढ़ जाती है कि कोड से समझौता किया जाएगा। एक कहावत है कि तीन लोग एक रहस्य रख सकते हैं यदि उनमें से दो मर चुके हों, (क्यू:बेंजामिन फ्रैंकलिन|बेंजामिन फ्रैंकलिन - विकीउद्धरण) और यद्यपि यह अतिशयोक्ति हो सकती है, एक रहस्य को बनाए रखना कठिन हो जाता है यदि इसे आपस में साझा किया जाए कई लोग। कोड को यथोचित रूप से सुरक्षित माना जा सकता है यदि उनका उपयोग केवल कुछ सावधान लोगों द्वारा किया जाता है, लेकिन यदि पूरी सेनाएं इसका उपयोग करती हैंकोडबुक, सुरक्षा बहुत अधिक कठिन हो जाती है।
एक बार कोड बन जाने के बाद, कोडबुक वितरण तार्किक रूप से अनाड़ी हो जाता है, और संभावना बढ़ जाती है कि कोड से समझौता किया जाएगा। एक कहावत है कि तीन लोग एक रहस्य रख सकते हैं यदि उनमें से दो मर चुके हों, (क्यू:बेंजामिन फ्रैंकलिन|बेंजामिन फ्रैंकलिन - विकीउद्धरण) और यद्यपि यह अतिशयोक्ति हो सकती है, एक रहस्य को बनाए रखना कठिन हो जाता है यदि इसे आपस में साझा किया जाए कई लोग। कोड को यथोचित रूप से सुरक्षित माना जा सकता है यदि उनका उपयोग केवल कुछ सावधान लोगों द्वारा किया जाता है, लेकिन यदि पूरी सेनाएं इसका उपयोग करती हैंकोडबुक, सुरक्षा बहुत अधिक कठिन हो जाती है।


इसके विपरीत, सिफर की सुरक्षा आम तौर पर सिफर कुंजियों की सुरक्षा पर निर्भर होती है। सिफर कुंजियाँ चुराई जा सकती हैं और लोग उनके साथ विश्वासघात कर सकते हैं, लेकिन उन्हें बदलना और वितरित करना बहुत आसान है।
इसके विपरीत, सिफर की सुरक्षा सामान्यतः सिफर कुंजियों की सुरक्षा पर निर्भर होती है। सिफर कुंजियाँ चुराई जा सकती हैं और लोग उनके साथ विश्वासघात कर सकते हैं, लेकिन उन्हें बदलना और डिस्ट्रीब्यूट करना बहुत आसान है।


== सुपरएन्सिफ़ेरमेंट ==
== सुपरएन्सिफ़ेरमेंट ==
क्रिप्टोएनालिसिस की कठिनाई को बढ़ाने के लिए किसी संदेश को पहले एन्कोड करने के बाद उसे एन्क्रिप्ट करना आम बात थी। एक संख्यात्मक कोड के साथ, यह आमतौर पर एक एडिटिव के साथ किया जाता था - बस एक लंबी कुंजी संख्या जिसे कोड समूहों में अंक-दर-अंक जोड़ा जाता था, मॉड्यूलो 10। कोडबुक के विपरीत, एडिटिव्स को बार-बार बदला जाएगा। प्रसिद्ध जापानी नौसेना कोड, [[जेएन-25]], इसी डिज़ाइन का था।
क्रिप्टोएनालिसिस की कठिनाई को बढ़ाने के लिए किसी मैसेज को पहले एन्कोड करने के बाद उसे एन्क्रिप्ट करना आम बात थी। एक संख्यात्मक कोड के साथ, यह आमतौर पर एक एडिटिव के साथ किया जाता था - बस एक लंबी कुंजी संख्या जिसे कोड ग्रुप में नंबर-दर-नंबर जोड़ा जाता था, मॉड्यूलो 10। कोडबुक के विपरीत, एडिटिव्स को बार-बार बदला जाएगा। प्रसिद्ध जापानी नौसेना कोड, [[जेएन-25]], इसी डिज़ाइन का था।


==संदर्भ==
==संदर्भ==

Revision as of 15:24, 7 August 2023

ब्रिटिश नौसेना खुफिया कोडब्रेकर्स द्वारा डिक्रिप्ट किया गया ज़िम्मरमैन टेलीग्राम का एक भाग। एरिज़ोना वर्ड जर्मन कोडबुक में नहीं था और इसलिए इसे ध्वन्यात्मक वर्ड में विभाजित किया जाना था।
द्वितीय विश्व युद्ध की सोवियत केजीबी की दो-भाग वाली कोडबुक के पन्ने आंशिक रूप से जल गए

क्रिप्टोलॉजी में, एक कोड एक मैसेज को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली एक विधि है जो अर्थ के लेवल पर संचालित होती है; यानी वर्डों या फ्रेजों को किसी और चीज़ में बदल दिया जाता है। एक कोड परिवर्तन को सीवीजीडीके या कॉकटेल लाउंज में बदल सकता है। अमेरिकी नेशनल सिक्योरिटी एजेंसी ने एक कोड को एक सब्स्टिट्यूशन क्रिप्टोसिस्टम के रूप में परिभाषित किया है जिसमें प्लेन टेक्स्ट तत्व मुख्य रूप से वर्ड, फ्रेज या वाक्य होते हैं, और कोड एक्विवैलेंट्स (जिन्हें कोड समूह कहा जाता है) में सामान्यतः वर्ड या नंबर (या दोनों) होते हैं अन्यथा समान लंबाई के अर्थहीन संयोजन होते हैं। [1]: Vol I, p. 12  फ्रेजों या वर्डों को एन्क्रिप्ट और डिक्रिप्ट करने के लिए एक कोडबुक की आवश्यकता होती है।

इसके विपरीत, सिफर इंडिविजुअल वर्ड, या वर्ड के छोटे ग्रुप, या यहां तक ​​कि, मॉडर्न सिफर, व्यक्तिगत बिट के स्तर पर मैसेजों को एन्क्रिप्ट करते हैं। मैसेजों को पहले एक कोड द्वारा और फिर एक सिफर द्वारा ट्रांसफॉर्म किया जा सकता है। [2] इस तरह के एकाधिक कूटलेखन, या सुपरएन्क्रिप्शन का ऐम क्रिप्टोएनालिसिस को और अधिक कठिन बनाना है।

कोड और सिफर के बीच एक और तुलना यह है कि एक कोड सामान्यतः गणित के उपयोग के बिना सीधे एक वर्ड या वर्ड ग्रुप का प्रतिनिधित्व करता है। इस प्रकार संख्याओं को इन तीन वैल्यू का प्रतिनिधित्व करने के लिए कॉन्फ़िगर किया गया है: 1001 = A, 1002 = B, 1003 = C, ...। रीसलटिंग मैसेज, एबीसी को कम्यूनिकेट करने के लिए 1001 1002 1003 होगा। हालाँकि, सिफर वर्ड या वर्ड के ग्रुप को रिप्रेजेंट करने के लिए मैथमेटिकल फार्मूला का उपयोग करते हैं। उदाहरण के लिए, A = 1, B = 2, C = 3, ....। इस प्रकार प्रत्येक वर्ड के ग्रुप को 13 से मल्टिप्लाय करने पर मैसेज एबीसी प्राप्त होता है। तब मैसेज एबीसी 13 26 39 होगा।

कोड में कई तरह की ड्रॉबैक हैं, जिनमें क्रिप्ट एनालिसिस के प्रति ससेप्टिबिलिटी और क्युम्बरसम कोडबुक को प्रबंधित करने की कठिनाई सम्मिलित है, इसलिए सिफर अब मॉडर्न क्रिप्टोग्राफी में डोमिनेंट तकनीक है।

इसके विपरीत, क्योंकि कोड रीप्रेसेंटेशनल होते हैं, वे व्यक्तिगत कोडबुक एलिमेंट के मैथमेटिकल एनालिसिस के लिए सससेपटिबल नहीं होते हैं। उदाहरण में, मैसेज 13 26 39 को प्रत्येक संख्या को 13 से विभाजित करके और फिर उन्हें वर्णानुक्रम में क्रमबद्ध करके क्रैक किया जा सकता है। हालाँकि, कोडबुक क्रिप्टोएनालिसिस का फोकस आवृत्ति एनालिसिस का उपयोग करके प्लेन टेक्स्ट मैसेजों के भीतर वर्ड की समान आवृत्ति से मेल खाने वाले व्यक्तिगत कोड एलिमेंट की तुलनात्मक आवृत्ति है। उपरोक्त उदाहरण में, कोड समूह, 1001, 1002, 1003, एक से अधिक बार आ सकता है और वह आवृत्ति प्लेन पाठ मैसेजों में एबीसी होने की संख्या से मेल खा सकती है।

(अतीत में, या नॉन-टेक्निकल कॉन्टेक्स्ट में, कोड और सिफर का उपयोग प्रायः एन्क्रिप्शन के किसी भी रूप को संदर्भित करने के लिए किया जाता है)।

एक-और दो-भाग कोड

कोड को कोडबुक (भौतिक या काल्पनिक) द्वारा परिभाषित किया जाता है, जो उनके करेस्पोंडिंग प्लेनटेक्सट के साथ सूचीबद्ध कोडग्रुप के वर्डकोश होते हैं। कोड में मूल रूप से डिज़ाइन किए गए कोड या एनकोडर की कन्वीनिएंस के लिए 'प्लेनटेक्स्ट ऑर्डर' में कोडग्रूप निर्दिष्ट किए गए थे। उदाहरण के लिए, संख्यात्मक कोडग्रुप का उपयोग करने वाले कोड में, a से प्रारम्भ होने वाले प्लेन टेक्स्ट वर्ड में लो-वैल्यू वाला समूह होगा, जबकि z से प्रारम्भ होने वाले वर्ड में हाई-वैल्यू वाला समूह होगा। एक ही कोडबुक का उपयोग एक प्लेनटेक्स्ट मैसेज को एक कोडित मैसेज या कोडटेक्स्ट में एनकोड करने के लिए किया जा सकता है, और एक कोडटेक्स्ट को वापस प्लेनटेक्स्ट मैसेज में डीकोड करने के लिए किया जा सकता है।

कोडब्रेकर्स के जीवन को और अधिक कठिन बनाने के लिए, कोडमेकर्स ने ऐसे कोड डिज़ाइन किए, जिनमें कोडग्रुप और मिलान वाले प्लेनटेक्स्ट के क्रम के बीच कोई प्रेडिक्टेबल रिलेशनशिप नहीं था। प्रैक्टिस में, इसका अर्थ यह था कि अब दो कोडबुक की आवश्यकता थी, एक एन्कोडिंग के लिए कोडग्रुप खोजने के लिए, दूसरा डिकोडिंग के लिए प्लेनटेक्स्ट खोजने के लिए कोडग्रुप देखने के लिए। ऐसे दो-भाग वाले कोड को डेवलप करने के लिए अधिक प्रयास की आवश्यकता होती है, और डिस्ट्रीब्यूट करने (और प्रतिस्थापित होने पर सुरक्षित रूप से त्यागने) के लिए दोगुने प्रयास की आवश्यकता होती है, लेकिन उन्हें तोड़ना कठिन होता है। जनवरी 1917 में ज़िम्मरमैन टेलीग्राम ने जर्मन राजनयिक 0075 दो-भाग कोड प्रणाली का उपयोग किया जिसमें 10,000 से अधिक फ्रेज और व्यक्तिगत वर्ड सम्मिलित थे। [3]


एक बार का कोड

वन-टाइम कोड एक प्रीअरेंज्ड वर्ड, फ्रेज या सिंबल है जिसका उपयोग एक सिंपल मैसेज देने के लिए केवल एक बार किया जाता है, जो प्रायः किसी प्लान को एक्सीक्यूट करने या अबो्र्ट करने या यह कन्फर्म करने के लिए संकेत होता है कि यह सफल या विफल हो गया है। एक-बार के कोड प्रायः एक इनोसेंट कन्वर्सेशन में सम्मिलित करने के लिए डिज़ाइन किए जाते हैं। ठीक से किए जाने पर उनका पता लगाना लगभग असंभव है, हालांकि एक ट्रेन्ड एनालिस्ट जो पहले से ही सस्पिशन अराउस कर चुके किसी व्यक्ति के कम्युनिकेशन को मॉनिटर कर रहा है, वह आंटी बर्था को लेबर पेन में जाने जैसी टिप्पणी को एक ओमिनस मीनिंग के रूप में पहचानने में सक्षम हो सकता है। एक बार कोड के फेमस एक्साम्पल में सम्मिलित हैं:

  • बाइबिल में, जोनाथन (1 सैमुअल) राजा डेविड के साथ एक कोड को प्रीअर्रेंज करता है, जो जोनाथन के पिता, राजा शाऊल से छिप रहा है। यदि, आर्चरी प्रैक्टिस के दौरान, जोनाथन तीर निकाल रहे नौकर से कहता है कि तीर तुम्हारे इस तरफ हैं, तो डेविड के लिए कोर्ट में लौटना सेफ है, यदि आदेश है कि तीर तुम्हारे पार हैं, तो डेविड को भागना होगा।[4]
  • वन इफ बी लैंड; टू इफ बाई सी (पोएम) हेनरी वड्सवर्थ लॉन्गफेलो की पोएम में पॉल रीवेरे राइड प्रसिद्ध हुई
  • क्लाइंब माउंट नियतका नीताका - जापानी विवैल्यू को पर्ल हार्बर परअटैक प्रारम्भ करने का संकेत
  • वर्ल्ड वॉर II के दौरान ब्रिटिश ब्रॉडकास्टिंग कॉर्पोरेशन की विदेशी सर्विस में प्रायः रेडियो लॉन्ड्रेस कोडित मैसेजों को अपने रेग्युलर ब्रॉडकास्ट कार्यक्रम के हिस्से के रूप में सम्मिलित किया जाता था। एनाउंसर द्वारा पढ़े जाने वाले मैसेजों की प्रतीत होने वाली नोंसेंसिकल स्ट्रीम वास्तव में एनिमी लाइन के पीछे काम करने वाले स्पेशल ऑपरेशन्स एग्जीक्यूटिव (एसओई) एजेंटों के लिए एक बार के कोड थे। एक उदाहरण यह हो सकता है कि "द प्रिंसेस वेअर्स रेड शूज" या "मिमी कैट इज़ अस्लीप अंडर द टेबल"। प्रत्येक कोड मैसेज को दो बार पढ़ा गया। ऐसे तरीकों से, फ्रांसीसी रेजिस्टेंस को डी-डे से एक रात पहले रेल और अन्य ट्रांसपोर्ट लिंक में सबोटैगिंग प्रारम्भ करने का निर्देश दिया गया था।
  • पूरे स्पेन में, आसमान साफ ​​है, यह 17 जुलाई, 1936 को स्पेनिश वॉर के फैलने का संकेत था (रेडियो पर प्रसारित)।

कभी-कभी मैसेज प्रीअरेंज्ड नहीं होते हैं और शेयर्ड नॉलेज पर निर्भर होते हैं, जो संभवतः केवल रीसिपिएंट को ज्ञात होता है। एक उदाहरण अमेरिकी राष्ट्रपति हैरी ट्रूमैन को भेजा गया टेलीग्राम है, फिर पॉट्सडैम सम्मेलन में सोवियत प्रधान मंत्री जोसेफ स्टालिन से मिलने के लिए, ट्रूमैन को एटॉमिक बॉम्ब के ट्रिनिटी टेस्ट के बारे में सूचित किया गया।

आज सुबह ऑपरेशन किया गया। डायग्नोसिस अभी तक पूरा नहीं हुआ है लेकिन परिणाम सैटिस्फैक्टरी लग रहे हैं और पहले से ही अपेक्षाओं से अधिक हैं। स्थानीय प्रेस विज्ञप्ति आवश्यक है क्योंकि इंटरेस्ट काफी दूर तक फैला हुआ है। वह कल लौटेगा. मैं तुम्हें पोस्टेड रखूँगा।

वन-टाइम पैड, एक अनरिलेटेड साइफर एल्गोरिथम भी देखें

इडियट कोड

इडियट कोड एक ऐसा कोड है जो इसका उपयोग करने वाली पार्टियों द्वारा बनाया जाता है। इस प्रकार का संचार क्षेत्र में सेनाओं द्वारा उपयोग किए जाने वाले हैंड सिग्नल के समान है।

उदाहरण: कोई भी वाक्य जहां 'डे' और 'नाईट' का उपयोग किया जाता है उसका अर्थ 'अटैक' है। निम्नलिखित वाक्य में उल्लिखित स्थान अटैक किए जाने वाले स्थान को निर्दिष्ट करता है।

  • प्लेन टेक्स्ट: अटैक एक्स।
  • कोडटेक्स्ट: हम दिन-रात सड़कों पर घूमते रहे लेकिन वह नहीं मिला! कल हम एक्स में जाएंगे।

ऐसा प्रतीत होता है कि इस वर्ड का प्रारंभिक उपयोग साइंस फिक्शन बुक शुक्रवार (उपन्यास) के एक पात्र जॉर्ज पेरौल्ट द्वारा किया गया था। [5] रॉबर्ट ए. हेनलेन द्वारा:

सबसे सरल प्रकार [कोड का] और इसे तोड़ना इम्पॉसिबल है। पहले ऐड में संबंधित व्यक्ति या व्यक्तियों को नंबर सात को आगे बढ़ाने या नंबर सात की अपेक्षा करने के लिए कहा गया था या इसमें सात के रूप में निर्दिष्ट किसी चीज़ के बारे में कुछ कहा गया था। यह कोड आइटम नंबर दस के संबंध में भी यही कहता है। लेकिन संख्याओं का अर्थ सांख्यिकीय एनालिसिस के माध्यम से नहीं निकाला जा सकता है क्योंकि उपयोगी सांख्यिकीय यूनिवर्स तक पहुंचने से बहुत पहले कोड को बदला जा सकता है। यह एक इडियट कोड है... और एक इडियट कोड कभी नहीं तोड़ा जा सकता, अगर उपयोगकर्ता को बार-बार कुएं में न जाने की गुड सेंस हो।

टेररिज्म विशेषज्ञ मैग्नस रैनस्टॉर्प ने कहा कि संयुक्त राज्य अमेरिका पर 11 सितंबर के अटैक को अंजाम देने वाले लोगों ने अपनी योजनाओं पर चर्चा करने के लिए बुनियादी ई-मेल और जिसे वह इडियट कोड कहते हैं, उसका उपयोग किया था।[6]

क्रिप्टएनालिसिस कोड्स

जबकि एक मोनोअल्फाबेटिक सब्स्टिट्यूशन सिफर को सॉल्व करना आसान है, एक सिंपल कोड को भी सॉल्व करना कठिन है। किसी कोडित मैसेज को डिक्रिप्ट करना किसी विदेशी भाषा में लिखे गए डॉक्यूमेंट का अनुवाद करने की प्रयास करने जैसा है, जिसमें मूल रूप से कोड ग्रुप और उनके द्वारा दर्शाए गए प्लेन वर्डों का एक कोडग्रूप बनाना सम्मिलित है।

क सिंपल कोड पर फिंगरहोल्ड तथ्य यह है कि कुछ वर्ड दूसरों की तुलना में अधिक सामान्य हैं, जैसे कि अंग्रेजी में या। टेलीग्राफिक मैसेजों में, STOP (यानी, वाक्य या पैराग्राफ का अंत) के लिए कोडग्रुप आमतौर पर बहुत आम होता है। यह मैसेज की संरचना को वाक्यों के संदर्भ में परिभाषित करने में मदद करता है, न कि उनके अर्थ के रूप में, और यह क्रिप्टोएनालिटिक रूप से उपयोगी है।

एक ही कोड से एन्क्रिप्ट किए गए कई कोडटेक्स्ट एकत्र करके और फिर अन्य स्रोतों से जानकारी का उपयोग करके एक कोड के विरुद्ध आगे की प्रगति की जा सकती है

  • जासूस
  • समाचार पत्र
  • राजनयिक कॉकटेल पार्टी चैट
  • वह स्थान जहां से मैसेज भेजा गया था
  • जहां इसे भेजा जा रहा था (यानी, यातायात एनालिसिस)
  • मैसेज भेजे जाने का समय,
  • मैसेज भेजे जाने से पहले और बाद में होने वाली घटनाएँ
  • कोडित मैसेज भेजने वाले लोगों की सामान्य आदतें
  • वगैरह।

उदाहरण के लिए, एक विशेष कोडग्रुप लगभग विशेष रूप से किसी विशेष सेना के मैसेजों में पाया जाता है और कहीं नहीं, उस सेना के कमांडर को बहुत अच्छी तरह से इंगित कर सकता है। एक कोडग्रुप जो किसी विशेष स्थान पर हमले से पहले के मैसेजों में दिखाई देता है, वह उस स्थान के लिए बहुत अच्छा हो सकता है।

क्रिब (क्रिप्टएनालिसिस) कोडग्रुप की परिभाषाओं के लिए एक तत्काल रास्ता हो सकता है। जैसे-जैसे कोडसमूह निर्धारित होते हैं, वे धीरे-धीरे एक महत्वपूर्ण समूह का निर्माण कर सकते हैं, संदर्भ और शिक्षित अनुमान से अधिक से अधिक कोडसमूह सामने आते हैं। दो-भाग वाले कोड की तुलना में एक-भाग वाले कोड इस तरह के शिक्षित अनुमान के प्रति अधिक संवेदनशील होते हैं, क्योंकि यदि एक-भाग वाले कोड का कोड नंबर 26839 बुलडोजर के लिए निर्धारित किया जाता है, तो निचला कोड नंबर 17598 संभवतः एक प्लेन पाठ वर्ड के लिए खड़ा होगा जो इससे प्रारम्भ होता है ए या बी . कम से कम, सरल एक भाग कोड के लिए।

बागवानी (क्रिप्टोग्राफी) या कोडित मैसेज में जानकारी डालने के लिए विभिन्न युक्तियों का उपयोग किया जा सकता है, उदाहरण के लिए किसी दुश्मन के खिलाफ किसी विशेष समय और स्थान पर छापा मारना, और फिर छापे के बाद भेजे गए कोड मैसेजों की जांच करना। कोडिंग त्रुटियाँ किसी कोड में विशेष रूप से उपयोगी उंगली होती हैं; लोग विश्वसनीय रूप से गलतियाँ करते हैं, कभी-कभी विनाशकारी भी। डेटा प्लांट करना और त्रुटियों का दोहन सिफर के विरुद्ध भी काम करता है।

  • किसी कोड को क्रैक करने का सबसे स्पष्ट और, सिद्धांत रूप में, कम से कम सबसे सरल तरीका रिश्वतखोरी, सेंधमारी या छापेमारी करने वाली पार्टियों के माध्यम से कोडबुक चुराना है - ऐसी प्रक्रियाएं जिन्हें कभी-कभी व्यावहारिक क्रिप्टोग्राफी फ्रेज द्वारा महिमामंडित किया जाता है - और यह कोड और सिफर दोनों के लिए एक कमजोरी है। हालाँकि, कोडबुक सामान्यतः बड़ी होती हैं और सिफर कुंजी (क्रिप्टोग्राफी) की तुलना में अधिक समय तक उपयोग की जाती हैं। जबकि एक अच्छे कोड को तोड़ना सिफर की तुलना में कठिन हो सकता है, कोडबुक लिखने और डिस्ट्रीब्यूट करने की आवश्यकता गंभीर रूप से परेशानी वाली है।

एक नया कोड बनाना एक नई भाषा बनाने और उसके लिए एक वर्डकोश लिखने जैसा है; कंप्यूटर से पहले यह एक विशेष रूप से बड़ा काम था। यदि किसी कोड से छेड़छाड़ की जाती है, तो पूरा कार्य दोबारा करना होगा, और इसका अर्थ क्रिप्टोग्राफर्स और कोड उपयोगकर्ताओं दोनों के लिए बहुत सारा काम है। व्यवहार में, जब कोड व्यापक उपयोग में थे, तो कोडब्रेकर्स को निराश करने और चोरी या कॉपी की गई कोडबुक के उपयोगी जीवन को सीमित करने के लिए उन्हें सामान्यतः समय-समय पर बदल दिया जाता था।

एक बार कोड बन जाने के बाद, कोडबुक वितरण तार्किक रूप से अनाड़ी हो जाता है, और संभावना बढ़ जाती है कि कोड से समझौता किया जाएगा। एक कहावत है कि तीन लोग एक रहस्य रख सकते हैं यदि उनमें से दो मर चुके हों, (क्यू:बेंजामिन फ्रैंकलिन|बेंजामिन फ्रैंकलिन - विकीउद्धरण) और यद्यपि यह अतिशयोक्ति हो सकती है, एक रहस्य को बनाए रखना कठिन हो जाता है यदि इसे आपस में साझा किया जाए कई लोग। कोड को यथोचित रूप से सुरक्षित माना जा सकता है यदि उनका उपयोग केवल कुछ सावधान लोगों द्वारा किया जाता है, लेकिन यदि पूरी सेनाएं इसका उपयोग करती हैंकोडबुक, सुरक्षा बहुत अधिक कठिन हो जाती है।

इसके विपरीत, सिफर की सुरक्षा सामान्यतः सिफर कुंजियों की सुरक्षा पर निर्भर होती है। सिफर कुंजियाँ चुराई जा सकती हैं और लोग उनके साथ विश्वासघात कर सकते हैं, लेकिन उन्हें बदलना और डिस्ट्रीब्यूट करना बहुत आसान है।

सुपरएन्सिफ़ेरमेंट

क्रिप्टोएनालिसिस की कठिनाई को बढ़ाने के लिए किसी मैसेज को पहले एन्कोड करने के बाद उसे एन्क्रिप्ट करना आम बात थी। एक संख्यात्मक कोड के साथ, यह आमतौर पर एक एडिटिव के साथ किया जाता था - बस एक लंबी कुंजी संख्या जिसे कोड ग्रुप में नंबर-दर-नंबर जोड़ा जाता था, मॉड्यूलो 10। कोडबुक के विपरीत, एडिटिव्स को बार-बार बदला जाएगा। प्रसिद्ध जापानी नौसेना कोड, जेएन-25, इसी डिज़ाइन का था।

संदर्भ

  1. A History of U.S. Communications Security; the David G. Boak Lectures Archived 2016-09-18 at the Wayback Machine, National Security Agency (NSA), Volumes I, 1973, Volumes II 1981, partially released 2008, additional portions declassified October 14, 2015
  2. "16.2: Substitution Ciphers". Mathematics LibreTexts (in English). 2020-01-22. Archived from the original on 2021-09-19. Retrieved 2021-09-19.
  3. "Zimmermann Telegram: The Original Draft" Archived 2021-04-27 at the Wayback Machine, 2007, Joachim von zur Gathen, "Cryptologia", Volume 31, Issue 1
  4. I Samuel 20:20-22
  5. Friday (1982) by Robert A. Heinlein
  6. Radio Free Europe / Radio Liberty: "Middle East: Islamic Militants Take Jihad To The Internet" By Jeffrey Donovan Archived 2008-01-15 at the Wayback Machine, 16 June 2004.


स्रोत

  • Kahn, David (1996). कोडब्रेकर्स: प्राचीन काल से इंटरनेट तक गुप्त संचार का व्यापक इतिहास. Scribner.
  • Pickover, Cliff (2000). क्रिप्टोरून्स: कोड और गुप्त लेखन. Pomegranate Communications. ISBN 978-0-7649-1251-1.
  • Boak, David G. (July 1973) [1966]. "Codes" (PDF). अमेरिकी संचार सुरक्षा का इतिहास; डेविड जी. बोक व्याख्यान, वॉल्यूम। मैं (2015 declassification review ed.). Ft. George G. Meade, MD: U.S. National Security Agency. pp. 21–32. Retrieved 2017-04-23.
  • प्रथम विश्व युद्ध के दौरान अमेरिकी अभियान बलों में अमेरिकी सेना फील्ड कोड, विलियम फ्रीडमैन, अमेरिकी युद्ध विभाग, जून 1942। अपने ऐप में कई उदाहरण प्रदर्शित करता है एंडिक्स, बेसबॉल कोड सहित (पृष्ठ 254)

यह भी देखें

श्रेणी:क्रिप्टोग्राफ़ी

यह:क्रिटोग्राफिया