خوارزمية يارو

خوارزمية يارو هي عائلة من مولدات الأرقام العشوائية الزائفة المشفرة (CSPRNG) ابتكرها جون كيلسي وبروس شناير ونيلز فيرغسون ونُشرت عام ١٩٩٩. خوارزمية يارو غير مسجلة ببراءة اختراع، ومجانية الاستخدام، ومفتوحة المصدر؛ ولا يتطلب استخدامها أي ترخيص. وصف فيرغسون وشناير تصميمًا مُحسَّنًا يُدعى فورتونا في كتابهما " التشفير العملي" .

استُخدم برنامج Yarrow في نظام FreeBSD ، ولكنه استُبدل الآن ببرنامج Fortuna. [ 1 ] كما دُمج Yarrow في نظامي iOS [ 2 ] و macOS لأجهزة /dev/random الخاصة بهما ، لكن شركة Apple انتقلت إلى استخدام Fortuna منذ الربع الأول من عام 2020. [ 3 ]

اسم

يشير اسم "يارو" إلى استخدام نبات اليارو في عملية توليد الأرقام العشوائية في التنجيم باستخدام كتاب "يي جينغ" . منذ عهد أسرة شيا ( حوالي 2070 إلى حوالي 1600 قبل الميلاد )، استخدم الصينيون سيقان اليارو للتنبؤ. يقوم العرافون بتقسيم مجموعة من 50 ساقًا من اليارو إلى أكوام، ويستخدمون الحساب النمطي بشكل متكرر لتوليد رقمين عشوائيين [ 4 ] بتوزيع غير منتظم .

مبادئ

تتمثل مبادئ تصميم Yarrow الرئيسية في: مقاومة الهجمات، وسهولة الاستخدام للمبرمجين غير المتخصصين في التشفير، وإمكانية إعادة استخدام المكونات الأساسية الموجودة. تحتوي التصاميم السابقة واسعة الانتشار، مثل ANSI X9.17 و RSAREF 2.0 PRNG، على ثغرات أمنية تُتيح فرصًا للهجوم في بعض الظروف. بعض هذه التصاميم لم يُصمم مع مراعاة الهجمات الواقعية. يهدف Yarrow أيضًا إلى توفير سهولة التكامل، لتمكين مصممي الأنظمة ذوي المعرفة المحدودة بوظائف مولدات الأرقام العشوائية الزائفة (PRNG). [ 5 ]

تصميم

عناصر

يتكون تصميم نبات اليارو من أربعة مكونات رئيسية: مُجمِّع الإنتروبيا ، وآلية إعادة البذر ، وآلية التوليد، والتحكم في إعادة البذر.

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

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

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

فلسفة التصميم

يفترض يارو إمكانية تراكم قدر كافٍ من العشوائية لضمان بقاء مولد الأرقام العشوائية الزائفة في حالة غير قابلة للتنبؤ. ويعمل المصممون على تراكم العشوائية بهدف الحفاظ على القدرة على استعادة مولد الأرقام العشوائية الزائفة حتى في حال اختراق المفتاح. وتتبنى مولدات الأرقام العشوائية الزائفة RSAREF وDSA وANSI X9.17 فلسفة تصميم مماثلة.

يارو-160

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

الخوارزمياتملكياتما يستخدمه يارو-160
دالة التجزئة h(x)
  • طريقة واحدة
  • حجم الإخراج m-bit
  • تصادم غير قابل للحل

بالنظر إلى M من قيم الإدخال، يتم توزيع |M| من اختيارات قيم الإخراج بشكل منتظم على قيم m بت.

دالة التجزئة SHA-1
تشفير الكتلة E()
  • مقاومة لهجمات النص الواضح المعروف والنص الواضح المختار

أداء إحصائي عالٍ للمخرجات عند إعطاء مدخلات ذات أنماط عالية.

مفتاح ثلاثي DES

جيل

وظائف آلية التوليد

يستخدم جهاز Yarrow-160 خوارزمية التشفير الثلاثي DES بثلاثة مفاتيح في وضع العداد لتوليد المخرجات. C هي قيمة عداد مكونة من n بت، و K هو المفتاح. ولتوليد كتلة المخرجات التالية، يتبع Yarrow الوظائف الموضحة هنا.

