ইনক্রিপশন (Encryption) কি? ইনক্রিপশন কীভাবে কাজ করে?

ইনক্রিপশন

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

আপনার আরো ভালো লাগতে পারে

ইনক্রিপশন (Encryption) কি?

ইনক্রিপশন (Encryption) কি?

দেখুন ইনক্রিপশন কোন নতুন জিনিস নয়। এমনটা নয় যে আমরা কেবল এই পদ্ধতি ২-৩ বছর আগ থেকে ব্যবহার করছি। আমরা অনেক সাল আগে থেকেই এটি ব্যবহার করে আসছি। ইনক্রিপশন হচ্ছে এমন এক পদ্ধতি যার মাধ্যমে আপনি যখন কোন ডাটা কাওকে পাঠানোর জন্য বা কোথায় লিখে রাখার জন্য বা স্টোর করার জন্য তৈরি করবেন তখন তা এমন একটি অবস্থায় বা এমন একটি ফর্মে থাকবে যাতে ডাটাটি আপনি শুধু যাকে পাঠানোর জন্য তৈরি করেছেন, যেন সেই শুধু তা অ্যাক্সেস করতে পারে। এবং ভুল করে যদি কোন অনাকাঙ্ক্ষিত ব্যাক্তির কাছে চলেও যায় তবে সে ডাটাটির কোন মতলব না বের করতে পারে। এই হচ্ছে Encryption এর মূল মন্ত্র। চলুন একটি উদাহরনের মাধ্যমে বিষয়টিকে আরো পরিষ্কার করা যাক। মনে করুন একটি সাধারন Encryption তৈরি করার জন্য আমি “A,B,C,D” থেকে “Z” পর্যন্ত “A” কে লিখব “B” হিসেবে, “B” কে লিখব “C” হিসেবে এবং “C” কে লিখব D হিসেবে। এভাবেই আমি যে শব্দটি আসলে লিখতে চাচ্ছি তার সামনের অক্ষর ব্যবহার করে লিখব। এখন মনে করুন আমি লিখতে চাচ্ছি (“TECHUBS”), এখন উপরের নিয়ম অনুসারে Encryption করার পরে শব্দটি হবে (“UFDIVCT”)। এখন Encryption করার পরে যে কোড তৈরি হলো, যদি কারো এটা না জানা থাকে যে আমি Encryption করার জন্য একটি করে সামনের শব্দ ব্যবহার করেছি, তবে এর ভেতর লুকিয়ে থাকা আসল শব্দটি বের করা সম্ভব হবে না। এবং কেউ একে ডি-কোড করতে পারবেনা।

তো এতো ছিল একদম সাধারন ইনক্রিপশন এর কথা। এখন এই Encryption থেকে যদি আপনার আবার আসল ডাটা বের করার প্রয়োজন হয় তবে “কী (Key)” কি হবে? Key এটা হবে যে, যা লিখা আছে তার চেয়ে একটি অক্ষর কম করতে হবে। যেমনঃ কোডে লেখা আছে “U” তবে সেখান থেকে একটি অক্ষর কম করে দিলে বা পিছে আসলে হবে “T” এভাবেই “F” থেকে আসবে “E” ইত্যাদি করে সাজাতে থাকলে অবশেষে আসল শব্দটি পাওয়া সম্ভব। এখন এই শব্দটি আমি যদি কাওকে পাঠিয়ে দেই এবং সেই ব্যাক্তিটির কাছে যদি শব্দটির সঠিক Key থাকে তবে সে অনেক সহজেই এই শব্দটি পড়তে সক্ষম হবে। তো এই হচ্ছে একটি সাধারন Encryption এবং তার Key এর ধারণা। Encryption আমরা অনেক দিন যাবত ব্যবহার করে আসছি। যেমনটা ধরুন পুরাতন বিশ্ব যুদ্ধের কথা, তখন বিভিন্ন Encryption এর মাধ্যমে বিভিন্ন সিক্রেট ম্যাসেজ পাঠানো হতো। কিন্তু কম্পিউটার এর দুনিয়ায় Encryption করার পদ্ধতি সামান্য একটু আলদা, কিন্তু বিষয় বস্তু একই।

