تخيّل أنك تستطيع أخذ أي جزء من البيانات — كلمة واحدة، رواية، فيديو بحجم 4 غيغابايت — واختزاله إلى سلسلة قصيرة ثابتة الطول من الأحرف تُعرّفه بشكل فريد. غيّر فاصلة واحدة في الأصل وتصبح السلسلة مختلفة تماماً. ولا توجد طريقة لعكس العملية واستعادة البيانات الأصلية.
هذا بالضبط ما تفعله دالة التجزئة التشفيرية. إنها واحدة من أكثر اللبنات الأساسية للأمان الحديث، وهي تحمي بصمت تقريباً كل ما تفعله عبر الإنترنت.
استعارة البصمة
تعمل التجزئة كبصمة رقمية. بصمتك تُعرّفك بشكل فريد، لكن لا أحد يستطيع إعادة بناء وجهك منها. وبالمثل، التجزئة التشفيرية تُعرّف جزءاً من البيانات بشكل فريد دون الكشف عن ماهية تلك البيانات.
أدخل أي مُدخل في دالة تجزئة وستحصل على ملخص (يُسمى أيضاً قيمة التجزئة أو المجموع الاختباري) — سلسلة ثابتة الطول من الأحرف الست عشرية. خوارزمية SHA-256، إحدى الخوارزميات الأكثر شيوعاً، تنتج دائماً مخرجاً من 64 حرفاً بغض النظر عن حجم المُدخل.
| المُدخل | ملخص SHA-256 (أول 16 حرفاً) |
|---|---|
Hello |
185f8db32271fe25... |
hello |
2cf24dba5fb0a30e... |
| تفريغ ويكيبيديا بالكامل | (لا يزال 64 حرفاً) |
الخصائص الأساسية الأربع
لا تُعتبر الدالة تجزئة تشفيرية إلا إذا استوفت هذه الخصائص:
- حتمية. نفس المُدخل ينتج دائماً نفس المُخرج، على أي جهاز، في أي وقت.
- أحادية الاتجاه (مقاومة الاسترجاع). بمعرفة التجزئة، يستحيل حسابياً إيجاد المُدخل الأصلي. لا يمكنك "عكس التجزئة".
- مقاومة التصادم. يستحيل عملياً إيجاد مُدخلين مختلفين ينتجان نفس الملخص. بالنسبة لـ SHA-256، احتمال تصادم عرضي هو تقريباً 1 من 2^128 — رقم أكبر من عدد الذرات في الكون المرصود.
- تأثير الانهيار. تغيير بت واحد في المُدخل يقلب نحو نصف البتات في المُخرج. لا يوجد نمط أو علاقة يمكن اكتشافها بين المُدخلات المتشابهة.
تمييز مهم: التجزئة ليست تشفيراً. التشفير قابل للعكس بمفتاح؛ التجزئة لا رجعة فيها عمداً. تُشفّر البيانات لحمايتها أثناء النقل. وتُجزّئها للتحقق من سلامتها أو تخزين إثبات دون الاحتفاظ بالأصل.
خوارزميات التجزئة الشائعة
MD5 (1991)
- المُخرج: 128 بت (32 حرفاً ست عشرياً)
- الحالة: مكسورة تشفيرياً. يمكن للباحثين توليد تصادمات في ثوانٍ على حاسوب محمول.
- لا تزال تُستخدم في: المجاميع الاختبارية غير الأمنية لتنزيلات الملفات والأنظمة القديمة.
SHA-1 (1995)
- المُخرج: 160 بت (40 حرفاً ست عشرياً)
- الحالة: مهجورة أمنياً. أثبتت Google تصادماً عملياً في 2017 (هجوم "SHAttered").
- لا تزال تُستخدم في: مستودعات Git القديمة، بعض الشهادات القديمة.
SHA-256 (2001)
- المُخرج: 256 بت (64 حرفاً ست عشرياً)
- الحالة: المعيار الحالي. لا هجمات عملية معروفة.
- تُستخدم في: شهادات TLS، بيتكوين، تجزئة كلمات المرور، التوقيعات الرقمية، التحقق من سلامة الملفات.
SHA-3 (2015)
- المُخرج: متغير (عادة 256 بت)
- الحالة: أحدث معيار، يعتمد على تصميم داخلي مختلف تماماً (بناء إسفنج Keccak) عن عائلة SHA-2.
- تُستخدم في: الأنظمة المستقبلية، إيثريوم، الحالات التي تتطلب تنوعاً في الخوارزميات.
| الخوارزمية | حجم المُخرج | آمنة؟ | السرعة |
|---|---|---|---|
| MD5 | 128 بت | لا | سريعة جداً |
| SHA-1 | 160 بت | لا | سريعة |
| SHA-256 | 256 بت | نعم | متوسطة |
| SHA-3-256 | 256 بت | نعم | متوسطة |
أين تُستخدم التجزئة التشفيرية
تخزين كلمات المرور
عندما تنشئ حساباً، لا يخزن النظام المصمم جيداً كلمة مرورك كنص عادي أبداً. بل يخزن التجزئة. عند تسجيل الدخول، يُجزّئ النظام ما تكتبه ويقارنه بالقيمة المخزنة. حتى لو اختُرقت قاعدة البيانات، يحصل المهاجمون على تجزئات — وليس كلمات مرور.
الأنظمة الحديثة تذهب أبعد بإضافة ملح عشوائي (بيانات إضافية تُلحق قبل التجزئة) واستخدام خوارزميات بطيئة عمداً مثل bcrypt وscrypt وArgon2 لجعل التخمين بالقوة الغاشمة غير عملي.
التحقق من سلامة الملفات
ينشر موزعو البرمجيات مجاميع SHA-256 الاختبارية مع تنزيلاتهم. بعد التنزيل، تحسب تجزئة الملف على جهازك وتقارن. التطابق يثبت أن الملف لم يُفسد أو يُعبث به أثناء النقل.
التوقيعات الرقمية
عندما توقّع مستنداً رقمياً، يُجزّئ النظام المستند أولاً، ثم يُشفّر التجزئة بمفتاحك الخاص. يفك المتلقي تشفيرها بمفتاحك العام ويقارنها بتجزئته الخاصة للمستند. هذا أكثر كفاءة بكثير من تشفير المستند بالكامل ويثبت كلاً من التأليف والسلامة.
سلسلة الكتل (Blockchain)
تحتوي كل كتلة في سلسلة الكتل على تجزئة الكتلة السابقة، مما يُنشئ سلسلة غير قابلة للتغيير. تعديل أي معاملة سابقة يُغيّر تجزئة كتلتها، مما يكسر السلسلة من تلك النقطة فصاعداً، مما يجعل التلاعب مرئياً فوراً.
لماذا تُعتبر MD5 وSHA-1 مكسورتين
تُعتبر خوارزمية التجزئة "مكسورة" عندما يستطيع شخص ما عمداً إنشاء مُدخلين مختلفين ينتجان نفس التجزئة (تصادم). هذا يقوّض كل حالة استخدام تعتمد على التفرد.
- MD5: يمكن توليد التصادمات في ثوانٍ. أنشأ باحثون ملفي PDF مختلفين بنفس تجزئة MD5.
- SHA-1: هجوم SHAttered في 2017 أنتج ملفي PDF مختلفين بنفس تجزئة SHA-1، وتطلب نحو 6,500 سنة من حوسبة معالج واحد (ممكن بموارد السحابة).
قاعدة عملية: لا تستخدم MD5 أو SHA-1 أبداً لأي شيء متعلق بالأمان — كلمات المرور، الشهادات، التوقيعات الرقمية، أو فحوصات السلامة حيث قد يكون هناك خصم. استخدم SHA-256 أو SHA-3 بدلاً من ذلك.
للمزيد
التجزئة من تلك المفاهيم التي تصبح بديهية بمجرد أن تجرب بنفسك. جرّب تجزئة جملة، ثم غيّر حرفاً واحداً ولاحظ تأثير الانهيار بنفسك.
- كيفية توليد التجزئات والتحقق منها — درس تطبيقي خطوة بخطوة
- مولد التجزئة — احسب SHA-256 وMD5 وSHA-512 وغيرها فوراً في متصفحك
- معرّف التجزئة — الصق تجزئة غير معروفة وتعرّف على خوارزميتها