يحتفظ يارو بحساب كتلة الإخراج، لأنه بمجرد اختراق المفتاح، يمكن إيقاف تسريب الإخراج القديم قبل المخترق فورًا. عند بلوغ قيمة معينة لمعامل أمان النظام Pg ، يقوم الخوارزمية بتوليد k بت من مخرجات مولد الأرقام العشوائية الزائفة (PRNG) واستخدامها كمفتاح جديد. في يارو-160، تم ضبط معامل أمان النظام على 10 ، مما يعني أن Pg = 10. تم اختيار هذه القيمة المنخفضة عمدًا لتقليل عدد المخرجات التي يمكن تتبعها.

إعادة البذر

تعتمد آلية إعادة التشفير في خوارزمية Yarrow-160 على خوارزمية SHA-1 وخوارزمية التشفير الثلاثي DES كدالة تجزئة وتشفير كتلي. تجدون الخطوات التفصيلية في الورقة البحثية الأصلية.

تنفيذ يارو-160

تم تنفيذ خوارزمية Yarrow-160 بلغة Java ، ولنظام FreeBSD . يمكن الاطلاع على الأمثلة في مقال "تنفيذ مولد الأرقام العشوائية الزائفة Yarrow لنظام FreeBSD" [ 6 ] بقلم مارك آر في موراي.

مزايا وعيوب نبات اليارو

الإيجابيات

  • يارو يعيد استخدام مواد البناء الموجودة.
  • بالمقارنة مع مولدات الأرقام العشوائية الزائفة السابقة، فإن Yarrow يتمتع بكفاءة معقولة.
  • يمكن للمبرمجين غير المتخصصين في التشفير استخدام Yarrow بطريقة آمنة إلى حد معقول. يتميز Yarrow بسهولة نقله ودقة تعريفه، كما أن واجهته بسيطة وواضحة. هذه الميزات تقلل من احتمالية حدوث أخطاء في التنفيذ.
  • تم إنشاء Yarrow باستخدام عملية تصميم موجهة نحو الهجوم.
  • يُعد تقدير الإنتروبيا في خوارزمية يارو متحفظًا للغاية، مما يمنع هجمات البحث الشامل . ومن الشائع جدًا أن تفشل مولدات الأرقام العشوائية الزائفة في التطبيقات العملية بسبب المبالغة في تقدير الإنتروبيا وإمكانية تخمين نقاط البداية.
  • تُعد عملية إعادة زرع Yarrow مكلفة حسابيًا نسبيًا، وبالتالي فإن تكلفة محاولة تخمين مفتاح PRNG أعلى.
  • يستخدم برنامج Yarrow وظائف لتبسيط إدارة ملفات البذور، وبالتالي يتم تحديث الملفات باستمرار.
  • للتصدي لهجمات التحليل التشفيري ، صُممت خوارزمية يارو لتعتمد على تشفير كتلي مؤمّن. ويعتمد مستوى أمان آلية التوليد على التشفير الكتلي المستخدم.
  • يحاول يارو تجنب مسارات التنفيذ المعتمدة على البيانات. ويتم ذلك لمنع هجمات القنوات الجانبية ، مثل هجمات التوقيت وتحليل الطاقة . يُعد هذا تحسينًا مقارنةً بمولدات الأرقام العشوائية الزائفة السابقة، مثل RSAREF 2.0، التي تنهار تمامًا بمجرد فقدان معلومات إضافية حول العمليات الداخلية.
  • يستخدم برنامج Yarrow دوال التشفير التجزئية لمعالجة عينات الإدخال، ثم يستخدم دالة تحديث آمنة لدمج هذه العينات مع المفتاح الموجود. يضمن هذا الأسلوب عدم قدرة المهاجم على التلاعب بعينات الإدخال بسهولة. أما مولدات الأرقام العشوائية الزائفة (PRNGs) مثل RSAREF 2.0، فلا تمتلك القدرة على مقاومة هذا النوع من هجمات اختيار الإدخال.
  • على عكس مولد الأرقام العشوائية الزائفة ANSI X9.17، يتمتع Yarrow بالقدرة على التعافي من اختراق المفتاح. هذا يعني أنه حتى في حالة اختراق المفتاح، لن يتمكن المهاجم من التنبؤ بالمخرجات المستقبلية إلى الأبد. ويعود ذلك إلى آلية إعادة التهيئة في Yarrow. [ 5 ] : 5
  • يفصل برنامج Yarrow مجموعة عينات الإنتروبيا عن المفتاح، ولا يعيد تهيئة المفتاح إلا عندما يكون محتوى مجموعة الإنتروبيا غير قابل للتنبؤ به تمامًا.يمنع هذا التصميم هجمات التخمين التكرارية، حيث يقوم المهاجم الذي يمتلك المفتاح بتخمين العينة التالية ويتحقق من النتيجة من خلال مراقبة المخرجات التالية.

