ক্রিপ্টোলজি, ক্রিপ্টোগ্রাফি এবং ক্রিপ্টো বিশ্লেষণ

চূড়ান্ত প্রকল্পটি লেখার সময় আপনার যে তাত্ত্বিক জ্ঞানের প্রয়োজন হবে তা নিয়ে আসুন। আসুন ক্রিপ্টোগ্রাফি এবং এর উপাদান অংশ সম্পর্কে আরও শিখি। এবং একই সময়ে, চূড়ান্ত প্রকল্প লেখার সময় আপনি যে সাইফারটি ব্যবহার করবেন সে সম্পর্কে আমরা আরও জানব।

1. ক্রিপ্টোলজি এবং এর উপাদান অংশ

ক্রিপ্টোলজি হল জ্ঞানের একটি ক্ষেত্র যাতে রয়েছে:

  • ক্রিপ্টোগ্রাফি (সাইফারের বিজ্ঞান)।

    ক্রিপ্টোগ্রাফি হল অননুমোদিত অ্যাক্সেস থেকে রক্ষা করার জন্য তথ্য এনক্রিপ্ট করা। এই তথ্যগুলি পাঠ্য, একটি ডিজিটাল চিত্র, একটি অডিও সংকেত ইত্যাদি হতে পারে৷ এনক্রিপশন প্রক্রিয়া তথ্যের (ডেটা) একটি এনক্রিপ্ট করা সংস্করণ তৈরি করে, যাকে সাইফারটেক্সট বা কোডটেক্সট বলা হয়।

  • Cryptanalysis (এই সাইফারগুলি ক্র্যাক করার পদ্ধতি)।

    ক্রিপ্টানালাইসিস সাইফার ভাঙ্গার পদ্ধতি এবং এই পদ্ধতিগুলি কীভাবে প্রয়োগ করা যেতে পারে তা পরীক্ষা করে। অন্য কথায়, ক্রিপ্টানালাইসিস বিপরীত কাজ সম্পাদন করে, এনক্রিপ্ট করা তথ্যকে প্লেইনটেক্সটে পরিণত করার উপায় অধ্যয়ন করে।

2. ক্রিপ্টোগ্রাফিক কী

একটি কী হল ডেটার একটি নির্বাচন যা তথ্য এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হয়। সফলভাবে তথ্য ডিক্রিপ্ট করার ক্ষমতা নির্ভর করে কোন কী ব্যবহার করা হয়েছে তার উপর। যদি কোন কারণে একটি কী হারিয়ে যায়, তাহলে ডেটা ডিক্রিপ্ট করা অসম্ভব হবে।

ক্রিপ্টোগ্রাফিক কীগুলির আকার বিটগুলিতে পরিমাপ করা হয়। এবং এর মানে হল যে একটি ক্রিপ্টোগ্রাফিক কী একটি দৈর্ঘ্য আছে । 128 বিটের দৈর্ঘ্যের সাথে ভাল এনক্রিপশন শক্তি সরবরাহ করা হয়।

ক্রিপ্টোগ্রাফিক কীগুলির প্রকার:

  1. সিমেট্রিক কী (গোপন কী)। আশ্চর্যজনকভাবে, এই ধরনের কীগুলি সিমেট্রিক-কী অ্যালগরিদম হিসাবে পরিচিত। তাদের মূল উদ্দেশ্য হল ফরওয়ার্ড বা রিভার্স ক্রিপ্টোগ্রাফিক রূপান্তর (এনক্রিপশন/ডিক্রিপশন, বার্তা প্রমাণীকরণ কোড যাচাই)।

  2. অপ্রতিসম কী। এগুলি অ্যাসিমেট্রিক-কী এনক্রিপশন অ্যালগরিদমে ব্যবহার করা হয় (উদাহরণস্বরূপ, একটি ইলেকট্রনিক ডিজিটাল স্বাক্ষর যাচাই করার সময়)।

যেহেতু আমরা একটি সিমেট্রিক-কী এনক্রিপশন অ্যালগরিদম নিয়ে কাজ করব, তাই আমরা এখানে খুব বেশি বিস্তারিত বলব না।

