প্রবলেম - 64

সিজার সাইফার ২

প্রবলেম সেটার: দ্বিমিক কম্পিউটিং


ডেটা এনক্রিপশন (data encryption) মানে হচ্ছে, ডেটাকে এমনভাবে প্রকাশ করা যেন সঠিক গ্রাহক ব্যাতীত অন্য কেউ সেই ডেটার মর্মোদ্ধার করতে না পারে। বর্তমানে ডেটা এনক্রিপশনের জন্য অনেক জটিল অ্যালগরিদম আছে। মজার ব্যাপার হচ্ছে শত শত বছর আগেও মানুষ ডেটা এনক্রিপ্ট করতো। এরকম পুরনো একটি পদ্ধতি হচ্ছে সিজার সাইফার, যা রোমান সম্রাট জুলিয়াস সিজারের আমলে প্রচলিত হয়।

সিজার সাইফার পদ্ধতিতে একটি টেক্সটের সঙ্গে একটি সংখ্যা দেওয়া হয়, যাকে কি (key) বলা হয়। কি-এর মান যত, টেক্সটের অক্ষরগুলো তত ঘর পরের অক্ষর দিয়ে বদলে দেওয়া হয়। যেমন, কি-এর মান যদি 2 হয়, তখন abc-কে লেখা হবে cde (a-এর জায়গায় c, b-এর জায়গায় d, d-এর জায়গায় e)। এই কি এর মান কেবল প্রাপকই জানে, যার ফলে অন্য কেউ এই টেক্সটের মর্মোদ্ধার করতে পারে না।

এখন একটি টেক্সট ও কি দেওয়া থাকলে আসল টেক্সটি বের করার জন্য একটি প্রোগ্রাম লিখতে হবে। এই কাজটিকে বলা হয় ডিক্রিপ্ট করা (decryption).

ইনপুট

প্রথম লাইনে একটি স্ট্রিং দেওয়া থাকবে, যেটির মর্মোদ্ধার করতে হবে। দ্বিতীয় লাইনে কি দেওয়া থাকবে, যেটি একটি ধনাত্মক সংখ্যা এবং এর মান 0 থেকে 26-এর মধ্যে হবে।

আউটপুট

মূল টেক্সটি প্রিন্ট করতে হবে।

স্যাম্পল ইনপুট আউটপুট

স্যাম্পল #1

ইনপুট
Cdef Yzab
2
আউটপুট
Abcd Wxyz
প্রবলেম-64 পরিসংখ্যান

73 টি সাবমিশন

31 টি অ্যাকসেপ্টেড

29 জন সমাধান করেছেন

সাইট পরিসংখ্যান

34695 টি সাবমিশন

70 টি প্রোগ্রামিং সমস্যা

2441 জন ইউজার

দ্বিমিকএর সব বই
পাইথন দিয়ে প্রোগ্রামিং শেখা -২য় খণ্ড - অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ওয়েব ক্রলিং
পাইথন দিয়ে প্রোগ্রামিং শেখা -২য় খণ্ড - অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ওয়েব ক্রলিং

ক্রয় করুন

অ্যাডভান্সড  জাভা প্রোগ্রামিং
অ্যাডভান্সড জাভা প্রোগ্রামিং

ক্রয় করুন

কম্পিউটার প্রোগ্রামিং-দ্বিতীয় খণ্ড
কম্পিউটার প্রোগ্রামিং-দ্বিতীয় খণ্ড

ক্রয় করুন

গণিত করব জয়
গণিত করব জয়

ক্রয় করুন

কম্বিনেটরিকসে হাতে খড়ি ১ম খণ্ড
কম্বিনেটরিকসে হাতে খড়ি ১ম খণ্ড

ক্রয় করুন