সরাসরি পর্বে যান
পর্ব ৪৪ · ৫৫-এর মধ্যে · মডিউল ৭

এনক্রিপশন, ডিজিটাল সিগনেচার আর HTTPS

Encryption, Hashing, Digital Signatures & HTTPS — How Secrets Travel Safely

Taught in Bangla, this lesson explains how secrets travel safely: plaintext, ciphertext, keys and ciphers, classical ciphers from Caesar to the one-time pad, symmetric encryption with AES and the key-distribution problem, public and private keys, key exchange and hybrid encryption, hash functions, digital signatures, certificates and CAs, the HTTPS handshake, end-to-end and disk encryption, and the quantum threat.

এই পর্বে যা শিখবেন

  • plaintext, ciphertext, key, cipher, এনক্রিপশন, ডিক্রিপশন, cryptography আর cryptanalysis-এর পাঠ্যবই-মানের সংজ্ঞা
  • Caesar cipher থেকে AES পর্যন্ত — কেন পুরোনো সাইফার সহজে ভাঙে আর আধুনিকগুলো কেন ভাঙে না
  • public key আর private key-এর কাজ, key exchange, hybrid encryption আর hash function
  • ডিজিটাল সিগনেচার, সার্টিফিকেট, HTTPS-এর handshake আর তালা-চিহ্নের আসল মানে
  • end-to-end encryption, ডিস্ক এনক্রিপশন, কোয়ান্টাম কম্পিউটারের হুমকি — আর AI-এর দেওয়া ক্রিপ্টো-পরামর্শ যাচাইয়ের নিয়ম

১ · এনক্রিপশন কী — তালা, চাবি আর কয়েকটি মূল শব্দ

পর্ব ৪৩-এ আপনি শক্ত পাসওয়ার্ড, 2FA আর phishing চেনা নিয়ে পড়েছেন — নিজের অ্যাকাউন্টের দরজা পাহারা দেওয়া। কিন্তু দরজার বাইরের পথটা? আপনি bKash-এর অ্যাপে PIN দিলেন, WhatsApp-এ মাকে একটি বার্তা পাঠালেন। সেই তথ্য আপনার ফোন থেকে বের হয়ে Wi-Fi রাউটার, মোবাইল টাওয়ার, অনেকগুলো অপরিচিত কম্পিউটার পার হয়ে গন্তব্যে পৌঁছায় (পর্ব ৩৩)। পথের যেকোনো যন্ত্রের মালিক চাইলে সেটা দেখতে পারতেন — যদি না তথ্যটি এনক্রিপ্ট করা থাকে।

মূল ধারণা

এনক্রিপশন মানে একটি গোপন চাবি দিয়ে বার্তাকে এমনভাবে এলোমেলো করা, যাতে সঠিক চাবি যার কাছে আছে, শুধু সে-ই আবার পড়তে পারে। পথে কেউ এলোমেলো রূপটি দেখলেও অর্থ বুঝবে না।

পরীক্ষার খাতা বোর্ডে যায় তালাবদ্ধ ট্রাংকে। ট্রাকচালক, কুলি, পাহারাদার — সবাই ট্রাংক ছুঁতে পারেন, কিন্তু খাতা পড়তে পারেন না, কারণ চাবি আছে শুধু বোর্ডের কাছে। এনক্রিপশন হলো ডেটার জন্য সেই ট্রাংক। পার্থক্য একটাই: ডিজিটাল তালা গণিত দিয়ে বানানো, আর ঠিকমতো বানালে সারা পৃথিবীর কম্পিউটার মিলেও ভাঙতে পারে না।

যে শব্দগুলো পরীক্ষায় আর জীবনে বারবার আসবে

শব্দমানেউদাহরণ
Plaintextমূল, পড়ার মতো বার্তাDHAKA
Ciphertextএনক্রিপ্ট করার পরের এলোমেলো রূপGKDND
Key (চাবি)গোপন মান, যা ঠিক করে বার্তা কীভাবে এলোমেলো হবে“৩ ঘর সরাও”-এর ৩
Cipher / algorithmএলোমেলো করার নিয়ম বা পদ্ধতিCaesar cipher, AES
এনক্রিপশনplaintext → ciphertext (চাবি দিয়ে)DHAKA → GKDND
ডিক্রিপশনciphertext → plaintext (সঠিক চাবি দিয়ে)GKDND → DHAKA
Cryptographyগোপন যোগাযোগের নিয়ম বানানোর বিজ্ঞাননতুন cipher নকশা
Cryptanalysisচাবি ছাড়াই cipher ভাঙার বিজ্ঞানEnigma ভাঙা

HSC ICT-র ভাষায়: প্লেইনটেক্সটকে সাইফারটেক্সটে রূপান্তর করার প্রক্রিয়াকে এনক্রিপশন বলে, আর সাইফারটেক্সটকে আবার প্লেইনটেক্সটে রূপান্তর করার প্রক্রিয়াকে ডিক্রিপশন বলে। এই দুই বাক্য মুখস্থ রাখলে অনেক MCQ সহজ হয়ে যায়।

ক্রিপ্টোগ্রাফি তিনটি জিনিস পাহারা দেয়

  • গোপনীয়তা (confidentiality): অন্য কেউ পড়তে পারবে না — এনক্রিপশনের কাজ।
  • অখণ্ডতা (integrity): পথে কেউ এক অক্ষরও বদলালে ধরা পড়বে — hash-এর কাজ।
  • সত্যতা (authenticity): বার্তাটি সত্যিই দাবি করা ব্যক্তির কাছ থেকে এসেছে — ডিজিটাল সিগনেচারের কাজ।

নিয়মটা গোপন নয়, চাবিটা গোপন: ১৮৮৩ সালে Auguste Kerckhoffs লিখেছিলেন, একটি ভালো cipher-এর নিয়ম শত্রু জেনে গেলেও তা নিরাপদ থাকা উচিত — গোপন থাকবে শুধু চাবি। এই Kerckhoffs-এর নীতি আজও মেনে চলা হয়। AES আর RSA-র পুরো নিয়ম যে কেউ পড়তে পারেন, তবু চাবি ছাড়া এগুলো ভাঙা যায় না। উল্টো দিকে, “আমার পদ্ধতি কেউ জানে না, তাই নিরাপদ” — এটা নিরাপত্তা নয়।

২ · পুরোনো সাইফার — Caesar থেকে one-time pad

দুই হাজার বছরের পুরোনো একটি পদ্ধতি দিয়ে শুরু করি, কারণ এতে সব মূল ধারণা এক নজরে দেখা যায়। রোমান সেনাপতি জুলিয়াস সিজার গোপন চিঠিতে প্রতিটি অক্ষরকে বর্ণমালায় ৩ ঘর সামনের অক্ষর দিয়ে বদলে দিতেন — এমনটাই লিখে গেছেন রোমান ইতিহাসবিদ Suetonius. এর নাম তাই Caesar cipher. এখানে নিয়ম (algorithm) হলো “সামনে সরাও”, আর চাবি হলো “কত ঘর”।

নিয়মচাবি = ৩
plain : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
cipher: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
                                                 ↑ শেষে ঘুরে আবার A
প্রথম দুই অক্ষরD, H
  D → E → F → G
  H → I → J → K

  DHAKA
  GK___
বাকি অক্ষরA, K, A
  A → D
  K → N
  A → D   (একই অক্ষর → একই ফল)

  plaintext : DHAKA
  ciphertext: GKDND
ডিক্রিপশন৩ ঘর পেছনে
  G → D    K → H    D → A    N → K    D → A

  GKDND  ──(চাবি ৩, উল্টো দিকে)──►  DHAKA
চাবি জানা নেই?brute force
 key 1 → FJCMC     অর্থহীন
 key 2 → EIBLB     অর্থহীন
 key 3 → DHAKA     ✔ অর্থপূর্ণ!
 key 4 → CGZJZ     অর্থহীন
 key 5 → BFYIY     অর্থহীন
  ...
 key 25 → HLEOE    অর্থহীন

 মোট চাবি মাত্র ২৫টি — হাতেই এক মিনিটের কাজ
  1. নিয়ম। ওপরের সারি সাধারণ বর্ণমালা, নিচের সারি ৩ ঘর সরানো। Z-এর পরে আবার A থেকে শুরু — ঘড়ির কাঁটার মতো ঘুরে আসা। গণিতের ভাষায়, এটা “২৬ দিয়ে ভাগশেষ” (modulo 26) হিসাব।
  2. এক এক করে বদলানো। D থেকে তিন ঘর সামনে G, H থেকে K. ciphertext তৈরি হচ্ছে অক্ষর ধরে ধরে।
  3. ফল GKDND. লক্ষ করুন, DHAKA-র দুটি A দুটিই D হয়েছে। একই অক্ষর সবসময় একই অক্ষরে বদলায় — এটাই পরে এই cipher-এর সবচেয়ে বড় দুর্বলতা হবে।
  4. ডিক্রিপশন। প্রাপক চাবি জানেন, তাই প্রতিটি অক্ষর ৩ ঘর পেছনে সরিয়ে DHAKA ফিরে পান। একই চাবি দুই দিকেই — এটি একটি symmetric cipher.
  5. Brute force. চাবি না জানলেও সমস্যা নেই: সম্ভাব্য চাবি মাত্র ২৫টি। সবগুলো চেষ্টা করুন, যেটায় অর্থপূর্ণ শব্দ আসে, সেটাই উত্তর। সব চাবি একে একে চেষ্টা করার এই কৌশলের নাম brute force attack. শিক্ষা: চাবির সংখ্যা কম হলে cipher যত চালাকই হোক, টেকে না।

Substitution cipher আর অক্ষর গোনার কৌশল

চাবি বাড়াতে হলে? প্রতিটি অক্ষরের জন্য এলোমেলো যেকোনো অক্ষর বসান — A→Q, B→M, C→X… এই substitution cipher-এ সম্ভাব্য চাবি ২৬! (২৬ ফ্যাক্টোরিয়াল) — প্রায় ৪ × ১০২৬টি। brute force অসম্ভব। তবু এটা সহজেই ভাঙে! নবম শতাব্দীতে বাগদাদের দার্শনিক আল-কিন্দি দেখান কীভাবে: যেকোনো ভাষায় কিছু অক্ষর বেশি আসে — ইংরেজিতে E সবচেয়ে বেশি, তারপর T, A. লম্বা ciphertext-এ সবচেয়ে বেশিবার আসা অক্ষরটি সম্ভবত E. এই frequency analysis শব্দজট মেলানোর মতো একটার পর একটা অক্ষর খুলে দেয়, কারণ একই অক্ষর সবসময় একই অক্ষরে বদলায়।

