क्रिप्टोलॉजी, क्रिप्टोग्राफी और क्रिप्ट एनालिसिस

अंतिम परियोजना लिखते समय आपको सैद्धांतिक ज्ञान की आवश्यकता होगी। आइए क्रिप्टोग्राफी और इसके घटक भागों के बारे में और जानें। और साथ ही, हम सिफर के बारे में और जानेंगे जिसका उपयोग आप अंतिम प्रोजेक्ट लिखते समय करेंगे।

1. क्रिप्टोलॉजी और इसके घटक भाग

क्रिप्टोलॉजी ज्ञान का एक क्षेत्र है जिसमें शामिल हैं:

  • क्रिप्टोग्राफी (सिफर का विज्ञान)।

    क्रिप्टोग्राफी जानकारी को अनधिकृत पहुंच से बचाने के लिए उसे एन्क्रिप्ट करने के बारे में है। यह जानकारी पाठ्य, एक डिजिटल छवि, एक ऑडियो संकेत आदि हो सकती है। एन्क्रिप्शन प्रक्रिया सूचना (डेटा) का एक एन्क्रिप्टेड संस्करण उत्पन्न करती है, जिसे सिफरटेक्स्ट या कोडटेक्स्ट कहा जाता है।

  • क्रिप्टएनालिसिस (इन सिफर को क्रैक करने के तरीके)।

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

2. क्रिप्टोग्राफिक कुंजी

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

क्रिप्टोग्राफ़िक कुंजियों का आकार बिट्स में मापा जाता है। और इसका मतलब है कि एक क्रिप्टोग्राफ़िक कुंजी की लंबाई होती है । 128 बिट्स की लंबाई के साथ अच्छी एन्क्रिप्शन शक्ति प्रदान की जाती है।

क्रिप्टोग्राफ़िक कुंजियों के प्रकार:

  1. सममित कुंजियाँ (गुप्त कुंजियाँ)। अप्रत्याशित रूप से, ऐसी कुंजियों का उपयोग सममित-कुंजी एल्गोरिदम के रूप में जाना जाता है। उनका मुख्य उद्देश्य क्रिप्टोग्राफ़िक ट्रांसफ़ॉर्मेशन (एन्क्रिप्शन/डिक्रिप्शन, संदेश प्रमाणीकरण कोड का सत्यापन) को आगे या पीछे करना है।

  2. असममित कुंजियाँ। वे असममित-कुंजी एन्क्रिप्शन एल्गोरिदम में उपयोग किए जाते हैं (उदाहरण के लिए, इलेक्ट्रॉनिक डिजिटल हस्ताक्षर की पुष्टि करते समय)।

चूंकि हम एक सममित-कुंजी एन्क्रिप्शन एल्गोरिथ्म के साथ काम करेंगे, हम यहां बहुत अधिक विस्तार में नहीं जाएंगे।

3. प्रतिस्थापन वर्णमाला

एक प्रतिस्थापन वर्णमाला वर्णों का एक पूरा सेट है जिसका उपयोग इनपुट वर्णों को एन्कोड करने के लिए किया जाता है।

4. क्रिप्ट विश्लेषण के लिए दृष्टिकोण

कई अलग-अलग क्रिप्टैनालिसिस दृष्टिकोण और विधियां हैं, यानी सिफर को क्रैक करने के तरीके।

हम उनमें से सबसे सरल का वर्णन करेंगे:

  1. ब्रूट फ़ोर्स (या ब्रूट फ़ोर्स सर्च) तब तक सभी संभव कुंजियों का प्रयास कर रहा है जब तक कि हमें सही कुंजी नहीं मिल जाती। इस पद्धति का लाभ इसकी सादगी है। नुकसान यह है कि यह बड़ी संख्या में संभावित चाबियों वाले सिफर के लिए उपयुक्त नहीं है।

  2. सांख्यिकीय डेटा पर आधारित क्रिप्ट विश्लेषण - इस दृष्टिकोण में, हम सिफरटेक्स्ट में विभिन्न वर्णों की घटना पर आंकड़े एकत्र करते हैं, और फिर हम प्लेनटेक्स्ट में विभिन्न वर्णों की आवृत्ति के आंकड़ों के आधार पर डिक्रिप्ट करते हैं।

    उदाहरण के लिए: हम जानते हैं कि अंग्रेजी ग्रंथों में अक्षर P की आवृत्ति 1.9% है। जैसा कि हम सिफरटेक्स्ट का विश्लेषण करते हैं, हम एक प्रतीक की तलाश करते हैं जो समान आवृत्ति के साथ होता है और फिर निष्कर्ष निकाला जाता है कि यह अक्षर P है।

    इस दृष्टिकोण का नुकसान इसकी विशिष्ट भाषा, लेखक और पाठ की शैली पर निर्भरता है।

