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

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

ক্লাসিকাল সাইফার গুলোকে মূলত দুই ভাগে ভাগ করা হয়েছেঃ

  • ট্রান্সপজিশন সাইফার
  • সাবস্টিটিউশন সাইফার

এদের মধ্যে প্রথমটি সম্পর্কেই জানবো আমরা আজকের এই পর্বে।

ট্রান্সপজিশন সাইফার

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

রেইল ফেন্স সাইফার

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

যেমন, আমাদের হাতে যদি মেসেজ থাকে “Hat Venge Geche, Thik Hoye Jabe, Pray For Me.” আমরা এটাকে প্রথমেই তিন লাইনে সাজিয়ে ফেলি। প্রথম অক্ষর H, চতুর্থ অক্ষর V, সপ্তম অক্ষর g যাবে প্রথম লাইনে, এভাবে পুরোটা সাজালে হবেঃ

  • প্রথম লাইনঃ HVgeeioJeaoe
  • দ্বিতীয় লাইনঃ aeecTkyaPyr
  • তৃতীয় লাইনঃ  tnGhhHebrFM

আর এবার আমরা এই তিন লাইন পরপর জুড়ে দিয়ে আমাদের সাইফার টেক্সটটি পাবঃ HVgeeioJeaoeaeecTkyaPyrtnGhhHebrFM

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

এধরণের সাইফার গ্রীকরা ব্যবহার করত। তাদের এজন্য বিশেষ এক ধরণের যন্ত্র ছিল, যার নাম scytale. এতে ছিল একটা সিলিন্ডার এবং একটা রিবন, যেটা সিলিন্ডারের চারপাশে আবৃত থাকতো।

Scytale

Scytale

ক্রিপ্ট্যানালাইসিস

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

এখন আমরা যেহেতু জানি তিন লাইনে এটিকে এনক্রিপ্ট করা হয়েছে, সেহেতু ডিক্রিপ্ট করার কাজটাও বেশ সহজ।

  • আমরা প্রথমেই মোট বর্ণসংখ্যা কত, সেটা দেখবো। এখানে ৩৪
  • ৩৪ কে লাইন সংখ্যা দিয়ে ভাগ করবো। ভাগফল ১১, ভাগশেষ ১
  • এখান থেকে বুঝা গেল প্রথম লাইনে থাকবে ১২ টি বর্ণ, এবং অপর দুই লাইনে থাকবে ১১ টি বর্ণ
  • এবার সে অনুযায়ী আমরা তিন লাইনে টেক্সটটি সাজাবো

তাহলে আগের মতি আমরা তিনটি লাইন পাবঃ

  • প্রথম লাইনঃ HVgeeioJeaoe
  • দ্বিতীয় লাইনঃ aeecTkyaPyr
  • তৃতীয় লাইনঃ  tnGhhHebrFM

এবার এই তিনটি লাইন থেকে প্রথম লাইনের প্রথম বর্ণের পর, দ্বিতীয় লাইনের প্রথম বর্ণ এভাবে একের পর এক সাজালে আমরা প্লেইনটেক্সটটি পেয়ে যাবঃ HatVengeGecheThikHoyeJabePrayForMe

ব্যস, কাজ শেষ!

রাউট সাইফার

এ ধরণের সাইফারের ক্ষেত্রেও প্রথমে আমাদের মেসেজটিকে কয়েক লাইনে সাজিয়ে ফেলা হয়। আমরা আগের উদাহারণটাকেই আবার ব্যবহার করি।

  • প্রথম লাইনঃ HVgeeioJeaoe
  • দ্বিতীয় লাইনঃ aeecTkyaPyr
  • তৃতীয় লাইনঃ  tnGhhHebrFM

এখন এই সাইফারের ক্ষেত্রে কী-টা এত সহজ হয় না যে, এক লাইনের পর আরেক লাইন জুড়ে দিয়ে সাইফার বানানো হবে। এটা একটু ঘুরিয়ে নেওয়া হয়। যেমন একটা কী হতে পারে এমনঃ ডান দিকের সবচেয়ে নিচের বর্ণটি থেকে শুরু করে ঘড়ির কাটার দিকে গিয়ে স্পাইরালি ভেতরের দিকে যেতে হবে 

