यह एक मोनो-अल्फाबेटिक सिफर है जिसमें प्लेनटेक्स्ट के प्रत्येक अक्षर को सिफरटेक्स्ट बनाने के लिए दूसरे अक्षर द्वारा प्रतिस्थापित किया जाता है। यह प्रतिस्थापन सिफर योजना का सबसे सरल रूप है।
इस क्रिप्टोसिस्टम को आमतौर पर शिफ्ट सिफर के रूप में जाना जाता है। अवधारणा प्रत्येक वर्णमाला को दूसरे वर्णमाला से प्रतिस्थापित करने की है जो 0 और 25 के बीच किसी निश्चित संख्या से 'स्थानांतरित' हो जाती है।
इस प्रकार की योजना के लिए, प्रेषक और प्राप्तकर्ता दोनों वर्णमाला को स्थानांतरित करने के लिए एक 'गुप्त शिफ्ट संख्या' पर सहमत होते हैं। यह संख्या जो 0 से 25 के बीच होती है, एन्क्रिप्शन की कुंजी बन जाती है।
'सीज़र सिफर' नाम का प्रयोग कभी-कभी शिफ्ट सिफर का वर्णन करने के लिए किया जाता है जब 'तीन की पाली' का उपयोग किया जाता है।
प्रक्रिया
-
एक प्लेनटेक्स्ट अक्षर को एन्क्रिप्ट करने के लिए, प्रेषक स्लाइडिंग रूलर को प्लेनटेक्स्ट अक्षरों के पहले सेट के नीचे रखता है और गुप्त शिफ्ट की स्थिति की संख्या के अनुसार इसे LEFT पर स्लाइड करता है।
-
इसके बाद प्लेनटेक्स्ट अक्षर को नीचे स्लाइडिंग रूलर पर सिफरटेक्स्ट अक्षर में एन्क्रिप्ट किया जाता है। इस प्रक्रिया के परिणाम को तीन पदों के एक सहमत बदलाव के लिए निम्नलिखित उदाहरण में दर्शाया गया है। इस मामले में, प्लेनटेक्स्ट 'ट्यूटोरियल' को सिफरटेक्स्ट 'wxwruldo' में एन्क्रिप्ट किया गया है। यहाँ 3 की शिफ्ट के लिए सिफरटेक्स्ट वर्णमाला है -
-
सिफरटेक्स्ट प्राप्त करने पर, रिसीवर जो गुप्त शिफ्ट को भी जानता है, अपने स्लाइडिंग रूलर को सिफरटेक्स्ट वर्णमाला के नीचे रखता है और इस मामले में सहमत शिफ्ट नंबर, 3 द्वारा इसे दाईं ओर स्लाइड करता है।
-
उसके बाद वह नीचे की ओर खिसकने वाले रूलर पर सिफरटेक्स्ट अक्षर को प्लेनटेक्स्ट अक्षर से बदल देता है। इसलिए सिफरटेक्स्ट 'wxwruldo' को 'ट्यूटोरियल' में डिक्रिप्ट किया गया है। 3 की शिफ्ट के साथ एन्कोड किए गए संदेश को डिक्रिप्ट करने के लिए, नीचे दिखाए गए अनुसार '-3' की शिफ्ट का उपयोग करके सादा पाठ वर्णमाला उत्पन्न करें -
यहाँ C++ में उपरोक्त प्रक्रिया का कार्यान्वयन है।
चरण और छद्म कोड
संदेश और कुंजी को इनपुट के रूप में लें -
एन्क्रिप्शन के लिए
- इनपुट: ट्यूटोरियल।
- आउटपुट: wxwruldo
डिक्रिप्शन के लिए
- इनपुट: wxwruldo
- आउटपुट: ट्यूटोरियल
एन्क्रिप्शन के लिए
Begin For i = 0 to msg[i] != '\0' ch = msg[i] //encrypt for lowercase letter If (ch >= 'a' and ch <= 'z') ch = ch + key if (ch > 'z') ch = ch - 'z' + 'a' - 1 done msg[i] = ch //encrypt for uppercase letter else if (ch >= 'A' and ch <= 'Z') ch = ch + key if (ch > 'Z') ch = ch - 'Z' + 'A' - 1 done msg[i] = ch done done Print Encrypted message End
डिक्रिप्शन के लिए
Begin For i = 0 to msg[i] != '\0' ch = msg[i] //decrypt for lowercase letter if(ch >= 'a' and ch <= 'z') ch = ch - key if (ch < 'a') ch = ch +'z' - 'a' + 1 done msg[i] = ch //decrypt for uppercase letter else if (ch >= 'A' and ch <= 'Z') ch = ch + key if (ch < 'A') ch = ch + 'Z' - 'A' + 1 done msg[i] = ch done done Print decrypted message End
उदाहरण
#include<iostream> #include<string.h> using namespace std; int main() { cout<<"Enter the message:\n"; char msg[100]; cin.getline(msg,100); //take the message as input int i, j, length,choice,key; cout << "Enter key: "; cin >> key; //take the key as input length = strlen(msg); cout<<"Enter your choice \n1. Encryption \n2. Decryption \n"; cin>>choice; if (choice==1) //for encryption{ char ch; for(int i = 0; msg[i] != '\0'; ++i) { ch = msg[i]; //encrypt for lowercase letter If (ch >= 'a' && ch <= 'z'){ ch = ch + key; if (ch > 'z') { ch = ch - 'z' + 'a' - 1; } msg[i] = ch; } //encrypt for uppercase letter else if (ch >= 'A' && ch <= 'Z'){ ch = ch + key; if (ch > 'Z'){ ch = ch - 'Z' + 'A' - 1; } msg[i] = ch; } } printf("Encrypted message: %s", msg); } else if (choice == 2) { //for decryption char ch; for(int i = 0; msg[i] != '\0'; ++i) { ch = msg[i]; //decrypt for lowercase letter if(ch >= 'a' && ch <= 'z') { ch = ch - key; if(ch < 'a'){ ch = ch + 'z' - 'a' + 1; } msg[i] = ch; } //decrypt for uppercase letter else if(ch >= 'A' && ch <= 'Z') { ch = ch - key; if(ch < 'A') { ch = ch + 'Z' - 'A' + 1; } msg[i] = ch; } } cout << "Decrypted message: " << msg; } }
आउटपुट
For encryption: Enter the message: tutorial Enter key: 3 Enter your choice 1. Encryption 2. Decryption 1 Encrypted message: wxwruldo For decryption: Enter the message: wxwruldo Enter key: 3 Enter your choice 1. Encryption 2. Decryption 2 Decrypted message: tutorial