Modular shifts, mathematical foundations, and numerical cryptanalysis
40 min read
Created ৫ সেপ, ২০২৬
ভাষার প্রথম গাণিতিক রূপান্তর
আজ থেকে প্রায় দুই হাজার বছর আগের কথা চিন্তা করুন। আপনি প্রাচীন রোমান সেনাবাহিনীর একজন কমান্ডার। শত্রুপক্ষের এলাকার ওপর দিয়ে এক বার্তাবাহককে পাঠাতে হবে জরুরি এক রণকৌশল পৌঁছে দিতে। কিন্তু বার্তাবাহক যদি মাঝপথে শত্রুর হাতে ধরা পড়ে যায়, তবে তো পুরো সামরিক পরিকল্পনা ফাঁস হয়ে যাবে!
রোমান সম্রাট জুলিয়াস সিজার এই সংকট কাটাতে এক চমৎকার কৌশল উদ্ভাবন করেছিলেন। তিনি চিঠিতে মূল বর্ণগুলো সরাসরি না লিখে, বর্ণমালার প্রতিটি অক্ষরকে নির্দিষ্ট ৩ ঘর এগিয়ে লিখে দিতেন। অর্থাৎ A হয়ে যেত D, B হয়ে যেত E, আর বর্ণমালার শেষের Z ঘুরে গিয়ে হয়ে যেত C।
অক্ষরকে এভাবে বর্ণমালার ভেতর নির্দিষ্ট দূরত্বে সরিয়ে দেওয়ার ধারণাকে ঐতিহাসিকভাবে বলা হয় Caesar Cipher, আর আধুনিক গণিতের পরিভাষায় একে আমরা বলি Additive Cipher বা Shift Cipher। বর্তমান প্রযুক্তির তুলনায় এটি অনেক সরল মনে হলেও, মানবসভ্যতার ইতিহাসে এটি ছিল এক বৈপ্লবিক মোড়: এই প্রথম মানুষের মুখের ভাষাকে সংখ্যায় রূপান্তর করে, মডুলার গণিত দিয়ে প্রক্রিয়া করে গোপন করা সম্ভব হয়েছিল।
এই অধ্যায়ে আমরা Additive Cipher একদম বেসিক থেকে অ্যাডভান্সড পর্যন্ত পুঙ্খানুপুঙ্খভাবে শিখব। মডুলার অ্যারিথমেটিকের রিং Z26, সীমানা অতিক্রম (wraparound), ঋণাত্মক শিফট কি (negative keys), অজ্ঞাত কি বের করার গাণিতিক সমীকরণ (unknown key recovery), ক্রিপ্টঅ্যানালাইসিস ও ব্রুট-ফোর্স অ্যাটাক—সবকিছুই আমরা বাস্তব উদাহরণ ও গাণিতিক সমস্যার মাধ্যমে সমাধান করব।
এই অধ্যায়ে আমরা যা যা শিখব
Z26 রিং-এ কনগ্রুয়েন্স বা মডুলো পাটিগণিতের নিয়ম ব্যবহার করে এনক্রিপশন ও ডিক্রিপশন।
ঋণাত্মক সংখ্যা ও মডুলার বিয়োগের ক্ষেত্রে আন্ডারফ্লো কীভাবে হ্যান্ডেল করতে হয়।
একাধিক সাইফারটেক্সট ও প্লেইনটেক্সট পেয়ার থেকে অজানা কি (k) বের করার কৌশল।
ব্রুট-ফোর্স (Exhaustive search) এবং ফ্রিকোয়েন্সি অ্যানালাইসিস ব্যবহার করে সাইফার ভাঙার নিয়ম।
কার্কহফসের নীতি (Kerckhoffs's Principle) এবং ক্লাসিক্যাল সাইফারের কাঠামোগত দুর্বলতা।
১. Mathematical Foundations (Modulo 26 & Ring Z26)
ক্রিপ্টোগ্রাফির যেকোনো অ্যালগরিদম বোঝার আগে আমাদের এমন একটি গাণিতিক জগৎ তৈরি করতে হবে, যেখানে বর্ণমালার অক্ষরগুলোকে যোগ বা বিয়োগ করলেও তারা বর্ণমালার সীমানা পেরিয়ে হারিয়ে যাবে না। এই জগৎটিই হলো মডুলার অ্যারিথমেটিক (Modular Arithmetic), বিশেষ করে ২৬ মডুলাসের পূর্ণসংখ্যার সেট Z26।
বর্ণ থেকে সংখ্যার ম্যাপিং (Bijection Mapping)
ইংরেজি বর্ণমালায় মোট ২৬টি অক্ষর রয়েছে (A থেকে Z)। এদের ওপর গাণিতিক হিসাব-নিকাশ চালানোর জন্য আমরা প্রতিটি অক্ষরের সাথে একটি নির্দিষ্ট অঋণাত্মক পূর্ণসংখ্যার দ্বিমুখী সম্পর্ক (bijection) তৈরি করি:
Z26={0,1,2,3,…,24,25}
ইংরেজি বর্ণমালার সাংখ্যিক মান (Z_26) — A থেকে M
বর্ণ
A
B
C
D
E
F
G
H
I
J
K
L
M
মান
0
1
2
3
4
5
6
7
8
9
10
11
12
ইংরেজি বর্ণমালার সাংখ্যিক মান (Z_26) — N থেকে Z
বর্ণ
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
মান
13
14
15
16
17
18
19
20
21
22
23
24
25
ইনডেক্সিং শুরু হবে ০ থেকে
বিশ্ববিদ্যালয়ের পরীক্ষায় শিক্ষার্থীরা সবচেয়ে বেশি যে ভুলটি করে তা হলো A-কে ১ এবং Z-কে ২৬ ধরে ফেলা। যদি আপনি Z=26 ধরেন, তবে 26mod26=0 হয়ে পুরো ম্যাপিং ভেঙে পড়বে! ক্রিপ্টোগ্রাফিতে সবসময় মনে রাখবেন: A মানে ০ এবং Z মানে ২৫।
ভাগশেষ উপপাদ্য এবং মডুলো অপারেটর
যেকোনো পূর্ণসংখ্যা a এবং ধনাত্মক ভাজক m-এর জন্য এমন দুটি অনন্য পূর্ণসংখ্যা q (ভাগফল) এবং r (ভাগশেষ) পাওয়া যাবে যেন:
a=q⋅m+rযেখানে0≤r<m
এই ভাগশেষ r-কেই বলা হয় amodm:
মডুলো অপারেশন
r=amodm⟺a≡r(modm)
সহজ কথায়, ঘড়িতে যেমন ১২টার পর আবার ১টা বাজে (মডুলো ১২), তেমনি ইংরেজি বর্ণমালায় ২৫ (Z)-এর সাথে ১ যোগ করলে তা ২৬ না হয়ে আবার ০ (A)-তে ফিরে আসে। এটিই মডুলার অ্যারিথমেটিকের মূল সৌন্দর্য।
মডুলার অ্যারিথমেটিকে ঋণাত্মক সংখ্যা (Negative Numbers)
ডিক্রিপশন করার সময় ছোট সংখ্যা থেকে বড় কি বিয়োগ করলে ঋণাত্মক মান চলে আসে। যেমন 1−7=−6। তখন মডুলো ২৬ এর মান কী হবে?
মডুলার অ্যারিথমেটিকে ভাগশেষ সবসময় 0 থেকে m−1-এর মধ্যে থাকতে হয়। কোনো ঋণাত্মক সংখ্যার সমতুল্য ধনাত্মক মডুলার মান পেতে হলে তার সাথে মডুলাস m যোগ করতে হয় যতক্ষণ না তা ধনাত্মক হয়:
−k≡m−(kmodm)(modm)
বাস্তব উদাহরণ দেখা যাক:
−6mod26=26−6=20 (যা বর্ণ U নির্দেশ করে)
−1mod26=26−1=25 (যা বর্ণ Z নির্দেশ করে)
−29mod26=−29+2×26=−29+52=23 (যা বর্ণ X নির্দেশ করে)
Z26 কেন একটি বিনিময়ী রিং (Commutative Ring)?
বীজগণিতের দৃষ্টিকোণ থেকে (Z26,+,×) হলো একটি Commutative Ring with Unity:
যোগের অধীনে আবদ্ধ (Closure): যেকোনো দুটি উপাদান যোগ করে মডুলো ২৬ নিলে ফলাফল সবসময় Z26-এর ভেতরেই থাকে।
যোজ্য অভেদক (Additive Identity): উপাদান 0 হলো অভেদক, কারণ a+0≡a(mod26)।
যোজ্য বিপরীত (Additive Inverse): প্রতিটি উপাদান a-এর জন্য একটি অনন্য উপাদান −a আছে যেন:
a+(−a)≡0(mod26)⟹−a≡(26−a)(mod26)
বিনিময় বিধি (Commutativity):a+b≡b+a(mod26)।
কেন Additive Cipher সবসময় সফলভাবে ডিক্রিপ্ট করা যায়?
কারণ Z26-এর প্রতিটি উপাদানের একটি বৈধ যোজ্য বিপরীত (additive inverse) বিদ্যমান। তাই k∈Z26 এর যেকোনো মান নিয়ে এনক্রিপ্ট করলেই নিশ্চিতভাবে ডিক্রিপ্ট করা সম্ভব। মাল্টিপ্লিকেটিভ সাইফারে কিন্তু এমনটি হয় না—সেখানে শুধুমাত্র gcd(k,26)=1 হলেই গুণন বিপরীত পাওয়া যায়!
Additive Cipher হলো একটি সিমেট্রিক-কি (Symmetric-Key) মোনোঅ্যালফাবেটিক প্রতিস্থাপন সাইফার, যেখানে প্লেইনটেক্সটের প্রতিটি বর্ণকে একটি গোপন কি k পরিমাণ সরিয়ে সাইফারটেক্সটে রূপান্তর করা হয়।
গাণিতিক সূত্রসমূহ
ধরি:
P=Z26 হলো মূল বার্তার বর্ণমালা সেট।
C=Z26 হলো এনক্রিপ্ট করা সাইফারটেক্সটের বর্ণমালা সেট।
K=Z26={0,1,2,…,25} হলো সম্ভাব্য গোপন কি-এর সেট (Key Space)।
লক্ষ্য করুন, মডুলো ২৬-এ k বিয়োগ করা আর তার যোজ্য বিপরীত k′=(26−k)mod26 যোগ করা কিন্তু হুবহু একই কথা!
ডিক্রিপশনের গাণিতিক প্রমাণ (Proof of Correctness)
সাইফারটেক্সটের ওপর ডিক্রিপশন ফাংশন প্রয়োগ করলে যে অবিকল মূল প্লেইনটেক্সট ফিরে আসে, তার প্রমাণ:
ডিক্রিপশনের গাণিতিক প্রমাণ
D(E(Pi,k),k)=(E(Pi,k)−k)mod26
=(((Pi+k)mod26)−k)mod26
=(Pi+k−k)mod26=Pimod26=Pi
যেহেতু 0≤Pi≤25, তাই প্রতিটি অক্ষরের জন্য ডিক্রিপশন প্রক্রিয়া গাণিতিকভাবে শতভাগ নির্ভুল।
যোগাযোগের মডেল (Communication Model)
প্রেরক এলিস এবং প্রাপক বব একটি অনিরাপদ নেটওয়ার্কে যোগাযোগের সময় কীভাবে Additive Cipher কাজ করে, তা নিচের ফ্লোতে দেখানো হলো:
1
Plaintext P
প্রেরক এলিসের তৈরি করা মূল পাঠযোগ্য বার্তা (যেমন: 'MEET ME')।
2
Encryption (E_k)
গোপন কি k ব্যবহার করে C = (P + k) mod 26 হিসাব করা।
3
Ciphertext C
দুর্বোধ্য সংকেত উন্মুক্ত নেটওয়ার্কের মধ্য দিয়ে পাঠানো হয়।
4
Decryption (D_k)
প্রাপক বব একই কি k ব্যবহার করে P = (C - k) mod 26 চালায়।
5
Plaintext P
বব নির্ভুলভাবে মূল বার্তা পুনরুদ্ধার করে।
Additive Cipher-এর ঐতিহাসিক রূপসমূহ
শিফট সাইফারের ঐতিহাসিক বিবর্তনIllustration coming soon
জুলিয়াস সিজারের সামরিক বার্তা এনক্রিপশন (k=3) থেকে শুরু করে আধুনিক ইন্টারনেটের ROT13 (k=13)—শিফট সাইফারই হলো মানব ইতিহাসের প্রথম আনুষ্ঠানিক সিমেট্রিক সাইফার।
ইতিহাসে এই সাইফারের তিনটি অত্যন্ত জনপ্রিয় রূপ রয়েছে:
Caesar Cipher (k=3): জুলিয়াস সিজার রোমান সিনেট ও সেনাদলের সাথে যোগাযোগের জন্য ৩ ঘর শিফট ব্যবহার করতেন।
Augustus Cipher (k=1): সিজারের উত্তরসূরি সম্রাট অগাস্টাস ১ ঘর শিফট ব্যবহার করতেন।
ROT13 (k=13): আধুনিক কম্পিউটার ফোরাম ও ইউজনেটে (USENET) স্পয়লার বা ধাঁধার উত্তর আড়াল করতে ১৩ ঘর শিফট ব্যবহৃত হয়। যেহেতু 13+13=26≡0(mod26), তাই ROT13 নিজেই নিজের বিপরীত (self-reciprocal): এনক্রিপ্ট করা লেখাকে আবার ROT13 করলেই মূল লেখা বের হয়ে আসে!
ইন্টারেক্টিভ সিমুলেটর: Additive Cipher ল্যাব
নিচের ইন্টারেক্টিভ টুলে নিজের পছন্দমতো মেসেজ লিখে শিফট কি পরিবর্তন করে দেখুন, মডুলার বৃত্ত পর্যবেক্ষণ করুন, কিংবা ব্রুট-ফোর্স অ্যাটাক চালিয়ে এক পলকে সাইফার ভেঙে ফেলুন:
Additive Cipher ইন্টারেক্টিভ ওয়ার্কবেঞ্চ
শিফট কি পরিবর্তন করে এনক্রিপশন ও ডিক্রিপশন পর্যবেক্ষণ করুন, ক্যারেক্টারভিত্তিক মডুলার হিসাব দেখুন এবং ব্রুট-ফোর্স সিমুলেশন চালান।
পরীক্ষার জন্য সবচেয়ে জরুরি হলো গাণিতিক সমস্যাগুলোর ধাপগুলো স্পষ্টভাবে দেখানো। আসুন সাধারণ প্রতিস্থাপন, সীমানা অতিক্রম এবং ঋণাত্মক আন্ডারফ্লোর মৌলিক সমস্যাগুলো সমাধান করি।
সমস্যা ১: সীমানা অতিক্রম ছাড়া সরাসরি প্রতিস্থাপন
প্রশ্ন:k=4 কি ব্যবহার করে Additive Cipher-এর মাধ্যমে ATTACK শব্দটিকে এনক্রিপ্ট করুন।
এবার আমরা বিশ্ববিদ্যালয়ের সেমিস্টার ফাইনাল পরীক্ষার উপযোগী কিছু জটিল গাণিতিক সমস্যা ও প্রমাণ সমাধান করব।
সমস্যা ৪: ঋণাত্মক শিফট কি (Negative Key) দিয়ে এনক্রিপশন
প্রশ্ন: একটি ক্রিপ্টোগ্রাফিক অ্যালগরিদমে শিফট প্যারামিটার দেওয়া আছে k=−11। এই নিয়ম ব্যবহার করে SECURE শব্দটি এনক্রিপ্ট করুন।
ধাপভিত্তিক সমাধান:
১. ঋণাত্মক কি-কে সাধারণ Z26 শ্রেণীতে রূপান্তর:keff=(−11)mod26=−11+26=15
অর্থাৎ ১১ ঘর পেছনে যাওয়া আর ১৫ ঘর সামনে যাওয়া হুবহু একই কথা!
২. k=15 ধরে প্রতিটি অক্ষর হিসাব করা:
S=18⟹(18+15)mod26=33mod26=7→H
E=4⟹(4+15)mod26=19→T
C=2⟹(2+15)mod26=17→R
U=20⟹(20+15)mod26=35mod26=9→J
R=17⟹(17+15)mod26=32mod26=6→G
E=4⟹(4+15)mod26=19→T
উত্তর: সাইফারটেক্সট হলো HTRJGT।
সমস্যা ৫: Known-Plaintext Cryptanalysis (অজানা কি উদ্ধার)
প্রশ্ন: একজন গোয়েন্দা সাইফারটেক্সটের একটি অংশে দেখতে পেলেন মূল শব্দ DOG এনক্রিপ্ট হয়ে QBT হয়েছে। সাইফারটি যে একটি Additive Cipher তা যাচাই করুন এবং গোপন কি k নির্ণয় করুন।
ধাপভিত্তিক সমাধান:
১. প্রতিটি অক্ষরের জন্য কনগ্রুয়েন্স সমীকরণ গঠন:
প্রথম অক্ষর: P1=D=3, C1=Q=16:
(3+k)≡16(mod26)⟹k≡16−3≡13(mod26)
দ্বিতীয় অক্ষর: P2=O=14, C2=B=1:
(14+k)≡1(mod26)⟹k≡1−14=−13≡13(mod26)
তৃতীয় অক্ষর: P3=G=6, C3=T=19:
(6+k)≡19(mod26)⟹k≡19−6≡13(mod26)
২. সিদ্ধান্ত:
তিনটি বর্ণ থেকেই হুবহু একই কি k=13 পাওয়া গেছে। অর্থাৎ এটি একটি Additive Cipher (ROT13)।
পরীক্ষার জন্য গোল্ডেন রুল
Additive Cipher-এ মাত্র একটি অক্ষরের প্লেইনটেক্সট ও সাইফারটেক্সট জানা থাকলেই পুরো গোপন কি নিমেষে ফাঁস হয়ে যায়! কারণ একটি সমীকরণ (P+k)≡C(mod26) সমাধান করলেই k=(C−P)mod26 সরাসরি বের হয়ে আসে।
সমস্যা ৬: ডাবল এনক্রিপশন বা ক্যাসকেডিং (Cascaded Ciphers)
প্রশ্ন: নিরাপত্তা বাড়ানোর উদ্দেশ্যে একটি মেসেজকে প্রথমে k1=11 দিয়ে এনক্রিপ্ট করা হলো, এবং প্রাপ্ত ফলাফলকে পুনরায় k2=19 দিয়ে এনক্রিপ্ট করা হলো।
১. সমতুল্য একক কি keq বের করুন।
2. একাধিকবার Additive Cipher প্রয়োগ করলে কি নিরাপত্তা বৃদ্ধি পায়? গাণিতিকভাবে প্রমাণ করুন।
গাণিতিক প্রমাণ ও সমাধান:
১. ধরি মূল অক্ষর P:
প্রথম এনক্রিপশন: C1=(P+k1)mod26
দ্বিতীয় এনক্রিপশন: C2=(C1+k2)mod26
২. C1-এর মান বসিয়ে পাই:
C2=(((P+k1)mod26)+k2)mod26=(P+k1+k2)mod26
৩. সমতুল্য কি নির্ণয়:
keq=(k1+k2)mod26=(11+19)mod26=30mod26=4
৪. নিরাপত্তা বিশ্লেষণ:
একাধিকবার Additive Cipher প্রয়োগ করলে নিরাপত্তা একবিন্দুও বৃদ্ধি পায় না। কারণ (Z26,+) সেটটি যোগের অধীনে একটি আবদ্ধ গ্রুপ (abelian group)। দুটি শিফট যোগ করলে তা সাধারণ আরেকটি শিফটে রূপ নেয়:
keq=(k1+k2)mod26∈Z26
আক্রমণকারীর জন্য সম্ভাব্য কি-এর সংখ্যা 26×26=676 হয় না, বরং আগের মতোই মাত্র ২৬টিই থাকে!
সমস্যা ৭: অফসেট সমীকরণ থেকে ডিক্রিপশন
প্রশ্ন: এনক্রিপশনের নিয়ম হলো C≡(P+3k+5)(mod26)। যদি গোপন প্যারামিটার k=4 হয়, তবে সাইফার বর্ণ W (C=22)-এর মূল প্লেইনটেক্সট বের করুন।
ধাপভিত্তিক সমাধান:
১. কার্যকর শিফট কি K বের করা:K=(3(4)+5)mod26=(12+5)mod26=17
সুতরাং এনক্রিপশন সমীকরণ: C≡(P+17)(mod26)।
৫. Cryptanalysis & Attack Vectors (Brute-Force & Frequency Analysis)
একজন ক্রিপ্টঅ্যানালিস্ট বা আক্রমণকারী কীভাবে Additive Cipher ভেঙে ফেলে? ক্রিপ্টোগ্রাফির আদর্শ অ্যাটাক মডেলগুলোর প্রেক্ষিতে একে বিশ্লেষণ করা যাক:
Additive Cipher-এর ওপর প্রচলিত আক্রমণ মডেলসমূহ
অ্যাটাক মডেল
আক্রমণকারীর কাছে যা আছে
আক্রমণের পদ্ধতি
প্রয়োজনীয় সময় / জটিলতা
Ciphertext-Only
শুধুমাত্র এনক্রিপ্ট করা সাইফারটেক্সট
ব্রুট-ফোর্স বা ফ্রিকোয়েন্সি অ্যানালাইসিস
১ মিলিসেকেন্ডেরও কম (সর্বোচ্চ ২৫ বার চেষ্টা)
Known-Plaintext
সাইফারটেক্সট + মাত্র ১টি জানা অক্ষর
সরাসরি বিয়োগ: k = (C - P) mod 26
একটি সাধারণ হিসাব
Chosen-Plaintext
আক্রমণকারী নিজের ইচ্ছামতো প্লেইনটেক্সট দিয়ে সাইফারটেক্সট পায়
শুধু 'A' (০) পাঠালেই আউটপুট সরাসরি k বলে দেবে!
১টি কুয়েরি
Chosen-Ciphertext
আক্রমণকারী সাইফারটেক্সট দিলে সিস্টেম ডিক্রিপ্ট করে দেয়
শুধু 'A' (০) দিলে ডিক্রিপশন P দেবে, k = (26 - P) mod 26
১টি কুয়েরি
আক্রমণ ১: ব্রুট-ফোর্স অ্যাটাক (Exhaustive Key Search)
Additive Cipher-এর Key Space ∣K∣=26। যেহেতু k=0 দিলে কোনো পরিবর্তন হয় না (C=P), তাই মোট অর্থপূর্ণ কি-এর সংখ্যা মাত্র ২৫টি।
ধরি একটি উদ্ধারকৃত সাইফারটেক্সট হলো: PELCGB
আক্রমণকারী k=1 থেকে 25 পর্যন্ত প্রতিটি সম্ভাব্য কি দিয়ে ডিক্রিপ্ট করে দেখতে থাকে:
'PELCGB' সাইফারটেক্সটে ব্রুট-ফোর্স ট্র্যাকিং
পরীক্ষিত কি (k)
প্রাপ্ত প্লেইনটেক্সট
অর্থপূর্ণ ইংরেজি শব্দ?
k = 1
ODKBFA
না (অর্থহীন)
k = 2
NCJAEZ
না (অর্থহীন)
k = 3
MBIZDY
না (অর্থহীন)
...
...
...
k = 13
CRYPTO
হ্যাঁ! অর্থপূর্ণ শব্দ পাওয়া গেছে
...
...
...
k = 25
QFMHDC
না (অর্থহীন)
একটি সাধারণ কম্পিউটার মাত্র কয়েক মাইক্রোসেকেন্ডে এই ২৫টি মান যাচাই করে সঠিক বার্তাটি বের করে ফেলতে পারে।
আক্রমণ ২: ফ্রিকোয়েন্সি অ্যানালাইসিস (Statistical Attack)
বর্ণমালার আকার যদি অনেক বড়ও হতো, তবুও Additive Cipher সম্পূর্ণ অনিরাপদ থাকত। এর কারণ হলো এটি একটি মোনোঅ্যালফাবেটিক সাইফার (Monoalphabetic Cipher)।
মোনোঅ্যালফাবেটিক সাইফারের সংজ্ঞা
যে সাইফারে পুরো বার্তা জুড়ে প্লেইনটেক্সটের একটি নির্দিষ্ট বর্ণ সবসময় সাইফারটেক্সটের একটি নির্দিষ্ট বর্ণেই রূপান্তরিত হয়, তাকে মোনোঅ্যালফাবেটিক প্রতিস্থাপন সাইফার বলে।
যেহেতু প্রতিটি বর্ণকে সমান k পরিমাণ সরানো হয়, তাই ভাষার স্বাভাবিক বর্ণ ব্যবহারের শতকরা হার বা ফ্রিকোয়েন্সি ডিস্ট্রিবিউশন বিন্দুমাত্র নষ্ট হয় না—এটি শুধু গ্রাফের অক্ষ বরাবর বৃত্তাকারে সরে যায়!
ইংরেজি ভাষায় সব বর্ণের ব্যবহার সমান নয়। Additive Cipher এই পরিসংখ্যানিক বৈশিষ্ট্য নষ্ট করতে পারে না; এটি পুরো ফ্রিকোয়েন্সি গ্রাফটিকে অক্ষ বরাবর k ঘর সরিয়ে দেয় মাত্র।
ইংরেজি বর্ণমালার আদর্শ ফ্রিকোয়েন্সি পরিসংখ্যান:
সর্বোচ্চ ব্যবহৃত বর্ণ:
E≈১২.৭%
T≈৯.১%
A≈৮.২%
O≈৭.৫%
I≈৭.০%
N≈৬.৭%
মাঝারি ব্যবহৃত বর্ণ:S,H,R,D,L,C,U,M,W
বিরল বর্ণ:J,X,Q,Z (সবগুলোর ব্যবহার ০.২% এর কম)
আক্রমণ পদ্ধতি:
১. সাইফারটেক্সটে প্রতিটি অক্ষর কতবার এসেছে তা গণনা করুন।
২. যে অক্ষরটি সবচেয়ে বেশিবার এসেছে (ধরি Cpeak), তাকে ইংরেজির সবচেয়ে ব্যবহৃত বর্ণ E (P=4) ধরে নিন।
৩. কি নির্ণয় করুন: k=(Cpeak−4)mod26।
৪. এই k দিয়ে ডিক্রিপ্ট করে বাক্য তৈরি হয় কিনা দেখুন। না হলে দ্বিতীয় সর্বোচ্চ বর্ণ T (P=19) ধরে চেষ্টা করুন।
৬. Security Limitations & Vulnerabilities
ঐতিহাসিক গুরুত্ব থাকা সত্ত্বেও, আধুনিক কম্পিউটার সিকিউরিটির কোনো মাপকাঠিতেই Additive Cipher টিকে থাকতে পারে না।
কার্কহফসের নীতি ও পারফেক্ট সিকিউরিটি
১৮৮৩ সালে অগাস্ট কার্কহফস আধুনিক ক্রিপ্টোগ্রাফির সবচেয়ে মৌলিক নীতিটি ঘোষণা করেছিলেন:
কার্কহফসের নীতি (Kerckhoffs's Principle)
একটি ক্রিপ্টোগ্রাফিক সিস্টেমের সবকিছু যদি জনসমক্ষে ফাঁসও হয়ে যায়, তবুও তা সম্পূর্ণ নিরাপদ থাকতে হবে—যতক্ষণ পর্যন্ত না গোপন কি-টি ফাঁস হয়।
পরবর্তীতে তথ্যতত্ত্বের জনক ক্লড শ্যানন (Claude Shannon) প্রমাণ করেন যে, নিখুঁত নিরাপত্তা (Perfect Secrecy) নিশ্চিত করতে হলে:
১. কি স্পেসের আকার অবশ্যই মেসেজ স্পেসের সমান বা বড় হতে হবে (∣K∣≥∣M∣)।
২. কি-টি সম্পূর্ণ দৈবভাবে (randomly) নির্বাচন করতে হবে এবং প্রতিটি মেসেজের জন্য একবারই ব্যবহার করতে হবে (One-Time Pad)।
Additive Cipher এই দুই শর্তের সবগুলো চরমভাবে লঙ্ঘন করে:
এর কি স্পেস অত্যন্ত ক্ষুদ্র (∣K∣=26)।
একই কি পুরো বার্তায় বারবার ব্যবহার করার ফলে ফ্রিকোয়েন্সি অ্যানালাইসিস দিয়ে এটিকে মুহূর্তে ধ্বংস করা যায়।
ক্লাসিক্যাল বনাম আধুনিক সাইফারের তুলনা
ক্লাসিক্যাল ও আধুনিক সাইফারের তুলনামূলক বিশ্লেষণ
বৈশিষ্ট্য
Additive Cipher
Multiplicative Cipher
Affine Cipher
Modern AES-128
Key Space
26 (কার্যকর 25)
12 (26 এর সাথে সহমৌলিক)
312 (12 x 26)
2^128 (~3.4 x 10^38)
Brute-Force প্রতিরোধ
নেই (১ মিলিসেকেন্ডের নিচে)
নেই (১ মিলিসেকেন্ডের নিচে)
নেই (১ মিলিসেকেন্ডের নিচে)
বর্তমান সুপারকম্পিউটারেও অসম্ভব
সাইফারের ধরন
মোনোঅ্যালফাবেটিক সাবস্টিটিউশন
মোনোঅ্যালফাবেটিক সাবস্টিটিউশন
মোনোঅ্যালফাবেটিক সাবস্টিটিউশন
ইটারেটিভ ব্লক সাইফার (SPN)
ফ্রিকোয়েন্সি প্রতিরোধ
শূন্য (গ্রাফ অক্ষ বরাবর সরে যায়)
শূন্য (গ্রাফ পারমুট হয়)
শূন্য (গ্রাফ পারমুট হয়)
সম্পূর্ণ নিরাপদ (Avalanche Effect)
Known-Plaintext আক্রমণ
মাত্র ১টি বর্ণ জানলেই কি ফাঁস
মাত্র ১টি বর্ণ জানলেই কি ফাঁস
মাত্র ২টি বর্ণ জানলেই কি ফাঁস
প্রতিরোধক (2^128 ধাপ প্রয়োজন)
৭. University Exam Problems & Viva Questions
সেমিস্টার ফাইনাল পরীক্ষার বিগত বছরের প্রশ্ন ও সমাধান
পরীক্ষা প্রশ্ন ১: গাণিতিক হোমোর্ফিজম বা লিনিয়ারিটি যাচাই
প্রশ্ন: একটি Additive Cipher-এ কি k হলে, দেখাও যে দুটি প্লেইনটেক্সট বর্ণের যোগফলের এনক্রিপশন তাদের পৃথক সাইফারটেক্সট দুটির যোগফলের সমান কিনা।
সমাধান:
ধরি P1 এবং P2 হলো Z26-এর দুটি প্লেইনটেক্সট বর্ণ।
পৃথক সাইফারটেক্সটদ্বয়:
C1=(P1+k)mod26,C2=(P2+k)mod26
তুলনা:(P1+P2+2k)≡(P1+P2+k)(mod26)(যদিনাk≡0(mod26))
সুতরাং, Additive Cipher একটি affine রূপান্তর হলেও এটি যোগের অধীনে সাধারণ হোমোমর্ফিক নয়, কারণ পৃথক যোগফলে গোপন কি k দুবার যোগ হয়ে যায়।
পরীক্ষা প্রশ্ন ২: ফ্রিকোয়েন্সি বিশ্লেষণ থেকে শব্দ উদ্ধার
প্রশ্ন: ১০০০ অক্ষরের একটি সাইফারটেক্সটে সবচেয়ে বেশিবার পাওয়া অক্ষরগুলো হলো: K: 129 বার, X: 95 বার, V: 82 বার। বার্তাটি আদর্শ ইংরেজি গদ্য ধরে নিয়ে সবচেয়ে সম্ভাব্য কি k বের করুন এবং KHOOR শব্দটি ডিক্রিপ্ট করুন।
সমাধান:
১. সর্বোচ্চ ফ্রিকোয়েন্সির সাইফার বর্ণ নির্বাচন:
K অক্ষরটি ১২৯ বার (১২.৯%) এসেছে, যা ইংরেজি ভাষার সবচেয়ে প্রচলিত বর্ণ E (১২.৭%)-এর সাথে মিলে যায়।
২. সমীকরণ গঠন:
P=E=4
C=K=10
k=(C−P)mod26=(10−4)mod26=6
৩. k=6 দিয়ে KHOOR ডিক্রিপ্ট করার চেষ্টা:
K(10):(10−6)=4→E
H(7):(7−6)=1→B
O(14):(14−6)=8→I
O(14):(14−6)=8→I
R(17):(17−6)=11→L
আউটপুট: EBIIL (কোনো অর্থপূর্ণ ইংরেজি শব্দ নয়)।
৪. বিকল্প অনুমান (Caesar Cipher k=3 যাচাই):
অনেক সময় ছোট নমুনা শব্দে স্থানীয় ফ্রিকোয়েন্সি ভিন্ন হতে পারে। যদি k=3 হয়:
K(10):(10−3)=7→H
H(7):(7−3)=4→E
O(14):(14−3)=11→L
O(14):(14−3)=11→L
R(17):(17−3)=14→O
আউটপুট: HELLO (একটি সম্পূর্ণ অর্থপূর্ণ ইংরেজি শব্দ!)।
সুতরাং সঠিক কি হলো k=3।
ভাইভা ও ইন্টারভিউ সম্ভাব্য প্রশ্নোত্তর
k = 0 কে কেন ট্রিভিয়াল কি (Trivial Key) বলা হয়?
কারণ C = (P + 0) mod 26 = P। অর্থাৎ সাইফারটেক্সট এবং প্লেইনটেক্সট হুবহু একই থাকে, মেসেজের কোনো গোপনীয়তা থাকে না।
Z_26 এ কি k = 17 এর যোজ্য বিপরীত (Additive Inverse) কত?
যোজ্য বিপরীত হলো (26 - 17) mod 26 = 9। কারণ 17 + 9 = 26 ≡ 0 (mod 26)। অর্থাৎ ১৭ ঘর সামনে সরানো আর ৯ ঘর সামনে সরানো বিপরীত কাজ করে।
একাধিক Additive Cipher পর পর প্রয়োগ করলে কি ব্রুট-ফোর্স আটকানো যায়?
কখনোই নয়। কারণ (Z_26, +) একটি গ্রুপ। একাধিক শিফট k_1, k_2 যোগ হয়ে একক শিফট k_eq = (k_1 + k_2) mod 26 এ রূপ নেয়। কি স্পেস সেই ২৬টিই থাকে।
Caesar Cipher এবং Additive Cipher-এর পার্থক্য কী?
Caesar Cipher-এ শিফট কি সবসময় নির্দিষ্টভাবে k = 3। আর Additive Cipher হলো সাধারণ গাণিতিক পরিবার যেখানে k এর মান 0 থেকে 25 এর যেকোনোটি হতে পারে।
অধ্যায়ের সারসংক্ষেপ ও মূল শিক্ষা
মূল টেকঅ্যাওয়ে
গাণিতিক রিং: Additive Cipher মডুলার পূর্ণসংখ্যার রিং Z26={0,1,…,25}-এ কাজ করে।
ঋণাত্মক শিফট: ঋণাত্মক মানকে ২৬ যোগ করে সমতুল্য ধনাত্মক মানে আনা যায়: −k≡26−k(mod26)।
নিরাপত্তাহীনতা: মাত্র ২৫টি নন-ট্রিভিয়াল কি থাকায় ব্রুট-ফোর্স তাৎক্ষণিকভাবে সফল হয়। আর মোনোঅ্যালফাবেটিক হওয়ায় ফ্রিকোয়েন্সি অ্যানালাইসিস একে সম্পূর্ণ ভেঙে দেয়।
ক্যাসকেডিং ব্যর্থতা: একাধিক শিফট কি যোগ হয়ে একক কি keq=(k1+k2)mod26-এ সংকুচিত হয়ে যায়।
নিজেকে যাচাই করুন (কুইজ)
Additive Cipher-এর গাণিতিক ভিত্তি এবং ক্রিপ্টঅ্যানালাইসিসের ওপর আপনার দক্ষতা যাচাই করুন: