التشفير والتجزئة. الفرق والتطبيق. ما هي النقاط المهمة في وظائف التجزئة المشفرة؟ ما هي متطلبات وظائف التجزئة التشفير؟

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

ما هو؟

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

صفات

دعونا ننظر في الخصائص الرئيسية للخوارزميات قيد الدراسة. فيما بينها:

  • وجود خوارزميات داخلية لتحويل البيانات ذات الطول الأصلي إلى تسلسل أقصر من الأحرف؛
  • مفتوحة للتحقق التشفير.
  • وجود الخوارزميات التي تسمح لك بتشفير البيانات الأصلية بشكل موثوق؛
  • القدرة على التكيف مع فك التشفير عند استخدام قوة حاسوبية صغيرة.

تشمل الخصائص المهمة الأخرى لوظيفة التجزئة ما يلي:

  • القدرة على معالجة صفائف البيانات الأولية ذات الطول التعسفي؛
  • إنشاء كتل مجزأة ذات طول ثابت؛
  • توزيع قيم الدالة عند الإخراج بالتساوي.

تفترض الخوارزميات المدروسة أيضًا حساسية للبيانات المدخلة على مستوى 1 بت. وهذا يعني أنه حتى لو تغير حرف واحد على الأقل نسبيًا في المستند المصدر، فإن وظيفة التجزئة ستبدو مختلفة.

متطلبات وظائف التجزئة

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

يمكن تحقيق المتطلبات المذكورة التي يجب أن تلبيها خوارزمية دالة التجزئة بشكل أساسي من خلال استخدام أساليب رياضية معقدة.

بناء

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

في أي هيكل يمكن تمثيل دالة التجزئة المستخدمة لمثل هذه الأغراض؟ مثال على تكوينها يمكن أن يكون على النحو التالي: H (hash، أي hash) = f (T (نص)، H1)، حيث H1 هي خوارزمية معالجة النص T. هذه الوظيفة تقوم بتجزئة T بطريقة بدون معرفة من H1، يمكن فتحه كملف واحد كامل سيكون مستحيلًا تقريبًا.

استخدام وظائف التجزئة في الممارسة العملية: تنزيل الملفات

دعونا الآن ندرس بمزيد من التفصيل خيارات استخدام وظائف التجزئة في الممارسة العملية. يمكن استخدام الخوارزميات المناسبة عند كتابة البرامج النصية لتنزيل الملفات من خوادم الإنترنت.

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

وظيفة التجزئة والتوقيع الرقمي

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

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

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

التحقق من كلمات المرور

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

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

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

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

تصادمات دالة التجزئة

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

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

تاريخ المظهر

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

معايير التجزئة الشعبية

دعونا الآن نفكر في أي دالة تجزئة للمعايير الشائعة يمكن تمثيلها. ومن بين هذه اتفاقية حقوق الطفل. هذه الخوارزمية عبارة عن رمز دوري، يُسمى أيضًا المجموع الاختباري. يتميز هذا المعيار بالبساطة والعالمية في نفس الوقت - حيث يمكن استخدامه لتجزئة أكبر نطاق من البيانات. تعد CRC واحدة من أكثر الخوارزميات غير المشفرة شيوعًا.

وفي المقابل، تُستخدم معايير MD4 وMD5 على نطاق واسع في التشفير. خوارزمية تشفير شائعة أخرى هي SHA-1. على وجه الخصوص، يتميز بحجم تجزئة يبلغ 160 بت، وهو أكبر من MD5 - يدعم هذا المعيار 128 بت. هناك معايير روسية تنظم استخدام وظائف التجزئة - GOST R 34.11-94، وكذلك GOST R 34.11-2012، الذي حل محلها. تجدر الإشارة إلى أن قيمة التجزئة التي توفرها الخوارزميات المعتمدة في الاتحاد الروسي هي 256 بت.

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

ميزات خوارزمية SHA

غالبًا ما يتم استخدام وظائف التجزئة المستندة إلى معيار SHA في تطوير أدوات التوقيع الرقمي لمستندات DSA. كما ذكرنا أعلاه، تدعم خوارزمية SHA تجزئة تبلغ 160 بت (مما يوفر ما يسمى "ملخصًا" لتسلسل الأحرف). في البداية، يقوم المعيار قيد النظر بتقسيم مجموعة البيانات إلى كتل مكونة من 512 بت. إذا لزم الأمر، إذا لم يصل طول الكتلة الأخيرة إلى الرقم المحدد، فسيتم استكمال بنية الملف بالرقم 1 والعدد المطلوب من الأصفار. يوجد أيضًا في نهاية الكتلة المقابلة رمز يعمل على إصلاح طول الرسالة. تستخدم الخوارزمية قيد النظر 80 وظيفة منطقية، يتم من خلالها معالجة 3 كلمات مقدمة في 32 بت. يوفر معيار SHA أيضًا استخدام 4 ثوابت.

مقارنة خوارزميات التجزئة

دعونا ندرس كيفية ارتباط خصائص وظائف التجزئة المتعلقة بمعايير مختلفة، باستخدام مثال مقارنة خصائص المعيار الروسي GOST R 34.11-94 وSHA الأمريكي، الذي درسناه أعلاه. بادئ ذي بدء، تجدر الإشارة إلى أن الخوارزمية التي تم تطويرها في الاتحاد الروسي تفترض تنفيذ 4 عمليات تشفير لكل دورة واحدة. وهذا يتوافق مع 128 طلقة. في المقابل، خلال جولة واحدة، عند استخدام SHA، من المتوقع حساب حوالي 20 أمرًا، في حين أن هناك 80 جولة في المجموع، وبالتالي، فإن استخدام SHA يسمح بمعالجة 512 بت من بيانات المصدر خلال دورة واحدة. بينما المعيار الروسي قادر على تنفيذ العمليات في دورة مكونة من 256 بت من البيانات.

تفاصيل أحدث الخوارزمية الروسية

لقد لاحظنا أعلاه أنه تم استبدال معيار GOST R 34.11-94 بمعيار أحدث - GOST R 34.11-2012 "Stribog". دعونا نستكشف تفاصيله بمزيد من التفصيل.

باستخدام هذا المعيار، يمكن تنفيذ وظائف تجزئة التشفير، كما في حالة الخوارزميات التي تمت مناقشتها أعلاه. تجدر الإشارة إلى أن أحدث المعايير الروسية تدعم كتلة بيانات الإدخال 512 بت. المزايا الرئيسية لـ GOST R 34.11-2012:

  • مستوى عال من الأمان ضد كسر الرموز؛
  • الموثوقية، مدعومة باستخدام التصاميم التي أثبتت جدواها؛
  • الحساب السريع لوظيفة التجزئة، وغياب التحولات في الخوارزمية التي تعقد تصميم الوظيفة وتبطئ العملية الحسابية.

إن المزايا الملحوظة لمعيار التشفير الروسي الجديد تجعل من الممكن استخدامه عند تنظيم تدفق المستندات الذي يلبي المعايير الأكثر صرامة المنصوص عليها في أحكام التشريعات التنظيمية.

تفاصيل وظائف التجزئة التشفير

دعونا نلقي نظرة فاحصة على كيفية استخدام أنواع الخوارزميات التي نستكشفها في مجال التشفير. الشرط الرئيسي للوظائف المقابلة هو مقاومة الاصطدامات، والتي ذكرناها أعلاه. أي أنه لا ينبغي إنشاء قيم دالة تجزئة مكررة إذا كانت هذه القيم موجودة بالفعل في بنية الخوارزمية المجاورة. يجب أن تستوفي وظائف التشفير أيضًا المعايير الأخرى المذكورة أعلاه. من الواضح أن هناك دائمًا بعض الإمكانية النظرية لاستعادة الملف الأصلي استنادًا إلى التجزئة، خاصة في حالة توفر أداة حاسوبية قوية. ومع ذلك، من المتوقع أن يتم التقليل من مثل هذا السيناريو بفضل خوارزميات التشفير الموثوقة. وبالتالي، سيكون من الصعب جدًا حساب دالة التجزئة إذا كانت قوتها الحسابية تتوافق مع الصيغة 2^(n/2).

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

مخططات تكرارية

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

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

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

