الفصل الخامس

الخوارزميات الحديثة

(١) مقدمة

خلال الفصل الثالث، أكَّدْنا على أن الأمثلة التي عرضناها لا تشير إلى الممارسات الحالية، وأن نظام خوارزميات التشفير الحديثة تَستخدم في الأغلب البتات (الأرقام الثنائية) بدلًا من استبدال الأحرف في الأمثلة التي عرضناها. في هذا الفصل، نناقش الخوارزميات الحديثة. وبما أنها أكثر تعقيدًا من أمثلة الخوارزميات التي سقناها في الفصل الثالث، فإننا لا نذكر أيَّ أمثلة محددة بالتفصيل، لكننا نركِّز على الأساليب العامة المستخدمة في تصميمها.

(٢) سلاسل الرقم الثنائي (البت)

مثلما أشرنا سابقًا، لا تتضمن الشفرات الحديثة عملية استبدال للأحرف. بدلًا من ذلك، عادة ما يَستخدم التشفير الحديث أنظمة ترميز لتحويل الرسائل إلى سلسلة متتالية من الأرقام الثنائية (بتات)؛ أي من أصفار وآحاد. ويعد نظام إيه إس سي آي آي (نظام الترميز القياسي الأمريكي لتبادل المعلومات، آسكي) على الأرجح أكثر أنظمة التشفير الحديثة شيوعًا. بعد ذلك، يجري تشفير سلسلة الأرقام الثنائية هذه التي تمثِّل النص الأصلي للحصول على النص المشفر في صورة سلسلة الأرقام الثنائية.

يمكن تطبيق خوارزمية التشفير على سلسلة الأرقام الثنائية بطرق عدة. ثمة فارق «طبيعي» بين نظام «شفرات التدفق»؛ حيث يتم تشفير السلسلة بتًا بتًا (أي رقمًا ثنائيًّا رقمًا ثنائيًّا)، ونظام «شفرات الكتل»؛ حيث يتم تقسيم السلسلة إلى كتل (مجموعات) لها طول مُحدد سلفًا. يتطلب نظام الترميز القياسي الأمريكي لتبادل المعلومات ثَمانية بتات لتمثيل رمز واحد؛ لذا، يُجرى تطبيق خوارزمية التشفير على ثمانية رموز مرة واحدة في حالة شفرة الكتل التي تكون فيها الكتلة تتألف من 64 رقمًا ثنائيًّا.

من الأهمية بمكان أن ندرك أن سلسلة الأرقام الثنائية نفسها يمكن كتابتها بطرق مختلفة، كما يتعين علينا أن ندرك أن طريقة كتابتها تعتمد على طول الكتل التي جرى تقسيمها إليها.

خذ — على سبيل المثال — السلسلة التالية المؤلفة من 12 رقمًا ثنائيًّا: 10 01 11 01 01 10. إذا قسمنا هذه السلسلة إلى كتل تتألف من ثلاثة أرقام ثنائية نحصل على: 100 111 010 110. في المقابل، أيُّ سلسلة أرقام ثنائية بطول 3 تمثل عددًا صحيحًا يقع بين قيمتَيْ 0 و7؛ ومن ثَمَّ تتخذ السلسلة التي لدينا الصورة الآتية: 4 7 2 6. بالنسبة إلى هؤلاء ممن لم يقرءوا الملحق في الفصل الثالث ولا يمتلكون معرفة كافية بطرق التمثيل الثنائي للأعداد الصحيحة، تكون السلسلة على النحو التالي:
000 = 0, 001 = 1, 010 = 2, 011 = 3, 100 = 4, 101 = 5, 110 = 6, 111 = 7.
إذا أخذنا السلسلة نفسها ثم قسمناها إلى كتلٍ بطول أربعة نحصل على: . في هذه المرة، بما أن سلسلة الأرقام الثنائية التي لها طول أربعة أرقام ثنائية تمثِّل الأعداد الصحيحة الواقعة بين قيمتَيْ 0 و15، نحصل على السلسلة 9136. بوجه عام، يمكن النظر إلى سلسلة الأرقام التي طولها N على أنها تمثِّل عددًا صحيحًا يقع بين قيمتَيْ 0 و ؛ ومن ثَمَّ، بمجرد الاتفاق على طول كتلة بقيمة S، يمكن كتابة أي سلسلةِ أرقام ثنائية طويلة كسلسلةٍ تتألف من أعداد صحيحة تقع في نطاق القيمتين 0 و .
بينما لا تعتبر التفاصيل الرياضية الدقيقة مهمة، من الأهمية بمكان ملاحظةُ أن سلسلة الأرقام الثنائية نفسها يمكن تمثيلها في صورة سلسلة من الأعداد بعدة طرق، اعتمادًا على طول الكتلة التي جرى انتقاؤها. من الأهمية بمكان أيضًا إدراك أنه في حال تحديد طول الكتلة، وكانت الأعداد صغيرة، ربما يكون ضروريًّا إضافة بعض الأصفار الإضافية في البداية. على سبيل المثال، يعتبر التمثيل الثنائي للعدد الصحيح 5 هو 101. في المقابل، في حال استخدام كتلة طولها 6 أعداد تمثِّل 5 كالآتي: 000101، وبالنسبة إلى كتلة طولها 8، فإننا نمثل 5 كالآتي: 00000101.

