تلبيد المعطيات
تلبيد معطيات
Hash -
محمد جنيدي
تطبيقات توابع تلبيد التعمية خوارزمية التلبيد الآمنة
أهم أنواع خوارزميات التلبيد الآمنة
التلبيد hash هو دالة رياضية تُحوّل مُدخلات M ذات طول عشوائي إلى مُخرَجات مُشفّرة (قيمة التلبيد hash value) بحجم ثابت h = H(M). يمتلك تابع التلبيد hash function (H) الجيد الخاصة التالية: نتائج تطبيق التابع على مجموعة ضخمة من قيم الدخل تعطي في الخرج قيماً عشوائية موزعة بانتظام على نحو ملحوظ. إن التأكد من سلامة البيانات data integrity هو الهدف الرئيسي من استخدام توابع التلبيد عامّة؛ إذ إن أي تغيير في أي بِت bit أو مجموعة من البتات في الرسالة M ينجم عنه بنسبة عالية تغيير في رماز التلبيد hash code.
يسمى نوع توابع التلبيد المطلوب في تطبيقات الأمن "تابع تلبيد التعمية" cryptographic hash function. وهو خوارزمية يستحيل معها إيجاد أي مما يلي حسابياً (لأنه ليس ثمّة اختراق أكثر فعاليةً من اختراق القوة الغاشمة brute force من حيث النتيجة):
أ. وحدتا بيانات يمكن ربطهما مع نتيجة تلبيد محددة مسبّقاً (وهو ما يسمى خاصة الاتجاه الواحد one-way).
ب. وحدتا بيانات يمكن ربطهما مع نتيجة التلبيد ذاتها (وهو ما يسمى خاصة عدم التضارب collision-free). وبفضل هاتين الميزتين تستخدم توابع التلبيد غالباً لتحديد فيما إذا تغيرت البيانات أم لم تتغير.
![]() |
الشكل (1) المخطط الصندوقي لتابع تلبيد التعمية: h=H(M). |
يظهر الشكل (1) طريقة العمل العامة لتوابع تلبيد التعمية. يُمدَّد عادةً حجم الدخل إلى عدد صحيح من مضاعفات طول ثابت محدد (مثلاً 1024 بتاً). ويحتوي الجزء الإضافي الناجم عن التمديد على قيمة تمثل حجم الرسالة الأصلية مقاساً بالبت. وتمثل إضافة هذه القيمة إجراءً أمنياً لزيادة صعوبة أن يقوم مخترق ما بتوليد رسالة بديلة لها قيمة التلبيد ذاتها.
قد تكون توابع تلبيد التعمية أكثر مرونةً بين خوارزميات التعمية. إنها تستخدم في مجموعة متنوعة وكبيرة من تطبيقات الأمن وبروتوكولات الإنترنت. ويفيد الاطلاع على مجالات تطبيق توابع تلبيد التعمية في فهم متطلباتها والنتائج الأمنية لاستخدامها استخداماً أفضل.
1- التحقق من الرسائل message authentication
تستخدم هذه الآلية للتحقق من سلامة الرسائل message integrity. إنها تسمح بالتأكد من أن البيانات التي استُقبِلت مطابقة تماماً للبيانات التي جرى إرسالها (من دون تغيير أو إضافة أو حذف أو تكرار). وتتطلب آلية التحقق في عدة حالات التأكد من صحة هوية المرسل أيضاً. وتسمى قيمة تابع التلبيد بصمة الرسالة message digest عند استخدامها للتحقق من الرسائل.
ويبين الشكل (2) عدة طرائق لاستخدام رماز التلبيد للتحقق من الرسائل، وذلك كما يلي:
![]() |
الشكل (2) أمثلة مبسطة عن استخدام توابع التلبيد للتحقق من الرسائل. |
- الحالة (أ): تشفَّر نتيجة الوصل بين الرسالة ورماز التلبيد تشفيراً متناظراً symmetric encryption. يمكن التأكد من أن الرسالة أتت من A، ولم تتغير؛ لأن A وB فقط يتشاركان بالمفتاح السري. ويوفّر رماز التلبيد البنية المطلوبة لعملية التحقق authentication. وإن السرية confidentiality متحقّقة أيضاً؛ لأن التشفير يطبق على الرسالة ورماز التلبيد معاً.
- الحالة (ب): يُشفّر رماز التلبيد فقط تشفيراً متناظراً. وتخفف هذه الطريقة من عبء المعالجة الإضافية في التطبيقات التي لا تتطلب السرية.
- الحالة (ج): يمكن استخدام توابع التلبيد من دون التشفير للتحقق من الرسائل. وتفترض هذه التقنية أن الطرفين المتراسلين يشتركان بقيمة سرية S. ويقوم الطرف A بحساب قيمة التلبيد لناتج وصل M مع S، ويضيفها إلى نهاية M. ويستطيع الطرف B إعادة حساب قيمة التلبيد بهدف التحقق من الرسالة؛ لأنه يملك القيمة S. ولا يستطيع أي مخترق أن يغير رسالة اعترض طريقها، كما أنه لا يستطيع توليد رسالة مزورة؛ لأن القيمة السرية لا تنتقل مع الرسالة.
- الحالة (د(: يمكن إضافة السرية إلى المنهجية المتبعة في الطريقة (ج) بتشفير الرسالة ورماز التلبيد معاً.
2- التوقيع الرقمي digital signature
يُعدّ التوقيع الرقمي تطبيقاً مهماً آخر يشابه في أهدافه تطبيق التحقق من الرسائل. تُشفَّر قيمة التلبيد بالمفتاح الخاص private key العائد للمستخدم. ويستطيع كل من يعرف المفتاح العام public key العائد لهذا المستخدم أن يتحقق من سلامة الرسالة المرتبطة بالتوقيع الرقمي. ويحتاج المخترق الذي يسعى إلى تغيير الرسالة في هذه الحالة إلى اكتشاف المفتاح الخاص العائد للمستخدم.
يبين الشكل (3) كيف يستخدم رماز التلبيد لإنشاء التوقيع الرقمي بأسلوب بسيط، وذلك كما يلي:
![]() |
الشكل (3) أمثلة مبسطة عن التوقيع الرقمي. |
- الحالة (أ): يُشفّر رماز التلبيد تشفيراً غير متناظر بالمفتاح الخاص العائد للمرسل. وتقدم هذه الطريقة إمكان التحقق من الرسالة على نحو مشابه للطريقة (ب) في الشكل (2). إنها تقدم أيضاً توقيعاً رقمياً؛ لأن رماز التلبيد المشفر لم يكن ليأتي إلا من المرسل، وهذا يمثل أساس تقنية التوقيع الرقمي.
- الحالة (ب): في حال كانت السرية مطلوبة أيضاً، يمكن استخدام مفتاح سري متناظر لتشفير ناتج وصل الرسالة مع رماز التلبيد المشفر بالمفتاح الخاص العائد للمرسل. تُعدّ هذه التقنية شائعة.
3- تطبيقات أخرى
تستخدم توابع التلبيد على نطاق واسع لإنشاء ملف كلمات السر ذي الاتجاه الواحد one-way password file. ويقوم نظام التشغيل operating system عادةً بتخزين قيمة التلبيد لكلمة السر بوصفها بديلاً من تخزين كلمة السر نفسها. ومن ثمّ لن يتمكن المخترق الذي ينجح في الوصول إلى ملف كلمات السر من استرجاع القيمة الأصلية لأي كلمة سر. ويُتحقق من كلمة السر ببساطة عن طريق مقارنة قيمة التلبيد لكلمة السر التي يدخلها المستخدم مع قيمة التلبيد المخزنة والمرتبطة به.
ويمكن استخدام توابع التلبيد لاكتشاف الاختراقاتintrusion واكتشاف الفيروساتvirus detection . تحسب قيمة التلبيد لكل ملف في النظام، وتُخزَّن قيم التلبيد بطريقة محميّة، كأن تنسخ مثلاً إلى قرص مدمج CD، ومن ثم يُحفظ هذا القرص حفظاً آمناً. ويمكن لاحقاً تحديد فيما إذا جرى تغيير ملف ما عن طريق التحقق من قيمة التلبيد المخزنة له. وإذا تمكن مخترق ما من تغيير ملف ما؛ فلن يتمكن من تغيير قيمة التلبيد الخاصة بهذا الملف؛ لأنها مخزنة بطريقة آمنة بمعزل عن الملف.
ويمكن استخدام توابع التلبيد لبناء التوابع شبه العشوائية Pseudorandom Function (PRF) أو مولدات الأرقام شبه العشوائية Pseudorandom Number Generator (PRNG). ويُعدّ توليد المفاتيح المتناظرة symmetric keys من التطبيقات الشائعة للتوابع شبه العشوائية PRF)) المبنية على التلبيد hash-based.
متطلبات الأمن security requirements
من أجل قيمة التلبيد h = H(x) فإن x هي صورة الأساس preimage للقيمة h. بما أن التقابلات في التابع H من النمط كثير- إلى- واحد many-to-one؛ يتبين في الحالة العامة عدة من صور الأساس لقيمة تلبيد واحدة. ويحدث التضارب collision عندما يكون هناك H(x) = H(y) في حين x مختلفة عن y. التضاربات غير مرغوبة بالطبع عندما تُستخدَم توابع التلبيد للتحقق من سلامة البيانات.
يبين الجدول (1) خصائص توابع تلبيد التعمية المتفق عليها عموماً (يرمز الحرف H في الجدول إلى تابع التلبيد). وتُعدّ الخصائص الثلاث الأولى متطلبات التطبيق العملي لتوابع التلبيد.
الجدول (1) | ||||||||||||||||
|
ولتوضيح الخاصة الرابعة؛ مقاوم للصورة الأساس، هي خاصة الاتجاه الواحد: من السهل توليد رماز code من أجل رسالة ما، ولكن من المستحيل عملياً توليد رسالة من أجل رماز معيّن. وتصبح هذه الخاصة مهمة إذا تطلبت تقنية التحقق استخدام قيمة سرية – الحالة (ج) في الشكل (2)- لا ترسل القيمة السرية بحد ذاتها، ولكن يمكن للمخترق الذي يراقب البيانات المرسلة أو يعترض طريقها أن يكتشف هذه القيمة السرية بسهولة؛ إن لم يكن تابع التلبيد يحقق خاصة الاتجاه الواحد.
وتضمن الخاصة الخامسة- مقاوم للصورة الأساس الثانية- أنه من المستحيل إيجاد رسالة بديلة لها قيمة التلبيد ذاتها لرسالة محددة. وتمنع هذه الخاصة التزوير عند استخدام رماز تلبيد مشفر؛ الحالتان (أ) و(ب) في الشكل (2). قد يتمكن المخترق من تنفيذ سلسلة العمليات التالية؛ إن لم تكن هذه الخاصة محققة: أولاً- مراقبة طريق رسالة مرفقة برماز التلبيد المشفر الخاص بها أو اعتراضه؛ ثانياً- توليد رماز تلبيد غير مشفر من الرسالة؛ ثالثاً- توليد رسالة بديلة تمتلك رماز التلبيد ذاته.
ويُعدّ تابع التلبيد الذي يحقق الخواص الخمس الأولى في الجدول أعلاه تابع تلبيد ضعيفاً weak hash function. أما إذا تحققت أيضاً الخاصة السادسة (مقاوم للتضارب collision resistant)؛ فيُعدّ عند ذلك تابع تلبيد قوياً strong hash function. ويمنح تابع التلبيد القوي حماية ضد هجوم يقوم فيه طرف ما بتوليد رسالة ليوقعها طرف آخر. فعلى سبيل المثال إذا كان الطرف A وجد رسالتين لهما قيمة التلبيد ذاتها: تطلب الرسالة الأولى x من الطرف B دفع قيمة مالية صغيرة في حين تطلب الرسالة الثانية y منه دفع قيمة مالية كبيرة؛ يرسل A الرسالة الأولى x إلى B الذي يقبل توقيعها رقمياً، في حين يتمكن A من استخدام التوقيع الرقمي الناتج مع الرسالة الثانية y؛ لأنه مبني على قيمة التلبيد ذاتها.
ويظهر الشكل (4) العلاقات بين خواص المقاومة الثلاث. التابع المقاوم للتضارب هو أيضاً مقاوم للصورة الأساس الثانية؛ في حين ليس العكس صحيحاً بالضرورة. ويمكن أن يكون التابع مقاوماً للتضارب وليس مقاوماً للصورة الأساس، والعكس ممكن. ويمكن أن يكون التابع مقاوماً للصورة الأساس الثانية؛ وليس مقاوماً للصورة الأساس، والعكس ممكن.
![]() |
الشكل (4) العلاقة بين خواص المقاومة في توابع التلبيد. |
لم تكن الخاصة الأخيرة في الجدول أعلاه شبه العشوائية تندرج تقليديّاً في قائمة توابع تلبيد التعمية، ولكنها تظهر كنتيجة بطريقة أو بأخرى. وتستخدم توابع تلبيد التعمية على نحو شائع في اشتقاق المفاتيح وتوليد الأرقام شبه العشوائية. كما تعتمد خواص المقاومة الثلاث في تطبيقات التحقق من سلامة الرسائل على أن يبدو خرج تابع التلبيد عشوائياً قدر الإمكان. ومن ثمّ، من المنطقي التحقق من أن تابع التلبيد يعطي قيماً شبه عشوائية في خرجه.
خوارزمية التلبيد الآمنة (SHA) Secure Hash Algorithm هي عائلة من دوال التجزئة التشفيرية Cryptographic Hash Functions التي طورها المعهد الوطني للمعايير والتكنولوجيا National Institute of Standards and Technology (NIST) في الولايات المتحدة. وتُستخدم هذه الخوارزميات لتحويل بيانات ذات حجم متغير (مثل النصوص أو الملفات) إلى قيمة تجزئة (Hash) ثابتة الطول، تُستخدم لتأمين البيانات والتحقق من سلامتها.
أهم أنواع خوارزميات التلبيد الآمنة
1- 0SHA- غير مستخدمة الآن، صدرت عام 1993 ولكنها سحبت بسبب ثغرات أمنية.
2- SHA-1 صدرت عام 1995، وتنتج قيمة تجزئة طولها160 بت. لكنها لم تعد آمنة بسبب هجمات التصادم.
3- SHA-2 صدرت عام 2001، وتشمل:
· SHA-256 تنتج 256 بت
· SHA-384 تنتج 384 بت
· SHA-512 تنتج 512 بت
وتعد آمنة، وتستخدم على نطاق واسع في تطبيقات مثل العملة الرقمية (البتكوين) Bitcoin وتوقيع SSL/TLS
4- SHA-3 صدرت عام 2015، وتستخدم بنية مختلفة عنSHA-2 ، وهي آمنة، وتوفر خيارات مختلفة لأطوال التجزئة: 224، 256، 384، 512 بت. وتتميز نسخة SHA-3 بميزات فريدة من النسخ السابقة، أهمها:
· البناء الإسفنجي sponge construction: لا تستخدم SHA-3 هيكل Merkle-Damgård مثل SHA-1 وSHA-2، بل تعتمد على البناء الإسفنجي الذي يتكون من مرحلتين: مرحلة امتصاص البيانات المدخلة، ومرحلة العصر squeezing التي تُخرج التجزئة النهائية. وهذا يجعلها أكثر مرونة في التعامل مع أحجام مختلفة من البيانات، وأكثر مقاومة لهجمات التصادم.
· مقاومة عالية للهجمات المعروفة، مثل هجمات التصادم، وهجمات تمديد الطول.
· مرونة في أطوال التجزئة. تدعم SHA-3 عدة أطوال للتجزئة؛ مما يجعلها مناسبة لتطبيقات متعددة.
· كفاية في الأداء وسرعة معالجة. وهذا يجعلها مناسبة للبيئات محدودة الموارد مثل الأجهزة المضمنة وإنترنت الأشياء.
· اختيارها رسمياً من قبل NIST خليفة لـ SHA-2.
مثال عملي لحسابSHA-3 في لغة بايثون:
import hashlib
data ="مرحبا بالعالم"
hash_sha3 = hashlib.sha3_256 (data.encode()) .hexdigest()
print (hash_sha3) يُنتج تجزئة SHA3-256 (64 حرفًا)
الخرج:
7a6b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9
مراجع للاستزادة: - J. Katz, Y. Lindell, Introduction to Modern Cryptography: Third Edition (Chapman & Hall/CRC Cryptography and Network Security Series),Chapman and Hall/CRC 2020. - A. Mittelbach, M. Fischlin, The Theory of Hash Functions and Random Oracles: An Approach to Modern Cryptography (Information Security and Cryptography),Springer 2022.
|
- التصنيف : كهرباء وحاسوب - النوع : كهرباء وحاسوب - المجلد : المجلد العاشر، طبعة 2025، دمشق مشاركة :