Vigenère — একাধিক সরণ

ষোড়শ শতাব্দীতে ইউরোপে একটি উন্নত রূপ আসে, যা পরে Vigenère cipher নামে পরিচিত হয়: চাবি একটি শব্দ, আর তার প্রতিটি অক্ষর আলাদা সরণ। চাবি BCD হলে প্রথম অক্ষর ১ ঘর, দ্বিতীয় ২ ঘর, তৃতীয় ৩ ঘর, তারপর আবার ১… DHAKA হয়ে যায় EJDLC — দুটি A এবার ভিন্ন অক্ষর (D আর C)! অক্ষর গোনার কৌশল সরাসরি কাজ না করায় একে বহুদিন “অভেদ্য” বলা হতো। ১৮৬৩ সালে Friedrich Kasiski দেখান, চাবি বারবার পুনরাবৃত্ত হয় বলে ciphertext-এ ছন্দ ধরা পড়ে, আর তা থেকে চাবিও বের করা যায়।

One-time pad — একমাত্র নিখুঁত cipher

চাবি যদি বার্তার সমান লম্বা হয়, পুরোপুরি এলোমেলো হয়, আর একবারের বেশি কখনো ব্যবহার না হয়? তাহলে প্রতিটি অক্ষরের সরণ আলাদা আর অনুমান-অযোগ্য। এই one-time pad-এর ciphertext থেকে কিছুই জানা যায় না — GKDND যেমন DHAKA হতে পারে, তেমনি অন্য যেকোনো পাঁচ অক্ষরের শব্দও হতে পারে। ১৯৪০-এর দশকে Claude Shannon গাণিতিকভাবে প্রমাণ করেন, এটি সত্যিই অভেদ্য। তবু প্রতিদিনের কাজে চলে না: প্রতিটি বার্তার জন্য সমান লম্বা নতুন চাবি আগে থেকে নিরাপদে পৌঁছে দিতে হবে। চাবি পৌঁছানোর এই সমস্যাটি মনে রাখুন — পুরো পর্বের গল্প এর চারপাশে ঘোরে।

৩ · আধুনিক symmetric এনক্রিপশন — AES আর চাবির সমস্যা

আধুনিক cipher অক্ষর নিয়ে কাজ করে না, কাজ করে বিট নিয়ে (পর্ব ১৬)। ছবি, ভিডিও, PDF — সবই শেষ পর্যন্ত 0 আর 1. যে পদ্ধতিতে এনক্রিপশন আর ডিক্রিপশন একই চাবি দিয়ে হয়, তাকে বলে symmetric encryption. আজকের প্রধান symmetric cipher হলো AES (Advanced Encryption Standard) — বেলজিয়ামের দুই গবেষক Joan Daemen আর Vincent Rijmen-এর নকশা “Rijndael”, যা একটি উন্মুক্ত আন্তর্জাতিক প্রতিযোগিতার পরে ২০০১ সালে যুক্তরাষ্ট্রের মান-সংস্থা NIST মান হিসেবে গ্রহণ করে।

AES ডেটাকে ১২৮ বিটের (১৬ বাইট) টুকরোয় ভাগ করে, আর প্রতিটি টুকরোকে চাবি মিশিয়ে ১০ থেকে ১৪ “রাউন্ড” ধরে ওলট-পালট করে — বাইট বদলানো, সারি ঘোরানো, কলাম মেশানো, চাবি যোগ। শেষে প্রতিটি আউটপুট বিট ইনপুটের প্রতিটি বিট আর চাবির প্রতিটি বিটের ওপর নির্ভর করে। চাবির আকার তিন রকম: ১২৮, ১৯২ বা ২৫৬ বিট। আধুনিক CPU-তে AES-এর জন্য বিশেষ নির্দেশ (instruction) থাকে, তাই আপনার ফোন প্রতি সেকেন্ডে শত শত মেগাবাইট এনক্রিপ্ট করতে পারে — টেরও পাবেন না।

cipherসম্ভাব্য চাবিbrute force-এর অবস্থা
Caesar২৫হাতে এক মিনিট
DES (১৯৭৭, ৫৬ বিট)২৫৬ ≈ ৭ × ১০১৬১৯৯৮ সালে একটি বিশেষ যন্ত্র তিন দিনের কম সময়ে ভেঙেছিল — তাই বাতিল
AES-128২১২৮ ≈ ৩.৪ × ১০৩৮প্রতি সেকেন্ডে এক লাখ কোটি চাবি পরীক্ষা করলেও সময় লাগবে মহাবিশ্বের বয়সের কোটি গুণের বেশি
AES-256২২৫৬ ≈ ১.২ × ১০৭৭কল্পনারও বাইরে; কোয়ান্টাম যুগের জন্যও যথেষ্ট বলে ধরা হয়

প্রতিটি বাড়তি বিট চাবির সংখ্যা দ্বিগুণ করে — ১২৮ থেকে ১২৯ বিট মানে কাজ দ্বিগুণ। এজন্য চাবি একটু লম্বা করলেই আক্রমণকারীর কাজ অসম্ভবের ঘরে চলে যায়। AES-কে কেউ brute force দিয়ে ভাঙে না; বাস্তবের আক্রমণ হয় অন্য পথে — দুর্বল পাসওয়ার্ড থেকে বানানো চাবি, চুরি যাওয়া চাবি, বা ভুলভাবে ব্যবহার।

চাবি পৌঁছানোর সমস্যা

AES দ্রুত আর শক্তিশালী, কিন্তু একটি মৌলিক প্রশ্ন রয়ে যায়: আপনি আর আপনার ব্যাংকের সার্ভার একই গোপন চাবি পাবেন কীভাবে? চাবিটা ইন্টারনেটে পাঠালে পথে যে কেউ দেখে ফেলবে। আগে দেখা করে চাবি দিয়ে আসা? লাখো ওয়েবসাইটের সাথে তা অসম্ভব। হাজার বছর ধরে এর একমাত্র সমাধান ছিল বিশ্বস্ত বার্তাবাহক। নতুন সমাধান এলো ১৯৭০-এর দশকে।

৪ · Public key আর private key — খোলা তালা, গোপন চাবি

Asymmetric encryption-এ (একে public-key cryptography-ও বলে) প্রত্যেকের থাকে একজোড়া চাবি, যারা গাণিতিকভাবে যুক্ত: একটি public key, যা সবাইকে দেওয়া যায়, আর একটি private key, যা শুধু মালিকের কাছে থাকে এবং কখনো কাউকে দেওয়া হয় না। public key দিয়ে বন্ধ করা জিনিস খোলে শুধু তার জোড়ার private key দিয়ে।

  1. Rinaখোলা তালা বিলায়public key
  2. Karimবাক্সে তালা দেয়এনক্রিপশন
  3. পথে কেউবাক্স দেখেখুলতে পারে না
  4. Rinaনিজের চাবিতে খোলেprivate key
ধাপ ১তালা সবার জন্য, চাবি শুধু Rina-র
 Rina-র কাছে:  🔑 চাবি (private key) — লুকানো
 বাজারে রাখা:  🔓 🔓 🔓 🔓  খোলা তালা (public key) — যে খুশি নিন
ধাপ ২চাবি ছাড়াই তালা লাগানো যায়
 Karim: "জন্মদিনের উপহার লুকানো আছে আলমারিতে"
        → বাক্সে রাখল → 🔓 টিপে দিল → 🔒
 এখন Karim নিজেও বাক্সটি খুলতে পারবে না!
ধাপ ৩পথে আড়ি পাতা
 পথের কেউ দেখল:  🔒 বাক্স, আর 🔓 খোলা তালা (সবার কাছেই আছে)
 যা নেই:          🔑 Rina-র চাবি
 ফল:              বার্তা পড়া অসম্ভব
ধাপ ৪মালিক খোলে
 Rina: 🔒 + 🔑 → "জন্মদিনের উপহার লুকানো আছে আলমারিতে"  ✔

 উত্তর পাঠাতে? Rina ব্যবহার করবে Karim-এর খোলা তালা।
  1. তালা বিলানো। Rina অনেকগুলো খোলা তালা সবাইকে দিল, কিন্তু চাবি রাখল নিজের কাছে। ডিজিটাল তালা কপি করা বিনামূল্যে — public key যত খুশি ছড়ানো যায়।
  2. তালা দেওয়া। Karim বার্তা বাক্সে রেখে Rina-র খোলা তালা টিপে বন্ধ করল — তালা বন্ধ করতে চাবি লাগে না। বন্ধ করার পরে Karim নিজেও আর বাক্সটি খুলতে পারবে না।
  3. আড়ি পাতা। পথের লোকের কাছে বাক্স আর খোলা তালা আছে, কিন্তু তালা দিয়ে তালা খোলা যায় না। আগে কোনো গোপন কথা ভাগ না করেও Karim নিরাপদে বার্তা পাঠাল — চাবি পৌঁছানোর সমস্যা এখানেই মিটল।
  4. খোলা। শুধু Rina-র private key বাক্স খোলে। মনে রাখার সূত্র: গোপন বার্তা পাঠাতে প্রাপকের public key দিয়ে এনক্রিপ্ট, প্রাপক খোলেন নিজের private key দিয়ে। পরীক্ষায় এটাই সবচেয়ে বেশি আসে।

গণিতের একমুখী দরজা — RSA আর elliptic curve

এমন তালা কীভাবে সম্ভব? এমন গাণিতিক কাজ লাগে, যা এক দিকে সহজ কিন্তু উল্টো দিকে অসম্ভব রকম কঠিন। ১৯৭৭ সালে MIT-র Ron Rivest, Adi Shamir আর Leonard Adleman যে পদ্ধতি প্রকাশ করেন — তাঁদের নামের আদ্যক্ষরে RSA — তা দাঁড়িয়ে আছে গুণ আর উৎপাদকে বিশ্লেষণের ওপর। ৬১ × ৫৩ = ৩২৩৩ — এক মিনিটের অঙ্ক। কিন্তু উল্টোটা: “৩২৩৩ কোন দুই মৌলিক সংখ্যার গুণফল?” — এতে অনেক বেশি চেষ্টা লাগে। আসল RSA-তে সংখ্যাটি প্রায় ৬০০ অঙ্কের (২০৪৮ বিট); তাকে উৎপাদকে ভাঙার কোনো দ্রুত পদ্ধতি সাধারণ কম্পিউটারের জন্য জানা নেই। গুণফলটি public key-র অংশ, আর মৌলিক সংখ্যা দুটির জ্ঞান private key-র ভিত্তি।