هناك طريقة أخرى شائعة لكتابة سلسلة الأرقام الثنائية؛ وتتمثل في استخدام «التمثيل السادس العشر». بالنسبة إلى التمثيل السادس عشر، تُقسَّم السلسلة إلى مجموعات من أربعة أعداد تمثَّل كالآتي:

من هنا، يصير التمثيل السادس عشر للسلسلة السابقة: 9 D 6.
بما أن خوارزميات التشفير يجري تطبيقها على سلسلة من الأرقام الثنائية فسنحتاج إلى التعرف على أسلوبٍ شائعِ الاستخدام لدمج رقمين ثنائيين يطلق عليه أسلوب «أُو آر الحصري» وعادةً ما يجري كتابته كالآتي: «إكس أو آر» أو . إنه يطابق الجمع بالنسبة إلى المقياس الحسابي 2 ويعرَّف كالآتي:  ، ، ، و ، وهو ما يمكن تمثيله في جدول.
figure
جدول عملية إكس أو آر أو .
توفر هذه العملية البسيطة طريقة للدمج بين سلسلتين من الأرقام الثنائية لهما نفس الطول. نجري هذه العملية على أزواج من الأرقام الثنائية في مواضع متناظرة. على سبيل المثال، هب أننا نريد حساب . الرقم الثنائي إلى يسار 10011 هو 1 والرقم الثنائي إلى يسار 11001 هو 1 أيضًا؛ من هنا، بما أن الرقم الثنائي إلى يسار يجري الحصول عليه من خلال تطبيق أسلوب إكس أو آر على الأرقام الثنائية في يسار كل سلسلة منفردة، نجد أن الرقم الثنائي إلى   هو ، والذي هو 0. بمواصلة إجراء العملية نفسها نحصل على: . يبين الشكل التالي طريقة أخرى لكتابة العملية الحسابية:

(٣) شفرات التدفق

يستخدم الكثير من المؤلفين هذا المصطلح بطريقة مختلفة نوعًا ما. يتحدث الكثيرون عن شفرات تدفق تعتمد على الكلمات أو الرموز. في هذه الحالة يجري تشفير الرسالة كلمة كلمة (أو رمزًا رمزًا)، ويجري تحديد قاعدة التشفير لكل كلمة (رمز) من خلال موضعها في الرسالة. تتوافق شفرة فيجنر، التي جرى مناقشتها في الفصل الثالث، ودفتر المرة الواحدة مع هذا التعريف. ربما كان أكثر النماذج التاريخية شهرةً هو شفرة إنيجما. في المقابل، يتمثَّل أكثر الاستخدامات الحديثة شيوعًا لمصطلح «شفرة تدفق» — وهو الاستخدام الذي نتبناه هنا — في أنها شفرة يجري تشفير النص الأصلي فيها رقمًا رقمًا. بداهةً، كل ما يمكن أن يحدث لأي رقم ثنائي هو تغيُّر قيمته إلى القيمة البديلة أو عدم تغيرها. وبما أن أي رقم ثنائي يمكن أن يكون له قيمة واحدة من قيمتين اثنتين فقط، فإن تغيير أي رقم ثنائي يعني تبديله بقيمة أخرى. بالإضافة إلى ذلك، إذا جرى تغيير رقم ثنائي مرتين، فإنه يعود إلى قيمته الأصلية.

إذا كان الطرف المعترض يعلم أن شفرة تدفق جرى استخدامها، فسينحصر جهده إذنْ في تحديد مواضع الأرقام الثنائية التي جرى تغييرها، ثم تغييرها إلى قيمها الأصلية. إذا كان ثمة نمط سهل التتبع يمكن من خلاله تحديد الأرقام التي جرى تغييرها، فربما ستصبح مهمة الطرف المعترض سهلة. من هنا، بينما يجب ألا تكون مواضع الأرقام الثنائية التي جرى تغييرها قابلة للتنبؤ من قبل الطرف المعترض، بل يجب أن يتمكن الطرف المستقبل دومًا من تحديدها بسهولة.