পাবলিক কী (Key) ইনক্রিপশন

পাবলিক কী (Key) ইনক্রিপশন

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

মনে করুন আপনি কোন ম্যাসেজকে পাবলিক কী (Key) ব্যবহার করে লক করে ফেললেন। তো সেই ম্যাসেজ শুধু মাত্র প্রাইভেট কী (Key) দ্বারাই ওপেন করা সম্ভব। আবার যদি আপনি কোন ম্যাসেজকে প্রাইভেট কী (Key) দ্বারা লক করেন তবে সেটি শুধু মাত্র পাবলিক কী (Key) ব্যবহার করেই ওপেন করা সম্ভব। আরো বিস্তারিত বোঝার আগে এই ফর্মুলা মাথার ভেতর ভালোভাবে ঢুকিয়ে নিন। এখন মনে করুন আমার আরেকজন ইউজারকে একটি ম্যাসেজ লিখে পাঠাতে হবে “হ্যালো”। তো আমি কি করবো, আরেকজন ইউজার এর যে পাবলিক কী (Key) আছে, (যেটা সবার কাছে থাকে) সেই পাবলিক কী (Key) দিয়ে আমার ম্যাসেজ “হ্যালো” কে ইনক্রিপটেড করে তার কাছে পাঠিয়ে দেবো। সে ইউজার শুধু মাত্র তার প্রাইভেট কী (Key) ব্যবহার করেই আমার পাঠানো ম্যাসেজটি ওপেন করতে সক্ষম হবে। এর মাঝে যদি কেও ম্যাসেজটি পেয়েও যায়, তবুও সে তা ওপেন করতে পারবেনা। ঠিক এইভাবেই এই ম্যাসেজটিকে যদি আমি আরেকটু সিকিউর করতে চাই এবং আমি যদি এটা নিশ্চিত করাতে চাই যে ম্যাসেজটি আমিই পাঠিয়েছি তবে (কেনোনা পাবলিক কী সকলের কাছে থাকে, এটা ব্যবহার করে যে কেউই ম্যাসেজ পাঠাতে পারে), প্রথমে আমি যে ইউজারকে ম্যাসেজটি পাঠাতে চাই তার পাবলিক কী (Key) দিয়ে ম্যাসেজটিকে লক করবো তারপর দ্বিতীয়বার আমার প্রাইভেট কী (Key) দিয়ে ম্যাসেজটি লক করবো। যখন ম্যাসেজটি ঐ ইউজারের কাছে চলে যাবে তখন সে দেখবে যে ”  ওহ এই ম্যাসেজ তো প্রাইভেট কী দ্বারা লক করা ” তখন সে তার কাছে থাকা আমার পাবলিক কী ব্যবহার করে প্রথমে ম্যাসেজটিকে আনলক করবে এবং পরে তার নিজের প্রাইভেট কী ব্যবহার করে ম্যাসেজটিকে সম্পূর্ণ আনলক করবে। বন্ধুরা বিষয় বস্তুটি সামান্য একটু ঝামেলার কিন্তু আশা করি এই প্যারাগ্রাফটি ২-৩ বার পরলে সকল বিষয় বস্তু পানির মতো পরিষ্কার হয়ে যাবে। অর্থাৎ, পাবলিক কী (Key) ইনক্রিপশন প্রাইভেট কী (Key) দ্বারা এবং প্রাইভেট কী (Key) ইনক্রিপশন পাবলিক কী (Key) দ্বারা ডিক্রিপ্ট করা সম্ভব। এবং এটি এই ফর্মুলার উপরই কাজ করে। এই কী ফর্মুলা মূলত কোন ডাটা ট্র্যান্সমিশন করার ক্ষেত্রে ব্যবহার করা হয়। যেমন ধরুন, আপনি কোন অ্যাকাউন্ট লগইন করলেন বা কাওকে লাগাতার ম্যাসেজ পাঠাচ্ছেন, ইত্যাদি সময়ে এই পদ্ধতি ব্যবহার করে আপনার ডাটা সিকিউর করা হয়।