3. প্রতিস্থাপন বর্ণমালা

একটি প্রতিস্থাপন বর্ণমালা হল ইনপুট অক্ষর এনকোড করতে ব্যবহৃত অক্ষরের একটি সম্পূর্ণ সেট।

4. ক্রিপ্টানালাইসিসের পদ্ধতি

অনেকগুলি বিভিন্ন ক্রিপ্টানালাইসিস পন্থা এবং পদ্ধতি রয়েছে, যেমন সাইফারগুলি ক্র্যাক করার উপায়।

আমরা তাদের সবচেয়ে সহজ বর্ণনা করব:

  1. ব্রুট ফোর্স (বা ব্রুট ফোর্স সার্চ) সব সম্ভাব্য কী চেষ্টা করছে যতক্ষণ না আমরা সঠিকটি খুঁজে পাচ্ছি। এই পদ্ধতির সুবিধা হল এর সরলতা। অসুবিধা হল যে এটি সম্ভাব্য কীগুলির একটি বড় সংখ্যা জড়িত সাইফারের জন্য উপযুক্ত নয়।

  2. পরিসংখ্যানগত তথ্যের উপর ভিত্তি করে ক্রিপ্ট বিশ্লেষণ — এই পদ্ধতিতে, আমরা সাইফারটেক্সটে বিভিন্ন অক্ষরের ঘটনার পরিসংখ্যান সংগ্রহ করি এবং তারপরে আমরা প্লেইনটেক্সটে বিভিন্ন অক্ষরের সংঘটনের কম্পাঙ্কের পরিসংখ্যানের উপর ভিত্তি করে ডিক্রিপ্ট করি।

    উদাহরণস্বরূপ: আমরা জানি যে ইংরেজি পাঠে P অক্ষরের ফ্রিকোয়েন্সি 1.9%। আমরা সাইফারটেক্সট বিশ্লেষণ করার সময়, আমরা একই কম্পাঙ্কের সাথে ঘটে এমন একটি চিহ্নের সন্ধান করি এবং তারপরে উপসংহারে পৌঁছাই যে এটি P অক্ষর।

    এই পদ্ধতির অসুবিধা হল পাঠ্যের নির্দিষ্ট ভাষা, লেখক এবং শৈলীর উপর নির্ভরতা।

5. সিজার সাইফার

এটি সবচেয়ে সহজ এবং সবচেয়ে সুপরিচিত এনক্রিপশন পদ্ধতিগুলির মধ্যে একটি। এর নাম, অবশ্যই, সম্রাট গাইয়াস জুলিয়াস সিজার থেকে এসেছে, যিনি জেনারেলদের সাথে গোপনে চিঠিপত্রের জন্য এই পদ্ধতিটি ব্যবহার করেছিলেন।

একটি সিজার সাইফার হল একটি প্রতিস্থাপন সাইফার যেখানে প্লেইনটেক্সটের প্রতিটি অক্ষর একটি অক্ষর দ্বারা প্রতিস্থাপিত হয় যা বর্ণমালায় তার বাম বা ডানে অবস্থানের কিছু ধ্রুবক সংখ্যা।

ধরা যাক আমরা শিফটটি 3 তে সেট করি। এই ক্ষেত্রে, A এর পরিবর্তে D হবে, B হবে E, ইত্যাদি।

চূড়ান্ত প্রকল্পটি সম্পূর্ণ করার জন্য আপনাকে ন্যূনতম পরিমাণ তত্ত্বের প্রয়োজন হবে। এর টাস্ক বর্ণনা এগিয়ে চলুন!

জাভা সিনট্যাক্স মডিউলের জন্য চূড়ান্ত প্রকল্প। আসুন একটি ক্রিপ্টানালাইজার লিখি

আপনার কাজ হল একটি প্রোগ্রাম লেখা যা সিজার সাইফারের সাথে কাজ করে।

