অটোকী সাইফারঃ অনাহুত আগন্তুকের অনন্য এক অবদান

অটোকী সাইফারঃ অনাহুত আগন্তুকের অনন্য এক অবদান- মুহাইমিনুল ইসলাম (অন্তিক)
 আজ থেকে প্রায় পাঁচশ বছর আগেকার কথা। ইতালীয় আইনজ্ঞ ফাজিও কার্দানো ও চিয়ারা মিচেরির ভালোবাসার ফলস্বরুপ ১৫০১ সালের ২৪ সেপ্টেম্বর পৃথিবীর অধিবাসীদের তালিকায় নাম যোগ হয় এক ছেলের, বাবার নামের সাথে মিলিয়ে যার নাম রাখা হয় জিরোলামো কার্দানো। কিন্তু দুখঃজনক ব্যাপার হলো, জিরোলামো তার বাবা-মায়ের বৈধ সন্তান ছিলো না। জন্মগত এ অবৈধতা তার বাকি জীবনের বিভিন্ন ক্ষেত্রেও বিরুপ প্রভাব ফেলেছে বিভিন্নভাবে। ১৫২৫ সালে কার্দানো মিলানের কলেজ অফ ফিজিশিয়ান্সে পড়ার আবেদন জানালেও প্রত্যাখ্যাত হয়েছিলেন। এর পেছনে অন্যতম কারণ ছিলো তার জন্মগত অবৈধতার বিষয়টি। মানুষের ভেতরে যদি আসলেই কোনো গুণ থাকে তাহলে একদিন যে তা ঠিকই প্রকাশ পায়, মানুষের জন্ম নয় বরং কর্মই যে তাকে অমর করে রাখে, বাকি জীবন জুড়ে এ কথাগুলোর বাস্তব প্রমাণই দিয়ে গেছেন তিনি। রেনেসা যুগের সেরা গণিতবিদ বলে স্বীকৃত কার্দানো ছিলেন একাধারে একজন গণিতবিদ, চিকিৎসক, জীববিজ্ঞানী, পদার্থবিজ্ঞানী, রসায়নবিদ, জ্যোতির্বিজ্ঞানী, জ্যোতিষী, দার্শনিক, লেখক ও জুয়াড়ি! পরবর্তী সময়ে তার কাজের দ্বারা প্রভাবিত হয়েছেন ব্লেইজ প্যাসকেল, পিয়েরে দ্য ফার্মা, আইজ্যাক নিউটন, গটফ্রেড উইলহেল্ম ফন লিবনিজ, মারিয়া গিতানা অ্যাগনেসি, জোসেফ লুইস ল্যাগ্রাঞ্জ ও কার্ল ফ্রেডরিখ গাউসের মতো মানুষেরা।

 

জিরোলামো কার্দানো

অনাগত ভবিষ্যতের বুকে নিজের নামটি খোঁদাই করে রাখতে মানুষের প্রচেষ্টার কোনো অন্ত নেই। এ স্বপ্নের পিছে দিবারাত্রি ছুটতে গিয়ে কেউ হয় নায়ক, কেউবা খলনায়ক। জিরোলামো কার্দানোও এ দলেরই একজন সদস্য ছিলেন। পৃথিবীর মানুষ যাতে দীর্ঘকাল তাকে মনে রাখতে পারে সেজন্য জীবদ্দশায় মোট ২৪২টি বই লিখেছিলেন তিনি! এর মাঝে ১৩১টি বই তিনি জীবিত থাকা অবস্থাতেই প্রকাশিত হয়। বাকি ১১১টি পান্ডুলিপির মাঝেই সীমাবদ্ধ ছিলো। দুই শতাধিক এ বইয়ে তিনি কী নিয়ে আলোচনা করেছিলেন তা জিজ্ঞেস না করে বরং কী নিয়ে আলোচনা করেন নি তা জিজ্ঞেস করাই বুদ্ধিমানের কাজ হবে। গণিত, জ্যোতির্বিজ্ঞান, জ্যোতিষশাস্ত্র, দাবা, পদার্থবিজ্ঞান, জুয়া, আত্মার অমরত্ম, সক্রেটিসের ভাবধারা, রত্ন, বিষ, বাতাস, পানি, পুষ্টিবিদ্যা, স্বপ্ন, মূত্র, দাঁত, সঙ্গীত, নীতিশাস্ত্র ইত্যাদি বহুবিধ বিষয় নিয়ে লেখালেখি করেছেন তিনি।

{ "slotId": "2452885053", "unitType": "in-article" }

