Chapter 1 of 2
Why secrets matter and how mathematics keeps them
কল্পনা করুন আপনি প্রাচীন গ্রিসের একজন সেনাপতি। আপনার সেনাবাহিনী তিনটি পর্বত গিরিপথে ছড়িয়ে আছে, আর আপনাকে একটি আক্রমণ সমন্বয় করতে হবে — কিন্তু আপনি যে বার্তাবাহক পাঠাচ্ছেন সে শত্রুর হাতে ধরা পড়তে পারে। কীভাবে আপনি এমন একটি বার্তা পাঠাবেন যা শুধুমাত্র আপনার মিত্রই বুঝতে পারবে?
এই প্রশ্নটি হাজার বছর পুরনো, এবং এটি থেকেই একটি পুরো গাণিতিক শাখার জন্ম হয়েছে। আজকে, যখন আপনি আপনার ব্যাংকের ওয়েবসাইট খোলেন, যখন WhatsApp বলে "messages are end-to-end encrypted", যখন আপনার পাসপোর্ট বর্ডার স্ক্যানার পার হয় — সবকিছুই সেই একই প্রাচীন প্রশ্নের উত্তরের উপর দাঁড়িয়ে আছে।
Cryptography হলো যোগাযোগ সুরক্ষিত করার বিজ্ঞান। Network Security হলো তথ্য সিস্টেম ও নেটওয়ার্কের মধ্য দিয়ে যাওয়ার সময় সেটিকে রক্ষা করার শাস্ত্র। একসাথে, এরা সেই অদৃশ্য বর্ম তৈরি করে যার উপর ডিজিটাল দুনিয়া নির্ভর করে।
এই কোর্সটি CSE-4109 — Cryptography and Network Security কভার করে, যা JnU B.Sc. in CSE কারিকুলামের ৪র্থ বর্ষ, ১ম সেমিস্টারের একটি মূল কোর্স। এটি মৌলিক ধারণা থেকে শুরু করে আধুনিক ইন্টারনেট সুরক্ষিত করার protocol পর্যন্ত বিস্তৃত।
Cryptography শব্দটি গ্রিক kryptos (লুকানো) এবং graphia (লেখা) থেকে এসেছে। মূলত, cryptography হলো তথ্য রূপান্তর করার অনুশীলন যাতে শুধুমাত্র উদ্দিষ্ট প্রাপকই তা বুঝতে পারে।
Cryptography হলো তথ্য ও যোগাযোগ সুরক্ষিত করার কৌশলের বিজ্ঞান। এতে পাঠযোগ্য ডেটা (plaintext) কে একটি গাণিতিক পদ্ধতি (cipher) এবং একটি গোপন তথ্য (key) ব্যবহার করে অপঠনযোগ্য রূপে (ciphertext) রূপান্তরিত করা হয়, যাতে শুধুমাত্র অনুমোদিত পক্ষই প্রক্রিয়াটি বিপরীত করতে পারে।
প্রক্রিয়াটির দুটি দিক আছে:
Plaintext
মূল, পাঠযোগ্য বার্তা।
Encryption
Cipher + key প্রয়োগ করো।
Ciphertext
এলোমেলো, অপঠনযোগ্য আউটপুট নেটওয়ার্কের মধ্য দিয়ে পাঠানো হয়।
Decryption
Cipher + key (বিপরীত) প্রয়োগ করো।
Plaintext
প্রাপকের কাছে মূল বার্তা পুনরুদ্ধার।
একটি cipher হলো এই রূপান্তর সম্পন্ন করার algorithm। Key হলো গোপন ডেটার একটি অংশ যা cipher ব্যবহার করে। সঠিক key ছাড়া, ciphertext থেকে plaintext পুনরুদ্ধার করা computationally অসাধ্য হওয়া উচিত।
তথ্যের উপর প্রতিটি আক্রমণ তা পড়ার জন্য হয় না। কখনো কখনো আক্রমণকারীরা তা পরিবর্তন করতে, ধ্বংস করতে, বা অন্যদের অ্যাক্সেস অস্বীকার করতে চায়। Cryptography ও network security তিনটি মূল বৈশিষ্ট্য নিয়ে কাজ করে যা CIA Triad নামে পরিচিত:
| বৈশিষ্ট্য | অর্থ | উদাহরণ হুমকি | Cryptographic টুল |
|---|---|---|---|
| Confidentiality | তথ্য শুধুমাত্র অনুমোদিত পক্ষের কাছে অ্যাক্সেসযোগ্য। | নেটওয়ার্ক লিঙ্কে盗聽 (eavesdropping)। | Encryption (AES, RSA)। |
| Integrity | তথ্য পরিবর্তন বা টেম্পার করা হয়নি। | একজন আক্রমণকারী ট্রানজিটে একটি আর্থিক লেনদেন পরিবর্তন করছে। | Hash functions, MACs, digital signatures। |
| Availability | অনুমোদিত ব্যবহারকারীদের প্রয়োজনের সময় সিস্টেম ও ডেটা অ্যাক্সেসযোগ্য। | একটি DoS আক্রমণ সার্ভারকে ফ্লাড করছে। | Firewalls, redundancy, intrusion detection। |
Confidentiality — শুধুমাত্র অনুমোদিত চোখ দেখতে পাবে। Integrity — কেউ এটি টেম্পার করেনি। Availability — যখন প্রয়োজন তখন এটি সেখানে থাকবে। এই কোর্সে আপনি যে প্রতিটি নিরাপত্তা ব্যবস্থা অধ্যয়ন করবেন তা এই তিনটি স্তম্ভের এক বা একাধিক রক্ষা করে।
CIA-এর বাইরে, আরো দুটি লক্ষ্য প্রায়শই উল্লেখ করা হয়:
ITU-T X.800 স্ট্যান্ডার্ড (এবং এর পূর্বসূরি RFC 2828) নিরাপত্তা নিয়ে যুক্তি করার জন্য একটি পরিষ্কার শব্দভাণ্ডার প্রদান করে:
একটি attack হলো যেকোনো ক্রিয়া যা তথ্যের নিরাপত্তাকে ক্ষুণ্ণ করে। আক্রমণ দুটি বিস্তৃত শ্রেণীতে পড়ে:
| ধরন | আক্রমণকারী যা করে | CIA প্রভাব | উদাহরণ |
|---|---|---|---|
| Passive Attack | যোগাযোগ পর্যবেক্ষণ বা আড়িপাতা করে কিন্তু পরিবর্তন করে না। | শুধুমাত্র Confidentiality। | Traffic analysis, eavesdropping, message interception। |
| Active Attack | বার্তা পরিবর্তন, তৈরি বা রিপ্লে করে। | Integrity, Availability এবং কখনো কখনো Confidentiality। | Replay attack, modification, masquerade (ছদ্মবেশ), denial of service। |
Passive আক্রমণ সনাক্ত করা কঠিন (আক্রমণকারী কোনো চিহ্ন রাখে না) কিন্তু encryption দিয়ে প্রতিরোধ করা সহজ। Active আক্রমণ সনাক্ত করা সহজ (বার্তা পরিবর্তন হয়) কিন্তু সম্পূর্ণ প্রতিরোধ করা কঠিন।
Active আক্রমণকে আরো শ্রেণীবদ্ধ করা যায়:
একটি security service হলো এমন একটি সুবিধা যা ডেটা প্রক্রিয়াকরণ ও স্থানান্তরের নিরাপত্তা বৃদ্ধি করে। X.800 পাঁচটি বিভাগ সংজ্ঞায়িত করে:
Authentication
নিশ্চয়তা যে যোগাযোগকারী সত্তা সে যা দাবি করে তাই। Peer-entity authentication (connection স্তর) বনাম data-origin authentication (প্রতি বার্তা স্তর)।
Access Control
একটি সম্পদের অননুমোদিত ব্যবহার প্রতিরোধ। প্রায়শই authentication-এর মাধ্যমে প্রতিষ্ঠিত পরিচয় দ্বারা প্রয়োগ করা হয়।
Data Confidentiality
প্রেরিত ডেটাকে passive আক্রমণ থেকে সুরক্ষা। সম্পূর্ণ বার্তা বা নির্দিষ্ট ক্ষেত্র কভার করতে পারে।
Data Integrity
নিশ্চয়তা যে বার্তাগুলি ঠিক যেভাবে পাঠানো হয়েছিল সেভাবেই পাওয়া যাচ্ছে, পরিবর্তন, সন্নিবেশ, মুছে ফেলা বা replay ছাড়া।
Non-repudiation
যোগাযোগে জড়িত কোনো একটি পক্ষের অস্বীকারের বিরুদ্ধে সুরক্ষা — প্রেরককে বার্তা পাঠানো অস্বীকার করা থেকে বিরত রাখে।
একটি security mechanism হলো একটি নিরাপত্তা সেবা বাস্তবায়নে ব্যবহৃত প্রযুক্তিগত টুল। মূল অন্তর্দৃষ্টি হলো:
একটি সেবার জন্য অনেক সম্ভাব্য পদ্ধতি; একটি পদ্ধতি অনেক সম্ভাব্য সেবার জন্য।
| নিরাপত্তা সেবা | উদাহরণ পদ্ধতি |
|---|---|
| Confidentiality | Symmetric encryption (AES), Public-key encryption (RSA)। |
| Integrity | Cryptographic hash functions (SHA-256), Message Authentication Codes (HMAC)। |
| Authentication | Digital signatures, challenge-response protocols, certificates। |
| Non-repudiation | একটি trusted timestamp authority সহ digital signatures। |
| Access Control | Access control lists (ACLs), capability tokens, firewalls। |
সমস্ত নিরাপদ যোগাযোগ একই ধারণাগত মডেল অনুসরণ করে। চারটি মৌলিক উপাদান রয়েছে:
Principal A (প্রেরক)
নিরাপদে পাঠানোর জন্য একটি বার্তা আছে।
Security Transformation
একটি key ব্যবহার করে Encryption, signing, বা MAC প্রয়োগ করা হয়।
নেটওয়ার্ক
Ciphertext বা signed বার্তা অবিশ্বস্ত নেটওয়ার্ক অতিক্রম করে।
Security Transformation
সঠিক key ব্যবহার করে Decryption বা verification।
Principal B (প্রাপক)
মূল বার্তা পুনরুদ্ধার করে।
এই মডেলে আরো দুটি অভিনেতা সবসময় থাকে:
Cryptography-র একটি মৌলিক নিয়ম: একটি cryptosystem তখনও নিরাপদ হওয়া উচিত এমনকি যদি key ছাড়া সিস্টেম সম্পর্কে সবকিছু জনসাধারণের জানা থাকে। ভালো cryptographic system algorithm-এর গোপনীয়তার উপর নির্ভর করে না — শুধুমাত্র key-এর গোপনীয়তার উপর নির্ভর করে। এই কারণেই AES এবং RSA প্রকাশিত মান হওয়া সত্ত্বেও নিরাপদ থাকে।
এই তিনটি শব্দ প্রায়ই বিভ্রান্ত হয়:
| শব্দ | অর্থ |
|---|---|
| Cryptography | যোগাযোগ নিরাপদ করার সিস্টেম ডিজাইন করা। |
| Cryptanalysis | Cryptographic সিস্টেম ভাঙার অধ্যয়ন — key ছাড়া plaintext পুনরুদ্ধার করতে দুর্বলতা বিশ্লেষণ করা। |
| Cryptology | Cryptography এবং cryptanalysis উভয়কে অন্তর্ভুক্ত করে ছাতা ক্ষেত্র। |
উভয় দিক বোঝা — কীভাবে তৈরি করতে হয় এবং কীভাবে ভাঙতে হয় — এটিই একজন নিরাপত্তা বিশেষজ্ঞকে কার্যকর করে তোলে।
প্রাচীন মিশরীয়রা অ-মানক hieroglyphs ব্যবহার করত — ইচ্ছাকৃত text substitution-এর প্রাচীনতম জ্ঞাত ব্যবহার।
Julius Caesar জেনারেলদের সাথে যোগাযোগের জন্য alphabet-এর প্রতিটি অক্ষর ৩ স্থান সরিয়ে দিতেন — প্রথম নথিভুক্ত shift cipher।
আরব পলিম্যাথ আল-কিন্দি frequency analysis আবিষ্কার করেন — অক্ষরের কম্পাংক গণনা করে সহজ substitution cipher ভাঙার ক্ষমতা।
Charles Wheatstone Playfair cipher উদ্ভাবন করেন — প্রথম digraph substitution cipher, পরে প্রথম বিশ্বযুদ্ধে ব্যবহৃত।
Gilbert Vernam one-time pad উদ্ভাবন করেন — ১৯৪৯ সালে Claude Shannon তাত্ত্বিকভাবে অভেদ্য প্রমাণ করেন।
মিত্রবাহিনী জার্মানির Enigma মেশিন ভেঙে দেয়, দ্বিতীয় বিশ্বযুদ্ধকে আনুমানিক ২ বছর সংক্ষিপ্ত করে।
Whitfield Diffie ও Martin Hellman প্রথম public-key cryptography ধারণা প্রকাশ করেন — key বিতরণ সমস্যার সমাধান।
Rivest, Shamir ও Adleman RSA algorithm প্রকাশ করেন — প্রথম ব্যবহারিক public-key cryptosystem।
NIST Data Encryption Standard মানদণ্ড করে — প্রথম ব্যাপকভাবে গৃহীত symmetric cipher standard।
NIST Advanced Encryption Standard (Rijndael algorithm) মানদণ্ড করে — আজকে symmetric encryption-এর সোনার মান।
NIST ২০২৪ সালে post-quantum cryptographic standard চূড়ান্ত করে ভবিষ্যতের quantum computer-এর আক্রমণ প্রতিরোধ করতে।
আধুনিক cryptography তিনটি প্রধান পরিবারে বিভক্ত:
| ধরন | Key মডেল | গতি | Key বিতরণ সমস্যা | সাধারণ ব্যবহার |
|---|---|---|---|---|
| Symmetric-key | Encryption ও decryption-এ একই key। | অত্যন্ত দ্রুত। | কঠিন — গোপন key টি নিরাপদে কীভাবে শেয়ার করবেন? | বাল্ক ডেটা encryption (AES)। |
| Asymmetric (Public-key) | দুটি গাণিতিকভাবে সংযুক্ত key: একটি public key ও একটি private key। | ধীর (symmetric-এর চেয়ে ১০০-১০০০× ধীর)। | সমাধান হয়েছে — public key অবাধে বিতরণ করা হয়। | Key exchange, digital signatures, certificates (RSA, ElGamal, ECC)। |
| Hash Functions | কোনো key নেই — এটি একটি one-way function। | দ্রুত। | প্রযোজ্য নয় — কোনো key নেই। | Integrity checking, digital signatures, password storage (SHA-256, SHA-3)। |
বাস্তবে, বাস্তব-বিশ্বের সিস্টেম তিনটি একত্রিত করে:
এই hybrid পদ্ধতি TLS (HTTPS), Signal এবং কার্যত প্রতিটি নিরাপদ protocol কীভাবে কাজ করে।
Classical Cryptography
Substitution ও transposition cipher, modular arithmetic, এবং classical system-এর গাণিতিক ভিত্তি।
Symmetric-Key Cryptography
Block cipher ডিজাইন নীতি, Feistel structure, DES, Triple-DES এবং AES algorithm।
Public-Key Cryptography
RSA, Diffie-Hellman protocol এবং ElGamal encryption — কঠিন number-theoretic সমস্যার উপর ভিত্তি করে।
Hash Functions ও MACs
SHA পরিবার, HMAC এবং encryption ছাড়া integrity নিশ্চিত ও বার্তা authenticate করতে কীভাবে ব্যবহার করা হয়।
Digital Signatures ও PKI
RSA signatures, DSS, X.509 certificates এবং Public Key Infrastructure যা বড় পরিসরে বিশ্বাস সম্ভব করে।
Network Security Protocols
SSL/TLS, IPSec, PGP এবং বিমূর্ত cryptographic primitive কীভাবে বাস্তব-বিশ্বের নিরাপত্তা protocol-এ একত্রিত হয়।