क्रिप्टोलॉजी, क्रिप्टोग्राफी आणि क्रिप्ट विश्लेषण

अंतिम प्रकल्प लिहिताना आपल्याला आवश्यक असलेल्या सैद्धांतिक ज्ञानाकडे जाऊ या. क्रिप्टोग्राफी आणि त्याचे घटक भाग याबद्दल अधिक जाणून घेऊ. आणि त्याच वेळी, अंतिम प्रकल्प लिहिताना तुम्ही वापरत असलेल्या सायफरबद्दल आम्ही अधिक जाणून घेऊ.

1. क्रिप्टोलॉजी आणि त्याचे घटक भाग

क्रिप्टोलॉजी हे ज्ञानाचे क्षेत्र आहे ज्यामध्ये हे समाविष्ट आहे:

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

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

  • क्रिप्टनालिसिस (या सिफर क्रॅक करण्याच्या पद्धती).

    क्रिप्टविश्लेषण सिफर तोडण्याच्या पद्धती आणि या पद्धती कशा लागू केल्या जाऊ शकतात याचे परीक्षण करते. दुसऱ्या शब्दांत, क्रिप्ट विश्लेषण हे व्यस्त कार्य करते, एनक्रिप्टेड माहितीला साध्या मजकुरात बदलण्याच्या पद्धतींचा अभ्यास करते.

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

की म्हणजे डेटाची निवड जी माहिती एन्क्रिप्ट आणि डिक्रिप्ट करण्यासाठी वापरली जाते. माहिती यशस्वीरित्या डिक्रिप्ट करण्याची क्षमता कोणती की वापरली जाते यावर अवलंबून असते. जर काही कारणास्तव एखादी की हरवली असेल तर डेटा डिक्रिप्ट करणे अशक्य होईल.

क्रिप्टोग्राफिक कीचा आकार बिट्समध्ये मोजला जातो. आणि याचा अर्थ क्रिप्टोग्राफिक की ला लांबी असते . 128 बिट्सच्या लांबीसह चांगले एन्क्रिप्शन सामर्थ्य प्रदान केले आहे.

क्रिप्टोग्राफिक कीचे प्रकार:

  1. सिमेट्रिक की (गुप्त कळा). आश्चर्याची गोष्ट नाही की, अशा की ज्या सिमेट्रिक-की अल्गोरिदम म्हणून ओळखल्या जातात त्यामध्ये वापरल्या जातात. त्यांचा मुख्य उद्देश क्रिप्टोग्राफिक परिवर्तने (एनक्रिप्शन/डिक्रिप्शन, संदेश प्रमाणीकरण कोडची पडताळणी) फॉरवर्ड किंवा रिव्हर्स करणे हा आहे.

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

आम्ही सिमेट्रिक-की एनक्रिप्शन अल्गोरिदमसह कार्य करणार असल्याने, आम्ही येथे जास्त तपशीलात जाणार नाही.

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

प्रतिस्थापन वर्णमाला हा इनपुट वर्ण एन्कोड करण्यासाठी वापरल्या जाणार्‍या वर्णांचा संपूर्ण संच आहे.

4. क्रिप्टविश्लेषणासाठी दृष्टीकोन

अनेक भिन्न क्रिप्ट विश्लेषण पध्दती आणि पद्धती आहेत, म्हणजे सिफर क्रॅक करण्याचे मार्ग.

आम्ही त्यापैकी सर्वात सोप्याचे वर्णन करू:

  1. ब्रूट फोर्स (किंवा ब्रूट फोर्स सर्च) आम्हाला योग्य शोध लागेपर्यंत सर्व संभाव्य कळांचा प्रयत्न करत आहे. या पद्धतीचा फायदा म्हणजे त्याची साधेपणा. गैरसोय असा आहे की मोठ्या संख्येने संभाव्य की समाविष्ट असलेल्या सायफरसाठी ते योग्य नाही.

  2. सांख्यिकीय डेटावर आधारित क्रिप्टविश्लेषण - या दृष्टिकोनामध्ये, आम्ही सिफरटेक्स्टमधील भिन्न वर्णांच्या घटनेवर आकडेवारी गोळा करतो आणि नंतर आम्ही प्लेनटेक्स्टमधील भिन्न वर्णांच्या वारंवारतेच्या आकडेवारीवर आधारित डिक्रिप्ट करतो.

    उदाहरणार्थ: आम्हाला माहित आहे की इंग्रजी मजकुरात P अक्षराची वारंवारता 1.9% आहे. आपण सिफरटेक्स्टचे विश्लेषण करत असताना, आपण समान वारंवारतेसह उद्भवणारे चिन्ह शोधतो आणि नंतर निष्कर्ष काढतो की ते अक्षर P आहे.

    या दृष्टिकोनाचा तोटा म्हणजे मजकूराची विशिष्ट भाषा, लेखक आणि शैली यावर अवलंबून असणे.

