العربية

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

من SHA-0 إلى SHA-3: كيف تطور معيار التجزئة الآمن لـ NIST

· خلفية

شا-256 التشفير متصفح API

مخطط زمني من SHA-0 إلى SHA-1، وعائلة SHA-2 وSHA-3 يُظهر عقدين من التطور
الرسم التوضيحي المتجه الأصلي ToolAcre

SHA-1، SHA-2 وSHA-3 هم ثلاثة أجيال من أصول مختلفة. يتتبع هذا المنشور معيار التجزئة الآمن من SHA-0 المسحوب إلى مسابقة Keccak ويشرح سبب استمرار هيمنة SHA-2.

ماذا تعني الأرقام؟ — لماذا SHA-256 هو SHA-2 ولكن SHA-3 شيء آخر تمامًا

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

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

تغطي الأداة SHA-1 وSHA-2؛ سجل SHA-0 التفصيلي يقع خارج دليل المستودع

SHA-1 عبارة عن دالة تجزئة ذات 160 بت تنتج مخرجات سداسية عشرية تبلغ 40. وهو يعتمد على بنية Merkle-Damgård، حيث تقوم وظيفة الضغط بمعالجة كتلة الإدخال تلو الأخرى، مما يؤدي إلى ربط الحالة للأمام. كان التصميم سليمًا عند نشره، ولم تكن هناك هجمات عملية لسنوات عديدة. ومع ذلك، فقد حقق عام 2005 طفرة في تحليل الشفرات. نشر فريق بقيادة شياويون وانغ هجومًا تصادميًا على SHA-1، موضحًا أن العثور على رسالتين مختلفتين بنفس التجزئة كان ممكنًا باستخدام تقنيات أكثر كفاءة بكثير من نهج القوة الغاشمة.

بعد سنوات، في 2017، أظهر فريق يُدعى SHAttered أول تصادم عملي، باستخدام مجموعة من وحدات معالجة الرسومات للعثور على ملفين مختلفين PDF لهما نفس التجزئة SHA-1. في 2020، أظهرت ورقة متابعة أن تصادمات البادئة المختارة - وهي البديل الأكثر خطورة - كانت ميسورة التكلفة. لم يعد SHA-1 ضعيفًا فحسب؛ لقد تم كسره. كانت الاستجابة للفاصل SHA-1 هي تقديم SHA-2، وهي عائلة مكونة من أربع وظائف: SHA-224، ​​SHA-256، SHA-384 وSHA-512.

SHA-2 — عائلة أوائل العقد الأول من القرن الحادي والعشرين (224، 256، 384، 512 وما بعده 512/224 و 512/256) مبني على نفس البناء

تعمل هذه الأربعة على أحجام حالات مختلفة وأحجام كتل مختلفة، ولكنها تستخدم نفس البناء الأساسي مثل SHA-1. تم نشر عائلة SHA-2 في 2001، قبل سنوات من الفواصل الرئيسية في SHA-1، ولكن لم يتم اعتمادها على نطاق واسع حتى أصبحت انهيارات SHA-1 ملموسة. SHA-256 ينتج تجزئة 256 بت وهو الآن الاختيار القياسي للتطبيقات الجديدة. SHA-512 ينتج تجزئة 512 بت وغالبًا ما يكون أسرع على معالجات 64 بت لأنه يعمل على كلمات 64 بت بدلاً من كلمات 32 بت.

إن اصطلاح التسمية لـ SHA-2 هو مصدر الارتباك. تُسمى الوظائف SHA-256، وSHA-384، وSHA-512، وجميعها جزء من عائلة SHA-2. عندما يقول شخص ما SHA-2، فهو يقصد فلسفة التصميم وبناء Merkle-Damgård، وليس خوارزمية واحدة. الأرقام الموجودة في الأسماء هي عرض الإخراج بالبت، وليس نظام الإصدار. SHA-256 ليس تحديثًا لـ SHA-1؛ إنه تصميم معاصر يستخدم نفس الإطار ولكن مع خصائص أمنية أفضل.

أظهرت وثائق المستودع SHA-1 من الاصطدامات دون إعادة بناء التاريخ النظري غير المصدر

داخل بنية Merkle – Damgård التي يستخدمها SHA-1 وSHA-2، تقوم وظيفة الضغط بمعالجة كتلة الإدخال تلو الأخرى. يتم نقل الحالة من كتلة إلى أخرى، ويتم إخراج الحالة النهائية كملخص. تستخدم وظيفة الضغط SHA-256 عمليات 32 بت وحالة 256 بت، لذا فهي تعالج كتل 512 بت. تستخدم وظيفة الضغط SHA-512 عمليات 64 بت وحالة 512 بت، لذا فهي تعالج كتل 1024 بت. تؤثر هذه الاختيارات على الأداء وعرض النطاق الترددي — SHA-512 غالبًا ما يكون أسرع لأن حساب 64 بت أصلي في الأجهزة الحديثة.