5. सीज़र सिफर

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

एक सीज़र सिफर एक प्रतिस्थापन सिफर है जिसमें सादे पाठ में प्रत्येक वर्ण को एक ऐसे वर्ण द्वारा प्रतिस्थापित किया जाता है जो वर्णमाला में उसके बाईं या दाईं ओर कुछ स्थिर संख्या में होता है।

मान लीजिए कि हम शिफ्ट को 3 पर सेट करते हैं। इस मामले में, ए को डी से बदल दिया जाएगा, बी ई बन जाएगा, और इसी तरह।

यह थ्योरी की न्यूनतम मात्रा है जिसकी आपको अंतिम परियोजना को पूरा करने के लिए आवश्यकता होगी। कार्य विवरण पर चलते हैं!

जावा सिंटैक्स मॉड्यूल के लिए अंतिम परियोजना। चलो एक क्रिप्टानालाइज़र लिखते हैं

आपका काम एक प्रोग्राम लिखना है जो सीज़र सिफर के साथ काम करता है।

अपने क्रिप्टोग्राफ़िक वर्णमाला को अंग्रेजी वर्णमाला के सभी अक्षरों के साथ-साथ विराम चिह्नों (. , "" : - ! ? SPACE) से मिलकर बनाएं। यदि आपको ऐसे अक्षर मिलते हैं जो हमारे प्रतिस्थापन वर्णमाला का हिस्सा नहीं हैं, तो उन्हें छोड़ दें।

अनिवार्य जरूरतें

कार्यक्रम में 2 मोड होने चाहिए:

  1. एन्क्रिप्शन / डिक्रिप्शन। प्रोग्राम को दी गई क्रिप्टोग्राफ़िक कुंजी का उपयोग करके टेक्स्ट को एन्क्रिप्ट और डिक्रिप्ट करना चाहिए।

    प्रोग्राम को स्रोत टेक्स्ट वाली टेक्स्ट फ़ाइल का पथ प्राप्त करना चाहिए और संबंधित सिफरटेक्स्ट वाली फ़ाइल बनाना चाहिए।

  2. ब्रूट फ़ोर्स अटैक द्वारा क्रिप्ट विश्लेषण

    इस मोड में, प्रोग्राम को इनपुट टेक्स्ट फ़ाइल में निहित सिफरटेक्स्ट को क्रैक करना चाहिए।

    यदि उपयोगकर्ता क्रूर बल का चयन करता है, तो कार्यक्रम को स्वतंत्र रूप से संभावित कुंजियों की गणना करनी चाहिए, सही कुंजी का चयन करना चाहिए और पाठ को डिक्रिप्ट करना चाहिए।

    इस बारे में सोचें कि सही कुंजी को सफलतापूर्वक पहचानने के लिए प्रोग्राम को किन मानदंडों का उपयोग करना चाहिए। आपको शब्दों के बीच रिक्त स्थान या विराम चिह्नों के सही उपयोग पर ध्यान देने की आवश्यकता हो सकती है।

अतिरिक्त (वैकल्पिक) आवश्यकताएं

1. सांख्यिकीय विश्लेषण द्वारा क्रिप्ट विश्लेषण

उपयोगकर्ता को दो क्रिप्ट विश्लेषण विधियों में से एक को चुनने में सक्षम होना चाहिए। यदि उपयोगकर्ता सांख्यिकीय विश्लेषण मोड का चयन करता है, तो उपयोगकर्ता को सादे पाठ में एक अतिरिक्त पाठ फ़ाइल लोड करने के लिए संकेत दें, अधिमानतः उसी लेखक द्वारा और उसी शैली में। दूसरी फ़ाइल की सामग्री के आधार पर, प्रोग्राम को वर्णों की घटना पर आंकड़े संकलित करना चाहिए और फिर सिफरटेक्स्ट के क्रिप्टैनालिसिस करने के लिए इन आंकड़ों का उपयोग करने का प्रयास करना चाहिए।

2. यूजर इंटरफेस

अपने विवेक से उपयोगकर्ता के साथ बातचीत के लिए डायलॉग बॉक्स बनाएं। अगर वांछित है, तो आप स्विंग और जावाएफएक्स ग्राफिक फ्रेमवर्क का उपयोग कर सकते हैं।

अपने तैयार समाधान को एक सार्वजनिक गिट रिपॉजिटरी में अपलोड करें।

समूह के माध्यम से जाने पर परियोजना की जाँच की जाएगी