بالنسبة إلى شفرات التدفق، يجري النظر إلى عملية التشفير باعتبارها سلسلة تتألف من العمليتين الآتيتين: التغيير وعدم التغيير. يحدد مفتاح التشفير هذه السلسلة التي عادة ما يطلق عليها سلسلة «مفتاح التدفق». للتبسيط والاختصار، لنتفقْ على أن قيمة 0 تشير إلى «عدم التغيير» وقيمة 1 تشير إلى «التغيير». بلغْنا الآن مرحلةً صار فيها النص الأصلي، والنص المشفر، ومفتاح التدفق كلها سلاسلَ تتألف من أرقام ثنائية.
للمزيد من التوضيح، هب أن لدينا النص الأصلي 1100101 ومفتاح التدفق 1000110؛ إذن، بما أن قيمة 1 في مفتاح التدفق تشير إلى تغيير الرقم الثنائي في النص الأصلي في ذلك الموضع، فسنجد أن قيمة 1 التي تقع في أقصى يسار النص الأصلي يجب تغييرها، لكننا سنلاحظ أن الرقم الثنائي التالي يظل كما هو. بتكرار هذه العملية نحصل على النص المشفر 0100011. أشرنا توًّا إلى أن تغيير رقم ثنائي مرتين يترتب عليه إعادة الرقم إلى قيمته الأصلية؛ وهو ما يعني أن عملية فك التشفير تماثل عملية التشفير؛ ومن ثَمَّ يحدد مفتاح التدفق أيضًا طريقة فك التشفير.
يتمثَّل كل ما قمنا به في العرض السابق في «دمج» سلسلتين من الأرقام الثنائية لتوليد سلسلة ثالثة من خلال قاعدة يمكن النص عليها كالآتي في حالتنا الخاصة هذه: «إذا كان هناك رقم 1 في أحد مواضع السلسلة الثانية، غيِّر إذن الرقم في الموضع نفسه من السلسلة الأولى.» تعتبر هذه العملية هي بالضبط عملية إكس أو آر، أَو التي سبق تعريفها في الجزء السابق. من هنا إذا كانت كلٌّ مِن ، و تمثِّل الرقم الثنائي للنص الأصلي، ومفتاح التدفق، والنص المشفر على التوالي في الموضع ، يجري الحصول على الرقم الثنائي للنص المشفر من خلال . لاحظ أن عملية التشفير تُعرف من خلال .

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

تحتاج شفرة التدفق إلى مفتاح قصير لتوليد مفتاح تدفق طويل، وهو ما يتحقق من خلال استخدام مولِّد سلسلة أرقام ثنائية. تذكَّرْ أننا خلال مناقشتنا لشفرة فيجنر في الفصل الثالث، طرحنا مفهوم استخدام مولِّدٍ لتوليد مفتاح تدفق طويل ذي أحرف هجائية من خلال مفتاح قصير ذي أحرف هجائية. لكن في تلك الحالة، كانت عملية التوليد بدائية للغاية؛ إذ جرى انتقاء كلمة المفتاح وتكرارها. يجب أن تكون مولدات مفتاح التدفق في شفرات التدفق العملية أكثر تعقيدًا من ذلك. للتدليل على سبب ذلك، نلاحظ مما سبق أن الرقم الثنائي لمفتاح التدفق في الموضع ، يمكن تحديده على أنه نتاج عملية إكس أو آر للنص الأصلي والنص المشفر في الموضع . يسلط ذلك الضوء على ضعف شفرات التدفق؛ حيث إن أي طرف معترض يتمكن من إجراء عملية اعتراض استنادًا إلى معرفته بالنص الأصلي سيستطيع استنباط أجزاء من سلسلة مفتاح التدفق من خلال زوجَي الأرقام الثنائية للنص الأصلي والنص المشفر المقابلين. من هنا، يجب على مستخدمي شفرات التدفق حماية شفراتهم ضد عمليات الاعتراض التي يستطيع الطرف المعترض عبرها استنباط جزء من مفتاح التدفق. بعبارة أخرى، يجب أن تكون سلسلة مفتاح التدفق غير متوقعة؛ بمعنى أن القدرة على معرفة جزء منها يجب ألا يمكِّن الطرف المعترض من استنباط الباقي. على سبيل المثال، تنتج شفرةُ فيجنر التي لها مفتاح قصير بطول 4 مفتاحَ تدفُّقٍ يتكرر كل أربعة رموز. ومع ذلك من السهولة بمكان تصميم مولدات مفاتيح تدفُّق تتكرر كل خمسة عشر رقمًا ثنائيًّا، وذلك بانتقاء مفتاح مكون من أربعة أرقام ثنائية. لتنفيذ ذلك، نبدأ بأي مفتاح يبلغ طوله أربعة أرقام فيما عدا 0000. تُجرى عملية توليد — على سبيل المثال — بالحصول على كل رقم ثنائي من السلسلة الرقمية عن طريق إجراء عملية إكس أو آر للرقمين الثنائيين الأول والأخير للأرقام الثنائية الأربعة التي تسبقها. إذا بدأنا برقم 1111 تصبح السلسلة 111101011001000، ثم تتكرر إلى ما لا نهاية. في حقيقة الأمر، يمكن إجراء عملية التوليد مباشرةً من خلال انتقاء مفتاح طوله n، ثم توليد مفتاح تدفُّق لا يبدأ في التكرار إلا عند بلوغ رقم ثنائي.

تعتبر عملية تصميم مولدات لسلسلة مفتاح تدفق جيدة عملية في غاية الصعوبة، وهو ما يتطلب معرفة بمستوًى متقدم من الرياضيات. بالإضافة إلى ذلك، هناك حاجة إلى إجراء اختبارات إحصائية مكثفة لنضمن — إن أمكن — أن ناتج المولد لا يمكن تمييزه عن سلسلة عشوائية. على الرغم من ذلك، يوجد عدد من التطبيقات تُعتبر شفرات التدفق هي الأكثر ملائمة لها. يتمثل أحد أسباب ذلك في أنه في حال تلقِّي رقم ثنائي في النص المشفر على نحو غير صحيح، فإنه سيكون هناك رقم ثنائي واحد فقط في فك الشفرة غير صحيح؛ حيث يقابل كلَّ عدد ثنائي في النص الأصلي رقمٌ ثنائي واحد فقط في النص المشفر. لا ينطبق ذلك على شفرات الكتل؛ حيث يؤدي تلقِّي رقم واحد فقط غير صحيح في النص المشفر إلى عدم مصداقية الكتلة بعد فك تشفيرها. عدم «انتشار الخطأ» هذا عن طريق خوارزمية فك التشفير أمر ضروري إذا كان يجري نقل النص المشفر عبر قناة مشوشة؛ ومن ثَمَّ، تُستخدم شفرات التدفق في تشفير الأحاديث الممثلة رقميًّا مثل شبكات الهواتف المحمول بنظام جي إس إم. المميزات الأخرى لشفرات التدفق التي تتميز بها عن شفرات الكتل تشمل السرعة وسهولة التنفيذ.

