বিজ্ঞান ব্লগ

এনক্রিপশন এর খুঁটিনাটি: এনিগমা (Enigma) মেশিন বৃত্তান্ত

গত পর্বটি লেখার পর ঋভুদা পড়ে ম্যাসেঞ্জারে বললেন, এনিগমা নিয়ে আলাদা একটা ব্লগ লেখা যায় কিন্তু! আমি তক্ষুনি ঘুম থেকে উঠেছি। ঋভুদা মার্ভেল সিনেম্যাটিক এর ফ্যান, আর আমি ডিসি। আমি কিছুক্ষণ ভেবে বললাম, মার্ভেলের বাংলাদেশি অরিজিন এনিগমা? “ধুর ব্যাটা”, উত্তর এলো ওপাশ থেকে। “বলছি এনিগমা মেশিন (Enigma) এর কথা, যেটা ব্যবহার করে জার্মানেরা দ্বিতীয় বিশ্বযুদ্ধে এনকোডেড মেসেজ পাঠিয়েছিলো!”

“ওহ”, আমি বললাম। “ভাই মাত্র ঘুম থেকে উঠসি, এখন এসব বড় বড় কথা না বললে হয় না!” ঋভুদা বললেন,”লেখা শুরু করে দাও, প্রথম পর্ব জম্পেশ হয়েছে!” তখনও আমি আধো আধো চোখ করে শোয়া, শীতের সকালে উঠতে একেবারেই ইচ্ছে করছে না। কোনোমতে শীতবাবু-কে পরাজিত করে উঠে, কার্য সেরে আবার ফোন হাতে নিতেই দেখি ঋভুদা আমাকে একগাদা সোর্স দিয়ে রেখেছেন এনিগমা মেশিন নিয়ে লেখার জন্য! তার মধ্যে আছে আবার ডেভিড কানের ‘দ্য কোডব্রেকারস’ এর মতো দু হাজার পাতার ইয়া বড় বই! “কি মুশকিল রে বাবা!” দীর্ঘ নিঃশ্বাসের সহিত আমার অভিব্যক্তি।

স্বাগতম এনক্রিপশন এর খুঁটিনাটি এর দ্বিতীয় পর্বে। আজকে আমি আলোচনা করবো দ্বিতীয় বিশ্বযুদ্ধে গুরুত্বপূর্ণ ভূমিকা রাখা এনিগমা মেশিন নিয়ে। এনিগমা মেশিন ছিলো সিজার সাইফারের আধুনিক সংস্করণ। যুদ্ধে এক ব্যাটেলিয়ন থেকে আরেক ব্যাটেলিয়নে তথ্য পাঠানোর জন্য ব্যবহৃত হতো এই এনিগমা মেশিন। আধুনিক ক্রিপ্টোগ্রাফির শুরুর দিকে আবিষ্কৃত এনিগমা মেশিন নিঃসন্দেহে একটি অন্যতম যুগান্তকারী আবিষ্কার।

এনিগমা মেশিন কি?

এনিগমা মেশিন হচ্ছে দ্বিতীয় বিশ্বযুদ্ধে জার্মান-দের ব্যবহার করা একটি এনক্রিপশন মেশিন যা তথ্য কে এনকোড এবং ডিকোড করতো। একটা এনিগমা মেশিন দ্বারা বিলিয়ন-এরও অধিক সংখ্যক পদ্ধতি অনুসরণ করে একটি তথ্য কে এনক্রিপ্ট করা যেতো বলে এটি জার্মান বাহিনীর দ্বিতীয় বিশ্বযুদ্ধের অন্যতম সেরা অস্ত্র হিসেবে পরিগণিত হতো।

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

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

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

এনিগমা মেশিনের আবিষ্কার:

