تعتبر شيفرة ھیل أول شيفرة تتعامل فیھا مع 3 حروف في نفس الوقت[1]، ويمكنك التعامل مع عدد أكبر من الأحرف (أو أقل) وتعتبر من الشيفرات متعددة الأبجدية.[2] اخترعت سنة 1929 وسمیت بھذا الاسم نسبة إلى مخترعھا ليستر اس. هيل (Lester S. Hill)[3] وھي تعتمد في عملھا على الجبر الخطي.[4] ولكي تستطیع، التشفیر بھا یجب أن یكون لدیك أساسیات التعامل مع المصفوفات (ضرب المصفوفات بالتحديد).

مخترع شيفرة هيل

تحتاج شيفرة Hill إلى كلمة مفتاحية (Key Word) وهي عبارة عن كلمة يتم تحويل أحرفها إلى أرقام حسب تسلسل كل حرف في الأبجدية حيث يبدأ التسلسل ب 0 ليأخذ Z مثلا في الأبجدية الإنجليزية 25.

جدول الحروف الخاص بالأبجدية الإنجليزية
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

التشفير

1.نختار أولا الكلمة المفتاحية ونحولها لمصفوفة أرقام على شكل n*n، مثلا كلمة JECD تصير K=(9423) وبعد ذلك نختار عدد أحرف النص الأولي على حسب مصفوفة الكلمة المفتاحية حيث أن أعمدة مصفوفة الكلمة المفتاحية يجب أن يساوي عدد صفوف مصفوفة أحرف النص الصريح، في هذه الحالة يجب أن يكون عدد الأحرف زوجيا مثلا لنختار كلمة Encryption كنص أصلي ولنختر التشفير بحرفين:

  • En تصير (413)
  • cr تصير (217)
  • yp تصير (2415)
  • ti تصير (198)
  • on تصير (1413)

2. نقوم بضرب المصفوفتين في بعضهما ويحتاج ذلك معرفة طريقة الضرب بعدها نعمل مود 26 لضرب المصفوفتين (مود 26 لأن عدد أحرف الأبجدية الإنجليزية 26 وهي الحروف المستخدمة في هاته الحالة).

(9423)(413)=(8847)

(9423)(217)=(8655)

(9423)(2415)=(27693)

(9423)(198)=(20362)

(9423)(1413)=(17867)

ونعمل مود 26

  • (8847)(1021)(mod26)
  • (8655)(83)(mod26)
  • (27693)(1615)(mod26)
  • (20362)(2110)(mod26)
  • (17867)(2215)(mod26)

ونغير كل حرف بالعدد المقابل في الجدول ليصير النص الأولي بعد التشفير بشيفرة هيل :

kvidqpvkwp

فك التشفير

ملاحظات

لفك التشفير نحتاج إلى مصفوفة معكوسة لمصفوفة المفتاح[5] وتوجد مصفوفات ليس لها مصفوفة معكوسة.

لذا بعد اختيار المفتاح يجب التأكد أولا من أن له مصفوفة معكوسة وإن لم يكن ذلك فلا يمكن فك تشفير الرسالة، بعد اختيار المفتاح وتحويله لمصفوفة نعمل محدد المصفوفة إن كان منعدما فإن المفتاح غير صالح لذا يجب التأكد من أن محدد مصفوفة المفتاح غير منعدم كما يجب أن يكون فرديا ومود 26 الخاص به مخالف ل 13.

الخطوات

  1. نحدد أولا محدد المصفوفة وفي حالتنا det(K)=19، وهو غير منعدم.
  2. نقوم بتحديد مود 26 المحدد 19=19(mod26) إذنDetmod=19، ويجب أن يكون gcd(26,Detmod)=1 لذلك يجب أن يكون مخالفا ل13 وفرديا.
  3. نقوم بتحديد x حيث أن detmod*x=1(mod26) في حالتنا لدينا 11*191=208 و 208=26*8 إذن x=11
  4. نحسب adjx حيث أن adjx = x * adj . adjx=11(3429)=(33442299)
  5. نعمل مود 26 لadjx (33442299)=(78421)(mod26)

إذن المصفوفة المعكوسة لمصفوفة المفتاح هي (78421)

بعد الحصول على المصفوفة المعكوسة

نأخذ النص المشفر ونقسمه إلى ثنائيات أو حسب المتفق عليه في حالتنا kv id qp vk wp. نحولها إلى مصفوفات ونضرب المصفوفة المعاكسة فيها:

(78421)(1021)=(238481)

(78421)(83)=(8095)

(78421)(1615)=(232379)

(78421)(2110)=(227294)

(78421)(2215)=(274403)

ونعمل مود 26

  • (238481)(413)(mod26)
  • (8095)(217)(mod26)
  • (232379)(2415)(mod26)
  • (227294)(198)(mod26)
  • (274403)(1413)(mod26)

وبالتالي تصبح كلمة kvidqpvkwp كلمة encryption .

المراجع

  1. ^ "شيفرة هيل Hill cipher". www.kutub.info. مؤرشف من الأصل في 2017-10-08. اطلع عليه بتاريخ 2018-03-11.
  2. ^ "نشأة التشفير: خوارزميات التشفير التقليدية". مدونة علوم (بar-AR). 21 Jan 2016. Archived from the original on 2017-07-05. Retrieved 2018-03-11.{{استشهاد بخبر}}: صيانة الاستشهاد: لغة غير مدعومة (link)
  3. ^ "شفرة Hill Cipher التشفير المتعدد الابدالي Polygraphic substitution cipher". درر العراق. مؤرشف من الأصل في 2019-12-09. اطلع عليه بتاريخ 2018-03-11.
  4. ^ Alprogrammer. 📖 كتاب شيفرة هيل Hill cipher 📖. مؤرشف من الأصل في 2018-07-16.
  5. ^ كتاب Hill Cipher شفرةھیل