دالة تجزئة تشفير

تشفير وظيفة تعريف التجزئة

تعتبر دالة تشفير التشفير نوعًا من الخوارزمية التي يمكن تشغيلها على جزء من البيانات ، مثل ملف فردي أو كلمة مرور ، لإنتاج قيمة تسمى المجموع الاختباري.

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

تتضمن بعض دالات هاش المشفرة شائعة الاستخدام MD5 و SHA-1 ، على الرغم من وجود العديد من الوظائف الأخرى أيضًا.

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

وظائف تجزئة التشفير: حالة استخدام

لنفترض أنك نزّلت أحدث إصدار من متصفح Firefox . لأي سبب من الأسباب ، كنت بحاجة إلى تنزيله من موقع آخر غير موقع موزيلا. لا تتم استضافتك على موقع تعلمته لتثق به ، وتريد التأكد من أن ملف التثبيت الذي قمت بتنزيله هو بالضبط نفس الشيء الذي تقدمه Mozilla.

باستخدام الحاسبة اختبارية ، يمكنك حساب المجموع الاختباري باستخدام وظيفة تشفير معينة (مثلا SHA-2) ومن ثم مقارنة ذلك بالموقع المنشور على موقع موزيلا.

إذا كانت متساوية ، فيمكنك أن تكون متأكدًا بشكل معقول من أن التنزيل الذي قمت بتنزيله هو الذي تريده من موزيلا.

انظر ما هي اختباري؟ لمعرفة المزيد عن هذه الآلات الحاسبة الخاصة ، بالإضافة إلى المزيد من الأمثلة على استخدام checksums للتأكد من أن الملفات التي تقوم بتنزيلها هي بالفعل ما كنت تتوقعه.

يمكن عكس دالات التجزئة التجزيحية؟

تم تصميم وظائف تجزئة التشفير لمنع القدرة على عكس مجاميع الفحص التي يقومون بإنشائها مرة أخرى في النصوص الأصلية.

ومع ذلك ، على الرغم من أنه من المستحيل إجراء عملية عكسية ، إلا أنه لا يعني أنها مضمونة بنسبة 100٪ لحماية البيانات.

يمكن استخدام شيء ما يسمى جدول قوس قزح لمعرفة بسرعة من نص عادي من المجموع الاختباري. جداول قوس قزح هي أساسا القواميس التي تدرج الآلاف والملايين ، أو حتى المليارات من هذه جنبا إلى جنب مع قيمة نصها المطابقة المقابلة.

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

في ما يلي نسخة مبسطة من جدول قوس قزح لإظهار كيفية عمل المرء عند استخدام وظيفة تجزئة التشفير SHA-1:

نص عادي SHA-1 اختباري
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
أنا أحب كلبي a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

ولكي يتم التعرف على هذه القيم باستخدام المجموع الاختباري ، سوف يتطلب أن يتفهم الهاكر أي خوارزمية تجزئة تشفير تم استخدامها لتوليدها.

لمزيد من الحماية ، تقوم بعض مواقع الويب التي تخزن كلمات مرور المستخدمين بأداء وظائف إضافية لخوارزمية تجزئة التشفير بعد إنشاء القيمة ولكن قبل تخزينها.

ينتج عن ذلك قيمة جديدة يفهمها خادم الويب فقط ولا تتطابق تمامًا مع المجموع الاختباري الأصلي.

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

القيام بذلك يساعد على الحد من فائدة الاختراق حيث يتم سرقة جميع الاختباريات.

مرة أخرى ، الفكرة هنا هي أداء وظيفة غير معروفة حتى إذا كان الهاكر يعرف خوارزمية تجزئة التشفير ولكن ليس هذه العادة ، فإن معرفة مجرى كلمة المرور أمر غير مفيد.

كلمات المرور ووظائف تجزئة التشفير

على غرار جدول قوس قزح هو كيف تقوم قاعدة بيانات بحفظ كلمات مرور المستخدم. عندما يتم إدخال كلمة المرور الخاصة بك ، يتم إنشاء المجموع الاختباري ومقارنته بالمجموعة المسجلة باسم المستخدم الخاص بك. يتم منحك إذن بالدخول إذا كان الإثنان متطابقان.

بالنظر إلى أن وظيفة تجزئة التشفير تنتج فحصًا غير قابل للعكس ، فهل يعني ذلك أنه يمكنك جعل كلمة المرور الخاصة بك بسيطة مثل 12345 ، بدلاً من 12 $ 34 $ 5 ، وذلك ببساطة لأنه لا يمكن فهم الأختبارات نفسها؟ بالتأكيد لا ، وهنا لماذا ...

كما ترون ، كلاهما كلاهما من المستحيل فك رموز فقط من خلال النظر فقط في المجموع الاختباري:

MD5 for 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 لـ 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

لذا ، قد تعتقد للوهلة الأولى أنه من الجيد تمامًا استخدام أيٍّ من كلمات المرور هذه. هذا صحيح بالتأكيد إذا حاول أحد المهاجمين اكتشاف كلمة المرور الخاصة بك عن طريق تخمين فحص MD5 (الذي لا يفعله أحد) ، ولكن ليس صحيحًا إذا تم تنفيذ هجوم قوي أو هجوم قاموس (وهو أسلوب شائع).

هجوم القوة الغاشمة هو عندما يتم أخذ طعنات عشوائية متعددة لتخمين كلمة مرور. في هذه الحالة ، سيكون من السهل جدًا تخمين "12345" ، ولكن من الصعب جدًا تحديد الرقم الآخر بشكل عشوائي. يتشابه هجوم القاموس في أن المهاجم يمكن أن يجرب كل كلمة أو رقم أو عبارة من قائمة كلمات المرور الشائعة (والأقل استخدامًا) ، "12345" بالتأكيد هو واحدًا يمكن تجربته.

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

نصيحة: اطلع على أمثلة لكلمات المرور الضعيفة والقوية إذا لم تكن متأكدًا مما إذا كانت كلماتك تمثل كلمة مرور قوية أم لا.

مزيد من المعلومات حول وظائف تجزئة التشفير

قد يبدو أن وظائف هاش التشفير مرتبطة بالتشفير لكن العملان بطرق مختلفة للغاية.

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

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

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

يمكن أن تحدث الاصطدامات الأسباب لأن كل دالة تجزئة تشفير تنتج قيمة طول ثابت بغض النظر عن بيانات الإدخال. على سبيل المثال ، تقوم دالة تجزئة التشفير MD5 بإنشاء 827ccb0eea8a706c4c34a16891f84e7b و 1f633b2909b9c1addf32302c7a497983 و e10adc3949ba59abbe56e057f20f883e لثلاث كتل مختلفة تمامًا من البيانات.

المجموع الاختباري الأول من 12345 ، تم إنشاء الثاني من أكثر من 700 حرف وأرقام ، والثالث من 123456 . جميع هذه المدخلات الثلاثة ذات أطوال مختلفة ولكن النتائج دائمًا ما تكون 32 حرفًا منذ استخدام MD5.

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

هذا السبب تم إنشاء وظائف تجزئة التشفير الأخرى. بينما ينشئ MD5 قيمة 32-حرف ، ينشئ SHA-1 40 حرفًا و SHA-2 (512) ينشئ 128. كلما زاد عدد الأحرف التي يحتوي عليها المجموع الاختباري ، قل احتمال حدوث التعارض لأنه يوفر مساحة أكبر لـ قيم فريدة.