شيفرة هيل

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

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

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

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

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

kvidqpvkwp

فك التشفير

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

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

الخطوات 
 نحدد أولا محدد المصفوفة وفي حالتنا ، وهو غير منعدم.
 نقوم بتحديد مود 26 المحدد  إذن، ويجب أن يكون  لذلك يجب أن يكون مخالفا ل13 وفرديا.
 نقوم بتحديد x حيث أن  في حالتنا لدينا   و   إذن x=11
 نحسب adjx حيث أن adjx = x * adj . 
 نعمل مود 26 لadjx 
إذن المصفوفة المعكوسة لمصفوفة المفتاح هي

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

ونعمل مود 26
 
 
 
 
 
وبالتالي تصبح كلمة kvidqpvkwp كلمة encryption .

المراجع 

تعمية