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

دالة تجزئة تشفيرية (وتحديدًا SHA-1 ) قيد التشغيل. تغيير طفيف في المدخلات (في كلمة "over") يُغير المخرجات (الخلاصة) بشكل جذري. يُسمى هذا التأثير بتأثير الانهيار الجليدي .

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

من الناحية الفنية: [ 4 ]

  • احتمالية شيء معينن{\displaystyle n}نتيجة الإخراج ذات البتات ( قيمة التجزئة ) لسلسلة إدخال عشوائية ("الرسالة") هي2-ن{\displaystyle 2^{-n}}(كما هو الحال بالنسبة لأي تجزئة جيدة)، لذلك يمكن استخدام قيمة التجزئة كممثل للرسالة؛
  • يُعدّ إيجاد سلسلة إدخال تُطابق قيمة تجزئة مُعطاة ( صورة أصلية ) أمرًا غير عملي، بافتراض أن جميع سلاسل الإدخال متساوية الاحتمالية. تُقاس مقاومة هذا البحث بقوة الأمان : تجزئة تشفيرية ذاتن{\displaystyle n}من المتوقع أن تتمتع بتات قيمة التجزئة بقوة مقاومة الصورة المسبقة بـن{\displaystyle n}بتات، إلا إذا كانت مساحة قيم الإدخال الممكنة أصغر بكثير من2ن{\displaystyle 2^{n}}(يمكن العثور على مثال عملي في §  الهجمات على كلمات المرور المجزأة
  • تشير قوة مقاومة الصورة المسبقة الثانية ، مع نفس التوقعات، إلى مشكلة مماثلة تتمثل في إيجاد رسالة ثانية تطابق قيمة التجزئة المعطاة عندما تكون إحدى الرسائل معروفة بالفعل؛
  • يُعدّ إيجاد أي زوج من الرسائل المختلفة التي تُنتج نفس قيمة التجزئة ( تصادم ) أمرًا غير ممكن أيضًا: من المتوقع أن تتمتع التجزئة المشفرة بقوة مقاومة للتصادم تبلغن/2{\displaystyle n/2}بتات (أقل بسبب مفارقة عيد الميلاد ).

تُستخدم دوال التجزئة المشفرة في العديد من تطبيقات أمن المعلومات ، لا سيما في التوقيعات الرقمية ، ورموز مصادقة الرسائل (MACs)، وغيرها من أشكال المصادقة . كما يمكن استخدامها كدوال تجزئة عادية ، لفهرسة البيانات في جداول التجزئة ، ولتحديد بصمات البيانات ، والكشف عن البيانات المكررة أو تحديد الملفات بشكل فريد، وكقيم تحقق للكشف عن تلف البيانات العرضي. في الواقع، في سياقات أمن المعلومات، تُسمى قيم التجزئة المشفرة أحيانًا ببصمات رقمية ، أو قيم تحقق ، أو ملخصات رسائل ، [ 5 ] أو ببساطة قيم تجزئة ، على الرغم من أن كل هذه المصطلحات تشير إلى دوال أكثر عمومية ذات خصائص وأغراض مختلفة تمامًا. [ 6 ]

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

ملكيات

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

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

مقاومة ما قبل الصورة
بفرض قيمة تجزئة h ، ينبغي أن يكون من الصعب إيجاد أي رسالة m بحيث يكون h = hash( m ) . يرتبط هذا المفهوم بمفهوم الدالة أحادية الاتجاه . الدوال التي تفتقر إلى هذه الخاصية تكون عرضة لهجمات الصورة العكسية .
مقاومة ما قبل الصورة الثانية
بفرض وجود مدخل m1 ، ينبغي أن يكون من الصعب إيجاد مدخل مختلف m2 بحيث يكون تجزئة ( m1 ) مساويًا لتجزئة ( m2 ) . تُعرف هذه الخاصية أحيانًا بمقاومة التصادم الضعيفة . أما الدوال التي تفتقر إلى هذه الخاصية فهي عرضة لهجمات الصورة العكسية الثانية .
مقاومة التصادم
من الصعب إيجاد رسالتين مختلفتين m1 و m2 بحيث يكون تجزئة ( m1 ) = تجزئة ( m2 ) . يُطلق على هذا الزوج اسم تصادم التجزئة التشفيري . تُعرف هذه الخاصية أحيانًا باسم مقاومة التصادم القوية . تتطلب هذه الخاصية قيمة تجزئة لا تقل عن ضعف القيمة المطلوبة لمقاومة الصورة المسبقة؛ وإلا، يمكن اكتشاف التصادمات من خلال هجوم عيد الميلاد . [ 8 ]

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

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

قد تمتلك الدالة التي تستوفي هذه المعايير خصائص غير مرغوب فيها. حاليًا، تُعدّ دوال التجزئة التشفيرية الشائعة عرضةً لهجمات تمديد الطول : فبمعرفة hash( m ) و len( m ) ولكن ليس m ، يمكن للمهاجم ، باختيار قيمة مناسبة لـ m ′، حساب hash( mm ) ، حيث يرمز إلى عملية الربط . [ 10 ] يمكن استغلال هذه الخاصية لاختراق أنظمة المصادقة البسيطة القائمة على دوال التجزئة. ويتغلب بناء HMAC على هذه المشاكل.

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

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

درجة الصعوبة

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

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

In some theoretical analyses "difficult" has a specific mathematical meaning, such as "not solvable in asymptoticpolynomial time". Such interpretations of difficulty are important in the study of provably secure cryptographic hash functions but do not usually have a strong connection to practical security. For example, an exponential-time algorithm can sometimes still be fast enough to make a feasible attack. Conversely, a polynomial-time algorithm (e.g., one that requires n20 steps for n-digit keys) may be too slow for any practical use.

Illustration

An illustration of the potential use of a cryptographic hash is as follows: Alice poses a tough math problem to Bob and claims that she has solved it. Bob would like to try it himself, but would yet like to be sure that Alice is not bluffing. Therefore, Alice writes down her solution, computes its hash, and tells Bob the hash value (whilst keeping the solution secret). Then, when Bob comes up with the solution himself a few days later, Alice can prove that she had the solution earlier by revealing it and having Bob hash it and then check that it matches the hash value given to him before. (This is an example of a simple commitment scheme; in actual practice, Alice and Bob will often be computer programs, and the secret would be something less easily spoofed than a claimed puzzle solution.)

Applications

Verifying the integrity of messages and files

An important application of secure hashes is the verification of message integrity. Comparing message digests (hash digests over the message) calculated before, and after, transmission can determine whether any changes have been made to the message or file.

تُنشر أحيانًا ملخصات التجزئة MD5 أو SHA-1 أو SHA-2 على مواقع الويب أو المنتديات للتحقق من سلامة الملفات المُنزّلة، [ 12 ] بما في ذلك الملفات المُسترجعة عبر مشاركة الملفات مثل النسخ المتطابق . تُرسّخ هذه الممارسة سلسلة ثقة طالما نُشرت التجزئات على موقع موثوق - عادةً الموقع الأصلي - مُصادق عليه بواسطة HTTPS . يُساعد استخدام التجزئة المشفرة وسلسلة الثقة في الكشف عن التغييرات الضارة في الملف. أما رموز الكشف عن الأخطاء غير المشفرة ، مثل فحوصات التكرار الدوري، فتمنع فقط التعديلات غير الضارة على الملف، إذ يُمكن بسهولة إنشاء تزوير مُتعمّد ليحتوي على قيمة الرمز المُخالف .

إنشاء التوقيع والتحقق منه

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

التحقق من كلمة المرور

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

مع ذلك، لم يعد استخدام دوال التشفير القياسية، مثل سلسلة SHA، آمنًا لتخزين كلمات المرور. [ 13 ] : 5.1.1.2 صُممت هذه الخوارزميات لتُحسب بسرعة، لذا في حال اختراق قيم التجزئة، يُمكن تجربة كلمات مرور مُخمنة بمعدلات عالية. تستطيع وحدات معالجة الرسومات الشائعة تجربة مليارات كلمات المرور المُحتملة كل ثانية. تستخدم دوال تجزئة كلمات المرور التي تُجري تمديدًا للمفتاح - مثل PBKDF2 أو scrypt أو Argon2 - عادةً استدعاءات مُتكررة لدالة التشفير لزيادة الوقت (وفي بعض الحالات ذاكرة الحاسوب) اللازم لتنفيذ هجمات القوة الغاشمة على مُلخصات تجزئة كلمات المرور المُخزنة. لمزيد من التفاصيل، انظر §  الهجمات على كلمات المرور المُجزأة .

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

إثبات العمل

نظام إثبات العمل (أو البروتوكول، أو الدالة) هو إجراء اقتصادي لردع هجمات حجب الخدمة وغيرها من إساءة استخدام الخدمة، مثل البريد العشوائي، على الشبكة، وذلك من خلال اشتراط بذل جهد من جانب طالب الخدمة، وعادةً ما يكون ذلك وقت معالجة بواسطة الحاسوب. من السمات الرئيسية لهذه الأنظمة عدم التناظر: يجب أن يكون الجهد المطلوب متوسط ​​الصعوبة (ولكنه ممكن) من جانب طالب الخدمة، بينما يسهل على مزود الخدمة التحقق منه. أحد الأنظمة الشائعة - المستخدمة في تعدين البيتكوين وهاشكاش - يستخدم عمليات عكس التجزئة الجزئية لإثبات إنجاز العمل، وللحصول على مكافأة تعدين بالبيتكوين، وكرمز حسن نية لإرسال بريد إلكتروني في هاشكاش. يُطلب من المرسل إيجاد رسالة تبدأ قيمة تجزئتها بعدد من الأصفار. متوسط ​​الجهد الذي يحتاجه المرسل لإيجاد رسالة صالحة يتناسب طرديًا مع عدد الأصفار المطلوبة في قيمة التجزئة، بينما يمكن للمستلم التحقق من صحة الرسالة بتنفيذ دالة تجزئة واحدة. على سبيل المثال، في خوارزمية Hashcash، يُطلب من المُرسِل إنشاء رأسية يكون فيها أول 20 بت من قيمة تجزئة SHA-1 ذات 160 بت عبارة عن أصفار. سيحتاج المُرسِل، في المتوسط، إلى المحاولة 2 ^19 مرة للعثور على رأسية صالحة.

معرّف الملف أو البيانات

A message digest can also serve as a means of reliably identifying a file; several source code management systems, including Git, Mercurial and Monotone, use the sha1sum of various types of content (file content, directory trees, ancestry information, etc.) to uniquely identify them. Hashes are used to identify files on peer-to-peerfilesharing networks. For example, in an ed2k link, an MD4-variant hash is combined with the file size, providing sufficient information for locating file sources, downloading the file, and verifying its contents. Magnet links are another example. Such file hashes are often the top hash of a hash list or a hash tree, which allows for additional benefits.

One of the main applications of a hash function is to allow the fast look-up of data in a hash table. Being hash functions of a particular kind, cryptographic hash functions lend themselves well to this application too.

However, compared with standard hash functions, cryptographic hash functions tend to be much more expensive computationally. For this reason, they tend to be used in contexts where it is necessary for users to protect themselves against the possibility of forgery (the creation of data with the same digest as the expected data) by potentially malicious participants, such as open source applications with multiple sources of download, where malicious files could be substituted in with the same appearance to the user, or an authentic file is modified to contain malicious data.[14]

Content-addressable storage

Content-addressable storage (CAS), also referred to as content-addressed storage or fixed-content storage, is a way to store information so it can be retrieved based on its content, not its name or location. It has been used for high-speed storage and retrieval of fixed content, such as documents stored for compliance with government regulations. Content-addressable storage is similar to content-addressable memory.

CAS systems work by passing the content of the file through a cryptographic hash function to generate a unique key, the "content address". The file system's directory stores these addresses and a pointer to the physical storage of the content. Because an attempt to store the same file will generate the same key, CAS systems ensure that the files within them are unique, and because changing the file will result in a new key, CAS systems provide assurance that the file is unchanged.

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

دوال التجزئة القائمة على تشفير الكتل

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

تُشبه هذه الطرق أنماط تشفير الكتل المستخدمة عادةً في التشفير. العديد من دوال التجزئة المعروفة، مثل MD4 و MD5 و SHA-1 و SHA-2 ، مبنية على مكونات شبيهة بتشفير الكتل مصممة لهذا الغرض، مع آلية تغذية راجعة لضمان عدم إمكانية عكس الدالة الناتجة. تضمنت القائمة النهائية لـ SHA-3 دوالًا بمكونات شبيهة بتشفير الكتل (مثل Skein و BLAKE )، إلا أن الدالة المختارة في النهاية، Keccak ، بُنيت على أساس إسفنجة تشفيرية .

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

تصميم دالة التجزئة

بناء ميركل-دامجارد

بناء تجزئة Merkle – Damgård

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

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

الأنبوب العريض مقابل الأنبوب الضيق

يؤدي تطبيق بنية Merkle–Damgård بشكل مباشر، حيث يكون حجم ناتج التجزئة مساويًا لحجم الحالة الداخلية (بين كل خطوة ضغط)، إلى تصميم تجزئة ذي مسار ضيق . يتسبب هذا التصميم في العديد من العيوب المتأصلة، بما في ذلك تمديد الطول ، والتصادمات المتعددة، [ 15 ] وهجمات الرسائل الطويلة، [ 16 ] وهجمات التوليد واللصق، كما أنه غير قابل للتوازي. ونتيجة لذلك، تُبنى دوال التجزئة الحديثة على بنيات ذات مسار واسع تتميز بحجم حالة داخلية أكبر، والتي تتراوح بين تعديلات على بنية Merkle–Damgård [ 15 ] وبنيات جديدة مثل بنية الإسفنج وبنية HAIFA . [ 17 ] لم يستخدم أي من المشاركين في مسابقة NIST لدوال التجزئة بنية Merkle–Damgård الكلاسيكية. [ 18 ]

في الوقت نفسه، فإن اقتطاع ناتج التجزئة الأطول، كما هو مستخدم في SHA-512/256، يفشل أيضاً العديد من هذه الهجمات. [ 19 ]

يُستخدم في بناء عناصر التشفير الأساسية الأخرى

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

تُبنى رموز مصادقة الرسائل (MACs) (وتُسمى أيضًا دوال التجزئة المفتاحية) غالبًا من دوال التجزئة. HMAC هو أحد هذه الرموز.

كما يمكن استخدام تشفيرات الكتل لبناء دوال التجزئة، يمكن استخدام دوال التجزئة لبناء تشفيرات الكتل. يمكن إثبات أمان بنى لوبي-راكوف التي تستخدم دوال التجزئة إذا كانت دالة التجزئة الأساسية آمنة. كذلك، تُبنى العديد من دوال التجزئة (بما في ذلك SHA-1 و SHA-2 ) باستخدام تشفير كتل مُخصص في بنية ديفيز-ماير أو غيرها. يمكن أيضًا استخدام هذا التشفير في وضع تشغيل تقليدي، دون ضمانات الأمان نفسها؛ على سبيل المثال، SHACAL و BEAR و LION .

يمكن بناء مولدات الأرقام شبه العشوائية (PRNGs) باستخدام دوال التجزئة. ويتم ذلك عن طريق دمج بذرة عشوائية (سرية) مع عداد ثم تجزئتها.

تُخرج بعض دوال التجزئة، مثل Skein و Keccak و RadioGatún ، سلسلة بيانات طويلة كيفما كانت، ويمكن استخدامها كخوارزمية تشفير متدفقة . كما يمكن بناء خوارزميات التشفير المتدفقة من دوال تجزئة ذات طول ثابت. غالبًا ما يتم ذلك عن طريق بناء مولد أرقام شبه عشوائية آمن تشفيريًا، ثم استخدام سلسلة البايتات العشوائية الناتجة عنه كسلسلة مفاتيح . SEAL هي خوارزمية تشفير متدفقة تستخدم SHA-1 لإنشاء جداول داخلية، تُستخدم بدورها في مولد سلسلة مفاتيح لا يرتبط ارتباطًا وثيقًا بخوارزمية التجزئة. لا يُضمن أن تكون SEAL بنفس قوة (أو ضعف) SHA-1. وبالمثل، يعتمد توسيع مفتاح خوارزميتي التشفير المتدفقتين HC-128 وHC-256 بشكل كبير على دالة التجزئة SHA-256 .

سلسلة

يُوفر دمج مخرجات دوال التجزئة المتعددة مقاومةً للتصادم تُضاهي أقوى الخوارزميات المُستخدمة في النتيجة المُدمجة. على سبيل المثال، استخدمت الإصدارات القديمة من بروتوكول أمان طبقة النقل (TLS) وبروتوكول طبقة المقابس الآمنة (SSL) مجموعات MD5 و SHA-1 المُدمجة . [ 20 ] [ 21 ] وهذا يضمن أن طريقة البحث عن التصادمات في إحدى دوال التجزئة لا تُؤدي إلى اختراق البيانات المحمية بواسطة كلتا الدالتين.

بالنسبة لدوال التجزئة المُنشأة باستخدام خوارزمية ميركل-دامغارد ، تكون الدالة المُدمجة مقاومة للتصادمات بنفس مقاومة أقوى مكوناتها، ولكنها ليست أكثر مقاومة. لاحظ أنطوان جو أن التصادمات الثنائية تؤدي إلى تصادمات من الرتبة n : إذا كان بإمكان المهاجم العثور على رسالتين لهما نفس قيمة تجزئة MD5، فبإمكانه العثور على أي عدد من الرسائل الإضافية التي تحمل نفس قيمة التجزئة دون أي صعوبة إضافية. [ 22 ] من بين هذه الرسائل n التي تحمل نفس قيمة تجزئة MD5، من المرجح وجود تصادم في خوارزمية SHA-1. يتطلب العمل الإضافي اللازم للعثور على تصادم SHA-1 (إضافةً إلى البحث الأسي في عيد الميلاد) وقتًا متعدد الحدود فقط . [ 23 ] [ 24 ]

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

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

MD5

صُممت خوارزمية MD5 بواسطة رونالد ريفست عام 1991 لتحل محل خوارزمية التجزئة السابقة MD4، وتم تحديدها رسميًا عام 1992 في RFC 1321. يمكن حساب التصادمات مع MD5 في غضون ثوانٍ، مما يجعل الخوارزمية غير مناسبة لمعظم حالات الاستخدام التي تتطلب تجزئة تشفيرية. تُنتج MD5 ملخصًا بحجم 128 بت (16 بايت).

SHA-1

طُوِّرَت خوارزمية SHA-1 كجزء من مشروع كابستون التابع للحكومة الأمريكية . نُشرت المواصفات الأصلية للخوارزمية - والتي تُعرف الآن باسم SHA-0 - في عام 1993 تحت عنوان "معيار التجزئة الآمن" (FIPS PUB 180) من قِبَل المعهد الوطني للمعايير والتكنولوجيا (NIST)، وهو وكالة معايير تابعة للحكومة الأمريكية. سُحِبَت هذه المواصفات من قِبَل وكالة الأمن القومي (NSA) بعد فترة وجيزة من نشرها، واستُبدِلَت بنسخة مُنقَّحة نُشرت في عام 1995 في FIPS  PUB  180-1، وتُعرف باسم SHA-1. يُمكن إحداث تصادمات مع خوارزمية SHA-1 الكاملة باستخدام هجوم التجزئة المُجزَّأة ، ويُعتبر حينها أن دالة التجزئة مُعطَّلة. تُنتج خوارزمية SHA-1 مُلخَّص تجزئة بطول 160 بت (20 بايت).

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

RIPEMD-160

RIPEMD (اختصار لـ RACE Integrity Primitives Evaluation Message Digest) هي عائلة من دوال التشفير التجزئية طُوِّرت في مدينة لوفين ببلجيكا على يد هانز دوبيرتين، وأنتون بوسيلرز، وبارت برينيل في مجموعة أبحاث COSIC التابعة لجامعة لوفين الكاثوليكية، ونُشرت لأول مرة عام 1996. استندت RIPEMD إلى مبادئ التصميم المستخدمة في MD4، وتُشابه في أدائها خوارزمية SHA-1 الأكثر شيوعًا. مع ذلك، لم يتم اختراق RIPEMD-160. وكما يوحي الاسم، تُنتج RIPEMD-160 ملخصًا تجزئيًا بطول 160 بت (20 بايت).

دوامة

ويرلبول هي دالة تجزئة تشفيرية صممها فينسنت ريجمان وباولو إس إل إم باريتو، اللذان وصفاها لأول مرة عام 2000. تعتمد ويرلبول على نسخة معدلة بشكل كبير من معيار التشفير المتقدم (AES). تنتج ويرلبول ملخص تجزئة بحجم 512 بت (64 بايت).

SHA-2

SHA-2 (خوارزمية التجزئة الآمنة 2) هي مجموعة من وظائف التجزئة المشفرة التي صممتها وكالة الأمن القومي الأمريكية (NSA)، ونُشرت لأول مرة في عام 2001. وهي مبنية باستخدام بنية Merkle–Damgård، من وظيفة ضغط أحادية الاتجاه مبنية بدورها باستخدام بنية Davies–Meyer من تشفير كتلة متخصص (مصنف).

يتكون SHA-2 أساسًا من خوارزميتين للتجزئة: SHA-256 وSHA-512. أما SHA-224 فهو نسخة معدلة من SHA-256 بقيم ابتدائية مختلفة ومخرجات مختصرة. وتُعدّ كل من SHA-384 وSHA-512/224 وSHA-512/256، الأقل شهرة، نسخًا معدلة من SHA-512. يُعتبر SHA-512 أكثر أمانًا من SHA-256، وعادةً ما يكون أسرع منه على الأجهزة ذات معالجات 64 بت، مثل AMD64 .

يتم تحديد حجم الإخراج بالبتات من خلال امتداد اسم "SHA"، لذا فإن SHA-224 له حجم إخراج يبلغ 224 بت (28 بايت)؛ SHA-256، 32 بايت؛ SHA-384، 48 بايت؛ وSHA-512، 64 بايت.

SHA-3

أصدر المعهد الوطني للمعايير والتكنولوجيا (NIST) خوارزمية التجزئة الآمنة SHA-3 (Secure Hash Algorithm 3) في 5 أغسطس 2015. تُعدّ SHA-3 جزءًا من عائلة خوارزميات التشفير الأساسية Keccak. خوارزمية Keccak هي من ابتكار غيدو بيرتوني، وجوان دايمين، ومايكل بيترز، وجيل فان آش. تعتمد Keccak على بنية الإسفنج، والتي يمكن استخدامها أيضًا لبناء خوارزميات تشفير أساسية أخرى مثل تشفير التدفق. توفر SHA-3 نفس أحجام المخرجات التي توفرها SHA-2: 224، 256، 384، و512 بت.

يمكن أيضًا الحصول على أحجام إخراج قابلة للتكوين باستخدام دالتي SHAKE-128 وSHAKE-256. تشير الامتدادات -128 و-256 في الاسم إلى قوة أمان الدالة وليس إلى حجم الإخراج بالبتات.

بليك 2

أُعلن عن BLAKE2، وهو نسخة محسّنة من BLAKE، في 21 ديسمبر 2012. وقد طُوّر بواسطة جان-فيليب أوماسون، وصموئيل نيفيس، وزوكو ويلكوكس-أوهيرن ، وكريستيان وينرلين بهدف استبدال خوارزميتي MD5 وSHA-1 واسعتي الانتشار ولكنهما تعانيان من مشاكل. عند تشغيله على معمارية x64 وARM ذات 64 بت، يكون BLAKE2b أسرع من SHA-3 وSHA-2 وSHA-1 وMD5. على الرغم من أن BLAKE وBLAKE2 لم تُعتمدا كمعيار لـ SHA-3، فقد استُخدم BLAKE2 في العديد من البروتوكولات، بما في ذلك خوارزمية تجزئة كلمات المرور Argon2 ، وذلك لكفاءته العالية على وحدات المعالجة المركزية الحديثة. ولأن BLAKE كان مرشحًا لـ SHA-3، فإن كلاً من BLAKE وBLAKE2 يوفران نفس أحجام المخرجات التي يوفرها SHA-3، بما في ذلك إمكانية ضبط حجم المخرجات.

بليك 3

أُعلن عن BLAKE3، وهو نسخة محسّنة من BLAKE2، في 9 يناير 2020. وقد طوّره كلٌّ من جاك أوكونور، وجان فيليب أوماسون، وصموئيل نيفيس، وزوكو ويلكوكس-أوهيرن. يُعدّ BLAKE3 خوارزميةً واحدة، على عكس BLAKE وBLAKE2، وهما عائلتان من الخوارزميات ذات عدّة متغيرات. تعتمد دالة الضغط في BLAKE3 بشكلٍ كبير على دالة الضغط في BLAKE2، مع اختلافٍ رئيسي يتمثل في تقليل عدد الجولات من 10 إلى 7. داخليًا، يُمثّل BLAKE3 شجرة ميركل ، ويدعم درجاتٍ أعلى من التوازي مقارنةً بـ BLAKE2.

خوارزميات التجزئة الوطنية الإضافية

توجد العديد من خوارزميات التجزئة التي تُستخدم عمومًا في مناطق أو ولايات قضائية معينة فقط، ومن بين الخوارزميات الأكثر شهرة ما يلي:

الهجمات على خوارزميات التشفير التجزئية

توجد قائمة طويلة من دوال التشفير التجزئية، ولكن تبين أن العديد منها عرضة للاختراق، لذا يُنصح بعدم استخدامها. على سبيل المثال، اختار المعهد الوطني للمعايير والتكنولوجيا (NIST) 51 دالة تجزئة [ 25 ] كمرشحة للجولة الأولى من مسابقة SHA-3، حيث اعتُبرت 10 منها معيبة، بينما أظهرت 16 دالة أخرى نقاط ضعف كبيرة، وبالتالي لم تتأهل للجولة التالية. يمكنكم الاطلاع على المزيد من المعلومات في المقال الرئيسي حول مسابقات دوال التجزئة التي يُنظمها المعهد الوطني للمعايير والتكنولوجيا .

حتى لو لم يتم اختراق دالة تجزئة مطلقًا، فإن هجومًا ناجحًا على نسخة مُضعفة منها قد يُزعزع ثقة الخبراء. على سبيل المثال، في أغسطس 2004، تم اكتشاف تصادمات في العديد من دوال التجزئة الشائعة آنذاك، بما في ذلك MD5. [ 26 ] وقد أثارت نقاط الضعف هذه تساؤلات حول أمان الخوارزميات الأقوى المُشتقة من دوال التجزئة الضعيفة، ولا سيما SHA-1 (نسخة مُعززة من SHA-0)، وRIPEMD-128، وRIPEMD-160 (كلاهما نسختان مُعززتان من RIPEMD). [ 27 ]

في 12 أغسطس/آب 2004، أعلن كلٌّ من جوكس وكاريبو وليمويل وجالبي عن اكتشاف تصادم لخوارزمية SHA-0 الكاملة. [ 22 ] وقد حقق جوكس وزملاؤه ذلك باستخدام تعميم لهجوم شابود وجوكس. ووجدوا أن التصادم ذو تعقيد 2^ 51، واستغرق حوالي 80,000 ساعة معالجة على حاسوب فائق مزود بـ 256 معالجًا من نوع إيتانيوم 2 ، أي ما يعادل 13 يومًا من الاستخدام المتواصل للحاسوب.

In February 2005, an attack on SHA-1 was reported that would find collision in about 269 hashing operations, rather than the 280 expected for a 160-bit hash function. In August 2005, another attack on SHA-1 was reported that would find collisions in 263 operations. Other theoretical weaknesses of SHA-1 have been known,[28][29] and in February 2017 Google announced a collision in SHA-1.[30] Security researchers recommend that new applications can avoid these problems by using later members of the SHA family, such as SHA-2, or using techniques such as randomized hashing[31] that do not require collision resistance.

A successful, practical attack broke MD5 (used within certificates for Transport Layer Security) in 2008.[32]

Many cryptographic hashes are based on the Merkle–Damgård construction. All cryptographic hashes that directly use the full output of a Merkle–Damgård construction are vulnerable to length extension attacks. This makes the MD5, SHA-1, RIPEMD-160, Whirlpool, and the SHA-256 / SHA-512 hash algorithms all vulnerable to this specific attack. SHA-3, BLAKE2, BLAKE3, and the truncated SHA-2 variants are not vulnerable to this type of attack.

Attacks on hashed passwords

Rather than store plain user passwords, controlled-access systems frequently store the hash of each user's password in a file or database. When someone requests access, the password they submit is hashed and compared with the stored value. If the database is stolen (an all-too-frequent occurrence[33]), the thief will only have the hash values, not the passwords.

Passwords may still be retrieved by an attacker from the hashes, because most people choose passwords in predictable ways. Lists of common passwords are widely circulated and many passwords are short enough that even all possible combinations may be tested if calculation of the hash does not take too much time.[34]

The use of cryptographic salt prevents some attacks, such as building files of precomputing hash values, e.g. rainbow tables. But searches on the order of 100 billion tests per second are possible with high-end graphics processors, making direct attacks possible even with salt.[35][36] The United States National Institute of Standards and Technology recommends storing passwords using special hashes called key derivation functions (KDFs) that have been created to slow brute force searches.[13]:5.1.1.2 Slow hashes include pbkdf2, bcrypt, scrypt, argon2, Balloon and some recent modes of Unix crypt. For KDFs that perform multiple hashes to slow execution, NIST recommends an iteration count of 10,000 or more.[13]:5.1.1.2

See also

References

Citations

  1. "Introduction to key usage in integrated firmware images". Intel.com. Retrieved July 18, 2026.
  2. 12"What is Hashing?". Codeacademy.com. Mar 27, 2025. Retrieved July 18, 2026.
  3. "Testing and Review Process". New York State Board of Elections. Retrieved July 18, 2026.
  4. Menezes, van Oorschot & Vanstone 2018, p. 33.
  5. "message digest". Computer Security Resource Center - Glossary. NIST.
  6. Schneier, Bruce. "Cryptanalysis of MD5 and SHA: Time for a New Standard". Computerworld. Archived from the original on 2016-03-16. Retrieved 2016-04-20. Much more than encryption algorithms, one-way hash functions are the workhorses of modern cryptography.
  7. Aumasson 2017, p. 106.
  8. Katz & Lindell 2014, pp. 155–157, 190, 232.
  9. روجاواي وشريمبتون 2004 ، في القسم 5. الآثار المترتبة.
  10. دوونغ، تاي؛ ريزو، جوليانو. "ثغرة أمنية في تزوير توقيع واجهة برمجة تطبيقات فليكر" . مؤرشف من الأصل بتاريخ 15 أغسطس 2013. تم الاطلاع عليه بتاريخ 7 ديسمبر 2012 .
  11. Lyubashevsky et al. 2008 ، ص 54-72.
  12. بيرين، تشاد (5 ديسمبر 2007). "استخدام تجزئات MD5 للتحقق من تنزيلات البرامج" . TechRepublic . مؤرشف من الأصل في 18 أكتوبر 2012. تم الاطلاع عليه في 2 مارس 2013 .
  13. 1 2 3 غراسي بول أ. (يونيو 2017). SP 800-63B-3 – إرشادات الهوية الرقمية، والمصادقة، وإدارة دورة الحياة . المعهد الوطني للمعايير والتكنولوجيا. doi : 10.6028/NIST.SP.800-63b .
  14. "تجزئة الملفات" (ملف PDF) . وكالة الأمن السيبراني وأمن البنية التحتية . مؤرشف (ملف PDF) من الأصل في 2 فبراير 2025. تم الاطلاع عليه في 10 مارس 2025 .
  15. 1 2 لوكس، ستيفان (2004). "مبادئ تصميم دوال التجزئة المتكررة" . أرشيف الطباعة الإلكترونية لعلم التشفير . التقرير 2004/253. مؤرشف من الأصل بتاريخ 21-05-2017 . تم الاطلاع عليه بتاريخ 18-07-2017 .
  16. كيلسي وشنايير 2005 ، ص 474-490.
  17. بيهام، إيلي؛ دانكلمان، أور (24 أغسطس 2006). إطار عمل لوظائف التجزئة التكرارية - HAIFA . ورشة عمل NIST الثانية للتجزئة التشفيرية. أرشيف Cryptology ePrint . التقرير 2007/278. مؤرشف من الأصل في 28 أبريل 2017. تم الاطلاع عليه في 18 يوليو 2017 .
  18. ناندي وبول 2010 .
  19. دوبراونيغ، كريستوف؛ إيشلسيدر، ماريا؛ مندل، فلوريان (فبراير 2015). تقييم أمني لخوارزميات SHA-224 وSHA-512/224 وSHA-512/256 (ملف PDF) (تقرير). مؤرشف (PDF) من النسخة الأصلية بتاريخ 27 ديسمبر 2016. تم الاطلاع عليه بتاريخ 18 يوليو 2017 .
  20. مندل وآخرون ، ص 145: غالبًا ما يستخدم المطورون دمج ... لـ "التحوط" من مخاطر استخدام دوال التجزئة. مُجمِّع من نوع MD5
  21. هارنيك وآخرون 2005 ، ص 99: إن ربط وظائف التجزئة كما هو مقترح في TLS ... مضمون أن يكون آمنا مثل المرشح الذي يظل آمنا.
  22. 1 2 Joux 2004 .
  23. فيني، هال (20 أغسطس 2004). "مزيد من المشاكل مع دوال التجزئة" . قائمة بريد التشفير . مؤرشف من الأصل في 9 أبريل 2016. تم الاطلاع عليه في 25 مايو 2016 .
  24. ^ هوش وشمير 2008 ، ص 616-630.
  25. أندرو ريغنشايد، راي بيرلنر، شو-جين تشانغ، جون كيلسي، مريدول ناندي، سوراديوتي بول، تقرير حالة عن الجولة الأولى من مسابقة خوارزمية التشفير SHA-3، مؤرشف بتاريخ 5 يونيو 2018 في أرشيف الإنترنت (Wayback Machine) .
  26. شياويون وانغ، دينغقو فنغ، شويجيا لاي، هونغبو يو، تصادمات دوال التجزئة MD4 وMD5 وHAVAL-128 وRIPEMD. مؤرشف في 20 ديسمبر 2004 على موقع Wayback Machine.
  27. الشيخلي، عماد فخري؛ الأحمد، محمد عبد اللطيف (2015)، "دالة التجزئة التشفيرية"، دليل الأبحاث حول اكتشاف التهديدات والتدابير المضادة في أمن الشبكات ، IGI Global، ص 80-94 ، doi : 10.4018/978-1-4666-6583-5.ch006 ، ISBN  978-1-4666-6583-5
  28. Xiaoyun Wang, Yiqun Lisa Yin , , Hongbo Yu, “ Finding Collisions in the Full SHA-1 Archived 2017-07-15 at the Wayback Machine “.
  29. شناير، بروس (18 فبراير 2005). "تحليل تشفير SHA-1" . شناير حول الأمن . مؤرشف من الأصل في 16 يناير 2013. تم الاطلاع عليه في 30 مارس 2009 .يلخص نتائج وانغ وآخرون وآثارها.
  30. بريستر، توماس (23 فبراير 2017). "جوجل تُحطّم خوارزمية تشفير قديمة - إليكم سبب أهمية ذلك لأمن الويب" . فوربس . مؤرشف من الأصل في 24 فبراير 2017. تم الاطلاع عليه في 24 فبراير 2017 .
  31. هاليفي، شاي؛ كراوتشيك، هوغو. "التجزئة العشوائية والتوقيعات الرقمية" . مؤرشف من الأصل في 22 مايو 2022.
  32. سوتيروف، أ؛ ستيفنز، م؛ أبيلباوم، ج؛ لينسترا، أ؛ مولنار، د؛ أوسفيك، د.أ؛ دي ويجر، ب (30 ديسمبر 2008). "يُعتبر MD5 ضارًا اليوم: إنشاء شهادة CA مزيفة" . هاش كلاش . قسم الرياضيات وعلوم الحاسوب بجامعة آيندهوفن للتكنولوجيا. مؤرشف من الأصل في 25 مارس 2017. تم الاسترجاع في 29 مارس 2009 .
  33. سوينهو، دان؛ هيل، مايكل (17 أبريل 2020). "أكبر 15 اختراقًا للبيانات في القرن الحادي والعشرين" . مجلة CSO. مؤرشف من الأصل في 24 نوفمبر 2020. تم الاطلاع عليه في 25 نوفمبر 2020 .
  34. غودين، دان (10 ديسمبر 2012). "مجموعة حاسوبية تضم 25 وحدة معالجة رسومية تكسر جميع كلمات مرور ويندوز القياسية في أقل من 6 ساعات" . آرس تكنيكا . مؤرشف من الأصل في 21 نوفمبر 2020. تم الاطلاع عليه في 23 نوفمبر 2020 .
  35. كلابورن، توماس (14 فبراير 2019). "هل تستخدم كلمة مرور ويندوز NTLM مكونة من 8 أحرف؟ لا تفعل. يمكن اختراق أي منها في أقل من ساعتين ونصف" . ذا ريجستر . مؤرشف من الأصل بتاريخ 25 أبريل 2020. تم الاطلاع عليه بتاريخ 26 نوفمبر 2020 .
  36. "تطور مذهل في أداء وحدة معالجة الرسومات" . إمبروسيك. 3 يناير 2020. مؤرشف من الأصل في 9 أبريل 2023.

مصادر