“ব্রুট ফোর্স” আবার কি?

Hasna Hena Mow (CipherGirl)
3 min readMar 13, 2019

“ব্রুট ফোর্স” এই শব্দটি আমরা প্রায়ই শুনে থাকি কিন্তু কম্পিউটার সায়েন্সের জগতে এর প্রচলনটি আমরা অনেকেই বুঝতে পারি না, এর কারণ হচ্ছে এর কয়েক ধরণের অর্থ রয়েছে। তাই কোন প্রেক্ষিতে এই শব্দটি আমরা ব্যবহার করছি সেটির উপর এর অর্থের তারতম্য হয়। আমরা এইখানে এর বিভিন্ন প্রচলন জানবো।

এলগোরিদম প্যারাডাইম হিসেবে - ব্রুট ফোর্স

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

এই টেকনিকটা কিভাবে কাজ করে তা বুঝার জন্যে আমরা একটি সহজ উদাহরণ দেখতে পারি। ধরি, আমাদের কম্পিউটারকে আমরা বলেছি এমন একটি সংখ্যা বের করো যেটি ১০ দ্বারা বিভাজ্য এবং তা যেন ১০০ থেকে বড় না হয় । কম্পিউটারটি সেই সংখ্যাটি বের করার ১ থেকেই গণনা শুরু করলো এবং প্রতি ক্ষেত্রে দেখতে থাকলো সেটি ১০ দ্বারা বিভাজ্য কিনা এবং ১০০ থেকে যেন বড় না হয়। তার গণনা শেষ হলো ১০০ পর্যন্ত আসার পর। এই ক্ষেত্রে তার ১০০টি ধাপ পার করতে হয়েছে। গণনা শেষে সে কতগুলা সংখ্যা পেলো- ১০, ২০, ৩০, ৪০, ৫০, ৬০, ৭০, ৮০, ৯০, ১০০ যা আমাদের দেয়া শর্তগুলো পূরণ করেছে। এই কাজ টি করার জন্যে কম্পিউটারটি ১ থেকে ১০০ পর্যন্ত যেই গণনা করেছে এটিই হচ্ছে ব্রুট ফোর্স টেকনিক। যদি কম্পিউটারটি আরো ভালো ভাবে চিন্তা করে, ১০ এর নামতা দিয়ে এই কাজটি করতো তাহলে ১০টি ধাপেই উত্তর পেয়ে যেতাম কিন্তু সেটিকে আমরা ব্রুট ফোর্স বলতে পারতাম না। সেটিকে আমরা ব্রুট ফোর্স থেকেও বেশি কার্যকরী কোনো একটি টেকনিক বলতে পারি, কিন্তু ব্রুট ফোর্স নয়।

আরেকটি উদাহরণ দেখা যাক। ধরি ৫ জন লোক দাঁড়িয়ে আছে এবং আমাদের কাছে একটি রোবোট আছে। আমরা তাকে বললাম যে দেখে আসো ওই ৫ জনের মধ্যে কার উচ্চতা ৫ ফুটের বেশি। রোবটটি প্রত্যেকটি লোকের কাছে গিয়ে তাদের উচ্চতা মাপলো এবং দেখলো তা ৫ ফুটের বেশি কিনা। সর্বশেষ লোকটির কাছে যাওয়ার পরেই রোবটটি সিদ্ধান্তে আসলো যে কার উচ্চতা ৫ ফুটের বেশি বা আদৌ এমন কেউ আছে কিনা। এটি অবস্যই একটি ব্রুট ফোর্স টেকনিক। এই পদ্ধতির আরেকটি নাম হচ্ছে লিনিয়ার/ইটারেটিভ সার্চ। এই ক্ষেত্রে টাইম-স্পেস কমপ্লেক্সিটি হচ্ছে O(n), যেখানে n হচ্ছে লোকের সংখ্যা । আমরা আরো কম কমপ্লেক্সিটি তেও এই সার্চটি করতে পারতাম। যেমন O(logn) এ করতে পারি বাইনারি সার্চ আলোরিথমের মাদ্ধমে।

সহজ ভাষায় বলতে গেলে একটি প্রব্লেম সল্ভ করার ক্ষেত্রে আমরা সব থেকে সরল-সহজ যেই চিন্তা করে থাকি তাই ব্রুট ফোর্স।

ক্রিপ্টোগ্রাফিতে আ্যটাক হিসেবে - ব্রুট ফোর্স

প্রথমেই জেনে নেই ক্রিপ্টোগ্রাফি সম্পর্কে - তথ্যগুপ্তিবিদ্যা (Cryptography) কম্পিউটার বিজ্ঞানের নিরাপত্তা এলাকার একটি শাখা, যেখানে তথ্য গোপন করার বিভিন্ন উপায় সম্পর্কে গবেষণা করা হয়।

প্রথমে একটি সহজ উদাহরণ দেখা যাক, ধরি একজন চোর চুরি করবে একটি বাসায় (কম্পিউটার বিজ্ঞানের নিরাপত্তা এলাকার একটি বাসা 😛)। সেই বাসার দরজা ভাঙার মতো কোনো পরিস্থিতি নেই তাই সে ভাবলো চাবি দিয়েই দরজা খুলবে। কিন্তু তার কাছে চাবি নেই। এখন সে যেকোনো একটি চাবি নিয়ে তার প্যাটার্নটি আঁকলো এবং পরবর্তীতে সে সেই প্যাটার্নটি একটু একটু করে পরিবর্তন করে আরো অনেক অনেক চাবির প্যাটার্ন বানালো এবং চাবি গুলা তৈরী করলো। পরে, পাশের ছবিটির মতো সে সব চাবিগুলো বক্সে করে নিয়ে গেলো চুরি করতে এবং প্রত্যেকটি চাবি দিয়ে সে দরজা খুলার চেষ্টা করতে লাগলো। এটিই হচ্ছে ব্রুট ফোর্স আ্যটাক!

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

এই দুইটি অর্থ ছাড়াও ব্রুট ফোর্সের আরেকটি অর্থ আছে যা গাণিতিক ক্ষেত্রে প্রযোজ্য যেখানে “ব্রুট ফোর্স” একটি টেকনিক বা মেথড যা দ্বারা গাণিতিক প্রমান করা হয়। যদিও এটি কম্পিউটার সায়েন্সের অংশ না কিন্তু সায়েন্সের অংশ তাই জেনে রাখা ভালো।

আর্টিকেলটিতে কোনো ভুল থাকলে বা কারো কোনো মন্তব্য থাকলে অবশ্যই জানাবেন। পোস্টটি পড়ার জন্য সকলকে ধন্যবাদ।

--

--

Hasna Hena Mow (CipherGirl)

Outreachy Intern @Mozilla | Google CodeU Participant 2019 | Grace Hopper Celebration 2018 Scholar | CS Major Undergrad Student | Competitive Programmer | Muslim