পরিচয়
স্বাগতম ক্রিপ্টোগ্রাফির মূলনীতি বইতে! এই বইটি বাংলা ভাষায় লেখা প্রথম পূর্ণাঙ্গ ক্রিপ্টোগ্রাফি গাইড।
এই বইটি কাদের জন্য?
এই বইটি নিম্নলিখিত পাঠকদের জন্য উপযোগী:
- কম্পিউটার বিজ্ঞানের শিক্ষার্থী যারা ক্রিপ্টোগ্রাফি শিখতে চান
- সফটওয়্যার ইঞ্জিনিয়ার যারা নিরাপত্তা বিষয়ে জানতে আগ্রহী
- গবেষক যারা ক্রিপ্টোগ্রাফি নিয়ে কাজ করেন
- সাইবার সিকিউরিটি পেশাদার
- সাধারণভাবে যে কেউ যারা তথ্য নিরাপত্তা সম্পর্কে জানতে চান
কেন এই বইটি?
ক্রিপ্টোগ্রাফি আজকের ডিজিটাল যুগে অত্যন্ত গুরুত্বপূর্ণ একটি বিষয়। আমাদের প্রতিদিনের জীবনে ব্যবহৃত প্রায় সব ডিজিটাল সেবা - অনলাইন ব্যাংকিং, ইমেইল, সোশ্যাল মিডিয়া, মোবাইল অ্যাপ্লিকেশন - সবই ক্রিপ্টোগ্রাফির উপর নির্ভরশীল।
বাংলা ভাষায় ক্রিপ্টোগ্রাফির উপর সহজবোধ্য বই তেমন একটা নেই। এই বইটি সেই প্রয়োজন মেটানোর একটি ছোট্ট চেষ্টা।
বইটির বিশেষত্ব
- বাংলা ভাষায় সম্পূর্ণ: সমস্ত ব্যাখ্যা, উদাহরণ এবং পরিভাষা বাংলায় লেখার চেষ্টা করা হয়েছে
- তত্ত্ব ও বাস্তবায়ন: শুধু তত্ত্ব নয়, বাস্তব প্রয়োগের উদাহরণও দেওয়ার চেষ্টা করেছি
- ধাপে ধাপে শিক্ষা: সহজ থেকে জটিল ক্রমানুসারে সাজানোর চেষ্টা করা হয়েছে
- গবেষণা ভিত্তিক: আন্তর্জাতিক গবেষণা ও ব্যক্তিগত অভিজ্ঞতার ভিত্তিতে লেখার চেষ্টা করেছি
লেখক সম্পর্কে
আমি খন্দকার মোঃ আল-আমিন। বর্তমানে ITK Engineering GmbH-তে সাইবার সিকিউরিটি ইঞ্জিনিয়ার হিসেবে কাজ করি। ক্রিপ্টোগ্রাফি ও সাইবার সিকিউরিটির ক্ষেত্রে কিছু অভিজ্ঞতা রয়েছে:
- ওকায়ামা বিশ্ববিদ্যালয়, জাপান থেকে ক্রিপ্টোগ্রাফি বিষয়ে পিএইচডি সম্পন্ন করেছি (২০১৯)
- জাপান সরকার থেকে গবেষণা বৃত্তি (MEXT) পাওয়ার সুযোগ হয়েছিল
- ক্রিপ্টোগ্রাফি ও সাইবার সিকিউরিটিতে কিছু বছর কাজ করার সুযোগ হয়েছে
- কিছু গবেষণাপত্র প্রকাশের সুযোগ পেয়েছি
কীভাবে পড়বেন
এই বইটি ক্রমানুসারে পড়ার জন্য ডিজাইন করা হয়েছে। তবে আপনি চাইলে নির্দিষ্ট অধ্যায়ে সরাসরি যেতে পারেন।
নতুনদের জন্য সুপারিশ:
- শাস্ত্রীয় ক্রিপ্টোগ্রাফি দিয়ে শুরু করুন
- তারপর আধুনিক ক্রিপ্টোগ্রাফি পড়ুন
- সবশেষে উন্নত বিষয়গুলো দেখুন
অভিজ্ঞদের জন্য:
- সরাসরি আপনার আগ্রহের বিষয়ে যেতে পারেন
- রেফারেন্স হিসেবে ব্যবহার করতে পারেন
যোগাযোগ
এই বইটি নিয়ে আপনার কোনো মতামত, প্রশ্ন বা পরামর্শ থাকলে আমার সাথে যোগাযোগ করতে পারেন:
- ইমেইল: tokhandaker [এট] outlook [ডট] com (ইংরেজিতে @ এবং . ব্যবহার করুন)
- গিটহাব: github.com/eNipu
- লিঙ্কডইন: linkedin.com/in/khandakermd
বিশেষ দ্রষ্টব্য: ইমেইল পাঠানোর আগে বিষয় লাইনে “ক্রিপ্টো বই” লিখবেন - এতে আপনার ইমেইল আমার কাছে দ্রুত পৌঁছাবে!
চলুন শুরু করা যাক ক্রিপ্টোগ্রাফির রোমাঞ্চকর জগতে!
শাস্ত্রীয় ক্রিপ্টোগ্রাফি
শাস্ত্রীয় ক্রিপ্টোগ্রাফি হলো ক্রিপ্টোগ্রাফির প্রাচীনতম রূপ। এখানে আমরা দেখবো কীভাবে মানুষ হাজার বছর ধরে গোপন বার্তা পাঠানোর জন্য বিভিন্ন পদ্ধতি ব্যবহার করেছে।
ক্রিপ্টোগ্রাফি কী?
ক্রিপ্টোগ্রাফি (Cryptography) শব্দটি এসেছে গ্রিক শব্দ “kryptos” (গোপন) এবং “graphein” (লেখা) থেকে। সহজ ভাষায়, ক্রিপ্টোগ্রাফি হলো তথ্য গোপন রাখার বিজ্ঞান।
মূল ধারণাসমূহ
- প্লেইনটেক্সট (Plaintext): মূল বার্তা যা আমরা গোপন করতে চাই
- সাইফারটেক্সট (Ciphertext): এনক্রিপ্ট করা বার্তা
- এনক্রিপশন (Encryption): প্লেইনটেক্সটকে সাইফারটেক্সটে রূপান্তরের প্রক্রিয়া
- ডিক্রিপশন (Decryption): সাইফারটেক্সটকে প্লেইনটেক্সটে ফিরিয়ে আনার প্রক্রিয়া
- কী (Key): এনক্রিপশন ও ডিক্রিপশনের জন্য ব্যবহৃত গোপন তথ্য
শাস্ত্রীয় সাইফারের প্রকারভেদ
১. সাবস্টিটিউশন সাইফার (Substitution Cipher)
এই পদ্ধতিতে প্রতিটি অক্ষর অন্য কোনো অক্ষর দিয়ে প্রতিস্থাপিত হয়।
উদাহরণ:
সাধারণ বর্ণমালা: অ আ ই ঈ উ ঊ এ ঐ ও ঔ
গোপন বর্ণমালা: ক খ গ ঘ ঙ চ ছ জ ঝ ঞ
২. ট্রান্সপজিশন সাইফার (Transposition Cipher)
এই পদ্ধতিতে অক্ষরগুলো একই থাকে কিন্তু তাদের অবস্থান পরিবর্তন করা হয়।
উদাহরণ:
মূল বার্তা: "আমার নাম আল-আমিন"
এনক্রিপ্ট: "মরামআ নামল-আি ান"
ইতিহাসের পাতা থেকে
স্পার্টান স্কাইটেল (Spartan Scytale)
খ্রিস্টপূর্ব ৫ম শতাব্দীতে গ্রিক স্পার্টানরা কাঠের রডের চারদিকে চামড়ার ফিতা পেঁচিয়ে বার্তা লিখতো। শুধুমাত্র একই মাপের রড দিয়েই বার্তা পড়া যেত।
আরবদের অবদান
৯ম শতাব্দীতে আরব বিজ্ঞানী আল-কিন্দি প্রথম ফ্রিকোয়েন্সি অ্যানালাইসিস পদ্ধতি আবিষ্কার করেন। এটি ছিল ক্রিপ্ট অ্যানালাইসিসের প্রথম বৈজ্ঞানিক পদ্ধতি।
শাস্ত্রীয় সাইফারের সীমাবদ্ধতা
- ছোট কী স্পেস: খুব কম সংখ্যক সম্ভাব্য কী
- ফ্রিকোয়েন্সি অ্যানালাইসিসের ঝুঁকি: ভাষার প্রাকৃতিক প্যাটার্ন রক্ষা করতে পারে না
- কী বিতরণের সমস্যা: গোপন কী নিরাপদে পৌঁছানো কঠিন
আধুনিক প্রাসঙ্গিকতা
যদিও শাস্ত্রীয় ক্রিপ্টোগ্রাফি আজ আর ব্যবহার করা হয় না, তবুও এগুলো শেখার গুরুত্ব রয়েছে:
- ভিত্তি তৈরি: আধুনিক ক্রিপ্টোগ্রাফির মূল ধারণা বুঝতে সাহায্য করে
- ক্রিপ্ট অ্যানালাইসিস: আক্রমণের পদ্ধতি বুঝতে সাহায্য করে
- শিক্ষামূলক: সহজভাবে ক্রিপ্টোগ্রাফির নীতিমালা শেখানো যায়
পরবর্তী অধ্যায়ে আমরা বিস্তারিতভাবে সিজার সাইফার নিয়ে আলোচনা করবো।
সিজার সাইফার
সিজার সাইফার হলো ইতিহাসের সবচেয়ে বিখ্যাত ক্রিপ্টোগ্রাফিক অ্যালগরিদমগুলোর একটি। এটি রোমান সম্রাট জুলিয়াস সিজারের নামে নামকরণ করা হয়েছে, যিনি এটি তার গোপন সামরিক যোগাযোগে ব্যবহার করতেন।
কার্যপ্রণালী
সিজার সাইফার একটি শিফট সাইফার। এতে প্রতিটি অক্ষরকে বর্ণমালায় একটি নির্দিষ্ট সংখ্যক স্থান এগিয়ে বা পিছিয়ে সরানো হয়।
মূল ধারণা
যদি আমাদের শিফট ভ্যালু হয় k
, তাহলে:
- প্রতিটি অক্ষর
P
কেC
তে রূপান্তরিত করা হয় - যেখানে
C = (P + k) mod 26
(ইংরেজি বর্ণমালার জন্য)
বাংলা বর্ণমালায় সিজার সাইফার
বাংলা বর্ণমালায় ৫০টি অক্ষর রয়েছে। আমরা সিজার সাইফার এভাবে প্রয়োগ করতে পারি:
বাংলা বর্ণমালার ক্রম:
অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ
ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন প ফ ব ভ ম য র ল শ ষ স হ ড় ঢ় য় ৎ ং ঃ ঁ
উদাহরণ (শিফট ৩)
মূল বার্তা: “আমি ভালো আছি”
এনক্রিপশন প্রক্রিয়া:
- আ → ঈ (৩ স্থান এগিয়ে)
- ম → র (৩ স্থান এগিয়ে)
- ি → ঊ (৩ স্থান এগিয়ে)
এনক্রিপ্টেড বার্তা: “ঈরঊ ভাল লাোো ঈছছঊ”
ইংরেজিতে উদাহরণ
আরো সহজ বোঝার জন্য ইংরেজি উদাহরণ:
শিফট ৩ (সিজারের মূল পদ্ধতি):
সাধারণ: 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
শিফট ৩: 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
উদাহরণ:
- মূল: “HELLO WORLD”
- এনক্রিপ্ট: “KHOOR ZRUOG”
গাণিতিক উপস্থাপনা
এনক্রিপশন:
C = (P + k) mod n
ডিক্রিপশন:
P = (C - k) mod n
যেখানে:
P
= প্লেইনটেক্সট অক্ষরের অবস্থানC
= সাইফারটেক্সট অক্ষরের অবস্থানk
= শিফট ভ্যালু (কী)n
= বর্ণমালার অক্ষর সংখ্যা
প্রোগ্রামিং উদাহরণ
Python কোড:
def caesar_encrypt(text, shift):
result = ""
for char in text:
if char.isalpha():
ascii_offset = 65 if char.isupper() else 97
result += chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset)
else:
result += char
return result
def caesar_decrypt(text, shift):
return caesar_encrypt(text, -shift)
# উদাহরণ ব্যবহার
plaintext = "HELLO WORLD"
shift = 3
encrypted = caesar_encrypt(plaintext, shift)
print(f"এনক্রিপ্টেড: {encrypted}")
decrypted = caesar_decrypt(encrypted, shift)
print(f"ডিক্রিপ্টেড: {decrypted}")
সিজার সাইফারের সুবিধা
- সহজ বাস্তবায়ন: খুবই সরল অ্যালগরিদম
- দ্রুত: কম্পিউটেশনাল জটিলতা O(n)
- শিক্ষামূলক: ক্রিপ্টোগ্রাফির মূল ধারণা বুঝতে সাহায্য করে
সিজার সাইফারের অসুবিধা
- ছোট কী স্পেস: মাত্র 25টি সম্ভাব্য কী (ইংরেজির জন্য)
- ব্রুট ফোর্স আক্রমণ: সব কী চেষ্টা করা সহজ
- ফ্রিকোয়েন্সি অ্যানালাইসিস: ভাষার প্রাকৃতিক প্যাটার্ন রক্ষা করে না
ক্রিপ্ট অ্যানালাইসিস
ব্রুট ফোর্স আক্রমণ
ইংরেজি বর্ণমালার জন্য মাত্র ২৫টি সম্ভাব্য শিফট রয়েছে। তাই সবগুলো চেষ্টা করে দেখা সম্ভব:
def brute_force_caesar(ciphertext):
print("সম্ভাব্য ডিক্রিপশনগুলো:")
for shift in range(26):
result = caesar_decrypt(ciphertext, shift)
print(f"শিফট {shift}: {result}")
# উদাহরণ
brute_force_caesar("KHOOR ZRUOG")
ফ্রিকোয়েন্সি অ্যানালাইসিস
দীর্ঘ টেক্সটের জন্য, আমরা অক্ষরের ব্যবহারের ফ্রিকোয়েন্সি দেখে শিফট ভ্যালু বের করতে পারি।
ঐতিহাসিক ব্যবহার
- জুলিয়াস সিজার: শিফট ৩ ব্যবহার করতেন সামরিক বার্তায়
- রোমান সেনাবাহিনী: গোপন নির্দেশ পাঠাতে ব্যবহার করত
- প্রথম বিশ্বযুদ্ধ: কিছু সরল সামরিক যোগাযোগে ব্যবহৃত হয়
আধুনিক প্রয়োগ
যদিও নিরাপত্তার জন্য আর ব্যবহার করা হয় না, তবুও:
- শিক্ষা: ক্রিপ্টোগ্রাফির প্রাথমিক ধারণা শেখানো
- পাজল গেম: ক্রসওয়ার্ড ও ধাঁধায় ব্যবহার
- ROT13: ইন্টারনেটে স্পয়লার লুকানোর জন্য
উন্নত সংস্করণ
এফাইন সাইফার (Affine Cipher)
সিজার সাইফারের একটি সাধারণীকরণ:
C = (aP + b) mod n
ভিজেনার সাইফার
একাধিক সিজার সাইফারের সমন্বয়, যা আরো জটিল।
পরবর্তী অধ্যায়ে আমরা ভিজেনার সাইফার নিয়ে বিস্তারিত আলোচনা করবো।