কম্পিউটার বিজ্ঞানের ভিত্তি/এনক্রিপশন

এনক্রিপশন

সম্পাদনা

নিরাপদ যোগাযোগ নিশ্চিত করার জন্য এনক্রিপশন পদ্ধতি ব্যবহার করা প্রয়োজন। ওয়েবের মাধ্যমে নিরাপদ যোগাযোগ যেমন ই-কমার্সের ক্ষেত্রে গুরুত্বপূর্ণ। এনক্রিপশন বার্তাগুলিকে এনকোড করতে ব্যবহৃত হয় যাতে নির্ধারিত প্রাপক ছাড়া অন্য কেউ বার্তার বিষয়বস্তু না জানে।

ইন্টারনেটে বার্তাগুলি প্যাকেটের আকারে স্থানান্তরিত হয়। প্যাকেট সম্পর্কে ভাবলে, তারা চিঠির চেয়ে পোস্টকার্ডের মতো বেশি। প্রতিটি প্যাকেটের বিষয়বস্তু সাধারণ পাঠ্য (plaintext) হিসাবে থাকে, যা সবার জন্য প্রকাশ্য হয় যেহেতু বিটগুলি প্রেরণ করা হয়।

প্রেরণ এবং গ্রহণের পর এই প্যাকেটগুলিকে সুরক্ষিত করার সেরা উপায় হল এনক্রিপশন প্রযুক্তি ব্যবহার করা। এনক্রিপশন হল তথ্য (plaintext) কে অস্পষ্ট পাঠ্যে (ciphertext) রূপান্তর করার প্রক্রিয়া, যাতে অবাঞ্ছিত পক্ষগুলি বার্তা আটকাতে না পারে। প্রাপক যাতে ciphertext বুঝতে পারে তার জন্য তাকে ডিক্রিপশন পদ্ধতি ব্যবহার করতে হবে। ডিক্রিপশন হল ciphertext কে পুনরায় plaintext এ রূপান্তর করার প্রক্রিয়া।

এনক্রিপশন এবং ডিক্রিপশন এই দুটি অংশ মিলে যা পরিচিত ক্রিপ্টোগ্রাফি নামে। ক্রিপ্টোগ্রাফি (গোপন লেখা) হল তৃতীয় পক্ষের উপস্থিতিতে নিরাপদ যোগাযোগের জন্য প্রযুক্তির চর্চা এবং অধ্যয়ন। এটি নতুন কোনো প্রথা নয় এবং খ্রিস্টপূর্ব ২০০০ সাল থেকে প্রচলিত।

সিজার সাইফার

সম্পাদনা

সিজার সাইফার হল একটি প্রতিস্থাপন সাইফারের উদাহরণ। এই সাইফার বার্তা এনক্রিপ্ট করতে অক্ষর-দ্বারা-অক্ষর অনুবাদ ব্যবহার করে। একটি সাইফার হল একটি পদ্ধতি (অ্যালগরিদম) যা বার্তাকে একটি অস্পষ্ট রূপে রূপান্তরিত করতে এবং রূপান্তর উল্টানোর জন্য ব্যবহৃত হয়। নিচের উদাহরণে দেখা যায় কিভাবে উপরের সারির প্রতিটি অক্ষরকে নিচের সারির সংশ্লিষ্ট অক্ষর দ্বারা প্রতিস্থাপন করা হয়:

 
Caesar Cipher example.

সিজার সাইফারে ২৫টি সম্ভাব্য ভেরিয়েশন আছে যা প্রতিটি ভিন্ন শিফটের প্রতিনিধিত্ব করে। এনক্রিপশন এবং ডিক্রিপশন নিয়ম সম্পর্কে মনে রাখার মূল বিষয় হল শিফটের পরিমাণ। যদি আমরা জানি সিজার সাইফার ব্যবহার করা হয়েছে তাহলে বার্তা ডিক্রিপ্ট করতে আমরা বর্ণমালার সমস্ত ২৫টি সম্ভাব্য শিফট চেষ্টা করতে পারি। তবে, এই সাইফার ব্যবহার করে তৈরি বার্তাগুলিকে এনক্রিপ্ট এবং ডিক্রিপ্ট করার জন্য encrypt and decrypt সরঞ্জাম তৈরি করা হয়েছে।

প্রতিস্থাপন সাইফার