السلبيات

  • يعتمد برنامج Yarrow على خوارزمية SHA-1، وهي خوارزمية تجزئة تم اختراقها (من حيث مقاومة التصادم ) منذ نشر Yarrow، ولم تعد تُعتبر آمنة. [ 7 ] ومع ذلك، لا يوجد هجوم منشور يستخدم تصادمات SHA-1 لتقويض عشوائية Yarrow.
  • بما أن مخرجات يارو مُشتقة تشفيرياً، فإن أمان الأنظمة التي تستخدم هذه المخرجات يعتمد على آلية توليدها نفسها. وهذا يعني أن المهاجم القادر على اختراق آلية التوليد سيتمكن بسهولة من اختراق أي نظام يعتمد على مخرجات يارو. ولا يمكن حل هذه المشكلة بزيادة تراكم الإنتروبيا.
  • يتطلب برنامج Yarrow تقدير الإنتروبيا، وهو ما يمثل تحديًا كبيرًا للتطبيقات. [ 8 ] من الصعب تحديد مقدار الإنتروبيا المطلوب جمعه قبل استخدامه لإعادة تهيئة مولد الأرقام العشوائية الزائفة. [ 9 ] وقد حلّت Fortuna ، وهي نسخة محسّنة من Yarrow، هذه المشكلة. تحتوي Fortuna على 32 مجموعة لجمع الإنتروبيا، وقد استغنت تمامًا عن مُقدِّر الإنتروبيا.
  • تعتمد قوة خوارزمية يارو على حجم المفتاح. على سبيل المثال، يبلغ حجم المفتاح الفعال لخوارزمية يارو-160 160 بت. إذا كانت متطلبات الأمان تتطلب 256 بت، فإن خوارزمية يارو-160 غير قادرة على أداء المهمة.

مراجع

  1. " [ الأساس ] مراجعة 284959" . Svnweb.freebsd.org . تم الاطلاع عليه بتاريخ 18 أكتوبر 2016 .
  2. "أمان نظام iOS" (ملف PDF) . Apple.com . أكتوبر 2012. تم الاطلاع عليه بتاريخ 21-10-2016 .
  3. "توليد الأرقام العشوائية" . دعم Apple . تم الاسترجاع في 26-10-2020 .
  4. شناير، بروس . "أسئلة وأجوبة حول نبات اليارو" . شناير حول الأمن . تم الاسترجاع في 15 فبراير 2016. كان العراف يقسم مجموعة من 50 ساقًا إلى أكوام، ثم يستخدم الحساب النمطي بشكل متكرر لتوليد بتتين عشوائيتين.
  5. 1 2 كيلسي، جون؛ شناير، بروس؛ فيرغسون، نيلز (أغسطس 1999). "يارو-160: ملاحظات حول تصميم وتحليل مولد الأرقام العشوائية الزائفة المشفرة يارو" (ملف PDF) . مجالات مختارة في علم التشفير . سلسلة محاضرات في علوم الحاسوب. المجلد 1758. الصفحات 13-33 . doi : 10.1007/3-540-46513-8_2 . ISBN   978-3-540-67185-5.
  6. "تطبيق مولد الأرقام العشوائية Yarrow لنظام FreeBSD" . تم الاطلاع عليه بتاريخ 18 أكتوبر 2016 .
  7. ستيفنز، مارك؛ بورشتين، إيلي؛ كاربمان، بيير؛ ألبرتيني، أنج؛ ماركوف، ياريك (23 فبراير 2017). "محطم" . محطم . تم الاسترجاع في 27 أبريل 2017 .
  8. "Fortuna Cryptographically Secure PRNG : AN0806 - Application Note" (PDF) . Silabs.com . تاريخ الاسترجاع: 21-10-2016 . 
  9. سيتاديل (4 مارس 2004). "فورتونا - مولد أرقام عشوائية زائفة آمن تشفيرياً - كود بروجكت" . تم الاطلاع عليه بتاريخ 18 أكتوبر 2016 .