في بعض الحالات، يمكن استخدام ما يسمى بخوارزميات التمرير المتعدد في عملية معالجة البيانات ضمن المخطط التكراري. إنهم يقترحون تشكيل "تأثير جليدي" أكثر كثافة. ويتضمن مثل هذا السيناريو تكوين مجموعات بيانات متكررة، وفي المقام الثاني فقط يحدث التوسع.

خوارزمية الكتلة

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

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

حول قيم تجزئة MD5، والإجابة المقبولة أربكتني. إحدى الخصائص الرئيسية، كما أفهمها، لوظيفة التجزئة المشفرة هي أنه من المستحيل العثور على رسالتين (مدخلات) مختلفتين بنفس قيمة التجزئة.

ومع ذلك، فإن الإجابة المتفق عليها على السؤال هي: لماذا لا يمكن عكس قيم تجزئة MD5؟ لأن عددًا لا نهائيًا من خطوط الإدخال سيولد نفس المخرجات. وهذا يبدو متناقضا تماما بالنسبة لي.

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

ماذا يحدث عندما يكون حجم بيانات الإدخال أصغر من الحجم الثابت لبيانات الإخراج (على سبيل المثال، تجزئة كلمة المرور "abc")؟

حسنًا، دعني أرى إذا كان لدي الحق في هذا:

  • في الواقع من الصعب جدًا الاستدلال من التجزئة لأن هناك عدد لا نهائي من خطوط الإدخال التي ستولد نفس المخرجات(ملكية لا رجعة فيها).
  • لكن يبحثحتى مثيل واحد من سلاسل الإدخال المتعددة التي تولد نفس الإخراج يكون أيضًا ثقيلًا جدًا بالفعل (خاصية مقاومة التصادم).

6 إجابات

قد تكون في حيرة من أمرك لأن إجابة السؤال الذي تقتبسه محيرة. أحد متطلبات وظيفة التجزئة المشفرة هو أنها يجب أن تكون مقاومة للصورة المسبقة. بمعنى، إذا كنت تعرف MD5(x) ولكن لا تعرف الرسالة x، فمن الصعب العثور على أي x" (سواء كان مساويًا لـ x أو مختلفًا عن x) بحيث يكون MD5(x") = MD5(x).

يعد استقرار الصورة المسبقة خاصية مختلفة عن قابلية الانعكاس. الدالة قابلة للعكس، نظرًا لأن y = f(x)، يوجد بالضبط x واحد يناسبها (بسهولة أم لا). على سبيل المثال، دعونا نحدد f (x) = x mod 10. إذن f غير قابل للعكس. من f(x) = 7، لا يمكنك معرفة ما إذا كانت x 17 أو 27 أو أي شيء آخر. لكن f ليست مستقرة في الصورة المسبقة، نظرًا لأن قيم x" تجعل من السهل العثور على f(x) = 7. x" = 17، 27، 12341237، إلخ. الجميع يعمل.

عند القيام بالتشفير، فأنت عادةً تريد وظائف مقاومة لما قبل الصورة (وخصائص أخرى مثل مقاومة الاصطدام)، وليس فقط الأشياء غير القابلة للعكس.

تحذير: إجابة طويلة

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

(بكلمة "مستحيل" - أعني أنه لا أحد يعرف كيفية القيام بذلك في وقت أقل مما يستغرقه تخمين جميع الرسائل المحتملة حتى تخمن الرسالة التي تم تجزئتها في التجزئة الخاصة بك.)

(على الرغم من الاعتقاد الشائع بأن MD5 غير موثوق به، فإن MD5 لا يزال مقاومًا للصور المسبقة. وأي شخص لا يصدقني يمكنه أن يعطيني أي شيء ينقسم إلى . ما لا يمتلكه MD5 هو مقاومة الاصطدام، وهو شيء آخر تمامًا.)

الآن، إذا كان السبب الوحيد لعدم تمكنك من "العمل بشكل عكسي" في دالة تجزئة التشفير هو أن وظيفة التجزئة تتجاهل البيانات لإنشاء التجزئة، فهذا لا يضمن مقاومة العناية الإلهية: لا يزال بإمكانك "العمل بشكل عكسي"، وفقط أدخل بيانات عشوائية أينما تتجاهل وظيفة التجزئة البيانات، وحتى تصل إلى رسالة أصلية، ستظل تأتي برسالة تقوم بتجزئة قيمة دالة التجزئة المطلوبة. لكن لا يمكنك ذلك.

لذا فإن السؤال الذي يطرح نفسه: لماذا لا؟ (أو بمعنى آخر، كيف يمكنك جعل الصورة الأولية للوظيفة مستقرة؟)

الجواب هو أن وظائف التجزئة المشفرة تحاكي الأنظمة الفوضوية. يأخذون رسالتك، ويقسمونها إلى كتل، ويخلطون تلك الكتل، ويحظرون بعض الكتل، ويخلطون تلك الكتل ويكررون ذلك عدة مرات (حسنًا، وظيفة تجزئة تشفيرية واحدة تفعل ذلك، والبعض الآخر لديه طرقه الخاصة). نظرًا لأن الكتل تتفاعل مع بعضها البعض، فإن الكتلة C لا يجب أن تتفاعل فقط مع الكتلة D لإنشاء الكتلة A، ولكن يجب أن تتفاعل مع الكتلة E لإنشاء الكتلة B. الآن، بالطبع، يمكنك العثور على قيم الكتل C، D ، E، والتي ستنشئ الكتل A وB في قيمة التجزئة الخاصة بك، ولكن مع الرجوع إلى الوراء ستحتاج إلى كتلة F تتفاعل مع C للقيام بـ D ومع E للقيام بـ B، ولا يمكن لمثل هذه الكتلة أن تفعل كما هو الحال في نفس الوقت! لا بد أنك خمنت القيم الخاطئة لـ C وD وE.

في حين أن جميع وظائف التجزئة المشفرة ليست تمامًا مثل تلك الموضحة أعلاه فيما يتعلق باتصالات الكتلة، إلا أن لها نفس الفكرة: إذا حاولت "العمل بشكل عكسي" فسوف ينتهي بك الأمر إلى الكثير من الطرق المسدودة والوقت الضائع أثناء تجربة قيم كافية ​​لإنشاء صورة أولية، يستغرق الأمر مئات إلى ملايين السنين (اعتمادًا على وظيفة التجزئة)، وليس أفضل بكثير من الوقت الذي ستستغرقه تجربة الرسائل حتى تجد رسالة تعمل.

1: الغرض الرئيسي من التجزئة هو تعيين مساحة كبيرة جدًا إلى مساحة أصغر ولكن لا تزال كبيرة جدًا (مثل MD5، والذي سيأخذ "أي شيء" ويحوله إلى مساحة 2^128 - كبيرة، ولكن ليس بنفس القدر كبيرة مثل الألف-0.)

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

تخيل دالة تجزئة sum() غبية تقوم فقط بإضافة جميع أرقام رقم الإدخال: لقد نجحت في التعيين، ولكن هناك مجموعة من التصادمات (المدخلات بنفس مخرجات 3 و12 و21) في الطرف السفلي من مساحة الإخراج، والجزء العلوي من المساحة فارغ تقريبًا. ونتيجة لذلك، فهو يستخدم المساحة بشكل سيء للغاية، ويمكن اختراقه بسهولة، وما إلى ذلك.

لذا فإن التجزئة الجيدة التي تستخدم مساحة الوجهة ستجعل من الصعب العثور على مدخلين لهما نفس المخرجات، ببساطة عن طريق الصدفة: إذا كان MD5 مثاليًا، فإن احتمال وجود مدخلين لهما نفس المخرجات سيكون 2^-128. هذه احتمالات جيدة جدًا: أفضل ما يمكنك فعله دون اللجوء إلى مساحة أكبر للإخراج. (في الحقيقة، MD5 ليس مثاليًا، وهو أحد الأشياء التي تجعله عرضة للخطر).

ولكن سيظل صحيحًا أن عددًا كبيرًا من المدخلات سيتم تعيينه لأي تجزئة معينة، نظرًا لأن مساحة الإدخال "لا نهائية" وتقسيم اللانهاية على 2^128 لا يزال يمنحك اللانهاية.