সম্পাদনা

প্রতিস্থাপন সাইফার হল সাইফার যেখানে একটি নির্দিষ্ট নিয়ম অনুসারে একটি প্রতীক অন্য প্রতীকের সাথে প্রতিস্থাপিত হয়। নিচের উদাহরণটি একটি প্রতিস্থাপন টেবিল দেখায় যা বর্ণমালার অক্ষর পুনর্বিন্যাসের নিয়ম সংজ্ঞায়িত করে। নিচের উদাহরণটি ব্যবহার করে কতগুলি সম্ভাব্য পুনর্বিন্যাস করা যেতে পারে?

 
Substitution cipher
 
Number of methods possible.

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

 
Original encoded ciphertext.

সবচেয়ে ব্যবহৃত অক্ষরগুলোকে E এবং T দিয়ে প্রতিস্থাপন করার পরে আমরা অন্যান্য সাধারণ প্রতীক এবং বাক্যের গঠন ব্যবহার করে ফাঁকগুলো পূরণ করতে পারি।

 
Process of using conjectural decoding.


অবশেষে, প্রতীকগুলিকে প্রায়শই ব্যবহৃত অক্ষরগুলির সাথে প্রতিস্থাপন করার পরে আমরা পুরো বার্তাটি নিচে প্রদর্শিত দেখতে পাই।

 
Complete ciphertext message.


ভিজেনের সাইফার

সম্পাদনা

ভিজেনের সাইফার সিজার সাইফারের অনুরূপ, কিন্তু এটি একটি বার্তা এনকোড করতে একাধিক সিজার সাইফার ব্যবহার করে। দীর্ঘ সময়ের জন্য ভিজেনের সাইফারকে অটুট মনে করা হতো, কিন্তু ১৮০০ সালের দিকে চার্লস ব্যাবেজ একটি পদ্ধতি আবিষ্কার করেন।

 
This table shows the key to the cipher thomasbbryan. This cipher was used by an attorney named Thomas B. Bryan in 1894 to communicate with his client.
 
Key description

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

ভিজেনের সাইফার ১৮৬৩ সালে এই সাইফার ডিকোড করার পদ্ধতি আবিষ্কার না হওয়া পর্যন্ত অটুট ছিল। যদিও সাইফারটি আর নিরাপদ নয়, তখন এটি নিরাপদ যোগাযোগের জন্য একটি বিশাল উন্নতি ছিল।

ভার্নাম সাইফার

সম্পাদনা

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

তত্ত্বগতভাবে, ওয়ান-টাইম প্যাড ক্রিপ্টোগ্রাফির ক্ষেত্রে যতটা ভালো হতে পারে ততটাই ভালো। এই প্রক্রিয়াটি গাণিতিকভাবে প্রমাণযোগ্য। ভার্নাম সাইফার সিজার সাইফারের মতোই কাজ করে। যেখানে সিজার সাইফারে একটি সংখ্যা কী শিফট সাইফার হিসেবে ব্যবহৃত হয়, ভার্নাম সাইফার অনেকগুলি ভিন্ন শিফট সাইফার ব্যবহার করে, কী এর প্রতিটি অক্ষরের জন্য একটি অনন্য শিফট। এটি অক্ষরটিকে বর্ণমালার মান অনুযায়ী শিফট করে করে। উদাহরণস্বরূপ, যদি কী-এর অক্ষর 'A' হয় তবে এটি 1 এর শিফট করবে।

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

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

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

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

পাবলিক কী এনক্রিপশন

সম্পাদনা

১৯৭৬ সালে, হুইটফিল্ড ডিফি এবং মার্টিন হেলম্যান পাবলিক-কী এনক্রিপশনের ধারণাটি প্রস্তাব করেন। ধারণাটি দুটি গাণিতিকভাবে সম্পর্কিত কী-এর একটি পাবলিক কী এবং একটি প্রাইভেট কী এর। কী গুলো যুক্ত করা হয়, কিন্তু একে অপরের সাথে সংযুক্ত করা গাণিতিকভাবে অসম্ভব। একটি বার্তা প্রাইভেট কী ব্যবহার করে এনক্রিপ্ট করা হলে কেবল পাবলিক কী দ্বারা ডিক্রিপ্ট করা যেতে পারে এবং বিপরীত।

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

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