এনিগমা (Enigma) মেশিন বানিয়েছেন জার্মান ইঞ্জিনিয়ার আর্থার শেরবিয়াস। এটি আবিষ্কৃত হয় প্রথম বিশ্বযুদ্ধের শেষের দিকে। জার্মান রিসার্চফার্ম শেরবিয়াস এন্ড রিটার ১৯১৮ সালে কয়েকটি সাইফার মেশিন এর ডিজাইন প্যাটেন্ট করে এবং ১৯২৩ সালের দিকে এনিগমা ব্র্যান্ড নাম দিয়ে মেশিন উৎপাদন শুরু করে। প্রাথমিক ভাবে এটি বাণিজ্যিক ভাবে ব্যবহারের চিন্তা ভাবনা থাকলেও তৎকালীন নাৎসি বাহিনী সেটিকে নিজেদের যুদ্ধের বার্তাবাহক হিসেবে ব্যবহার করতে শুরু করে এবং মেশিনটিকে উন্নত করে।

এনিগমা মেশিন কিভাবে এনক্রিপ্ট করে?

এনিগমা মেশিন মূলত সাবস্টিটিউশন এনক্রিপশন ব্যবহার করে। সাবস্টিটিউশন এনক্রিপশন হলো একটি সহজতর এনক্রিপশন মাধ্যম যেটা অত্যন্ত সহজেই যেকোন মেসেজ ডিক্রিপ্ট করা সম্ভব। সিজার সাইফার হলো এক ধরণের সাবস্টিটিউশন এনক্রিপশন এর উদাহরণ। সিজার সাইফার কিভাবে কাজ করে সেটা আমি প্রথম পর্বেই আলোচনা করেছি। একটি কি দিয়েই সিজার সাইফারে এক বর্ণ অন্য বর্ণের দ্বারা প্রতিস্থাপিত হয়। যদি কি হিসেবে 3 (তিন) ব্যবহৃত হয়, তবে-

A এর স্থলে বসবে D, B এর স্থলে বসবে E, C এর স্থলে বসবে F এবং এভাবেই চলতে থাকবে।

এই কোডটিকে কিন্তু একটু মাথা খাটিয়েই সহজেই বের করে ফেলা যায়। এটা ডিক্রিপ্ট করার জন্য আলাদা ভাবে কোনো যন্ত্রের দরকার নেই এবং এটা খুবই সিম্পল একটি এনক্রিপশন।

কিন্তু একটি এনিগমা মেশিন এই সাধারণ সিজার সাইফারের তুলনায় অনেক অনেক গুণ বেশি শক্তিশালী। সিজার সাইফারে একটি কি এর সাহায্যে একটি বর্ণ কে কেবল একটি সম্পুরক বর্ণ দিয়েই প্রতিস্থাপিত হতে হয়। অর্থাৎ কি যদি উপোরোক্ত উদাহরণের মতো তিন (৩) হয় তবে A এর স্থলে কিন্তু D কেই বসতে হবে। অন্য কোনো বর্ণ বসার সুযোগ নেই। কিন্তু এই জায়গাটিতেই ভিন্ন একটি এনিগমা মেশিন। একটি এনিগমা মেশিনে একটি বর্ণ কে যেকোনো বর্ণ দিয়ে প্রতিস্থাপিত করতে পারে। এর মানে হচ্ছে আপনি যদি এনিগমা মেশিনে AAAAA টাইপ করেন তাহলে আপনার এনকোডেড ম্যাসেজ হবে PWMGQ। খেয়াল করেছেন তো? একই বর্ণের জন্য এক এক সময় এক এক বর্ণ। অভাবনীয়!

কিভাবে একটি এনিগমা মেশিন কাজ করে?

এনিগমা মেশিন এ ব্যবহৃত হয়েছে একটি কি-বোর্ড, একটি ল্যাম্প বোর্ড, তিনটি রোটর, একটি ইলেক্ট্রনিক সার্কিট এবং সবশেষে একটি প্লাগবোর্ড।