(٤) نظام شفرات الكتل (نمط كتاب الشفرات الإلكتروني)

في حالة «شفرة الكتل»، يتم تقسيم سلسلة الأرقام الثنائية إلى كتل أو مجموعات بطول محدد. تطبَّق خوارزمية التشفير على هذه الكتل لتوليد كتل نص مشفَّر لها نفس الطول وذلك في حال معظم الشفرات المتناظرة.

هناك العديد من التطبيقات لشفرات الكتل. ويمكن الاستعانة بها لتوفير السرية، أو سلامة البيانات، أو التحقق من هوية المستخدمين، بل يمكن استخدامها في توفير مولد مفتاح التدفق في شفرات التدفق. ومثلما هو الحال مع شفرات التدفق، من الصعوبة بمكان إجراء عملية تقييم محددة لدرجة الأمن التي يحققها هذا النظام. بداهةً، مثلما رأينا، يمثِّل طول المفتاح حدًّا علويًّا لقوة خوارزمية التشفير. لكن مثلما رأينا في حالة نظام شفرات الاستبدال البسيط، لا يمثِّل توفر عدد كبير من المفاتيح ضمانة لقوة الشفرة. ويقال إن الخوارزمية المتناظرة «مصممة جيدًا» في حال ما إذا كانت عملية البحث الشاملة هي أبسط صور الاعتراض. بطبيعة الحال، يمكن أن تكون الخوارزمية مصممة جيدًا لكنها سهلة الكسر إذا كان عدد المفاتيح صغيرًا جدًّا.

يعتبر تصميم خوارزميات تشفير قوية مهارةً متخصصة. بيد أنه ثمة عدد من الخواص البديهية يجب أن تتوفر في شفرة الكتل القوية، وهي خواص يسهُل بيانها. إذا حصل طرف معترض على زوج من نص أصلي معروف ونص مشفر لمفتاح غير معروف، فلن يمكِّنه ذلك بالضرورة من استنباط النص المشفر المقابل لأي نص أصلي آخر. على سبيل المثال، لا تمتلك الخوارزمية التي يتغير فيها النص الأصلي بطريقة معروفة بحيث يؤدي إلى إحداث تغيير متوقع في النص المشفر، مثل هذه الخاصية. يمثل ذلك أحد أسباب اشتراط توفر «خاصية الانتشار» في نظام شفرات الكتل، وهي الخاصية التي تتمثل في أن إجراء أي تغيير بسيط في النص الأصلي، ربما — على سبيل المثال — من خلال تغيير موضع أو موضعين، سيؤدي إلى حدوث تغيير غير متوقع في النص المشفر.

ناقَشْنا من قبل مخاطر عمليات البحث الشاملة للمفتاح. خلال إجراء مثل هذا النوع من عمليات البحث، قد يجرِّب الطرف المعترض مفتاحًا لا يختلف عن القيمة الصحيحة للمفتاح الحقيقي إلا في عدد محدود من المواضع. إذا كان ثمة دليل على أن الطرف المعترض جرَّب — على سبيل المثال — مفتاحًا لا يتفق مع المفتاح الصحيح في موضع واحد فقط، فقد يوقف الطرف المعترض عملية البحث ثم يكتفي بتغيير كل موضع لهذا المفتاح الخطأ على التوالي، وهو ما سيقلل كثيرًا من الوقت اللازم لاكتشاف المفتاح، وهذا أمر آخر غير مرغوب فيه. بناءً عليه، يجب أن تتوفر في شفرات الكتل «خاصية التشويش» التي تتمثل في أنه في حال محاولة طرف معترض إجراء عملية بحث شاملة عن المفتاح، يجب ألا تتوفر أي إشارة إلى «الاقتراب» من المفتاح الصحيح.

عند مناقشة شفرة الاستبدال البسيط، أعطَيْنا مثالًا على عملية اعتراض جرى فيها بناءُ مفتاح التشفير تدريجيًّا من خلال، أولًا، العثور على بديل الحرف E، ثم العثور على بديل الحرف T، وهكذا. إذا تمكن طرف معترض من تحديد أجزاء من المفتاح بطريقة مستقلة عن الأجزاء الأخرى، فسيُعد ذلك اعتراضًا من قبيل فَرِّقْ تَسُدْ. للحيلولة دون ذلك، يُشترط تحقيق «التكامل»؛ وهو ما يعني أن يعتمد كل رقم ثنائي في النص المشفر على كل رقم ثنائي في المفتاح.

