Foundationপ্রথম নীতি থেকে
LEVEL 0 · Mathematical Foundations

RSA

আরএসএ

Public-key cryptosystem যার নিরাপত্তা বড় সংখ্যা factor করার কঠিনতার উপর দাঁড়ানো। Modular arithmetic, Euler's theorem আর modular inverse — তিনটাই এক জায়গায়।

Key generation:

p, q  দুইটা বড় মৌলিক
n = pq
φ(n) = (p−1)(q−1)
e  বেছে নিন যেন gcd(e, φ(n)) = 1        public exponent
d ≡ e⁻¹ (mod φ(n))                       private exponent

Public key (n, e), private key (n, d)

Encrypt / decrypt:

c = mᵉ mod n
m = cᵈ mod n

কেন কাজ করে: Euler’s theorem অনুযায়ী m^φ(n) ≡ 1 (mod n)। যেহেতু ed ≡ 1 (mod φ(n)), লিখতে পারি ed = 1 + kφ(n), তাই:

cᵈ = m^(ed) = m^(1+kφ(n)) = m · (m^φ(n))ᵏ ≡ m · 1ᵏ ≡ m  (mod n)

নিরাপত্তা কীসের উপর: n থেকে p, q বের করতে পারলে φ(n) পাওয়া যায়, আর তখন d হিসাব করা যায়। তাই RSA ভাঙা মানে factoring — যা বর্তমান classical algorithm-এ অবাস্তব।

গুরুত্বপূর্ণ বাস্তব সতর্কতা: এই “textbook RSA” সরাসরি ব্যবহার করা যায় না — deterministic, তাই একই message একই ciphertext দেয়, আর বহু আক্রমণের মুখে খোলা। বাস্তবে OAEP padding, নিরাপদ প্যারামিটার আর যাচাইকৃত library (OpenSSL, libsodium) ব্যবহার করতে হয়। নিজে crypto implement করবেন না — শেখার জন্য ছাড়া।