يعتمد القرار بين SHA-256 وSHA-512 لنظام جديد عادةً على اختبار الأداء وقيود المساحة بدلاً من الأمان، لأن كلاهما لا يزال آمنًا اعتبارًا من أوائل عام 2020. توفر حاسبة التجزئة ToolAcre SHA SHA-256 وSHA-384 وSHA-512، وعندما يقارن القراء الملخصات جنبًا إلى جنب، فإنهم يرون الفرق المكون من أربعة أحرف بين SHA-256 (64 أحرف سداسية عشرية) و SHA-512 (128 أحرف سداسية عشرية).

SHA-3 خارج نطاق API المدعوم؛ لم يتم تأكيد تاريخ المنافسة من أدلة المستودع

كانت دوافع استبدال SHA-1 واضحة في أوائل العقد الأول من القرن الحادي والعشرين، لذلك بدأت NIST عملية اختيار SHA-3. وبدلاً من تصميم بديل بشكل منفصل، فتحت NIST المنافسة أمام مجتمع أبحاث التشفير. كان الهدف هو اختيار دالة تجزئة تختلف اختلافًا جوهريًا عن بنية Merkle-Damgård، لاكتساب الثقة من مجموعة متنوعة من التصميمات. قدمت فرق متعددة مقترحات، وعلى مدى عدة سنوات، اختارت المسابقة Keccak ليكون الفائز. كان Keccak عبارة عن بناء إسفنجي، وهو طريقة مختلفة لبناء دالة تجزئة لم يتم استخدامها من قبل في المعيار.

SHA-3 هو NIST توحيد Keccak، الذي تم الانتهاء منه في 2015. على عكس SHA-2، وهي عائلة من الخوارزميات، يُشار إلى SHA-3 عادةً على أنها خوارزمية واحدة، على الرغم من أنها تحتوي أيضًا على عروض متعددة. لم يتم نشر SHA-3 على نطاق واسع حتى الآن، وهو أمر لافت للنظر نظرًا لأنه كان قياسيًا منذ ما يقرب من عقد من الزمن. والسبب هو أن SHA-2 لم يتم كسره. لا يوجد سبب أمني ملح للترقية من SHA-2 إلى SHA-3. يقوم تشفير الويب الخاص بالمتصفح API بتنفيذ SHA-1 وSHA-2 ولكن ليس SHA-3، ولهذا السبب لا تقدم حاسبة التجزئة ToolAcre SHA SHA-3.

يظل SHA-2 هو الأداة الافتراضية؛ تتجنب هذه المقالة مطالبة السلامة العامة غير المدعومة

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

بالنسبة للأنظمة التي لا يزال فيها SHA-2 آمنًا، فإن هذا التعطيل غير مبرر. بالنسبة للأنظمة والبروتوكولات الجديدة، SHA-2 هو الإعداد الافتراضي المعقول. تُظهر حاسبة التجزئة ToolAcre SHA SHA-256 وSHA-512 في مكان بارز لأنهما ما يجب أن تستخدمه التطبيقات الجديدة. تم إدراج SHA-1 باعتباره قديمًا فقط. يتم عرض SHA-384 للاكتمال ولحالات الاستخدام حيث يكون ذلك مطلوبًا على وجه التحديد.

ما لا يغطيه هذا هو أعضاء Keccak الداخليين الذين يستحقون مناصبهم الخاصة

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

بالنسبة للتطبيقات العملية في 2020، SHA-256 هو الجواب على السؤال "ما هي التجزئة التي يجب أن أستخدمها؟" للتحقق من السلامة ومعالجة المحتوى وبصمات الأصابع، SHA-256 هو المعيار. بالنسبة للأنظمة التي تحتاج إلى ملخص أوسع، يكون SHA-512 عادةً أسرع على أجهزة 64 بت. SHA-384 هو الأكثر شيوعًا في مواصفات مجموعة التشفير TLS. SHA-1 مخصص للتحقق القديم فقط. توفر حاسبة التجزئة ToolAcre SHA جميع خوارزميات تشفير الويب الأربعة حتى يتمكن المطورون من رؤية مخرجاتهم.

الوجبات الجاهزة: ثلاثة أجيال، اسم عائلة واحد - تغطي حاسبة التجزئة ToolAcre SHA خوارزميات SHA-1 وSHA-2 التي يوفرها المتصفح

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

تجسد حاسبة التجزئة ToolAcre SHA هذا المنظور: فهي تقدم SHA-256 كخيار افتراضي، وSHA-512 كخيار أوسع، وSHA-384 لمتطلبات محددة، وSHA-1 مصنفة كخيار قديم. وهذا يوفر للمطورين أدوات دقيقة ووضع علامات دقيقة. يوفر تطبيق Web Crypto الخاص بالمتصفح هذه الخوارزميات، ويستخدم ToolAcre هذا التنفيذ مباشرةً بدلاً من إرسال تعليمات برمجية مخصصة. يعكس الاختيار عقودًا من تطور التشفير وحالة الممارسة الحالية.