মজার ব্যাপার হলো, আমাদের আজকের আলোচ্য ক্রিপ্টোলজি নিয়ে কিন্তু কার্দানোর আলাদা কোনো বই নেই। তার সর্বাধিক বিক্রিত দুটি বিজ্ঞান বিষয়ক বইয়ে তিনি ক্রিপ্টোলজি সম্বন্ধে কিছু আলোচনা করেছিলেন। এর মাঝে প্রথমটি ছিলো De Subtilitate। এ বইটি প্রকাশিত হয়েছিলো ১৫৫০ সালে। বিজ্ঞানের বিভিন্ন বিষয়ে কার্দানোর চমৎকার উপস্থাপনা পাঠক সমাজকে সহজেই আকৃষ্ট করতে পেরেছিলো। বইটির সাফল্যে উদ্বুদ্ধ হয়ে তাই ছয় বছর পর তিনি বের করেন এর দ্বিতীয় খন্ড- De Rerum Varietate। বিপুল জনপ্রিয়তার ফলে দুটি বই-ই বিভিন্ন ভাষায় অনূদিত হয় এবং নকল হয়ে ছড়িয়ে পড়ে গোটা ইউরোপ জুড়েই।

 

                                                                 De Subtilitate এবং De Rerum Varietate

 

অটোকী (Autokey) সাইফারকে অটোক্লেভ (Autoclave) সাইফারও বলা হয়ে থাকে। আগে আলোচনা করা বিভিন্ন সাইফার যেমন তাদের নামের সাথে কাজের মিল রেখে চলতো, আজকের আলোচ্য অটোকী সাইফারও এর ব্যতিক্রম না। এ সাইফারে Key বানানো হয় Plain Text এর উপর ভিত্তি করে অর্থাৎ অনেকটা স্বয়ংক্রিয়ভাবেই চলতে থাকে এর Key। অন্যদিকে পূর্বে আলোচনা করা সাইফারগুলোতে একটি Key লিখে সেটারই পুনরাবৃত্তি করা হতো। এজন্য Key-এর আগে Auto লাগিয়ে সাইফারটির নাম হয়েছে অটোকী (Autokey) সাইফার।

এ সাইফারের সাহায্যে কোনো মেসেজকে এনক্রিপ্ট করতে আমাদের দরকার একটি টেবুলা রেক্টা (Tabula Recta)। কী? মনে আছে এ টেবিলটির কথা? প্রায় এক বছর আগে লেখা ‘কালো জাদুর কবলে ক্রিপ্টোলজি’তে আমি প্রথম এ টেবিলটির সাহায্য নিয়েছিলাম। আজও সেই একই টেবিলের সাহায্য নিয়েই মেসেজ এনক্রিপশন-ডিক্রিপশনের কাজটি সারতে হবে।

{ "slotId": "", "unitType": "in-article", "pubId": "pub-6767816662210766" }

                                                            টেবুলা রেক্টা

 

এনক্রিপশন ধরা যাক, আমরা যে মেসেজটি এনক্রিপ্ট করবো সেটি হলো- “To be prepared is half the victory”। এটি মিগুয়েল ডি সার্ভেন্টেসের (Miguel de Cervantes) উক্তি। ধরে নিই, আমাদের Key হলো Miguel। যেহেতু অটোকী সাইফারে আমাদের দরকার Keystream, তাই Plain Text এর সাথে Keystream-কে সাজাতে হবে নিচের মতো করেঃ

ভালো করে একবার Keystream সাজানোর পদ্ধতিটি দেখুন। প্রথমে আমি Key Miguel লিখেছি। এরপর থেকে Plain Text এর মেসেজটিই হুবহু লিখে গিয়েছি। এভাবে Plain Text শেষ পর্যন্ত Keystream লিখে যেতে হবে। এখানে Key নিজে বারবার না এসে Plain Text-ই Keystream এ রুপান্তরিত হয়ে যাচ্ছে।

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

আমরা প্রথম যে বর্ণটি এনক্রিপ্ট করবো তা হলো ‘t’। তাহলে টেবুলা রেক্টার একেবারে উপরের সারি থেকে (গাঢ় কাল অক্ষর) প্রথমেই t এর নিচে থাকা Keystream ‘m’ কে খুঁজে বের করতে হবে। তারপর একেবারে বামের কলাম থেকে (গাঢ় কালো অক্ষর) Plaintext ‘t’ কে খুঁজতে হবে। m ও t থেকে যদি আমরা যথাক্রমে উপর থেকে নিচে এবং বাম থেকে ডানে এগোই তাহলে তারা পরস্পরকে F এ ছেদ করবে। অর্থাৎ F হলো t এর এনক্রিপ্ট করা রুপ।

এবার আসা যাক Plaintext এর ২য় বর্ণ ‘o’তে। এর নিচে থাকা Keystream হলো ‘i’। এবারও আগের মতোই টেবুলা রেক্টার সবার উপরের সারি থেকে i এবং একেবারে বামপাশের কলাম থেকে o-কে খুঁজে বের করতে হবে। তারপর I থেকে নিচে এবং o থেকে ডানে এগোতে থাকলে একসময় তারা পরস্পরকে W-এ ছেদ করবে। অর্থাৎ W হলো o এর এনক্রিপ্ট করা রুপ।

