السلام عليكم ورحمة الله وبركاته
من أبسط طرق التشفير الرياضية .. طريقة التشفير باستخدام xor سنتحدّث عنها بإذن الله في هذه المقالة القصيرة
المبدأ الرياضي :
عملية xor هي عملية منطقية على الأعداد بالترميز الثنائي(تتعامل مع أصفار وواحدات فقط) .. وتأخذ معاملين بشكلها المعياري ..
تّسمّى xor عادة بكاشف اختلاف .. فهي تعطي في ناتجها 1 إذا كان الدخلان مختلفين 1 و 0 أو 0 و 1 ..
وتعطي صفراً .. إذا كان الدخلان متشابهين 1 و 1 أو 0 و 0 ..
سبب استعمالها بالتشفير هو الخاصّية التالية :
ليكن c هو ناتج العملية a xor b
إذا أخذنا ناتج c xor b فإننا سنحصل مرة أخرى على a !
أي أننا يمكننا تشفير a بمفتاح ما b ونحصل على الشيفرة c .. ومن ثمّ باستخدام نفس المفتاح b نحصل على الرسالة الأصلية a
تسمّى طريقة التشفير السابقة بالتشفير المتناظر : أي أن التشفير وفك التشفير يتم باستخدام العملية نفسها .. وفي حالتنا هي xor b
يمكن البرهان بسهولة على الخاصّية التالية : (بتجربة جميع الاحتمالات )
والاحتمالات موضّحة في الجدول التالي :
a | b | c= a xor b | ?= c xor b | ------------------------------------------- 0 | 0 | 0=0 xor 0 | 0= 0 xor 0 =a| 0 | 1 | 1=0 xor 1 | 0= 1 xor 1 =a| 1 | 0 | 1=1 xor 0 | 1= 1 xor 0 =a| 1 | 1 | 0=1 xor 1 | 1= 0 xor 1 =a| -------------------------------------------
قمنا بتشفير بت واحد .. ويمكننا تشفير أي عدد من البتّات باستخدام مفتاح بنفس الطول ..
سنقوم بتشفير رقم في المثال التالي :
ليكن لدينا الرقم 0x36a2 ونريد تشفيره باستخدام المفتاح 0x0023
نكتب الرسالة والمفتاح بالترميز بالنظام الثنائي :
0x36a2=0011 0110 1010 00100x0023=0000 0000 0010 0011
ونحصل على ناتج التشفير ( الشيفرة ) بتطبيق xor على كل بتّين في نفس الموضع كما يلي :
0x36a2=0011 0110 1010 0010 0x0023=0000 0000 0010 0011 __________xor_____________ 0x3681=0011 0110 1000 0001
ويمكننا فك التشفير باستخدام xor مع المفتاح نفسه (ملاحظة لو أخذنا xor مع الرسالة سنحصل على المفتاح )
كلمات عن تشفير الملفّات :
أبسط طريقة لتشفير الملفّات هي اعتماد مفتاح واحد .. ثم المرور على بايتات الملف واحداً واحداً وأخذ xor لهذا البايت مع المفتاح وطباعة الناتج في ملف الخرج .
كانت هذه هي الأفكار الأساسية للتشفير باستخدام xor ..أرجو أن يكون فيها الفائدة .. وننتظر من الأخوة إغناء الموضوع :)
كما أرجو تجنّب الردود التي لا تفيد القرّاء اللاحقين ..
والله ولي التوفيق