SHA-256 (Secure Hash Algorithm 256-bit) هو دالة تجزئة تشفيرية تولد قيمة تجزئة بحجم ثابت بواقع 256 بت (32 بايت) من بيانات مدخل بحجم تعسفي. إليك شرحًا مبسطًا لكيفية عملها:
1. تعبئة المدخلات: يتم تعبئة رسالة الإدخال لضمان أن طولها مضاعف لـ 512 بت (64 بايت)، كما يتطلبه الخوارزمية.
2. البدء: تهيئة SHA-256 لثمانية متغيرات بـ 32 بت (تعرف باسم قيم التجزئة) إلى ثوابت معينة. تُستخدم هذه القيم لتهيئة وظيفة الضغط لمعالجة كتل من رسالة الإدخال.
3. معالجة الكتل: تُقسم رسالة التعبئة إلى كتل بحجم 512 بت. تخضع كل كتلة لسلسلة من التحولات باستخدام وظيفة ضغط تعمل على مخزن بحجم ثابت (512 بت) وتحدث قيم التجزئة.
4. وظيفة الضغط: لكل كتلة، تمزج وظيفة الضغط القيم التجزئية الحالية مع بيانات الكتلة في جولات متعددة من المعالجة. يتضمن ذلك عمليات البتوي (مثل AND، OR، XOR)، إضافة موديلو 2^32، وتحويلات دورية.
5. القيمة التجزئية النهائية:بعد معالجة جميع الكتل، يتم الحصول على القيمة التجزئية النهائية من القيم التجزئية التي تم تحديثها باستمرار طوال العملية. هذه القيمة التجزئية النهائية هي إخراج بحجم 256 بت يمثل بشكل فريد الرسالة الأصلية المدخلة.
تم تصميم SHA-256 لتكون فعالة حسابيًا مع توفير مستوى عالٍ من الأمان ضد هجمات التصادم (حيث ينتج مدخلان مختلفان نفس قيمة التجزئة) وهجمات الصورة المسبقة (العثور على مدخل يجزئ إلى إخراج محدد). يُستخدم على نطاق واسع في التواقيع الرقمية ورموز المصادقة على الرسائل (MACs)، ومختلف البروتوكولات الأمنية.