আজ নতুন ব্যবস্থায় বেশি ব্যবহার হয় elliptic curve cryptography (ECC) — একটি বিশেষ বক্ররেখার বিন্দু নিয়ে অঙ্ক, যেখানে মোটামুটি ২৫৬ বিটের চাবি প্রায় ৩০৭২ বিটের RSA-র সমান নিরাপত্তা দেয়। ছোট চাবি মানে দ্রুত হিসাব আর কম ডেটা — মোবাইলের জন্য আদর্শ।

রং মিশিয়ে চাবি বানানো — Diffie–Hellman

আরেকটি কৌশলে দুজন খোলা পথে কথা বলেই একই গোপন চাবিতে পৌঁছান — কোনো চাবি না পাঠিয়ে। ১৯৭৬ সালে Whitfield Diffie আর Martin Hellman এটি প্রকাশ করেন; নাম Diffie–Hellman key exchange. রং মিশিয়ে বোঝা সহজ:

  1. Rina আর Karim সবার সামনে একটি সাধারণ রং ঠিক করেন — হলুদ।
  2. প্রত্যেকে মনে মনে একটি গোপন রং বাছেন: Rina লাল, Karim নীল।
  3. Rina হলুদ + লাল মিশিয়ে কমলা পাঠান; Karim হলুদ + নীল মিশিয়ে সবুজ পাঠান। পথের সবাই হলুদ, কমলা আর সবুজ দেখে।
  4. Rina পাওয়া সবুজে নিজের লাল মেশান; Karim পাওয়া কমলায় নিজের নীল মেশান। দুজনের হাতেই এখন হলুদ + লাল + নীল — একই বাদামি রং!

আড়ি পাতা ব্যক্তি মেশানো রং থেকে লাল বা নীল আলাদা করতে পারেন না — গণিতে “রং মেশানো” একটি একমুখী হিসাব। আজকের প্রায় প্রতিটি HTTPS সংযোগ এই ধারণার elliptic-curve রূপ দিয়ে শুরু হয়।

Hybrid encryption — দুই পরিবারের মিলন

Asymmetric এনক্রিপশন চাবির সমস্যা মেটায়, কিন্তু AES-এর তুলনায় শত-হাজার গুণ ধীর। তাই বাস্তবে দুটো একসাথে চলে — hybrid encryption: প্রথমে public-key কৌশলে (বা Diffie–Hellman দিয়ে) নিরাপদে একটি নতুন AES চাবিতে একমত হওয়া, তারপর সব আসল ডেটা সেই দ্রুত AES চাবি দিয়ে। HTTPS, WhatsApp, VPN — সবাই এভাবেই কাজ করে।

৫ · Hash — ডেটার আঙুলের ছাপ

এবার ক্রিপ্টোগ্রাফির তৃতীয় হাতিয়ার, যার কোনো চাবিই নেই। Hash function যেকোনো আকারের ডেটা — একটি শব্দ বা ৫ GB-র ভিডিও — নিয়ে একটি নির্দিষ্ট দৈর্ঘ্যের ছোট মান দেয়, যাকে hash বা digest বলে। সবচেয়ে প্রচলিত SHA-256 সবসময় ২৫৬ বিট, মানে ৬৪টি hexadecimal অঙ্ক দেয় (পর্ব ১৬)। মানুষের আঙুলের ছাপ যেমন মানুষটি নয়, কিন্তু তাকে নিশ্চিতভাবে চেনায় — hash তেমনই।

একই ইনপুট → একই ফল

“abc”-এর SHA-256 আজ, কাল, যেকোনো কম্পিউটারে একই। তাই দুই জায়গায় হিসাব করে মেলানো যায়।

সামান্য বদল → পুরো বদল

এক অক্ষর বদলালে hash-এর প্রায় অর্ধেক বিট বদলে যায় — একে বলে avalanche effect.

একমুখী

hash থেকে মূল ডেটা বের করার কোনো উপায় নেই; শুধু অনুমান করে করে মেলানো।

সংঘর্ষ খুঁজে পাওয়া যায় না

একই hash-এর দুটি ভিন্ন ইনপুট বানানো কার্যত অসম্ভব — তাই hash মিললে ডেটা অক্ষত।

Hash কোথায় কাজে লাগে

  • ফাইলের অখণ্ডতা: Linux বা কোনো সফটওয়্যারের ডাউনলোড পেজে প্রায়ই একটি SHA-256 মান দেওয়া থাকে। ডাউনলোড শেষে নিজে hash হিসাব করে মেলান — এক বিট বদলালেও ধরা পড়বে। পর্ব ১৮-এর parity আর checksum শুধু দুর্ঘটনাজনিত ভুল ধরে; ক্রিপ্টোগ্রাফিক hash ইচ্ছাকৃত কারসাজিও ধরে। Windows-এর PowerShell-এ (পর্ব ২৯) Get-FileHash ফাইলের-নাম লিখলেই ফাইলের SHA-256 মান দেখায়।
  • পাসওয়ার্ড রাখা: ভালো ওয়েবসাইট আপনার পাসওয়ার্ড জমা রাখে না, রাখে তার hash. লগইনের সময় আপনার লেখা পাসওয়ার্ডের hash মিলিয়ে দেখে। ডেটাবেস চুরি গেলেও পাসওয়ার্ড সরাসরি পাওয়া যায় না। তবে লাগে প্রত্যেকের জন্য আলাদা এলোমেলো salt (যাতে একই পাসওয়ার্ডেও hash আলাদা হয়), আর ইচ্ছা করে ধীর পাসওয়ার্ড-hash — bcrypt, scrypt বা Argon2 — যাতে কোটি কোটি অনুমান করতে বছর লাগে।
  • ডিজিটাল সিগনেচার আর blockchain: সই করা হয় পুরো দলিলের নয়, তার hash-এর ওপর (পরের অংশ)। Bitcoin-এর মতো blockchain-ও SHA-256-এর ওপর দাঁড়ানো।

এনক্রিপশন আর hash গুলিয়ে ফেলবেন না: এনক্রিপশন দুই দিকের রাস্তা — সঠিক চাবিতে ফেরত আসে। hash একমুখী — ফেরত আসার কোনো চাবি নেই। “পাসওয়ার্ড এনক্রিপ্ট করে রাখি” বললে ভুল শোনায়; পাসওয়ার্ড রাখতে হয় salt-সহ ধীর hash করে। আর পুরোনো MD5 বা SHA-1 hash ভাঙা প্রমাণিত — নতুন কাজে ব্যবহার করবেন না।

খেলার মাঠ — Caesar, brute force, অক্ষর গোনা আর SHA-256

নিচের কোডে চারটি জিনিস একসাথে: “MEET AT DHAKA” বার্তাকে চাবি ৩ দিয়ে এনক্রিপ্ট আর ডিক্রিপ্ট, চাবি না জেনে ২৫টি চাবি চেষ্টা করে ভাঙা, ciphertext-এর অক্ষর গোনা, আর ব্রাউজারের নিজস্ব ক্রিপ্টো-লাইব্রেরি দিয়ে “abc” আর “abd”-এর SHA-256. “চালান” চাপুন, তারপর বার্তা বা চাবি বদলে আবার চালান।

const ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
function caesar(text, k) {                  // প্রতিটি অক্ষর k ঘর সরাই
  return [...text].map(c => ABC.includes(c) ? ABC[(ABC.indexOf(c) + k + 26) % 26] : c).join("");
}
const secret = caesar("MEET AT DHAKA", 3);
console.log("ciphertext:", secret, "| decrypted:", caesar(secret, -3));
for (let k = 1; k <= 25; k++) {            // brute force: সব চাবি চেষ্টা
  const guess = caesar(secret, -k);
  if (guess.split(" ").includes("AT")) console.log("key", k, "->", guess);
}
const freq = {};
for (const c of secret.replace(/ /g, "")) freq[c] = (freq[c] || 0) + 1;
console.log("frequency:", freq);
(async () => {                             // SHA-256: ব্রাউজারের নিজস্ব লাইব্রেরি
  if (!window.crypto || !crypto.subtle) return console.log("crypto.subtle not available here");
  for (const s of ["abc", "abd"]) {
    const buf = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(s));
    console.log(s, "->", [...new Uint8Array(buf)].map(b => b.toString(16).padStart(2, "0")).join(""));
  }
})();

প্রথম লাইন ciphertext: PHHW DW GKDND | decrypted: MEET AT DHAKA. তারপর brute force: আক্রমণকারী ২৫টি চাবিই চেষ্টা করে আর দেখে কোন ফলে “AT”-এর মতো একটি পরিচিত ইংরেজি শব্দ আছে — শুধু key 3 -> MEET AT DHAKA টিকে থাকে। পরের লাইন frequency: { P: 1, H: 2, W: 2, D: 3, G: 1, K: 1, N: 1 } — মূল বার্তায় সবচেয়ে বেশি ছিল A (৩ বার), ciphertext-এ সবচেয়ে বেশি D (৩ বার) — কারণ প্রতিটি A-ই D হয়েছে; লম্বা লেখায় এই মিলটাই frequency analysis-কে কাজ করায়। শেষ দুই লাইন:

abc -> ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
abd -> a52d159f262b2c6ddb724a61840befc36eb30c88877a4030b65cbe86298449c9

শুধু শেষ অক্ষর c থেকে d — আর দুটি hash-এর মধ্যে কোনো মিল খুঁজে পাবেন না। এটাই avalanche effect. “abc”-এর মানটি SHA-256-এর সরকারি মান-দলিলে পরীক্ষার উদাহরণ হিসেবে দেওয়া আছে, তাই যেকোনো সঠিক প্রোগ্রাম হুবহু এটাই দেবে। crypto.subtle ব্রাউজারের ভেতরের পরীক্ষিত লাইব্রেরি — বাস্তবের কাজে নিজে SHA-256 লেখার বদলে এরকম লাইব্রেরিই ব্যবহার করতে হয়। (খুব পুরোনো ব্রাউজারে বা নিরাপদ নয় এমন পেজে এটি না থাকলে কোড সেটাই জানাবে।)

