شفرة Hill Cipher
تعتبر احد طرق التشفير المتعدد الابدالي Polygraphic substitution cipher وهي من الطرق التقليدية (التشفير الكلاسيكي) , اخترع هذه الطريقة العالم Lester S. Hill عام 1929 , تعتمد شفرة hill على الجبر الخطي و على المصفوفات بصورة كاملة حيث تقسم احرف النص الى ثنائيات وتقوم بأضافتها الى مصفوفة ثنائية واجراء العمليات عليها .
تحتاج شفرة Hill الى كلمة مفتاحية (Key Word) وهي عبارة عن كلمة يتم تحويل احرفها الى ارقام حسب تسلسل كل حرف بالابجدية .
لكي تحترف التشفير بشفرة hill يجب ان تتقن العمليات الحسابية في المصفوفات , اي اذا كنت ان تريد ضرب مصفوفة في مصفوفة ثانية من اين تبدأ ؟ و كيف يتم ذلك ؟ او اذا اردت ان تضرب عدد في مصفوفة ما هو الاختلاف عن الطريقة اعلاه , الطريقة سهلة لكن تحتاج الى متابعة .
طريقة التشفير Encryption :
تسلسل الاحرف الابجدية في شفرة hill يبدأ من 0 وليس من واحد .
1- نقوم بتحويل الكلمة المفتاحية الى مصفوفة ثنائية ابعادها 2 * 2 ونكتب بداخل المصفوفة مواقع احرف الكلمة المفتاحية (التسلسل الابجدي) مثال : اذا كانت لدينا الكلمة المفتاحية (hill) فيكون تحويله الى مصفوفة ارقام بالشكل التالي :2- نقسم النص المراد تشفيره (لنفرض ان النص هو sp ym an) الى ثنائيات ونحول كل ثنائية الى ارقام حسب موقعها بالابجدية .
3- نضرب كل ثنائية بمصفوفة الكلمة المفتاحية ونعمل للناتج mod 26 .في الخطوة اعلاه نحتاج الى معرفة كيفية ايجاد ناتج حاصل ضرب مصفوفتين , لاحظ المثال ادناه لعملية الضرب لايجاد حاصل ضرب المصفوفة في الصورة السابقة
AX + BY
CX + DY
ونأخذ mod 26 لكل رقم ناتج من العمليتين اعلاه .
4- ناتج الخطوة الثالثة نرجعها للابجدية ونكتب الحرف الناتج .
شاهد الفيديو ادناه يحتوي عمليات على المصفوفات بالامثلة بالاضافة تشفير hill (التشفير يبدأ من الدقيقة 3:40)
عملية فك التشفير Decryption :
1- ايجاد الـ DET
2- ايجاد DET mod
3- استخراج المعامل النمطي المعكوس (X)
4- ايجاد المصفوفة المساعدة ADJ
5- ضرب الـ (X) في المصفوفة المساعدة و عمل mod 26 للناتج وبهذا سوف نحصل على k المعكوس
بعد هذه الخطوة حصلنا على k المعكوس
الان نقسم النص المشفر الى ثنائيات و نجد تسلسل كل ثنائية في الابجدية وبعد ذلك نضرب كل واحد بـ k المعكوس ونجد mod 26 للناتج , وبهذا نحصل على النص الصريح plain text
يتبع ... سأقوم بكتابة الكود لاحقاً