بصمة رقمية للبيانات
تأخذ دالة التجزئة أي مدخل (كلمة، أو مستند، أو فيديو بحجم 4 GB) وتحوّله إلى سلسلة قصيرة ثابتة الطول تسمى التجزئة أو الملخص أو المجموع الاختباري. المدخل نفسه يعطي دائمًا التجزئة نفسها، وأصغر تغيير يعطي تجزئة مختلفة تمامًا:
| المدخل | تجزئة SHA-256 |
hello | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
Hello | 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 |
hello! | ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b |
حرف كبير واحد أو علامة تعجب تغيّر كل أحرف النتيجة. جرّبه في مولّد التجزئة.
ما الذي يجعل دالة التجزئة جيدة
- حتمية: المدخل نفسه ينتج دائمًا التجزئة نفسها، على أي حاسوب.
- أحادية الاتجاه: لا يمكن الرجوع من التجزئة إلى المدخل.
- مقاومة للتصادم: يجب أن يكون من المستحيل عمليًا إيجاد مدخلين مختلفين لهما التجزئة نفسها.
- سريعة الحساب للمجاميع الاختبارية، وهذا مفيد، وهو أيضًا سبب عدم صلاحية التجزئات السريعة لكلمات المرور (انظر أدناه).
التجزئة ليست تشفيرًا
التشفير يعمل في الاتجاهين: بالمفتاح تستعيد الأصل. أما التجزئة فلا مفتاح لها ولا يمكن عكسها؛ إنما تتيح التحقق من تطابق شيء ما. وBase64 أمر مختلف: إنه مجرد ترميز يستطيع أي أحد فك ترميزه.
الخوارزميات الأكثر شيوعًا
| الخوارزمية | الطول | الحالة |
| MD5 | 128 بت (32 حرفًا ست عشريًا) | مكسورة منذ 2004؛ تصلح فقط لكشف التلف العرضي |
| SHA-1 | 160 بت (40 حرفًا ست عشريًا) | مكسورة: نُشر أول تصادم حقيقي في 2017 |
| SHA-256 | 256 بت (64 حرفًا ست عشريًا) | آمنة؛ الخيار القياسي اليوم |
| SHA-512 | 512 بت (128 حرفًا ست عشريًا) | آمنة؛ غالبًا أسرع من SHA-256 على حواسيب 64 بت |
هكذا تبدو كلمة hello في كل منها:
- MD5:
5d41402abc4b2a76b9719d911017c592 - SHA-1:
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d - SHA-256:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
ما معنى أن MD5 وSHA-1 «مكسورتان»
مع MD5 وSHA-1، يستطيع الباحثون أن ينشئوا عمدًا ملفين مختلفين لهما التجزئة نفسها. قد يستخدم مهاجم ذلك لاستبدال ملف ضار بملف بريء له المجموع نفسه، أو لتزوير مستند موقّع. لكن لا واحدة منهما مكسورة بمعنى إمكان عكسها، والتلف العشوائي لا يزال يغيّر التجزئة، فمجموع MD5 لا يزال يكشف تنزيلًا انقطع في منتصفه. ما لا يستطيعه هو إثبات أن أحدًا لم يعبث بالملف.
تنتمي SHA-256 وSHA-512 إلى عائلة SHA-2، المنشورة في 2001، ولا يُعرف أي هجوم عملي عليهما. وSHA-3، الموحدة قياسيًا في 2015، تصميم مختلف يُحتفظ به احتياطيًا.
فيمَ تُستخدم التجزئة
- التحقق من التنزيلات: ينشر المطورون SHA-256 لملفاتهم؛ إن طابقها ملفك فهو مطابق. انظر كيف تتحقق من المجموع الاختباري لملف (SHA-256).
- التوقيعات الرقمية وشهادات HTTPS: تُحسب تجزئة المستند أو الشهادة ويُوقَّع على تلك التجزئة.
- Git: كل commit وكل ملف يُعرَّف بتجزئته. استخدم Git خوارزمية SHA-1 دائمًا وأضاف دعمًا لـ SHA-256.
- Bitcoin وسلاسل الكتل الأخرى: تُربط الكتل ببعضها بـ SHA-256.
- إيجاد الملفات المكررة: ملفان لهما SHA-256 نفسه هما الملف نفسه.
التجزئة وكلمات المرور
يجب ألا تحفظ المواقع كلمة مرورك أبدًا، بل تجزئتها فقط؛ وعند تسجيل الدخول تحسب تجزئة ما تكتبه وتقارنها. لكن SHA-256 ليست الأداة المناسبة لذلك: إنها سريعة جدًا لدرجة أن مهاجمًا يملك قاعدة بيانات مسرّبة يستطيع تجربة مليارات كلمات المرور في الثانية. تحتاج كلمات المرور إلى تجزئة بطيئة مملحة مصممة لهذا الغرض، مثل bcrypt أو scrypt أو Argon2. الملح قيمة عشوائية تُضاف إلى كل كلمة مرور قبل حساب التجزئة، ليحصل شخصان لهما كلمة المرور نفسها على تجزئتين مختلفتين.
جرّبه
يحسب مولّد التجزئة قيم MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512 معًا لأي نص أو ملف، في متصفحك، ويستطيع مقارنتها بمجموع منشور.