৬ · ডিজিটাল সিগনেচার আর সার্টিফিকেট — কে পাঠাল, তার প্রমাণ

কাগজে সই দেখে আমরা বিশ্বাস করি দলিলটি কে দিয়েছেন। কিন্তু ছবির সই কপি-পেস্ট করা যায়। ডিজিটাল সিগনেচার (ডিজিটাল স্বাক্ষর) উল্টো দিকে চাবি ব্যবহার করে: সই হয় নিজের private key দিয়ে, যাচাই হয় public key দিয়ে। private key যেহেতু শুধু আপনার কাছে, তাই সই শুধু আপনিই করতে পারেন; আর public key সবার কাছে, তাই যে কেউ যাচাই করতে পারেন।

ধাপ ১ · Rina-র দলিলপ্রথমে hash
 দলিল: "Karim-কে ৫,০০০ টাকা দেওয়া হলো"
          │
       SHA-256
          ▼
 hash : 7f3a…c21e   (দলিলের আঙুলের ছাপ)
ধাপ ২ · সই করাprivate key
 hash 7f3a…c21e  +  🔑 Rina-র private key
          ▼
 সই  : 9b0e…44d1

 পাঠানো হলো:  দলিল  +  সই
ধাপ ৩ · Karim যাচাই করেpublic key
 ক) পাওয়া দলিলের নিজে hash  →  7f3a…c21e
 খ) সই + Rina-র public key   →  7f3a…c21e
                                 মিলেছে ✔
 → দলিল Rina-র, আর পথে বদলায়নি
ধাপ ৪ · কেউ এক অক্ষর বদলালধরা পড়ল
 দলিল: "Karim-কে ৯,০০০ টাকা দেওয়া হলো"
 ক) নতুন hash               →  d218…7a90
 খ) সই + Rina-র public key   →  7f3a…c21e
                                 মেলেনি ✘ — দলিল জাল বা বদলানো
  1. Hash আগে। লম্বা দলিলের বদলে তার ছোট hash-এর ওপর সই করা হয় — দ্রুত, আর দলিলের এক অক্ষর বদলালেও hash বদলে যায়। (এখানে hash ছোট করে দেখানো হয়েছে।)
  2. Private key দিয়ে সই। Rina hash আর নিজের private key দিয়ে সই তৈরি করেন। পাঠ্যবইয়ের সরল ভাষায়: “hash-কে private key দিয়ে এনক্রিপ্ট করলে সই হয়”। দলিল আর সই একসাথে যায় — দলিল গোপন নয়, শুধু প্রমাণযোগ্য।
  3. Public key দিয়ে যাচাই। Karim দুইভাবে hash পান — দলিল থেকে নিজে হিসাব করে, আর সই থেকে Rina-র public key দিয়ে। দুটি মিললে প্রমাণ হলো: সইটি Rina-র private key দিয়েই তৈরি (সত্যতা), আর দলিল বদলায়নি (অখণ্ডতা)।
  4. জালিয়াতি ধরা। পথে কেউ ৫ বদলে ৯ করলে নতুন hash আর সই থেকে পাওয়া hash মেলে না। নতুন সই বানাতে হলে Rina-র private key লাগবে — যা জালিয়াতের কাছে নেই। আর Rina পরে “আমি সই করিনি” বলে অস্বীকারও করতে পারবেন না — একে বলে non-repudiation.

অ্যাপের আপডেট, Windows-এর ড্রাইভার, Secure Boot (পর্ব ২৭) — সবাই ডিজিটাল সিগনেচার যাচাই করে নিশ্চিত হয় যে কোডটি আসল নির্মাতার।

কিন্তু public key-টা সত্যিই Rina-র তো?

এখানে একটি ফাঁক আছে। কেউ যদি নিজের public key দিয়ে বলে “এটা Rina-র”? তাহলে সব কৌশল ভেস্তে যাবে। সমাধান হলো ডিজিটাল সার্টিফিকেট — একটি ডিজিটাল পরিচয়পত্র, যাতে লেখা থাকে “এই public key এই ডোমেইনের (বা এই ব্যক্তির)”, আর তাতে সই করে একটি বিশ্বস্ত প্রতিষ্ঠান: Certificate Authority (CA). পর্ব ৩৪-এ আপনি দেখেছেন ওয়েবসাইটের জন্য এই সার্টিফিকেট কীভাবে নেওয়া হয়।

CA-র সই আবার কে যাচাই করে? এভাবে একটি শিকল তৈরি হয় — chain of trust: ওয়েবসাইটের সার্টিফিকেটে সই করে একটি intermediate CA, তার সার্টিফিকেটে সই করে একটি root CA. root CA-র সার্টিফিকেট আগে থেকেই আপনার অপারেটিং সিস্টেম আর ব্রাউজারে রাখা থাকে, কঠোর নিরীক্ষার পরে। ব্রাউজার শিকল ধরে ওপরে উঠে একটি পরিচিত root-এ পৌঁছালে বিশ্বাস করে — যেমন জাতীয় পরিচয়পত্র বিশ্বাস করি, কারণ তা নির্বাচন কমিশনের দেওয়া।

বাংলাদেশে ডিজিটাল স্বাক্ষর: তথ্য ও যোগাযোগ প্রযুক্তি আইন, ২০০৬ ইলেকট্রনিক বা ডিজিটাল স্বাক্ষরকে আইনগত স্বীকৃতি দিয়েছে — শর্ত মেনে দেওয়া ডিজিটাল স্বাক্ষর হাতের সইয়ের মতোই গ্রহণযোগ্য। এই আইনের অধীনে আছে সার্টিফাইং কর্তৃপক্ষসমূহের নিয়ন্ত্রকের কার্যালয় (Controller of Certifying Authorities, CCA), যা দেশের Certifying Authority-গুলোকে লাইসেন্স দেয় ও তদারকি করে; লাইসেন্সপ্রাপ্ত এসব প্রতিষ্ঠান ব্যক্তি ও প্রতিষ্ঠানকে ডিজিটাল স্বাক্ষর সার্টিফিকেট দেয়। বিস্তারিত আইনি দিক পর্ব ৪৫-এ।

৭ · HTTPS — ব্রাউজারের তালার পেছনের গল্প

পর্ব ৩৩-এ দেখেছেন, ব্রাউজার আর ওয়েব সার্ভার কথা বলে HTTP দিয়ে — সাধারণ লেখায়, পোর্ট ৮০-তে। HTTPS হলো সেই একই HTTP, কিন্তু TLS নামের একটি এনক্রিপ্ট করা সুড়ঙ্গের ভেতর দিয়ে, সাধারণত পোর্ট ৪৪৩-এ। TLS-এর পুরোনো নাম SSL — তাই এখনো “SSL সার্টিফিকেট” কথাটা চলে। এই পর্বের সব কৌশল — সার্টিফিকেট, সই, key exchange, AES, hash — একসাথে কাজ করে সংযোগের প্রথম কয়েক মিলিসেকেন্ডে, যার নাম TLS handshake:

  1. HelloClientHelloব্রাউজার
  2. সার্টিফিকেটServerHelloসার্ভার
  3. যাচাইchain → rootব্রাউজার
  4. চাবিkey exchangeদুজনেই
  5. এনক্রিপ্টেডAES-GCMআসল পেজ
ব্রাউজার → সার্ভার (পোর্ট ৪৪৩)ClientHello
 "হ্যালো! আমি যেতে চাই abcltech.com-এ
  আমি TLS 1.3 পারি
  আমার পছন্দের cipher: AES-GCM, ChaCha20
  আর এই নাও আমার key exchange-এর অংশ ('কমলা রং')"
সার্ভার → ব্রাউজারServerHello + Certificate
 "ঠিক আছে: TLS 1.3, AES-GCM
  এই নাও আমার key exchange-এর অংশ ('সবুজ রং')
  আমার সার্টিফিকেট: abcltech.com, CA-র সই করা
  আর পুরো আলাপের ওপর আমার private key-র সই"
ব্রাউজারের চেকলিস্টএকটিও ভুল হলে লাল সতর্কবার্তা
 ✔ সার্টিফিকেটের নাম = ঠিকানা-ঘরের ডোমেইন?
 ✔ মেয়াদ আছে? বাতিল করা হয়নি?
 ✔ শিকল ধরে পরিচিত root CA-তে পৌঁছায়?
 ✔ সার্ভারের সই তার public key দিয়ে মেলে?
   → সার্ভারের কাছে সত্যিই private key আছে
একই গোপন চাবিপাঠানো ছাড়াই
 ব্রাউজার: সবুজ + নিজের গোপন  →  session key
 সার্ভার : কমলা + নিজের গোপন  →  session key   (একই!)
 পথের কেউ: কমলা, সবুজ দেখেছে  →  চাবি পায়নি
এখন থেকে সবAES দিয়ে
 GET /computer-fundamentals/encryption.html
   → পথে দেখা যায়: 8f e2 1a 9c 44 0b d7 …

 পথের লোক জানে: আপনি abcltech.com-এ গেছেন, কতটুকু ডেটা
 জানে না     : কোন পেজ, কী লিখলেন, পাসওয়ার্ড, কুকি
  1. Hello. ব্রাউজার সার্ভারের পোর্ট ৪৪৩-এ যোগাযোগ করে জানায় কোন TLS version আর কোন cipher সে পারে, আর সাথে পাঠায় key exchange-এর নিজের অংশ — Diffie–Hellman-এর “মেশানো রং”।
  2. সার্ভারের উত্তর। সার্ভার cipher বাছে, নিজের key exchange-এর অংশ দেয়, CA-র সই করা সার্টিফিকেট পাঠায়, আর পুরো আলাপের ওপর নিজের private key দিয়ে সই করে — যাতে প্রমাণ হয় সার্টিফিকেটটি চুরি করে আনা নয়।
  3. যাচাই। ব্রাউজার নাম, মেয়াদ আর chain of trust পরীক্ষা করে। কেউ মাঝখানে বসে নিজেকে সার্ভার সাজাতে চাইলে — যাকে বলে man-in-the-middle আক্রমণ — তার কাছে abcltech.com-এর জন্য বিশ্বস্ত CA-র সই করা সার্টিফিকেট আর private key থাকবে না, তাই ব্রাউজার বড় লাল সতর্কবার্তা দেখাবে।
  4. Session key. দুই পক্ষ Diffie–Hellman-এর হিসাব শেষ করে একই গোপন চাবিতে পৌঁছায় — চাবিটি কখনো পথে যায়নি। প্রতিটি সংযোগে চাবি নতুন, তাই পরে সার্ভারের private key চুরি হলেও পুরোনো রেকর্ড করা আলাপ খোলা যায় না — একে বলে forward secrecy.
  5. এনক্রিপ্ট করা ট্রাফিক। এখন সব HTTP অনুরোধ আর উত্তর AES দিয়ে এনক্রিপ্ট হয়, সাথে প্রতিটি টুকরোর যাচাই-চিহ্ন, যাতে বদলানো না যায়। ঠিকানা-ঘরে তালা দেখা দেয় — পুরোটা চোখের পলকের চেয়েও কম সময়ে।