5. सीझर सिफर

ही सर्वात सोपी आणि सर्वात प्रसिद्ध एन्क्रिप्शन पद्धतींपैकी एक आहे. त्याचे नाव, अर्थातच, सम्राट गायस ज्युलियस सीझरकडून आले आहे, ज्याने सेनापतींशी गुप्तपणे पत्रव्यवहार करण्यासाठी ही पद्धत वापरली.

सीझर सायफर हा एक प्रतिस्थापन सिफर आहे ज्यामध्ये प्लेनटेक्स्टमधील प्रत्येक वर्ण एका वर्णाने बदलला जातो जो वर्णमालामध्ये त्याच्या डावीकडे किंवा उजवीकडे काही स्थिर क्रमांक असतो.

समजा आपण शिफ्ट 3 वर सेट केली आहे. या प्रकरणात, A ची जागा D ने घेतली जाईल, B E होईल, आणि असेच.

अंतिम प्रकल्प पूर्ण करण्यासाठी आपल्याला आवश्यक असलेल्या सिद्धांताची ही किमान रक्कम आहे. चला कार्य वर्णनाकडे जाऊया!

जावा सिंटॅक्स मॉड्यूलसाठी अंतिम प्रकल्प. चला एक क्रिप्टनालायझर लिहू

तुमचे कार्य सीझर सिफरसह कार्य करणारा प्रोग्राम लिहिणे आहे.

तुमच्या क्रिप्टोग्राफिक वर्णमालामध्ये इंग्रजी वर्णमालेतील सर्व अक्षरे तसेच विरामचिन्हे (. , ”” :-! ? SPACE) असू द्या. आमच्या प्रतिस्थापन वर्णमालाचा भाग नसलेली वर्ण तुम्हाला आढळल्यास, त्यांना वगळा.

अनिवार्य आवश्यकता

प्रोग्राममध्ये 2 मोड असावेत:

  1. एन्क्रिप्शन/डिक्रिप्शन. प्रोग्रामने दिलेल्या क्रिप्टोग्राफिक की वापरून मजकूर एन्क्रिप्ट आणि डिक्रिप्ट करणे आवश्यक आहे.

    प्रोग्रामला स्त्रोत मजकूर असलेल्या मजकूर फाइलचा मार्ग प्राप्त झाला पाहिजे आणि संबंधित सिफरटेक्स्ट असलेली फाइल तयार केली पाहिजे.

  2. क्रूट फोर्स हल्ल्याद्वारे क्रिप्ट विश्लेषण

    या मोडमध्ये, प्रोग्रामने इनपुट मजकूर फाईलमध्ये असलेले सिफरटेक्स्ट क्रॅक करणे आवश्यक आहे.

    जर वापरकर्त्याने ब्रूट फोर्स निवडले, तर प्रोग्रामने संभाव्य की स्वतंत्रपणे मोजणे आवश्यक आहे, योग्य की निवडणे आणि मजकूर डिक्रिप्ट करणे आवश्यक आहे.

    योग्य की यशस्वीरित्या ओळखण्यासाठी प्रोग्रामने कोणते निकष वापरावे याचा विचार करा. तुम्हाला शब्दांमधील मोकळी जागा किंवा विरामचिन्हांचा योग्य वापर याकडे लक्ष द्यावे लागेल.

अतिरिक्त (पर्यायी) आवश्यकता

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

वापरकर्ता दोन क्रिप्ट विश्लेषण पद्धतींपैकी एक निवडण्यास सक्षम असावा. वापरकर्त्याने सांख्यिकीय विश्लेषण मोड निवडल्यास, वापरकर्त्याला एक अतिरिक्त मजकूर फाइल साध्या मजकुरात लोड करण्यास सांगा, शक्यतो त्याच लेखकाद्वारे आणि त्याच शैलीत. दुसर्‍या फाईलच्या सामग्रीवर आधारित, प्रोग्रामने वर्णांच्या घटनेवर आकडेवारी संकलित केली पाहिजे आणि नंतर ही आकडेवारी वापरून सिफरटेक्स्टचे क्रिप्ट विश्लेषण करण्याचा प्रयत्न केला पाहिजे.

2. वापरकर्ता इंटरफेस

तुमच्या विवेकबुद्धीनुसार वापरकर्त्याशी संवाद साधण्यासाठी डायलॉग बॉक्स बनवा. इच्छित असल्यास, तुम्ही स्विंग आणि JavaFX ग्राफिक फ्रेमवर्क वापरू शकता.

तुमचे तयार झालेले समाधान सार्वजनिक Git रेपॉजिटरीमध्ये अपलोड करा.

हा प्रकल्प गटातून गेल्यावर तपासला जाईल