تشكِّل عملية الاختبار الإحصائي مكونًا أساسيًّا لتقييم شفرات الكتل فيما يتعلق بهذه الخواص الثلاث، فضلًا عن خواص أخرى، وهو ما يجعل من الاختبار الإحصائي أمرًا ضروريًّا لتحليل الشفرات المتناظرة.

تتمثل أسهل الطرق، وربما أكثرها منطقية، لتشفير رسالة طويلة بشفرة الكتل في تقسيم سلسلة الأرقام الثنائية إلى كتل مناسبة الطول، ثم تشفير كل كتلة على حدة وعلى نحو مستقل. عندما يجري تنفيذ ذلك، نطلق على هذه العملية استخدام نمط «كتاب الشفرات الإلكتروني». عند انتقاء مفتاح واستخدام نمط كتاب الشفرات الإلكتروني، ينتج عن الكتل المتناظرة في الرسالة كتل متناظرة في النص المشفَّر؛ وهو ما يعني أنه في حال حصول طرف معترض على الزوج المقابل من كتلة النص الأصلي ونص التشفير، سيستطيع تحديد موضع الكتلة في النص الأصلي في كل مكان في الرسالة من خلال إيجاد الأرقام الثنائية المقابلة في النص المشفر. يعتبر شيئًا مفيدًا للغاية إذن بالنسبة إلى الطرف المعترض أن يبدأ في بناء قاموس للكتل المقابلة المعروفة في النص الأصلي والنص المشفر. بالإضافة إلى ذلك، إذا كان ثمة كتل رسائل معروفة على نطاق واسع، فسيؤدي ذلك إلى ظهور كتل معروفة على نطاق واسع أيضًا في النص المشفَّر، وهو ما قد يؤدي إلى وقوع عملية الاعتراض نفسها القائمة على نمط التكرار التي استخدمناها في شفرات الاستبدال البسيط. يعتبر ذلك أحد دوافع انتقاء كتل كبيرة الطول نسبيًّا، مثل الكتل التي تشمل 64 رقمًا ثنائيًّا، تحتوي كل مجموعة منها على ثمانية رموز. ومع ذلك يوجد عيب محتمل في استخدام نمط كتاب الشفرات الإلكتروني، وهو ما سنبيِّنه من خلال مثال.
figure
شفرات الكتل وفق نمط كتاب الشفرات الإلكتروني.
هَبْ أن شفرة كتل غير معروفة ومفتاحًا غير معروف جرى استخدامهما لتشفير الرسالة التالية: The price is four thousand pounds (السعر أربعة آلاف جنيه)؛ لا توجد معلومات متوفرة سوى أن كتلة من كتل الرسالة تتألف من حرفين، وأنه حدث تجاهل لعلامات الترقيم، والمسافات، إلخ، وأن النص المشفَّر على النحو التالي:
هَبْ أن الطرف المعترض يعرف محتوى الرسالة؛ سيستطيع إذن استنباط أن تمثِّل TH، وأن تمثل ep، إلى آخره. ثم يتلاعب الطرف المعترض بالنص المشفَّر بحيث لا يجري تلقي سوى الكتل التالية: . ويستخدم الطرف المستقبل خوارزمية فك التشفير من خلال المفتاح الصحيح في فك شفرة النص المشفَّر الذي يتلقاه ليحصل على الآتي: The price is four pounds (السعر أربعة جنيهات). بما أن عملية فك التشفير نجحت وصار للرسالة معنًى، فلن يشك الطرف المتلقي في أن النص المشفَّر جرى التلاعب به؛ ومن ثَمَّ سيفترض صحة السعر.

يمكن التخلص من هذه المخاطر المحتملة في استخدام شفرة الكتل وفق نمط كتاب الشفرات الإلكتروني من خلال جعل عملية التشفير لكل كتلة مفردة على حدة تعتمد على جميع الكتل التي تسبقها في الرسالة. في حال تنفيذ ذلك، فإن الكتل المتشابهة في الرسالة ستعطي على نحو شبه مؤكد كتلًا متشابهة في النص المشفَّر، وسيؤدي التلاعب في النص المشفَّر إلى رسائل لا معنَى لها بعد إجراء عملية فك التشفير. ثمة طريقتان قياسيتان لتحقيق ذلك؛ ألا وهما، نمط «استجابة الشفرات» ونمط «تسلسل شفرات الكتل»، اللذان يجري الحديث عنهما لاحقًا.

