এনক্রিপশন নিয়ে কথা বলতে গেলে অধিকাংশ মানুষ মনে করে এটি কেবল এক দশক পুরানো। যাইহোক, এটি ইতিহাসে গভীরে রুটেড। সবচেয়ে বিখ্যাত উদাহরণ হতে পারে দ্বিতীয় বিশ্বযুদ্ধ থেকে, যখন জার্মানরা Enigma নামক একটি মেশিন ব্যবহার করতেন তাদের নৌবাহিনীতে পাঠানোর আগে মেসেজ এনক্রিপ্ট করার জন্য।
প্রচলিত ডেটা এনক্রিপশন মেথডগুলো স্পষ্টভাবে রিভার্স ইঞ্জিনিয়ারিং দিয়ে ক্র্যাক করা সহজ ছিল। কিন্তু আধুনিক এনক্রিপশন টেকনিকগুলো অনেক বেশি জটিল এবং ক্র্যাক করার জন্য অনেক কম্পিউটিং পাওয়ার দরকার।
এনক্রিপশন অধিকাংশত তথ্যকে পাঠক এবং প্রাপকের মাঝপথে ইন্টারসেপ্ট করার চেষ্টা কারো কাছে অপাঠ্য করার জন্য ব্যবহার হয়।
যদি এই দুজনের বাইরে কেউ ডেটা পড়তে চায়, সেটি স্ক্র্যাম্বল্ড বা কোডেড ফর্মে থাকবে যা তাদের জন্য অপাঠ্য। একবার ডিক্রিপ্ট হলে সেটি তার মূল ফর্মে ফিরে আসে।
আপনার দিনপ্রতিদিনের জীবনে আপনি অনেক হাইপার-নেটওয়ার্কিং প্ল্যাটফর্ম যেমন WhatsApp বা অনলাইন ব্যাংকিং পোর্টালের সম্মুখীন হন যা ডেটা সুরক্ষিত ট্রান্সমিশনের জন্য এনক্রিপশন টেকনিক ব্যবহার করে, এক নোড থেকে অন্য নোডে। যদিও আমরা শব্দটির সাথে পরিচিত হলেও, এনক্রিপশন স্ট্যান্ডার্ডের সাথে জড়িত একটি বিশাল নামেঞ্চার আছে, যা আপনাকে জানা উচিত।
তো, আরसमয় নষ্ট না করে গভীরে যাই!
ওপাশে পড়ুন: Google Drive এবং এনক্রিপশন দিয়ে আপনার WhatsApp ডেটা কীভাবে সুরক্ষিত রাখবেন?
প্রতিটি কম্পিউটার ব্যবহারকারীর জানা উচিত এনক্রিপশন টার্ম
Plaintext
Plaintext বা cleartext হলো সবচেয়ে বেসিক টার্মিনোলজি যা এনক্রিপ্টেড নয় এবং সবাই পড়তে পারে। ডেটা যা এনক্রিপশন অ্যালগরিদমের ইনপুট হিসেবে পেন্ডিং থাকে সেটিকে 'plaintext' বলা হয়।
Ciphertext
এটি এনক্রিপ্টেড বা অপাঠ্য ডেটা যা এনক্রিপশন অ্যালগরিদমের রেজাল্ট। এটি র্যান্ডম নাম্বার এবং ক্যারেক্টারের একটি সংগ্রহ, যা এটিকে беспোল করে তোলে। ciphertext কখনও কখনও Cipher হিসেবে রেন্ডার করা হয় কিন্তু এটি মূলত plaintext কে ciphertext-এ কনভার্ট করার একটি অ্যালগরিদম।
Keys
ক্রিপ্টোগ্রাফিক কীগুলো ডেটা এনক্রিপশন/ডিক্রিপশনের মাধ্যম। ক্রিপ্টোগ্রাফিক অ্যালগরিদমের জন্য এটি অপরিহার্য যাতে বুঝতে পারে plain text কীভাবে ciphertext-এ কনভার্ট হবে। একটি কী পুরো এনক্রিপশন অ্যালগরিদম মনে রাখার প্রয়োজন সরিয়ে দেয়, এবং নিরাপত্তার চূড়ান্ত মাধ্যম হিসেবে কাজ করে। একটি কী এবং পাসওয়ার্ডের পার্থক্য হলো, একটি কী অ্যালগরिदম-জেনারেটেড যখন পাসওয়ার্ড ইউজার-জেনারেটেড।
Hashing
ওয়েবসাইটগুলো প্লেইনটেক্সট পাসওয়ার্ডকে একটি এনক্রিপশন অ্যালগরিদম ব্যবহার করে হ্যাশে কনভার্ট করে এবং এই প্রসেসকে Hashing বলা হয়। সেন্ডার এনক্রিপ্টেড মেসেজসহ হ্যাশ পাঠায় রিসিভারের কাছে এবং রিসিভার অন্য পাশে হ্যাশ এবং মেসেজ দুটোই ডিক্রিপ্ট করে। রিসিভার তারপক্ষ থেকে একটি হ্যাশ জেনারেট করে এবং পাওয়া হ্যাশের সাথে তুলনা করে। যদি সেগুলো অভিন্ন দেখায়, তবে এটি একটি সুরক্ষিত ট্রান্সমিশনের একাউন্ট হিসেবে গिनाয়।
Hashing একটি দ্রুত রেন্ডারিং মোড, যেহেতু একটি সংক্ষিপ্ত কী ভ্যালু সর্ট করা মূল ভ্যালু ব্যবহার করার চেয়ে বেশি দক্ষ।
ওপাশে পড়ুন: FileVault Encryption দিয়ে Mac ডেটা কীভাবে সুরক্ষিত করবেন
Salting
প্রচলিত সিকিউরিটি মেথডগুলোর নিরাপত্তা বেড়ানোর জন্য অতিরিক্ত ধাপ দরকার। Salting হ্যাশ করা পাসওয়ার্ডে একটি সল্ট যোগ করে যা একটি র্যান্ডম ডেটা। এই প্রসেসকে Salting the passwords বলা হয়।
লোকেরা একই পাসওয়ার্ড ব্যবহার করতে পারে সে সম্ভাবনা রয়েছে, তাই আরও সংরক্ষণের জন্য salting করা হয়।
উদাহরণস্বরূপ, যদি দুজন ব্যবহারকারীর একই পাসওয়ার্ড থাকে: admin@wsxdn.com
হ্যাশিংয়ের পর, admin@wsxdn.com কনভার্ট হয়ে যায়:
f52fbd32b2b3b86ff88ef6c490628285f482af15ddcb29541f94bcf526a3f6c7
কিন্তু যদি হ্যাকার ডেটাবেসে আক্রমণ করে এবং এই হ্যাশে পৌঁছায়, তবে একই হ্যাশ বিশিষ্ট প্রতিটি অ্যাকাউন্ট একসমান আপসেট থাকবে। তাই, আমরা প্রতিটি ব্যক্তির জন্য আলাদা সল্ট যোগ করি নিরাপত্তা বেড়াতে।
উদাহরণ #১: admin@wsxdn.com + tuna:
3436d420e833d662c480ff64fce63c7d27ddabfb1b6a423f2ea45caa169fb157
উদাহরণ #২: admin@wsxdn.com + Raisins:
728963c70b8a570e2501fa618c975509215bd0ff5cddaf405abf06234b20602c
প্রতিটি ব্যক্তির পাসওয়ার্ডে সল্ট যোগ করার পর, আমরা স্যাল্টিংসহ এবং স্যাল্টিংবিহীন একই পাসওয়ার্ডের হ্যাশ তুলনা করতে পারি-
স্যাল্টিং ছাড়া:
f52fbd32b2b3b86ff88ef6c490628285f482af15ddcb29541f94bcf526a3f6c7
স্যাল্টিং উদাহরণ #১ সহ:
3436d420e833d662c480ff64fce63c7d27ddabfb1b6a423f2ea45caa169fb157
স্যাল্টিং উদাহরণ #২ সহ:
728963c70b8a570e2501fa618c975509215bd0ff5cddaf405abf06234b20602c
Symmetric and Asymmetric Algorithms
আধুনিক এনক্রিপশন অ্যালগরিদম দুটি মোডে অপারেট করে: Symmetric এবং Asymmetric Algorithms। Symmetric Algorithms এনক্রিপশন এবং ডিক্রিপশন দুটির জন্যই একই কী ব্যবহার করে। কীটি দু পক্ষের পারস্পরিক বোঝাপড়ার ওপর ভিত্তি করে kabul করা হয়। Asymmetric Algorithms দুটি ভিন্ন কী ব্যবহার করে: একটি পাবলিক কী এবং একটি প্রাইভেট কী। এটি পারস্পরিক বোঝাপড়ার প্রয়োজন ছাড়াই সুরক্ষিত এনক্রিপশন নিশ্চিত করে।
Public and Private Keys
একটি পাবলিক কী নেটওয়ার্কের সবার কাছে বিতরণ করা হয় কিন্তু একটি প্রাইভেট কী একটি ব্যবহারকারীর সীমাবদ্ধ থাকে। একটি পাবলিক কী মেসেজ এনক্রিপ্ট করতে ব্যবহৃত হয় যখন প্রাপকের মালিকের প্রাইভেট কী দরকার হয় মেসেজ ডিক্রিপ্ট করে পুরো কন্টেন্ট পড়তে।
Digital Signature
যেকোনো কেউ যখন একটি মেসেজ বা লিখিত ডকুমেন্টে সাইন করে, মেসেজটি সিগনেটরি সাথে বাঁধা হয়। একইভাবে, একটি ডিজিটাল সিগনেচার সিগনেটরি ডিজিটাল ডেটার সাথে বাঁধে। এই ডিজিটাল সিগনেচারটি রিসিভার বা যেকোনো থার্ড-পার্টি দ্বারা সিগনেটরি আলাদাভাবে আইডেন্টিফাই করতে ব্যবহার করা যায়। পুরো ডেটার পরিবর্তে হ্যাশ সাইন করা দ্রুত রেন্ডারিং-এর জন্য আরও দক্ষ।
ওপাশে পড়ুন: FileVault Encryption দিয়ে Mac ডেটা কীভাবে সুরক্ষিত করবেন
এনক্রিপশন-ডিক্রিপশন Anomaly কী?
এনক্রিপশনে, প্লেইন টেক্সট সহ এনক্রিপশন কী ইনপुट হিসেবে অ্যালগরিদমে সার্ভ করা হয় প্লেইন টেক্সটকে স্ক্র্যাম্বল্ড বা অপাঠ্য ফর্মে কনভার্ট করতে। এই এনক্রিপ্টেড মেসেজ প্রাপক পক্ষের কাছে পাঠানো হয় যারা একটি কী দিয়ে মেসেজ পড়তে পারে।
রিভার্স প্রসেস হলো Decryption, প্রাপক পক্ষ থেকে পাওয়া এনক্রিপ্টেড মেসেজ বা সিফার টেক্সট সহ একটি ডিক্রিপশন কী ইনপুট হিসেবে ডিক্রিপশন অ্যালগরিদমে সার্ভ করা হয় সিফার টেক্সটকে আবার প্লেইন টেক্সট বা পাঠযোগ্য টেক্সটে কনভার্ট করতে।
এই এনক্রিপশন এবং ডিক্রিপশন কীগুলো গাণিতিক গণনা দ্বারা জেনারেট হওয়া একটি র্যান্ডম নম্বর। এই কীগুলো একটি সীমিত সময় বা সেশনের জন্য বৈধ, সেশন শেষ হলে কী এক্সপায়ার হয়ে যায়।
উপসংহারে:
এনক্রিপশন ছাড়া, ইন্টারনেটে করা যাওয়া অধিকাংশ গুরুত্বপূর্ণ কাজ কঠিন হবে বিশেষ করে অনলাইন ট্রানজ্যাকশন। আমরা বুঝতে পারছি এনক্রিপশনের সাথে জড়িত গাণিতিক ভিত্তি একজন সাধারণ মানুষের জন্য বুঝতে জটিল কাজ, কারণ অধিকাংশ মানুষ এর সাথে জড়িত টার্মিনোলজি থেকে অনভিজ্ঞ। আশা করি এই ব্লগ আপনার জন্য বেসিক এনক্রিপশন টার্ম ও এর অর্থ বুঝতে একটি ট리트 হয়েছে।