এভাবে Plain Text এর বাকি বর্ণগুলোকেও টেবুলা রেক্টা ও Keystream এর সাহায্যে এনক্রিপ্ট করা যাবে। পুরো মেসেজটি এনক্রিপ্ট করলে তাহলে আমরা পাচ্ছিঃ

 

ডিক্রিপশন 

ধরা যাক, আমাদের কাছে এনক্রিপ্ট করা একটি মেসেজ এসেছে যেখানে লেখা আছে- “BIOXJZA BG FSZK”। প্রেরক আমাদের জানিয়েছে, এ মেসেজের Key হলো ‘Game’। এবার মেসেজটি ডিক্রিপ্ট করে মূল মেসেজ বের করাই আমাদের লক্ষ্য।

প্রথমেই তাহলে আগের মতো করে একটি টেবিলে Keystream ও Cipher Text সাজিয়ে নেয়া যাক। যেহেতু আমরা Keystream-এর কেবল ‘game’ অংশটুকু জানি, তাই বাকি ঘরগুলো ফাঁকা রাখতে হবে।

{ "slotId": "2452885053", "unitType": "in-article" }

এখন আবারো যেতে হবে টেবুলা রেক্টার কাছে। Cipher Text এ আমাদের প্রথম বর্ণ ‘B’। অন্যদিকে Keystream-এ প্রথম বর্ণ ‘g’। টেবুলা রেক্টার একেবারে উপরের সারি থেকে প্রথমে তাই g-কে খুঁজে বের করতে হবে। এরপর g-এর কলাম ধরে নিচে নামতে হবে যতক্ষণ না B-কে পাওয়া যাচ্ছে ততক্ষণ। B পাওয়া গেলে এরপর সেখান থেকে একেবারে বামের কলামে যে বর্ণটি আমরা পাবো সেটিই হবে B এর ডিক্রিপ্ট করা বর্ণ। এক্ষেত্রে এটি V। নিচের চিত্রে পুরো ব্যাপারটি দেখানো হয়েছে।

যেহেতু আমরা Plain Text এর একটি বর্ণ পেয়েছি তাই টেবিলকে নিচের মতো করে আপডেট করে নিতে হবে। এনক্রিপশনের সময় আমরা দেখেছিলাম, Keystream এ Key এর পর থেকেই Plain Text শুরু হচ্ছে। এবারও তাই ‘game’ এর পরই এসেছে ‘V’।

এবার আসা যাক Cipher Text এর দ্বিতীয় বর্ণ I এর কাছে। এক্ষেত্রে Keystream হলো ‘a’। তাহলে আগের মতো করেই প্রথমে টেবুলা রেক্টার উপরের সারি থেকে ‘a’ খুঁজে সেখান থেকে নিচে নেমে ‘I’ কে বের করতে হবে। I থেকে একেবারে বামের কলামে গেলে আমরা পাবো এর ডিক্রিপ্ট করা রুপ। এক্ষেত্রে সেটি I

{ "slotId": "2452885053", "unitType": "in-article" }

আবারো আগের মতো করে টেবিলকে নিচের মতো করে আপডেট করতে হবেঃ

এভাবে Cipher Text এর বাকি বর্ণগুলোকেও Keystream আর টেবুলা রেক্টার সাহায্যে ডিক্রিপ্ট করলে আমরা মূল মেসেজটি পেয়ে যাবো।

বাহ! গল্প করতে করতে কখন যে আপনাকে একজন পলিম্যাথের আবিষ্কার করা একটি সাইফার সিস্টেম শিখিয়ে দিলাম তা আমি নিজেও খেয়াল করিনি। তবে ঠান্ডা মাথায় পুরো পদ্ধতিটুকু যদি আপনি পড়ে থাকেন, তাহলে নিঃসন্দেহে মাথা খাটানোর অনেক কিছুই আছে এখানে। ‘শেষ হইয়াও হইলো না শেষ’ কথাটিকে সার্থক করতেই অটোকী সাইফার নিয়ে কিছু কথা বলা এখনো বাকি আছে। সেগুলো নাহয় ‘জিরো টু ইনফিনিটি’ ম্যাগাজিনের এপ্রিল ’১৬ সংখ্যার জন্যই জমা থাকুক।

{ "slotId": "2452885053", "unitType": "in-article" }

 

ক্রিপ্টো চ্যালেঞ্জঃ

১। এনক্রিপশন করুন- Cardano entered the University of Pavia against his father’s wish, who wanted his son to undertake studies of law. (Key – Cardano)

২। ডিক্রিপশন করুন- OEULCVB VGSLPEQ VZW KNGHLLA SL MBH CRAVXKZMNL WA TRVCT, UVJGE KY GNHHLEAIJ ZN PYDBGLVR. (Key – Medicine)

{ "slotId": "2452885053", "unitType": "in-article" }

 

Leave a Reply

Your email address will not be published. Required fields are marked *