यह एक मोनो-अल्फाबेटिक सिफर है जिसमें प्लेनटेक्स्ट के प्रत्येक अक्षर को दूसरे अक्षर द्वारा प्रतिस्थापित किया जाता है ताकि सिफरटेक्स्ट बन सके। यह सब्स्टीट्यूशन सिफर योजना का सबसे सरल रूप है।
इस क्रिप्टोसिस्टम को आमतौर पर शिफ्ट सिफर के रूप में संदर्भित किया जाता है। अवधारणा प्रत्येक अल्फाबेट को दूसरे अल्फाबेट से बदलना है जो 0 और 25 के बीच कुछ निश्चित संख्या से 'शिफ्ट' किया गया है।
इस प्रकार की योजना के लिए, प्रेषक और प्राप्तकर्ता दोनों अल्फाबेट को शिफ्ट करने के लिए एक 'गुप्त शिफ्ट नंबर' पर सहमत होते हैं। यह संख्या जो 0 और 25 के बीच होती है, एन्क्रिप्शन की कुंजी बन जाती है।
नाम 'सीजर सिफर' का उपयोग कभी-कभी शिफ्ट सिफर का वर्णन करने के लिए किया जाता है जब 'थ्री का शिफ्ट' उपयोग किया जाता है।
प्रक्रिया
- प्लेनटेक्स्ट अक्षर को एन्क्रिप्ट करने के लिए, प्रेषक स्लाइडिंग रूलर को प्लेनटेक्स्ट अक्षरों के पहले सेट के नीचे रखता है और इसे गुप्त शिफ्ट की संख्या के अनुसार बाईं ओर स्लाइड करता है।
- प्लेनटेक्स्ट अक्षर को तब स्लाइडिंग रूलर के नीचे सिफरटेक्स्ट अक्षर में एन्क्रिप्ट किया जाता है। इस प्रक्रिया का परिणाम तीन पोजीशन के सहमत शिफ्ट के लिए निम्नलिखित चित्रण में दर्शाया गया है। इस मामले में, प्लेनटेक्स्ट 'tutorial' सिफरटेक्स्ट 'wxwruldo' में एन्क्रिप्ट होता है।

- सिफरटेक्स्ट प्राप्त करने पर, प्राप्तकर्ता जो गुप्त शिफ्ट भी जानता है, अपने स्लाइडिंग रूलर को सिफरटेक्स्ट अल्फाबेट के नीचे रखता है और इसे सहमत शिफ्ट नंबर, इस मामले में 3, के अनुसार दाईं ओर स्लाइड करता है।
- वह फिर स्लाइडिंग रूलर के नीचे प्लेनटेक्स्ट अक्षर द्वारा सिफरटेक्स्ट अक्षर को प्रतिस्थापित करता है। इसलिए सिफरटेक्स्ट 'wxwruldo' 'tutorial' में डिक्रिप्ट होता है। शिफ्ट 3 के साथ एन्कोडेड संदेश को डिक्रिप्ट करने के लिए, '-3' के शिफ्ट का उपयोग करके प्लेनटेक्स्ट अल्फाबेट जनरेट करें।

उपरोक्त प्रक्रिया का C++ में कार्यान्वयन यहां है।
चरण और स्यूडोकोड
संदेश और कुंजी को इनपुट के रूप में लें:
एन्क्रिप्शन के लिए
- Input: tutorial
- Output: wxwruldo
डिक्रिप्शन के लिए
- Input: wxwruldo
- Output: tutorial
एन्क्रिप्शन के लिए
Begin
For i = 0 से msg[i] != '\0' तक
ch = msg[i]
// लोअरकेस अक्षर के लिए एन्क्रिप्ट
If (ch >= 'a' and ch <= 'z')
ch = ch + key
if (ch > 'z')
ch = ch - 'z' + 'a' - 1
done
msg[i] = ch
// अपरकेस अक्षर के लिए एन्क्रिप्ट
else if (ch >= 'A' and ch <= 'Z')
ch = ch + key
if (ch > 'Z')
ch = ch - 'Z' + 'A' - 1
done
msg[i] = ch
done
done
एन्क्रिप्टेड मैसेज प्रिंट करें
End
डिक्रिप्शन के लिए
Begin
For i = 0 से msg[i] != '\0' तक
ch = msg[i]
// लोअरकेस अक्षर के लिए डिक्रिप्ट
if(ch >= 'a' and ch <= 'z')
ch = ch - key
if (ch < 'a')
ch = ch + 'z' - 'a' + 1
done
msg[i] = ch
// अपरकेस अक्षर के लिए डिक्रिप्ट
else if (ch >= 'A' and ch <= 'Z')
ch = ch - key
if (ch < 'A')
ch = ch + 'Z' - 'A' + 1
done
msg[i] = ch
done
done
डिक्रिप्टेड मैसेज प्रिंट करें
End
उदाहरण
#include <iostream>
#include <string.h>
using namespace std;
int main() {
cout << "Enter the message:\n";
char msg[100];
cin.getline(msg, 100); // संदेश को इनपुट के रूप में लें
int i, j, length, choice, key;
cout << "Enter key: ";
cin >> key; // कुंजी को इनपुट के रूप में लें
length = strlen(msg);
cout << "Enter your choice \n1. Encryption \n2. Decryption \n";
cin >> choice;
if (choice == 1) { // एन्क्रिप्शन के लिए
char ch;
for(int i = 0; msg[i] != '\0'; ++i) {
ch = msg[i];
// लोअरकेस अक्षर के लिए एन्क्रिप्ट
if (ch >= 'a' && ch <= 'z') {
ch = ch + key;
if (ch > 'z') {
ch = ch - 'z' + 'a' - 1;
}
msg[i] = ch;
}
// अपरकेस अक्षर के लिए एन्क्रिप्ट
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) { // डिक्रिप्शन के लिए
char ch;
for(int i = 0; msg[i] != '\0'; ++i) {
ch = msg[i];
// लोअरकेस अक्षर के लिए डिक्रिप्ट
if(ch >= 'a' && ch <= 'z') {
ch = ch - key;
if(ch < 'a') {
ch = ch + 'z' - 'a' + 1;
}
msg[i] = ch;
}
// अपरकेस अक्षर के लिए डिक्रिप्ट
else if(ch >= 'A' && ch <= 'Z') {
ch = ch - key;
if(ch < 'A') {
ch = ch + 'Z' - 'A' + 1;
}
msg[i] = ch;
}
}
cout << "Decrypted message: " << msg;
}
return 0;
}
आउटपुट
एन्क्रिप्शन के लिए: Enter the message: tutorial Enter key: 3 Enter your choice 1. Encryption 2. Decryption 1 Encrypted message: wxwruldo डिक्रिप्शन के लिए: Enter the message: wxwruldo Enter key: 3 Enter your choice 1. Encryption 2. Decryption 2 Decrypted message: tutorial
सीजर सिफर सबसे सरल और सबसे पुराने एन्क्रिप्शन तकनीकों में से एक है। यह केवल 25 संभावित कुंजियों (1-25 शिफ्ट) के साथ ब्रूट-फोर्स अटैक के प्रति बेहद संवेदनशील है। यह आधुनिक उपयोग के लिए सुरक्षित नहीं है लेकिन क्रिप्टोग्राफी की मूल अवधारणाओं को समझने के लिए उत्कृष्ट है।