তালা যা বলে, আর যা বলে না

তালা বলে ✔তালা বলে না ✘
সংযোগটি এনক্রিপ্ট করা — পথে কেউ পড়তে বা বদলাতে পারবে নাসাইটের মালিক সৎ
আপনি ঠিকানা-ঘরে লেখা এই ডোমেইনের সাথেই কথা বলছেনডোমেইনটি আসল প্রতিষ্ঠানের (bkash-offer-bd.com আর bkash.com এক নয়)
সার্টিফিকেট একটি বিশ্বস্ত CA দিয়েছেসাইটে ম্যালওয়্যার নেই, বা সার্ভার নিজে হ্যাক হয়নি

Phishing সাইটেও তালা থাকে! ২০১৫ সাল থেকে Let’s Encrypt-এর মতো CA বিনামূল্যে, স্বয়ংক্রিয়ভাবে সার্টিফিকেট দেয় — শুধু ডোমেইনের নিয়ন্ত্রণ দেখাতে হয়, পরিচয় নয়। এটি পুরো ইন্টারনেটকে নিরাপদ করেছে, কিন্তু প্রতারকেরাও নিজেদের ভুয়া ডোমেইনে একই তালা পায়। তাই তালা দেখে নয়, ডোমেইনের বানান দেখে বিশ্বাস করুন; আর OTP বা PIN চাওয়া যেকোনো লিংক সন্দেহ করুন (পর্ব ৪৩)।

৮ · প্রতিদিনের এনক্রিপশন — পথে, দুই প্রান্তে, ডিস্কে, আর কোয়ান্টাম ভবিষ্যৎ

কে পড়তে পারে আপনার বার্তা?

ধরনউদাহরণকে পড়তে পারে
পথে এনক্রিপশন (in transit)Gmail, Facebook Messenger-এর সাধারণ চ্যাট, বেশিরভাগ ওয়েবসাইট — HTTPS/TLSপথের কেউ নয়; কিন্তু সার্ভারে পৌঁছে বার্তা খোলা অবস্থায় থাকে, সেবাদাতা কোম্পানি চাইলে পড়তে পারে
End-to-end encryptionWhatsApp, Signal-এর বার্তা ও কলশুধু প্রেরক আর প্রাপকের ফোন; চাবি থাকে ফোনেই, মাঝখানের সার্ভার শুধু তালাবদ্ধ বাক্স পৌঁছে দেয়
ডিস্কে এনক্রিপশন (at rest)Windows-এর BitLocker বা Device Encryption, macOS-এর FileVault, পাসকোড দেওয়া Android ও iPhoneডিভাইস চুরি হলেও পাসওয়ার্ড বা PIN ছাড়া ডেটা পড়া যায় না

WhatsApp-এ চ্যাটের “Encryption” অংশে একটি নিরাপত্তা কোড দেখায়; দুজনের ফোনে তা মিললে বোঝা যায় মাঝখানে কেউ নিজের চাবি ঢোকায়নি। তবে কারও ফোন খোলা পেলে, বা ক্লাউড backup এনক্রিপ্ট না থাকলে, সেখান থেকে বার্তা পড়া যায়। আর BitLocker-এর recovery key হারালে নিজের ডেটাও ফেরত পাবেন না — তাই সেটি নিরাপদ জায়গায় রাখুন।

পাসওয়ার্ড আর চাবি এক নয়

AES-এর চাবি ১২৮ বা ২৫৬টি এলোমেলো বিট — মনে রাখার উপায় নেই। আপনি মনে রাখেন পাসওয়ার্ড; সফটওয়্যার ধীর hash-এর মতো প্রক্রিয়ায় তা থেকে চাবি বানায়। ফলে চাবি ততটাই শক্ত, যতটা আপনার পাসওয়ার্ড। “123456” দিয়ে সুরক্ষিত ZIP ফাইল কয়েক সেকেন্ডে খুলে ফেলা যায় — AES ভেঙে নয়, পাসওয়ার্ড অনুমান করে। এজন্যই পর্ব ৪৩-এর লম্বা পাসফ্রেজ আর password manager এত জরুরি।

কোয়ান্টাম কম্পিউটার আর post-quantum cryptography

যথেষ্ট বড় ও নির্ভুল একটি কোয়ান্টাম কম্পিউটার RSA, Diffie–Hellman আর elliptic curve ভেঙে দিতে পারবে (ভাবনার প্রশ্ন ৫)। এমন যন্ত্র এখনো নেই (পর্ব ৪৬), কিন্তু কেউ আজকের এনক্রিপ্ট করা ডেটা জমিয়ে রাখতে পারে ভবিষ্যতে খোলার আশায়। তাই যুক্তরাষ্ট্রের NIST ২০২৪ সালের আগস্টে প্রথম post-quantum cryptography মানগুলো প্রকাশ করে — key exchange-এর জন্য ML-KEM, সইয়ের জন্য ML-DSA ও SLH-DSA. AES-এ কোয়ান্টামের প্রভাব কম — ২৫৬ বিটের চাবি যথেষ্ট বলে ধরা হয়।

এনক্রিপশন আর সমাজ

শক্ত এনক্রিপশন সাংবাদিকের সূত্র, রোগীর তথ্য আর ব্যাংকের লেনদেন রক্ষা করে; আবার অপরাধীরাও একই অ্যাপ ব্যবহার করে, আর তদন্তকারী সংস্থা প্রমাণে পৌঁছাতে পারে না। সরকারের জন্য “পেছনের দরজা” রাখার প্রস্তাবের জবাবে বেশিরভাগ ক্রিপ্টোগ্রাফার বলেন — গণিত চেনে না দরজা দিয়ে কে ঢুকছে। এই বহু দশকের বিতর্ক ভাবনার প্রশ্ন ৩-এ, আর আইনের দিক পর্ব ৪৫-এ।

আরও গভীরে: AES-এর ভেতরের রাউন্ড, block cipher-এর mode (কেন ECB বিপজ্জনক), HMAC, PKI-র পুরো কাঠামো, TLS handshake-এর প্রতিটি বার্তা আর ক্রিপ্টোগ্রাফির ওপর পরিচিত আক্রমণগুলো জানতে দেখুন ABCL TECH-এর সাইবার সিকিউরিটি কোর্স — বিশেষ করে symmetric ও asymmetric এনক্রিপশন, hash ও ডিজিটাল সিগনেচার আর TLS handshake গভীরে পর্বগুলো।

পরীক্ষা ও ইন্টারভিউতে: HSC ICT, ব্যাংক ও সরকারি চাকরির কম্পিউটার অংশ আর IT ইন্টারভিউতে এ ধরনের প্রশ্ন প্রায়ই আসে —

  • Plaintext আর ciphertext কী? — মূল পড়ার মতো বার্তা plaintext; এনক্রিপশনের পরের দুর্বোধ্য রূপ ciphertext.
  • Symmetric আর asymmetric এনক্রিপশনের পার্থক্য? — symmetric-এ একই চাবি দিয়ে এনক্রিপ্ট ও ডিক্রিপ্ট (AES, DES); asymmetric-এ public key দিয়ে এনক্রিপ্ট, private key দিয়ে ডিক্রিপ্ট (RSA). কিছু বইয়ে symmetric-কে “secret key” বা “private key এনক্রিপশন”-ও বলা হয় — প্রসঙ্গ দেখে উত্তর দিন।
  • কাউকে গোপন বার্তা পাঠাতে কার কোন চাবি লাগে? — প্রাপকের public key দিয়ে এনক্রিপ্ট; প্রাপক নিজের private key দিয়ে খোলেন।
  • ডিজিটাল সিগনেচার কী? — প্রেরকের private key দিয়ে তৈরি একটি ইলেকট্রনিক সই, যা public key দিয়ে যাচাই করা যায়; প্রেরকের সত্যতা আর বার্তার অখণ্ডতা প্রমাণ করে।
  • HTTPS-এর ডিফল্ট পোর্ট কত? — ৪৪৩ (HTTP-র ৮০). HTTPS-এর S মানে Secure, যা TLS দিয়ে আসে।

৯ · AI-এর যুগে — ক্রিপ্টো বোঝাতে AI ভালো, কিন্তু কোড লিখতে সাবধান

“RSA কীভাবে কাজ করে সহজ করে বোঝাও” — এমন প্রশ্নে AI চমৎকার শিক্ষক। কিন্তু ক্রিপ্টোগ্রাফির কোডে একটি ছোট ভুল ত্রুটি দেখায় না, প্রোগ্রাম ঠিকঠাক চলে — শুধু নিরাপত্তা থাকে না। আর AI শিখেছে ইন্টারনেটের পুরোনো উদাহরণ থেকে, যেখানে বাতিল পদ্ধতি প্রচুর:

AI যা দিতে পারেসমস্যাযা হওয়া উচিত
পাসওয়ার্ড রাখতে MD5 বা SHA-1, বা salt ছাড়া SHA-256MD5/SHA-1 ভাঙা; দ্রুত hash কোটি কোটি অনুমান সহ্য করে নাArgon2, bcrypt বা scrypt — salt-সহ
AES-এর ECB modeএকই টুকরো একই ciphertext দেয় — ছবির রূপরেখা পর্যন্ত দেখা যায়AES-GCM-এর মতো authenticated mode (যা বদলানো ধরতেও পারে), প্রতিবার নতুন nonce (একবারই ব্যবহারের এলোমেলো মান)
নিজের বানানো “XOR এনক্রিপশন” বা নতুন অ্যালগরিদমKerckhoffs-এর নীতি ভাঙে; পরীক্ষা ছাড়া ক্রিপ্টো প্রায় সবসময় দুর্বলপরীক্ষিত লাইব্রেরি (libsodium, ভাষার নিজস্ব crypto লাইব্রেরি)
কোডে সরাসরি লেখা চাবি, বা Math.random() দিয়ে চাবিকোড দেখলেই চাবি পাওয়া যায়; সাধারণ random অনুমানযোগ্যনিরাপদ random (crypto.getRandomValues), চাবি আলাদা গোপন জায়গায়
“ত্রুটি এড়াতে” সার্টিফিকেট যাচাই বন্ধ করাman-in-the-middle-এর দরজা খোলাযাচাই চালু রাখুন; ত্রুটির আসল কারণ ঠিক করুন