نذكر مثالًا بسيطًا لبيان طريقة عمل شفرات الكتل وفق نمط كتاب الشفرات الإلكتروني. الخوارزمية المستخدمة هنا ضعيفة. في المثال الذي نذكره، يبلغ طول كتل النص الأصلي، وكتل نص التشفير، والمفاتيح جميعها 4 أرقام ثنائية. نستخدم التمثيل السادس عشر للتعبير عن الكتل. بالنسبة إلى المفتاح K، يجري الحصول على كتلة النص المشفر C المقابلة لكتلة النص الأصلي M من خلال إجراء عملية إكس أو آر على M مع K ثم إجراء عملية تدوير للأرقام الثنائية لناتج موضعًا واحدًا إلى اليسار.
نشفر سلسلة الأرقام الثنائية للنص الأصلي:
التي تصبح A23A9 عند استخدام أسلوب التمثيل السادس عشر مع مفتاح . وتتم عملية التشفير على النحو التالي:
تذكر أننا نستخدم التمثيل السادس عشر؛ لذا، بالنسبة للكتلة الأولى و ؛ ومن ثَمَّ، . إذا أجرينا الآن عملية التدوير فسنجد أن كتلة النص المشفر هي 0010، التي تساوي 2 وفق التمثيل السادس عشر.
كذلك الحال بالنسبة للكتلة الثانية، في حال و ؛ ومن ثَمَّ، ، ؛ ومن ثَمَّ . إذا أجرينا الآن عملية التدوير على رقم 1001، فسنجد أن كتلة النص المشفر تساوي 3 وفق التمثيل السادس عشر.
مع تكرار هذه العملية الحسابية نجد أن الرسالة هي A23A9 ومع استخدام شفرتنا وفق نمط كتاب الشفرات الإلكتروني في حال ، يكون النص المشفَّر هو 23124.

تتمثل الملاحظة البديهية هنا في أن الكتل المتكررة في الرسالة تؤدي إلى كتل متكررة في النص المشفَّر.

(٥) دوال الاختزال

حتى الآن، ركَّزنا على خوارزميات التشفير التي يمكن استخدامها لتوفير السرية. تحظى هذه الخوارزميات بخاصية أساسية تتمثل في قابليتها لإجراء عمليات عكسية؛ وهو ما يعني أنه في حال معرفة المفتاح المناسب، يصبح من الممكن إعادة بناء رسالة النص الأصلي عبر النص المشفَّر. ومع ذلك يوجد حالات عديدة يجري فيها استخدام التشفير، لكن دون الحاجة إلى توفر القدرة على استنباط محتوى «الرسالة» الأصلية من صيغتها المشفرة. في حقيقة الأمر، ربما يوجد شرط يتطلب عدم إمكانية إجراء ذلك. نضرب مثالًا على ذلك، وهو حماية كلمات المرور في أحد أنظمة الكمبيوتر. يتلقى المستخدمون تعليمات بالحفاظ على سرية كلمات مرورهم؛ ومن ثَمَّ يصبح من المنطق بمكان افتراض أن النظام أيضًا يحاول ضمان هذه السرية. من هنا، متى ظهرت كلمات المرور في النظام، خاصةً في قاعدة البيانات المستخدمة في عملية التحقق، يجب تأمينها. ومع ذلك يتمثل الاشتراط هنا عادةً في القدرة على التحقق من صحة كلمة مرور جرى تسجيلها؛ ومن ثَمَّ ربما لا توجد حاجة إلى توفر القدرة على استنباط كلمة المرور من القيمة المخزَّنة.

هناك أيضًا العديد من الأمثلة في التشفير يجري فيها ضغط الرسائل الكبيرة إلى سلسلة قصيرة من الأرقام الثنائية (أقصر بكثير من طول الرسالة الأصلية). عندما يحدث ذلك، سيكون من الحتمي أن تُفضي أكثر من رسالة واحدة إلى نفس سلسلة الأرقام الثنائية الأقصر، وهذا تلقائيًّا يشير إلى أن عملية الضغط غير قابلة للعكس. يطلق على هذه الدوال اسم «دوال الاختزال» التي قد تتضمن أو لا تتضمن استخدامَ مفتاح تشفير، وذلك حسب التشفير المستخدم.

تتمثل الفكرة الأساسية لدوال الاختزال في أن قيمة التشفير المحوَّر الناتجة تمثل صورة مختصرة للرسالة الأصلية. وللقيمة الناتجة عن اختصار الرسالة الأصلية أسماء عدة؛ مثل «البصمة الرقمية»، و«مختصر الرسالة»، وبالطبع «قيمة التشفير المحوَّر». تتضمن عملية التشفير المحوَّر عددًا من التطبيقات؛ منها تحقيق تكامل البيانات واستخدامها كجزء من عملية التوقيع الرقمي.

بوجه عام، تقبل دوال الاختزال مُدخَلات بأي طول وتُنتِج مُخرَجات ثابتة الطول. إذا أنتج مُدخلان المخرج نفسه، نطلق على ذلك «صدام». مثلما أشرنا، يعتبر وجود صدام مسألة حتمية. من هنا، إذا أردنا تحديد رسالة ما تحديدًا دقيقًا من خلال بصمتها الرقمية، يجب انتقاء دالة الاختزال جيدًا لضمان استحالة اكتشاف حالات الصدام حتى في حال وجودها. يترتب على ذلك عدد من النتائج، تتمثل إحداها في ضرورة ارتفاع عدد قيم البصمات الرقمية الممكنة. لبيان السبب في ذلك، نذكر مثالًا بسيطًا للغاية. إذا كانت هناك ثمانية قيم محتملة فقط للبصمة الرقمية، فسيكون هناك احتمالٌ نسبته ١٢٫٥٪ في أن يكون لرسالتين اعتباطيتين نفسُ القيمة. بالإضافة إلى ذلك، يكون من المضمون اشتمال أي مجموعة تتألف من تسع رسائل أو أكثر على حالة صدام واحدة على الأقل.

