الخوارزميات الحديثة
(١) مقدمة
خلال الفصل الثالث، أكَّدْنا على أن الأمثلة التي عرضناها لا تشير إلى الممارسات الحالية، وأن نظام خوارزميات التشفير الحديثة تَستخدم في الأغلب البتات (الأرقام الثنائية) بدلًا من استبدال الأحرف في الأمثلة التي عرضناها. في هذا الفصل، نناقش الخوارزميات الحديثة. وبما أنها أكثر تعقيدًا من أمثلة الخوارزميات التي سقناها في الفصل الثالث، فإننا لا نذكر أيَّ أمثلة محددة بالتفصيل، لكننا نركِّز على الأساليب العامة المستخدمة في تصميمها.
(٢) سلاسل الرقم الثنائي (البت)
مثلما أشرنا سابقًا، لا تتضمن الشفرات الحديثة عملية استبدال للأحرف. بدلًا من ذلك، عادة ما يَستخدم التشفير الحديث أنظمة ترميز لتحويل الرسائل إلى سلسلة متتالية من الأرقام الثنائية (بتات)؛ أي من أصفار وآحاد. ويعد نظام إيه إس سي آي آي (نظام الترميز القياسي الأمريكي لتبادل المعلومات، آسكي) على الأرجح أكثر أنظمة التشفير الحديثة شيوعًا. بعد ذلك، يجري تشفير سلسلة الأرقام الثنائية هذه التي تمثِّل النص الأصلي للحصول على النص المشفر في صورة سلسلة الأرقام الثنائية.
من الأهمية بمكان أن ندرك أن سلسلة الأرقام الثنائية نفسها يمكن كتابتها بطرق مختلفة، كما يتعين علينا أن ندرك أن طريقة كتابتها تعتمد على طول الكتل التي جرى تقسيمها إليها.
هناك طريقة أخرى شائعة لكتابة سلسلة الأرقام الثنائية؛ وتتمثل في استخدام «التمثيل السادس العشر». بالنسبة إلى التمثيل السادس عشر، تُقسَّم السلسلة إلى مجموعات من أربعة أعداد تمثَّل كالآتي:
(٣) شفرات التدفق
يستخدم الكثير من المؤلفين هذا المصطلح بطريقة مختلفة نوعًا ما. يتحدث الكثيرون عن شفرات تدفق تعتمد على الكلمات أو الرموز. في هذه الحالة يجري تشفير الرسالة كلمة كلمة (أو رمزًا رمزًا)، ويجري تحديد قاعدة التشفير لكل كلمة (رمز) من خلال موضعها في الرسالة. تتوافق شفرة فيجنر، التي جرى مناقشتها في الفصل الثالث، ودفتر المرة الواحدة مع هذا التعريف. ربما كان أكثر النماذج التاريخية شهرةً هو شفرة إنيجما. في المقابل، يتمثَّل أكثر الاستخدامات الحديثة شيوعًا لمصطلح «شفرة تدفق» — وهو الاستخدام الذي نتبناه هنا — في أنها شفرة يجري تشفير النص الأصلي فيها رقمًا رقمًا. بداهةً، كل ما يمكن أن يحدث لأي رقم ثنائي هو تغيُّر قيمته إلى القيمة البديلة أو عدم تغيرها. وبما أن أي رقم ثنائي يمكن أن يكون له قيمة واحدة من قيمتين اثنتين فقط، فإن تغيير أي رقم ثنائي يعني تبديله بقيمة أخرى. بالإضافة إلى ذلك، إذا جرى تغيير رقم ثنائي مرتين، فإنه يعود إلى قيمته الأصلية.
إذا كان الطرف المعترض يعلم أن شفرة تدفق جرى استخدامها، فسينحصر جهده إذنْ في تحديد مواضع الأرقام الثنائية التي جرى تغييرها، ثم تغييرها إلى قيمها الأصلية. إذا كان ثمة نمط سهل التتبع يمكن من خلاله تحديد الأرقام التي جرى تغييرها، فربما ستصبح مهمة الطرف المعترض سهلة. من هنا، بينما يجب ألا تكون مواضع الأرقام الثنائية التي جرى تغييرها قابلة للتنبؤ من قبل الطرف المعترض، بل يجب أن يتمكن الطرف المستقبل دومًا من تحديدها بسهولة.
تعتبر شفرات التدفق أحد التنويعات العملية الأساسية لشفرة فرنام باستخدام مفاتيح صغيرة. تتمثل المشكلة في دفتر المرة الواحدة في أنه بما أن مفتاح التدفق يكون عشوائيًّا، فمن المستحيل توليد نفس مفتاح التدفق آنيًّا على طرفَيِ الإرسال والاستقبال، وهو ما يجعلها تتطلب قناة ثانية آمنة لتوزيع المفاتيح، وهذه القناة تحمل من المحتوى ما يساوي محتوى قناة الاتصالات الرئيسية. وتجري نفس الاشتراطات في حالة شفرات التدفق مثلما هو الحال مع أي قناة آمنة للمفتاح، ولكن في ظل وجود محتوى معلومات أقل بكثير.
تعتبر عملية تصميم مولدات لسلسلة مفتاح تدفق جيدة عملية في غاية الصعوبة، وهو ما يتطلب معرفة بمستوًى متقدم من الرياضيات. بالإضافة إلى ذلك، هناك حاجة إلى إجراء اختبارات إحصائية مكثفة لنضمن — إن أمكن — أن ناتج المولد لا يمكن تمييزه عن سلسلة عشوائية. على الرغم من ذلك، يوجد عدد من التطبيقات تُعتبر شفرات التدفق هي الأكثر ملائمة لها. يتمثل أحد أسباب ذلك في أنه في حال تلقِّي رقم ثنائي في النص المشفر على نحو غير صحيح، فإنه سيكون هناك رقم ثنائي واحد فقط في فك الشفرة غير صحيح؛ حيث يقابل كلَّ عدد ثنائي في النص الأصلي رقمٌ ثنائي واحد فقط في النص المشفر. لا ينطبق ذلك على شفرات الكتل؛ حيث يؤدي تلقِّي رقم واحد فقط غير صحيح في النص المشفر إلى عدم مصداقية الكتلة بعد فك تشفيرها. عدم «انتشار الخطأ» هذا عن طريق خوارزمية فك التشفير أمر ضروري إذا كان يجري نقل النص المشفر عبر قناة مشوشة؛ ومن ثَمَّ، تُستخدم شفرات التدفق في تشفير الأحاديث الممثلة رقميًّا مثل شبكات الهواتف المحمول بنظام جي إس إم. المميزات الأخرى لشفرات التدفق التي تتميز بها عن شفرات الكتل تشمل السرعة وسهولة التنفيذ.
(٤) نظام شفرات الكتل (نمط كتاب الشفرات الإلكتروني)
في حالة «شفرة الكتل»، يتم تقسيم سلسلة الأرقام الثنائية إلى كتل أو مجموعات بطول محدد. تطبَّق خوارزمية التشفير على هذه الكتل لتوليد كتل نص مشفَّر لها نفس الطول وذلك في حال معظم الشفرات المتناظرة.
هناك العديد من التطبيقات لشفرات الكتل. ويمكن الاستعانة بها لتوفير السرية، أو سلامة البيانات، أو التحقق من هوية المستخدمين، بل يمكن استخدامها في توفير مولد مفتاح التدفق في شفرات التدفق. ومثلما هو الحال مع شفرات التدفق، من الصعوبة بمكان إجراء عملية تقييم محددة لدرجة الأمن التي يحققها هذا النظام. بداهةً، مثلما رأينا، يمثِّل طول المفتاح حدًّا علويًّا لقوة خوارزمية التشفير. لكن مثلما رأينا في حالة نظام شفرات الاستبدال البسيط، لا يمثِّل توفر عدد كبير من المفاتيح ضمانة لقوة الشفرة. ويقال إن الخوارزمية المتناظرة «مصممة جيدًا» في حال ما إذا كانت عملية البحث الشاملة هي أبسط صور الاعتراض. بطبيعة الحال، يمكن أن تكون الخوارزمية مصممة جيدًا لكنها سهلة الكسر إذا كان عدد المفاتيح صغيرًا جدًّا.
يعتبر تصميم خوارزميات تشفير قوية مهارةً متخصصة. بيد أنه ثمة عدد من الخواص البديهية يجب أن تتوفر في شفرة الكتل القوية، وهي خواص يسهُل بيانها. إذا حصل طرف معترض على زوج من نص أصلي معروف ونص مشفر لمفتاح غير معروف، فلن يمكِّنه ذلك بالضرورة من استنباط النص المشفر المقابل لأي نص أصلي آخر. على سبيل المثال، لا تمتلك الخوارزمية التي يتغير فيها النص الأصلي بطريقة معروفة بحيث يؤدي إلى إحداث تغيير متوقع في النص المشفر، مثل هذه الخاصية. يمثل ذلك أحد أسباب اشتراط توفر «خاصية الانتشار» في نظام شفرات الكتل، وهي الخاصية التي تتمثل في أن إجراء أي تغيير بسيط في النص الأصلي، ربما — على سبيل المثال — من خلال تغيير موضع أو موضعين، سيؤدي إلى حدوث تغيير غير متوقع في النص المشفر.
ناقَشْنا من قبل مخاطر عمليات البحث الشاملة للمفتاح. خلال إجراء مثل هذا النوع من عمليات البحث، قد يجرِّب الطرف المعترض مفتاحًا لا يختلف عن القيمة الصحيحة للمفتاح الحقيقي إلا في عدد محدود من المواضع. إذا كان ثمة دليل على أن الطرف المعترض جرَّب — على سبيل المثال — مفتاحًا لا يتفق مع المفتاح الصحيح في موضع واحد فقط، فقد يوقف الطرف المعترض عملية البحث ثم يكتفي بتغيير كل موضع لهذا المفتاح الخطأ على التوالي، وهو ما سيقلل كثيرًا من الوقت اللازم لاكتشاف المفتاح، وهذا أمر آخر غير مرغوب فيه. بناءً عليه، يجب أن تتوفر في شفرات الكتل «خاصية التشويش» التي تتمثل في أنه في حال محاولة طرف معترض إجراء عملية بحث شاملة عن المفتاح، يجب ألا تتوفر أي إشارة إلى «الاقتراب» من المفتاح الصحيح.
تشكِّل عملية الاختبار الإحصائي مكونًا أساسيًّا لتقييم شفرات الكتل فيما يتعلق بهذه الخواص الثلاث، فضلًا عن خواص أخرى، وهو ما يجعل من الاختبار الإحصائي أمرًا ضروريًّا لتحليل الشفرات المتناظرة.
يمكن التخلص من هذه المخاطر المحتملة في استخدام شفرة الكتل وفق نمط كتاب الشفرات الإلكتروني من خلال جعل عملية التشفير لكل كتلة مفردة على حدة تعتمد على جميع الكتل التي تسبقها في الرسالة. في حال تنفيذ ذلك، فإن الكتل المتشابهة في الرسالة ستعطي على نحو شبه مؤكد كتلًا متشابهة في النص المشفَّر، وسيؤدي التلاعب في النص المشفَّر إلى رسائل لا معنَى لها بعد إجراء عملية فك التشفير. ثمة طريقتان قياسيتان لتحقيق ذلك؛ ألا وهما، نمط «استجابة الشفرات» ونمط «تسلسل شفرات الكتل»، اللذان يجري الحديث عنهما لاحقًا.
تتمثل الملاحظة البديهية هنا في أن الكتل المتكررة في الرسالة تؤدي إلى كتل متكررة في النص المشفَّر.
(٥) دوال الاختزال
حتى الآن، ركَّزنا على خوارزميات التشفير التي يمكن استخدامها لتوفير السرية. تحظى هذه الخوارزميات بخاصية أساسية تتمثل في قابليتها لإجراء عمليات عكسية؛ وهو ما يعني أنه في حال معرفة المفتاح المناسب، يصبح من الممكن إعادة بناء رسالة النص الأصلي عبر النص المشفَّر. ومع ذلك يوجد حالات عديدة يجري فيها استخدام التشفير، لكن دون الحاجة إلى توفر القدرة على استنباط محتوى «الرسالة» الأصلية من صيغتها المشفرة. في حقيقة الأمر، ربما يوجد شرط يتطلب عدم إمكانية إجراء ذلك. نضرب مثالًا على ذلك، وهو حماية كلمات المرور في أحد أنظمة الكمبيوتر. يتلقى المستخدمون تعليمات بالحفاظ على سرية كلمات مرورهم؛ ومن ثَمَّ يصبح من المنطق بمكان افتراض أن النظام أيضًا يحاول ضمان هذه السرية. من هنا، متى ظهرت كلمات المرور في النظام، خاصةً في قاعدة البيانات المستخدمة في عملية التحقق، يجب تأمينها. ومع ذلك يتمثل الاشتراط هنا عادةً في القدرة على التحقق من صحة كلمة مرور جرى تسجيلها؛ ومن ثَمَّ ربما لا توجد حاجة إلى توفر القدرة على استنباط كلمة المرور من القيمة المخزَّنة.
هناك أيضًا العديد من الأمثلة في التشفير يجري فيها ضغط الرسائل الكبيرة إلى سلسلة قصيرة من الأرقام الثنائية (أقصر بكثير من طول الرسالة الأصلية). عندما يحدث ذلك، سيكون من الحتمي أن تُفضي أكثر من رسالة واحدة إلى نفس سلسلة الأرقام الثنائية الأقصر، وهذا تلقائيًّا يشير إلى أن عملية الضغط غير قابلة للعكس. يطلق على هذه الدوال اسم «دوال الاختزال» التي قد تتضمن أو لا تتضمن استخدامَ مفتاح تشفير، وذلك حسب التشفير المستخدم.
تتمثل الفكرة الأساسية لدوال الاختزال في أن قيمة التشفير المحوَّر الناتجة تمثل صورة مختصرة للرسالة الأصلية. وللقيمة الناتجة عن اختصار الرسالة الأصلية أسماء عدة؛ مثل «البصمة الرقمية»، و«مختصر الرسالة»، وبالطبع «قيمة التشفير المحوَّر». تتضمن عملية التشفير المحوَّر عددًا من التطبيقات؛ منها تحقيق تكامل البيانات واستخدامها كجزء من عملية التوقيع الرقمي.
بوجه عام، تقبل دوال الاختزال مُدخَلات بأي طول وتُنتِج مُخرَجات ثابتة الطول. إذا أنتج مُدخلان المخرج نفسه، نطلق على ذلك «صدام». مثلما أشرنا، يعتبر وجود صدام مسألة حتمية. من هنا، إذا أردنا تحديد رسالة ما تحديدًا دقيقًا من خلال بصمتها الرقمية، يجب انتقاء دالة الاختزال جيدًا لضمان استحالة اكتشاف حالات الصدام حتى في حال وجودها. يترتب على ذلك عدد من النتائج، تتمثل إحداها في ضرورة ارتفاع عدد قيم البصمات الرقمية الممكنة. لبيان السبب في ذلك، نذكر مثالًا بسيطًا للغاية. إذا كانت هناك ثمانية قيم محتملة فقط للبصمة الرقمية، فسيكون هناك احتمالٌ نسبته ١٢٫٥٪ في أن يكون لرسالتين اعتباطيتين نفسُ القيمة. بالإضافة إلى ذلك، يكون من المضمون اشتمال أي مجموعة تتألف من تسع رسائل أو أكثر على حالة صدام واحدة على الأقل.
(٦) أنظمة المفاتيح المعلنة
تناولنا حتى الآن الخوارزميات المتناظرة التي يشترك فيها الطرفان المرسل والمستقبل في معرفة المفتاح السري. ينطوي ذلك بطبيعة الحال على توفر الثقة بين الطرفين. قبل أواخر السبعينيات من القرن العشرين، كانت تلك هي فقط الخوارزميات المتوفرة.
تتمثل الفكرة الأساسية لنظام التشفير ذي المفتاح المعلن في أن كل طرف له يحظى «بمفتاح معلن» و«مفتاح سري» مناظر له. يجري انتقاء هذه المفاتيح بحيث يصير من المستحيل استنباط المفتاح السري من المفتاح المعلن. ويحتاج كلُّ مَن يرغب في استخدام هذا النظام لإرسال رسالة سرية إلى شخص آخر إلى الحصول على المفتاح المعلن لذلك الشخص واستخدامه في تشفير البيانات. ومن الضرورة بمكان، بطبيعة الحال، شعور طرفيِ المراسلة بالثقة في استخدام المفتاح المعلن الصحيح؛ لأنه في حال عدم تحقق ذلك، سيكون مالك المفتاح السري المناظر للمفتاح المعلن المستخدم، مقارنة بالطرف المستقبل، هو فقط من يستطيع فهم الرسالة. من هنا، على الرغم من عدم وجود حاجة إلى توزيع المفاتيح سرًّا، تحتاج جميع المفاتيح المعلنة إلى الحماية؛ وهو ما يعني ضرورة ضمان صحتها. من الجدير بالملاحظة أيضًا أنه في حال استخدام نظام المفاتيح المعلنة لتوفير السرية، بما أن مفتاح التشفير المعلن معروف على نطاق واسع كما يمكن لأي شخص استخدامه، لا يوفر النص المشفر أي طريقة يمكن من خلالها التحقق من هوية الطرف المرسل.
بالنسبة إلى نظام المفاتيح المعلنة، يعتبر كلٌّ مِن الخوارزمية ومفتاح التشفير معروفين (معلنين). وهكذا، يواجه الطرف المعترض مهمة محاولة استنتاج الرسالة من النص المشفَّر الذي جرى الحصول عليه من خلال أسلوب يعرفه معرفة تامة. بديهيًّا، يجب انتقاء عملية التشفير بعناية بالغة لضمان صعوبة مهمة الطرف المعترض. في المقابل، يجب عدم نسيان أن المتلقي الأصلي للرسالة يجب أن يمتلك القدرة على فك شفرة الرسالة بسهولة؛ لذا، يجب انتقاء عملية التشفير بحيث تيسِّر معرفة مفتاح فك التشفير عملية تحديد الرسالة من النص المشفَّر.
هذا مفهوم يصعب استيعابه. ثمة سؤال يُطرح كثيرًا وهو: «إذا كان الجميع يعرفون ما قمتَ به لتحديد النص المشفَّر، فلماذا إذن لا يفكون شفرة الرسالة؟» يساعد المثال غير الرياضي التالي عادةً في تقديم الإجابة.
يوجد، بطبيعة الحال، مؤسسات معينة مثل خدمات الطوارئ التي تستطيع تحديد هوية مالكي أي أرقام هاتفية؛ إذ تمتلك هذه المؤسسات دليلًا مرتبًا ترتيبًا رقميًّا. نعيد فنؤكد مرة أخرى، لا يوجد ما يمنع من بناء أي شخص نسخته الخاصة بترتيب رقمي. ضخامة المهمة هي التي تضمن عدم نجاحه في مساعيه وفق الظروف التي حددناها. في المقابل، تصبح المهمة أسهل كثيرًا في حال امتلاك أحدهم نسخة إلكترونية من الدليل.
أما خوارزمية المفتاح المعلن الأخرى المستخدمة على نطاق واسع فهي «الجَمَل» (نسبة إلى مبتكرها طاهر الجمل) التي تشكِّل أساس «معيار التوقيع الرقمي» الأمريكي «دي إس إس». بالنسبة إلى خوارزمية الجمل، تساوي أطوال المفاتيح أطوال نظيراتها تقريبًا في خوارزمية آر إس أيه، لكن الأمن فيها يعتمد على صعوبة حل مسألة رياضية مختلفة تُعرف باسم مسألة اللوغاريتم المتقطِّع. لكن نظام الجمل يمتلك خواص محددة لا تجعله يصلح في إجراء عمليات التشفير.
جرى تطوير المبادئ والأساليب القياسية لنظام تشفير المفاتيح المعلن في أوائل السبعينيات من القرن العشرين بواسطة جيمس إليس، وكليفورد كوكس، ومالكوم وليامسون في مجموعة أمن الاتصالات-الإلكترونيات التابعة لحكومة المملكة المتحدة. ومع ذلك كان هذا الجهد مدرجًا كمعلومات سرية غير مصرح بالاطلاع عليها لأكثر من عقدين، ولم تُعلَن هذه المعلومات إلا بعد ظهور أبحاث تشفير المفاتيح المعلنة الأولى بوقت طويل، بعدها تطورت أساليب التشفير غير المتناظر تطورًا كبيرًا.