RSA অ্যালগরিদম হল একটি পাবলিক-কী সিগনেচার অ্যালগরিদম যা রন রিভেস্ট, আদি শামির, এবং লিওনার্ড অ্যাডলম্যান দ্বারা প্রতিষ্ঠিত। RSA সাধারণ ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করার পাশাপাশি ডিজিটাল সিগনেচার ভেরিফিকেশন পরিচালনাও করতে পারে।
RSA অ্যালগরিদম বড় সংখ্যাগুলোর ফ্যাক্টরাইজেশনের জটিলতার ওপর ভিত্তি করে তৈরি। RSA অ্যালগরিদম এই সত্যের ওপর নির্ভর করে যে খুব বড় সংখ্যাগুলো ফ্যাক্টর করার কোনো কার্যকর পদ্ধতি নেই। তাই একটি RSA কী অনুমান করতে অনেক সময় এবং প্রসেসিং পাওয়ার লাগে।
RSA অ্যালগরিদম একটি অ্যাসিমেট্রিক ক্রিপ্টোগ্রাফি অ্যালগরিদম কারণ এটি দুটি ভিন্ন কী যেমন পাবলিক কী এবং প্রাইভেট কী-তে কাজ করে। পাবলিক কী সবার জন্য উন্মুক্ত, আর প্রাইভেট কী গোপন থাকে। পাবলিক কীতে দুটি সংখ্যা থাকে, 그중 একটি হল দুটি বড় প্রাইম সংখ্যার গুণফল।
RSA এনক্রিপশনে, একটি মেসেজ একটি কোড দিয়ে এনক্রিপ্ট করা হয় যাকে পাবলিক কী বলা হয়, যেটি লুকাতে হয় না। RSA অ্যালগরिदমের গাণিতিক বৈশিষ্ট্যের কারণে, একবার কোনো মেসেজ পাবলিক কী দিয়ে এনক্রিপ্ট হলে, সেটি শুধু অন্য একটি কী দিয়েই ডিক্রিপ্ট করা যায়, যাকে প্রাইভেট কী বলা হয়। তাই এত্যাদি মেসেজ পড়তে পাবলিক এবং প্রাইভেট কী-এর একটি সেট প্রয়োজন।
RSA অ্যালগরিদমে নিম্নলিখিত ধাপগুলো রয়েছে:
- কী জেনারেট করা
দুটি বড় প্রাইম সংখ্যা বেছে নিন, যেমন P এবং Q। প্রাইম সংখ্যাগুলো বড় হতে হবে যাতে কেউ সেগুলো বের করতে না পারে।
N = P × Q ক্যালকুলেট করুন
পাবলিক কী (এনক্রিপশন কী) E বেছে নিন যাতে এটি (P-1) এবং (Q-1) এর ফ্যাক্টর না হয়।
প্রাইভেট কী (ডিক্রিপশন কী) D বেছে নিন যাতে নিচের সমীকরণটি সত্য হয়:
(D × E) mod (P - 1) × (Q − 1) = 1
এনক্রিপশনের জন্য, প্লেইন টেক্সট (PT) থেকে সাইফার টেক্সট (CT) নিচের সূত্রে ক্যালকুলেট করুন:
CT = PTE mod N
সাইফার টেক্সট CT রিসিভারকে পাঠান।
ডিক্রিপশনের জন্য, সাইফার টেক্সট (CT) থেকে প্লেইন টেক্সট (PT) নিচের সূত্রে ক্যালকুলেট করুন:
PT = CTD mod N
এনক্রিপশন/ডিক্রিপশন ফাংশন — একবার কীগুলো জেনারেট হলে, সাইফারটেক্সট এবং প্লেইনটেক্সট ক্যালকুলেট করার ফাংশনগুলোর প্যারামিটার পাস করা যায়।
যদি প্লেইনটেক্সট m হয়, সাইফারটেক্সট = me mod n।
যদি সাইফারটেক্সট c হয়, প্লেইনটেক্সট = cd mod n
উদাহরণস্বরূপ, যেখানে p = 17 এবং q = 13। e-এর মান 5 হতে পারে কারণ এটি 1 < e < (p-1)(q-1) শর্তটি পূরণ করে।
N = p × q = 91
D = e⁻¹ mod (p-1)(q-1) = 29
পাবলিক কী জোড়া = (91, 5)
প্রাইভেট কী জোড়া = (91, 29)
যদি প্লেইনটেক্সট (m) এর মান 10 হয়, এটি me mod n = 82 সূত্র ব্যবহার করে এনক্রিপ্ট করা যায়।
এই সাইফারটেক্সট (c) কে মূল ডেটাতে ফেরত আনতে cd mod n = 29 সূত্র ব্যবহার করতে হবে।