(٦) أنظمة المفاتيح المعلنة

تناولنا حتى الآن الخوارزميات المتناظرة التي يشترك فيها الطرفان المرسل والمستقبل في معرفة المفتاح السري. ينطوي ذلك بطبيعة الحال على توفر الثقة بين الطرفين. قبل أواخر السبعينيات من القرن العشرين، كانت تلك هي فقط الخوارزميات المتوفرة.

تتمثل الفكرة الأساسية لنظام التشفير ذي المفتاح المعلن في أن كل طرف له يحظى «بمفتاح معلن» و«مفتاح سري» مناظر له. يجري انتقاء هذه المفاتيح بحيث يصير من المستحيل استنباط المفتاح السري من المفتاح المعلن. ويحتاج كلُّ مَن يرغب في استخدام هذا النظام لإرسال رسالة سرية إلى شخص آخر إلى الحصول على المفتاح المعلن لذلك الشخص واستخدامه في تشفير البيانات. ومن الضرورة بمكان، بطبيعة الحال، شعور طرفيِ المراسلة بالثقة في استخدام المفتاح المعلن الصحيح؛ لأنه في حال عدم تحقق ذلك، سيكون مالك المفتاح السري المناظر للمفتاح المعلن المستخدم، مقارنة بالطرف المستقبل، هو فقط من يستطيع فهم الرسالة. من هنا، على الرغم من عدم وجود حاجة إلى توزيع المفاتيح سرًّا، تحتاج جميع المفاتيح المعلنة إلى الحماية؛ وهو ما يعني ضرورة ضمان صحتها. من الجدير بالملاحظة أيضًا أنه في حال استخدام نظام المفاتيح المعلنة لتوفير السرية، بما أن مفتاح التشفير المعلن معروف على نطاق واسع كما يمكن لأي شخص استخدامه، لا يوفر النص المشفر أي طريقة يمكن من خلالها التحقق من هوية الطرف المرسل.

بالنسبة إلى نظام المفاتيح المعلنة، يعتبر كلٌّ مِن الخوارزمية ومفتاح التشفير معروفين (معلنين). وهكذا، يواجه الطرف المعترض مهمة محاولة استنتاج الرسالة من النص المشفَّر الذي جرى الحصول عليه من خلال أسلوب يعرفه معرفة تامة. بديهيًّا، يجب انتقاء عملية التشفير بعناية بالغة لضمان صعوبة مهمة الطرف المعترض. في المقابل، يجب عدم نسيان أن المتلقي الأصلي للرسالة يجب أن يمتلك القدرة على فك شفرة الرسالة بسهولة؛ لذا، يجب انتقاء عملية التشفير بحيث تيسِّر معرفة مفتاح فك التشفير عملية تحديد الرسالة من النص المشفَّر.

هذا مفهوم يصعب استيعابه. ثمة سؤال يُطرح كثيرًا وهو: «إذا كان الجميع يعرفون ما قمتَ به لتحديد النص المشفَّر، فلماذا إذن لا يفكون شفرة الرسالة؟» يساعد المثال غير الرياضي التالي عادةً في تقديم الإجابة.

هب أنك في غرفة مغلقة لا يوجد بها هاتف وقُدمت إليك نسخة ورقية من دليل الهاتف في لندن؛ إذا أعطاك أحد اسمًا وعنوانًا وسألك عن رقم هاتف صاحبهما، فستكون هذه مهمة سهلة. في المقابل، هب أن أحدهم أعطاك رقم هاتف عشوائيًّا وسألك عن اسم وعنوان صاحبه؛ تأكيدًا، هذه مهمة شاقة للغاية. لا يرجع السبب إلى عدم معرفتك بما يجب القيام به. فمن الناحية النظرية، قد تبدأ من الصفحة الأولى ثم تقرأ جميع الأرقام حتى تجد الرقم الصحيح. تكمن الصعوبة هنا في حجم المجهود المبذول؛ لذا، إذا نظرنا إلى «الاسم والعنوان» باعتبارهما الرسالة، وإلى «رقم الهاتف» باعتباره النص المشفَّر، وإلى «إيجاد رقم كذا» باعتباره عملية التشفير، فسنكون قد حققنا الهدف في حالة دليل الهاتف في لندن. من الأهمية بمكان الإشارة إلى أنه في حال تطبيق العملية نفسها على أدلة هاتف أصغر حجمًا، سيتمكن الطرف المعترض من إجراء عملية عكسية. بالإضافة إلى ذلك، لا يمكن التحديد على وجه الدقة عدد الأشخاص المطلوب قبل أن نشعر بأن لدينا أسبابًا قوية للادعاء بتحقيق الهدف. يتضمن دليل الهاتف في لندن أكثر من 750 ألف اسم، ونستطيع أن نقول ونحن مطمَئِنِّين إن 750 ألفًا يعتبر رقمًا ضخمًا في هذا السياق. بالنسبة إلى إحدى منشآت العمل التي لا تزيد فيها الأرقام الداخلية عن 100 رقم، يعتبر إجراء عملية عكسية لاستنباط عدد صحيح من بين قائمة الأرقام عملية سهلة على الأرجح. لكن ماذا عن دليل يشتمل على 5000 رقم؟