ভালো প্রশ্নে থাকে: আপনার প্রসঙ্গ, ভাষা ও লাইব্রেরি, আর আধুনিক নিরাপদ পদ্ধতি ও সূত্রের অনুরোধ:

আমি Python দিয়ে একটি ছোট ওয়েবসাইটের লগইন বানাচ্ছি। ১. ব্যবহারকারীর পাসওয়ার্ড ডেটাবেসে নিরাপদে রাখার জন্য ২০২৬ সালের প্রচলিত সুপারিশ কী? কোন লাইব্রেরি আর কোন সেটিং? ২. কেন MD5, SHA-1 বা salt ছাড়া SHA-256 উপযুক্ত নয় — সহজ বাংলায় বুঝিয়ে বলো। ৩. নিজে কোনো এনক্রিপশন বা hash অ্যালগরিদম লিখবে না; শুধু পরিচিত, রক্ষণাবেক্ষণ করা লাইব্রেরি ব্যবহার করবে। ৪. তোমার সুপারিশের পক্ষে OWASP-এর Password Storage Cheat Sheet বা লাইব্রেরির অফিসিয়াল ডকুমেন্টেশনের কোন অংশ দেখতে হবে, তা বলো — আমি নিজে মিলিয়ে নেব।

AI-এর ক্রিপ্টো-পরামর্শ মানার আগে — চেকলিস্ট

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন। যুদ্ধ, গোপন গবেষণা আর আইনি লড়াইয়ের মধ্য দিয়ে ক্রিপ্টোগ্রাফি কীভাবে আজকের রূপ পেল, তার গল্প।

প্র ০১দ্বিতীয় বিশ্বযুদ্ধে জার্মানির Enigma যন্ত্র কীভাবে ভাঙা হয়েছিল? Bletchley Park আর Alan Turing-এর ভূমিকা কী?

Enigma ছিল টাইপরাইটারের মতো দেখতে একটি বৈদ্যুতিক-যান্ত্রিক cipher যন্ত্র। ভেতরে কয়েকটি ঘোরানো চাকা (rotor) আর একটি প্লাগবোর্ড; প্রতিটি অক্ষর চাপার পরে চাকা ঘুরে যেত, তাই একই অক্ষর প্রতিবার ভিন্ন অক্ষরে বদলাত — অনেকটা Vigenère-এর যান্ত্রিক, বহুগুণ জটিল রূপ। প্রতিদিনের সেটিংয়ের সম্ভাব্য সংখ্যা ছিল বিশাল। জার্মান সেনাবাহিনী একে অভেদ্য মনে করত।

প্রথম সাফল্য পোল্যান্ডের। ১৯৩২ সালে পোলিশ গণিতবিদ Marian Rejewski গ্রুপ-তত্ত্ব আর কিছু গোয়েন্দা তথ্য দিয়ে Enigma-র চাকার ভেতরের তার-সংযোগ বের করেন; সহকর্মী Jerzy Różycki আর Henryk Zygalski-কে নিয়ে তাঁরা কয়েক বছর জার্মান বার্তা পড়তে পারতেন। ১৯৩৯ সালের জুলাইয়ে, যুদ্ধ শুরুর ঠিক আগে, তাঁরা এই জ্ঞান ব্রিটেন আর ফ্রান্সের হাতে তুলে দেন।

ব্রিটেনের গোপন কেন্দ্র Bletchley Park-এ যুদ্ধের সময় হাজার হাজার মানুষ কাজ করতেন — গণিতবিদ, ভাষাবিদ, দাবাড়ু, শব্দজট-বিশারদ, আর অনেক নারী কর্মী। Alan Turing (Gordon Welchman-এর গুরুত্বপূর্ণ উন্নতিসহ) নকশা করেন Bombe নামের বৈদ্যুতিক-যান্ত্রিক যন্ত্র, যা লাখো সম্ভাব্য সেটিং দ্রুত বাদ দিত। মূল কৌশল ছিল “crib” — বার্তায় সম্ভাব্য কোনো লেখা (যেমন আবহাওয়ার রিপোর্টের নির্দিষ্ট শব্দ) অনুমান করা, আর Enigma-র একটি নকশাগত দুর্বলতা: কোনো অক্ষর কখনো নিজেতে বদলাত না। মানুষের অভ্যাস — একই ধরনের বাক্যে বার্তা শুরু — ছিল আরেক বড় ফাঁক।

ইতিহাসবিদদের অনেকের মতে এই গোয়েন্দা তথ্য যুদ্ধকে সংক্ষিপ্ত করেছিল। Bletchley-তে আরেকটি জার্মান cipher (Lorenz) ভাঙতে Tommy Flowers-এর দল ১৯৪৪ সালে তৈরি করে Colossus — প্রথম দিকের প্রোগ্রামযোগ্য ইলেকট্রনিক কম্পিউটারগুলোর একটি (পর্ব ০২)। পুরো কাজটি কয়েক দশক গোপন রাখা হয়েছিল।

মূল উপলব্ধি: cipher সাধারণত গণিতে নয়, ব্যবহারের ফাঁকে ভাঙে — পুনরাবৃত্ত বার্তা, অলস অভ্যাস, নকশার ছোট্ট ছাড়। আর আধুনিক কম্পিউটারের জন্মের সাথে ক্রিপ্টোগ্রাফির জন্ম জড়িয়ে আছে।

প্র ০২Public-key cryptography-কে কেন “বিপ্লব” বলা হয়? Diffie–Hellman, RSA আর ব্রিটেনের GCHQ-র গোপন আগাম আবিষ্কারের গল্প কী?

হাজার বছর ধরে সব cipher ছিল symmetric — দুই পক্ষের আগে থেকে একই গোপন চাবি লাগত। সেনাবাহিনী আর দূতাবাস চাবি পাঠাত বিশ্বস্ত বার্তাবাহক দিয়ে, কোডবুক ছাপিয়ে। কম্পিউটার নেটওয়ার্কের যুগে, যেখানে অপরিচিত লাখো মানুষ একে অপরের সাথে কথা বলবে, এই পদ্ধতি অচল।

১৯৭৬ সালে স্ট্যানফোর্ডের Whitfield Diffie আর Martin Hellman “New Directions in Cryptography” নামের প্রবন্ধে প্রস্তাব দেন: চাবি হতে পারে দুই রকম — একটি প্রকাশ্য, একটি গোপন। সাথে দেন খোলা পথে গোপন চাবিতে একমত হওয়ার পদ্ধতি; Ralph Merkle-এর আগের কাজও এখানে গুরুত্বপূর্ণ ছিল। কিন্তু প্রকাশ্য চাবিতে এনক্রিপ্ট আর সই করার একটি বাস্তব পদ্ধতি তখনো বাকি। পরের বছর, ১৯৭৭ সালে, MIT-র Rivest, Shamir আর Adleman বহু চেষ্টার পরে বড় মৌলিক সংখ্যার গুণফলের ওপর দাঁড়ানো RSA খুঁজে পান। এই কাজের জন্য RSA-র তিনজন ২০০২ সালে, আর Diffie ও Hellman ২০১৫ সালে কম্পিউটার বিজ্ঞানের সর্বোচ্চ সম্মান Turing Award পান।

কিন্তু গল্পে একটি মোড় আছে। ১৯৯৭ সালে ব্রিটেনের গোয়েন্দা সংস্থা GCHQ প্রকাশ করে যে তাদের গবেষকেরা একই ধারণা আগেই পেয়েছিলেন: James Ellis ১৯৭০ সালে “non-secret encryption”-এর ধারণা দেন, Clifford Cocks ১৯৭৩ সালে মূলত RSA-র মতো একটি পদ্ধতি বের করেন, আর Malcolm Williamson ১৯৭৪ সালের দিকে Diffie–Hellman-এর মতো key exchange. কিন্তু সবই ছিল রাষ্ট্রীয় গোপন তথ্য — বিশ্ব জানতে পারেনি, ব্যবহারও হয়নি।

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

মূল উপলব্ধি: একটি ধারণা সমাজ বদলায় তখনই, যখন তা প্রকাশ্যে আসে, যাচাই হয় আর সবাই ব্যবহার করতে পারে। গোপন আবিষ্কার যত চমৎকারই হোক, ড্রয়ারে থাকলে পৃথিবী বদলায় না।

প্র ০৩“Crypto wars” কী? ১৯৯০-এর দশকের রপ্তানি-নিষেধ আর Clipper chip থেকে আজকের এনক্রিপশন বিতর্ক পর্যন্ত কী ঘটেছে?

দীর্ঘদিন যুক্তরাষ্ট্র শক্ত এনক্রিপশন সফটওয়্যারকে সামরিক সরঞ্জামের মতো রপ্তানি-নিয়ন্ত্রিত পণ্য হিসেবে দেখত। ১৯৯০-এর দশকে বিদেশে বিক্রি হওয়া ব্রাউজারে তাই ইচ্ছা করে দুর্বল, ৪০ বিটের চাবি দেওয়া হতো — যা তখনই বিশেষজ্ঞরা অল্প সময়ে ভেঙে দেখিয়েছিলেন। এই দুর্বল “রপ্তানি সংস্করণের” অবশেষ দুই দশক পরে, ২০১৫ সালে, FREAK আর Logjam নামের দুর্বলতা হিসেবে আবার ফিরে আসে।

