Site icon MHPSSL

شيفرة قيصر باستخدام بايثون

بسم الله الرحمن الرحيم

أعزائي متابعي الموقع

السلام عليكم ورحمة الله وبركاته

 

غريزة الإنسان بإخفاء الأشياء دعته إلى إكتشاف التشفير او ما يسمى بالتعمية وهو علم نشأ منذ قديم الأزل وأصبح اليوم أحد أهم عناصر أمن المعلومات إذ أصبحت التقنيات الحديثة والمبهرة تعتمد عليه مثل تقنية البلوكشين والعملات الرقمية .

 

===============

شيفرة قيصر تعتبر هذه الشيفرة احد اقدم انواع الشفرات وهي شيفرة كلاسيكة يقال انه يوليوس القيصر كان أول من استخدمها .تركز هذه الشيفرة على تبديل الأحرف بناء على خوارزمية محددة  وهي شيفرة سهلة التشفير وايضَا يمكن فك شفرتها بسهولة بحيث عدد المحاولات بها لايتجاوز ال 26 محاولة ولا تستخدم الآن إلا كطريقة تعليمية ومدخل إلى علم  التشفير لفهمه وفي هذا المقال سنقوم بالتحديد فهم هذه الشيفرة وبنائها باستخدام لغة البرمجة بايثون

 

 

اولًا : عمل شيفرة قيصر يدويًا

كما قلنا سابقًا شيفرة قيصر تعتمد على تبديل الحروف بناء على  خوارزمية محددة وهي :

x = m + k (mod 26)

حيث أن :

x  ⇒ النص المشفر

m ⇒ خانة النص الأصلي

k ⇒ هو المفتاح الذي يتم بناء عليه الطريقة قيصر

mod 26 ⇒ يعني باقي القسمة على 26

ملاحظات :

15 mod 26 = 15 ,

28 mod 26 = 2

 

مثال :

لو اردنا تشفير الكلمة التالية :

mhpssl

 

 

1. نكتب جميع الاحرف الابجدية الانجليزية  نعطي الأحرف من 0 إلى 25

جدول كالتالي :

 

L K J I H G F E D C B A الحرف
11 10 9 8 7 6 5 4 3 2 1 0 الخانة

 

X W V U T S R Q P O N M الحرف
23 22 21 20 19 18 17 16 15 14 13 12 الخانة

 

                        Z Y الحرف
                        25 24 الخانة

 

2. نختار مفتاح لنفترض

key = 3

3. نختار اول حرف في كلمتنا وهي M نحدد خانتها  وهي  12ونقوم بحل المعادلة

x = m + k (mod 26)

x = 12 + 3 (mod 26)

x = 15 mod 26

x = 15

أي العنصر الذي خانته 15 وهو p

وهكذا مع كل حرف نقوم بعمل المعادلة السابقة إلى أن نحصل على هذه الكلمة pskvvo

 

تهانينا قمت الآن بالتشفير بنجاح ???

 

============

ثانيًا : شيفرة قيصر باستخدام بايثون

 

 

 

والآن : دعونا نقوم بشرح السكربت السابق

ملاحظة : يمكن الاستغناء عن الاستدعاء بكتابة الاحرف كاملة هكذا  ⇒ ‘abcdefghijklmnopqrstuvwxyz’

from string import ascii_lowercase

def caser_encode(string,key):

encrypt_txt = encrypt_txt.lower()

 

encrypt_txt = encrypt_txt.replace(‘ ‘,)

 

x = []

for i in encrypt_txt:

m = ascii_lowercase.find(i)

alogra = (m + key) % 26

x_letter = ascii_lowercase[alogra]

x.append(x_letter)

return .join(x)

 

وفي النهاية بعد بناء الدالة نقوم باستدعائه بإضافة النص الأصلي كمعامل وايضًا مفتاح التشفير

print(caser_encode(‘mphssl’,3))

 

============

ثالثًا : فك شيفرة قيصر باستخدام بايثون

 

 

 

 

 

ذكرنا سابقٌا إن عملية فك تشفير الشيفرة نقوم بعكس العملية فقط في الخوارزمية وهذا ماقمنا به تمامًا في هذا السكربت حيث أننا قمنا بطرح خانة الحرف المشفر مع المفتاح للحصول على الحرف الأصلي

alogra = (m – key) % 26

 

وبذلك انتهينا

إن علم التشفير علم ممتع جدًا ويستحق التجربة

كونوا بخير دومًا

=====================

السكربتات :

 

التشفير

from string import ascii_lowercase

def caser_encode(plain_txt,key):

plain_txt = plain_txt.lower()

plain_txt = plain_txt.replace(‘ ‘,”)

x = []

for i in plain_txt:

m = ascii_lowercase.find(i)

alogra = (m + key) % 26

x_letter = ascii_lowercase[alogra]

x.append(x_letter)

return ”.join(x)

print(caser_encode(‘mphssl’,3))

فك التشفير

from string import ascii_lowercase

def caser_decode(encrypt_txt,key):

encrypt_txt = encrypt_txt.lower()

encrypt_txt = encrypt_txt.replace(‘ ‘,”)

x = []

for i in encrypt_txt:

m = ascii_lowercase.find(i)

alogra = (m – key) % 26

x_letter = ascii_lowercase[alogra]

x.append(x_letter)

return ”.join(x)

print(caser_decode(‘pskvvo’,3))

 تابعنا على مواقع التوآصل الإجتماعي :-

Twitter : MHPSSL

Snapchat : mhpssl

Telegram Channel : MHPSSL_Channel

Telegram Kali Linux Group: KaliArabi

 

Exit mobile version