पायथन के साथ क्रिप्टोग्राफी - सीज़र सिफर

पिछले अध्याय में, हमने रिवर्स सिफर से निपटा है। इस अध्याय में सीज़र सिफर के बारे में विस्तार से बात की गई है।

सीज़र सिफर का एल्गोरिदम

सीज़र सिफर का एल्गोरिदम निम्नलिखित विशेषताएं रखता है -

  • सीज़र सिफर तकनीक एन्क्रिप्शन तकनीक की सरल और आसान विधि है।

  • यह प्रतिस्थापन सिफर का सरल प्रकार है।

  • सादे पाठ के प्रत्येक अक्षर को अक्षर के साथ कुछ निश्चित संख्या में अक्षरों के साथ बदल दिया जाता है।

निम्नलिखित चित्र में सीज़र सिफर एल्गोरिदम कार्यान्वयन के कार्य को दर्शाया गया है -

सीज़र सिफर एल्गोरिदम का कार्यक्रम कार्यान्वयन निम्नानुसार है -

def encrypt(text,s):
result = ""
   # transverse the plain text
   for i in range(len(text)):
      char = text[i]
      # Encrypt uppercase characters in plain text
      
      if (char.isupper()):
         result += chr((ord(char) + s-65) % 26 + 65)
      # Encrypt lowercase characters in plain text
      else:
         result += chr((ord(char) + s - 97) % 26 + 97)
      return result
#check the above function
text = "CEASER CIPHER DEMO"
s = 4

print "Plain Text : " + text
print "Shift pattern : " + str(s)
print "Cipher: " + encrypt(text,s)

उत्पादन

आप सीज़र सिफर देख सकते हैं, जैसा कि निम्न चित्र में दिखाया गया है -

व्याख्या

सादा पाठ चरित्र एक समय में एक है।

  • दिए गए सादे पाठ में प्रत्येक वर्ण के लिए, पाठ की एन्क्रिप्शन और डिक्रिप्शन की प्रक्रिया के आधार पर दिए गए वर्ण को नियम के अनुसार रूपांतरित करें।

  • चरणों का पालन करने के बाद, एक नया स्ट्रिंग उत्पन्न होता है जिसे सिफर टेक्स्ट कहा जाता है।

सीज़र सिफर एल्गोरिथम की हैकिंग

विभिन्न संभावनाओं के साथ सिफर पाठ को हैक किया जा सकता है। ऐसी ही एक संभावना हैBrute Force Technique,जिसमें हर संभव डिक्रिप्शन कुंजी की कोशिश करना शामिल है। यह तकनीक अधिक प्रयास की मांग नहीं करती है और हैकर के लिए अपेक्षाकृत सरल है।

सीजर सिफर एल्गोरिदम को हैक करने के लिए कार्यक्रम कार्यान्वयन निम्नानुसार है -

message = 'GIEWIVrGMTLIVrHIQS' #encrypted message
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

for key in range(len(LETTERS)):
   translated = ''
   for symbol in message:
      if symbol in LETTERS:
         num = LETTERS.find(symbol)
         num = num - key
         if num < 0:
            num = num + len(LETTERS)
         translated = translated + LETTERS[num]
      else:
         translated = translated + symbol
print('Hacking key #%s: %s' % (key, translated))

पिछले उदाहरण में एन्क्रिप्टेड सिफर पाठ पर विचार करें। फिर, कुंजी के साथ संभव हैकिंग विधियों के साथ उत्पादन और जानवर बल हमले की तकनीक का उपयोग इस प्रकार है -