শুনলেই তো মাথা গুলিয়ে যায়! ব্যাপারটা হল নিচের মতঃ

Snap 2015-07-20 at 14.17.31

তাহলে আমাদের সাইফার টেক্সটটা দাঁড়াচ্ছে এমনঃ MFrbeHhhGntaHVgeeioJeaoeryPaykTcee

এ ধরনের সাইফারের বাড়তি সুবিধা হলে, এক্ষেত্রে সম্ভাব্য Key-এর সংখ্যা এতই বেশি যে অনেক ক্ষেত্রে মানুষ তো দূরের কথা, কম্পিউটারের জন্যও কাজটা দূরহ হয়ে পড়ে! তবে ব্যাপারটা পুরোপুরি নির্ভর করে Key কীভাবে বেছে নেওয়া হল তার উপর।

কলামনার ট্রান্সপজিশন

এ ধরনের ট্রান্সপজিশনে প্রথমেই প্লেইনটেক্সটাকে কয়েকটা সারিতে ভাগ করে লেখা হয়। সারিগুলোর দৈর্ঘ্য থাকে ফিক্সড। এর পর সারিবদ্ধ অংশটা থেকে কলাম ধরে পাওয়া যায় সাইফার টেক্সটটা। কলামের বিন্যাসটা (অর্থাৎ কোন কলামের পর কোন কলাম থাকবে সাইফার টেক্সটে) ডিফাইন করা হয় একটা কী-ওয়ার্ড দিয়ে। যেমন, ধরা যাক আমাদের কাছে একটা টেক্সট আছে “WE ARE DISCOVERED. FLEE AT ONCE” এবং কীওয়ার্ডটি হল ZEBRAS. কীওয়ার্ডটিতে ৬ টি বর্ণ আছে, তার মানে সারি এবং কলাম থাকবে ৬ টি। এখন এই কলামগুলোর বিন্যাস হবে ZEBRAS-এর বর্ণগুলোর লেক্সোগ্রাফিকাল অর্ডার অনুযায়ী। যেমন, এখানে A-এর অর্ডার সবার উপরে, তারপর B, তারপর E. এভাবে বিন্যাসটা হয় এমনঃ 6-3-2-4-1-5

এবার তাহলে আমরা সারিবদ্ধভাবে সাজিয়ে নি টেক্সটটাকে

6 3 2 4 1 5
W E A R E D
I S C O V E 
R E D F L E 
E A T O N C 
E

খেয়াল কর, এখানে শেষ ৫ টি স্থান খালি থেকে গেছে। রেগুলার ট্রান্সপজিশনের ক্ষেত্রে এই স্থান র‍্যানডম কিছু বর্ণ দিয়ে পূরণ করে দেওয়া হয়, আবার ইরেগুলার ট্রান্সপজিশনে এগুলো খালি রেখে দেওয়া হয়। এখন আমরা কলামের বিন্যাসের ক্রম অনুযায়ী মেসেজটাকে (ইরেগুলারভাবে) সাজালে সাইফার টেক্সটটি হবেঃ

EVLNA CDTES EAROF ODEEC WIREE

আবার রেগুলারভাবে সাজালে আমরা প্রথমেই শেষ কয়েকটা র‍্যানডম বর্ণ (QKJEU) জুড়ে দিঃ

6 3 2 4 1 5
W E A R E D
I S C O V E 
R E D F L E 
E A T O N C 
E Q K J E U

তাহলে সাইফার টেক্সটটি হবেঃ

EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE

এই টেক্সট ডেসিফার করার জন্য প্রথমেই অনুমান করে নিতে হবে কলাম এবং সারির দৈর্ঘ্য কত হতে পারে। এগুলোকে কলামে সাজাতে হবে। এরপর বারবার রি-অর্ডার করে দেখতে হবে কোন অর্ডারে এটা অর্থবহ একটা মেসেজ দেখাচ্ছে!

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

Muntasir Wahed

Muntasir Wahed

System Administrator at স্বশিক্ষা.com
Jack of all trades, master of none.
Muntasir Wahed
Muntasir Wahed