যখন কি-বোর্ডে যেকোনো কি চাপা হয়, তখন প্লাগবোর্ডে সিলেক্ট করা বর্ণ দ্বারা এনকোডেড ম্যাসেজ এ প্রতিস্থাপিত বর্ণ চলে আসে এবং একইসাথে যন্ত্রের তিনটি রোটরের একটি রোটর ঘুরে যায় এবং নতুন একটি কনফিগারেশন তৈরি করে। যখন কোনো কি চাপা হয়, সেই কি এর প্রতিস্থাপিত বর্ণ ল্যাম্পবোর্ডে জ্বলে ওঠে। ধরুন, আমি কি বোর্ডে C চাপলাম, প্লাগবোর্ডে আগে থেকেই C এর জন্য X সেট করে দেয়া আছে।

তো আমি C চাপার সাথে সাথে ল্যাম্পবোর্ডে X জ্বলে উঠবে এবং রোটর ঘুরে যাবে। এই রোটর ঘুরার ফলে যা হয়, তা হচ্ছে কনফিগারেশন পরিবর্তন হয়ে যায় এবং পরবর্তীতে C চাপলে হয়তো এরপর V জ্বলে উঠবে। এবং সেইসাথে আবার রোটর নিজে থেকেই ঘুরে গিয়ে নতুন কনফিগারেশন তৈরি করবে।

এখন প্রশ্ন হতে পারে, ভাই, এই যে কনফিগারেশন এইটা তো আমি যাকে ম্যাসেজ পাঠাবো সে তো আর জানবে না, তাহলে কমিউনিকেশন হবে কিভাবে?

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

কনফিগারেশন কিরূপে হবে তার একটি বিস্তারিত উদাহরণ দেয়াই যায়! সেটি নিন্মরূপ-

১। প্লাগবোর্ড: এটি হচ্ছে কোন বর্ণ প্রাথমিক ভাবে কোন বর্ণের সাথে প্রতিস্থাপিত হবে সেটির কনফিগারেশন। অর্থাৎ সিজার সাইফারের মতোই এখানে একটি বর্ণ (ধরি F) প্রতিস্থাপিত হবে অন্য একটি বর্ণ (ধরি J) এর সাথে। প্লাগবোর্ডে এমন বিভিন্ন বর্ণের সাথে প্রতিস্থাপন বর্ণ একটি তারের মাধ্যমে যুক্ত থাকে।

তাহলে আমরা যদি এনিগমা মেশিনে Jackfruit লিখি, তাহলে এনকোডেড মেসেজে সেটা Fackjruit উঠবে।

২। রোটর (স্ক্র্যাম্বলার): ল্যাম্পবোর্ডের ঠিক ওপরদিকে থাকে রোটর। মোট তিনটি রোটর থাকে এবং প্রতিটি রোটরে  A থেকে Z পর্যন্ত খোদিত থাকে। প্রত্যেক কি চাপার পর একবার রোটর ঘুরে এবং এক বর্ণ থেকে অন্য বর্ণ শিফট হয়।

উদাহরণস্বরুপ, আগেরবারে ধারণা করা J = F ধরলে, একবার J প্রেস করায় F উঠলো, এবং সাথে সাথে রোটর ঘুরে গেলো। এর পরের বারে আবার J প্রেস করলে F না উঠে রোটর কনফিগারেশন অনুযায়ী F এর জায়গায় যেকোনো বর্ণ আসতে পারে! আশ্চর্যজনক না?!

এনিগমা এনক্রিপশন প্রণালী:

দেখা যাচ্ছে, তিনটি রোটর তিনটি আলাদা কনফিগারেশন দেখাচ্ছে। সেটি হতে পারে A-K-E, D-O-Q, ইত্যাদি ইত্যাদি। এখন সঠিকভাবে মেসেজ ডিক্রিপশনের জন্য ডিক্রিপ্টর এনিগমা মেশিনের প্লাগবোর্ডেও একই কনফিগারেশন থাকতে হবে এবং রোটরগুলোর কনফিগারেশনগুলোও একই রকম হতে হবে। তো দেখা যাক, এভাবে করে এনিগমা মেশিনে কতো ধরণের কম্বিনেশন পাওয়া সম্ভব!