আপনার ক্রিপ্টোগ্রাফিক বর্ণমালায় ইংরেজি বর্ণমালার সমস্ত অক্ষরের পাশাপাশি বিরাম চিহ্ন (. , ”” :-! ? স্পেস) অন্তর্ভুক্ত হতে দিন। আপনি যদি এমন অক্ষরের সম্মুখীন হন যেগুলি আমাদের প্রতিস্থাপন বর্ণমালার অংশ নয়, তাহলে সেগুলি এড়িয়ে যান৷

বাধ্যতামূলক প্রয়োজনীয়তা

প্রোগ্রামটিতে 2টি মোড থাকা উচিত:

  1. এনক্রিপশন/ডিক্রিপশন। প্রোগ্রামটিকে একটি প্রদত্ত ক্রিপ্টোগ্রাফিক কী ব্যবহার করে পাঠ্য এনক্রিপ্ট এবং ডিক্রিপ্ট করতে হবে।

    প্রোগ্রামটি উৎস টেক্সট ধারণকারী একটি পাঠ্য ফাইলের একটি পথ গ্রহণ করা উচিত এবং সংশ্লিষ্ট সাইফারটেক্সট ধারণকারী একটি ফাইল তৈরি করা উচিত।

  2. পাশবিক শক্তি আক্রমণ দ্বারা ক্রিপ্টানালাইসিস

    এই মোডে, প্রোগ্রামটিকে অবশ্যই একটি ইনপুট টেক্সট ফাইলে থাকা সাইফারটেক্সট ক্র্যাক করতে হবে।

    ব্যবহারকারী যদি পাশবিক শক্তি নির্বাচন করে, তাহলে প্রোগ্রামটিকে স্বাধীনভাবে সম্ভাব্য কীগুলি গণনা করতে হবে, সঠিক কী নির্বাচন করতে হবে এবং পাঠ্যটি ডিক্রিপ্ট করতে হবে।

    সঠিক কীটি সফলভাবে সনাক্ত করতে প্রোগ্রামটির কী মানদণ্ড ব্যবহার করা উচিত সে সম্পর্কে চিন্তা করুন। শব্দের মধ্যে ফাঁকা স্থান বা বিরাম চিহ্নের সঠিক ব্যবহারে আপনাকে মনোযোগ দিতে হতে পারে।

অতিরিক্ত (ঐচ্ছিক) প্রয়োজনীয়তা

1. পরিসংখ্যানগত বিশ্লেষণ দ্বারা ক্রিপ্টানালাইসিস

ব্যবহারকারী দুটি ক্রিপ্টানালাইসিস পদ্ধতির মধ্যে একটি বেছে নিতে সক্ষম হওয়া উচিত। ব্যবহারকারী যদি পরিসংখ্যানগত বিশ্লেষণ মোড নির্বাচন করেন, তাহলে ব্যবহারকারীকে একটি অতিরিক্ত টেক্সট ফাইল প্লেইনটেক্সটে লোড করতে বলুন, বিশেষত একই লেখকের দ্বারা এবং একই শৈলীতে। দ্বিতীয় ফাইলের বিষয়বস্তুর উপর ভিত্তি করে, প্রোগ্রামটি অক্ষরগুলির সংঘটনের পরিসংখ্যান সংকলন করা উচিত এবং তারপরে এই পরিসংখ্যানগুলিকে সিফারটেক্সটের ক্রিপ্টা বিশ্লেষণ করার জন্য ব্যবহার করার চেষ্টা করা উচিত।

2. ইউজার ইন্টারফেস

আপনার বিবেচনার ভিত্তিতে ব্যবহারকারীর সাথে ইন্টারঅ্যাকশনের জন্য ডায়ালগ বক্স তৈরি করুন। যদি ইচ্ছা হয়, আপনি সুইং এবং জাভাএফএক্স গ্রাফিক ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।

একটি পাবলিক গিট সংগ্রহস্থলে আপনার সমাপ্ত সমাধান আপলোড করুন।

গ্রুপটি যখন এটির মধ্য দিয়ে যায় তখন প্রকল্পটি পরীক্ষা করা হবে