১৯৯১ সালে Phil Zimmermann প্রকাশ করেন PGP (Pretty Good Privacy) — সাধারণ মানুষের জন্য শক্ত ইমেইল এনক্রিপশন। ইন্টারনেটে দেশের বাইরে ছড়িয়ে পড়ায় তাঁর বিরুদ্ধে কয়েক বছর তদন্ত চলে, পরে কোনো মামলা ছাড়াই তা বন্ধ হয়। ১৯৯৩ সালে মার্কিন সরকার প্রস্তাব করে Clipper chip — ফোনে বসানো একটি এনক্রিপশন চিপ, যার চাবির একটি কপি সরকারি সংস্থার কাছে জমা (key escrow) থাকবে। প্রবল বিরোধিতা হয়, আর ১৯৯৪ সালে গবেষক Matt Blaze এর নকশায় একটি দুর্বলতাও দেখান। কয়েক বছরের মধ্যে উদ্যোগটি পরিত্যক্ত হয়, আর ১৯৯০-এর দশকের শেষে রপ্তানি নিয়মও অনেক শিথিল হয়।

বিতর্ক কিন্তু শেষ হয়নি। ২০১৬ সালে একটি সন্ত্রাসী হামলার তদন্তে একটি iPhone খুলে দেওয়ার জন্য FBI আর Apple-এর মধ্যে প্রকাশ্য আইনি লড়াই হয়; পরে FBI অন্য উপায়ে ফোনটি খোলে। বিভিন্ন দেশে আজও আলোচনা চলে — end-to-end এনক্রিপ্টেড অ্যাপে আইনি প্রবেশাধিকার, ফোনের ভেতরে বার্তা স্ক্যান করা ইত্যাদি নিয়ে।

দুই পক্ষের যুক্তিই গুরুত্বপূর্ণ। তদন্তকারীরা বলেন, অপরাধের প্রমাণ “অন্ধকারে” চলে যাচ্ছে। ক্রিপ্টোগ্রাফার আর মানবাধিকার সংগঠনগুলো বলেন, শুধু “ভালো মানুষের” জন্য দরজা বানানো গাণিতিকভাবে সম্ভব নয় — যে চাবি সরকারের কাছে থাকবে, তা চুরি বা অপব্যবহারও হতে পারে, আর অপরাধীরা অন্য সরঞ্জামে চলে যাবে।

মূল উপলব্ধি: এনক্রিপশন শুধু প্রযুক্তি নয়, সমাজের নিরাপত্তা আর ব্যক্তির গোপনীয়তার মধ্যে ভারসাম্যের প্রশ্ন। বিতর্কে অংশ নিতে হলে আগে বুঝতে হয় গণিত কী পারে আর কী পারে না।

প্র ০৪মাত্র এক দশক আগেও অনেক ওয়েবসাইট HTTP-তে চলত। Let’s Encrypt কীভাবে প্রায় পুরো ওয়েবকে HTTPS-এ নিয়ে এলো?

২০১০-এর দশকের শুরুতে HTTPS সাধারণত দেখা যেত শুধু ব্যাংক, লগইন পেজ আর অনলাইন কেনাকাটার পেমেন্ট পেজে। কারণ ছিল কয়েকটি: সার্টিফিকেট কিনতে টাকা লাগত, প্রতি বছর হাতে নবায়ন করতে হতো, সার্ভারে বসানো ছিল জটিল, আর অনেকে ভাবতেন এনক্রিপশন সার্ভারকে ধীর করে দেয়। ফলে সাধারণ ওয়েবসাইটের পেজ, কুকি আর ফর্ম পাবলিক Wi-Fi-তে যে কেউ দেখতে পারত। ২০১০ সালে Firesheep নামের একটি ব্রাউজার-এক্সটেনশন দেখিয়ে দেয়, একই ক্যাফের Wi-Fi-তে বসে অন্যের সোশ্যাল মিডিয়া সেশন কত সহজে দখল করা যায়।

২০১৩ সালে Edward Snowden-এর ফাঁস করা দলিলে ব্যাপক ইন্টারনেট নজরদারির খবর আসার পরে বড় প্রযুক্তি কোম্পানিগুলো দ্রুত সব জায়গায় এনক্রিপশন চালু করতে থাকে। তবে ছোট সাইটের জন্য খরচ আর ঝামেলা থেকেই যায়। এর সমাধানে Mozilla, Electronic Frontier Foundation (EFF), মিশিগান বিশ্ববিদ্যালয়ের গবেষকসহ কয়েকটি প্রতিষ্ঠান অলাভজনক সংস্থা ISRG গঠন করে, যার CA Let’s Encrypt ২০১৫ সালের শেষে সবার জন্য খুলে দেওয়া হয়।

Let’s Encrypt তিনটি বড় পরিবর্তন আনে: সার্টিফিকেট সম্পূর্ণ বিনামূল্যে; ACME নামের একটি খোলা protocol দিয়ে পুরো প্রক্রিয়া স্বয়ংক্রিয় — সার্ভারের একটি প্রোগ্রাম নিজেই ডোমেইনের নিয়ন্ত্রণ প্রমাণ করে সার্টিফিকেট আনে আর নবায়ন করে; আর অল্প মেয়াদের সার্টিফিকেট, যাতে চুরি বা ভুল হলে ক্ষতি সীমিত থাকে। আজ বেশিরভাগ হোস্টিং কোম্পানির প্যানেলে (পর্ব ৩৪) এক ক্লিকে HTTPS চালু হয়, এবং Let’s Encrypt কয়েকশো মিলিয়ন ওয়েবসাইটকে সার্টিফিকেট দেয়।

একই সময়ে ব্রাউজারগুলো চাপ দিতে থাকে: ২০১৮ সাল থেকে Chrome সব HTTP সাইটকে “Not secure” দেখায়। ২০১৮ সালে TLS 1.3 মান প্রকাশ হয় — দ্রুততর handshake আর পুরোনো দুর্বল অংশ বাদ। আজ ব্রাউজারে খোলা পেজের বিশাল বেশিরভাগই HTTPS-এ আসে।

মূল উপলব্ধি: নিরাপত্তা ছড়ায় তখন, যখন তা বিনামূল্যে, স্বয়ংক্রিয় আর ডিফল্ট হয়। তবে এর একটি পার্শ্বফল — তালা এখন আর বিশ্বস্ততার চিহ্ন নয়, শুধু এনক্রিপশনের চিহ্ন।

প্র ০৫কোয়ান্টাম কম্পিউটার এখনো এত ছোট, তবু কেন সারা পৃথিবী এখনই post-quantum cryptography-তে যাচ্ছে? Shor-এর অ্যালগরিদম কী হুমকি দেয়?

১৯৯৪ সালে Bell Labs-এর গণিতবিদ Peter Shor একটি কোয়ান্টাম অ্যালগরিদম প্রকাশ করেন, যা বড় সংখ্যাকে উৎপাদকে ভাঙতে আর “discrete logarithm” নামের সমস্যা সমাধান করতে পারে — সাধারণ কম্পিউটারের চেয়ে অবিশ্বাস্য দ্রুত। RSA দাঁড়িয়ে আছে প্রথমটির কঠিনতার ওপর, Diffie–Hellman আর elliptic curve দ্বিতীয়টির ওপর। অর্থাৎ যথেষ্ট বড় একটি কোয়ান্টাম কম্পিউটার আজকের প্রায় সব public-key ক্রিপ্টোগ্রাফি ভেঙে দেবে। ১৯৯৬ সালে Lov Grover আরেকটি অ্যালগরিদম দেন, যা অনুসন্ধান দ্রুত করে — symmetric cipher-এর ক্ষেত্রে এর প্রভাব মোটামুটি চাবির কার্যকর দৈর্ঘ্য অর্ধেক করার মতো, তাই AES-256 নিরাপদ বলে ধরা হয়।

আজকের কোয়ান্টাম কম্পিউটারের qubit-গুলো খুব ভঙ্গুর, ভুল প্রচুর; RSA-২০৪৮ ভাঙতে যে মাপের নির্ভুল যন্ত্র লাগবে, তা থেকে আমরা অনেক দূরে। কবে পৌঁছাব, বিশেষজ্ঞরা একমত নন। তবু তাড়াহুড়ো কেন? তিনটি কারণ। এক, “এখন জমাও, পরে খোলো” — আজ রেকর্ড করা গোপন ডেটা (সরকারি, চিকিৎসা, ব্যবসার) ২০-৩০ বছর পরেও মূল্যবান থাকতে পারে। দুই, পুরো ইন্টারনেটের ক্রিপ্টো বদলাতে অনেক বছর লাগে — ব্রাউজার, সার্ভার, ব্যাংকের যন্ত্র, স্মার্ট কার্ড, গাড়ি। তিন, নতুন অ্যালগরিদমের ওপর আস্থা তৈরিতেও সময় লাগে।

যুক্তরাষ্ট্রের NIST ২০১৬ সালে একটি উন্মুক্ত আন্তর্জাতিক প্রতিযোগিতা শুরু করে। কয়েক রাউন্ডে সারা বিশ্বের গবেষকেরা প্রস্তাবগুলো ভাঙার চেষ্টা করেন — কয়েকটি সত্যিই ভেঙেও যায়, যা দেখায় যাচাই কেন জরুরি। ২০২৪ সালের আগস্টে প্রথম তিনটি মান প্রকাশিত হয়: ML-KEM (আগের নাম CRYSTALS-Kyber) key exchange-এর জন্য, আর ML-DSA (CRYSTALS-Dilithium) ও SLH-DSA (SPHINCS+) ডিজিটাল সিগনেচারের জন্য। এদের বেশিরভাগ “lattice” নামের বহুমাত্রিক জালির গাণিতিক সমস্যার ওপর দাঁড়ানো।

রূপান্তর ইতিমধ্যে চলছে: প্রধান ব্রাউজার আর বড় ক্লাউড সেবা TLS-এ পুরোনো elliptic-curve আর নতুন ML-KEM মিলিয়ে hybrid key exchange চালু করেছে, যাতে একটি ভাঙলেও অন্যটি রক্ষা করে; Signal আর Apple-এর iMessage-ও নিজেদের protocol-এ post-quantum অংশ যোগ করেছে।

মূল উপলব্ধি: নিরাপত্তায় প্রস্তুতি নিতে হয় হুমকি আসার আগেই। আর যেকোনো সিস্টেম এমনভাবে বানানো উচিত, যাতে ক্রিপ্টো অ্যালগরিদম সহজে বদলানো যায় — একে বলে crypto-agility.

অনুশীলন

