การเข้ารหัสด้วย Python - Caesar Cipher

ในบทสุดท้ายเราได้จัดการกับการเข้ารหัสย้อนกลับ บทนี้พูดถึงการเข้ารหัสซีซาร์โดยละเอียด

อัลกอริทึมของ Caesar Cipher

อัลกอริทึมของการเข้ารหัสซีซาร์มีคุณสมบัติดังต่อไปนี้ -

  • Caesar Cipher Technique เป็นเทคนิคการเข้ารหัสที่ง่ายและสะดวก

  • มันเป็นรหัสการทดแทนประเภทง่ายๆ

  • ตัวอักษรของข้อความธรรมดาแต่ละตัวจะถูกแทนที่ด้วยตัวอักษรโดยมีจำนวนตำแหน่งคงที่ตามตัวอักษร

แผนภาพต่อไปนี้แสดงให้เห็นถึงการทำงานของการใช้อัลกอริทึมการเข้ารหัสซีซาร์ -

การใช้โปรแกรมของ Caesar cipher algorithm มีดังต่อไปนี้ -

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))

พิจารณาข้อความการเข้ารหัสที่เข้ารหัสในตัวอย่างก่อนหน้านี้ จากนั้นผลลัพธ์ที่มีวิธีการแฮ็กที่เป็นไปได้ด้วยคีย์และการใช้เทคนิคการโจมตีด้วยกำลังดุร้ายมีดังนี้ -