يوجد، بطبيعة الحال، مؤسسات معينة مثل خدمات الطوارئ التي تستطيع تحديد هوية مالكي أي أرقام هاتفية؛ إذ تمتلك هذه المؤسسات دليلًا مرتبًا ترتيبًا رقميًّا. نعيد فنؤكد مرة أخرى، لا يوجد ما يمنع من بناء أي شخص نسخته الخاصة بترتيب رقمي. ضخامة المهمة هي التي تضمن عدم نجاحه في مساعيه وفق الظروف التي حددناها. في المقابل، تصبح المهمة أسهل كثيرًا في حال امتلاك أحدهم نسخة إلكترونية من الدليل.

معظم خوارزميات المفاتيح المعلنة العملية عبارة عن شفرات كُتل تتعامل مع الرسالة باعتبارها سلسلة من الأعداد الصحيحة الكبيرة، وتعتمد على صعوبة حل مسألة رياضية معينة لضمان تحقيق الأمن. ابتكر أكثر هذه الأنظمة شهرةً رون ريفست، وآدي شامير، ولين أدلمان في عام ١٩٧٨، وهو النظام المعرف اختصارًا باسم آر إس إيه. في هذا النظام، المسألةُ الرياضية المصاحبة للنظام هي عملية تحليل الأعداد إلى عواملها الأولية؛ حيث يوجد مفتاح معلن معروف N، وهو ناتج ضرب عددين أوليين قيمتاهما سريتان. هذان العددان في غاية الأهمية؛ حيث إن أي شخص يعرف قيمتيهما يستطيع حساب المفتاح السري من خلال المفتاح المعلن. لذا، يجب أن يكون العدد N، الذي يحدد طول كتلة الرسالة، كبيرًا بما يكفي بحيث لا يستطيع أي طرف معترض استنباط العددين الأوليين؛ بمعنى أنه لا يستطيع تحليل العدد N إلى عوامله الأولية. بداهةً، إذا كان العدد N صغيرًا، فسيستطيع أي شخص تحديد العددين الأوليين. كمثال بسيط على ذلك، افترض أنَّ N = 15؛ ومن ثَمَّ فالعددان الأوليَّان هما 3 و5. لكن يُعتقد أن اكتشاف العددين الأوليين مسألة غير ممكنة في حال كان العدد N كبيرًا بما يكفي. نناقش صعوبة تحليل الأعداد الكبيرة إلى عواملها الأولية في الفصل السابع. حاليًّا، نكتفي بالإشارة إلى أن العدد N يحدِّد طول كلٍّ مِن الكتلة والمفتاح.
يعني ذلك أن أطوال المفاتيح والكتل هي على الأرجح أكبر بكثير مما في حالة الشفرات المتناظرة. ففي حالة الشفرات المتناظرة، تعتبر الأطوال النموذجية للكتل هي 64 أو 128 رقمًا ثنائيًّا، فيما تبلغ في حالة نظام آر إس إيه 640 رقمًا ثنائيًّا على الأقل، كما لا تعتبر الكتل التي يبلغ طولها 1024 أو 2048 شائعة. من النتائج المترتبة أيضًا على استخدام نظام آر إس إيه أن عمليات التشفير وفك التشفير تتضمن إجراء العديد من الحسابات باستخدام أعداد كبيرة؛ وهو ما يعني بطء أنظمة الشفرات هذه مقارنةً بمعظم الخوارزميات المتناظرة. بناءً عليه، غالبًا ما لا تُستخدم هذه الأنظمة في تشفير كميات هائلة من البيانات، وإنما تستخدم على الأرجح في التوقيعات الرقمية أو كمفاتيح تشفير لمفاتيح أخرى لتوزيع أو تخزين مفاتيح الخوارزميات المتناظرة.

أما خوارزمية المفتاح المعلن الأخرى المستخدمة على نطاق واسع فهي «الجَمَل» (نسبة إلى مبتكرها طاهر الجمل) التي تشكِّل أساس «معيار التوقيع الرقمي» الأمريكي «دي إس إس». بالنسبة إلى خوارزمية الجمل، تساوي أطوال المفاتيح أطوال نظيراتها تقريبًا في خوارزمية آر إس أيه، لكن الأمن فيها يعتمد على صعوبة حل مسألة رياضية مختلفة تُعرف باسم مسألة اللوغاريتم المتقطِّع. لكن نظام الجمل يمتلك خواص محددة لا تجعله يصلح في إجراء عمليات التشفير.

جرى تطوير المبادئ والأساليب القياسية لنظام تشفير المفاتيح المعلن في أوائل السبعينيات من القرن العشرين بواسطة جيمس إليس، وكليفورد كوكس، ومالكوم وليامسون في مجموعة أمن الاتصالات-الإلكترونيات التابعة لحكومة المملكة المتحدة. ومع ذلك كان هذا الجهد مدرجًا كمعلومات سرية غير مصرح بالاطلاع عليها لأكثر من عقدين، ولم تُعلَن هذه المعلومات إلا بعد ظهور أبحاث تشفير المفاتيح المعلنة الأولى بوقت طويل، بعدها تطورت أساليب التشفير غير المتناظر تطورًا كبيرًا.

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٤