পাবলিক কী Key
পাবলিক কী রহস্য

কিন্তু যে ডাটা গুলো আগে থেকেই স্টোর করা থাকে সেগুলোকে কীভাবে সিকিউর করা হয়? যেমন ধরুন আপনি গুগল ড্রাইভ বা ড্রপবক্সে অনেক ফটোস আপলোড করে রেখেছেন কিংবা আপনার ক্রেডিটকার্ড ইনফর্মেশন সেভ হয়ে আছে বিভিন্ন ওয়েবসাইটে। তো এই সকল ডাটা সিকিউর করার জন্য হ্যাস-টেবিল নামক পদ্ধতির সাহায্য নেওয়া হয়। এখন এই হ্যাস টেবিল কি? যেমন ধরুন আমার নাম “তাহমিদ বোরহান”। এখন বিভিন্ন ওয়েবসাইটে আমার নাম সেভ করা আছে। কিন্তু হ্যাস টেবিল পদ্ধতি ব্যবহার করে সেভ করা থাকলে আমার নামটি সরাসরি “তাহমিদ বোরহান” নামে সেভ করা থাকবে না। বরং একসাথে অনেকগুলো টেক্সট এর সাথে জগাখিচুড়ি পাকিয়ে এক অন্য অর্থে সেভ করা থাকবে। এবং এর রিকভারি আবার একটি কী (Key) দ্বারায় করা সম্ভব। আর এর কী (Key) শুধুমাত্র ঐ ওয়েবসাইট টির কাছেই থাকে। তো সাধারন ভাবে এই ডাটা গুলো ডি-কোড করা এক প্রকার অসম্ভব। কিন্তু তারপরেও এই বিজ্ঞান ও প্রযুক্তির যুগে ইম্পসিবল বলে কিছু নেই। এক্সপার্টসরা সবসময় লেগে থাকে কীভাবে যেকোনো জায়গা থেকে যেকোনো তথ্য হাতিয়ে নেওয়া যায় তা নিয়ে। তো দুই দিকেই মোটামুটি একটি দৌড় লেগে থাকে, যারা সিকিউরিটি এক্সপার্ট তারা ডাটা গুলোকে আরো সেফ করার কথা চিন্তা করে আর যারা ডি-কোড এক্সপার্ট তারা সবসময় ইনক্রিপশন এর ভুল ত্রুটি খোঁজার চেষ্টা করে।

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

শেষ কথা


WiREBD এখন ইউটিউবে, নিয়মিত টেক/বিজ্ঞান/লাইফ স্টাইল বিষয়ক ভিডিও গুলো পেতে WiREBD ইউটিউব চ্যানেলটি সাবস্ক্রাইব করুণ! জাস্ট, youtube.com/wirebd — এই লিংকে চলে যান এবং সাবস্ক্রাইব বাটনটি হিট করুণ!

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

তাহমিদ বোরহান
প্রযুক্তির জটিল টার্মগুলো কি আপনাকে বিভ্রান্ত করছে? কিছুতেই কি আপনার মস্তিষ্কে পাল্লা পড়ছে না? তাহলে বন্ধু, আপনি এবার সঠিক জায়গায় এসেছেন—কেনোনা এখানে আমি প্রযুক্তির সকল জটিল বিষয় গুলো ভাঙ্গিয়ে সহজ পানির মতো উপস্থাপন করার চেষ্টা করি, যাতে সকলে সহজেই সকল টেক টার্ম গুলো বুঝতে পারে।