ধরি, প্রথম স্লটে আছে ৫ নং রোটর, দ্বিতীয় স্লটে আছে ৪ নং রোটর এবং তৃতীয় স্লটে আছে তিন নং রোটর। তাহলে এখানে আছে,

৫*৪*৩=৬০

ষাটটি আলাদা ধরণের কম্বিনেশন। এখন, প্রতিটা রোটর আলাদা ভাবে ২৬ টি বর্ণের বিন্যাসে সাজানো, অর্থাৎ,

২৬*২৬*২৬=১৭,৫৭৬

ধরণের আলাদা কনফিগারেশন আছে।

এখন আমরা জানি ইংরেজি বর্ণমালায় ২৬ টি বর্ণ আছে, তাহলে ২৬! রকমে প্রতিটি বর্ণ সাজানো যায়। কিন্তু প্লাগবোর্ডে শুধুমাত্র দশ জোড়া বর্ণ প্রতিস্থাপন সম্ভব। তাহলে সব হিসেব করে প্লাগবোর্ডের মোট কনফিগারেশন হতে পারে-

{২৬! / (৬! *১০! *২১০)} = ১৫০,৭৩৮,২৭৪,৯৩৭,২৫০

টি আলাদা বর্ণের। এখন রোটর, প্লাগবোর্ড সব মিলিয়ে যদি হিসেব করি, তাহলে কনফিগারেশনের সংখ্যা হবে-

৬০*১৭৫৭৬* ১৫০,৭৩৮,২৭৪,৯৩৭,২৫০ = ১৫৮,৯৬২,৫৫৫,২১৭,৮২৬,৩৬০,০০০ টি আলাদা কম্বিনেশন।

কি? ভয় পেলেন নাকি? ভাবছেন এ মেশিনের তথ্য ক্র্যাক করা তো অসম্ভব! কিন্তু এই অসম্ভবকেই সম্ভব করে দেখিয়েছিলেন তৎকালীন যুক্তবাহিনীর ইঞ্জিনিয়ার অ্যালেন টিউরিং এবং গর্ডন ওয়েলশম্যান।

কিভাবে ক্র্যাক করা হলো এনিগমা মেশিন:

এনিগমা মেশিন এর সবচেয়ে বড় দোষ হচ্ছে এটি কখনও একটি বর্ণকে তার সত্যিকারের বর্ণ দিয়ে প্রতিস্থাপিত করবে না। অর্থাৎ আমি যদি M চাপ দেই, তাহলে এটি কখনও M এর এনকোডেড বর্ণ হিসেবে আমাকে M দেখাবে না। সাধারণভাবে এটা সামান্য কিছু মনে হলেও, ইঞ্জিনিয়ারদের চোখে এটি ছিলো অনেক বড় একটা দোষ।

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

এবং পরবর্তীতে এই কৌশলের সাহায্যে অ্যালেন টিউরিং আবিষ্কার করে ফেললেন বম্বি মেশিন, যা মূলত ৩৬ টি আলাদা এনিগমা মেশিনের কনফিগারেশনের সমন্বয়ে গঠিত হয়েছিলো।

এই ছিলো আজকের এনিগমা বৃত্তান্ত। আশা করছি পাঠক/পাঠিকাদের সহজ ভাবে বিস্তারিত বোঝাতে পেরেছি। আমার লেখা ব্লগগুলি মিস না করতে চাইলে অবশ্যই সাবস্ক্রাইব করে রাখতে পারেন সাইন্স বী ব্লগকে। আমার লেখা ব্লগগুলি আমার প্রোফাইলে ঢুকলেই দেখতে পারবেন। আজ এই পর্যন্তই, কথা হবে পরের পর্বে! ততোদিন ভালো থাকবেন, সুস্থ থাকবেন! ধন্যবাদ সবাইকে!

 

Exit mobile version