2: نعم، تتسبب التجزئة دائمًا في فقدان البيانات، إلا إذا كانت مساحة الإخراج لديك هي نفس مساحة الإدخال الخاصة بك أو أكبر منها - وفي هذه الحالة ربما لا تحتاج إلى التجزئة!

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

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

هذه هي خصائص وظائف التجزئة بشكل عام.

ومع ذلك، هناك كلمة تحذير، حيث لا ينبغي استخدام MD5 بعد الآن بسبب وجود ثغرات أمنية فيه. تحقق من قسم نقاط الضعف والروابط الخارجية التي تعرض تفاصيل هذه الهجمات. http://en.wikipedia.org/wiki/Md5 يمكنك إجراء تصادم MD5 عن طريق تغيير 128 بت فقط في الرسالة.

يعتبر SHA-1 آمنًا للتجزئة البسيطة، على الرغم من وجود بعض الهجمات التي ستجعله أضعف بالنسبة للمؤسسات ذات التمويل الجيد (الحكومات والشركات الكبيرة).

يعد SHA-256 نقطة انطلاق آمنة للتقنيات على مدار العقود القليلة القادمة.

دالة تجزئةمُسَمًّى وظيفة طريقة واحدة، بقصد التلقي استوعبأو "بصمة" لملف أو رسالة أو مجموعة من البيانات.

رمز التجزئةتم إنشاؤها بواسطة الدالة H:

حيث M هي رسالة ذات طول تعسفي وh رمز التجزئةطول ثابت.

دعونا نفكر في المتطلبات التي يجب الوفاء بها دالة تجزئةبحيث يمكن استخدامه كما الموثقرسائل. دعونا نلقي نظرة على مثال بسيط للغاية وظائف التجزئة. ثم سنقوم بتحليل عدة طرق للبناء وظائف التجزئة.

دالة تجزئةيجب أن يتمتع H، المستخدم لمصادقة الرسائل، بالخصائص التالية:

1. دالة تجزئةيجب أن ينطبق H على كتلة بيانات بأي طول.

2. دالة تجزئة H ينشئ مخرجات ذات طول ثابت.

3. من السهل نسبياً حساب H (M) (في زمن متعدد الحدود) لأي قيمة لـ M.

4. لأي قيمة معينة رمز التجزئة h من المستحيل حسابيًا العثور على M بحيث تكون H (M) = h.

5. بالنسبة لأي x معينة، من المستحيل حسابيًا العثور على أن H(y) = H(x).

6. من المستحيل حسابياً العثور على زوج عشوائي (x, y) بحيث يكون H (y) = H (x).

الخصائص الثلاثة الأولى تتطلب ذلك دالة تجزئةمخلوق رمز التجزئةلأي رسالة.

الخاصية الرابعة تحدد شرط الأحادية وظائف التجزئة: من السهل إنشاء رمز التجزئةلهذه الرسالة، ولكن من المستحيل استعادة الرسالة لهذا الغرض رمز التجزئة. هذه الخاصية مهمة في حالة استخدام المصادقة وظائف التجزئةيتضمن قيمة سرية. ومع ذلك، قد لا يتم إرسال القيمة السرية نفسها إذا دالة تجزئةليست من جانب واحد، يمكن للخصم أن يكشف بسهولة عن القيمة السرية على النحو التالي. عند اعتراض الإرسال، يتلقى المهاجم الرسالة M و رمز التجزئةج = ح (س أب || م). إذا كان المهاجم يمكن عكس دالة تجزئة، وبالتالي يمكنه الحصول على S AB || م = ح -1 (ج). وبما أن المهاجم يعرف الآن كلاً من M وS AB || M، الحصول على S AB أمر سهل للغاية.

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

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

نهاية العمل -

هذا الموضوع ينتمي إلى القسم:

ملاحظات محاضرة عن أجهزة وبرمجيات أمن المعلومات والمفاهيم الأساسية والتعاريف

الموضوع.. المفاهيم والتعاريف الأساسية.. خلال العقود القليلة الماضية تغيرت متطلبات أمن المعلومات بشكل كبير قبل الانتشار الواسع...

إذا كنت بحاجة إلى مواد إضافية حول هذا الموضوع، أو لم تجد ما كنت تبحث عنه، نوصي باستخدام البحث في قاعدة بيانات الأعمال لدينا:

ماذا سنفعل بالمواد المستلمة:

إذا كانت هذه المادة مفيدة لك، فيمكنك حفظها على صفحتك على الشبكات الاجتماعية:

جميع المواضيع في هذا القسم:

هجوم نشط
الهجوم النشط هو الهجوم الذي يكون لدى العدو فيه القدرة على تعديل الرسائل المرسلة وإدراج رسائله الخاصة. تتميز الأنواع التالية:

خدمات الأمن
خدمات الأمن الرئيسية هي ما يلي: السرية - منع الهجمات السلبية على البيانات المرسلة أو المخزنة.

نموذج التفاعل الشبكي
ويمكن تمثيل نموذج التفاعل الشبكي الآمن بشكل عام على النحو التالي:

نموذج أمن نظام المعلومات
هناك مواقف أخرى متعلقة بالأمان لا تتناسب مع نموذج أمان الشبكة الموضح أعلاه. ويمكن توضيح النمط العام لهذه المواقف على النحو التالي:

شبكة فيستل
تقوم خوارزمية الكتلة بتحويل كتلة n-بت من النص العادي إلى كتلة n-بت من النص المشفر. عدد الكتل ذات الطول n هو 2n. لكي يكون التحول

تحليل الشفرات
تسمى عملية محاولة اكتشاف X أو K أو كليهما بتحليل الشفرات. إحدى الهجمات المحتملة على خوارزمية التشفير هي هجوم القوة الغاشمة، أي.

تحليل الشفرات التفاضلي والخطي
دعونا نفكر بشكل عام في النهج الأساسي المستخدم في تحليل الشفرات التفاضلي والخطي. وفي كلتا الحالتين، من المفترض أن يكون هناك عدد كبير بما فيه الكفاية من

المعايير المستخدمة عند تطوير الخوارزميات
مع الأخذ في الاعتبار المتطلبات المذكورة أعلاه، يُعتقد عمومًا أن خوارزمية التشفير المتماثل يجب أن: تعالج البيانات في كتل كبيرة، ويفضل أن يكون حجمها 16.

مبادئ التصميم
خوارزمية التشفير المتماثل الأكثر شيوعًا والأكثر شهرة هي DES (معيار تشفير البيانات). تم تطوير الخوارزمية في عام 1977، في عام 1980


الآن فكر في تسلسل التحولات المستخدمة في كل جولة.

فك التشفير
تشبه عملية فك التشفير عملية التشفير. الإدخال إلى الخوارزمية هو نص مشفر، ولكن يتم استخدام مفاتيح Ki بترتيب عكسي. يستخدم K16

مساوئ DES المزدوجة
إن أبسط طريقة لزيادة طول المفتاح هي إعادة استخدام DES بمفتاحين مختلفين. باستخدام رسالة غير مشفرة P ومفتاحين K1 وK2، قم بالتشفير

Triple DES بمفتاحين
الإجراء المضاد الواضح لهجوم اللقاء في الوسط هو استخدام تشفير المرحلة الثالثة بثلاثة مفاتيح مختلفة. وهذا يرفع تكلفة الهجوم الأمامي إلى 2168

خوارزمية السمكة المنتفخة
Blowfish هي شبكة Feistel يبلغ عدد تكراراتها 16. ويبلغ طول الكتلة 64 بت، ويمكن أن يكون المفتاح بأي طول ضمن 448 بت. على الرغم من قبل

توليد المفاتيح الفرعية
يتم حساب المفاتيح الفرعية باستخدام خوارزمية السمكة المنتفخة نفسها. 1. قم بتهيئة أول مصفوفة P وأربعة صناديق S بسلسلة ثابتة. 2. قم بتنفيذ العملية

قوة التشفير
الخصائص التالية لـ IDEA تميز قوة التشفير الخاصة بها: 1. طول الكتلة: يجب أن يكون طول الكتلة كافيًا لإخفاء جميع البيانات الإحصائية.

تسلسل التحولات لجولة واحدة
دعونا نفكر في تسلسل التحولات لجولة منفصلة. أحد العناصر الرئيسية للخوارزمية التي تضمن الانتشار هي بنية تسمى MA (مضاعفة/ث

إنشاء المفاتيح الفرعية
يتم إنشاء اثنين وخمسين مفتاحًا فرعيًا بطول 16 بت من مفتاح التشفير 128 بت على النحو التالي. المفاتيح الفرعية الثمانية الأولى، والتي نشير إليها بـ Z1، Z2، ...،

فك التشفير
تشبه عملية فك التشفير عملية التشفير. يتكون فك التشفير من استخدام النص المشفر كمدخل لنفس بنية IDEA، ولكن مع مجموعة مختلفة

خوارزمية غوست 28147
تعد خوارزمية GOST 28147 معيارًا محليًا لخوارزميات التشفير المتماثل. تم تطوير GOST 28147 في عام 1989 وهو عبارة عن خوارزمية كتلة

أوضاع تنفيذ خوارزميات التشفير المتماثل
بالنسبة لأي خوارزمية تشفير كتلة متماثلة، يتم تحديد أربعة أوضاع للتنفيذ. ECB - كتاب الرموز الإلكتروني - كل كتلة مكونة من 64 بت غير مشفرة

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

وضع سي بي سي
للتغلب على عيوب البنك المركزي الأوروبي، يتم استخدام طريقة يتم من خلالها تحويل الكتل المتطابقة غير المشفرة إلى كتل مشفرة مختلفة. للقيام بذلك، استخدم كمدخل للخوارزمية

وضع CFB
تم تصميم خوارزمية الكتلة لتشفير الكتل ذات طول معين. ومع ذلك، من الممكن تحويل خوارزمية الكتلة إلى خوارزمية تشفير التدفق باستخدام الوضعين الأخيرين. في النسق

وضع OFB
هذا الوضع مشابه لوضع CFB. الفرق هو أن مخرجات الخوارزمية في وضع OFB يتم تغذيتها مرة أخرى إلى السجل، بينما في وضع CFB يتم إرجاع النتيجة مرة أخرى إلى السجل.

حادثة
عادةً، عند إنشاء تسلسل من الأرقام العشوائية الزائفة، يُفترض أن تسلسل الأرقام المحدد يجب أن يكون عشوائيًا بمعنى إحصائي محدد. التالي


من الصعب العثور على مصادر الأرقام العشوائية حقًا. قد تكون مولدات الضوضاء المادية مثل كاشفات حدث الإشعاع المؤين وأنابيب تفريغ الغاز والمكثفات المتسربة

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

تشفير جولة روبن
أرز. 3.14. التشفير الدوري في هذه الحالة

ANSI X9.17 مولد الأرقام العشوائية
تم وصف أحد أقوى مولدات الأرقام العشوائية الزائفة في ANSI X9.17. تشمل التطبيقات التي تستخدم هذه التقنية الأمن المالي وتطبيقات PGP.

مرجع تاريخي
في 2 يناير 1997، أعلنت NIST عن بدء تطوير AES، وفي 12 سبتمبر 1997، تم تقديم متطلبات الخوارزمية الرسمية. وذكرت هذه المتطلبات أن الغرض من NI

نظرة عامة على المتأهلين للتصفيات النهائية
جميع المتأهلين للتصفيات النهائية الخمسة عبارة عن خوارزميات تشفير جماعية متكررة: فهي تحدد التحويل الذي يتكرر عددًا معينًا من المرات عبر كتلة من البيانات المراد تشفيرها أو فك تشفيرها. شي

معيار التقييم
في سبتمبر 1997، مع الإعلان عن الخوارزميات المرشحة، حدد NIST معيارًا مشتركًا يجب استخدامه عند مقارنة الخوارزميات. سيكون معيار التقييم

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

عدد خوارزميات AES
خلال الجولتين الأولى والثانية من المناقشات، تم تقديم عدة حجج بشأن عدد الخوارزميات التي ينبغي اختيارها لإدراجها في AES. بالإضافة إلى ذلك تم القيام به

خوارزمية التراجع
كما ذكرنا، هناك علاقة بين المناقشات حول مشكلة خوارزمية AES المتعددة واختيار خوارزمية احتياطية، خاصة في حالة خوارزمية AES واحدة. باكو

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

حجم كلمة الآلة
إحدى المشاكل التي تنشأ في تطبيقات البرامج هي البنية الأساسية. يتم التركيز على الأنظمة الأساسية التي أجرى NIST الاختبار عليها

لغات تنفيذ البرمجيات
يعتمد التنفيذ أيضًا على استخدام لغة معينة (على سبيل المثال، لغة التجميع أو الترجمة أو اللغة المترجمة عالية المستوى). وفي بعض الحالات، تلعب برامج معينة دورًا. يخرج

قم بتغيير سرعة التنفيذ حسب طول المفتاح
لا يتغير تنفيذ برامج MARS وRC6 وSerpent كثيرًا اعتمادًا على طول المفتاح. ومع ذلك، بالنسبة لـ Rijndael وTwofish، يتم إنشاء المفتاح أو التشفير

ملخص سرعة التنفيذ على منصات البرمجيات الكبرى
تم جمع كمية هائلة من المعلومات فيما يتعلق بسرعة المتأهلين للتصفيات النهائية على منصات البرامج المختلفة. تتضمن هذه الأنظمة الأساسية معالجات 32 بت (التطبيقات في C وJava)، ومعالجات 64 بت

البيئات مع قيود المساحة
في بعض البيئات التي تحتوي على كميات صغيرة من ذاكرة الوصول العشوائي و/أو ذاكرة القراءة فقط لأغراض مثل تخزين التعليمات البرمجية (عادة في ذاكرة القراءة فقط)، وتمثيل كائنات البيانات مثل صناديق S (والتي يمكنها

ملاحظات على المتأهلين للتصفيات النهائية
يواجه المريخ بعض الصعوبات بسبب هيكله الدائري غير المتجانس (أربعة أنواع مختلفة من الجولات). تتطلب صناديق S 2 كيلو بايت ROM، وهذه ليست مشكلة،

المتطلبات الأساسية لخوارزميات التشفير غير المتماثلة
يعد إنشاء خوارزميات التشفير غير المتماثلة هو الإنجاز الثوري الأعظم وربما الوحيد في تاريخ التشفير. فتح خوارزميات التشفير

تحليل التشفير لخوارزميات المفتاح العام
كما هو الحال مع التشفير المتماثل، فإن خوارزمية تشفير المفتاح العام عرضة لهجمات القوة الغاشمة. الإجراء المضاد قياسي: استخدم مفاتيح كبيرة. التشفير

الاستخدامات الأساسية لخوارزميات المفتاح العام
الاستخدامات الرئيسية لخوارزميات المفتاح العام هي التشفير/فك التشفير، وإنشاء التوقيع والتحقق منه، وتبادل المفاتيح. التشفير مع o

وصف الخوارزمية
تستخدم الخوارزمية التي طورها ريفست وشمير وأدلمان تعبيرات الأس. يتم تشفير البيانات في كتل، حيث تعتبر كل كتلة رقمًا أقل من رقم n. الشفرة

إنشاء المفاتيح
يتضمن إنشاء المفاتيح المهام التالية: 1. تحديد رقمين أوليين p وq. 2. حدد e واحسب d. بادئ ذي بدء، دعونا ننظر في المشاكل المرتبطة باختيار p و q

مناقشة تحليل الشفرات
يمكننا تحديد أربعة طرق محتملة لتحليل الشفرات لخوارزمية RSA: 1. الهجوم الأمامي: جرب جميع المفاتيح الخاصة الممكنة. 2. قم بتحليل n إلى مصطلحين بسيطين

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

وظائف التجزئة البسيطة
يتم تنفيذ جميع وظائف التجزئة على النحو التالي. تعتبر قيمة الإدخال (الرسالة، الملف، وما إلى ذلك) بمثابة سلسلة من كتل n-bit. تتم معالجة قيمة الإدخال بواسطة الخلف

باستخدام سلسلة كتلة مشفرة
هناك العديد من وظائف التجزئة التي تعتمد على إنشاء سلسلة من الكتل المشفرة، ولكن دون استخدام مفتاح سري. إحدى وظائف التجزئة هذه اقترحها رابين.

الخطوة 4: معالجة سلسلة من الكتل 512 بت (16 كلمة).
أساس الخوارزمية هو وحدة تتكون من أربع عمليات معالجة دورية، تسمى HMD5. الحلقات الأربع لها بنية مماثلة، لكن كل حلقة تستخدم منطقًا أوليًا مختلفًا

الخطوة 5: الخروج
بعد معالجة جميع كتل L 512 بت، يكون إخراج المرحلة L هو ملخص رسائل 128 بت. دعونا نلقي نظرة فاحصة على منطق كل دورة من دورات التنفيذ الأربع لواحد 512

خوارزمية MD4
خوارزمية MD4 هي تطوير سابق لنفس المؤلف، رون ريفست. تم نشر هذه الخوارزمية في الأصل في أكتوبر 1990، وتم نشر نسخة معدلة قليلاً

تعزيز الخوارزمية في MD5
تحتوي خوارزمية MD5 على الخاصية التالية: كل بت من رمز التجزئة هو وظيفة لكل بت من الإدخال. التكرار المعقد للوظائف الأولية fF، fG، fH

الخطوة 4: معالجة الرسالة في كتل 512 بت (16 كلمة).
أساس الخوارزمية هو وحدة تتكون من 80 معالجة دورية، تسمى HSHA. جميع المعالجات الدورية الـ 80 لها نفس البنية.

الخطوة 5: الخروج
بعد معالجة كافة الكتل ذات 512 بت، يكون إخراج المرحلة L-th عبارة عن ملخص رسائل بطول 160 بت. دعونا نلقي نظرة فاحصة على المنطق في كل دورة من دورات المعالجة الـ 80 لواحدة 512 بت

مقارنة SHA-1 وMD5
كلتا الخوارزميتين، SHA-1 وMD5، تنحدران من MD4، لذلك هناك الكثير من القواسم المشتركة بينهما. يمكن تلخيص الاختلافات الرئيسية بين الخوارزميات. &ملاحظة

متطلبات التوقيع الرقمي
تحمي المصادقة اثنين من المشاركين الذين يتبادلون الرسائل من التعرض لطرف ثالث. ومع ذلك، فإن المصادقة البسيطة لا تحمي المشاركين من بعضهم البعض

التوقيعات الرقمية المباشرة والتحكيمية
عند استخدام التوقيع الرقمي المباشر، يتفاعل المشاركون أنفسهم فقط، أي. المرسل والمتلقي. من المفترض أن المستلم يعرف المفتاح العام للمرسل

نهج DSS
يستخدم DSS خوارزمية تم تصميمها لاستخدامها كتوقيع رقمي فقط. وعلى عكس RSA، لا يمكن استخدامه للتشفير أو تبادل المفاتيح

التاكد من التوقيع
يقوم المستلم بالتحقق من التوقيع باستخدام الصيغ التالية. يقوم بإنشاء قيمة v، وهي دالة لمكونات المفتاح العام المشترك التي سيرسلها المفتاح العام

صياغة المشكلة

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

متطلبات

من أجل وظيفة التجزئة حتعتبر قوية من الناحية التشفيرية، ويجب أن تلبي ثلاثة متطلبات أساسية تعتمد عليها معظم استخدامات وظائف التجزئة في التشفير:

  • اللارجعةأو مقاومة استعادة النموذج الأولي: لقيمة تجزئة معينة ميجب أن يكون من المستحيل حسابيًا العثور على كتلة من البيانات X، لأي منهم ح(س)=م .
  • المقاومة ل الاصطدامات من النوع الأولأو استعادة النماذج الأولية الثانية: لرسالة معينة ميجب أن يكون من المستحيل حسابيًا التقاط رسالة أخرى ن، لأي منهم ح(ن)=ح(م) .
  • المقاومة ل تصادمات من النوع الثاني: يجب أن يكون من المستحيل حسابيًا مطابقة زوج من الرسائل (مم")، لها نفس التجزئة.

هذه المتطلبات ليست مستقلة:

  • الوظيفة العكسية ليست مقاومة للاصطدامات من النوع الأول والثاني.
  • الوظيفة التي لا تقاوم الاصطدامات من النوع الأول ليست مقاومة للاصطدامات من النوع الثاني؛ والعكس ليس صحيحا.

تجدر الإشارة إلى أنه لم يتم إثبات وجود وظائف تجزئة لا رجعة فيها والتي يكون حساب أي صورة معكوسة لقيمة تجزئة معينة فيها مستحيلًا من الناحية النظرية. عادةً ما يكون العثور على المعكوس مجرد مهمة صعبة حسابيًا.

مبادئ البناء

دائرة متسلسلة تكرارية

بشكل عام، يعتمد بناء دالة التجزئة على مخطط تسلسلي تكراري (بنية Merkle-Damgard). جوهر الخوارزمية هو وظيفة الضغط- تحويل كمدخل ل نبتات الإخراج، حيث نهو طول دالة التجزئة، و ك- أي عدد أكبر ن. في هذه الحالة، يجب أن تستوفي وظيفة الضغط جميع شروط قوة التشفير.

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

عند تصميم وظائف التجزئة بناءً على مخطط تكراري، تنشأ مشكلة مع حجم دفق البيانات المدخلة. يجب أن يكون حجم دفق بيانات الإدخال مضاعفًا (ك ن). كقاعدة عامة، قبل بدء الخوارزمية، يتم توسيع البيانات بطريقة معروفة مسبقًا.

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

وظيفة الضغط تعتمد على خوارزمية الكتلة المتماثلة

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

عادة، عند إنشاء وظيفة التجزئة، يتم استخدام نظام أكثر تعقيدا. يظهر الشكل 2 مخططًا عامًا لخوارزمية تشفير الكتلة المتماثلة

وبذلك نحصل على 64 خيارًا لإنشاء دالة الضغط. معظمها إما تافهة أو غير آمنة. فيما يلي المخططات الأربعة الأكثر أمانًا لجميع أنواع الهجمات.

العيب الرئيسي لوظائف التجزئة المصممة بناءً على خوارزميات الكتلة هو سرعة تشغيلها المنخفضة. يمكن تحقيق قوة التشفير المطلوبة من خلال عمليات أقل على بيانات الإدخال. هناك خوارزميات تجزئة أسرع مصممة بشكل مستقل، من الصفر، بناءً على متطلبات قوة التشفير (أكثرها شيوعًا هي MD5، وSHA-1، وSHA-2، وGOST R 34.11-94).

التطبيقات

التوقيع الرقمي الإلكتروني

التوقيع الرقمي الإلكتروني (EDS) هو في الأساس تشفير الرسالة باستخدام خوارزمية المفتاح العام. يتم دمج النص المشفر بالمفتاح السري مع الرسالة الأصلية. ثم التحقق من التوقيع - فك التشفير بالمفتاح العام، إذا كان النص الناتج مشابهًا للنص الأصلي - يكون التوقيع صحيحًا.

يتيح لك استخدام دالة التجزئة تحسين هذه الخوارزمية. ليست الرسالة نفسها هي التي يتم تشفيرها، ولكن قيمة دالة التجزئة المأخوذة من الرسالة. توفر هذه الطريقة المزايا التالية:

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

التحقق من كلمة المرور

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

ومن الأمثلة في هذه الحالة GNU/Linux وMicrosoft Windows. يقومون فقط بتخزين قيم التجزئة لعبارات المرور من حسابات المستخدمين.

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

السماح لعميل معين، اسمه، بالمصادقة باستخدام عبارة مرور، على خادم معين. يقوم الخادم بتخزين قيمة دالة التجزئة H(pass,R2)، حيث يكون R2 رقمًا عشوائيًا زائفًا ومحددًا مسبقًا. يرسل العميل طلبًا (الاسم، R1)، حيث يكون R1 رقمًا عشوائيًا زائفًا، جديدًا في كل مرة. ردا على ذلك، يرسل الخادم القيمة R2. يحسب العميل قيمة دالة التجزئة H(R1,H(pass,R2)) ويرسلها إلى الخادم. يحسب الخادم أيضًا قيمة H(R1,H(pass,R2)) ويقارنها بالقيمة المستلمة. إذا تطابقت القيم فإن المصادقة صحيحة.

في مثل هذه الحالة، لا يتم تخزين كلمة المرور بشكل مفتوح على الخادم، وحتى عن طريق اعتراض جميع الرسائل بين العميل والخادم، لا يستطيع محلل التشفير استعادة كلمة المرور، وتختلف قيمة التجزئة المرسلة في كل مرة.

أوراكل عشوائية

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

هجوم مفارقة عيد الميلاد

لنفترض أن دالة التجزئة h هي في الواقع أوراكل عشوائي. يفترض هجوم الجذر التربيعي (هجوم مفارقة عيد الميلاد) أنه لاكتشاف الاصطدامات ذات الاحتمالية غير الصفرية، يكفي إجراء حسابات عشوائية بقوة |h|/2 لقيمة دالة التجزئة. لبدء هجوم مفارقة عيد الميلاد، يجب على المهاجم إنشاء أزواج قيمة مجزأة للرسائل حتى يتم العثور على رسالتين m وm` تستوفي الشروط m لا تساوي m`، h(m)=h(m`). يسمى هذا الزوج من الرسائل تصادم دالة التجزئة h. على سبيل المثال، بالنسبة لدالة التجزئة SHA-1، يتم استيفاء الشرط |h|=160، مما يعني أن مقاومتها بناءً على مفارقة عيد الميلاد تقدر بـ 2 80 .

الخصائص المقارنة للوظائف الأكثر شهرة

هناك قائمة طويلة من وظائف التجزئة المشفرة، على الرغم من أن العديد منها قد وجد أنها معرضة للخطر ويجب عدم استخدامها. حتى لو لم يتم اختراق وظيفة التجزئة مطلقًا، فإن الهجوم الناجح ضد متغير ضعيف يمكن أن يقوض ثقة الخبراء ويؤدي إلى التخلي عن وظيفة التجزئة. على سبيل المثال، في أغسطس 2004، تم العثور على عيوب في عدد من وظائف التجزئة التي كانت شائعة في ذلك الوقت، بما في ذلك SHA-0، وRIPEMD، وMD5. وقد أدى هذا إلى التشكيك في الأمان طويل المدى للخوارزميات اللاحقة المشتقة من وظائف التجزئة هذه - على وجه التحديد، SHA-1 (إصدار قوي من SHA-0)، وRIPEMD-128، وRIPEMD-160 (كلا الإصدارين القويين من RIPEMD ). لا يتم استخدام SHA-0 ولا RIPEMD على نطاق واسع، حيث تم استبدالهما بإصدارات أقوى. اعتبارًا من عام 2009، أصبحت وظيفتي التجزئة التشفيريتين الأكثر استخدامًا هما MD5 وSHA-1. ومع ذلك، تم اختراق MD5 وتم استخدام هجوم ضده أيضًا لاختراق SSL في عام 2008. وقد تم تطوير وظائف SHA-0 وSHA-1 بواسطة وكالة الأمن القومي. في فبراير 2005، تم الإبلاغ عن تنفيذ هجوم ناجح على SHA-1، مما أدى إلى العثور على تصادمات في حوالي 269 عملية تجزئة، بدلاً من 280 عملية تجزئة متوقعة لوظيفة تجزئة 160 بت. في أغسطس 2005، تم الإبلاغ عن هجوم ناجح آخر على SHA-1: العثور على تصادم في 263 عملية. يمكن للتطبيقات الجديدة تجنب مشكلات أمان وظيفة SHA-1 هذه عن طريق استخدام أعضاء أكثر تقدمًا من عائلة SHA، مثل SHA-2. ومع ذلك، لضمان موثوقية التطبيقات التي تستخدم وظائف التجزئة على المدى الطويل، تم إجراء مسابقة للعثور على أفضل تصميم ليحل محل SHA-2. في 2 أكتوبر 2012، تم اختيار Keccak كفائز في مسابقة استضافتها NIST. من المتوقع أن تصبح نسخة من هذه الخوارزمية معيار FIPS في عام 2014 تسمى SHA-3. غالبًا ما تُستخدم بعض الخوارزميات التالية في تطبيقات التشفير. يرجى ملاحظة أن هذه القائمة لا تتضمن المرشحين في مسابقة NIST الحالية.

خوارزمية حجم الإنتاج حجم الحالة الداخلية مقاس الكتله طول حجم الكلمة عدد الجولات الهجمات
(الصعوبة: جولات)
هجوم عيد الميلاد العثور على
النموذج الثاني
العثور على النموذج الأولي
غوست 34.11-45 256 256 256 256 32 256 نعم (2105) نعم (2192 ]) نعم (2,192)
هافال 256/224/192/160/128 256 1,024 64 32 160/128/96 نعم لا لا
MD2 128 384 128 - 32 864 نعم (2 63.3 ]) نعم (2 73 ]) نعم (2sup>73])
MD4 128 128 512 64 32 48 نعم: 3) نعم (2 64) نعم (2 78.4)
MD5 128 128 512 64 32 64 نعم (2 20.96) نعم (2 123.4) نعم (2 123.4)
بنما 256 8,736 256 - 32 - نعم لا لا
ريبيمد 128 128 512 64 32 48 نعم (2 18) لا لا
ريبيمد-128/256 128/256 128/256 512 64 32 64 لا لا لا
ريبيمد-160 160 160 512 64 32 80 نعم (2 51) لا لا
ريبيمد-320 320 320 512 64 32 80 لا لا لا

9.1. وظائف التجزئة على أساس الأصفار كتلة

تعد وظائف التجزئة عنصرًا ضروريًا لعدد من أنظمة التشفير. يشير هذا المصطلح إلى الوظائف التي تقوم بتعيين رسائل ذات طول عشوائي (أحيانًا يكون طول الرسالة محدودًا، ولكن بعدد كبير إلى حد ما) إلى قيم ذات طول ثابت. غالبًا ما تسمى الأخيرة برموز التجزئة. وبالتالي، فإن أي دالة تجزئة h لديها عدد كبير من التصادمات، أي أزواج من القيم x≠y بحيث h(x)=h(y). الشرط الرئيسي الذي تضعه تطبيقات التشفير على وظائف التجزئة هو الافتقار إلى خوارزميات فعالة للكشف عن التصادم.

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

انظر المزيد في القارئ

دالة التجزئة هي تحويل يأخذ البيانات ذات الطول التعسفي إلى قيمة (التفاف) ذات طول ثابت. أبسط الأمثلة هي المجاميع الاختبارية (على سبيل المثال، crc32). هناك تجزئات التشفير والمبرمج. تختلف تجزئة التشفير عن تجزئة المبرمج في الخاصيتين التاليتين: اللارجعة وعدم التصادم. دعونا نشير إلى m كالبيانات الأصلية وh(m) كتجزئة لها. تعني اللارجعة أنه إذا كان الرقم h0 معروفًا، فمن الصعب اختيار m بحيث يكون h(m) = h0. يعني عدم التصادم أنه من الصعب العثور على m1 وm2 بحيث لا يساوي m1 m2، ولكن h(m1) = h(m2).

تنقسم وظائف التجزئة المشفرة إلى فئتين:

  • وظائف التجزئة بدون مفتاح (رموز MDC (التعديل (المعالجة) للكشف عن التعليمات البرمجية)))،
  • وظائف التجزئة مع مفتاح (رموز MAC (رمز مصادقة الرسالة)).
  • تنقسم وظائف التجزئة بدون مفتاح إلى فئتين فرعيتين:
  • وظائف التجزئة الضعيفة
  • وظائف تجزئة قوية.

دالة التجزئة الضعيفة هي دالة أحادية الاتجاه H(x) تستوفي الشروط التالية:

  1. دعوى س
  2. معنى ح(س)
  3. معنى ح(س)من السهل حسابها.
  4. بالنسبة لأي x ثابت، من المستحيل حسابيًا العثور على آخر س"!=س، مثل ذلك ح(س")=ح(س). زوج س"!=س، متى ح(س")=ح(س)يسمى تصادم دالة التجزئة.

دالة التجزئة القوية هي دالة أحادية الاتجاه H(x) تفي بالشروط 1–3 لدالة تجزئة ضعيفة والخاصية 4": 4") من المستحيل حسابيًا العثور على أي زوج x"!=x مثل H( س")= ح (س).

نظرًا لأن الخصائص 1-2 تشير إلى أن مجموعة تعريف دالة التجزئة أوسع بكثير من مجموعة القيم، فيجب أن تكون الاصطدامات موجودة. تتطلب الخاصية 4 أن العثور عليها بقيمة معينة لـ x يكاد يكون مستحيلاً. المتطلب 4" يعني أنه من المستحيل حسابيًا أن تتمكن دالة التجزئة القوية من العثور على أي تصادم على الإطلاق.

دالة التجزئة ذات المفتاح (MAC) هي دالة H(k,x) تفي بالخصائص التالية:

  1. دعوى Xالمهام ح(ك، س)يمكن أن تكون سلسلة صغيرة ذات طول تعسفي؛
  2. معنى ح(ك، س)يجب أن تكون سلسلة بتات ذات طول ثابت؛
  3. لأي كو سمن السهل حساب ح(ك، س);
  4. لأي احد Xيجب أن يكون من الصعب حساب ح(ك، س)،ليس معروفا ك;
  5. يجب أن يكون من الصعب تحديد كحتى مع وجود عدد كبير من الأزواج غير المعروفة (س، ح(ك، س))مع المجموعة المختارة Xأو احسب من هذه المعلومات ح(ك، س")ل س"!=س.

لماذا هناك حاجة إلى وظيفة التجزئة؟ والحقيقة هي أن العديد من تحويلات التشفير (على وجه الخصوص، حساب والتحقق من التوقيع الرقمي الإلكتروني، EDS) يتم إجراؤها على بيانات ذات حجم ثابت. لذلك، قبل وضع التوقيع الإلكتروني ضمن ملف متعدد الميجابايت، عادة ما يتم حساب قيمة دالة التجزئة منه، ويتم حساب التوقيع الرقمي من هذه القيمة. بالإضافة إلى ذلك، من الملائم، على سبيل المثال، تخزين كلمات المرور في قاعدة البيانات ليس بنص واضح، ولكن في شكل مجزأ (يتم ذلك في جميع أنظمة Unixes).

بعض خوارزميات دالة التجزئة:

  • مد 2.ملخص الرسالة. خوارزمية تسوية التشفير. ينشئ كتلة 128 بت من رسالة ذات طول عشوائي.
  • مد 4.خوارزمية تلافيفية أخرى. يولد كتلة 128 بت.
  • إم دي 5.أعيد تصميم MD 4 بشكل ملحوظ. المؤلف هو نفسه - Riverst.
  • شا.التجزئة الناتجة هي 160 بت.
  • غوست R34.11–94.الخوارزمية الروسية. يبلغ طول الالتواء 256 بت (مناسب جدًا لإنشاء مفتاح لـ GOST 28147–89 باستخدام كلمة مرور).

الفكرة الأساسية وراء استخدام وظائف التشفير هي أن قيم التجزئة تعمل بمثابة تمثيل مضغوط لسلسلة ثنائية الإدخال ويمكن استخدامها كما لو تم تحديدها بشكل فريد مع تلك السلسلة، على الرغم من أنها في مجال التعريف د ويتراوح ر مع (بمعنى أصل المجموعات)، دالة من النوع "متعدد واحد" تشير إلى وجود الاصطدامات (أزواج من المدخلات بنفس المخرجات) أمر لا مفر منه. لم يتم تحديد نطاق وظيفة التجزئة بوضوح: فهي تستخدم "لتنفيذ إجراءات التوقيع الرقمي الإلكتروني (EDS) عند نقل المعلومات ومعالجتها وتخزينها في الأنظمة الآلية".

- مجموعة من السلاسل الثنائية ذات الطول ن قليل؛

- سلسلة ثنائية تتكون من ن الأصفار؛

- إضافة الكلمات الثنائية أ و ب بواسطة .

يمكن ضغط الرسائل ذات الطول العشوائي باستخدام دالة التجزئة ذات حجم إدخال ثابت، وذلك باستخدام طريقتين:

  • متسلسل (تكراري) ؛
  • موازي.

9.2. أهم وظائف التجزئة المستمرة المستخدمة عمليا

اتخذ منشئو GOST R34.11–94 المسار الأول واستخدموا طريقة التجزئة التسلسلية باستخدام دالة تجزئة ذات حجم إدخال ثابت (انظر الشكل 1)، أي وظيفة ضغط بمعامل 2.

أرز. 1. طريقة التجزئة التسلسلية.

إذا كنت بحاجة إلى تجزئة الرسالة ، ثم يتم تنفيذ التجزئة على النحو التالي:

هنا هي وظيفة الضغط، و - متغير القابض.

إذا كانت الكتلة الأخيرة تحتوي على أقل من ن قليلا، ثم يتم حشوها حتى تصل إلى الطول ن. على عكس الافتراضات القياسية، التي تفترض أن الرسالة قد تم تقسيمها مسبقًا إلى كتل وأن الكتلة الأخيرة تم "حشوها" (وهذا يتوافق مع تنسيق رسالة الإدخال مسبقًا) قبل بدء التجزئة، في GOST R34.11–94 ينتظر إجراء التجزئة نهاية الرسالة (تنسيق رسائل الإدخال لاحقًا). تتم عملية "الحشو" على النحو التالي: يتم نقل الكتلة الأخيرة إلى اليمين، ثم يتم ملء البتات المحررة بالأصفار حتى يتم الوصول إلى طول 256 بت. يمكن تصنيف خوارزمية التجزئة وفقًا لـ GOST R34.11–94 على أنها مقاومة للتصادم ( ن= 256، وبالتالي فإن هجوم مفارقة عيد الميلاد سيتطلب عمليات تجزئة تقريبًا) للكود، بالإضافة إلى اكتشاف التعديلات ( الاصطدام مقاومة التجزئة وظيفة, CRHF). يمكن تحويل وظيفة التجزئة وفقًا لـ GOST R34.11–94 بسهولة إلى رمز مصادقة الرسالة باستخدام أي طريقة معروفة (على سبيل المثال، HMAC، البادئة السرية، اللاحقة، الصدفة، وما إلى ذلك).

انظر المزيد في القارئ

ومع ذلك، قدم المطورون تدابير حماية إضافية، والتي يقومون بحسابها بالتوازي:

تُستخدم القيم المحسوبة في وظيفة الضغط النهائي لحساب التجزئة النهائية (انظر الشكل 2).

أرز. 2. رسم تخطيطي عام لوظيفة التجزئة وفقًا لـ GOST R34.11–94.

الملاحظة 1 ("الحشوة"). ليس من الضروري الإشارة في الرسالة المرسلة إلى عدد الأصفار التي تمت إضافتها إلى الكتلة الأخيرة، لأن طول الرسالة متضمن في التجزئة.

أرز. 3. "حشو" الرسالة.

ملاحظة 2. وفقًا لـ GOST R34.11–94، المتجه الأولي IV كلمة ثابتة عشوائية بطول 256 بت ). في هذه الحالة، إذا لم يكن الأمر معروفًا مسبقًا لمدقق سلامة الرسالة، فيجب إرسالها مع الرسالة مع ضمان السلامة. بالنسبة للرسائل الصغيرة، يمكن أن تصبح مهمة العدو أكثر صعوبة إذا كان المتجه IV اختر من بين مجموعة صغيرة من القيم الصالحة (ولكن هذا يزيد من احتمالية تخمين الخصم لقيمة التجزئة). ويمكن أيضًا تعيينه داخل مؤسسة أو مجال باعتباره ثابتًا (عادةً، كما في مثال الاختبار).

تم تطوير خوارزمية التجزئة الآمنة - 1 (SHA-1) بواسطة المعهد الوطني للمعايير والتكنولوجيا (NIST) وتم نشرها كمعيار المعلومات الفيدرالي (FIPS PUB 180) في عام 1993.

تتلقى الخوارزمية رسالة ذات الحد الأقصى لطول البت كمدخل وتنتج ملخص رسالة يبلغ 160 بت كمخرج. تحتوي الخوارزمية على عدد من الخطوات.

الخطوة 1: إضافة البتات المفقودة. يتم إضافة الرسالة بحيث يكون طولها من مضاعفات 448 مود 512 (الطول 448 مود 512). يتم تنفيذ الإضافة دائمًا، حتى لو كانت الرسالة تحتوي بالفعل على الطول المطلوب. وبالتالي، فإن عدد البتات المراد إضافتها يتراوح من 1 إلى 512. وتتكون الإضافة من واحد متبوعًا بالعدد المطلوب من الأصفار.

الخطوة 2: إضافة الطول. يتم إلحاق كتلة من 64 بت بالرسالة. يتم التعامل مع هذه الكتلة على أنها عدد صحيح 64 بت غير موقّع وتحتوي على طول الرسالة الأصلية قبل الإلحاق. نتيجة الخطوتين الأوليين هي رسالة يبلغ طولها من مضاعفات 512 بت. يمكن تمثيل الرسالة الموسعة كتسلسل من كتل 512 بت Y 0، Y 1،...، YL -1. وبالتالي، فإن الطول الإجمالي للرسالة الموسعة هو L * 512 بت (والنتيجة هي مضاعفات ستة عشر كلمة 32 بت).

الخطوة 3: تهيئة المخزن المؤقت SHA-1. يتم استخدام مخزن مؤقت 160 بت لتخزين النتائج المتوسطة والنهائية لحساب دالة التجزئة. يمكن تمثيل المخزن المؤقت كخمسة سجلات 32 بت لتخزين الأرقام A وB وC وD وE. تتم تهيئة هذه السجلات بالأرقام السداسية العشرية التالية: A=67452301; ب = إفكداب 89؛ C=98BADCFE; د = 10325476؛ ه=ج 3 د 2 ه 1 ف 0.

الخطوة 4: معالجة الرسالة في كتل 512 بت (16 كلمة). أساس الخوارزمية هو وحدة تتكون من 80 معالجة دورية، تسمى HSHA. جميع دورات المعالجة الـ 80 لكل كتلة لها نفس البنية.

أرز. 4. معالجة كتلة 512 بت التالية.

تأخذ كل حلقة كمدخلات كتلة 512 بت الحالية التي تتم معالجتها وقيمة 160 بت للمخزن المؤقت ABCDE وتقوم بتعديل محتويات هذا المخزن المؤقت. تستخدم كل حلقة ثابتًا إضافيًا يأخذ أربع قيم مختلفة فقط:

5A827999 (جزء صحيح)؛

6 ED 9 EBA 1 (جزء صحيح)؛

8 F 1 BBCDC (جزء صحيح)؛

CA 62 C 1 D 6 (جزء صحيح من الرقم).

للحصول على ناتج الدورة الثمانين يضاف إلى القيمة. يتم إجراء إضافة Modulo بشكل مستقل لكل كلمة من الكلمات الخمس الموجودة في المخزن المؤقت مع كل كلمة من الكلمات المقابلة في .

الخطوة 5: الخروج. بعد معالجة جميع كتل الرسائل ذات 512 بت، يكون إخراج المرحلة L من الخوارزمية عبارة عن ملخص رسائل بطول 160 بت. دعونا نلقي نظرة فاحصة على منطق التشغيل في كل دورة من دورات المعالجة الثمانين لكتلة واحدة بحجم 512 بت. يمكن تمثيل القيم الجديدة (المحسوبة) للمتغيرات A، B، C، D، E عند مخرجات كل دورة معالجة على النحو التالي:

هنا: A، B، C، D، E - خمس كلمات ذات 32 بت من المخزن المؤقت؛ ر - رقم الدورة 0 ≥t ≥79؛ - وظيفة منطقية أولية؛ - التحول الأيسر الدوري لوسيطة 32 بت بمقدار s بت؛ - كلمة مكونة من 32 بتة يتم الحصول عليها من فدرة الإدخال الحالية ذات 512 بتة؛ - ثابت إضافي؛ علامة "+" - إضافة modulo.

أرز. 5. منطق تنفيذ حلقة منفصلة.

تأخذ كل دالة ذرية ثلاث كلمات بطول 32 بت كمدخل وتنتج كلمة واحدة بطول 32 بت كمخرج. تقوم الدالة الأولية بتنفيذ مجموعة من العمليات المنطقية ذات البتات، أي أن البتة n من الإخراج هي دالة للبتات n من المدخلات الثلاثة. وظائف القدم (B، C، D) هي كما يلي:

رقم الدورة

قدم (ب, ج, د)

ومن الناحية العملية، يتم استخدام ثلاث وظائف مختلفة فقط. بالنسبة إلى 0 ≥t ≥19 تكون الدالة مشروطة: إذا كانت B ثم C وإلا D. بالنسبة إلى 20 ≥t ≥39 و60 ≥t ≥79، تقوم الدالة بإنشاء بتة تكافؤ. بالنسبة إلى 40 ≥t ≥59 تكون الدالة صحيحة إذا كانت وسيطتان أو ثلاث وسيطات صحيحة. يتم الحصول على كلمات 32 بت من كتلة الرسائل التالية 512 بت على النحو التالي.

أرز. 6. الحصول على قيم الإدخال المتغيرة لكل حلقة
من الكتلة التالية (الحالية) المعالجة 512 بت.

يتم أخذ القيم الـ 16 الأولى مباشرة من الكلمات الـ 16 للكتلة الحالية. ويتم تحديد القيم المتبقية على النحو التالي: . في أول 16 دورة معالجة، يتكون الإدخال من كلمة ذات 32 بت من الكتلة المحددة. بالنسبة للدورات الـ 64 المتبقية، يتكون الإدخال من XORing عدة كلمات من كتلة الرسالة.

يمكن تلخيص خوارزمية SHA-1 على النحو التالي:

حيث IV هي القيمة الأولية للمخزن المؤقت للمتغيرات A، B، C، D، E؛

- نتيجة معالجة فدرة الرسائل q؛

L - عدد الكتل في الرسالة، بما في ذلك حقول الإلحاق والطول؛

Σ 32 – مجموع الوحدات، يتم إجراؤه بشكل منفصل لكل كلمة في المخزن المؤقت؛

SHA – قيمة ملخص الرسالة.

تجزئة كلمة المرور هي طريقة تسمح للمستخدمين بتذكر ليس 128 بايت، أي 256 رقمًا سداسيًا عشريًا للمفتاح، ولكن بعض التعبيرات ذات المعنى أو كلمة أو تسلسل من الأحرف تسمى كلمة المرور. في الواقع، عند تطوير أي خوارزمية تشفير، يجب أن يؤخذ في الاعتبار أنه في نصف الحالات يكون المستخدم النهائي للنظام شخصًا وليس نظامًا تلقائيًا. وهذا يثير التساؤل حول ما إذا كان من الملائم بل والواقعي أن يتذكر الشخص مفتاحًا مكونًا من 128 بت (32 رقمًا سداسيًا عشريًا). يقع حد التذكر على حدود 8-12 رمزًا مشابهًا، وبالتالي، إذا أجبرنا المستخدم على العمل بالمفتاح، فسنجبره عمليًا على كتابة المفتاح على قطعة من الورق أو الوسائط الإلكترونية، على سبيل المثال، في ملف نصي. وهذا، بطبيعة الحال، يقلل بشكل حاد من أمن النظام.

لحل هذه المشكلة، تم تطوير طرق تعمل على تحويل سلسلة منطوقة ذات معنى ذات طول عشوائي - كلمة المرور - إلى مفتاح محدد بطول محدد مسبقًا. في الغالبية العظمى من الحالات، يتم استخدام ما يسمى بوظائف التجزئة لهذه العملية (من التجزئة الإنجليزية - القطع الدقيق والخلط).

دالة التجزئة هي تحويل رياضي أو خوارزمي لكتلة معينة من البيانات التي لها الخصائص التالية:

  1. دالة التجزئة لها مجال لا نهائي؛
  2. دالة التجزئة لها نطاق محدود؛
  3. لا رجعة فيه.
  4. يؤدي تغيير دفق معلومات الإدخال بمقدار 1 بت إلى تغيير حوالي نصف جميع بتات دفق الإخراج، أي نتيجة دالة التجزئة.

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

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

يتم تحديد طبيعة استخدام التشفير الكتلي للتجزئة من خلال نسبة حجم الكتلة لخوارزمية التشفير المستخدمة وعمق البت لنتيجة التجزئة المطلوبة.