তথ্যগুপ্তিবিদ্যায় গুপ্তলিখন পদ্ধতি (ইংরেজি পরিভাষায় Cipher সাইফার) বলতে এমন কিছু সূত্র বা নিয়মের সমষ্টিকে বোঝায় যার সাহায্যে কোনও সরলপাঠ্যের (Simpletext সিম্পলটেক্সট) গুপ্তায়ন (Encyption এনক্রিপশন; তুলনীয়. সাঙ্কেতিকীকরণ) করা যায় কিংবা এর বিপরীতে কোন গুপ্তপাঠ্যের (Ciphertext) বিগুপ্তায়ন (Decryption ডিক্রিপশন) করা যায়। পদ্ধতিটি সাধারণত একটি অ্যালগরিদম অর্থাৎ কতগুলি সুসংজ্ঞায়িত নির্দেশমূলক ধাপের একটি ধারা হয়। সাঙ্কেতিকীকরণ (Encoding এনকোডিং) করার অর্থ হল তথ্যকে গুপ্তপাঠ্য তথা এক ধরনের বিশেষ সাংকেতিক লিপিতে (কোড) রূপান্তর করা। সাধারণভাবে "গুপ্তলিপি" পরিভাষাটি "সাংকেতিক লিপি"-র সমার্থক, যেহেতু উভয়েই একটি বার্তাকে গুপ্তায়িত (এনক্রিপ্ট) করার ধাপের ধারা; তা সত্ত্বেও এই ধারণাগুলি তথ্যগুপ্তিবিদ্যায় স্বতন্ত্র , বিশেষ করে ধ্রুপদী তথ্যগুপ্তিবিদ্যায়।
সাংকেতিক লিপি (কোড) সাধারণত উৎপাদিত তথ্যের (আউটপুটের) অক্ষরগুলোর বিভিন্ন দৈর্ঘ্যের স্ট্রিংগুলিকে প্রতিস্থাপিত করে। অন্যদিকে গুপ্তলিপি সাধারণত ইনপুট হিসাবে অক্ষরগুলির একই সংখ্যাকে প্রতিস্থাপন করে। ব্যতিক্রম আছে এবং কিছু গুপ্তলিখন পদ্ধতি সামান্য বেশি বা কম অক্ষর ব্যবহার করতে পারে যখন আউটপুট বনাম ইনপুট সংখ্যা।
কোডগুলি একটি বড় কোডবুক অনুযায়ী প্রতিস্থাপনের দ্বারা পরিচালিত হয় যা অক্ষর বা সংখ্যাগুলির একটি এলোমেলো স্ট্রিংকে একটি শব্দ বা বাক্যাংশে যুক্ত করে। উদাহরণস্বরূপ, "UQJHSE" কোডটি হতে পারে "নিম্নোক্ত সমন্বয়গুলিতে এগিয়ে যান"। একটি সাইফার ব্যবহার করার সময় মূল তথ্য প্লেইনটেক্সট, এবং সিফেরটেক্সট হিসাবে এনক্রিপ্ট করা ফর্ম হিসাবে পরিচিত হয়। সিফেরটেক্সটে বার্তাটি প্লেইনটেক্সট বার্তাটির সমস্ত তথ্য ধারণ করে তবে এটি কোনও কম্পিউটার বা কম্পিউটারের দ্বারা পঠনযোগ্য কোনও ফর্ম্যাটে নয় যাতে এটি ডিক্রিপ্ট করার সঠিক প্রক্রিয়া না থাকে।
একটি গুপ্তলিখন পদ্ধতির কর্মপদ্ধতি সাধারণত সহায়িক তথ্যের একটি অংশে নির্ভর করে, যা একটি কী (বা, ঐতিহ্যগত এনএসএ নীতিমালা , একটি তথ্যগুপ্তিযোগ্য ) নামে পরিচিত। সাঙ্কেতিকীকরণ পদ্ধতিটি কী এর উপর নির্ভর করে , যা সমাধানপদ্ধতির বিস্তারিত ক্রিয়াকলাপকে পরিবর্তন করে। একটি বার্তা সাঙ্কেতিকীকরণ করার জন্য একটি সাইফার ব্যবহার করার আগে একটি কী নির্বাচন করা আবশ্যক। কী কী জ্ঞান ছাড়াই, এটি অসম্ভব না হলে এটি অত্যন্ত কঠিন হওয়া উচিত, ফলে সাংকেতিক বার্তাকে পঠনযোগ্য বার্তায় ডিক্রিপ্ট করতে হবে।
বেশিরভাগ আধুনিক গুপ্তলিখন পদ্ধতিকে বিভিন্ন উপায়ে শ্রেণীবদ্ধ করা যায়-
প্রাচীন সময়ের মধ্যে "সাংকেতিক লিপি" শব্দটির নাম "সাইফার" দ্বারা বোঝানো হয়েছে "শূন্য" এবং একই উৎস ছিল: মধ্য ফরাসি 'সিফ্র্' এবং মধ্যযুগীয় লাতিন সিফ্রা, আরবি صفر = শুণ্য ( জিরো- শব্দতত্ত্ব দেখুন)। "সাইফার" পরে কোনও দশমিক সংখ্যার জন্য, এমনকি কোনও সংখ্যার জন্যও, ব্যবহার করা হয়েছিল। "সাইফার" শব্দটির অর্থ "এনকোডিং" অথবা অর্থ কী হতে পারে তা নিয়ে অনেক তত্ত্ব রয়েছে।
ইব্রাহিম আল-কাদি উপসংহারে পৌঁছেছেন যে, শূন্য সংখ্যার জন্য আরবি শব্দ সিফর এনক্রিপশনের জন্য ইউরোপীয় প্রযুক্তিগত শব্দে বিকশিত হয়েছে।[১]
দশমিক শূন্য এবং তার নতুন গণিত মধ্যযুগীয় ভাষায় আরবি বিশ্বের থেকে ইউরোপে ছড়িয়ে পড়ে, সেফর এবং জেফিরাস থেকে প্রাপ্ত শব্দগুলি গণনা, পাশাপাশি বিশেষ জ্ঞান এবং গোপন কোডগুলি উল্লেখ করে। ইফরাহের মতে, "ত্রয়োদশ শতাব্দীর প্যারিসে, একটি 'অসহায় সহকর্মী' কে '... সিফ্রে এন অ্যালগরিসমে' বলা হয় , অর্থাৎ 'গাণিতিক কিছুই'।[২] সিফার সাইফারের ইউরোপীয় উচ্চারণ ছিল এবং সাইফারের অর্থ একটি বার্তা বা যোগাযোগ বোঝা সহজে বোঝা গেল না।[৩]
অপ্রযুক্তিগত ব্যবহারে, একটি "গোপন কোড " দ্বারা সাধারণত "সাইফার"কে বুঝায়। প্রযুক্তিগত আলোচনার মধ্যে, "কোড" এবং "সাইফার" শব্দটি দুটি ভিন্ন ধারণার উল্লেখ করে। কোডগুলি অর্থের পর্যায়ে কাজ করে-অর্থাৎ, শব্দ বা বাক্যাংশগুলি অন্য কোন রূপে রূপান্তরিত হয় এবং এই অংশটি সাধারণত বার্তাটিকে ছোট করে।
এর একটি উদাহরণ বাণিজ্যিক টেলিগ্রাফ কোড যা লম্বা টেলিগ্রাফ বার্তাগুলিকে ছোট করার জন্য ব্যবহৃত হয়েছিল যা টেলিগ্রামের বিনিময় ব্যবহার করে বাণিজ্যিক চুক্তিগুলিতে প্রবেশ করতে পারে।
আরেকটি উদাহরণ পুরো শব্দ সাইফার দ্বারা দেওয়া হয় যা ব্যবহারকারীকে একটি প্রতীক বা চরিত্রের সাথে সম্পূর্ণ শব্দটি প্রতিস্থাপন করার অনুমতি দেয়, জাপানী ভাষাগুলি তাদের ভাষা সম্পন্ন করার জন্য কাঞ্জি (জাপানি) অক্ষরগুলি ব্যবহার করে। উদাহরণস্বরূপ "The quick brown fox jumps over the lazy dog" হয়ে যায় "The quick brown 狐 jumps 过 the lazy 狗"।
অন্যদিকে, গুপ্তলিখন পদ্ধতি নিম্নস্তরে কাজ করে: স্বতন্ত্র অক্ষরের স্তর, অক্ষরের ছোট দল, বা আধুনিক স্কিমগুলিতে, পৃথক বিট এবং বিট ব্লক। কিছু সিস্টেম নিরাপত্তা বৃদ্ধি করতে সুপারএনসাইফারমেন্ট ব্যবহার করা হয়, যা একটি সিস্টেমে কোড এবং সাইফার উভয়ই ব্যবহার করে। কিছু ক্ষেত্রে শর্তাবলী কোড এবং সাইফারগুলি প্রতিস্থাপন এবং স্বতন্ত্রভাবে সমানভাবে ব্যবহার করা হয়।
ঐতিহাসিকভাবে, ক্রিপ্টোগ্রাফি কোড এবং সাইফারগুলির একটি দ্বিদলীয় পদে বিভক্ত ছিল; এবং কোডিং এর নিজস্ব পরিভাষা ছিল, যা সাইফারদের জন্য অনুরূপ: " এনকোডিং , কোডেটেক্সট , ডিকোডিং " ইত্যাদি।
তবে, ক্রিপ্ট্যানালাইসিসের সংবেদনশীলতা এবং একটি গুরুতর কোডবুক পরিচালনার অসুবিধা সহ কোডগুলিতে বিভিন্ন ধরনের ত্রুটি রয়েছে। এই কারণে, কোডগুলি আধুনিক ক্রিপ্টোগ্রাফিতে অপব্যবহারে পতিত হয়েছে এবং সাইফারগুলি প্রভাবশালী কৌশল।
বিভিন্ন ধরনের সাংকেতিকরণ পদ্ধতি আছে। ক্রিপ্টোগ্রাফির ইতিহাসে আগে ব্যবহৃত অ্যালগরিদমগুলি আধুনিক পদ্ধতির থেকে পুরোপুরি ভিন্ন, এবং আধুনিক সাংকেতিক লিপিগুলিকে তারা কীভাবে পরিচালনা করে এবং সেগুলি এক বা দুটি কী ব্যবহার করে সে অনুসারে শ্রেণীবদ্ধ করা যেতে পারে।
অতীতে ব্যবহৃত ঐতিহাসিক কলম এবং কাগজ সাইফার কখনও কখনও শাস্ত্রীয় সাইফার হিসাবে পরিচিত হয়। তারা সহজ প্রতিস্থাপন সাইফার (যেমন রোট 13 ) এবং ট্রান্সফিশন সাইফারগুলি (যেমন একটি রেল বেড়া সিফার ) অন্তর্ভুক্ত করে। উদাহরণস্বরূপ, "GOOD DOG" "PLLX XLP" হিসাবে এনক্রিপ্ট করা যেতে পারে যেখানে "O", "G" এর জন্য "L" বিকল্পগুলি এবং "D" এর জন্য "X" এর জন্য "X" এনক্রিপ্ট করা যেতে পারে। অক্ষরের ট্রান্সপোজিশন "GOOD DOG" এর পরিবর্তে "DGOGDOO" হতে পারে। এই সহজ সাইফার এবং উদাহরণগুলি সরল বর্ণের-সিফেরটেক্সট জোড়া ছাড়াও ক্র্যাক করা সহজ।[৪]
সরল সাইফারগুলি পলিএলফ্যাব্যাটিক প্রতিস্থাপনের সাইফারগুলি দ্বারা প্রতিস্থাপিত হয় (যেমন Vigenère ) যা প্রতি অক্ষরের জন্য প্রতিস্থাপন বর্ণমালা পরিবর্তন করে। উদাহরণস্বরূপ, "GOOD DOG" "PLSX TWF" হিসাবে এনক্রিপ্ট করা যেতে পারে যেখানে "এল", "এস" এবং "ও" বিকল্পটি "ও" এর জন্য বিকল্প। এমনকি একটি ছোট পরিমাণে পরিচিত বা আনুমানিক প্লেটেক্সট, সহজ পলিএলফ্যাবিক প্রতিস্থাপন সাইফার এবং কলম এবং কাগজ এনক্রিপশনের জন্য ডিজাইন করা চিঠি ট্রান্সফিশন সাইফারগুলি ক্র্যাক করা সহজ।[৫] যদিও এক সময় প্যাডের উপর ভিত্তি করে একটি নিরাপদ কলম এবং কাগজ সাইফার তৈরি করা সম্ভব, তবে এক-সময় প্যাডগুলির স্বাভাবিক ক্ষতিগুলি প্রযোজ্য।
বিংশ শতাব্দীর গোড়ার দিকে, ইলেক্ট্রো-যান্ত্রিক মেশিনগুলি ট্রান্সপোজিশন, পলিএলফ্যাব্যাটিক প্রতিস্থাপন এবং একটি "যুত" প্রতিস্থাপন ব্যবহার করে এনক্রিপশন এবং ডিক্রিপশন করার জন্য উদ্ভাবিত হয়েছিল। রটার মেশিনে , বিভিন্ন রটার ডিস্কগুলি বহুবচনীয় প্রতিস্থাপন প্রদান করেছিল, প্লাগ বোর্ডগুলি অন্য বিকল্প সরবরাহ করেছিল। কীগুলি রটার ডিস্ক এবং প্লাগবোর্ড তারের পরিবর্তন করে সহজেই পরিবর্তিত হয়। যদিও এই এনক্রিপশন পদ্ধতিগুলি পূর্ববর্তী স্কিমগুলির চেয়ে আরও জটিল এবং এনক্রিপ্ট এবং ডিক্রিপ্ট করার জন্য প্রয়োজনীয় মেশিনগুলি ছিল, তবে ব্রিটিশ বোম্বির মতো অন্যান্য যন্ত্রগুলি এই এনক্রিপশন পদ্ধতিগুলি ক্র্যাক করার জন্য উদ্ভাবিত হয়েছিল।
আধুনিক এনক্রিপশন পদ্ধতি দুটি মানদণ্ড দ্বারা বিভক্ত করা যেতে পারে: ব্যবহৃত কী ধরনের এবং ইনপুট ডেটা দ্বারা।
কী ব্যবহৃত সাইফারের ধরন দ্বারা বিভক্ত করা হয়:
একটি সমার্থক কী অ্যালগরিদম (উদাহরণস্বরূপ, ডিইএস এবং এইএস ), প্রেরক এবং রিসিভারের আগে থেকেই একটি ভাগ করা কী সেট আপ থাকতে হবে এবং অন্যান্য সমস্ত পক্ষ থেকে গোপন রাখা উচিত; প্রেরক এনক্রিপশন জন্য এই কী ব্যবহার করে, এবং প্রাপক ডিক্রিপশন জন্য একই কী ব্যবহার করে। ফিস্টেল সাইফারের প্রতিস্থাপন এবং স্থানান্তর কৌশল সমন্বয় ব্যবহার করে। সর্বাধিক ব্লক সাইফার আলগোরিদিম এই কাঠামো উপর ভিত্তি করে। একটি অ্যাসিমেট্রিক কী অ্যালগরিদম (যেমন, আরএসএ ) তে দুটি আলাদা কী আছে: একটি পাবলিক কী প্রকাশ করা হয় এবং কোনও প্রেরক এনক্রিপশন সঞ্চালন করতে সক্ষম করে, যখন একটি ব্যক্তিগত কী রিসিভার দ্বারা গোপন রাখে এবং শুধুমাত্র সঠিক ডিক্রিপশন করতে সক্ষম করে।
সাইফারগুলিকে ইনপুট ডেটা প্রকারের দ্বারা দুটি ভাগে বিভক্ত করা যেতে পারে:
একটি বিশুদ্ধ গাণিতিক আক্রমণের মধ্যে, (অর্থাৎ একটি সাইফার বিরতিতে সাহায্য করার জন্য অন্য কোন তথ্য অভাব) সমস্ত কিছুর উপরে দুটি কারণ:
যেহেতু আকাঙ্ক্ষিত প্রভাবটি কম্পিউটেশনাল অসুবিধা, তাই তত্ত্ব অনুসারে একটি অ্যালগরিদম এবং পছন্দসই অসুবিধা স্তর চয়ন করবে, এইভাবে কীভাবে তার দৈর্ঘ্য নির্ধারণ করবে।
এই প্রক্রিয়ার একটি উদাহরণ কী দৈর্ঘ্যতে পাওয়া যেতে পারে যা একাধিক প্রতিবেদনগুলি ব্যবহার করে যা ১২৮ বিট, ৩০৭ বিট কী সহ একটি অ্যাসিমেট্রিক সাইফার এবং ৫১২ বিট সহ একটি উপবৃত্তাকার বক্ররেখা সাইফার সহ একটি সিমমেট্রিক সাইফার , এগুলি একই সময়ে একই সমস্যায় রয়েছে বলে প্রস্তাব করে।
ক্লাউড শ্যানন তথ্য তত্ত্বের বিবেচনার ভিত্তিতে প্রমাণ করেছিলেন যে, কোনও তত্ত্বগতভাবে অবাঞ্ছিত সাইফারের অবশ্যই অবশ্যই মূল অক্ষর হিসাবে অন্তত যতক্ষণ থাকবে এবং শুধুমাত্র একবার ব্যবহার করা হবে: ওয়ান টাইম প্যাড।