العربية

أدوات المطورين · SHA حاسبة التجزئة

تأثير الانهيار الجليدي: لماذا يقوم أحد الشخصيات المتغيرة بإعادة كتابة تجزئة SHA

· كيف يعمل

شا-256 التشفير حماية تصديق

يتم عرض ملخصين SHA-256 شيئًا فشيئًا، مع ما يقرب من نصف البتات المقلوبة بينهما، مما يوضح تأثير الانهيار الجليدي من تغيير حرف واحد
الرسم التوضيحي المتجه الأصلي ToolAcre

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

توقع أن يتغير القليل من التجزئة - الحدس الذي يجلبه معظم الناس ولماذا يكسره التصميم عمدًا

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

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

الانهيار الجليدي يعني انتشار الإنتاج على نطاق واسع. لا تقدم هذه المقالة أي ادعاء احتمالي دقيق غير مصدر

من الناحية الرسمية، يعني تأثير الانهيار الجليدي أنه بالنسبة لمدخلين يختلفان بمقدار بت واحد، يجب أن تختلف ملخصات الإخراج بنسبة 50% تقريبًا من وحدات البت الخاصة بهما. بالنسبة إلى SHA-256 (256 bits من المخرجات)، فإن تغيير بت إدخال واحد يجب أن يؤدي إلى قلب 128 تقريبًا من بتات الإخراج. التأثير ليس دقيقا. إنها خاصية إحصائية. لكنها قوية: في الممارسة العملية، يتم خلط كل جزء من المدخلات بشكل كامل مع كل جزء من المخرجات.

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

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

يعتمد اكتشاف العبث على الانهيار الجليدي. إذا قمت بتنزيل ملف وحساب SHA-256، فإن الملخص المتوقع هو ba7816... (كمثال). يقوم المهاجم بتعديل الملف عن طريق تغيير بايت واحد. يتغير الملخص الجديد من ba7816... إلى شيء مثل 3d4e92... (مختلف تمامًا). عند التحقق من الملف مقابل الملخص المتوقع، يكون عدم التطابق فوريًا وكاملًا. ليس هناك مجال لسوء الفهم: لقد تم التلاعب بالملف.

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

كيف تتغير الجولات - التدوير والإضافات والوظائف غير الخطية التي تحمل تأثير وحدة بت واحدة عبر الولاية بأكملها

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

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

مثال عملي - تجزئة مدخلين يختلفان بحرف واحد ومقارنة الملخصات شيئًا فشيئًا

اختبار الانهيار الجليدي واضح ومباشر. قم بتجزئة الإدخال abc ولاحظ الملخص. ثم قم بتجزئة abc متبوعة بمسافة، أو استبدل حرفًا واحدًا بشيء آخر: abd. قارن النواتج السداسية. بالنسبة إلى SHA-256، ستختلف نصف الأرقام السداسية 64 تقريبًا. عدهم. متجه الاختبار من منشور ToolAcre: ينتج abc ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. تنتج سلسلة فارغة e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. لا تحتوي هذه الملخصات على أرقام سداسية مشتركة.

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

لا يوفر الانهيار الجليدي بحثًا عن التشابه أو يحدد بحد ذاته مقاومة الاصطدام

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

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

الوجبات الجاهزة: لا توجد أخطاء وشيكة - جرب تجربة الحرف الواحد في حاسبة التجزئة ToolAcre SHA وشاهد تغيير الملخص بالكامل

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

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