প্রথম দুটি খাতা-কলমে, পরের দুটি নিজের ব্রাউজারে করা যায়। চাইলে ওপরের খেলার মাঠে কোড বদলে উত্তর মিলিয়ে নিন।

  1. Caesar ভাঙুন: একটি গোয়েন্দা-চিরকুটে লেখা WKDQN BRX. এটি Caesar cipher-এ লেখা, চাবি জানা নেই। কয়েকটি চাবি চেষ্টা করে বার্তা আর চাবি বের করুন। তারপর ভাবুন: আক্রমণকারী কীভাবে বুঝবেন কোন চাবিটি ঠিক?

    প্রতিটি অক্ষর ৩ ঘর পেছনে সরালে W→T, K→H, D→A, Q→N, N→K; B→Y, R→O, X→U — বার্তা THANK YOU, চাবি ৩. চাবি ১ বা ২-তে আসে VJCPM… বা UIBOL… — অর্থহীন। আক্রমণকারী প্রতিটি ফল দেখে অর্থপূর্ণ শব্দ খোঁজেন; কম্পিউটারে এটা একটি শব্দতালিকা দিয়ে স্বয়ংক্রিয় করা যায়, যেমন খেলার মাঠের কোডে “AT” খোঁজা হয়েছে। শিক্ষা: মাত্র ২৫টি চাবি মানে কোনো নিরাপত্তা নেই।

  2. কোন হাতিয়ার? প্রতিটি কাজের জন্য symmetric এনক্রিপশন, asymmetric এনক্রিপশন, hash নাকি ডিজিটাল সিগনেচার? (ক) ওয়েবসাইটের ডেটাবেসে ব্যবহারকারীর পাসওয়ার্ড রাখা (খ) ল্যাপটপের পুরো ডিস্ক সুরক্ষিত রাখা (গ) ডাউনলোড করা ISO ফাইল ঠিক আছে কি না দেখা (ঘ) প্রমাণ করা যে একটি সনদের PDF সত্যিই বিশ্ববিদ্যালয় থেকে এসেছে (ঙ) কখনো দেখা হয়নি এমন একজনকে প্রথমবার গোপন বার্তা পাঠানো।

    (ক) hash — salt-সহ ধীর পাসওয়ার্ড-hash (Argon2/bcrypt); এনক্রিপশন নয়, কারণ পাসওয়ার্ড ফেরত পাওয়ার দরকারই নেই। (খ) symmetric — BitLocker বা FileVault AES ব্যবহার করে, কারণ বিপুল ডেটা দ্রুত এনক্রিপ্ট করতে হয়। (গ) hash — প্রকাশিত SHA-256 মানের সাথে নিজের হিসাব মেলান। (ঘ) ডিজিটাল সিগনেচার — বিশ্ববিদ্যালয়ের private key দিয়ে সই, public key (সার্টিফিকেটসহ) দিয়ে যাচাই। (ঙ) asymmetric — প্রাপকের public key দিয়ে (বাস্তবে hybrid: public key দিয়ে একটি AES চাবি পাঠিয়ে বার্তা AES দিয়ে)।

  3. একটি সার্টিফিকেট খুলে দেখুন: Chrome বা Edge-এ abcltech.com বা আপনার ব্যাংকের ওয়েবসাইট খুলুন। ঠিকানা-ঘরের বাঁয়ের চিহ্নে চাপুন → “Connection is secure” → “Certificate is valid”. লিখে রাখুন: সার্টিফিকেট কার নামে (Issued to), কে দিয়েছে (Issued by), মেয়াদ কবে শেষ, আর “Certification Path” বা শিকলে কয়টি ধাপ।

    “Issued to”-তে ডোমেইনের নাম (বা *.example.com-এর মতো wildcard), “Issued by”-তে একটি intermediate CA-র নাম। মেয়াদ সাধারণত কয়েক মাস থেকে এক বছরের কিছু বেশি — Let’s Encrypt-এর সার্টিফিকেট আরও কম। শিকলে সাধারণত তিনটি ধাপ দেখবেন: সবার ওপরে root CA, মাঝে intermediate CA, নিচে সাইটের সার্টিফিকেট — ঠিক chain of trust. ভেতরের “Details”-এ public key-র ধরন (RSA বা EC) আর SHA-256 fingerprint-ও দেখা যায়। সার্টিফিকেটে কোথাও লেখা নেই সাইটটি সৎ কি না — শুধু ডোমেইনের নিয়ন্ত্রণ যাচাই হয়েছে।

  4. তালা আছে, তবু বিপদ: একটি SMS-এ লিংক: https://bkash-bonus-offer.com — খুললে তালা-চিহ্নসহ bKash-এর মতো দেখতে পেজ, ৫০০ টাকা বোনাসের জন্য নম্বর, OTP আর PIN চাইছে। তালা থাকায় এটা কি নিরাপদ? এখানে HTTPS কী রক্ষা করছে, আর কী নয়?

    নিরাপদ নয় — এটা phishing. HTTPS শুধু নিশ্চিত করছে যে আপনার ফোন আর bkash-bonus-offer.com-এর সার্ভারের মধ্যের সংযোগ এনক্রিপ্ট করা; অর্থাৎ আপনার PIN পথে কেউ দেখবে না — সোজা প্রতারকের হাতেই নিরাপদে পৌঁছাবে! ডোমেইনটি bKash-এর নয়; যে কেউ এমন নাম কিনে বিনামূল্যে সার্টিফিকেট নিতে পারে। নিয়ম: ডোমেইনের বানান দেখুন, অফিসিয়াল অ্যাপ বা নিজে টাইপ করা ঠিকানা ব্যবহার করুন, আর OTP বা PIN কাউকে, কোনো লিংকে দেবেন না (পর্ব ৪৩)।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমব্রাউজারে একটি HTTPS ওয়েবসাইট খোলার সময় ঘটনাগুলো যে ক্রমে ঘটে, সেই ক্রমে সাজান (▲▼ চেপে সরান)

  1. 👋 ব্রাউজার পোর্ট ৪৪৩-এ ClientHello পাঠায়
  2. 📜 সার্ভার নিজের সার্টিফিকেট পাঠায়
  3. 🔍 ব্রাউজার সার্টিফিকেট আর chain of trust যাচাই করে
  4. 🤝 key exchange করে দুই পক্ষ একই session key পায়
  5. 🔒 পেজের ডেটা AES দিয়ে এনক্রিপ্ট হয়ে আসে

প্লেইনটেক্সটকে সাইফারটেক্সটে রূপান্তর করার প্রক্রিয়াকে কী বলে?

  • ডিক্রিপশন
  • এনক্রিপশন
  • হ্যাশিং
  • কম্প্রেশন

নিচের কোনটি symmetric এনক্রিপশনের উদাহরণ, যেখানে এনক্রিপশন আর ডিক্রিপশনে একই চাবি লাগে?

  • RSA
  • SHA-256
  • AES
  • Diffie–Hellman

Karim, Rina-কে public-key এনক্রিপশন দিয়ে একটি গোপন বার্তা পাঠাতে চান। Karim কোন চাবি দিয়ে বার্তা এনক্রিপ্ট করবেন?

  • Rina-র public key
  • Rina-র private key
  • Karim-এর public key
  • Karim-এর private key

ডিজিটাল সিগনেচার তৈরি আর যাচাইয়ে চাবির সঠিক ব্যবহার কোনটি?

  • প্রেরকের public key দিয়ে সই, প্রাপকের private key দিয়ে যাচাই
  • প্রাপকের public key দিয়ে সই, প্রাপকের private key দিয়ে যাচাই
  • দুজনের একই গোপন চাবি দিয়ে সই আর যাচাই
  • প্রেরকের private key দিয়ে সই, প্রেরকের public key দিয়ে যাচাই

HTTPS সাধারণত কোন পোর্ট নম্বর ব্যবহার করে?

  • ৮০
  • ৪৪৩
  • ২১
  • ২৫

একটি ওয়েবসাইট ব্যবহারকারীদের পাসওয়ার্ড ডেটাবেসে রাখবে। কোন পদ্ধতিটি সবচেয়ে নিরাপদ?

  • পাসওয়ার্ড সাধারণ লেখা হিসেবে রাখা
  • salt ছাড়া MD5 hash রাখা
  • প্রত্যেকের জন্য আলাদা salt-সহ Argon2 বা bcrypt দিয়ে hash রাখা
  • AES দিয়ে এনক্রিপ্ট করে চাবি একই সার্ভারে রাখা

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. এনক্রিপশন plaintext-কে চাবি দিয়ে ciphertext বানায়, ডিক্রিপশন সঠিক চাবিতে ফেরত আনে। নিয়ম প্রকাশ্য, শুধু চাবি গোপন — আর চাবির সংখ্যা কম হলে brute force-এ ভাঙে (Caesar-এর মাত্র ২৫টি)।
  2. Symmetric (AES): একই চাবি, দ্রুত, কিন্তু চাবি পৌঁছানোর সমস্যা। Asymmetric (RSA, ECC): প্রাপকের public key দিয়ে এনক্রিপ্ট, প্রাপকের private key দিয়ে খোলা। বাস্তবে দুটো মিলিয়ে hybrid.
  3. Hash (SHA-256) একমুখী আঙুলের ছাপ — একই ইনপুটে একই ফল, সামান্য বদলে পুরো বদল। পাসওয়ার্ড রাখতে salt-সহ ধীর hash; MD5/SHA-1 নয়।
  4. ডিজিটাল সিগনেচার: private key দিয়ে সই, public key দিয়ে যাচাই — সত্যতা, অখণ্ডতা, অস্বীকার-অযোগ্যতা। সার্টিফিকেট আর CA-র chain of trust public key-কে পরিচয়ের সাথে বাঁধে।
  5. HTTPS = HTTP + TLS, পোর্ট ৪৪৩; তালা মানে এনক্রিপ্ট করা সংযোগ, সৎ সাইট নয়। ক্রিপ্টো নিজে বানাবেন না, AI-এর পরামর্শ অফিসিয়াল সূত্রে মিলিয়ে নিন।

পরের পর্বে: প্রযুক্তি দিয়ে তথ্য তালাবদ্ধ করা গেল — কিন্তু কার তথ্য কে সংগ্রহ করতে পারে, অনলাইনে কী করা অপরাধ, আর অন্যের লেখা-ছবি ব্যবহারের নিয়ম কী? গোপনীয়তা, নৈতিকতা, ICT আইন, সাইবার আইন আর কপিরাইট।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান