تعتبر كل من وظائف التجزئة التقليدية والتشفيرية حتمية. ومعنى أن تكون حتمية هو أنه طالما لم يتغير الإدخال (المدخلات) فإن خوارزمية التجزئة ستنتج دائمًا نفسفإن خوارزمية التجزئة ستنتج دائمًا نفس المخرجات (المعروف أيضًا باسم Digest أو Hash).
عادة يتم تصميم خوارزميات التجزئة للعملات الرقمية كوظائف أحادية الاتجاه مما يعني أنه لا يمكن التراجع عنها بسهولة دون وجود كميات كبيرة من الوقت والموارد الحاسوبية. بمعنى آخر، من السهل للغاية الحصول على المخرجات من المدخلات ولكن من الصعب نسبيًا حدوث العكس (الحصول على المدخلات من المخرجات فقط). بشكل عام كلما زادت صعوبة العثور على المدخلات كلما كانت خوارزمية التجزئة أكثر أمانًا.
كيف تعمل دالات/وظائف التجزئة؟
تنتج دالات التجزئة المختلفة مخرجات بأحجام مختلفة لكن أحجام المخرجات الممكنة لكل خوارزمية تجزئة ثابتة دائمًا. على سبيل المثال لا يمكن لخوارزمية SHA-256 سوى إنتاج مخرجات يبلغ حجمها 256 bits، بينما تنشئ SHA-1 ملخصًا مكونًا من 160 bits دائمًا.
للتوضيح، لنقم بتشغيل كلمة “Binance” و “binance” من خلال خوارزمية التجزئة SHA-256 (التي يتم إستخدامها في البيتكوين).
SHA-256 | |
Input | Output (256 bits) |
Binance | f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191 |
binance | 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2 |
لاحظ أن التغيير الطفيف (في شكل الحرف الأول) أدى إلى قيمة تجزئة مختلفة تمامًا. ولكن نظرًا لأننا نستخدم SHA-256 فسيكون للمخرجات دائمًا حجم ثابت يبلغ 256-bits (أو 64 حرفًا) بغض النظر عن حجم الإدخال (Input). أيضًا لا يهم عدد المرات التي نقوم فيها بتشغيل الكلمتين خلال الخوارزمية حيث سيظل المخرجان ثابتان.
على العكس إذا قمنا بتشغيل نفس المدخلات من خلال خوارزمية تجزئة SHA-1 فسنحصل على النتائج التالية:
SHA-1 | |
Input | Output (160 bits) |
Binance | 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1 |
binance | e58605c14a76ff98679322cca0eae7b3c4e08936 |
الجدير بالذكر أن كلمة SHA هي اختصار لخوارزميات Secure Hash. وهي تشير الى مجموعة من دالات تجزئة التشفير التي تشمل خوارزميات SHA-0 و SHA-1 مع مجموعات SHA-2 و SHA-3. تعد SHA-256 جزءًا من مجموعة SHA-2 بالإضافة الى SHA-512 ومتغيرات أخرى. وحاليًا تعتبر مجموعات SHA-2 و SHA-3 فقط آمنة.
لماذا تكون مهمة؟
القوة الحقيقية للتجزئة تأتي عند التعامل مع كم هائل من المعلومات. على سبيل المثال يمكن تشغيل ملف كبير أو مجموعة بيانات من خلال دالة هاش ثم استخدام ناتجها للتحقق بسرعة من دقة وتكامل البيانات. وهذا ممكن بسبب الطبيعة الحتمية لدالات التجزئة: حيث تؤدي المدخلات دائما إلى مخرجات مبسطة ومكثفة (هاش). هذه التقنية تزيل الحاجة إلى تخزين وتذكر كميات كبيرة من البيانات.
تكون التجزئة مفيدة بشكل خاص في سياق تقنية البلوكشين. يحتوى بلوكشين البيتكوين على العديد من العمليات التي تتضمن التجزئة معظمها يكون في عملية التعدين. في الواقع، تعتمد جميع بروتوكولات العملات الرقمية تقريبًا على التجزئة لربط مجموعات المعاملات وتكثيفها في كتل. وأيضًا لإنشاء روابط مشفرة بين كل كتلة ما يؤدي إلى إنشاء بلوكشين بشكل فعال.
دالات هاش التشفيرية
مرة أخرى، يمكن تعريف دالة هاش (التجزئة) التي تستخدم تقنيات التشفير على أنها دالة هاش التشفيرية. يتطلب اختراق دالة هاش التشفيرية عدد لا يحصى من محاولات هجوم القوة العمياء (brute-force). لكي يتم عكس دالة هاش التشفيرية يجب أن يخمنوا ماذا كانت المدخلات عن طريق التجربة والخطأ حتى يتم إنتاج المخرجات المقابلة. لكن من الممكن أيضا أن تنتج مدخلات مختلفة نفس المخرجات وفي هذه الحالة يحدث “تصادم أو collision”.
من الناحية الفنية تحتاج دالة التجزئة التشفيرية إلى اتباع ثلاث خصائص حتى يمكن اعتبارها آمنة بشكل فعال. قد نصف تلك الخصائص بالتالي: collision resistance و preimage resistance و second preimage resistance.
قبل مناقشة كل خاصية دعونا نلخص المنطق الخاص بهم في ثلاث جمل قصيرة.
Collision resistance (مقاومة للتصادم): لا يمكن العثور على أي مُدخلين مختلفين ينتجان نفس التجزئة (الـهاش) كمخرجات.
Preimage resistance: لا يمكن “عكس” وظيفة التجزئة (البحث عن المدخلات من مخرجات معينة).
Second-preimage resistance: لا يمكن العثور على أي مُدخل ثاني يصطدم مع مُدخل أخر محدد.
Collision resistance
كما ذكرنا من قبل، يحدث تصادم عندما تنتج مدخلات مختلفة نفس التجزئة بالضبط. وبالتالي تعتبر دالة التجزئة مقاومة للاصطدام حتى اللحظة التي يجد فيها شخص ما تصادمًا. لاحظ أن الاصطدامات ستكون موجودة دائمًا لأي دالة تجزئة لأن المدخلات المحتملة غير محدودة في حين أن المخرجات المحتملة محدودة.
بعبارة أخرى، تكون دالة التجزئة مقاومة للاصطدام عندما تكون إمكانية العثور على تصادم منخفضة للغاية بحيث تتطلب ملايين السنين من العمليات الحسابية. لذلك على الرغم من عدم وجود دالات تجزئة خالية من التصادم إلا أن بعضها قوي بما فيه الكفاية ليتم اعتباره مقاومًا (على سبيل المثال SHA-256).
Preimage resistance
ترتبط خاصية preimage resistance بمفهوم الوظائف أحادية الاتجاه. حيث تعتبر دالة التجزئة preimage-resistant عندما يكون هناك احتمال ضئيل للغاية لإيجاد شخص ما المدخلات التي تنتج مخرجات معينة.
مع الوضع بالإعتبار أن هذه الخاصية تختلف عن تلك السابقة لأن أحد المهاجمين سيحاول تخمين ماذا كانت المدخلات من خلال النظر في مخرجات معينة. من ناحية أخرى يحدث تصادم عندما يعثر شخص ما على مدخلات مختلفة تولد نفس المخرجات ولكن لا يهم المدخلات التي تم استخدامها.
تعد خاصية preimage resistance ذات قيمة في حماية البيانات لأن هاش بسيط من الرسالة يمكن أن يثبت مصداقيتها دون الحاجة إلى الكشف عن أي معلومات. عند تطبيقها عمليا، يقوم العديد من مقدمي الخدمات وتطبيقات الويب بتخزين واستخدام التجزئة (الـ hashes) المتولدة من كلمات المرور بدلاً من كلمات المرور في النص العادي.
Second-preimage resistance
للتبسيط قد نقول أن Second-preimage resistance تقع في مكان ما بين الخصائص الأخرى السابقة. يحدث هجوم second-preimage عندما يتمكن شخص ما من العثور على مُدْخَل محدد يولد نفس ناتج مُدْخَل آخر يعرفه بالفعل.
بمعنى اخر، فإن هجوم second-preimage يتضمن العثور على تصادم ولكن بدلاً من البحث عن إثنين من المدخلات العشوائية التي تولد نفس الهاش كناتج، فإنهم يبحثون عن مُدْخَل يولد نفس الهاش الذي تم إنشاؤه بواسطة مُدْخَل محدد آخر.
لذلك فإن أي دالة تجزئة مقاومة للاصطدامات تكون أيضًا مقاومة لهجمات second-preimage حيث أن الأخيرة سوف تعني حدوث تصادم دائمًا. لكن لا يزال بوسع المهاجمون القيام بهجمة مبكرة على دالة مقاومة للاصطدام لأنها تتضمن إيجاد مُدْخَل واحد من مُخْرَج واحد.
التعدين
في هذه الحالة يمثل معدل التجزئة مقدار الطاقة الحاسوبية التي يتم استثمارها في تعدين البيتكوين. في حالة زيادة معدل تجزئة الشبكة سيقوم بروتوكول البيتكوين تلقائيًا بضبط صعوبة التعدين بحيث يظل متوسط الوقت اللازم لتعدين كتلة قريبًا من 10 دقائق. في المقابل إذا قرر العديد من القائمين على التعدين إيقاف التعدين مما سيؤدي الى انخفاض معدل التجزئة بشكل كبير فسيتم ضبط صعوبة التعدين مما يسهل عملية التعدين (حتى يعود متوسط وقت تعدين الكتلة إلى 10 دقائق).
لاحظ أنه لا يتعين على القائمين على التعدين العثور على اصطدامات نظرًا لوجود العديد من الهاشات التي يمكنهم إنشاؤها كمخرجات صالحة (بداية بعدد معين من الأصفار). لذلك هناك العديد من الحلول الممكنة لكتلة معينة ولا يتعين على القائمين على التعدين العثور على واحد منها وفقًا للبداية التي تحددها صعوبة التعدين.
نظرًا لأن عملية تعدين البيتكوين مكلفة للغاية، فإن القائمين على التعدين ليس لديهم سبب كافي لخداع النظام لأن هذا سيؤدي إلى خسائر مالية كبيرة. كلما انضم عدد أكبر من القائمين على التعدين للبلوكشين كلما أصبحت قوية أكثر.
أفكار ختامية
ليس هناك أي شك في أن دالات التجزئة هي أدوات أساسية في علوم الكمبيوتر خاصة عند التعامل مع كميات هائلة من البيانات. يمكن أن تكون خوارزميات التجزئة متعددة الاستخدامات عند دمجها مع التشفير مما يوفر الأمان والمصادقة بعدة طرق مختلفة. على هذا النحو تعد دالات التجزئة التشفيرية مهمة للغاية بالنسبة لجميع شبكات العملات الرقمية تقريبًا. لذلك فإن فهم خصائصها وآليات عملها مفيد بالتأكيد لأي شخص مهتم بتقنية البلوكشين.